Timelinr_wev8.js
6.39 KB
define("Timelinr_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" >\t$${loading.content}\t<div class="wev-table-view-wrapper">\t\t<ul class="wev-table-view"></ul>\t\t<div class="wev-error" style="display:none;"></div>\t\t$${moreLoading.content}\t</div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","mApi/popup"],function(w,a,t,h){return a.init(function(e){var s,c={},v=[],u={};a.super(this,e),this.type="Timelinr",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0,this.keysOfSkipedVarParse=["dataurl","timefield","titlefield","otherfields"],this.components={loading:new t({delay:300,animation:1}),moreLoading:new t({btn:1,onclick:function(e){c.loadData(e)}})};var g=this.viewModel={contentSource:1,pageSize:10,normalview:{timefield:{},titlefield:{},otherfields:[]},options:{dataurl:"",readonly:!1,unreadBadge:!1},standalone:!0,onload:function(){}};this.mounted=function(){var n=this;if(g.isMock=2==g.contentSource,s=this.$el.find(".wev-error"),n.$container,this.$comp.on("click","a.wev-navigate-right",function(e){if(!$(e.target).closest(".wev-file[data-docid]").length){var a,t=$(this),i=t.attr("data-id");if(!g.options.readonly&&g.options.unreadBadge&&t.find("span.wev-read-status").length&&"0"==g.options.urltype&&$(".wev-table-view",n.$comp).find('a[data-id="'+i+'"] span.wev-read-status').remove(),v.every(function(e){return e.id!==i||(a=e,!1)}),!g.options.readonly&&g.callback&&w.isFunction(g.callback.click)&&g.callback.click.call(this,a),!g.options.readonly)if(0==g.options.urltype)g.layoutUrl?$u(g.layoutUrl+"&billid="+i):Mobile_NS.getLayoutUrl(g.relate.modeid,1,i);else if(a.dataurl){var r=a.dataurl;-1==a.dataurl.indexOf("javascript:")?$u(r):w.eval(r,n.pageid)}}}),0==g.options.urltype&&!g.options.readonly&&!g.isMock){var e=w.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"});g.layoutUrl="",w.getJSON(e,{modelid:g.relate.modeid,appid:g.relate.appid,uitype:1},function(e){g.layoutUrl=e.data,!g.layoutUrl&&require(["mApi/other"])},function(e){})}c.refreshList(g.onload)},this.reload=function(e,a){u={},w.isObject(e)&&$.extend(u,e),c.refreshList(a)};var p=0,f=0;c.refreshList=function(t){var i=this,r=this.components,n=r.loading;n.setRefs(this.$comp,"wev-refreshing"),n.show(),p=0,v=[],c.loadData(function(e,a){n.hide(),r.moreLoading.hide(e,a),w.isFunction(t)&&t.call(null),w.trigger("dataload",i.pageid,i.id)})},c.loadData=function(a){var t=(new Date).valueOf();f=t,p++;var e=function(e){a(!1,!1),s.html(e).show()};if(g.isMock){var i=c.convertMockData(g.mockData,p,g.pageSize);i?c.renderData(i,a):e(w.getLabel(513605,"时间字段不规范,请重新设置"))}else{var r=h.parseFieldIds(JSON.stringify(g)),n=g.normalview.timefield.fieldid,d="";"-1"==n&&(g.normalview.timefield.fielddesc.match(/\{(.+?)\}/g)||[]).map(function(e){d=e.replace(/\{|((\[id\])|(\[text\]))?\}/g,"")});var l={action:"getDatas",searchid:g.sourceid,pageNo:p,pageSize:g.pageSize,fieldparse:r,timefieldid:n,timefieldname:d,unreadBadge:g.options.unreadBadge};$.extend(!0,l,u);var o=w.getActionUrl(this.type,l,this.pageid);w.getJSON(o,function(e){e=e.data,t==f&&c.renderData(e,a)},e)}},c.convertMockData=function(e,a,t){if(w.isArray(e)){a=a||1,t=t||10;var r,i={},n={},d=0;for(var l in e[0]){1==++d&&(r=l),n[d]=l;var o={fieldhtmltype:"1"};o.fieldid=d,o.fieldname=l,i[d]=o}var s=(g.normalview.timefield.fielddesc||"").replace(/\{|\}/g,"");if(!s)return;var c={},v=[],u=[],p=/^([\d]{4})-([\d]{2}-[\d]{2})$/;e.forEach(function(e){var a=e[s];a&&p.test(a)&&(c[a]||(c[a]=[],v.push(a)),c[a].push(e))}),v.sort(function(e,a){var t=new Date(e).getTime(),i=new Date(a).getTime();return i<t?-1:i<t?1:0}).forEach(function(e){var a=e.match(p);if(a){var t=c[e].map(function(e){for(var a={},t={},i=d;0<i;)t[i]=e[n.fieldIndex],i--;return a.keyfiled=r,a.keyvalue=e[r],a.dataMap=e,a.convertDataMap=t,a});u.push({year:a[1],monthday:a[2],timevalue:e,innerdatas:t})}});var f=u.length;if(0==f)return;var h=0<f%t?parseInt(f/t)+1:parseInt(f/t);a<h?u=u.slice((a-1)*t,a*t):a==h&&(u=u.slice((a-1)*t));var m={};return m.datas=u,m.fieldMap=i,m.totalSize=f,m.totalPageCount=h,m}},c.renderData=function(e,a){var t=this.$comp,r=e.fieldMap,n=[];e.datas.forEach(function(e){var i={},a=e.innerdatas;i.year=e.year,i.monthday=e.monthday,i.items=[],a.forEach(function(e){var a={},t=function(i,r,e){var a="",t=i.keyvalue||"";1==g.options.urltype&&g.options.dataurl?-1==(a=h.replaceVal(g.options.dataurl,i.dataMap)).indexOf("javascript:")&&(g.options.isNewLayout||-1!=a.indexOf("&billid=")||-1!=a.indexOf("?billid=")||(a+=(-1==a.indexOf("?")?"?":"&")+"billid="+t)):a="javascript:void(0);";var n=e.otherfields,d=[];w.isArray(n)&&n.forEach(function(e){var t=[];e.forEach(function(e){if(h.isSettingValue(e)){var a=h.getFieldValue(e,i,r,!1,g.options.readonly);t.push(a)}}),0<t.length&&d.push(t)});var l=h.getFieldValue(e.titlefield,i,r);return""!=l.trim()?"1"==i.readStatus?l+='<span class="wev-read-status wev-unread"></span>':"2"==i.readStatus&&(l+='<span class="wev-read-status wev-feedback"></span>'):d.every(function(e,a){for(var t=0;t<e.length;t++)if(""!=e[t].trim())return"1"==i.readStatus?e[e.length-1]+='<span class="wev-read-status wev-unread"></span>':"2"==i.readStatus&&(e[e.length-1]+='<span class="wev-read-status wev-feedback"></span>'),d[a]=e,!1;return!0}),{id:i.keyvalue,dataurl:a,readonly:g.options.readonly,titleFieldValue:l,otherFieldValue:d}}(e,r,g.normalview);i.items.push(t),a.id=t.id,a.dataurl=t.dataurl,a.dataMap=e.dataMap,v.push(a)}),n.push(i)});var i=["{@each datas as d}",'<li class="wev-table-view-cell wev-media">','<div class="wev-media-object wev-pull-left">',"<div>$${d.year}</div>","<div>$${d.monthday}</div>","</div>",'<div class="wev-media-body">',"{@each d.items as item}",'<a data-id="${item.id}" href="javascript:void(0);" class="wev-navigate-right{@if item.readonly == 1} wev-data-readonly"{@else}" data-ignoreviewimg{@/if}>','<div class="wev-media-inner">','<div class="wev-media-title">',"$${item.titleFieldValue}","</div>","{@each item.otherFieldValue as row}",'<div class="wev-ellipsis">',"{@each row as col}","$${col}","{@/each}","</div>","{@/each}","</div>","</a>","{@/each}","</div>","</li>","{@/each}"].join(""),d=w.parseTemplate(i,{datas:n}),l=$(".wev-table-view",t),o=$(d);1==p&&l.html(""),l.append(o),w.trigger("onpagechange",this.pageid,this.id,[p,o]),require(["lazyImgHelper"]),a(p<e.totalPageCount,e.totalSize<=0),w.renderVarParser(g.needParseVar)},c.refreshList=c.refreshList.bind(this),c.loadData=c.loadData.bind(this),c.renderData=c.renderData.bind(this)})});