vue2 在整个系统页面上加上用户姓名的水印
vue2 在整个系统页面上加上用户姓名的水印创建 mixin/watermark.js// /mixin/watermark.jsexportdefault{data(){return{waterObserver:null}},mounted(){// 登录页不渲染水印if(this.$route.path/login)returnthis.$nextTick((){this.renderWaterMark()this.watchWaterMark()})},// 路由切换监听watch:{$route(to){// 跳登录页销毁水印if(to.path/login){this.destroyWaterMark()return}// 从登录页进入其他页面重新生成水印this.renderWaterMark()this.watchWaterMark()}},beforeDestroy(){this.destroyWaterMark()},methods:{// 获取用户名getUserName(){returnthis.$store.state.user.name||匿名用户},// 生成水印renderWaterMark(){// 先清旧水印this.destroyWaterMark()constwaterBoxdocument.createElement(div)waterBox.idglobal-water-markwaterBox.style.cssTextposition: fixed; top: 0; left: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 9999; background-repeat: repeat;constcanvasdocument.createElement(canvas)constctxcanvas.getContext(2d)canvas.width200canvas.height120ctx.rotate(-20*Math.PI/180)ctx.font13px sans-serifctx.fillStylergba(150,150,150,0.2)ctx.fillText(this.getUserName(),10,70)waterBox.style.backgroundImageurl(${canvas.toDataURL()})document.body.appendChild(waterBox)},// 监听水印防删除 窗口缩放watchWaterMark(){window.addEventListener(resize,this.renderWaterMark)this.waterObservernewMutationObserver((){if(!document.getElementById(global-water-mark)){this.renderWaterMark()}})this.waterObserver.observe(document.body,{childList:true,subtree:true})},// 销毁水印、清除监听核心方法destroyWaterMark(){// 断开dom监听if(this.waterObserver){this.waterObserver.disconnect()this.waterObservernull}// 移除resize事件window.removeEventListener(resize,this.renderWaterMark)// 删除水印domconstwaterBoxdocument.getElementById(global-water-mark)if(waterBox)waterBox.remove()}}}main.js 全局注册混入所有页面自动生效importVuefromvueimportwaterMarkMixinfrom/mixin/watermarkVue.mixin(waterMarkMixin)

相关新闻

LINUX编译地图软件PROJ

LINUX编译地图软件PROJ

准备 sudo apt install build-essential cmake sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev 下载 Download — PROJ 9.8.1 documentation 编译 简单顺利。 INSTALL_DIR$HOME/proj_installBUILD_DIRbuild if [ -d ${BUILD_DIR} ]; thenrm -rf ${BUILD_DIR} …

2026/7/3 5:34:06阅读更多 →
rhostname命令行参数完全解析:10个实用选项助你高效管理主机名

rhostname命令行参数完全解析:10个实用选项助你高效管理主机名

rhostname命令行参数完全解析:10个实用选项助你高效管理主机名 【免费下载链接】rhostname A tool used to perform a series of operations on usernames. It is a reconstruction of the hostname command using Rust. 项目地址: https://gitcode.com/openeuler…

2026/7/3 5:34:06阅读更多 →
讲解图表配置设计器-Highcharts Editor

讲解图表配置设计器-Highcharts Editor

Highcharts 编辑器(Highcharts Editor)是一个用于图表配置设计的可嵌入式工具,适合让非技术用户通过向导式界面创建 Highcharts 图表。主要特点面向非技术人员的成熟编辑器使用编辑器易于使用的向导样式UI,完成从头到尾的图表创建…

2026/7/3 5:34:06阅读更多 →
如何用Maye快速启动工具告别桌面图标混乱?3分钟掌握高效工作流

如何用Maye快速启动工具告别桌面图标混乱?3分钟掌握高效工作流

如何用Maye快速启动工具告别桌面图标混乱?3分钟掌握高效工作流 【免费下载链接】Maya Maye 一个简洁小巧的快速启动工具 项目地址: https://gitcode.com/gh_mirrors/maya/Maya 你是否曾经盯着满屏的桌面图标,却找不到需要启动的程序?每…

