Element-UI表格多选框与tags联动

项目需求是一个可选择的table表格,勾选上后显示标签,并且翻页也能存留数据
在这里插入图片描述
首先是如何将勾选的数据保留,使其翻页或者刷新不改变勾选内容
1、给表格添加row-key
row-key:行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function。

<el-table v-loading="tableDataLoading" :data="tableData" :height="300" :row-key="getRowKeys" @selection-change="handleSelectionChange" ref="multipleTable">
 
      </el-table>

data() {
    return {
      selectTotal: 0,
      title: '添加人员',
      addData: {
        keyWord: '',
        projectUserRole: ''
      },
      // 获取row的key值
      getRowKeys(row) {
        return row.userId;
      	},
      }
      注意:key取独一无二的值,否则会引起混乱

2、在selection行添加:reserve-selection=“true”
reserve-selection:仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key)

       <el-table-column type="selection" width="55" :reserve-selection="true" />
        <el-table-column prop="userName" label="姓名" width="100" align="center" :show-overflow-tooltip="true" />
        <el-table-column prop="employeeNo" label="员工编号" width="160" align="center" :show-overflow-tooltip="true" />

至此,能实现翻页或更新保留历史勾选。

添加tag标签
在这里插入图片描述
给tag绑定close事件,此时能实现tag关闭

   <el-tag v-for="tag in userIdList" :key="tag.userId" @close="handleClose(tag)" closable class="tags">
        {{tag.userName}}
      </el-tag>

    // 关闭标签
    handleClose(tag) {
      this.userIdList.splice(this.userIdList.indexOf(tag), 1)
    },

在这里插入图片描述
此时tag能关闭标签,但无法与表格的勾选项相关联。
element-ui内置清除勾选的方法(注意给表格绑定ref)

      toggleSelection(rows) {
        if (rows) {
          rows.forEach(row => {
            this.$refs.multipleTable.toggleRowSelection(row);
          });
        } else {
          this.$refs.multipleTable.clearSelection();
        }
      },

将tag的close方法与table的清除勾选方法相结合

    // 关闭标签
    handleClose(tag) {
      this.userIdList.splice(this.userIdList.indexOf(tag), 1)
      this.$refs.multipleTable.toggleRowSelection(tag);
    },

实现功能!
记录一下。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值