NoticeBar_wev8.js
4.23 KB
define("NoticeBar_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}"> <div class="wev-notice-header{@if header.icon} wev-notice-header-icon{@else if header.text} wev-notice-header-text{@/if}" style="height: ${height}px;"> {@if header.icon} <i style="background-image: url(${header.icon})"></i> {@/if} {@if header.text} <span>$${header.text}</span> {@/if} </div> <div class="wev-notice-body"> <div class="swiper-container" style="height: ${height}px;"> <div class=\'swiper-wrapper wev-clearfix\'> {@each items as item,index} <div class="swiper-slide" data-index="${item.indexid}"> <div class="wev-notice-content">$${item.content}</div> </div> {@/each} </div> </div> </div></div>'}),define(["mUtil","Component","idangerous"],function(f,t){return t.init(function(e){var p,u={};t.super(this,e),this.type="NoticeBar",this.tpl=this.type+"_html",this.keysOfSkipedVarParse=["config"],this.css=this.type+"_css";var v=this.viewModel={header:{text:"",icon:""},items:[],height:40,autoplay:3e3,direction:"horizontal",totalSize:-1};this.beforeMount=function(){var e=this.pageid;if(v.config){var t=f.getInstance(v.config.source,e),a=v.config;if(!t)return void f.getLabel(6066,"数据来源配置不正确",function(e){f.console.error(e)});if(t.getData){var i=[],n=t.getData(),r=a.template;r=u.replace(a.keymap,r);var s=v.totalSize;f.isArray(n)?n.every(function(e,t){return(-1==s||-1!=s&&t<s)&&(i.push({content:f.replaceValAndVarParser(r,n[t]),data:n[t]}),!0)}):i.push({content:f.replaceValAndVarParser(r,n),data:n}),v.items=i}else f.getLabel(6067,"当前数据集控件版本较低,缺少getData方法",function(e){f.console.error(e)})}v.items.forEach(function(e,t){e.indexid=f.UUID()})},this.mounted=function(){var e,c=this,o=this.$el,a=this.$container,i=this.$el.find(".wev-notice-header"),n=this.$el.find(".swiper-container"),t=function(){var t=i.find("span").height()||v.height;n.find(".swiper-slide").each(function(){var e=$(this).height();t=t<e?e:t}),i.css("height",t),n.css("height",t),p=new Swiper(n[0],{loop:1<v.items.length,autoplayDisableOnInteraction:!1,height:t,autoplay:v.autoplay,mode:v.direction,onInit:function(){n.find(".swiper-slide-duplicate").each(function(){var e=f.UUID();$(this).find("img[data-groupid]").data("groupid","duplicate_group_"+e)})}})};v.needParseVar?e=setInterval(function(){0==n.find("em[class^='var_']").length&&(t(),clearInterval(e))},50):t();var r,s,l,d=a.children(".page-content").children(".page-scroller"),h=a.hasClass("tabpanel")||d.hasClass("tabpanel");h&&(d.hasClass("tabpanel")&&(a=d),r=a.closest(".page"),s=a.attr("id"),l=r.find("a[href='#"+s+"']")),function(){var e=new(window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver)(function(e){e.forEach(function(e){if("attributes"==e.type){var t=e.attributeName,a=e.target.classList,i="style"==t&&"none"!==e.target.style.display,n="class"==t&&a.contains("wev-tabbar-item")&&a.contains("wev-tabbar-active"),r="class"==t&&a.contains("wev-tab-panel")&&!a.contains("wev-tabpanel-hidden"),s=i&&0<o.closest(".wev-tabpanel-hidden").length,c=n&&0<o.closest(".wev-tabpanel-hidden").length,l=i&&0<o.closest(".tabpanel.out").length;if(i||r||n){if(s||c||l)return;p.startAutoplay()}else p.stopAutoplay()}})});e.observe(h?r[0]:a[0],{attributes:!0,attributeFilter:["style"]}),h&&e.observe(l[0],{attributes:!0,attributeFilter:["class"]});var t=o.closest(".wev-tab-panel");t.length&&e.observe(t[0],{attributes:!0,attributeFilter:["class"]})}(),n.on("click",".swiper-slide, .wev-file",function(e){var t=$(this),a=t.data("index"),i={};e.target.tagName.toLowerCase(),t.hasClass("wev-file"),v.items.every(function(e){return e.indexid!=a||(i=e,!1)});var n=!1;if(v.callback&&f.isFunction(v.callback.click)&&(v.callback.click.call(this,i),n=!0),v.dataurl&&v.dataurl.url){var r=u.replace(v.dataurl.keymap,v.dataurl.url),s=f.replaceVal(r,i.data);0===s.indexOf("javascript")?f.eval(s,c.pageid):$u(s),n=!0}n&&(e.stopPropagation(),e.preventDefault())}),f.renderVarParser(v.needParseVar)},u.replace=function(t,e){var a="";return Object.keys(t).forEach(function(e){a+=a?"|"+e:e}),a&&(e=e.replace(new RegExp(a,"gm"),function(e){return"{"+t[e]+"}"})),e}})});