vue+elementUI 实现table删除多行(转载)

这篇博客探讨了如何在Vue.js中使用`el-table`组件进行数据展示,并展示了如何实现选择列和删除功能。`badCodeTableData`是表格数据源,`badCodeResolveChange`方法用于处理行选择变化,保存选中项。`badCodeRemoveHandle`方法遍历选中行并从数据源中移除,更新选中项列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

template
 
        <el-table
          :data="badCodeTableData"
          :default-sort="{ prop: 'id', order: 'ascending' }"
          border
          tooltip-effect="dark"
          height="280"
          @selection-change="badCodeResolveChange"
        >
          <el-table-column type="selection" width="55"> </el-table-column>
          <el-table-column prop="id" label="序号" width="110">
          </el-table-column>
          <el-table-column prop="code" label="不良代码编号" width="180">
          </el-table-column>
          <el-table-column prop="name" label="不良代码名称" width="180">
          </el-table-column>
          <el-table-column prop="description" label="不良代码描述" width="250">
          </el-table-column>
        </el-table>
 
         <el-button
          size="small"
          class="remove"
          icon="el-icon-delete"
          @click="badCodeRemoveHandle"
          >删除</el-button
         >

 

 

method
 
    badCodeResolveChange(rows) {
      // 用一个变量来存放被选中的index
      this.badCodeSelection = rows;
      //console.log(this.badCodeSelection);
    },
 
    badCodeRemoveHandle() {
      this.badCodeSelection.forEach((item) => {
        for (let i = 0; i < this.badCodeTableData.length; i++) {
          if (this.badCodeTableData[i].id === item.id) {
            this.badCodeTableData.splice(i, 1);
            break;
          }
        }
      });
      this.badCodeSelection = [];
    },

 

而我的方法是借鉴的:

.vue中

js中

​​​​​​​

 

可以参考以下代码实现: ```vue <template> <div> <el-checkbox v-model="selectAll" @change="handleSelectAll">{{ selectAllText }}</el-checkbox> <el-checkbox-group v-model="selectedRows" @change="handleSelectedRowsChange"> <el-checkbox v-for="(row, index) in tableData" :label="index" :key="index">{{ row.name }}</el-checkbox> </el-checkbox-group> </div> </template> <script> export default { data() { return { tableData: [ { id: 1, name: "John" }, { id: 2, name: "Jane" }, { id: 3, name: "Bob" }, { id: 4, name: "Alice" } ], selectedRows: [], selectAll: false }; }, computed: { selectAllText() { return this.selectedRows.length === this.tableData.length ? "取消全选" : "全选"; } }, methods: { handleSelectAll(checked) { if (checked) { this.selectedRows = this.tableData.map((_, index) => index); } else { this.selectedRows = []; } }, handleSelectedRowsChange(selectedRows) { this.selectedRows = selectedRows; this.selectAll = selectedRows.length === this.tableData.length; } } }; </script> ``` 其中,`tableData` 为表格数据,`selectedRows` 为选中的行数,`selectAll` 表示是否全选。通过 `el-checkbox` 和 `el-checkbox-group` 组件实现多行多选。通过 `selectAllText` 计算属性来动态显示全选/取消全选按钮的文字。`handleSelectAll` 方法用来处理全选/取消全选事件,`handleSelectedRowsChange` 方法用来处理选中行数变化事件。在这两个方法中,需要根据选中的行数来更新 `selectedRows` 和 `selectAll` 的值,并调用接口进行数据交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值