Timelinr_wev8.js 5.36 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$${moreLoading.content}\t</div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","mApi/popup"],function(g,a,i,f){return a.init(function(e){var o={},s=[],c={};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 i({delay:300,animation:1}),moreLoading:new i({btn:1,onclick:function(e){o.loadData(e)}})};var y=this.viewModel={contentSource:1,pageSize:10,normalview:{timefield:{},titlefield:{},otherfields:[]},options:{dataurl:"",readonly:!1},standalone:!0,onload:function(){}};this.mounted=function(){var r=this;if(y.isMock=2==y.contentSource,r.$container,this.$comp.on("click","a.wev-navigate-right",function(e){var a,i=$(this).attr("data-id");if(s.every(function(e){return e.id!==i||(a=e,!1)}),!y.options.readonly&&y.callback&&g.isFunction(y.callback.click)&&y.callback.click.call(this,a),!y.options.readonly)if(0==y.options.urltype)y.layoutUrl?$u(y.layoutUrl+"&billid="+i):Mobile_NS.getLayoutUrl(y.relate.modeid,1,i);else if(a.dataurl){var t=a.dataurl;-1==a.dataurl.indexOf("javascript:")?$u(t):g.eval(t,r.pageid)}}),0==y.options.urltype&&!y.options.readonly&&!y.isMock){var e=g.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"});y.layoutUrl="",g.getJSON(e,{modelid:y.relate.modeid,appid:y.relate.appid,uitype:1},function(e){y.layoutUrl=e.data,!y.layoutUrl&&require(["mApi/other"])},function(e){})}o.refreshList(y.onload)},this.reload=function(e,a){g.isObject(e)&&$.extend(c,e),o.refreshList(a)};var v=0,u=0;o.refreshList=function(i){var t=this,r=this.components,l=r.loading;l.setRefs(this.$comp,"wev-refreshing"),l.show(),v=0,s=[],o.loadData(function(e,a){l.hide(),r.moreLoading.hide(e,a),g.isFunction(i)&&i.call(null),g.trigger("dataload",t.pageid,t.id)})},o.loadData=function(a){var i=(new Date).valueOf();if(u=i,v++,y.isMock){var e=o.convertMockData(y.mockData,v,y.pageSize);e?o.renderData(e,a):a(!1,!0)}else{var t=f.parseFieldIds(JSON.stringify(y)),r=y.normalview.timefield.fieldid,l="";"-1"==r&&(y.normalview.timefield.fielddesc.match(/\{(.+?)\}/g)||[]).map(function(e){l=e.replace(/\{|\}/g,"")});var n={action:"getDatas",searchid:y.sourceid,pageNo:v,pageSize:y.pageSize,fieldparse:t,timefieldid:r,timefieldname:l};$.extend(!0,n,c);var d=g.getActionUrl(this.type,n,this.pageid);g.getJSON(d,function(e){e=e.data,i==u&&o.renderData(e,a)})}},o.convertMockData=function(e,a,i){if(g.isArray(e)){a=a||1,i=i||10;var r,t={},l={},n=0;for(var d in e[0]){1==++n&&(r=d),l[n]=d;var o={fieldhtmltype:"1"};o.fieldid=n,o.fieldname=d,t[n]=o}var s=(y.normalview.timefield.fielddesc||"").replace(/\{|\}/g,"");if(!s)return;var c={},v=[],u=[],f=/^([\d]{4})-([\d]{2}-[\d]{2})$/;e.forEach(function(e){var a=e[s];a&&f.test(a)&&(c[a]||(c[a]=[],v.push(a)),c[a].push(e))}),v.sort(function(e,a){var i=new Date(e).getTime(),t=new Date(a).getTime();return t<i?-1:t<i?1:0}).forEach(function(e){var a=e.match(f);if(a){var i=c[e].map(function(e){for(var a={},i={},t=n;0<t;)i[t]=e[l.fieldIndex],t--;return a.keyfiled=r,a.keyvalue=e[r],a.dataMap=e,a.convertDataMap=i,a});u.push({year:a[1],monthday:a[2],timevalue:e,innerdatas:i})}});var p=u.length;if(0==p)return;var h=0<p%i?parseInt(p/i)+1:parseInt(p/i);a<h?u=u.slice((a-1)*i,a*i):a==h&&(u=u.slice((a-1)*i));var m={};return m.datas=u,m.fieldMap=t,m.totalSize=p,m.totalPageCount=h,m}},o.renderData=function(e,a){var i=this.$comp,r=e.fieldMap,l=[];e.datas.forEach(function(e){var t={},a=e.innerdatas;t.year=e.year,t.monthday=e.monthday,t.items=[],a.forEach(function(e){var a={},i=function(t,r,e){var a="";1==y.options.urltype&&y.options.dataurl?-1==(a=f.replaceVal(y.options.dataurl,t.dataMap)).indexOf("javascript:")&&(y.options.isNewLayout||-1!=a.indexOf("&billid=")||-1!=a.indexOf("?billid=")||(a+=(-1==a.indexOf("?")?"?":"&")+"billid="+dataId)):a="javascript:void(0);";var i=e.otherfields,l=[];return g.isArray(i)&&i.forEach(function(e){var i=[];e.forEach(function(e){if(f.isSettingValue(e)){var a=f.getFieldValue(e,t,r,!1,y.options.readonly);i.push(a)}}),0<i.length&&l.push(i)}),{id:t.keyvalue,dataurl:a,readonly:y.options.readonly,titleFieldValue:f.getFieldValue(e.titlefield,t,r),otherFieldValue:l}}(e,r,y.normalview);t.items.push(i),a.id=i.id,a.dataurl=i.dataurl,a.dataMap=e.dataMap,s.push(a)}),l.push(t)});var t=["{@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{@/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(""),n=g.parseTemplate(t,{datas:l}),d=$(".wev-table-view",i),o=$(n);1==v&&d.html(""),d.append(o),require(["lazyImgHelper"]),a(v<e.totalPageCount,e.totalSize<=0),g.renderVarParser(y.needParseVar)},o.refreshList=o.refreshList.bind(this),o.loadData=o.loadData.bind(this),o.renderData=o.renderData.bind(this)})});