service.deptbrowser_wev8.js 11.5 KB
define("mService/deptbrowser_html",function(){return'<div class="page-content dept-browser-container">\t<div class="main-container">\t\t<div class="wev-search">\t\t\t<div class="wev-search-inner">\t\t\t\t<form disabledEnterSubmit action="">\t\t\t\t\t<input type="search" placeholder="$i18n{SEAECH}">\t\t\t\t</form>\t\t\t\t<div class="wev-clear-btn"></div>\t\t\t</div>\t\t</div>\t\t\t\t<div class="tabbar-wrap">\t\t\t<div class="list-tab tabbar active">$i18n{BY_LIST}</div>\t\t\t<div class="tree-tab tabbar">$i18n{ORGANIZATION}</div>\t\t</div>\t\t\t\t<div class="content-container">\t\t\t<div class="wev-loading wev-refresh-loading"><span>$i18n{LOADING_DATA}</span></div>\t\t\t<div class="list-wrap">\t\t\t\t<ul class="wev-table-view"></ul>\t\t\t\t<div class="wev-more-btn"><span>$i18n{LOAD_MORE}</span></div>\t\t\t\t<div class="wev-no-data"></div>\t\t\t\t<div class="wev-loading wev-more-loading"><span>$i18n{LOADING_DATA}</span></div>\t\t\t</div>\t\t</div>\t\t\t\t<div class="tree-container" style="display:none">\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"><span class="arrow-down"></span></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/deptbrowser",["mUtil","i18n"],function(R,P){return{mounted:function(o,e){var r={browserId:"",selectedIds:"",closeCallback:function(){R.back()},success:function(){}};$.extend(r,e);var v=r.requestParams||{},h=-1<["164","194","169","170"].indexOf(r.browserId),u=-1<["57","168","194","170"].indexOf(r.browserId)||r.isMulti;$(".page-content",o).addClass(u?"multi":"single").addClass(h?"org":"dept");var w=0,p=1,m=[],s={init:function(e){e&&(p=1);var d=this,t=$(".root-page",o),l=t.children("li").children(".tree-data");$("ul",t.children("li")).remove();var c=$("<div class='wev-loading'><span>"+P.LOADING_DATA+"</span></div>");c.insertAfter(l);var a=R.jionActionUrl("com.api.mobilemode.web.mobile.browser.SystemBrowserAction","action=getData&browserId="+r.browserId+"&virtualtype="+p);R.getJSON(a,v,function(e){if(c.remove(),"1"==e.status){var t=e.data,a=t.datas;w=a.isVirtual,1==(p=a.companyid)&&(m=t.companys),1<m.length&&1==p&&d.bindCompanysSelect(l);var i=1<m.length?$(".arrow-down",l).prop("outerHTML"):"",s=a.name;1!=p&&m.forEach(function(e,t,a){e.companyid==p&&(s=e.name)}),l.html(s+i),d.fillTreeDatasToPage(a.subs,l)}else{var n=e.errMsg;R.getLabel(5359,"加载数据时出现错误:",function(e){alert(e+n)})}})},build:function(e){var o=this;$(".expend[data-haschild='1']",e).click(function(e){var i=$(this),t=i.find("i.wev-css-icon"),s=$(this).parent();if("1"!=i.attr("expanding")){i.attr("expanding","1");var a=s.siblings(".tree-page");if(i.hasClass("closed"))if(i.removeClass("closed"),i.addClass("opened"),t.removeClass("wev-plus-icon").addClass("wev-minus-icon"),0<a.length)a.show(),i.removeAttr("expanding");else{var n=$("<div class='wev-loading'><span>"+P.LOADING_DATA+"</span></div>");n.insertAfter(s);var d=s.attr("data-id"),l=s.attr("data-type"),c=R.jionActionUrl("com.api.mobilemode.web.mobile.browser.SystemBrowserAction","action=getData&browserId="+r.browserId+"&id="+d);R.getJSON(c,$.extend({isVirtual:w,companyid:p,type:l},v),function(e){if(n.remove(),"1"==e.status){var t=e.data.datas;o.fillTreeDatasToPage(t,s)}else{var a=e.errMsg;R.getLabel(5359,"加载数据时出现错误:",function(e){alert(e+a)}),i.removeClass("opened").addClass("closed")}i.removeAttr("expanding")})}else i.hasClass("opened")&&(a.hide(),i.removeClass("opened").addClass("closed").removeAttr("expanding"),t.addClass("wev-plus-icon").removeClass("wev-minus-icon"));e.stopPropagation()}})},fillTreeDatasToPage:function(e,t){var a=$('<ul class="tree-page"></ul>');a.insertAfter(t);for(var i=0;i<e.length;i++){var s=e[i],n=s.id,d=s.name,l=s.isParent,c=s.canClick,o=s.type,r=[];c&&(r.push("data"),-1!=O.indexOfSelectedData(n)&&r.push("selected"));var v=$('<li class="'+r.join(" ")+'" data-id="'+n+'" data-name="'+d+'"></li>'),h='<div class="tree-data" data-id="'+n+'" data-type="'+o+'">';c&&(h+='<i class="wev-css-icon wev-multi-check"></i>'),l&&(h+='<div class="expend closed" data-haschild="1"><i class="wev-css-icon wev-plus-icon"></i></div>'),h+=d,h+="</div>",v.append(h),a.append(v),c&&v.click(function(e){u?O[$(this).hasClass("selected")?"remove":"add"](this.dataset):O.onOk($(this).data("id"),$(this).data("name")),e.stopPropagation()})}this.build(a)},bindCompanysSelect:function(e){e.click(function(){for(var e=[],t=0;t<m.length;t++){var a={},i=m[t];a.menuValue=i.companyid,a.text="<div class='wev-ellipsis'>"+i.name+"</div>",a.callback=function(){p=$(this).attr("data-value"),s.init()},e.push(a)}Mobile_NS.footerMenu(e)})}},t=$(".wev-search",o),a=$("input[type='search']",o),i=$(".wev-clear-btn",o);$("form[disabledEnterSubmit]",o).keydown(function(e){if(13==e.keyCode)return!1}),a.on("input",function(){var e=this.value;t.toggleClass("wev-has-value",""!=e)}).keyup(function(e){13==e.keyCode&&(d=this.value,k.toggleTabAndLoad(),this.blur())}),i.click(function(){a.val("").focus().triggerHandler("input")});var n,f=0,d="",b=$(".content-container",o),g=$(".list-wrap .wev-table-view",b),l=$(".wev-refresh-loading",b),c=$(".wev-more-loading",b),C=$(".wev-more-btn",b),y=$(".wev-no-data",b),D=R.runtime.isWebkit()?"webkitAnimationEnd":"animationend";l[0].addEventListener(D,function(){$(this).hasClass("wev-hide")&&$(this).hide()}),C.click(function(){k.loadMore()});var k={refresh:function(e){f=0,b.addClass("wev-refreshing"),l.show().removeClass("wev-hide").addClass("wev-show");var t=(new Date).valueOf();function a(){300<=(new Date).valueOf()-t?(l.removeClass("wev-show").addClass("wev-hide"),b.removeClass("wev-refreshing")):setTimeout(a,100)}k.loadData(function(e){a()},e)},loadMore:function(){c.show(),k.loadData(function(){c.hide()})},loadData:function(a,i){if(C.hide(),y.hide(),i||d||!n){var e=R.jionActionUrl("com.api.mobilemode.web.mobile.browser.SystemBrowserAction","action=getData&list=1&browserId="+r.browserId);i&&(e+="&selectedIds="+r.selectedIds);var t=h?{subcompanyname:d,virtualCompanyid:p}:{departmentname:d,virtualCompanyid:p};$.extend(t,v),R.getJSON(e,t,function(e){var t=e.data.datas;i&&O.init(e.data.sel_datas||[]),i&&(n=t),k.loadDataByDataKey(t,a,i)})}else k.loadDataByDataKey(n,a,i)},loadDataByDataKey:function(e,d,l){var c=++f,t=R.jionActionUrl("com.api.mobilemode.web.mobile.browser.SystemBrowserAction","action=getListData");R.getJSON(t,{current:c,pageSize:20,dataKey:e},function(e){var t,a=e.data,i=a.datas.length,s=h?["{@each datas as d}",'<li class="wev-table-view-cell wev-media ${d.id|deptbrowser_selected}" data-id="${d.id}" data-title="${d.orgInfospan}">','<a href="javascript:void(0);">','<i class="wev-css-icon '+(u?"wev-multi-check":"wev-single-check")+'"></i>','<div class="wev-media-body">',"$${d.orgInfospan}",'<div class="wev-ellipsis">',"$${d.subcompanynamespan}","</div>","</div>","</a>","</li>","{@/each}"].join(""):["{@each datas as d}",'<li class="wev-table-view-cell wev-media ${d.id|deptbrowser_selected}" data-id="${d.id}" data-title="${d.departmentname}">','<a href="javascript:void(0);">','<i class="wev-css-icon '+(u?"wev-multi-check":"wev-single-check")+'"></i>','<div class="wev-media-body">',"$${d.departmentnamespan}",'<div class="wev-ellipsis">',"$${d.orgInfospan}","</div>","</div>","</a>","</li>","{@/each}"].join("");t=R.parseTemplate(s,a);var n=$(t);1==c&&g.find("*").remove(),g.append(n),n.click(function(){if(u){var e=this.dataset,t=[];$(".wev-ellipsis",$(this)).each(function(){t.push($(this).html())}),e.others=t,O[$(this).hasClass("selected")?"remove":"add"](e)}else O.onOk($(this).data("id"),$(this).data("title"))}),0==i?C.hide():20==i&&C.show(),i<=0&&c<=1&&y.show(),l&&$(".page-content",o).addClass(u?"multi":"single"),R.isFunction(d)&&d()},function(e){var t=$("<div class='wev-error'></div>");t.html(e),b.hide(),b.parent().append(t)})},toggleTabAndLoad:function(){B.addClass("active"),M.removeClass("active"),$(".tree-container",o).css("display","none"),b.css("display",""),k.refresh()}},A=$(".ok-btn",o),S=$(".result-btn",o),O={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 s=this;$.each(e,function(e,t){s.innerAdd(t)}),A.click(function(){for(var e="",t="",a=s.selectedData,i=0;i<a.length;i++)e+=a[i].id,t+=a[i].name||a[i].title,i!=a.length-1&&(e+=",",t+=",");s.onOk(e,t)}),S.click(function(){_.toggle()}),s.isReady=!0},add:function(e){this.isReady&&this.innerAdd(e)},innerAdd:function(e){this.addSelectedData(e);var t=e.id;B.hasClass("active")&&$(".wev-table-view-cell[data-id='"+t+"']",g).addClass("selected")||$("li.data[data-id='"+t+"']",o).addClass("selected"),this.refreshResultBtn()},remove:function(e){var t=e.id;B.hasClass("active")&&$(".wev-table-view-cell[data-id='"+t+"']",g).removeClass("selected")||$("li.data[data-id='"+t+"']",o).removeClass("selected"),this.removeSelectedData(t),this.refreshResultBtn()},refreshResultBtn:function(){var e=this.getSelectedNum();$("span",S).html(0<e?"("+e+")":""),0<e?S.show():S.hide()},onOk:function(e,t){var a=r.success;a&&a(e,t);var i=r.closeCallback;i&&i()}},T=$(".selected-container",o),I=$(".selected-mark",T),L=$(".selected-content",T),x=$(".list-wrap .wev-table-view",T),E=$(".select-all-btn",T),N=$(".del-btn",T),_={init:function(){var e=this;I.click(function(){e.hide()}),E.click(function(){$(".wev-table-view-cell",x).not(".selected").triggerHandler("click")}),N.click(function(){$(".wev-table-view-cell.selected",x).each(function(){O.remove(this.dataset),$(this).remove()}),O.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}${d.title}">','<a href="javascript:void(0);">','<i class="wev-css-icon wev-multi-check"></i>','<div class="wev-media-body">',"$${d.name}$${d.title}","</div>","</a>","</li>","{@/each}"].join(""),a=R.parseTemplate(t,{datas:O.selectedData}),i=$(a);x.find("*").remove(),x.append(i),i.click(function(){$(this).toggleClass("selected")}),T.show(),setTimeout(function(){I.addClass("show"),L.removeClass("hide"),e.showStatus=!0},10),B.hasClass("active")&&$(".list-wrap",b).css("overflow-y","hidden")||$(".tree-container",o).css("overflow-y","hidden")},hide:function(){var e=this;I.removeClass("show"),L.addClass("hide"),setTimeout(function(){T.hide(),e.showStatus=!1},300),B.hasClass("active")&&$(".list-wrap",b).css("overflow-y","auto")||$(".tree-container",o).css("overflow-y","auto")}},j=require("juicer");j.unregister("deptbrowser_selected"),j.register("deptbrowser_selected",function(e){return-1==O.indexOfSelectedData(e)?"":"selected"});var B=$(".list-tab",o),M=$(".tree-tab",o);B.click(function(){var e=$(this);d="",e.hasClass("active")||k.toggleTabAndLoad()}),M.click(function(){var e=$(this);e.hasClass("active")||(e.addClass("active"),B.removeClass("active"),b.css("display","none"),$(".tree-container",o).css("display",""),s.init(!0))}),k.refresh(!0),_.init()}}});