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
|