ElementUI (el-table )添加、删除行,清空表格

效果图

在这里插入图片描述

Step1: 创建表格

用el-table创建表格,绑定data中数据

<el-table
          ref="multipleTable"
          :data="tableData" 
          tooltip-effect="dark"
          stripe
          class="man-table"
          style="width: 100%"
          @selection-change="handleDetailSelectionChange"
      >

data中:

data() {
    return {
      //选择框
      checkedDetail:[],
      // 表格数据
      tableData: [
        {
          id: "01",
          Type: "类型一",
          Time: "17:23",
          Info: "越界",
          Location: "lng: 161.32 ,  lat: 39.34",
          Workers: "王五",
          State: "处理中"
        },
        {
          id: "02",
          Type: "类型二",
          Time: "17:26",
          Info: "越界",
          Location: "lng: 161.34 , lat: 39.44",
          Workers: "李四",
          State: "处理完成"
        }
      ],
 }

@selection-change为勾选框改变事件,在选择勾选框时触发。

//单选框选中数据
    handleDetailSelectionChange(selection) {
      //如果缓存中已有数据,则清空
      if (selection.length > 1) {
        this.$refs.multipleTable.clearSelection();
        this.$refs.multipleTable.toggleRowSelection(selection.pop());
      } else {
        //将选中行存入缓存中
        this.checkedDetail = selection;
      }
    },

section本来是多选时选中项的数组,通过 this.$refs.multipleTable获取到这个el-table,提前需要给这个el-table设置

ref=“multipleTable”

需要提前声明checkedDetail

//选择框
checkedDetail:[]

添加行

<el-button 
     class="add-btn" 
     @click="handleAddDetails"
>添加</el-button>

methods中:

handleAddDetails() {
	  //如果数据为空,则重置
      if (this.tableData == undefined) {
        this.tableData = new Array();
      }
      let obj = {};
          obj.id:"03",
          obj.Type: "类型四",
          obj.Time "13:54",
          obj.Info: "越界",
          obj.Location: "lng: 161.32 , lat: 39.34",
          obj.Workers: "秦六",
          obj.State: "处理中"
         
      //push进this.tableData中
      this.tableData.push(obj);
    },

删除行

<el-button
     class="del-btn"
     icon="iconfont icon-shanchu"
     @click="handleDelete(scope.$index)"
></el-button>

methods中:

// 删除单个行
    handleDelete(index) {
      //console.log(this.tableData[index]);
      if (this.checkedDetail.length == 0) {
        this.$alert("请先选择要删除的数据", "提示", {
          confirmButtonText: "确定",
        });
      } else {
        this.tableData.splice(index, 1);
      }
    },

勾选后,勾选的内容存储到了checkedDetail中
所以在删除前判断是否选中了一行就可以通过判断其长度即可。

然后,首先判断是否选择了行,如果未选择行,则会给出提示,随后将此条数据在数据源中去掉即可实现删除一行。

splice方法是表示从第一个索引参数开始,删除第二个参数个元素。

清空表格

<el-button 
     class="del-btn" 
     icon="el-icon-delete" 
     @click="Clear"
>清空</el-button>

methods中:

//清空List
    Clear(){
      this.tableData=undefined;
    }

清空List很简单,将tableData设为undefined即可

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJR10byh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值