import { watch } from 'vue' import { on, off } from '@element-plus/utils/dom' import type { Ref } from 'vue' export default (indicator: Ref, evt: string, cb: (e: Event) => boolean) => { const prevent = (e: Event) => { if (cb(e)) { e.stopImmediatePropagation() } } watch(() => indicator.value, val => { if (val) { on(document, evt, prevent, true) } else { off(document, evt, prevent, true) } }, { immediate: true }) }