当前位置: 首页 > news >正文

vue使用ant design Vue中的a-select组件实现下拉分页加载数据

<a-form-model-item

          :labelCol="labelCol"

          :wrapperCol="wrapperCol"

          prop="equipmentTypeId"

          label="所属设备种类">

          <a-select v-model="model.equipmentTypeId" @popupScroll="handlePopupScroll" placeholder="请选择所属设备种类 " mode="multiple">

            <a-select-option v-for="(item, index) in typeList" :value="item.id" :key="item.id">

              {{ item.equipmentTypeName }}

            </a-select-option>

          </a-select>

        </a-form-model-item>

import { getDeviceTypeList } from '@/api/home'

export default {

   data () {

        typeList: [],

        pageObj: {

          pageNo: 1,

          pageSize: 10,

          pages: 0, // 总页数

          total: 0, // 总条数

        }

   }

}

methods: {

      // 下拉列表滚动时的回调

      handlePopupScroll (e) {

        console.log(e)

        if (this.pageObj.pageNo >= this.pageObj.pages) return;

        const { target } = e;

        const { scrollTop, scrollHeight, clientHeight } = target;

        if (scrollTop + 2 + clientHeight >= scrollHeight) {

          // 已经到达底部,触发分页逻辑

          // todo 这里就可以触发加载下一页请求  具体函数根据当前业务需求来定

          this.pageObj.pageNo = ++this.pageObj.pageNo;

          this.pageObj.pageSize+1

          this.getTypeList(true)

        }

      },

      getTypeList(isScroll = false) {

        let param = {

          pageNo: this.pageObj.pageNo,

          pageSize: this.pageObj.pageSize

        }

        getDeviceTypeList(param).then((res) => {

          if (res.success) {

            this.pageObj.pages = res.result.pages;

            this.typeList = isScroll == false ? [] : this.typeList;

            res.result.records.forEach((e) => {

              // 成功之后的数据应该push进数组中,而不是直接等于,否则就是下拉换页的效果了。

              this.typeList.push(e);

            });

          }

        })

      },

}

 

http://www.lryc.cn/news/191591.html

相关文章:

  • 精准突击!GitHub星标103k,2023年整理1658页JAVA秋招面试题
  • GEE:基于GLDAS数据集分析土壤湿度的时间序列变化
  • Nacos安装
  • UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)
  • Ubuntu 22.04.3 LTS单机私有化部署sealos
  • #力扣:2236. 判断根结点是否等于子结点之和@FDDLC
  • 暴力递归转动态规划(九)
  • Linux知识点 -- 高级IO(一)
  • Android AMS——内存回收机制(十二)
  • 1600*C. Add One(数位DP找规律)
  • 干货丨送你几个实用PR编辑技巧(二) 优漫动游
  • [每周一更]-(第67期):docker-compose 部署php的laravel项目
  • vsCode 忽略 文件上传
  • 197、管理 RabbitMQ 的虚拟主机
  • [NCTF2019]SQLi regexp 盲注
  • 通过webpack创建并打包js库到npm仓库
  • 【Java 进阶篇】深入了解JavaScript中的函数
  • 谷歌 Chrome 浏览器正推进“追踪保护”功能
  • Excel 自动提取某一列不重复值
  • 【TensorFlow2 之011】TF 如何使用数据增强提高模型性能?
  • Hadoop 安装教程 (Mac m1/m2版)
  • Docker - 网络模式与容器网络互连
  • 【基础篇】三、Flink集群角色、系统架构以及作业提交流程
  • 第一个2DGodot游戏-从零开始-逐步解析
  • 大数据学习(7)-hive文件格式总结
  • GRU的 电影评论情感分析 - python 深度学习 情感分类 计算机竞赛
  • kafka简述
  • 《RISC-V体系结构编程与实践》的benos_payload程序——mysbi跳转到benos分析
  • ad5665r STM32 GD32 IIC驱动设计
  • TensorFlow入门(十六、识别模糊手写图片)