|
|
@ -4,8 +4,13 @@ import { addResizeListener, removeResizeListener } from '@/utils/event' |
|
|
|
import { isDef } from '@/utils/is' |
|
|
|
import { isDef } from '@/utils/is' |
|
|
|
|
|
|
|
|
|
|
|
const domSymbol = Symbol('watermark-dom') |
|
|
|
const domSymbol = Symbol('watermark-dom') |
|
|
|
|
|
|
|
const sourceMap = new WeakMap<HTMLElement, {}>() |
|
|
|
|
|
|
|
|
|
|
|
export function useWatermark(appendEl: Ref<HTMLElement | null> = ref(document.body) as Ref<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 func = useRafThrottle(function () { |
|
|
|
const el = unref(appendEl) |
|
|
|
const el = unref(appendEl) |
|
|
|
if (!el) return |
|
|
|
if (!el) return |
|
|
@ -80,6 +85,7 @@ export function useWatermark(appendEl: Ref<HTMLElement | null> = ref(document.bo |
|
|
|
const { clientHeight: height, clientWidth: width } = el |
|
|
|
const { clientHeight: height, clientWidth: width } = el |
|
|
|
updateWatermark({ str, width, height }) |
|
|
|
updateWatermark({ str, width, height }) |
|
|
|
el.appendChild(div) |
|
|
|
el.appendChild(div) |
|
|
|
|
|
|
|
sourceMap.set(el, { setWatermark, clear }) |
|
|
|
return id |
|
|
|
return id |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|