2026/7/3 6:59:12阅读更多 →
3步掌握面试技巧,轻松拿下阿里AIOffer!收藏学习,助你快速入门大模型开发!

3步掌握面试技巧,轻松拿下阿里AIOffer!收藏学习,助你快速入门大模型开发!

本文分享了如何帮助一位学员从屡次面试失败到成功获得阿里AIOffer的经验。文章指出,技术能力并非关键,面试技巧才是成功的关键。通过拆解项目经历、练习场景题和模拟面试,学员掌握了如何在面试中清晰、有条理地展示自己的能力和经验。对于想要…

2026/7/3 6:59:12阅读更多 →
2024年VTubeStudio插件开发生态全景:WebSocket API架构与多语言集成技术栈深度解析

2024年VTubeStudio插件开发生态全景:WebSocket API架构与多语言集成技术栈深度解析

2024年VTubeStudio插件开发生态全景:WebSocket API架构与多语言集成技术栈深度解析 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio 技术生态演化:从实时交互到插件化…

2026/7/3 6:59:12阅读更多 →
VTube Studio API架构解析:如何构建下一代虚拟主播交互生态的技术实现

VTube Studio API架构解析:如何构建下一代虚拟主播交互生态的技术实现

VTube Studio API架构解析:如何构建下一代虚拟主播交互生态的技术实现 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio 技术挑战:虚拟主播生态的集成困境 在虚拟主播…

2026/7/3 6:59:12阅读更多 →
RAG系统混合检索调优:语义与关键词召回融合实战

RAG系统混合检索调优:语义与关键词召回融合实战

RAG 系统混合检索调优:语义与关键词召回融合实战 开篇:单一检索模式的“天花板” 在 RAG 生产系统中,检索环节的召回率直接决定最终回答质量。纯语义检索(基于 Embedding 的向量相似度)擅长捕捉同义词和语义匹配&#…

2026/7/3 6:59:12阅读更多 →
如何快速搭建AI结对编程环境:Aider终端助手的完整指南

如何快速搭建AI结对编程环境:Aider终端助手的完整指南

如何快速搭建AI结对编程环境:Aider终端助手的完整指南 【免费下载链接】aider aider is AI pair programming in your terminal 项目地址: https://gitcode.com/GitHub_Trending/ai/aider 你是否厌倦了在IDE和AI聊天窗口之间来回切换?是否希望AI编…

2026/7/3 6:54:10阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/2 12:10:34阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/2 12:10:34阅读更多 →
LV3296与PIC18F45K22的UART通信与USB扩展方案

LV3296与PIC18F45K22的UART通信与USB扩展方案

1. LV3296与PIC18F45K22的硬件搭档解析在嵌入式数据采集系统中,LV3296条形码扫描模块与PIC18F45K22微控制器的组合堪称经典搭配。LV3296作为一款工业级条码扫描头,其核心是一颗高性能CMOS图像传感器,配合专用解码芯片,能自动识别包…

2026/7/3 0:03:41阅读更多 →
AI初创生存指南:6个月完成可信度验证闭环

AI初创生存指南:6个月完成可信度验证闭环

1. 这不是“逆袭指南”,而是一份AI初创公司真实生存手记“How To Beat Odds As an AI Startup?”——这个标题乍看像一句热血口号,但在我带过7个从0到1的AI产品团队、亲手踩过融资失败、技术债崩盘、客户POC卡在最后一公里等23类典型坑之后,…

2026/7/3 0:03:41阅读更多 →
多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

1. 这不是又一篇“AI趋势速览”,而是一份实操者手记:当多模态、推理链、检索增强与智能体协作真正撞进工程现场“LAI #73”这个编号本身就像一个暗号——它不属于某家大厂的白皮书,也不是学术会议的议程表,而是长期泡在模型训练集…

2026/7/3 0:03:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/3 1:12:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/3 1:36:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/3 2:08:15阅读更多 →