NavPanel_wev8.js 6.3 KB
define("NavPanel_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}">\t{@if lite}\t<div class="wev-comp-swipe-wrap">\t\t{@each items as page,pageIndex}\t\t<div class="wev-panel-hide">\t\t\t<ul class="wev-table wev-table-view wev-grid-view">\t\t\t\t{@each page as item,index}\t\t\t\t{@if index % col === 0 }<div>{@/if}\t\t\t\t{@if item.show}\t\t\t\t <li class="wev-table-view-cell">\t\t\t\t    <a id="${item.id}" href="${item.url}" data-ajax="${item.dataAjax}" data-reload="true" data-formdata="${item.queryString}">\t\t\t\t        <img class="wev-big-icon ${item.iconClass}" src="${item.icon}"/>\t\t\t\t        <div class="wev-media-body">\t\t\t\t        \t$${item.text}\t\t\t\t        </div>\t\t\t\t        {@if item.remind}\t\t\t\t         <span class="wev-badge" data-index="${index}" {@if item.apiid}data-api="${item.uuid}_${item.apiid}"{@/if}></span>  \t\t\t\t        {@/if}\t\t\t\t    </a>\t\t\t\t </li>\t\t\t\t {@else}\t\t\t\t <li class="wev-table-view-cell"></li>\t\t\t\t {@/if}\t\t\t\t {@if (parseInt(index) + 1) % col === 0 || index == page.length - 1 }</div>{@/if}\t\t\t\t {@/each}\t\t\t</ul>\t\t</div>\t\t{@/each}\t</div>\t<div class="wev-comp-swipe-point" {@if items.length <= 1}style="display:none;"{@/if}>\t\t{@each items as page,index}\t\t<b class="{@if index == 0}curr-point{@/if}"></b>\t\t{@/each}\t</div>\t{@else}\t<div class="wev-page-portal">           {@each categories as d}              <div class="portal-category"><div><div class="portal-title"><span>${d.category}</span></div>              <div class="portal-square">              \t<ul class="portal-square-inner portal-flex">\t\t\t\t  {@each d.items as item}\t\t\t\t\t  {@if item.fillIn}\t\t\t\t\t  \t  <li style="width: calc(${perCol}% / ${col});"></li>\t\t\t\t\t  {@else}\t\t\t\t\t  \t  <li style="width: calc(${perCol}% / ${col});">\t\t\t\t\t\t  <a id="${item.id}" href="${item.url}" data-ajax="${item.dataAjax}" data-reload="true" data-formdata="${item.queryString}">\t\t\t\t\t        <img class="wev-big-icon ${item.iconClass}" src="${item.icon}"/>\t\t\t\t\t        <div class="portal-text">\t\t\t\t\t        \t$${item.text}\t\t\t\t\t        </div>\t\t\t\t\t        {@if item.remind}\t\t\t\t\t         <span class="wev-badge" data-index="${index}"  {@if item.apiid}data-api="${item.uuid}_${item.apiid}"{@/if}></span>\t\t\t\t\t        {@/if}\t\t\t\t\t       </a>\t\t\t\t\t       </li>\t\t\t\t         {@/if}   \t\t\t\t  {@/each}\t\t\t\t  </ul>\t\t\t\t  </div>\t\t\t\t</div>\t\t\t\t</div>          {@/each}    </div>\t{@/if}</div>'}),define(["mUtil","Component"],function(h,i){return i.init(function(t){var l={};i.super(this,t),this.type="NavPanel",this.tpl=this.type+"_html",this.css=["swipe_css","grid_css","mService/portal_css"];var v=this.viewModel={lite:!0,row:2,col:4,radius:!1,categories:[],badge:null,callback:{click:function(){}}};this.beforeMount=function(){var a,s,n=[],l=v.categories,r=v.row*v.col,o=v.radius,c=0,d=0,p=!1;if(0==v.categories.length){p=!0;var t={};t.items=v.items,v.categories.push(t)}if(v.lite&&!p){var i=h.getActionUrl("service.MobileCommon",{action:"getUserMecConfig",mecid:this.id});h.ajax(i,function(t){var i=t.data||{};i.status&&1==i.status&&(s=i.result)},{async:!1,dataType:"json"})}var u=s&&h.isArray(s);!0===v.badge&&(v.badge=h.getActionUrl(this.type,{action:"getBadge",mec_id:this.id,lite:v.lite,custom:u?s.toString():""},this.pageid)),v.remindApis=[];var m=[];l.forEach(function(t){m.push.apply(m,t.items.filter(function(t){return t.permission}))});var e=$.Deferred().resolve();if(m.length){var f=m.map(function(t){return t.permission});e=this.judgePermission(f).done(function(t){"1"==t.status?t.data.forEach(function(t,a){t||l.every(function(e){return e.items.every(function(t,i){return t.id!=m[a].id||(e.items.splice(i,1),!1)})})}):v.categories=[]}).fail(function(){v.categories=[]})}return e.then(function(){if(l.forEach(function(t){for(t.items.forEach(function(t){if(d++,t.iconClass=o?"wev-icon-radius":"",t.remind&&t.remindapi&&t.remindapi.api&&(t.uuid=t.remindapi.uuid=h.UUID(),t.apiid=t.remindapi.api.id,v.remindApis.push(t.remindapi),delete t.remindapi),u){var i=s.indexOf(t.id);-1<i&&(s[i]=t)}else if(p&&(t.show=!0),t.show){t.del=!0,c%r==0&&(a=[],n.push(a)),c++;var e=t.icon;h.isObject(e)&&(t.icon=e.path),a.push(t)}});t.items.length%v.col!=0;)t.items.push({fillIn:!0})}),u&&s.forEach(function(t){if(h.isObject(t)){t.iconClass=o?"wev-icon-radius":"",c%r==0&&(a=[],n.push(a)),c++,t.show=!0,t.del=!0;var i=t.icon;h.isObject(i)&&(t.icon=i.path),a.push(t)}}),v.lite){var t=c<d;if(t||u){var i={icon:"/mobilemode/piclibrary/01-E9_default/more.png",iconClass:o?"wev-icon-radius wev-portal-more":"wev-portal-more",show:!0,text:h.getLabel(131654,"更多"),fillIn:!0};c%r==0&&n.push([]),n[n.length-1].push(i)}var e=n.length-1;if(0<=e)for(;n[e].length%v.col!=0;)n[e].push({fillIn:!0});v.isUserCustom=u,v.hasMore=t,v.items=n}else v.perCol=100-v.col;v.categories=l.filter(function(t){return 0<t.items.length})})},this.mounted=function(){var a=this,t=a.$el,e=t.children(".wev-comp-"+a.type);if(e.on("click","li.wev-table-view-cell > a",function(t){if(h.isFunction(v.callback.click)){var i,e=a.id;v.items.every(function(t){if(v.id!=e)return!0;i=t}),v.callback.click.call(a,i)}}),l.loadBadge(),v.lite){if((v.hasMore||v.isUserCustom)&&$(".wev-portal-more",e).parent().on("click",function(){require(["mService"],function(t){t.show("portal",{id:a.id,pageid:a.pageid,title:h.getLabel(383193,"全部应用"),categories:v.categories,items:v.items,remindApis:v.remindApis,col:v.col,customItems:v.customItems})})}),v.items.length<=1)return;var i={continuous:!1,disableScroll:!0,stopPropagation:!1,callback:function(t,i){$(".wev-comp-swipe-point b",e).removeClass("curr-point").eq(t).addClass("curr-point")}},s=this.pageid,n=$("#"+s).hasClass("tabpanel")?s.substr(0,s.lastIndexOf("_")):s;$("#"+n).hasClass("out")&&(i.width=$(window).width()),require(["swipe"],function(){Swipe(e[0],i,function(){t.find(".wev-panel-hide").removeClass("wev-panel-hide")})})}},this.refreshBadge=function(){l.loadBadge()},this.judgePermission=function(t){var i=h.getActionUrl(this.type,{action:"judgePermission"},this.pageid);return $.ajax({url:h.completeUrl(i),data:{perms:JSON.stringify(t)},type:"POST",dataType:"json"})},l.loadBadge=function(){if(null!=v.badge){var t=this.$el.children(".wev-comp-"+this.type),i=$(".wev-badge",t);require(["remindHelper"],function(t){t.renderBadge(v.badge,i,v.remindApis)})}},l.loadBadge=l.loadBadge.bind(this)})});