Tab_wev8.js 4.04 KB
define("Tab_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" >\t<div class="wev-tab-title">       \t\t\t\t\t\t<ul>\t\t\t{@each tabs as tab,index}\t\t\t\t<li class="wev-tab-nav {@if index == 0}wev-tab-selected{@/if}">\t\t\t\t\t${tab.tabName}\t\t\t\t\t{@if tab.remind}\t\t\t\t\t<span class="wev-badge" data-index="${index}" {@if tab.apiid}data-api="${tab.uuid}_${tab.apiid}"{@/if}></span>\t\t\t      \t{@/if}\t\t\t\t</li>\t\t\t{@/each}\t\t</ul>\t\t\t\t            \t\t\t\t\t</div>\t<div class="wev-loading wev-refresh-loading wev-tab-loading"><span>正在加载...</span></div>\t<div class="wev-tab-content">\t\t{@each tabs as tab,index}\t\t\t<div class="wev-tab-panel {@if index > 0}wev-tabpanel-hidden{@/if}">\t\t\t\t\t{@each tab.tabContent as item,i}\t\t\t\t\t{@if item.priority}\t\t\t\t\t\t<abbr id="${item.el}" data-type="${item.type}" data-tabpanel="${index}" data-priority="${item.priority}" data-loaded="false"></abbr>\t\t\t\t\t{@else}\t\t\t\t\t\t<abbr id="${item.el}" data-type="${item.type}" data-tabpanel="${index}" data-loaded="false"></abbr>\t\t\t\t\t{@/if}\t\t\t\t{@/each}\t\t\t\t\t\t\t\t\t\t\t</div>\t\t{@/each}\t</div>\t\t\t\t</div>'}),define(["mUtil","Component"],function(c,b){return b.init(function(t){var n={};b.super(this,t),this.type="Tab",this.tpl=this.type+"_html",this.css=[this.type+"_css","commonTab_css"];var p=this.viewModel={tabs:[],badge:null,lazyload:!0,standalone:!0};this.beforeMount=function(){p.remindApis=[],p.tabs.map(function(t){t.remind&&t.remindapi&&t.remindapi.api&&(t.uuid=t.remindapi.uuid=c.UUID(),t.apiid=t.remindapi.api.id,p.remindApis.push(t.remindapi),delete t.remindapi)}),!0===p.badge&&(p.badge=c.getActionUrl(this.type,{action:"getBadge",mec_id:this.id},this.pageid))},this.mounted=function(){var a=this,i=this.$el.children(".wev-comp-"+this.type),t=$(".wev-tab-nav",i),e=[];return p.lazyload?e.push(n.loadTabPanel(0)):t.each(function(){var t=$(this).index();e.push(n.loadTabPanel(t,0<t))}),t.on("click",function(){var t=$(this),e=t.index();t.hasClass("wev-tab-selected")||(t.addClass("wev-tab-selected").siblings("li.wev-tab-selected").removeClass("wev-tab-selected"),$(".wev-tab-panel",i).addClass("wev-tabpanel-hidden").eq(e).removeClass("wev-tabpanel-hidden"),n.toggleExternalCompnents(e),n.loadTabPanel(e,function(t){t.forEach(function(t){var e=c.getInstance(t,a.pageid);e.onResetView&&e.onResetView()}),require(["lazyImgHelper"])}))}),n.loadBadge(),$.when.apply($.when,e)},this.refreshBadge=function(){n.loadBadge()},this.onTabChange=function(t,e){var a=this.$el.children(".wev-comp-"+this.type),i=$(".wev-tab-nav",a),n=this.$container.find("#"+t).parent(".wev-tab-panel").index();i.on("click",function(){var t=$(this).index();c.isFunction(e)&&e(n==t)})},n.loadBadge=function(){if(null!=p.badge){var e=$(".wev-badge",this.$el);require(["remindHelper"],function(t){t.renderBadge(p.badge,e,p.remindApis)})}},n.toggleExternalCompnents=function(a){var t=this.$container,e=t.children(".page-header"),i=t.children(".page-content"),n=t.children(".page-footer"),d=function(t,e){t.length&&(t.children("abbr[data-tabpanel]").hide(),t.children('abbr[data-tabpanel="'+a+'"]').show(),i.css(e,t.height()))};d(e,"top"),d(n,"bottom")},n.loadTabPanel=function(n,d,t){c.isFunction(d)&&(t=d,d=!1);var e=this.$el.children(".wev-comp-"+this.type),a=$(".wev-tab-panel",e).eq(n),l=this.$container,r=this.pageid,s=[],o=[],h=["Calendar","Chart","BarChart","FunnelChart","GaugeChart","LineChart","PieChart","RadarChart","Countdown","GridTable","UrlGridTable","Slide","NavPanel","Toolbar","NoticeBar"];$("abbr[data-type]",a).each(function(){var t=$(this),e=this.id,a=t.attr("data-type");if(t.data("loaded"))o.push(e);else{if(d&&-1!=h.indexOf(a))return;var i={el:e,type:a,container:l,pageid:r};p.tabs[n].tabContent.forEach(function(t){t.el==e&&$.extend(i,t)}),i.priority=t.attr("data-priority"),s.push(i)}});var i=$.Deferred();return s.length?b.load(s,function(){i.resolve()},function(t){c.trigger("load",r,t.id)}):i.resolve(),t&&t(o),i},n.loadTabPanel=n.loadTabPanel.bind(this),n.toggleExternalCompnents=n.toggleExternalCompnents.bind(this),n.loadBadge=n.loadBadge.bind(this)})});