elementui的el-select加载分页

elementui的el-select数据多的时候添加分页

方式一(添加分页组件)
 <el-select size="small" style="width: 100%" v-model="formInline.companyId" filterable clearable placeholder="请选择">
            <el-option v-for="item in companyAll" :key="item.value" :label="item.company" :value="item.companyId"> </el-option>
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page.sync="linepage.page"
              :page-size="linepage.size"
              layout="total, prev, pager, next"
              :total="linepage.total"
            >
        </el-pagination>
   </el-select>
   linepage: {
        page: 1,
        size: 10,
        total: 10, 
   }
  handleSizeChange(val) {
      // console.log(`每页 ${val} 条`);
      this.linepage.size = val
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.linepage.page = val
      this.getselect()  //调用接口
    },
方式二(配合自定义指令实现)

新建全局js文件 (scroll.js)

 
import Vue from 'vue'
Vue.directive('loadmore', {
    bind(el, binding) {
        const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
        SELECTWRAP_DOM.addEventListener('scroll', function () {
            const CONDITION = this.scrollHeight - this.scrollTop <= this.clientHeight
            if (CONDITION) {
                binding.value()
            }
        })
    }
}) 

main.js中引入

import './utils/scroll.js'
  <el-select  size="small"  v-model="formInline.userNo"  clearable  filterable v-loadmore="loadmore"    placeholder="请选择" >
        <el-option  v-for="(item, index) in seleArr"  :key="index" :label="item.userNo"  :value="item.userId"  >
 				</el-option>
  </el-select>
 userList: {
    currentPage: 1,
    pageSize: 10,
    pageCount: 0,
 },
 seleArr: [],
//获取select数据
  getUserlist() {
      this.$api.post(this.$urls.a.list, this.userList).then((res) => {
          if (res.status == 0) {
            this.seleArr = this.seleArr.concat(res.data.list); 
          }
        });
    },

 // 滚轮分页
 loadmore() { 
      if (this.userList.currentPage * this.userList.pageSize >= this.userList.pageCount) return;
      this.userList.currentPage++;
      this.getUserlist();
   },
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elementui el-select是一个基于Vue.js的下拉框组件,支持单选、多选、搜索、分组和远程加载等功能,并且提供了丰富的选项配置和样式定制。 而change事件是el-select组件内置的事件之一,当下拉框选项改变时会触发该事件。我们可以通过在el-select组件上绑定change事件来监听选择值的变化,并进行相关的操作。 el-select的change事件会返回当前选中的值或值数组,可以通过事件回调函数的参数来获取该值。例如: <el-select v-model="selectedValue" @change="handleChange"> <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value"></el-option> </el-select> <script> export default { data() { return { selectedValue: '', options: [ { label: '选项一', value: '1' }, { label: '选项二', value: '2' }, { label: '选项三', value: '3' } ] } }, methods: { handleChange(val) { console.log(`当前选中的值为:${val}`) } } } </script> 在上述示例中,我们定义了一个el-select组件,并将其绑定到一个选项数组中。通过v-model指令,我们将当前选中的值与selectedValue数据属性进行绑定,而在change事件的回调函数中,我们可以通过参数val获取当前选中的值,并进行相关的操作。 总的来说,el-select的change事件可以使开发者在下拉框选项改变时,快速、准确地获取当前选中的值,并进行相应的操作,从而提高了开发效率和用户体验,是Vue开发中常用的事件之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值