From 3b0077dc73772a460684b5ae5807c5bf511bd757 Mon Sep 17 00:00:00 2001 From: 予ヾ <59309934+wh-if@users.noreply.github.com> Date: 星期二, 14 三月 2023 17:06:25 +0800 Subject: [PATCH] fix: 修复水印重复叠加问题 (#2622) --- src/hooks/web/useWatermark.ts | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/hooks/web/useWatermark.ts b/src/hooks/web/useWatermark.ts index a42b84b..5840c14 100644 --- a/src/hooks/web/useWatermark.ts +++ b/src/hooks/web/useWatermark.ts @@ -4,10 +4,15 @@ import { isDef } from '/@/utils/is'; const domSymbol = Symbol('watermark-dom'); +const sourceMap = new WeakMap<HTMLElement, {}>(); export function useWatermark( appendEl: Ref<HTMLElement | null> = ref(document.body) as Ref<HTMLElement>, ) { + const appendElRaw = unref(appendEl); + if (appendElRaw && sourceMap.has(appendElRaw)) { + return sourceMap.get(appendElRaw); + } const func = useRafThrottle(function () { const el = unref(appendEl); if (!el) return; @@ -82,6 +87,7 @@ const { clientHeight: height, clientWidth: width } = el; updateWatermark({ str, width, height }); el.appendChild(div); + sourceMap.set(el, { setWatermark, clear }); return id; }; -- Gitblit v1.8.0