Vue实现页面添加水印功能
创建watermark.js文件
letwatermark={} letsetWatermark=(str)=>{ letid='1.23452384164.123412416'; if(document.getElementById(id)!==null){ document.body.removeChild(document.getElementById(id)); } //创建一个画布 letcan=document.createElement('canvas'); //设置画布的长宽 can.width=120; can.height=120; letcans=can.getContext('2d'); //旋转角度 cans.rotate(-15*Math.PI/180); cans.font='18pxVedana'; //设置填充绘画的颜色、渐变或者模式 cans.fillStyle='rgba(200,200,200,0.40)'; //设置文本内容的当前对齐方式 cans.textAlign='left'; //设置在绘制文本时使用的当前文本基线 cans.textBaseline='Middle'; //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置) cans.fillText(str,can.width/8,can.height/2); letdiv=document.createElement('div'); div.id=id; div.style.pointerEvents='none'; div.style.top='30px'; div.style.left='0px'; div.style.position='fixed'; div.style.zIndex='100000'; div.style.width=document.documentElement.clientWidth+'px'; div.style.height=document.documentElement.clientHeight+'px'; div.style.background='url('+can.toDataURL('image/png')+')lefttoprepeat'; document.body.appendChild(div); returnid; } //该方法只允许调用一次 watermark.set=(str)=>{ letid=setWatermark(str); setInterval(()=>{ if(document.getElementById(id)===null){ id=setWatermark(str); } },500); window.onresize=()=>{ setWatermark(str); }; } exportdefaultwatermark;
具体用法:
1.在App.vue文件中,导入该文件
importWatermarkfrom'@/common/js/watermark';//路径不要写错
2.在mounted函数中调用
mounted:function(){ Watermark.set("水印内容") }
注意内容:
一般我们的水印内容是当前用户的id或者姓名,在App.vue文件的mounted函数中有可能获取不到Vuex的用户信息。
我们一般在路由跳转的时候来进行用户的登录和权限的判断,所以我们可以将调用水印的方法放在router.afterEach()方法中,在router.beforeEach()方法中判断用户的登录和权限的判断,所以router.afterEach()方法中一定可以获取到vuex中的用户信息。
示例:
router.beforeEach((to,from,next)=>{ //登录判断 store.dispatch('getuser').then((user)=>{ if(to.path==='/'){ if(user.isLeader){ next('/Summary'); }else{next('/list');} }else{ next(); } }).catch((error)=>{ if(error.message==='noUser'){ //返回登录界面 }else{ Dialog.confirm({ title:'服务器错误', message:'获取用户信息失败,可尝试重新进入系统。', showCancelButton:false, showConfirmButton:false }); } }); }); router.afterEach((to)=>{ /*路由发生变化修改页面title*/ if(to.meta.title){ changTitle(to.meta.title); } Watermark.set(store.state.user.userId); });
以上这篇Vue实现页面添加水印功能就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。