el-select 加载更多

import { Directive, DirectiveBinding } from 'vue'
const loadMore: Directive = {
	beforeMount(el: any, binding: DirectiveBinding) {
		const selectDom = (
			document.querySelectorAll('.more_select_dropdown1')[0] as any
		).querySelector('.el-select-dropdown .el-select-dropdown__wrap')
	
		
		const selectDom1 = document.querySelector('.single-select-loadmore .el-select-dropdown__wrap');
		const selectDom2 = document.querySelector('.single-select-loadmore2 .el-select-dropdown__wrap');

		function loadMores(this: any) {
			const isBase =
				this.scrollHeight - this.scrollTop - 10 <= this.clientHeight
			console.log(
				'ddd',document.querySelectorAll('.more_select_dropdown'),
				this.scrollHeight - this.scrollTop <= this.clientHeight,
				this.scrollHeight,
				this.scrollTop,
				this.clientHeight,
			)
			if (isBase) {
				binding.value && binding.value()
			}
		}
		el.selectDomInfo = selectDom
		el.userLoadMore = loadMores
		nextTick(() => {
			selectDom?.addEventListener('scroll', loadMores)
			selectDom1?.addEventListener('scroll', loadMores)
			selectDom2?.addEventListener('scroll', loadMores)
		})
	},
	beforeUnmount(el: any) {
		if (el.userLoadMore) {
			el.selectDomInfo.removeEventListener('scroll', el.userLoadMore)
			delete el.selectDomInfo
			delete el.userLoadMore
		}
	},
}
export default loadMore

先创建一个js文件

再全局引用

<el-form-item label="公司服务:">
				<el-select v-if="picturelist.length"
					v-model="Card.companyServicesUrl"
					placeholder="请选择图片"
					multiple
					filterable
					remote
					reserve-keyword
					:remote-method="remoteMethod"
					:loading="loadings"
					v-loadMore="loadmore"
					class="more-select"
					popper-class="single-select-loadmore2"
				>
					<template #prefix>
						<span v-if="cselectall" @click="cselectallitem">
							点击全选
						</span>
						<span v-else @click="cselectall=true,Card.companyServicesUrl=[]">
							取消全选
						</span>
					</template>
					<el-option v-for="item in picturelist" :key="item.pictureUrl" :label="item.pictureUrl"
						:value="item.pictureUrl" style="height: 100px;border-bottom: 1px dashed gray;">
						<div class="flex items-center">
							
							<img :src="item.pictureUrl" style='width:200px;height: 100px;'>
                          <span >{{ item.label }}</span>
						</div>
					</el-option>
				
				</el-select>
				<div v-else>
					请先上传图片
				</div>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_46643843

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值