NList_wev8.js 17.3 KB
define("NList_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}">    <div class="wev-search" {@if quickSearch.hide == true}style="display:none;"{@/if}>        <div class="wev-search-inner">            <form action="javascript: void(0)">                <input type="search" placeholder="${quickSearch.tip}">            </form>            <div class="wev-placeholder">                <div class="wev-placeholder-inner wev-ellipsis">                    <span class="wev-small-icon wev-icon-search"></span><span class="wev-placeholder-text">${quickSearch.tip}</span>                </div>            </div>            <div class="wev-clear-btn"></div>            {@if dataSource.type == \'cube\' && advancedSearch.enable}            <a href="javascript:void(0);" class="wev-search-advanced"><div></div></a>            {@/if}        </div>        {@if btns.length}        <div class="wev-list-btn-container">            {@each btns as btn, index}                {@if btn.type == 1}                    <button class="btn" data-id="${btn.id}" data-index="${index}">$${btn.text}</button>                {@else if btn.type == 2}                    <img class="btn" data-id="${btn.id}" data-index="${index}" src="${btn.icon}">                {@/if}            {@/each}        </div>        {@/if}    </div>    $${loading.content}    <div class="wev-table-view-wrapper">        <ul class="wev-table-view{@if options.selectable} wev-table-check-view{@/if}{@if comment.enable} wev-table-comment-view{@/if}"></ul>        <div class="wev-error" style="display:none;"></div>        $${moreLoading.content}    </div></div>'}),define(["mUtil","Component","wev-loading","fieldParseHelper","i18n","mService"],function(_,o,a,N,y,i){return o.init(function(e){var s,v,D,k={},n={},b={};o.super(this,e),this.type="NList",this.tpl=this.type+"_html",this.keysOfSkipedVarParse=["dataSource","dataurl","showSet","msgTitle","msgUrl"],this.dataload=!0,this.components={loading:new a({delay:300,animation:1}),moreLoading:new a({btn:1,onclick:function(e){k.loadData(e)}})};var C=this.viewModel={dataSource:{type:"mock"},pageStart:1,pageSize:10,showSet:{common:{imgfield:"",titlefield:"",otherfields:[]},cube:{imgfield:{},titlefield:{},otherfields:[]}},comment:{enable:!1,tip:y.COMMENT,mainid:"id",atAll:!0},quickSearch:{hide:!1,tip:"",fields:[]},advancedSearch:{enable:!1},btns:[],swipe:{enable:!0,items:[]},options:{readonly:!1,selectable:!1,showOnePage:!1},onload:function(){},standalone:!0};this.beforeMount=function(){C.pageStart=isNaN(C.pageStart)?1:C.pageStart,C.standalone&&C.swipe.items.map(function(e){return e.id=_.UUID(),e}),C.needReplaceUrl=_.containsVariables(C.options.dataurl),C.isCube="cube"==C.dataSource.type},this.mounted=function(){var o=this;s=this.$comp,D=this.$el.find(".wev-error"),v=s.find(".wev-table-view"),k.refreshList(function(){_.eval(C.onload,o.pageid)}),k.initSearch(),k.initBtns(this.pageid),k.initReply.call(this),s.on("click.nav","a.wev-navigate-right, .wev-table-checkbox, .wev-file:not(.wev-comment-relate-target)",function(e){var a=$(this),t=S.getDataItem(a)||{},i="img"===e.target.tagName.toLowerCase(),n=a.hasClass("wev-file");if(a.hasClass("wev-table-checkbox")||C.options.readonly&&!i&&!n)return C.options.selectable&&a.closest(".wev-table-view-cell").toggleClass("checked"),e.stopPropagation(),void e.preventDefault();if(!C.options.readonly)if(C.callback&&_.isFunction(C.callback.click)&&C.callback.click.call(this,t),C.isCube&&-1!=C.relate.modeid&&0==C.options.urltype){if(C.layoutUrl)return $u(C.layoutUrl+"&billid="+t.id);Mobile_NS.getLayoutUrl(C.relate.modeid,1,t.id)}else if(t.dataurl){var r=t.dataurl;-1==t.dataurl.indexOf("javascript:")?$u(r):(e&&e.target&&(e.target.rowData=t),_.eval(r,o.pageid))}}).on("click.swipeAction",".btnBox",function(){var a=$(this).attr("id"),t=this,i=S.getDataItem($(this))||{};C.swipe.items.every(function(e){return e.id!==a||(e.click&&e.click.call({target:t,rowData:i}),!1)})}),C.isCube&&-1!=C.relate.modeid&&!C.options.readonly&&0===C.options.urltype&&S.parseLayoutUrl()},this.reload=function(e,a){_.isObject(e)&&$.extend(k.state.dynamicParam,e),k.refreshList(a)},this.getCheckedData=function(e){var a=[];v.find(".wev-table-view-cell.checked").each(function(){var e=S.getDataItem($(this));e&&a.push(e)}),_.isFunction(e)&&e(a)},this.toggleData=function(e){C.options.selectable&&v.find(".wev-table-view-cell").toggleClass("checked",e)},k.state={timestamp:0,pageNo:C.pageStart-1,currPage:0,list:[],dynamicParam:{}},k.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"),k.state.dynamicParam.searchKey=""}),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&&(k.state.dynamicParam.searchKey=this.value,k.refreshList(),this.blur())}),C.isCube||C.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:C.dataSource.searchid,conditions:JSON.stringify(C.advancedSearch.fields),title:C.advancedSearch.title})})})}},k.initBtns=function(a){C.btns.length&&$(".wev-list-btn-container",s).on("click",".btn",function(){$(this);var e=$(this).data("index");_.eval(C.btns[e].click,a)})},k.initReply=function(){if(C.comment.enable){require(["mApi/popup","css!comment_css","css!swipe_css","browserHelper"]);var h=this,f="cube"==C.dataSource.type&&-1!=C.relate.modeid?C.relate.modeid:"",w=function(e,a,t){_.isObject(e)&&(t=a,a=e,e=!1),i.show("replybox",{preload:e,compid:h.id,classAnimation:"show_hide_replybox",target:a,closeCallback:function(){_.back()},onSubmit:function(a,e){Object.keys(t).forEach(function(e){a.append(e,t[e])}),k.submitReply.call(h,t.mainid,a,e)}})};w(!0);var g=h.$container.find(".page-content");v.on("click.comment",".wev-comment-relate-target:not(.wev-file), .wev-comment-operate > div, .wev-comment-item",function(e){var t=$(this),a=$(e.target),i=S.getDataItem(t)||{},n=C.comment.mainid||"id",r="";if(!a.hasClass("wev-file"))if(t.hasClass("wev-comment-relate-target"))require(["browserHelper"],function(e){var a;switch(t.data("type")){case"doc":a="9";break;case"workflow":a="16";break;case"crm":a="7";break;case"project":a="8"}e.openBrowserLink(t.data("id"),t.text(),a)});else if(n&&(r=i[n]||""),r){var o=N.replaceVal(C.comment.msgUrl,i),s=N.replaceVal(C.comment.msgTitle,i),l={el:t,position:t,scroller:g,rowData:i,mainid:r,modeid:f,atAll:C.comment.atAll,tip:C.comment.tip},d={mainid:r,modeid:f,msgTitle:s,msgUrl:o};if(t.hasClass("edit")){var c=t.closest(".wev-comment").children(".wev-comment-list");l.position=c,w(l,d)}else if(t.hasClass("wev-comment-item")){var p=t.data("replyor"),v=t.data("id");if("self"==p){var u=Number(t.data("deadline")),m=(new Date).getTime();if(!isNaN(u)&&u<m)return;Mobile_NS.footerMenu([{icon:"/mobilemode/mobile/images/plugin/delete-red.png",text:'<div class="wev-comment-popmenu">'+y.DELETE+"</div>",callback:function(){Mobile_NS.confirm(y.CONFIRM_DEL_DATA,function(){var e=_.getActionUrl(h.type,{action:"deleteReply",mec_id:h.id,modeid:f,mainid:r,billid:v},h.pageid);_.getJSON(e,function(e){k.loadCommentData(r)},function(e){Mobile_NS.alert(e)})})}}])}else d.replyid=v,l.replyid=v,l.tip=y.REPLY+b[v]+":",w(l,d)}e.stopPropagation()}else _.getLabel(6175,"评论功能配置不正确(主数据id不存在),请联系管理员.",function(e){Mobile_NS.alert(e)})})}},k.submitReply=function(t,e,i){var a=_.getActionUrl(this.type,{action:"submitReply",mec_id:this.id},this.pageid);Mobile_NS.showLoader(),_.ajax(a,e,function(e){Mobile_NS.hideLoader();var a=e.status;e.data,"1"==a?k.loadCommentData(t):"0"==a&&Mobile_NS.alert(e.errMsg),i&&i()},{type:"POST",dataType:"json",processData:!1,contentType:!1,error:function(e){Mobile_NS.hideLoader(),_.getLabel(5360,"网络请求失败,建议到网速良好区域或连接室内wifi再次进行提交操作!",function(e){Mobile_NS.alert(e)}),i&&i()}})},k.refreshList=function(t){var i=this,e=this.components,n=e.loading,r=e.moreLoading,a=k.state;a.pageNo=C.pageStart-1,a.currPage=0,a.list=[],n.setRefs(this.$comp,"wev-refreshing"),n.show(),k.loadData(function(e,a){n.hide(),r.hide(e,a),t&&t(),_.trigger("dataload",i.pageid,i.id),_.canPullToRefresh(i.id)&&e&&require(["pullToRefreshHelper"],function(e){var a=s.closest(".page-content");new e({el:v,container:a.get(0),loadData:k.loadData,loading:i.components.moreLoading})})})},k.loadData=function(r){var o=k.state,s=(new Date).valueOf(),e=C.dataSource.type,l=C.showSet[e]||C.showSet.common;o.timestamp=s,o.pageNo++,o.currPage++;var a=_.getPageParam(this.pageid)||{},t=$.extend({},a,o.dynamicParam),i=void 0!==t.searchKey?t.searchKey||"":t.search_key||"",n={pageNo:o.pageNo,pageSize:C.pageSize,searchKey:i},d=$.extend({},n,{PAGE_NO:o.pageNo,PAGE_SIZE:C.pageSize,SEARCH_KEY:i});n=$.extend(t,n);var c=function(e){r(!1,!1),D.html(e).show()};if("cube"==e){if(!C.dataSource.searchid)return void c(_.getLabel(6112,"内容来源未配置,请联系管理员。"));var p=$.extend({},n,{action:"getDatas",searchid:C.dataSource.searchid,fieldparse:N.parseFieldIds(JSON.stringify(C)),searchFields:encodeURIComponent(JSON.stringify(C.quickSearch.fields||[]))}),v=_.getActionUrl(this.type,p,this.pageid);_.getJSON(v,function(e){if(e=e.data,s==o.timestamp){var a=k.convertShowDatas4CubeSearch(e,l);k.renderData(a.billDatas,a.showDatas,e.totalSize,r)}},c)}else if("mock"==e){var u,m=C.dataSource.mockData;if(p=n,_.isArray(m)){var h=JSON.stringify(l).match(/\{(\w+)\}/g);u=N.convertFieldMockData(m,o.pageNo,C.pageSize,decodeURIComponent(p.searchKey||""),h)}if(u){var f=k.convertShowDatas4MockData(u,l);k.renderData(f.billDatas,f.showDatas,u.totalSize,r)}else c(_.getLabel(6112,"内容来源未配置,请联系管理员。"))}else if("sql"!=e||C.standalone)if("url"==e){var w=C.dataSource.urlConfig||{},g=w.path||"",b=_.replaceVal(g,d),S=(p=n,w.formats||{});require(["apiHelper"],function(e){e.requestUrl(b,S,p,function(e){if(s==o.timestamp){var a,t=0;t=S.DATAS?(a=_.getKeyValue(S.DATAS,e),S.TOTAL_SIZE?parseInt(_.getKeyValue(S.TOTAL_SIZE,e)):a.length):(a=[{}],1);var i=k.convertShowDatas4Url(a,l);k.renderData(i.billDatas,i.showDatas,t,r)}},c)})}else if("api"==e){var y=C.dataSource.apiConfig||{api:{},request:{},response:{}};p=$.extend({},n,d),require(["apiHelper"],function(e){e.callApi(y,p,function(e){if(s==o.timestamp){var a,t=y.response.formats,i=0;i=t.DATAS?(a=_.getKeyValue(t.DATAS,e),t.TOTAL_SIZE?parseInt(_.getKeyValue(t.TOTAL_SIZE,e)):a.length):(a=[{}],1);var n=k.convertShowDatas4Api(a,l);k.renderData(n.billDatas,n.showDatas,i,r)}},c)})}else c(_.getLabel(6113,"不支持的数据来源类型,请检查配置。"));else{var p=$.extend({},n,{action:"getSqlDatas",mec_id:this.id});v=_.getActionUrl(this.type,p,this.pageid),_.getJSON(v,function(e){if(e=e.data,s==o.timestamp){var a=k.convertShowDatas4Sql(e.datas,l);k.renderData(a.billDatas,a.showDatas,e.totalSize,r)}},c)}},k.renderData=function(e,a,t,i){var n=k.state,r=n.currPage,o=C.pageSize;_.concat(n.list,e);var s=["{@each datas as d}",'<li data-id="${d.rowid}" class="wev-table-view-row">','<div class="wev-table-view-cell wev-media{@if d.checkMode} check-mode{@/if}{@if d.checked} checked{@/if}">','<a class="wev-navigate-right {@if d.readonly}wev-data-readonly{@/if}" href="javascript:void(0);">','<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>","{@if d.swipeContent}",'<div class="wev-slider-handle">$${d.swipeContent}</div>',"{@/if}","</div>","{@if vm.comment.enable}",'<div class="wev-comment">','<div class="wev-comment-header wev-clearfix">','<div class="wev-comment-operate">','<div class="edit">'+y.COMMENT+"</div>","</div>","</div>",'<div class="wev-comment-list">',"</div>","</div>","{@/if}","</li>","{@/each}"].join(""),l=_.parseTemplate(s,{datas:a,vm:C}),d=$(l);1==r&&v.html(""),v.append(d),S.initLazyImg();var c=r<(t%o==0?t/o:parseInt(t/o)+1)&&!C.options.showOnePage,p=t<=0;D.hide(),i(c,p),_.renderVarParser(C.needParseVar),C.comment.enable&&k.loadCommentData(e),S.initSwipe(d.children(".wev-table-view-cell"),this.pageid)},k.loadCommentData=function(e){var t="",i=!1;if(_.isString(e)){if(i=!0,!n[e])return;t=e}else t=e.map(function(e){var a=e[C.comment.mainid||"id"]||"";return a&&(n[a]=e._rowid),a}).reduce(function(e,a){return e&&(e+=","),e+a},"");var a=_.getActionUrl(this.type,{action:"getCommentDatas",mec_id:this.id,ids:t},this.pageid);_.getJSON(a,function(e){var a=e.data||{};Object.keys(a).forEach(function(e){k.renderCommentData(n[e],a[e])}),i&&0==Object.keys(a).length&&k.renderCommentData(n[t],[])})},k.renderCommentData=function(e,a){if(a||_.isArray(a)){a.forEach(function(e){b[e.billid]=e.replyorName});var t=v.find("[data-id='"+e+"']").find(".wev-comment-list"),i='                <dl>                    {@each datas as d}                    <dd class="wev-comment-item" data-id="${d.billid}" data-replyor="${d.replyorId}" data-deadline="${d.deleteDeadline}">                        <div class="wev-comment-item-content">                            <span class="username">$${d.replyorName}</span>                            {@if d.parentid && nameMap[d.parentid]}                            <span class="at">'+y.REPLY+'</span>                            <span class="username">$${nameMap[d.parentid]}</span>                            {@/if}                            <span class="split">:</span>                            <span class="content">$${d.content}</span>                        </div>                    </dd>                    {@/each}                </dl>',n=_.parseTemplate(i,{datas:a,nameMap:b});t.html(n)}},k.convertShowDatas4CubeSearch=function(e,r){var o=e.fieldMap,s=[],l=[];return e.datas.forEach(function(e){var a=$.extend({},e.dataMap),t=e.keyvalue,i=k.parseDataUrl(e.dataMap,C.options.dataurl,t);a._rowid=e._rowid=_.UUID(),a.id=t,a.dataurl=i,s.push(a);var n=function(i,n,e){var a=e.imgfield,t=e.otherfields,r=N.isSettingValue(a),o="";r&&(o=N.getFieldValue(a,i,n,!0,C.options.readonly,C.relate.empowmentType,C.relate.modeid));var s=[];return _.isArray(t)&&t.forEach(function(e){var t=[];e.forEach(function(e){if(N.isSettingValue(e)){var a=N.getFieldValue(e,i,n,!1,C.options.readonly,C.relate.empowmentType,C.relate.modeid);t.push('<div class="wev-col">'+a+"</div>")}}),0<t.length&&s.push(t.join(""))}),{rowid:i._rowid,id:i.keyvalue,readonly:C.options.readonly,imgFieldDisplay:r,imgFieldValue:o,titleFieldValue:N.getFieldValue(e.titlefield,i,n),otherFieldValue:s,swipeContent:S.getSwipeContent(i.dataMap)}}(e,o,r);l.push(n)}),{billDatas:s,showDatas:l}},k.convertShowDatas4MockData=function(e,a){return k.convertShowDatas(e.datas.map(function(e){return e.dataMap}),a)},k.convertShowDatas4Sql=function(e,a){return k.convertShowDatas(e,a)},k.convertShowDatas4Url=function(e,a){return k.convertShowDatas(e,a)},k.convertShowDatas4Api=function(e,a){return k.convertShowDatas(e,a)},k.convertShowDatas=function(e,t){var a=$p("_apiListId"),i=$p("_selectListIds"),n=$p("_dataIDKey"),r=a===this.id&&n;return{billDatas:e,showDatas:e.map(function(a){return a._rowid=_.UUID(),a.dataurl=k.parseDataUrl(a,C.options.dataurl),{rowid:(a=JSON.parse(o.replaceMutilLanguage(JSON.stringify(a),_.getUserLanguage())))._rowid,imgFieldValue:_.replaceValAndVarParser(t.imgfield,a),titleFieldValue:_.replaceValAndVarParser(t.titlefield,a),otherFieldValue:t.otherfields.map(function(e){return _.replaceValAndVarParser(e,a)}).filter(function(e){return e}),readonly:C.options.readonly,swipeContent:S.getSwipeContent(a),checkMode:r,checked:r&&~i.split(",").indexOf(a[n])}})}},k.parseDataUrl=function(e,a,t){var i="";return(!C.isCube||1!=C.options.urltype&&-1!=C.relate.modeid)&&C.isCube||!a?i="javascript:void(0);":-1==(i=C.needReplaceUrl?N.replaceVal(a,e):a).indexOf("javascript:")&&C.isCube&&(C.options.isNewLayout||-1!=i.indexOf("&billid=")||-1!=i.indexOf("?billid=")||(i+=(-1==i.indexOf("?")?"?":"&")+"billid="+t)),i};var S={parseLayoutUrl:function(){var e=_.getActionUrl("service.FormComponent",{action:"resolveDefaultLayout"});_.getJSON(e,{modelid:C.relate.modeid,appid:C.relate.appid,uitype:1},function(e){C.layoutUrl=e.data||"",require(["mApi/other"])},function(e){})},getDataItem:function(e){var t,i=e.closest("li.wev-table-view-row").data("id");return k.state.list.every(function(e,a){return i!==e._rowid||(t=e,!1)}),t},getSwipeContent:function(e){if(!C.swipe.enable||0==C.swipe.items.length)return"";var a=['<div class="btnContainer">','<div class="btnContainerInner">',"{@each datas as d}",'<div id="${d.id}" class="btnBox" {@if d.bgcolor}style="background-color:${d.bgcolor}"{@/if}>{@if d.text}${d.text}{@else}<img src="${d.icon}"/>{@/if}</div>',"{@/each}","</div>","</div>"].join("");return _.replaceVal(_.parseTemplate(a,{datas:C.swipe.items}),e)},initSwipe:function(a,t){C.swipe.enable&&0!=C.swipe.items.length&&require(["swipeHelper","css!listSwipe_css"],function(e){a.each(function(){e.swipe($(this).children("a"),t)})})},initLazyImg:function(){require(["lazyImgHelper"])}};k.initSearch=k.initSearch.bind(this),k.refreshList=k.refreshList.bind(this),k.loadData=k.loadData.bind(this),k.renderData=k.renderData.bind(this),k.convertShowDatas=k.convertShowDatas.bind(this),k.loadCommentData=k.loadCommentData.bind(this)})});