fix: 修复水印重复叠加问题

pull/5/MERGE
xingyu 2023-04-27 16:35:25 +08:00
parent 9c44025f5d
commit 733611e00b
1 changed files with 6 additions and 0 deletions

View File

@ -4,8 +4,13 @@ import { addResizeListener, removeResizeListener } from '@/utils/event'
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
@ -80,6 +85,7 @@ export function useWatermark(appendEl: Ref<HTMLElement | null> = ref(document.bo
const { clientHeight: height, clientWidth: width } = el
updateWatermark({ str, width, height })
el.appendChild(div)
sourceMap.set(el, { setWatermark, clear })
return id
}