UrlList_wev8.js
7.04 KB
define("UrlList_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</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">$${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","wev-loading"],function(S,t,a){return t.init(function(e){var l,b,y={};t.super(this,e),this.type="UrlList",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){y.loadData(e)}})};var k=this.viewModel={pageSize:10,normalview:{imgfield:"",titlefield:"",otherfields:[]},normalSearch:{hide:!1,tip:""},btns:[],swipe:{},options:{readonly:!1,selectable:!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:""}],outputFormat:{DATAS:"datas",TOTAL_SIZE:"totalSize"}},onload:function(){}};function d(e){var t=e.closest(".wev-table-view-cell").index();return y.state.list[t]}this.mounted=function(){var c=this;l=this.$comp,b=l.find(".wev-table-view"),y.refreshList(function(){S.eval(k.onload,c.pageid),S.trigger("dataload",c.pageid,c.id)}),y.initSearch(),y.initBtns(this.pageid),l.on("click.nav","a.wev-navigate-right, .wev-table-checkbox, .wev-file",function(e){var t=$(this),a=d(t),i="img"===e.target.tagName.toLowerCase(),s=t.hasClass("wev-file");if(t.hasClass("wev-table-checkbox")||k.options.readonly&&!i&&!s){var n=t.closest(".wev-table-view-cell");n.toggleClass("checked");var l=y.state.checkList;if(n.hasClass("checked"))l.indexOf(a)<0&&l.push(a);else{var r=l.indexOf(a);-1<r&&l.splice(r,1)}return e.stopPropagation(),void e.preventDefault()}if(!k.options.readonly&&(k.callback&&S.isFunction(k.callback.click)&&k.callback.click.call(this,d($(this))),a.dataurl)){var o=a.dataurl;-1==a.dataurl.indexOf("javascript:")?$u(o):S.eval(o,c.pageid)}}).on("click.swipeAction",".btnBox",function(){k.swipe&&S.isFunction(k.swipe.click)&&k.swipe.click.call(this,d($(this)))})},this.reload=function(e,t){y.state.dynamicParam={},S.isObject(e)&&$.extend(y.state.dynamicParam,e),y.refreshList(t)},this.getCheckedData=function(e){S.isFunction(e)&&e(y.state.checkList)},this.toggleData=function(e){if(k.options.selectable){var t=[];b.find(".wev-table-view-cell").toggleClass("checked",e),e&&y.state.list.forEach(function(e){t.indexOf(e)<0&&t.push(e)}),y.state.checkList=t}},y.state={timestamp:0,pageNo:0,list:[],checkList:[],searchKey:"",dynamicParam:{}},y.initBtns=function(t){k.btns.length&&$(".wev-list-btn-container",l).on("click",".btn",function(){$(this);var e=$(this).data("index");S.eval(k.btns[e].click,t)})},y.initSearch=function(){var t=$(".wev-search",l),a=$("input",t);t.on("click.active",".wev-placeholder",function(e){t.addClass("wev-active").removeClass("wev-inactive"),a.focus()}).on("click.clear",".wev-clear-btn",function(){a.val("").focus().triggerHandler("input"),y.state.searchKey=""}),a.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&&(y.state.searchKey=this.value,y.refreshList(),this.blur())})},y.refreshList=function(a){var i=this,e=this.components,s=e.loading,n=e.moreLoading,t=y.state;t.pageNo=0,t.list=[],s.setRefs(this.$comp,"wev-refreshing"),s.show(),y.loadData(function(e,t){s.hide(),n.hide(e,t),a&&a(),S.canPullToRefresh(i.id)&&e&&require(["pullToRefreshHelper"],function(e){var t=l.closest(".page-content");"auto"===l.css("overflow-y")&&(t=l),new e({el:b,container:t.get(0),loadData:y.loadData,loading:i.components.moreLoading})})})},y.loadData=function(h){var u=this,f=y.state,w=(new Date).valueOf();f.timestamp=w,f.pageNo++;var m=f.pageNo,g=k.pageSize,t={};k.options.inParams.forEach(function(e){t[e.paramName]=S.fmtParamValue(e.paramValue,{pageNo:m,pageSize:g,searchKey:y.state.searchKey})}),$.extend(!0,t,S.getPageParam(this.pageid),f.dynamicParam),S.action(k.url,t,function(t){if(w==f.timestamp){var e=t;try{"string"==typeof t&&(e=JSON.parse(t))}catch(e){return S.getLabel(5294,"列表数据转换成JSON时出现异常,数据如下:",function(e){console.error(e+"\n"+t)}),void("function"==typeof h&&h.call(this,!1))}var a=k.options.outputFormat,i=e[a.DATAS],s=parseInt(e[a.TOTAL_SIZE]),n=s%g==0?s/g:parseInt(s/g)+1,l={};S.concat(f.list,i),l.datas=y.getShowDatas(i,k.normalview);var r=["{@each datas as d}",'<li class="wev-table-view-cell wev-media">','<a class="wev-navigate-right {@if d.readonly}wev-data-readonly{@/if}" href="javascript:void(0);">','<div class="wev-table-checkbox">'+(k.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">',"$${row}","</div>","{@/each}","</div>","</a>","{@if d.swipeContent}",'<div class="wev-slider-handle">$${d.swipeContent}</div>',"{@/if}","</li>","{@/each}"].join(""),o=S.parseTemplate(r,{datas:l.datas}),c=$(o);1==m&&b.html(""),b.append(c),require(["lazyImgHelper"]);var d=m<n&&!k.options.showOnePage;h(d,s<=0),S.renderVarParser(k.needParseVar),v=c,p=u.pageid,k.swipe.content&&require(["swipeHelper","css!listSwipe_css"],function(e){v.each(function(){e.swipe($(this).children("a"),p)})})}var v,p})},y.getShowDatas=function(e,a){return e.map(function(t){var e="javascript:void(0);";return!k.options.readonly&&k.options.dataurl&&(e=S.replaceValAndVarParser(k.options.dataurl,t)),t.dataurl=e,{imgFieldValue:S.replaceValAndVarParser(a.imgfield,t),titleFieldValue:S.replaceValAndVarParser(a.titlefield,t),swipeContent:function(e,l,t){if(!e)return"";var r=S.replaceValAndVarParser(e,l);return(t=t||[]).forEach(function(e){if("普通按钮"===e.paramFunction){var t=e.paramField,a=S.replaceValAndVarParser(t,l),i=encodeURIComponent(a),s=r.indexOf(a);if(~s){var n=r.indexOf(a)+a.length;r=r.substring(0,s)+i+r.substring(n)}}}),r}(k.swipe.content||"",t,k.swipe.params),readonly:k.options.readonly,otherFieldValue:a.otherfields.map(function(e){return S.replaceValAndVarParser(e,t)}).filter(function(e){return e})}})},y.refreshList=y.refreshList.bind(this),y.loadData=y.loadData.bind(this)})});