List_wev8.js 9.29 KB
define("List_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 {@if options.selectable}wev-table-check-view{@/if}"></ul>\t\t$${moreLoading.content}\t</div></div>'}),define(["mUtil","Component","fieldParseHelper","pageExpandHelper","mApi/popup","wev-loading"],function(w,t,g,i){var a=require("wev-loading");return t.init(function(e){var o,p,u={};t.super(this,e),this.type="List",this.tpl=this.type+"_html",this.keysOfSkipedVarParse=["dataurl","imgfield","titlefield","otherfields"],this.dataload=!0,this.components={loading:new a({delay:300,animation:1}),moreLoading:new a({btn:1,onclick:function(e){u.loadData(e)}})};var f=this.viewModel={pageSize:10,normalview:{imgfield:{},titlefield:{},otherfields:[]},normalSearch:{hide:!1,tip:"请输入",fields:[]},advancedSearch:{},btns:[],options:{dataurl:"",readonly:!1,selectable:!1,showOnePage:!1},onload:function(){},standalone:!0};function d(e){var t=e.closest(".wev-table-view-cell").index();return u.state.list[t]}this.beforeMount=function(){f.btns&&(f.btns=f.btns.filter(function(e){return e.id.startsWith("pageexpandBtn")&&(f.pageExtend=!0),!e.id.startsWith("pageexpandBtn")}))},this.mounted=function(){var e,r=this;f.isMock=f.contentSource&&2==f.contentSource,o=this.$comp,p=o.find(".wev-table-view"),u.refreshList(function(){w.eval(f.onload,r.pageid)}),u.initSearch(),u.initBtns(),o.on("click.nav",".wev-navigate-right, .wev-table-checkbox, .wev-file",function(e){if(!$(e.target).closest(".wev-file[data-docid]").length){var t=$(this),i=d(t),a="img"===e.target.tagName.toLowerCase(),n=t.hasClass("wev-file");if(t.hasClass("wev-table-checkbox")||f.options.readonly&&!a&&!n){var s=t.closest(".wev-table-view-cell");s.toggleClass("checked");var o=u.state.checkList;if(s.hasClass("checked"))o.indexOf(i.dataMap)<0&&o.push(i.dataMap);else{var l=o.indexOf(i.dataMap);-1<l&&o.splice(l,1)}return e.stopPropagation(),void e.preventDefault()}if(!f.options.readonly)if(f.callback&&w.isFunction(f.callback.click)&&f.callback.click.call(this,i),0==f.options.urltype){if(f.layoutUrl)return $u(f.layoutUrl+"&billid="+i.id);Mobile_NS.getLayoutUrl(f.relate.modeid,1,i.id)}else if(i.dataurl){var c=i.dataurl;-1==i.dataurl.indexOf("javascript:")?$u(c):w.eval(c,r.pageid)}}}).on("click.swipeAction",".btnBox",function(){f.swipe&&w.isFunction(f.swipe.click)&&f.swipe.click.call(this,d($(this)))}),!f.isMock&&!f.options.readonly&&0===f.options.urltype&&(e=w.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"}),w.getJSON(e,{modelid:f.relate.modeid,appid:f.relate.appid,uitype:1},function(e){f.layoutUrl=e.data||"",require(["mApi/other"])},function(e){}))},this.reload=function(e,t){u.state.dynamicParam={},w.isObject(e)&&$.extend(u.state.dynamicParam,e),u.refreshList(t)},this.getCheckedData=function(e){w.isFunction(e)&&e(u.state.checkList)},this.toggleData=function(e){if(f.options.selectable){var t=[];p.find(".wev-table-view-cell").toggleClass("checked",e),e&&u.state.list.forEach(function(e){t.indexOf(e.dataMap)<0&&t.push(e.dataMap)}),u.state.checkList=t}},u.state={timestamp:0,pageNo:0,list:[],conditions:{},dynamicParam:{},checkList:[]},u.initBtns=function(t){if(t=this.pageid,f.pageExtend){var e={pageid:t,searchid:f.sourceid};i.parsePageExpand(o.find(".wev-search"),this.id,e)}f.btns.length&&(f.btns.forEach(function(e){e.script&&!e.click&&(e.click=w.strToFunc(e.script))}),$(".wev-list-btn-container",o).on("click",".btn.wev-btn-custom",function(){var e=$(this).data("index");w.eval(f.btns[e].click,t)}))},u.initSearch=function(){var t=$(".wev-search",this.$comp),i=$("input",t);if(t.on("click.active",".wev-placeholder",function(e){t.addClass("wev-active").removeClass("wev-inactive"),i.focus()}).on("click.clear",".wev-clear-btn",function(){i.val("").focus().triggerHandler("input"),u.state.conditions={}}),i.on("blur",function(){this.value||t.removeClass("wev-active").addClass("wev-inactive")}).on("input",function(){t.toggleClass("wev-has-value",!!this.value)}).on("keyup",function(e){13===e.keyCode&&(u.state.conditions.searchKey=encodeURIComponent(this.value),u.refreshList(),this.blur())}),!f.isMock&&f.advancedSearch.enable){require(["css!listAdvancedSearch_css"]);var a=(new Date).valueOf(),n=this.pageid.split("_").slice(1).join("."),s=this.id;t.on("click.advancedSearch",".wev-search-advanced",function(){require(["mService"],function(e){e.show("search",{_identity:s+"_"+a,pageid:n,id:s,searchid:f.sourceid,conditions:JSON.stringify(f.advancedSearch.fields),title:f.advancedSearch.title})})})}},u.refreshList=function(i){var a=this,n=this.components,s=n.loading,e=u.state;s.setRefs(this.$comp,"wev-refreshing"),s.show(),e.pageNo=0,e.list=[],e.checkList=[],u.loadData(function(e,t){s.hide(),n.moreLoading.hide(e,t),i&&i(),w.trigger("dataload",a.pageid,a.id),w.canPullToRefresh(a.id)&&e&&require(["pullToRefreshHelper"],function(e){var t=o.closest(".page-content");"auto"===o.css("overflow-y")&&(t=o),new e({el:p,container:t.get(0),loadData:u.loadData,loading:a.components.moreLoading})})})},u.loadData=function(t){var e,i=u.state,a=(new Date).valueOf();i.timestamp=a,i.pageNo++;var n=f.pageSize,s=i.pageNo;if(f.isMock){var o,l=f.mockData;if(w.isArray(l)){var c=decodeURIComponent(u.state.conditions.searchKey||""),r=f.normalview.titlefield.fielddesc||"";if(r&&c){var d=[],v=r.match(/\{(\w+)\}/g);v&&(v=v.map(function(e){return e.replace(/\{|\}/g,"")}),l.forEach(function(t){v.forEach(function(e){t[e]&&-1!=new String(t[e]).toLowerCase().indexOf(c.toLowerCase())&&d.push(t)})})),l=d}o=g.convertFieldMockData(l,s,n)}o&&""!=o?u.renderData(o,t):t(!1,!0)}else{var p=g.parseFieldIds(JSON.stringify(f)),h={action:"getDatas",searchid:f.sourceid,pageNo:s,pageSize:n,fieldparse:p,searchFields:encodeURIComponent(JSON.stringify(f.normalSearch.fields||[]))};$.extend(!0,h,u.state.dynamicParam),e=w.getActionUrl(this.type,h,this.pageid),w.getJSON(e,i.conditions,function(e){e=e.data,a==i.timestamp&&u.renderData(e,t)})}},u.renderData=function(e,t){var i=u.state,s=e.fieldMap,o=[],l=[],c=w.containsVariables(f.options.dataurl);e.datas.forEach(function(e){var t={},i=e.keyvalue,a="";1==f.options.urltype&&f.options.dataurl?-1==(a=c?g.replaceVal(f.options.dataurl,e.dataMap):f.options.dataurl).indexOf("javascript:")&&(f.options.isNewLayout||-1!=a.indexOf("&billid=")||-1!=a.indexOf("?billid=")||(a+=(-1==a.indexOf("?")?"?":"&")+"billid="+i)):a="javascript:void(0);",t.id=i,t.dataurl=a,t.dataMap=e.dataMap,o.push(t);var n=function(a,n,e){var t=e.imgfield,i=e.otherfields,s=g.isSettingValue(t),o="";s&&(o=g.getFieldValue(t,a,n,!0,f.options.readonly));var l=[];return w.isArray(i)&&i.forEach(function(e){var i=[];e.forEach(function(e){if(g.isSettingValue(e)){var t=g.getFieldValue(e,a,n,!1,f.options.readonly);i.push(t)}}),0<i.length&&l.push(i)}),{id:a.keyvalue,readonly:f.options.readonly,imgFieldDisplay:s,imgFieldValue:o,titleFieldValue:g.getFieldValue(e.titlefield,a,n),otherFieldValue:l,swipeContent:function(e,o,t){if(!e)return"";var l=g.replaceVal(e,o);return(t=t||[]).forEach(function(e){if("普通按钮"===e.paramFunction){var t=e.paramField,i=g.replaceVal(t,o),a=encodeURIComponent(i),n=l.indexOf(i);if(~n){var s=l.indexOf(i)+i.length;l=l.substring(0,n)+a+l.substring(s)}}}),l}(f.swipe.content,a.dataMap,f.swipe.params)}}(e,s,f.normalview);l.push(n)}),w.concat(i.list,o);var a,n,r=["{@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">'+(f.options.selectable?'<i class="wev-css-icon wev-multi-check"></i>':"")+"</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">',"{@each row as col}",'<div class="wev-col">$${col}</div>',"{@/each}","</div>","{@/each}","</div>","</a>","{@if d.swipeContent}",'<div class="wev-slider-handle">$${d.swipeContent}</div>',"{@/if}","</li>","{@/each}"].join(""),d=w.parseTemplate(r,{datas:l}),v=$(d);1==i.pageNo&&p.html(""),p.append(v),require(["lazyImgHelper"]),t(i.pageNo<e.totalPageCount&&!f.options.showOnePage,e.totalSize<=0),w.renderVarParser(f.needParseVar),a=v,n=this.pageid,f.swipe.content&&require(["swipeHelper","css!listSwipe_css"],function(e){a.each(function(){e.swipe($(this).children("a"),n)})})},u.initSearch=u.initSearch.bind(this),u.refreshList=u.refreshList.bind(this),u.loadData=u.loadData.bind(this),u.renderData=u.renderData.bind(this),u.initBtns=u.initBtns.bind(this)})});