Tree_wev8.js 7.55 KB
define("Tree_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}">\t<div class="wev-search">\t\t<div class="wev-search-inner">\t\t\t<form action="javascript:void(0)">\t\t\t\t<input type="search" placeholder="${searchTips}">\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">${searchTips}</span>\t\t\t\t</div>\t\t\t</div>\t\t\t<div class="wev-clear-btn"></div>\t\t</div>\t</div>\t<div class="wev-treetitle-wrapper">\t\t<div class="wev-treetitle">\t\t\t$${treeName}\t\t</div>\t</div>\t$${loading.content}\t<div class="wev-table-view-wrapper">\t\t<ul class="wev-table-view wev-treepage wev-treesearch"></ul>\t\t<div data-title="没有数据" class="wev-no-data"></div>\t</div></div>'}),define(["mUtil","Component","wev-loading","i18n"],function(mUtil,Component,WevLoading,i18n){var Tree=function(options){var _tree={},dataMap={},$comp,$treeTitle,$treeSearch,$refreshLoading,$tableWrapper,$noData;Component.super(this,options),this.type="Tree",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0,this.components={loading:new WevLoading({delay:300,animation:1})};var vm=this.viewModel={searchTips:"Search",treeid:0,treeName:" ",details:[],standalone:!0};this.beforeMount=function(){vm.treeparam="",vm.standalone&&(mUtil.isArray(vm.details)||(vm.details=[]),vm.details.length&&(vm.treeparam=JSON.stringify({customdetail:vm.details.map(function(e){return{detailid:e.nodeid,urltype:1,appendhtml:e.suffix||""}})})))},this.mounted=function(){$comp=this.$comp,$refreshLoading=this.$el.find(".wev-refresh-loading"),$tableWrapper=this.$el.find(".wev-table-view-wrapper"),$treeTitle=this.$el.find(".wev-treetitle"),$treeSearch=this.$el.find(".wev-treesearch"),$noData=this.$el.find(".wev-no-data").attr("data-title",i18n.NO_DATA),this.$el.find(".wev-no-data:after").css("content",i18n.NO_DATA);var d=this,t=$(".wev-search",$comp),a=$(".wev-placeholder",t),i=($(".wev-placeholder-inner",a),$("input[type='search']",t)),r=$(".wev-clear-btn",t);a.click(function(){t.addClass("wev-active").removeClass("wev-inactive"),i.focus()}),i.blur(function(){this.value||t.addClass("wev-active").removeClass("wev-inactive")}).on("input",function(){t.toggleClass("wev-has-value",!!this.value)}).keyup(function(e){13==e.keyCode&&(_tree.buildSearch(i.val()),i[0].blur())}),r.click(function(){$treeSearch.hide(),$noData.hide(),$treeTitle.html(vm.treeName),i.val("").triggerHandler("input"),_tree.buildTree(),e.stopPropagation()}),$comp.on("click","li.wev-table-view-cell,li.wev-table-view-cell i",function(e){var t=$(this);if(t.hasClass("wev-table-view-cell"))_tree.doAction(t,d.pageid);else{var a=t.closest("li"),i=a.data("id"),r=a.data("name"),n=t.hasClass("open");n?a.children("ul.wev-treepage").hide():_tree.buildTree(i,r,a),t[n?"removeClass":"addClass"]("open wev-minus-icon"),t[n?"addClass":"removeClass"]("wev-plus-icon")}e.stopPropagation()}),$treeTitle.on("click","i.clear-search",function(e){$treeSearch.hide(),$noData.hide(),$treeTitle.html(vm.treeName),i.val("").triggerHandler("input"),_tree.buildTree(),e.stopPropagation()}),_tree.refreshTree()};var treeTimestamp=0;_tree.doAction=function($node,pageid){var nodeid=$node.data("id");if(nodeid&&dataMap[nodeid]){var nodeData=dataMap[nodeid],nodeurl=nodeData.nodeurl_mobile,clickFn;if(vm.standalone){if(vm.details.forEach(function(e){0==nodeid.indexOf(String(e.nodeid)+"_")&&(clickFn=e.click)}),mUtil.isFunction(clickFn))return clickFn.call($node[0],nodeData.billdata)}else if(nodeurl){if(0===nodeurl.indexOf("javascript"))mUtil.eval(nodeurl,pageid);else if(0===nodeurl.indexOf("mobilemode:refreshList")){var refreshParam=nodeurl.split(":"),callback=refreshParam[5],refreshedCallbackFn=callback&&function(){var targetFn=eval("this."+callback);"function"==typeof targetFn&&targetFn.call(this,nodeData.billdata)},listPageid=refreshParam[2],refreshListPage=function(){Mobile_NS.refreshSpecifiedList(listPageid,refreshParam[3],refreshParam[4],refreshedCallbackFn)};if(mUtil.getPageId(listPageid)==pageid)refreshListPage();else if(($("#"+pageid).attr("data-form")||"").includes("slide")&&($("#"+mUtil.getPageId(listPageid)).attr("data-form")||"").includes("slide"))refreshListPage(),Mobile_NS.closeTopfloorPage();else{var opts={onPageLoad:refreshListPage};$u("/mobilemode/appHomepageView.jsp?appHomepageId="+listPageid,opts)}}else $u(nodeurl);return}if("true"==nodeData.isParent){var isOpen=$node&&$node.children("div").children("i").hasClass("open");isOpen?$node.children("ul.wev-treepage").hide():_tree.buildTree(nodeid,nodeData.name,$node),$node&&$node.children("div").children("i").toggleClass("wev-plus-icon").toggleClass("open wev-minus-icon")}}else mUtil.getLabel(5293,"不正确",function(e){mUtil.console.error("id("+nodeid+") "+e)})},_tree.showLoading=function(e,t){var a=this.components.loading,i=$("<div class='wev-loading'><span>"+i18n.LOADING_DATA+"</span></div>");return t?e&&e.append(i):(a.setRefs(this.$comp,"wev-refreshing"),a.show()),i},_tree.hideLoading=function(e,t){if((new Date).valueOf()-treeTimestamp<300&&e)return setTimeout(function(){_tree.hideLoading(e,t)},300);t?e&&e.remove():this.components.loading.hide()},_tree.refreshTree=function(){_tree.buildTree()},_tree.buildTree=function(e,t,a,i){e=e||"";var r=$tableWrapper.find(".wev-treepage[data-pid='"+e+"']");if(!r.length)return _tree.loadTreeData(e,t,i,a);r.show(),$noData.toggle(!e&&0===r.children("li").length),mUtil.isFunction(i)&&i(e,t)},_tree.loadTreeData=function(i,r,n,d){var l=this,s=(new Date).valueOf();treeTimestamp=s;var o=_tree.showLoading(d,i),e=mUtil.getActionUrl(this.type,{action:"getTreeData",mec_id:vm.id},this.pageid);mUtil.getJSON(e,{treeid:vm.treeid,pid:i,appid:mUtil.getAppid()||"",treeparam:vm.treeparam},function(e){if(s==treeTimestamp){_tree.setDatas(e.datas),_tree.hideLoading(o,i);var t=['<ul class="wev-table-view wev-treepage" data-pid="'+i+'">',"{@each datas as d}",'<li class="wev-table-view-cell" data-id="${d.id}" data-name="$${d.name}" nodeparent="$${d.isParent}">',"<div>","$${d.name}$${d.appendhtml}",'{@if d.isParent == "true"}',"<em>$${d.childNum}</em>",'<i class="wev-css-icon wev-plus-icon"></i>',"{@/if}","</div>","</li>","{@/each}","</ul>"].join("");e.datas&&e.datas.map(function(e){return e.appendhtml=mUtil.replaceSysVars(e.appendhtml),e});var a=mUtil.parseTemplate(t,e);(d||$tableWrapper).append(a),$noData.toggle(!i&&!e.datas.length),mUtil.isFunction(n)&&n(i,r),mUtil.trigger("dataload",l.pageid,l.id)}})},_tree.buildSearch=function(e){if(mUtil.isEmpty(e))return $treeSearch.html(""),void _tree.refreshTree();$comp.addClass("wev-refreshing"),$refreshLoading.show().removeClass("wev-hide").addClass("wev-show");var i=(new Date).valueOf();treeTimestamp=i;var t=mUtil.getActionUrl(this.type,{action:"searchTree",mec_id:vm.id},this.pageid);mUtil.getJSON(t,{treeid:vm.treeid,appid:mUtil.getAppid()||"",searchKey:e,treeparam:vm.treeparam},function(e){if(i==treeTimestamp){_tree.setDatas(e.datas),$tableWrapper.children(".wev-treepage:not(.wev-treesearch)").hide(),_tree.hideLoading();var t=["{@each datas as d}",'<li class="wev-table-view-cell" data-id="${d.id}" data-name="$${d.name}" nodeparent="$${d.isParent}">',"<div>","$${d.name}$${d.appendhtml}","</div>","</li>","{@/each}"].join(""),a=mUtil.parseTemplate(t,e);$noData.toggle(!e.datas.length),$treeSearch.html(a).show()}})},_tree.setDatas=function(e){(e=e||[]).forEach(function(e){var t=e.id;dataMap[t]||(dataMap[t]=e)})},_tree.loadTreeData=_tree.loadTreeData.bind(this),_tree.showLoading=_tree.showLoading.bind(this),_tree.hideLoading=_tree.hideLoading.bind(this),_tree.buildSearch=_tree.buildSearch.bind(this)};return Component.init(Tree)});