NTimeline_wev8.js
9.78 KB
define("NTimeline_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" > $${loading.content} <div class="wev-table-view-wrapper"> <ul class="wev-table-view"></ul> <div class="wev-error" style="display: none;"></div> $${moreLoading.content} </div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","mApi/popup"],function(E,a,t,U){return a.init(function(e){var N,L={};a.super(this,e),this.type="NTimeline",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0,this.keysOfSkipedVarParse=["dataSource","dataurl","showSet"],this.components={loading:new t({delay:300,animation:1}),moreLoading:new t({btn:1,onclick:function(e){L.loadData(e)}})};var V=this.viewModel={dataSource:{type:"mock"},pageStart:1,pageSize:10,showSet:{common:{timefield:"",titlefield:"",otherfields:[]},cube:{timefield:{},titlefield:{},otherfields:[]}},options:{readonly:!1,unreadBadge:!1},relate:{},standalone:!0,onload:function(){}};this.beforeMount=function(){V.pageStart=isNaN(V.pageStart)?1:V.pageStart,V.needReplaceUrl=E.containsVariables(V.options.dataurl),V.isCube="cube"==V.dataSource.type},this.mounted=function(){var r=this;V.isMock="mock"==V.dataSource.type,N=this.$el.find(".wev-error"),r.$container,L.refreshList(V.onload),this.$comp.on("click","a.wev-navigate-right",function(e){if(!$(e.target).closest(".wev-file[data-docid]").length){var a=$(this),t=T.getDataItem(a)||{};if(!V.options.readonly&&V.options.unreadBadge&&a.find("span.wev-read-status").length&&"0"==V.options.urltype&&$(".wev-table-view",r.$comp).find('a[data-id="'+t.id+'"] span.wev-read-status').remove(),!V.options.readonly)if(V.callback&&E.isFunction(V.callback.click)&&V.callback.click.call(this,t),V.isCube&&-1!=V.relate.modeid&&0==V.options.urltype)V.layoutUrl?$u(V.layoutUrl+"&billid="+t.id):Mobile_NS.getLayoutUrl(V.relate.modeid,1,t.id);else if(t.dataurl){var i=t.dataurl;-1==i.indexOf("javascript:")?$u(i):E.eval(i,r.pageid)}}}),V.isCube&&-1!=V.relate.modeid&&!V.options.readonly&&0===V.options.urltype&&T.parseLayoutUrl()},this.reload=function(e,a){L.state.dynamicParam={},E.isObject(e)&&$.extend(L.state.dynamicParam,e),L.refreshList(a)},L.state={list:[],dynamicParam:{},pageNo:0,currPage:0,timestamp:0},L.refreshList=function(t){var i=this,e=this.components,r=e.loading,n=e.moreLoading;L.state.pageNo=V.pageStart-1,L.state.currPage=0,L.state.list=[],r.setRefs(this.$comp,"wev-refreshing"),r.show(),L.loadData(function(e,a){r.hide(),n.hide(e,a),E.isFunction(t)&&t.call(null),E.trigger("dataload",i.pageid,i.id)})},L.loadData=function(n){var s=(new Date).valueOf(),e=V.dataSource.type,d=V.showSet[e]||V.showSet.common,o=L.state;o.timestamp=s,o.pageNo++,o.currPage++;var a=E.getPageParam(this.pageid)||{},t=$.extend({},a,o.dynamicParam),i=void 0!==t.searchKey?t.searchKey||"":t.search_key||"",r={pageNo:o.pageNo,pageSize:V.pageSize,searchKey:i},l=$.extend({},r,{PAGE_NO:o.pageNo,PAGE_SIZE:V.pageSize,SEARCH_KEY:i});r=$.extend(t,r);var c=function(e){n(!1,!1),N.html(e).show()};if("cube"==e){if(!V.dataSource.searchid)return void c(E.getLabel(6112,"内容来源未配置,请联系管理员。"));var u=U.parseFieldIds(JSON.stringify(d)),p=d.timefield.fieldid,f="";"-1"==p&&(f=T.getTimefieldName(d.timefield.fielddesc));var v=$.extend({},r,{action:"getDatas",searchid:V.dataSource.searchid,fieldparse:u,timefieldid:p,timefieldname:f,unreadBadge:V.options.unreadBadge}),h=E.getActionUrl(this.type,v,this.pageid);E.getJSON(h,function(e){if(e=e.data,s==o.timestamp){var a=L.convertShowDatas4CubeSearch(e,d);L.renderData(a,e.totalSize,n)}},c)}else if("mock"==e){var m,g=V.dataSource.mockData;if(i=r.searchKey||r.search_key||"",E.isArray(g)&&g.length){var y=JSON.stringify(d).match(/\{(\w+)\}/g).map(function(e){return e.replace(/\{|\}/g,"")});i&&y.length&&(g=g.filter(function(e){for(var a=0;a<y.length;a++){var t=y[a];if(e[t]&&-1!=e[t].toString().toLowerCase().indexOf(i.toLowerCase()))return!0}})),(m=L.convertArraytoShowDatas(g,d,o.pageNo,V.pageSize))?L.renderData(m.datas,m.totalSize,n):c(E.getLabel(513605,"时间字段不规范,请重新设置"))}else L.renderData([],0,n)}else if("sql"!=e||V.standalone)if("url"==e){f=T.getTimefieldName(d.timefield);var w=V.dataSource.urlConfig||{},S=w.path||"",D=E.replaceVal(S,l);r.searchKey=r.searchKey?decodeURIComponent(r.searchKey):"",v=$.extend({timefieldname:f},r);var b=w.formats||{};require(["apiHelper"],function(e){e.requestUrl(D,b,v,function(e){if(s==o.timestamp){var a,t,i=0;i=b.DATAS?(a=E.getKeyValue(b.DATAS,e),b.TOTAL_SIZE?parseInt(E.getKeyValue(b.TOTAL_SIZE,e)):a.length):(a=[{}],1),E.isArray(a)&&a.length?(t=L.convertArraytoShowDatas(a,d))?L.renderData(t.datas,i,n):c(E.getLabel(513605,"时间字段不规范,请重新设置")):L.renderData([],0,n)}},c)})}else if("api"==e){f=T.getTimefieldName(d.timefield);var A=V.dataSource.apiConfig||{api:{},request:{},response:{}};l.SEARCH_KEY=l.SEARCH_KEY?decodeURIComponent(l.SEARCH_KEY):"",v=$.extend({},r,l),require(["apiHelper"],function(e){e.callApi(A,v,function(e){if(s==o.timestamp){var a,t,i=A.response.formats,r=0;r=i.DATAS?(a=E.getKeyValue(i.DATAS,e),i.TOTAL_SIZE?parseInt(E.getKeyValue(i.TOTAL_SIZE,e)):a.length):(a=[{}],1),E.isArray(a)&&a.length?(t=L.convertArraytoShowDatas(a,d))?L.renderData(t.datas,r,n):c(E.getLabel(513605,"时间字段不规范,请重新设置")):L.renderData([],0,n)}},c)})}else c(E.getLabel(6113,"不支持的数据来源类型,请检查配置。"));else{var f=T.getTimefieldName(d.timefield),v=$.extend({},r,{action:"getSqlDatas",mec_id:this.id,timefieldname:f});h=E.getActionUrl(this.type,v,this.pageid),E.getJSON(h,function(e){var a;e=e.data,s==o.timestamp&&(E.isArray(e.datas)&&e.datas.length?(a=L.convertArraytoShowDatas(e.datas,d))?L.renderData(a.datas,e.totalSize,n):c(E.getLabel(513605,"时间字段不规范,请重新设置")):L.renderData([],0,n))},c)}},L.convertShowDatas4CubeSearch=function(e,s){var d=e.fieldMap,t=[];return e.datas.forEach(function(e){var n={},a=e.innerdatas;n.year=e.year,n.monthday=e.monthday,n.items=[],a.forEach(function(e){var a=$.extend({},e.dataMap),t=e.keyvalue,i=L.parseDataUrl(e.dataMap,V.options.dataurl,t);a._rowid=e._rowid=E.UUID(),a.id=t,a.dataurl=i,L.state.list.push(a);var r=function(i,r,e){var a=e.otherfields,n=[];E.isArray(a)&&a.forEach(function(e){var t=[];e.forEach(function(e){if(U.isSettingValue(e)){var a=U.getFieldValue(e,i,r,!1,V.options.readonly);t.push(a)}}),0<t.length&&n.push(t)});var t=U.getFieldValue(e.titlefield,i,r);return""!=t.trim()?"1"==i.readStatus?t+='<span class="wev-read-status wev-unread"></span>':"2"==i.readStatus&&(t+='<span class="wev-read-status wev-feedback"></span>'):n.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>'),n[a]=e,!1;return!0}),{rowid:i._rowid,id:i.keyvalue,readonly:V.options.readonly,titleFieldValue:t,otherFieldValue:n}}(e,d,s);n.items.push(r)}),t.push(n)}),t},L.convertArraytoShowDatas=function(e,t,a,i){if(/\{(.+)\}/.test(t.timefield)){var r={},n=[],s=[];e.forEach(function(e){var a=E.replaceValAndVarParser(t.timefield,e);r[a]||(r[a]=[],n.push(a)),r[a].push(e)}),n.sort(function(e,a){var t=isNaN(Date.parse(e))?e:new Date(e).getTime(),i=isNaN(Date.parse(a))?a:new Date(a).getTime();return i<t?-1:t<i?1:0}).forEach(function(e){var a=r[e].map(function(a){var e=$.extend({},a);return e._rowid=a.rowid=E.UUID(),e.dataurl=L.parseDataUrl(a,V.options.dataurl),L.state.list.push(e),a.readonly=V.options.readonly,a.titleFieldValue=E.replaceValAndVarParser(t.titlefield,a),a.otherFieldValue=t.otherfields.map(function(e){return E.replaceValAndVarParser(e,a)}),a});s.push({year:e,monthday:"",items:a})});var d={};if(null!=a&&null!=i){var o=s.length;if(0==o)return;var l=0<o%i?parseInt(o/i)+1:parseInt(o/i);a<l?s=s.slice((a-1)*i,a*i):a==l&&(s=s.slice((a-1)*i)),d.totalSize=o}return d.datas=s,d}},L.renderData=function(e,a,t){var i=L.state,r=i.currPage,n=V.pageSize,s=["{@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-rowid="${item.rowid}" 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=E.parseTemplate(s,{datas:e}),o=$(".wev-table-view",this.$comp),l=$(d);1==r&&o.html(""),o.append(l),E.trigger("onpagechange",this.pageid,this.id,[i.pageNo,l]),T.initLazyImg();var c=r<(a%n==0?a/n:parseInt(a/n)+1),u=a<=0;N.hide(),t(c,u),E.renderVarParser(V.needParseVar)},L.parseDataUrl=function(e,a,t){var i="";return(!V.isCube||1!=V.options.urltype&&-1!=V.relate.modeid)&&V.isCube||!a?i="javascript:void(0);":-1==(i=V.needReplaceUrl?U.replaceVal(a,e):a).indexOf("javascript:")&&V.isCube&&(V.options.isNewLayout||-1!=i.indexOf("&billid=")||-1!=i.indexOf("?billid=")||(i+=(-1==i.indexOf("?")?"?":"&")+"billid="+t)),i};var T={getDataItem:function(e){var a,t=e.attr("data-id");return L.state.list.every(function(e){return e.id!==t||(a=e,!1)}),a},parseLayoutUrl:function(){var e=E.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"});E.getJSON(e,{modelid:V.relate.modeid,appid:V.relate.appid,uitype:1},function(e){V.layoutUrl=e.data||"",require(["mApi/other"])},function(e){})},initLazyImg:function(){require(["lazyImgHelper"])},getTimefieldName:function(e){var a="";return(e.match(/\{(.+?)\}/g)||[]).map(function(e){a=e.replace(/\{|\}/g,"")}),a}};L.refreshList=L.refreshList.bind(this),L.loadData=L.loadData.bind(this),L.renderData=L.renderData.bind(this)})});