NLargeList_wev8.js
11 KB
define("NLargeList_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}">\t<div class="wev-search" {@if quickSearch.hide == true}style="display:none;"{@/if}>\t\t<div class="wev-search-inner">\t\t\t<form action="javascript: void(0)">\t\t\t\t<input type="search" placeholder="${quickSearch.tip}">\t\t\t</form>\t\t\t<div class="wev-placeholder">\t\t\t\t<div class="wev-placeholder-inner wev-ellipsis">\t\t\t\t\t<span class="wev-small-icon wev-icon-search"></span><span class="wev-placeholder-text">${quickSearch.tip}</span>\t\t\t\t</div>\t\t\t</div>\t\t\t<div class="wev-clear-btn"></div>\t\t\t{@if dataSource.type == \'cube\' && advancedSearch.enable}\t\t\t<a href="javascript:void(0);" class="wev-search-advanced"><div></div></a>\t\t\t{@/if}\t\t</div>\t\t {@if btns.length}\t\t<div class="wev-list-btn-container">\t\t\t{@each btns as btn, index} {@if btn.type == 1} <button class="btn wev-btn-custom" data-id="${btn.id}" data-index="${index}">$${btn.text}</button> {@else if btn.type == 2} <img class="btn wev-btn-custom" data-id="${btn.id}" data-index="${index}" src="${btn.icon}"> {@/if}\t\t\t{@/each}\t\t</div>\t\t {@/if}\t</div>\t$${loading.content}\t<div class="wev-table-view-wrapper">\t\t<ul class="wev-table-view wev-table-large-view {@if quickSearch.hide == true}wev-gap{@/if}"></ul>\t\t$${moreLoading.content}\t</div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","mService","pageExpandHelper"],function(A,i,t,x,e,n){return i.init(function(e){var s,v,k,a,L={};i.super(this,e),this.type="NLargeList",this.tpl=this.type+"_html",this.css=this.type+"_css",this.keysOfSkipedVarParse=["dataSource","dataurl","showSet"],this.dataload=!0,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:{imgfield:"",titlefield:"",otherfields:[]},cube:{imgfield:{},titlefield:{},otherfields:[]}},quickSearch:{hide:!1,tip:"",fields:[]},advancedSearch:{enable:!1},btns:[],options:{readonly:!1,showOnePage:!1},relate:{},onload:function(){},standalone:!0};this.beforeMount=function(){V.pageStart=isNaN(V.pageStart)?1:V.pageStart,V.needReplaceUrl=A.containsVariables(V.options.dataurl),V.isCube="cube"==V.dataSource.type,V.btns&&(V.btns=V.btns.filter(function(e){return e.id.startsWith("pageexpandBtn")&&(V.pageExtend=!0),!e.id.startsWith("pageexpandBtn")}))},this.mounted=function(){var n=this;a=this.pageid,s=this.$comp,k=this.$el.find(".wev-error"),v=s.find(".wev-table-view"),L.refreshList(function(){A.eval(V.onload,n.pageid)}),L.initSearch(),L.initBtns(this.pageid),s.on("click.nav","a.wev-navigate-right, .wev-file",function(e){if(!$(e.target).closest(".wev-file[data-docid]").length){var a=$(this),t=p.getDataItem(a)||{};if(!V.options.readonly)if(V.callback&&A.isFunction(V.callback.click)&&V.callback.click.call(this,t),V.isCube&&-1!=V.relate.modeid&&0==V.options.urltype){if(V.layoutUrl)return $u(V.layoutUrl+"&billid="+t.id);Mobile_NS.getLayoutUrl(V.relate.modeid,1,t.id)}else if(t.dataurl){var i=t.dataurl;-1==t.dataurl.indexOf("javascript:")?$u(i):A.eval(i,n.pageid)}}}),V.isCube&&-1!=V.relate.modeid&&!V.options.readonly&&0===V.options.urltype&&p.parseLayoutUrl()},this.reload=function(e,a){L.state.dynamicParam={},A.isObject(e)&&$.extend(L.state.dynamicParam,e),L.refreshList(a)},L.state={timestamp:0,pageNo:V.pageStart-1,currPage:0,list:[],conditions:{},dynamicParam:{}},L.initSearch=function(){var a=$(".wev-search",s),t=$("input",a);if(a.on("click.active",".wev-placeholder",function(e){a.addClass("wev-active").removeClass("wev-inactive"),t.focus()}).on("click.clear",".wev-clear-btn",function(){t.val("").focus().triggerHandler("input"),L.state.conditions={}}),t.on("blur",function(){this.value||a.removeClass("wev-active").addClass("wev-inactive")}).on("input",function(){a.toggleClass("wev-has-value",!!this.value)}).on("keyup",function(e){13===e.keyCode&&(L.state.conditions.searchKey=encodeURIComponent(this.value),L.refreshList(),this.blur())}),V.isCube&&V.advancedSearch.enable){require(["css!listAdvancedSearch_css"]);var i=(new Date).valueOf(),n=this.pageid.split("_").slice(1).join("."),r=this.id;a.on("click.advancedSearch",".wev-search-advanced",function(){require(["mService"],function(e){e.show("search",{_identity:r+"_"+i,pageid:n,id:r,searchid:V.dataSource.searchid,conditions:JSON.stringify(V.advancedSearch.fields),title:V.advancedSearch.title})})})}},L.initBtns=function(){if(V.pageExtend){var e={pageid:a,searchid:V.dataSource.searchid};n.parsePageExpand(s.find(".wev-search"),this.id,e)}V.btns.length&&$(".wev-list-btn-container",s).on("click",".btn.wev-btn-custom",function(){$(this);var e=$(this).data("index");A.eval(V.btns[e].click,a)})},L.refreshList=function(t){var i=this,e=this.components,n=e.loading,r=e.moreLoading,a=L.state;a.pageNo=V.pageStart-1,a.currPage=0,a.list=[],n.setRefs(this.$comp,"wev-refreshing"),n.show(),L.loadData(function(e,a){n.hide(),r.hide(e,a),t&&t(),A.trigger("dataload",i.pageid,i.id),A.canPullToRefresh(i.id)&&e&&require(["pullToRefreshHelper"],function(e){var a=s.closest(".page-content");"auto"===s.css("overflow-y")&&(a=s),new e({el:v,container:a.get(0),loadData:L.loadData,loading:i.components.moreLoading})})})},L.loadData=function(r){var s=L.state,o=(new Date).valueOf(),e=V.dataSource.type,l=V.showSet[e]||V.showSet.common;s.timestamp=o,s.pageNo++,s.currPage++;var a=A.getPageParam(this.pageid)||{},t=$.extend({},a,s.dynamicParam,s.conditions),i=void 0!==t.searchKey?t.searchKey||"":t.search_key||"",n={pageNo:s.pageNo,pageSize:V.pageSize,searchKey:i},d=$.extend({},n,{PAGE_NO:s.pageNo,PAGE_SIZE:V.pageSize,SEARCH_KEY:i});n=$.extend(t,n);var c=function(e){r(!1,!1),k.html(e).show()};if("cube"==e){if(!V.dataSource.searchid)return void c(A.getLabel(6112,"内容来源未配置,请联系管理员。"));var u=x.parseFieldIds(JSON.stringify(l)),v=$.extend({},n,{action:"getDatas",searchid:V.dataSource.searchid,fieldparse:u,searchFields:JSON.stringify(V.quickSearch.fields||[])}),p=A.getActionUrl(this.type,v,this.pageid);A.getJSON(p,function(e){if(e=e.data,o==s.timestamp){var a=L.convertShowDatas4CubeSearch(e,l);L.renderData(a.billDatas,a.showDatas,e.totalSize,r)}},c)}else if("mock"==e){var h,f=V.dataSource.mockData;if(v=n,A.isArray(f)){var g=JSON.stringify(l).match(/\{(\w+)\}/g);h=x.convertFieldMockData(f,s.pageNo,V.pageSize,decodeURIComponent(v.searchKey||""),g)}if(h){var w=L.convertShowDatas(h.datas.map(function(e){return e.dataMap}),l);L.renderData(w.billDatas,w.showDatas,h.totalSize,r)}else c(A.getLabel(6112,"内容来源未配置,请联系管理员。"))}else if("sql"!=e||V.standalone)if("url"==e){var m=V.dataSource.urlConfig||{},S=m.path||"",b=A.replaceVal(S,d);n.searchKey=n.searchKey?decodeURIComponent(n.searchKey):"",v=n;var y=m.formats||{};require(["apiHelper"],function(e){e.requestUrl(b,y,v,function(e){if(o==s.timestamp){var a,t=0;t=y.DATAS?(a=A.getKeyValue(y.DATAS,e),y.TOTAL_SIZE?parseInt(A.getKeyValue(y.TOTAL_SIZE,e)):a.length):(a=[{}],1);var i=L.convertShowDatas(a,l);L.renderData(i.billDatas,i.showDatas,t,r)}},c)})}else if("api"==e){var D=V.dataSource.apiConfig||{api:{},request:{},response:{}};d.SEARCH_KEY=d.SEARCH_KEY?decodeURIComponent(d.SEARCH_KEY):"",v=$.extend({},n,d),require(["apiHelper"],function(e){e.callApi(D,v,function(e){if(o==s.timestamp){var a,t=D.response.formats,i=0;i=t.DATAS?(a=A.getKeyValue(t.DATAS,e),t.TOTAL_SIZE?parseInt(A.getKeyValue(t.TOTAL_SIZE,e)):a.length):(a=[{}],1);var n=L.convertShowDatas(a,l);L.renderData(n.billDatas,n.showDatas,i,r)}},c)})}else c(A.getLabel(6113,"不支持的数据来源类型,请检查配置。"));else{var v=$.extend({},n,{action:"getSqlDatas",mec_id:this.id});p=A.getActionUrl(this.type,v,this.pageid),A.getJSON(p,function(e){if(e=e.data,o==s.timestamp){var a=L.convertShowDatas(e.datas,l);L.renderData(a.billDatas,a.showDatas,e.totalSize,r)}},c)}},L.renderData=function(e,a,t,i){var n=L.state,r=n.currPage,s=V.pageSize;A.concat(n.list,e);var o=["{@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 vm.options.readonly} wev-data-readonly"{@else}" data-ignoreviewimg{@/if}>','<div class="wev-table-checkbox"></div>','<div class="wev-media-object wev-pull-left">',"$${d.imgFieldValue}","</div>",'<div class="wev-media-body">',"$${d.titleFieldValue}","{@each d.otherFieldValue as row}",'<div class="wev-ellipsis">',"$${row}","</div>","{@/each}","</div>","</a>","</li>","{@/each}"].join(""),l=A.parseTemplate(o,{datas:a,vm:V}),d=$(l);1==r&&v.html(""),v.append(d),A.trigger("onpagechange",this.pageid,this.id,[n.pageNo,d]),p.initLazyImg();var c=r<(t%s==0?t/s:parseInt(t/s)+1)&&!V.options.showOnePage,u=t<=0;k.hide(),i(c,u),A.renderVarParser(V.needParseVar)},L.convertShowDatas4CubeSearch=function(e,r){var s=e.fieldMap,o=[],l=[];return e.datas.forEach(function(e){var a=$.extend({},e.dataMap),t=e.keyvalue,i=L.parseDataUrl(e.dataMap,V.options.dataurl,t);a._rowid=e._rowid=A.UUID(),a.id=t,a.dataurl=i,o.push(a);var n=function(i,n,e){var a=e.imgfield,t=e.otherfields,r="";x.isSettingValue(a)&&(r=x.getFieldValue(a,i,n,!0,V.options.readonly));var s=[];A.isArray(t)&&t.forEach(function(e){var t=[];e.forEach(function(e){if(x.isSettingValue(e)){var a=x.getFieldValue(e,i,n,!1,V.options.readonly);t.push('<div class="wev-col">'+a+"</div>")}}),0<t.length&&s.push(t.join(""))});var o=x.getFieldValue(e.titlefield,i,n);return{rowid:i._rowid,id:i.keyvalue,imgFieldValue:r,titleFieldValue:o,otherFieldValue:s}}(e,s,r);l.push(n)}),{billDatas:o,showDatas:l}},L.convertShowDatas=function(e,t){return{billDatas:e,showDatas:e.map(function(a){return a._rowid=A.UUID(),a.dataurl=L.parseDataUrl(a,V.options.dataurl),{rowid:(a=JSON.parse(i.replaceMutilLanguage(JSON.stringify(a),A.getUserLanguage())))._rowid,imgFieldValue:A.replaceValAndVarParser(t.imgfield,x.getFirstDataByFielddesc(t.imgfield,a)),titleFieldValue:A.replaceValAndVarParser(t.titlefield,a),otherFieldValue:t.otherfields.map(function(e){return A.replaceValAndVarParser(e,a)}).filter(function(e){return e})}})}},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?x.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 p={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){})},getDataItem:function(e){var t,i=e.closest("li.wev-table-view-cell").data("id");return L.state.list.every(function(e,a){return i!==e._rowid||(t=e,!1)}),t},initLazyImg:function(){require(["lazyImgHelper"])}};L.initSearch=L.initSearch.bind(this),L.refreshList=L.refreshList.bind(this),L.loadData=L.loadData.bind(this),L.renderData=L.renderData.bind(this),L.convertShowDatas=L.convertShowDatas.bind(this),L.initBtns=L.initBtns.bind(this)})});