NHoriList_wev8.js
7.09 KB
define("NHoriList_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" >\t$${loading.content}\t<div class="wev-table-view-wrapper wev-horitable-view-wrapper">\t\t<ul class="wev-table-view wev-horitable-view"></ul>\t\t<div class="wev-no-data" data-title="$i18n{NO_DATA}"></div> <div class="wev-error" style="display:none;"></div>\t</div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","i18n","mApi/popup"],function(A,i,a,U,e){return i.init(function(e){var S,n,b={};i.super(this,e),this.type="NHoriList",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0,this.keysOfSkipedVarParse=["dataSource","dataurl","showSet"],this.components={loading:new a({delay:300,animation:1})};var V=this.viewModel={dataSource:{type:"mock"},pageSize:10,showSet:{common:{imgfield:"",titlefield:"",otherfields:[]},cube:{imgfield:{},titlefield:{},otherfields:[]}},options:{readonly:!1},relate:{},standalone:!0,onload:function(){}};this.beforeMount=function(){V.needReplaceUrl=A.containsVariables(V.options.dataurl),V.isCube="cube"==V.dataSource.type},this.mounted=function(){var r=this;V.isMock="mock"==V.dataSource.type,S=this.$el.find(".wev-error"),n=this.$el.find(".wev-no-data"),r.$container,b.refreshList(V.onload),this.$comp.on("click","a.wev-navigate-right",function(e){if(!V.options.readonly&&!$(e.target).closest(".wev-file[data-docid]").length){var a=$(this),t=d.getDataItem(a)||{};if(V.callback&&A.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):A.eval(i,r.pageid)}}}),V.isCube&&-1!=V.relate.modeid&&!V.options.readonly&&0===V.options.urltype&&d.parseLayoutUrl()},this.reload=function(e,a){b.state.dynamicParam={},A.isObject(e)&&$.extend(b.state.dynamicParam,e),b.refreshList(a)},b.state={list:[],dynamicParam:{},timestamp:0},b.refreshList=function(e){var a=this,t=this.components.loading;b.state.list=[],t.setRefs(this.$comp,"wev-refreshing"),t.show(),b.loadData(function(){t.hide(),A.isFunction(e)&&e.call(null),A.trigger("dataload",a.pageid,a.id)})},b.loadData=function(r){var l=(new Date).valueOf(),e=V.dataSource.type,o=V.showSet[e]||V.showSet.common,s=b.state;s.timestamp=l;var a=A.getPageParam(this.pageid)||{},t=$.extend({},a,s.dynamicParam),i=void 0!==t.searchKey?t.searchKey||"":t.search_key||"",n={pageNo:1,pageSize:V.pageSize,searchKey:i},d=$.extend({},n,{PAGE_NO:1,PAGE_SIZE:V.pageSize,SEARCH_KEY:i});n=$.extend(t,n);var c=function(e){r(!1,!1),S.html(e).show()};if("cube"==e){if(!V.dataSource.searchid)return void c(A.getLabel(6112,"内容来源未配置,请联系管理员。"));var u=U.parseFieldIds(JSON.stringify(o)),p=$.extend({},n,{action:"getDatas",searchid:V.dataSource.searchid,fieldparse:u}),h=A.getActionUrl(this.type,p,this.pageid);A.getJSON(h,function(e){if(e=e.data,l==s.timestamp){var a=b.convertShowDatas4CubeSearch(e,o);b.renderData(a.billDatas,a.showDatas,r)}},c)}else if("mock"==e){var v=V.dataSource.mockData;if(A.isArray(v)&&0<v.length){v=V.pageSize>v.length?v:v.splice(0,V.pageSize);var f=b.convertShowDatas4Common(v,o);b.renderData(f.billDatas,f.showDatas,r)}else c(A.getLabel(6112,"内容来源未配置,请联系管理员。"))}else if("sql"!=e||V.standalone)if("url"==e){var m=V.dataSource.urlConfig||{},g=m.path||"",w=A.replaceVal(g,d),y=(p=n,m.formats||{});require(["apiHelper"],function(e){e.requestUrl(w,y,p,function(e){if(l==s.timestamp){var a;a=y.DATAS?A.getKeyValue(y.DATAS,e):[{}];var t=b.convertShowDatas4Common(a,o);b.renderData(t.billDatas,t.showDatas,r)}},c)})}else if("api"==e){var D=V.dataSource.apiConfig||{api:{},request:{},response:{}};p=$.extend({},n,d),require(["apiHelper"],function(e){e.callApi(D,p,function(e){if(l==s.timestamp){var a,t=D.response.formats;a=t.DATAS?A.getKeyValue(t.DATAS,e):[{}];var i=b.convertShowDatas4Common(a,o);b.renderData(i.billDatas,i.showDatas,r)}},c)})}else c(A.getLabel(6113,"不支持的数据来源类型,请检查配置。"));else{var p=$.extend({},n,{action:"getSqlDatas",mec_id:this.id});h=A.getActionUrl(this.type,p,this.pageid),A.getJSON(h,function(e){if(e=e.data,l==s.timestamp){var a=b.convertShowDatas4Common(e.datas,o);b.renderData(a.billDatas,a.showDatas,r)}},c)}},b.convertShowDatas4CubeSearch=function(e,l){var o=e.fieldMap,s=[],n=[];return e.datas.forEach(function(e){var a=$.extend({},e.dataMap),t=e.keyvalue,i=b.parseDataUrl(e.dataMap,V.options.dataurl,t);a._rowid=e._rowid=A.UUID(),a.id=t,a.dataurl=i,n.push(a);var r=function(i,r,e){var a=e.imgfield,t=e.otherfields,l="";U.isSettingValue(a)&&(l=U.getFieldValue(a,i,r,!0,V.options.readonly));var o=[];return A.isArray(t)&&t.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&&o.push(t)}),{rowid:i._rowid,imgFieldValue:l,titleFieldValue:U.getFieldValue(e.titlefield,i,r),otherFieldValue:o}}(e,o,l);s.push(r)}),{billDatas:n,showDatas:s}},b.convertShowDatas4Common=function(e,t){return{billDatas:e,showDatas:e.map(function(a){return a._rowid=A.UUID(),a.dataurl=b.parseDataUrl(a,V.options.dataurl),{rowid:(a=JSON.parse(i.replaceMutilLanguage(JSON.stringify(a),A.getUserLanguage())))._rowid,imgFieldValue:A.replaceValAndVarParser(t.imgfield,U.getFirstDataByFielddesc(t.imgfield,a)),titleFieldValue:A.replaceValAndVarParser(t.titlefield,a),otherFieldValue:t.otherfields.map(function(e){return A.replaceValAndVarParser(e,a)})}})}},b.renderData=function(e,a,t){var i=b.state;A.concat(i.list,e);var r=["{@each datas as d}",'<li data-id="${d.rowid}" class="wev-table-view-cell wev-media">','<a href="javascript:void(0);" class="wev-navigate-right{@if readonly} wev-data-readonly"{@else}" data-ignoreviewimg{@/if}>','<div class="wev-media-object">',"$${d.imgFieldValue}","</div>",'<div class="wev-media-body">','<div class="wev-nowrap">$${d.titleFieldValue}</div>',"{@each d.otherFieldValue as row}",'<div class="wev-nowrap">',"$${row}","</div>","{@/each}","</div>","</a>","</li>","{@/each}"].join(""),l=A.parseTemplate(r,{readonly:V.options.readonly,datas:a}),o=$(".wev-table-view",this.$comp),s=$(l);o.html(s),d.initLazyImg(),S.hide(),n[0===a.length?"show":"hide"](),t&&t(),A.renderVarParser(V.needParseVar)},b.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 d={getDataItem:function(e){var a,t=e.closest("li.wev-table-view-cell").data("id");return b.state.list.every(function(e){return e._rowid!==t||(a=e,!1)}),a},parseLayoutUrl:function(){var e=A.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"});A.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"])}};b.refreshList=b.refreshList.bind(this),b.loadData=b.loadData.bind(this),b.renderData=b.renderData.bind(this)})});