watermark_wev8.js 3.83 KB
define(["mUtil"],function(e){var t=null;function n(){var x=window.document,E=0,_="",a=null,b={text:"WATERMARK",fontStyle:"font-size:18px;color:#000;",src:"",width:200,height:150,rotate:-15,alpha:.15,interval:2e3,intervalCheck:!0,clickCheck:!0},I=function(n){var i=b.src,e=b.alpha,t=b.rotate,a=b.text,r=b.fontStyle,l=b.width,o=b.height;l=0<l?l:200,o=0<o?o:150;var s=x.getElementById("wea_watermark_wrap");s||((s=x.createElement("div")).id="wea_watermark_wrap",x.body.appendChild(s));var c=x.getElementById("wea_watermark");if(c||((c=x.createElement("div")).id="wea_watermark",c.style.display="block",c.style.pointerEvents="none",c.style.position="fixed",c.style.width="100%",c.style.height="100%",c.style.zIndex=99999,c.style.top=0,c.style.left=0,c.style.textAlign="center",s.appendChild(c)),i&&"text"!==n){n="img";var m=x.getElementById("wea_watermark_img_test");m||((m=x.createElement("img")).id="wea_watermark_img_test",m.style.display="none",m.onerror=function(){I(n="text")},x.body.appendChild(m)),m.src=i}else n="text";var d=x.documentElement.clientWidth,w=x.documentElement.clientHeight,h=Math.ceil(d/l),p=Math.ceil(w/o);E=h*p+2;var y,f,v,g=x.querySelectorAll(".wea-watermark-mark");if(y=g,f=b.alpha,v=b.rotate,!y||0===y.length||y.length!=E||y[0].style.transform!=="rotate("+v+"deg)"||y[0].style.opacity!==f){c.innerHTML="";for(var u=0;u<E;u++){var k=x.createElement("div");k.className="wea-watermark-mark",k.style.width=l+"px",k.style.height=o+"px",k.style.pointerEvents="none",k.style.zIndex=-1,k.style.float="left",k.style.overflow="visible",k.style.opacity=e,k.style.transform="rotate("+t+"deg)",k.style["-ms-transform"]="rotate("+t+"deg)",k.style.position="relative",c.appendChild(k)}g=x.querySelectorAll(".wea-watermark-mark")}Array.prototype.forEach.call(g,function(e,t){e.style.marginRight=(t+1)%h==0&&1!==h?"-"+l+"px":"0",e.innerHTML="text"===n?'<div style="width:100%;position:absolute;top:50%;transform:translateY(-50%);"><p style="pointer-events:none;'+r+'">'+a+"</p></div>":'<img alt="" src="'+i+'" style="position:absolute;top:50%;left:50%transform:translate(-50%,-50%);pointer-events:none;max-width:100%;max-height:100%;"></img>'}),_=s.innerHTML},r=function(){var e=x.getElementById("wea_watermark_wrap");(!e||e.innerHTML!==_)&&I()};setOptions=function(e){var t=(b=$.extend(b,e)).intervalCheck,n=b.interval,i=b.clickCheck;a&&clearInterval(a),t&&(a=setInterval(r,n)),i?x.addEventListener("click",r):x.removeEventListener("click",r),window.top.onresize=function(){I(b)}},this.init=function(e){setOptions(e),I()},this.des=function(){clearInterval(a),window.top.onresize=void 0,x.removeEventListener("click",r);var e=x.getElementById("wea_watermark_wrap");e&&x.body.removeChild(e)}}var m=function(e,t){e=e||{},t=t||{};var n,i,a,r,l=-Number(e.rotate),o=Number(e.opacity)/100;return{src:"2"==e.watermarktype?"/weaver/weaver.file.FileDownload?fileid="+e.imageid:"",text:"1"==e.watermarktype?t&&t.document?(n=e,i=n.wmcontent||"",a="font-family:"+(n.familyname||"微软雅黑")+";font-size:"+(n.fontsize||14)+"px;color:"+(n.color||"#000")+";text-align:"+(n.align||"left")+";",r="",i.split("\n").forEach(function(e){r+='<p style="'+a+'">'+e+"</p>"}),i=r):e.wmcontent:"",width:0<e.wmwidth?e.wmwidth:200,height:0<e.wmheight?e.wmheight:150,rotate:l,alpha:o}},i=function(e){var t=window.location.pathname||"",n=window.location.hash||"",i=n.indexOf("?");i=-1!==i?i:n.length;var a=t+n.substring(0,i);if(e){var r=e.isopen,l=e.mobileisopen,o=e.whitelist,s=e.blacklist,c=1===Number(r)&&1===Number(l);-1!==((c?s:o)||[]).findIndex(function(e){return new RegExp(e).test(a)})?c?d.destory():d(m(e)):c?d(m(e)):d.destory()}},d=function(e){t?t.init(e):(t=new n).init(e)};return d.destory=function(){t&&(t.des(),t=null)},{handleHashChange:function(){i(d.wmSetting)},getSystemSetting:function(){e.ajax("/api/doc/console/wmsystemsetting/getwmsetting?isconvert=1",function(e){var t=JSON.parse(e).wmSetting||{};d.wmSetting=t,i(t)})}}});