水印插件-分享-ai开发的
开源地址 文件夹里面有安装包
https://gitee.com/fengwenkai/nocobase-plugin
开源地址 文件夹里面有安装包
谢谢,这个水印不错~
注册页面有bug 等修复 注册页面存在如果分钟更新了 会自动刷新页面 需要修复
临时解决办法是 等到下一分钟的时候 点击注册账号 然后需要再1分钟之内提交注册就行了 不然到了1分钟回自动刷新页面
这个应该是显示当前日期时间的原因,建议默认不要显示当前日期时间这样就不用自动刷新了吧
我等下用ai修复一下 去除登录页面 注册页面的 水印就行了 这个没抓取到登录信息的报错
插件已更新到0.2.4版本 修复各种bug
https://gitee.com/fengwenkai/nocobase-plugin/blob/main/plugin-shuiyin1/plugin-shuiyin1-0.2.4.tar.gz
第一次安装就不用重启系统 如果是升级需要系统级的重启系统 网页的重启系统是无效的
好像还是有些问题, 安装0.2.4版本后重启系统,如果刷新浏览器的登录页面,水印就消失了,登录后水印也不见了,水印设置菜单也没有了,此时必须刷新下浏览器才行,我是docker安装的atest 2.1.8
修复了 现在更新0.2.5版本
https://gitee.com/fengwenkai/nocobase-plugin/blob/main/plugin-shuiyin1/plugin-shuiyin1-0.2.5.tar.gz
gitee下载
谢谢,完美!
v0.2.8(2026-06-30)
修复
- 注销账号后水印不消失(需手动刷新):
refreshWatermark()和renderWatermark()新增isAuthPage()检测,进入登录/注册等认证页面时自动移除水印 DOM,30s 内生效
v0.2.7(2026-06-30)
修复
- 账号退出→切换登录后,水印仍显示旧用户名(需手动刷新才更新):周期性刷新(30s)现已同步调用
auth:check获取当前用户,确保登录用户名自动刷新 yarn nocobase upgrade升级流程修复,migrateEnabledField()可为旧记录补充enabled字段
v0.2.6(2026-06-30)
新增
- 设置页新增「启用水印」总开关,关闭后水印 DOM 移除,配置保留不丢失
upgrade()新增migrateEnabledField()为已有记录补充enabled默认值- 新增
src/common/watermark-core.ts公共模块,抽取renderWatermark、densityMap、isAuthPage等共享逻辑,消除 v1/v2 代码重复
修复
- 默认值统一:集合定义
fontSize/density/showTime默认值与createDefaultSettings()及客户端保持一致(10/5/true) src/index.ts同时导出 server 和 client 两端- 客户端新增
afterDisable()→cleanup()资源清理:定时器、MutationObserver、事件监听器、history.pushState恢复、水印 DOM 移除 upgrade()中调用syncVersion()确保升级后版本号同步
优化
console.log用DEBUG常量包裹(默认关闭),减少生产环境日志输出densityMap兜底值从densityMap[3]改为densityMap[5],与默认密度一致
文档
- 新增
CHANGELOG.md(本文件) - 新增
产品文档.md README.md更新项目结构、默认值说明、新增水印开关配置项- 国际化新增
"Enable watermark"/"启用水印"翻译键
v0.2.5(2026-06-16)
修复
- 登录页面刷新后登录,水印不出现、设置菜单入口消失的问题
- 设置菜单注册移到
isAuthPage()检查前,始终注册菜单 - 认证页面不直接返回,通过劫持
history.pushState+popstate监听 +requestAnimationFrame兜底检测路由变化 - 用户登录后自动调用
startup()初始化水印 - 同步修改
client-v2/plugin.tsx保持双端一致
- 设置菜单注册移到
需要的自行去仓库下载
中文 :NocoBase 水印插件能在页面上覆盖半透明水印,显示当前登录用户名以防止截图泄密,并支持在插件设置中自定义水印文字、透明度和字号。
English : The NocoBase watermark plugin overlays a semi-transparent watermark on pages displaying the current logged-in username to prevent screenshot leaks, and supports customizing watermark text, opacity, and font size in the plugin settings
更新了 0.2.8版本
https://gitee.com/fengwenkai/nocobase-plugin/blob/main/plugin-shuiyin1/plugin-shuiyin1-0.2.8.tar.gz
v0.2.12(2026-07-26)
修复
- 插件加载时
enabled=false再开启水印后,防删除机制(2s 重建检查 + MutationObserver)不会建立:抽取startWatchers()/stopWatchers()(幂等),applyWatermark()开关切换时同步管理 watchers - 设置页「重置」按钮由
form.resetFields()(清空为 undefined)改为恢复默认值(保留记录 id),双端同步 - 水印设置 ACL 收紧:
shuiyin1_settings由'*' loggedIn改为仅list loggedIn(页面渲染读取保持放开),create/update/destroy 不再对普通登录用户放行(管理员角色默认全通)
优化
- v2
plugin.tsx的 controller 保存为实例属性(与 v1 一致),cleanup 可被触发 - 清理 locale 死 key(
Watermark text、Leave blank to use current user nickname) - README 9.3 节等残留旧逻辑描述同步为多选来源逻辑
v0.2.11(2026-07-25)
修复
- 字号设置不生效:v0.2.10 的自适应逻辑「只缩不放」,密度 5(140px 瓦片)+ 带时间文本下任何 ≥10px 字号均被缩至 ~9px。
fitFontSize改为computeTileLayout:字号优先,文字超宽时先按比例加宽瓦片(上限 3 倍,高度随宽高比放大),仍放不下才缩小字号
v0.2.10(2026-07-25)
新增
- 水印内容改为下拉多选模式:昵称 / 用户名 / 自定义内容,多选时空格分隔同行显示;新增
textSources字段(json),upgrade()自动迁移旧数据(旧text非空 →['custom'],否则 →['nickname']) - 水印文字过长自适应:超过瓦片宽度时按比例自动缩小字号(下限 6px),保证完整显示
修复
- v2 设置页
useEffect依赖不稳定的t函数导致重复请求shuiyin1_settings:list,且 re-render 时表单值被服务器旧值覆盖:改用useRef持有t/message,依赖收敛为[api, form] - 服务端 9 处
console.log全部替换为this.app.log(pino),统一日志输出 - 删除 v2 端不会被调用的
afterDisable()死代码(v2 Plugin 基类无此钩子) - readme 端点增加登录校验(未登录 401),README 内容改为启动时一次性缓存
优化
- 抽取双端共享逻辑至
src/common/watermark-controller.ts(约 240 行去重),v1/v2plugin.tsx各精简至 20 行左右 package.json的peerDependencies补充@nocobase/flow-engine
v0.2.9(2026-07-25)
修复
- 修复
/v/(v2 客户端)启动报错Script error for "@nocobase/client", needed by: @my-project/plugin-shuiyin1/client-v2:src/client-v2/plugin.tsx原从@nocobase/client(v1)导入Plugin并复用 v1 设置页,现改为从@nocobase/client-v2导入 - 设置页注册由 v1 写法
pluginSettingsManager.add()迁移为 v2 写法addMenuItem()+addPageTabItem()+componentLoader懒加载 - 新增 v2 版设置页
src/client-v2/pages/ShuiyinSettings.tsx(改用useFlowContext().api请求),v1 设置页保持不变 isAuthPage()兼容 v2 路由前缀,登录页(/v/signin)不再渲染水印
v0.2.8(2026-06-30)
修复
- 注销账号后水印不消失(需手动刷新):
refreshWatermark()和renderWatermark()新增isAuthPage()检测,进入登录/注册等认证页面时自动移除水印 DOM,30s 内生效



