分享一个插件-全局水印插件-AI搓的(DeepSeek V4-flash牛逼!)

nocobase-plugin-watermark(水印插件)

Github: kevinwonstans/nocobase-plugin-watermark

NocoBase 全局水印插件:用户登录成功后,在整个页面上覆盖半透明水印,显示当前登录用户名和当天日期,防止截图泄密。支持 v1(/admin/)与 v2(/v/admin/)两个界面,均可用。

![水印效果预览]

功能特性

需求 实现
登录后显示水印 监听 auth:tokenChanged,登录成功立即在页面覆盖半透明水印(用户名 + 日期),pointer-events: none 不干扰任何操作
公共页面 / 未登录 / 登出后不显示 登录页、注册页(/signin/signup/forgot-password/reset-password)及未登录状态自动移除水印 DOM;定时检测保证 30s 内生效
防止删除水印 DOM MutationObserver 监听水印节点,被删除后立即重建;另有 5s 定时健康检查,样式被篡改(如改透明度、移背景)也会自动恢复
可配置项 水印文字(支持占位符)、透明度、字号、排列密度(稀疏/中等/密集)
启用水印总开关 关闭后立即移除水印 DOM,配置保留不丢失,重新开启即恢复
双界面支持 v1(/admin/)与 v2(/v/admin/)客户端同时生效,共用同一套运行时逻辑

兼容性

  • NocoBase 2.1.x(在 2.1.34 上开发验证)
  • 数据库无关(配置表 watermarkSettings 为普通单例表)
  • 支持 v1 与 v2 客户端,无需额外配置

nocobase-plugin-watermark.zip (543.6 KB)

1 Like

:+1: :+1: :+1:

你这个打包出来怎么有500多k啊。这么小的功能应该在20-40k 左右 有点问题

哦,这个包200多K,里面有一个预览图150K。
最新又优化了一下,
1.水印文字支持多行排版:按换行符分行显示(如用户名与日期各占一行);
2.文字宽度随内容自适应,不被截断。
3.排列密度通过平铺单元间距控制。
最新版可以在git直接下载包:https://github.com/kevinwonstans/nocobase-plugin-watermark。