首页 > 其他分享 >Element 自定义指令 下拉分页,获取无限数据

Element 自定义指令 下拉分页,获取无限数据

时间:2023-07-05 11:24:43浏览次数:33  
标签:... 分页 pageNo list Element batchList total data 自定义

template 代码

  <el-form-item>
    <el-select
      v-model="form.batchId"
      v-loadmore="loadmoreBatchList"
      placeholder="请输入批次名称"
      filterable
      clearable>
        <el-option v-for="(item, key) in batchList.list" :key="key" :label="item.batchName" :value="item.id"></el-option>
    </el-select>
  </el-form-item>

data 下拉数据:

   batchList: {
    list: [],
    total: 0,
    pageNo: 1,
    pageSize: 100
   },

methods 方法:

import { uniqBy } from 'lodash'

    loadmoreBatchList() {
      if (this.batchList.total > this.batchList.list.length) {
        this.getBatchList(data, ++this.batchList.pageNo)
      }
    },

    getBatchList(data, pageNo = 1) {
      // data 为接口传递的自定义数据
      this.$store.dispatch('getOutboundBatchsList', {
        ...data,
        pageNo: pageNo,
        pageSize: this.batchList.pageSize
      })
        .then(({ code = 0, data = {} }) => {
          if (code == 1 && data.total) {
            this.batchList = {
              ...this.batchList,
              list: uniqBy([...this.batchList.list, ...data.list], 'id'),
              total: data.total
            }
          }
        })
    },

loadmore 自定义指令

Vue.directive('loadmore', {
  bind(el, binding) {
    // 获取element-ui定义好的scroll盒子
    const SELECTWRAP_DOM = el.querySelector(
      '.el-select-dropdown .el-select-dropdown__wrap'
    )
    if (SELECTWRAP_DOM) {
      SELECTWRAP_DOM.addEventListener('scroll', function() {
        /*
         * scrollHeight 获取元素内容高度(只读)
         * scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
         * clientHeight 读取元素的可见高度(只读)
         * 如果元素滚动到底, 下面等式返回true, 没有则返回false:
         * ele.scrollHeight - ele.scrollTop === ele.clientHeight;
         */
        const CONDITION =
          this.scrollHeight - this.scrollTop - 1 <= this.clientHeight
        if (CONDITION) {
          console.log('----------------------------')
          console.log('loadmore', CONDITION)
          console.log('scrollHeight', this.scrollHeight)
          console.log('scrollTop', this.scrollTop)
          console.log('clientHeight', this.clientHeight)
          console.log('----------------------------')
          binding.value()
        }
      })
    }
  }
})

标签:...,分页,pageNo,list,Element,batchList,total,data,自定义
From: https://www.cnblogs.com/DL-CODER/p/17528026.html

相关文章

  • 前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放效果 可图片预览
    前端Vue自定义轮播图视频播放组件仿京东商品详情轮播图视频Video播放,可图片预览,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13325效果图如下:cc-videoSwiper使用方法<!--goodsData:轮播图视频数据 @setShowVideo:视频按钮点击事件-......
  • 自定义报表查询不出来
    现象,生产环境复核,收货报表查询不出来,配置的为OMS数据库原因:rp_db_connection中的pm_code重复,导致错误修改pm_code在修改数据源的时候发现启用或停用会一起更新,发现数据错误。 自定义配置中的对应的db_pm_code也需要更新,也可以通过界面重新选择数据库来更新。rp_report_da......
  • 【paddlepaddle速成】paddlepaddle图像分类从模型自定义到测试
    这是给大家准备的paddlepaddle与visualdl速成例子这一次我们讲讲paddlepadle这个百度开源的机器学习框架,一个图像分类任务从训练到测试出结果的全流程。将涉及到paddlepaddle和visualdl,git如下:https://github.com/PaddlePaddle相关的代码、数据都在我们Git上,希望大家Follow一下......
  • Element-常用组件-表格-表单-对话框-分页工具条
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><!--格式--><style>.el-table.warning-row{background:oldlace;......
  • Element select表单必填验证
    特别注意:如第一段代码这里的区别是prop和v-model绑定的值不一样,这样的话是不行的,他们两个的值必须一样!!!!!而且还有一种情况,就是roleStatus必须要放在form里面,而且还必须是一个数组!!!!错误写法prop和v-model不一致<el-formlabel-width="300px":rules="rules":model="changeSourceDa......
  • 自定义日期选择器
    HTML部分代码使用popup组件将它弹出<view> <uni-popupref="popupDate"type="bottom"> <viewclass="popup-top-box"> <text>日期选择</text> <textclass="cancel-btn"@click="closeFun"......
  • element-ui表格多选
    <template><el-tablesize="medium"v-loading="tableLoading":data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"stripeheight="100%&q......
  • Element-布局
     Layout布局<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>.el-row{margin-bottom:20px;}.el-col......
  • Element-快速入门
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><divid="app"><div><el-button>默认按钮......
  • EasyExcel 根据模板复制Sheet并将数据分页填充
    需求指定Excel模板文件,只给一个Sheet每个Sheet填充指定数量的数据,超过指定条数,根据模板Sheet复制并且追加数据准备工作引入easyExcelpom依赖<!--https://mvnrepository.com/artifact/com.alibaba/easyexcel--><dependency><groupId>com.alibaba</group......