service.treebrowser_wev8.js
6.58 KB
define("mService/treebrowser_html",function(){return'<div class="page-content tree-browser-container">\t<div class="main-container">\t\t<div class="tree-container">\t\t\t<ul class="tree-page root-page">\t\t\t\t<li>\t\t\t\t\t<a class="tree-data root-data closed" data-id="0_0" data-type="" data-haschild="1"></a>\t\t\t\t</li>\t\t\t</ul>\t\t</div>\t</div>\t<div class="result-container">\t\t<div class="result-btn">$i18n{SELECTED}<span></span></div>\t\t<div class="ok-btn">$i18n{SURE}<span></span></div>\t</div>\t<div class="selected-container">\t\t<div class="selected-mark"></div>\t\t<div class="selected-content hide">\t\t\t<label>\t\t\t\t<div class="select-all-btn">$i18n{SELECT_ALL}</div>\t\t\t\t<div class="del-btn">$i18n{DELETE}</div>\t\t\t</label>\t\t\t<div class="list-wrap">\t\t\t\t<ul class="wev-table-view"></ul>\t\t\t</div>\t\t</div>\t</div></div>'}),define("mService/treebrowser",["mUtil","i18n"],function(u,f){return{mounted:function(s,e){var i={browserId:"",browserName:"",selectedIds:"",closeCallback:function(){u.back()},success:function(){}};$.extend(i,e);var m="257"==i.browserId||i.isMulti;$(".page-content",s).addClass(m?"multi":"single");var t={init:function(){var l=this,a=$(".root-page",s).children("li").children(".tree-data"),e=u.jionActionUrl("com.api.mobilemode.web.mobile.browser.TreeBrowserAction","action=getTreeRootData");u.getJSON(e,{browserName:i.browserName},function(e){var t=e.data;a.html(t.name)}),a.attr("data-type",i.browserName),a.on("click",function(){var d=$(this);if("1"!=d.attr("expanding")){d.attr("expanding","1");var e=d.siblings(".tree-page");if(d.hasClass("closed"))if(d.removeClass("closed"),d.addClass("opened"),0<e.length)e.show(),d.removeAttr("expanding");else{var n=$("<div class='wev-loading'><span>"+f.LOADING_DATA+"</span></div>");n.insertAfter(d);var t=d.attr("data-type"),a=d.attr("data-id"),s=u.jionActionUrl("com.api.mobilemode.web.mobile.browser.TreeBrowserAction","action=getTreeData&type="+t+"&pid="+a+"&selectedIds="+i.selectedIds);u.getJSON(s,function(e){if(n.remove(),"1"==e.status){var t=e.data,a=t.datas,s=t.isonlyleaf;l.fillTreeDatasToPage(a,d,s),p.init(t.sel_datas)}else{var i=e.errMsg;u.getLabel(5359,"加载数据时出现错误:",function(e){alert(e+i)}),d.removeClass("opened").addClass("closed")}d.removeAttr("expanding")})}else d.hasClass("opened")&&(e.hide(),d.removeClass("opened").addClass("closed").removeAttr("expanding"))}}).triggerHandler("click")},build:function(e){var o=this;$(".expend[data-haschild='1']",e).click(function(e){var d=$(this),t=d.children("i.wev-css-icon"),n=$(this).parent();if("1"!=d.attr("expanding")){d.attr("expanding","1");var a=n.siblings(".tree-page");if(d.hasClass("closed"))if(d.removeClass("closed"),d.addClass("opened"),t.removeClass("wev-plus-icon").addClass("wev-minus-icon"),0<a.length)a.show(),d.removeAttr("expanding");else{var l=$("<div class='wev-loading'><span>"+f.LOADING_DATA+"</span></div>");l.insertAfter(n);var s=n.attr("data-type"),i=n.attr("data-id"),c=u.jionActionUrl("com.api.mobilemode.web.mobile.browser.TreeBrowserAction","action=getTreeData&type="+s+"&pid="+i);u.getJSON(c,function(e){if(l.remove(),"1"==e.status){var t=e.data,a=t.datas,s=t.isonlyleaf;o.fillTreeDatasToPage(a,n,s)}else{var i=e.errMsg;u.getLabel(5359,"加载数据时出现错误:",function(e){alert(e+i)}),d.removeClass("opened").addClass("closed")}d.removeAttr("expanding")})}else d.hasClass("opened")&&(a.hide(),d.removeClass("opened").addClass("closed").removeAttr("expanding"),t.addClass("wev-plus-icon").removeClass("wev-minus-icon"));e.stopPropagation()}})},fillTreeDatasToPage:function(e,t,a){var s=$('<ul class="tree-page"></ul>');s.insertAfter(t);for(var i=0;i<e.length;i++){var d=e[i],n=d.id,l=d.name,c=d.type,o=d.hasChild,r=!0,v="data";"1"==a&&o&&(v="",r=!1),v+=-1==p.indexOfSelectedData(n)?"":" selected";var h=$('<li class="'+v+'" data-id="'+n+'" data-name="'+l+'"></li>'),u='<div class="tree-data" data-id="'+n+'" data-type="'+c+'">';r&&(u+='<i class="wev-css-icon '+(m?"wev-multi-check":"wev-single-check")+'"></i>'),o&&(u+='<div class="expend closed" data-haschild="1"><i class="wev-css-icon wev-plus-icon"></i></div>'),u+=l,u+="</div>",h.append(u),s.append(h),r&&h.click(function(e){m?p[$(this).hasClass("selected")?"remove":"add"](this.dataset):p.onOk($(this).data("id"),$(this).data("name")),e.stopPropagation()})}this.build(s)}},a=$(".ok-btn",s),d=$(".result-btn",s),p={isReady:!1,selectedData:[],addSelectedData:function(e){this.selectedData.push(e)},indexOfSelectedData:function(e){for(var t=-1,a=0;a<this.selectedData.length;a++)if(this.selectedData[a].id==e){t=a;break}return t},removeSelectedData:function(e){var t=this.indexOfSelectedData(e);-1!=t&&this.selectedData.splice(t,1)},getSelectedNum:function(){return this.selectedData.length},init:function(e){var i=this;$.each(e,function(e,t){i.innerAdd(t)}),a.click(function(){for(var e="",t="",a=i.selectedData,s=0;s<a.length;s++)e+=a[s].id,t+=a[s].name,s!=a.length-1&&(e+=",",t+=",");i.onOk(e,t)}),d.click(function(){h.toggle()}),i.isReady=!0},add:function(e){this.isReady&&this.innerAdd(e)},innerAdd:function(e){this.addSelectedData(e);var t=e.id;$("li.data[data-id='"+t+"']",s).addClass("selected"),this.refreshResultBtn()},remove:function(e){var t=e.id;$("li.data[data-id='"+t+"']",s).removeClass("selected"),this.removeSelectedData(t),this.refreshResultBtn()},refreshResultBtn:function(){var e=this.getSelectedNum();$("span",d).html(0<e?"("+e+")":""),0<e?d.show():d.hide()},onOk:function(e,t){var a=i.success;a&&a(e,t);var s=i.closeCallback;s&&s()}},n=$(".selected-container",s),l=$(".selected-mark",n),c=$(".selected-content",n),o=$(".list-wrap .wev-table-view",n),r=$(".select-all-btn",n),v=$(".del-btn",n),h={init:function(){var e=this;l.click(function(){e.hide()}),r.click(function(){$(".wev-table-view-cell",o).not(".selected").triggerHandler("click")}),v.click(function(){$(".wev-table-view-cell.selected",o).each(function(){p.remove(this.dataset),$(this).remove()}),p.getSelectedNum()<=0&&e.hide()})},showStatus:!1,toggle:function(){this[this.showStatus?"hide":"show"]()},show:function(){var e=this,t=["{@each datas as d}",'<li class="wev-table-view-cell wev-media" data-id="${d.id}" data-name="${d.name}">','<a href="javascript:void(0);">','<i class="wev-css-icon wev-multi-check"></i>','<div class="wev-media-body">',"$${d.name}","</div>","</a>","</li>","{@/each}"].join(""),a=u.parseTemplate(t,{datas:p.selectedData}),s=$(a);o.find("*").remove(),o.append(s),s.click(function(){$(this).toggleClass("selected")}),n.show(),setTimeout(function(){l.addClass("show"),c.removeClass("hide"),e.showStatus=!0},10)},hide:function(){var e=this;l.removeClass("show"),c.addClass("hide"),setTimeout(function(){n.hide(),e.showStatus=!1},300)}};t.init(),h.init()}}});