NoticeBar_wev8.js
4.44 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),i=v.config;if(!t)return void f.getLabel(6066,"数据来源配置不正确",function(e){f.console.error(e)});if(t.getData){var a=[],n=t.getData(),r=i.template;r=u.replace(i.keymap,r);var s=v.totalSize;f.isArray(n)?n.every(function(e,t){return(-1==s||-1!=s&&t<s)&&(a.push({content:f.replaceValAndVarParser(r,n[t]),data:n[t]}),!0)}):a.push({content:f.replaceValAndVarParser(r,n),data:n}),v.items=a}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,i=this.$container,a=this.$el.find(".wev-notice-header"),n=this.$el.find(".swiper-container"),t=function(){var t=a.find("span").height()||v.height;n.find(".swiper-slide").each(function(){var e=$(this).height();t=t<e?e:t}),a.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=i.children(".page-content").children(".page-scroller"),h=i.hasClass("tabpanel")||d.hasClass("tabpanel");h&&(d.hasClass("tabpanel")&&(i=d),r=i.closest(".page"),s=i.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,i=e.target.classList,a="style"==t&&"none"!==e.target.style.display,n="class"==t&&i.contains("wev-tabbar-item")&&i.contains("wev-tabbar-active"),r="class"==t&&i.contains("wev-tab-panel")&&!i.contains("wev-tabpanel-hidden"),s=a&&0<o.closest(".wev-tabpanel-hidden").length,c=n&&0<o.closest(".wev-tabpanel-hidden").length,l=a&&0<o.closest(".tabpanel.out").length;if(a||r||n){if(s||c||l)return;p.startAutoplay()}else p.stopAutoplay()}})});e.observe(h?r[0]:i[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),i=t.data("index"),a={};e.target.tagName.toLowerCase(),t.hasClass("wev-file"),v.items.every(function(e){return e.indexid!=i||(a=e,!1)});var n=!1;if(v.callback&&f.isFunction(v.callback.click)&&(v.callback.click.call(this,a),n=!0),v.dataurl&&v.dataurl.url){var r=u.replace(v.dataurl.keymap,v.dataurl.url),s=f.replaceVal(r,a.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(i,e){var t="";return Object.keys(i).forEach(function(e){-1<(e=e.replace("[","\\[").replace("]","\\]")).indexOf("[id\\]")||-1<e.indexOf("[text\\]")?t=e+(t?"|"+t:t):t+=t?"|"+e:e}),t&&(e=e.replace(new RegExp(t,"gm"),function(e){var t=i[e];return-1<t.indexOf("[id]")&&(t=t.replace("[id]","_original")),-1<t.indexOf("[text]")&&(t=t.replace("[text]","")),"{"+t+"}"})),e}})});