烟花爆竹批发企业仓库安全风险监测前端
zhouwx
2025-04-03 15c3a0082b51422801f1985e5d9e68eef76c3039
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import {Directive, DirectiveBinding, nextTick} from 'vue'
const loadMore: Directive = {
    beforeMount(el: any, binding: DirectiveBinding) {
        console.log(el)
        const selectDom = (document.querySelector(".more_select_dropdown") as any).querySelector(".el-select-dropdown .el-select-dropdown__wrap");
        console.log(selectDom, 'selectDom++++++++++++++');
        function loadMores(this: any) {
            const isBase = this.scrollHeight - this.scrollTop <= this.clientHeight
            if (isBase) {
                binding.value && binding.value()
            }
        }
        el.selectDomInfo = selectDom
        el.userLoadMore = loadMores
        nextTick(() => {
            selectDom?.addEventListener('scroll', loadMores)
        })
    },
    beforeUnmount(el: any) {
        if (el.userLoadMore) {
            el.selectDomInfo.removeEventListener('scroll', el.userLoadMore)
            delete el.selectDomInfo
            delete el.userLoadMore
        }
    }
}
export default loadMore