elementUI中表格多选框的记录--v2

场景

在表格中点击多选框根据每个数据的ID能够查询到相关的信息

(1)不支持全选;做法隐藏了全选按钮

css 复制代码
::v-deep .el-table__header-wrapper .el-checkbox {
  // display: none;//设置不成功,页面卡顿
  visibility: hidden;
}

(2)不支持跨页

(3)点击就进行查询

(4)行内数据某种状态的不支持选择

|------------|---------------------------------------------------------------------------|----------------------|-----|-----|
| selectable | 仅对 type=selection 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选 | Function(row, index) | --- | --- |

代码

多选框的选择状态

html 复制代码
        <el-table-column type="selection" :selectable="selectable" width="55" />
   /**
     * @func 多选框不能选中已结算
     *
     */
    selectable(row, index) {
      if (row.status == 1) {
        return false;
      } else {
        return true;
      }
    },

搜索

点击多选框的事件

事件名 说明 参数
select 当用户手动勾选数据行的 Checkbox 时触发的事件 selection, row
select-all 当用户手动勾选全选 Checkbox 时触发的事件 selection
selection-change 当选择项发生变化时会触发该事件 selection
html 复制代码
 <el-table :data="tableData" style="width: 100%" @select="selectOrderList">

这里使用的是select 不使用selection-change。因为点击事件一个获得的是点击行的row。另一个是取消选择返回一个[ ].

需求是将点击的id存入一个list。需要去重之类的操作。我直接使用的是点击获取id,在数组中如果没有进行push,如果有就删除。

javascript 复制代码
/**
     * @func 获取列表
     * @param {*} val
     */
    selectOrderList(selection, row) {
      const index = this.OrderListId.indexOf(row.id);
      if (index === -1) {
        // 如果id不在数组中,将id插入到数组末尾
        this.OrderListId.push(row.id);
      } else {
        // 如果id在数组中,从数组中删除该id
        this.OrderListId.splice(index, 1);
      }
      console.log(this.OrderListId);
     //将list发送请求
      this.getOrderMoneyMsg();
    },

注意点

在重置搜索切换页面时候,加载时候都需要将list进行清空。避免数据缓存。

相关推荐
小二·2 小时前
Python Web 开发进阶实战 :AI 原生数字孪生 —— 在 Flask + Three.js 中构建物理世界实时仿真与优化平台
前端·人工智能·python
Amumu121383 小时前
Vue组件化编程
前端·javascript·vue.js
We་ct3 小时前
LeetCode 6. Z 字形变换:两种解法深度解析与优化
前端·算法·leetcode·typescript
小二·4 小时前
Python Web 开发进阶实战(终章):从单体应用到 AI 原生生态 —— 45 篇技术演进全景与未来开发者生存指南
前端·人工智能·python
m0_637256585 小时前
vue-baidu-map添加了类型组件导致非常卡顿的问题
前端·javascript·vue.js
挂机且五杀5 小时前
为什么在React地图组件里,memo 不是优化,而是生存?
前端·react.js·前端框架
RFCEO5 小时前
HTML编程 课程七、:HTML5 新增表单标签与属性
前端·html·html5·搜索框·手机号·邮箱验证·日期选择
刘一说5 小时前
Vue开发中的“v-model陷阱”:为什么它不能用于非表单元素?
前端·javascript·vue.js
利刃大大5 小时前
【Vue】组件生命周期 && 组件生命周期钩子
前端·javascript·vue.js·前端框架
建群新人小猿7 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库