LargeList_wev8.js 10.1 KB
define("LargeList_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}">\t<div class="wev-search" {@if normalSearch.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="${normalSearch.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">${normalSearch.tip}</span>\t\t\t\t</div>\t\t\t</div>\t\t\t<div class="wev-clear-btn"></div>\t\t\t{@if 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}\t\t\t<button id="${btn.id}" data-index="${index}" class="btn wev-btn-custom">$${btn.text}</button>\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 normalSearch.hide == true}wev-gap{@/if}"></ul>\t\t$${moreLoading.content}\t</div></div>'}),define(["mUtil","Component","fieldParseHelper","pageExpandHelper","mApi/popup","wev-loading"],function(f,a,l,t){var i=require("wev-loading");return a.init(function(e){var r,s,v={};a.super(this,e),this.type="LargeList",this.tpl=this.type+"_html",this.css=this.type+"_css",this.keysOfSkipedVarParse=["dataurl","imgfield","titlefield","otherfields"],this.dataload=!0,this.components={loading:new i({delay:300,animation:1}),moreLoading:new i({btn:1,onclick:function(e){v.loadData(e)}})};var u=this.viewModel={pageSize:10,normalview:{imgfield:{},titlefield:{},otherfields:[]},normalSearch:{hide:!1,tip:"请输入",fields:[]},advancedSearch:{},btns:[],options:{dataurl:"",readonly:!1,showOnePage:!1,inParams:[{paramName:"pageNo",paramValue:"{PAGE_NO}",isSystem:"1",desc:""},{paramName:"pageSize",paramValue:"{PAGE_SIZE}",isSystem:"1",desc:""},{paramName:"searchKey",paramValue:"{SEARCH_KEY}",isSystem:"1",desc:""}],outFormat:{DATAS:"datas",TOTAL_SIZE:"totalSize"}},onload:function(){},standalone:!0};function h(e,t){return e.map(function(a){var e="javascript:void(0);";return!u.options.readonly&&u.options.dataurl&&(e=f.replaceValAndVarParser(u.options.dataurl,a)),a.dataurl=e,{imgFieldValue:f.replaceValAndVarParser(t.imgfield,a),titleFieldValue:f.replaceValAndVarParser(t.titlefield,a),readonly:u.options.readonly,otherFieldValue:t.otherfields.map(function(e){return f.replaceValAndVarParser(e,a)}).filter(function(e){return e})}})}this.beforeMount=function(){0<u.sourceid&&(u.contentSource=2),u.mockData&&(u.contentSource=3),u.btns&&(u.btns=u.btns.filter(function(e){return e.id.startsWith("pageexpandBtn")&&(u.pageExtend=!0),!e.id.startsWith("pageexpandBtn")}))},this.mounted=function(){var e,c=this;r=this.$comp,s=r.find(".wev-table-view"),v.refreshList(function(){f.eval(u.onload,c.pageid),f.trigger("dataload",c.pageid,c.id)}),v.initSearch(),v.initBtns(),r.on("click.nav",".wev-navigate-right, .wev-table-checkbox, .wev-file",function(e){if(!$(e.target).closest(".wev-file[data-docid]").length){var a,t=$(this),i=(a=t.closest(".wev-table-view-cell").index(),v.state.list[a]),n="img"===e.target.tagName.toLowerCase(),o=t.hasClass("wev-file");if(t.hasClass("wev-table-checkbox")||u.options.readonly&&!n&&!o){var r=t.closest(".wev-table-view-cell");r.toggleClass("checked");var s=v.state.checkList;if(r.hasClass("checked"))s.indexOf(i.id)<0&&s.push(i.id);else{var l=s.indexOf(i.id);-1<l&&s.splice(l,1)}return e.stopPropagation(),void e.preventDefault()}if(!u.options.readonly)if(u.callback&&f.isFunction(u.callback.click)&&u.callback.click.call(this,i),2==u.contentSource&&0==u.options.urltype){if(u.layoutUrl)return $u(u.layoutUrl+"&billid="+i.id);Mobile_NS.getLayoutUrl(u.relate.modeid,1,i.id)}else if(i.dataurl){var d=i.dataurl;-1==i.dataurl.indexOf("javascript:")?$u(d):f.eval(d,c.pageid)}}}),!u.options.readonly&&2==u.contentSource&&0===u.options.urltype&&(e=f.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"}),f.getJSON(e,{modelid:u.relate.modeid,appid:u.relate.appid,uitype:1},function(e){u.layoutUrl=e.data||"",require(["mApi/other"])},function(e){}))},this.reload=function(e,a){v.state.dynamicParam={},f.isObject(e)&&$.extend(v.state.dynamicParam,e),v.refreshList(a)},v.state={timestamp:0,pageNo:0,list:[],conditions:{},dynamicParam:{},checkList:[]},v.initBtns=function(){var a=this.pageid;if(u.pageExtend){var e={pageid:a,searchid:u.sourceid};t.parsePageExpand(r.find(".wev-search"),this.id,e)}u.btns.length&&(u.btns.forEach(function(e){e.script&&!e.click&&(e.click=f.strToFunc(e.script))}),$(".wev-list-btn-container",r).on("click",".btn.wev-btn-custom",function(){$(this);var e=$(this).data("index");f.eval(u.btns[e].click,a)}))},v.initSearch=function(){var a=$(".wev-search",this.$comp),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"),v.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&&(v.state.conditions.searchKey=encodeURIComponent(this.value),v.state.conditions.searchFields=JSON.stringify(u.normalSearch.fields||[]),v.refreshList(),this.blur())}),u.advancedSearch.enable){require(["css!listAdvancedSearch_css"]);var i=(new Date).valueOf(),n=this.pageid.split("_").slice(1).join("."),o=this.id;a.on("click.advancedSearch",".wev-search-advanced",function(){require(["mService"],function(e){e.show("search",{_identity:o+"_"+i,pageid:n,id:o,searchid:u.sourceid,conditions:JSON.stringify(u.advancedSearch.fields),title:u.advancedSearch.title})})})}},v.refreshList=function(t){var i=this,n=this.components,o=n.loading,e=v.state;o.setRefs(this.$comp,"wev-refreshing"),o.show(),e.pageNo=0,e.list=[],v.loadData(function(e,a){o.hide(),n.moreLoading.hide(e,a),t&&t(),f.canPullToRefresh(i.id)&&e&&require(["pullToRefreshHelper"],function(e){var a=r.closest(".page-content");new e({el:s,container:a.get(0),loadData:v.loadData,loading:i.components.moreLoading})})})},v.loadData=function(e){2==u.contentSource?v.loadDataFromFormmode(e):3==u.contentSource?v.loadDataFromMock(e):v.loadDataFromURL(e)},v.loadDataFromMock=function(e){var a=u.mockData;if(f.isArray(a)){var t=v.state,i=decodeURIComponent(v.state.conditions.searchKey||""),n=u.normalview.titlefield||"";if(n&&i){var o=[],r=n.match(/\{(\w+)\}/g);r&&(r=r.map(function(e){return e.replace(/\{|\}/g,"")}),a.forEach(function(a){r.forEach(function(e){a[e]&&-1!=new String(a[e]).toLowerCase().indexOf(i.toLowerCase())&&o.push(a)})})),a=o}t.pageNo++;var s=t.pageNo,l=u.pageSize,d=a.length,c=0<d%l?parseInt(d/l)+1:parseInt(d/l);s<c?a=a.slice((s-1)*l,s*l):s==c&&(a=a.slice((s-1)*l)),f.concat(t.list,a);var p=h(a,u.normalview);v.renderView(p,d,c,e)}else e(!1,!0)},v.loadDataFromURL=function(s){var l=v.state,d=(new Date).valueOf();l.timestamp=d,l.pageNo++;var a=l.pageNo,c=u.pageSize,t={};u.options.inParams.forEach(function(e){t[e.paramName]=f.fmtParamValue(e.paramValue,{pageNo:a,pageSize:c,searchKey:v.state.conditions.searchKey})}),$.extend(!0,t,f.getPageParam(this.pageid),l.dynamicParam),f.action(u.sourceurl,t,function(a){if(d==l.timestamp){var e=a;try{"string"==typeof a&&(e=JSON.parse(a))}catch(e){return f.getLabel(5294,"列表数据转换成JSON时出现异常,数据如下:",function(e){console.error(e+"\n"+a)}),void("function"==typeof s&&s.call(this,!1))}var t=u.options.outFormat,i=e[t.DATAS],n=parseInt(e[t.TOTAL_SIZE]),o=n%c==0?n/c:parseInt(n/c)+1;f.concat(l.list,i);var r=h(i,u.normalview);v.renderView(r,n,o,s)}})},v.loadDataFromFormmode=function(a){var t=v.state,i=(new Date).valueOf();t.timestamp=i,t.pageNo++;var e=l.parseFieldIds(JSON.stringify(u)),n={action:"getDatas",searchid:u.sourceid,pageNo:t.pageNo,pageSize:u.pageSize,fieldparse:e};$.extend(!0,n,t.dynamicParam);var o=f.getActionUrl(this.type,n,this.pageid);f.getJSON(o,t.conditions,function(e){if(e=e.data,i==t.timestamp){var n=e.fieldMap,o=[],r=[],s=f.containsVariables(u.options.dataurl);e.datas.forEach(function(e){var a={},t=e.keyvalue,i="";1==u.options.urltype&&u.options.dataurl?-1==(i=s?l.replaceVal(u.options.dataurl,e.dataMap):u.options.dataurl).indexOf("javascript:")&&(u.options.isNewLayout||-1!=i.indexOf("&billid=")||-1!=i.indexOf("?billid=")||(i+=(-1==i.indexOf("?")?"?":"&")+"billid="+t)):i="javascript:void(0);",a.id=t,a.dataurl=i,a.dataMap=e.dataMap,o.push(a),r.push(function(i,n,e){var a=e.imgfield,t=e.otherfields,o=l.isSettingValue(a),r="";o&&(r=l.getFieldValue(a,i,n,!0,u.options.readonly));var s=[];return f.isArray(t)&&t.forEach(function(e){var t=[];e.forEach(function(e){if(l.isSettingValue(e)){var a=l.getFieldValue(e,i,n,!1,u.options.readonly);t.push(a)}}),0<t.length&&s.push(t)}),{id:i.keyvalue,readonly:u.options.readonly,imgFieldDisplay:o,imgFieldValue:r,titleFieldValue:l.getFieldValue(e.titlefield,i,n),otherFieldValue:s}}(e,n,u.normalview))}),f.concat(t.list,o),v.renderView(r,e.totalSize,e.totalPageCount,a)}})},v.renderView=function(e,a,t,i){var n=["{@each datas as d}",'<li class="wev-table-view-cell wev-media">','<a href="javascript:void(0);" class="wev-navigate-right{@if d.readonly == 1} 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">','{@if typeof(row) === "object"}',"{@each row as col}",'<div class="wev-col">$${col}</div>',"{@/each}","{@else}","$${row}","{@/if}","</div>","{@/each}","</div>","</a>","</li>","{@/each}"].join(""),o=f.parseTemplate(n,{datas:e}),r=$(o);1==v.state.pageNo&&s.html(""),s.append(r),require(["lazyImgHelper"]),i(v.state.pageNo<t&&!u.options.showOnePage,a<=0),f.renderVarParser(u.needParseVar)},v.initSearch=v.initSearch.bind(this),v.refreshList=v.refreshList.bind(this),v.loadDataFromFormmode=v.loadDataFromFormmode.bind(this),v.loadDataFromURL=v.loadDataFromURL.bind(this),v.loadDataFromMock=v.loadDataFromMock.bind(this),v.initBtns=v.initBtns.bind(this)})});