Vue + element-ui 实现el-table本地批量删除及搜索功能

1,076 阅读1分钟

有美人兮,见之不忘,一日不见兮,思之如狂。

废话不多说了,直接上代码

一、html部分

<!--删除按钮和搜索框部分-->
<div class="deleteSearch">
  <el-button type="primary" @click="deleteBatch()" icon="el-icon-delete" plain>删除</el-button>
  <el-input v-model="searchText" placeholder="请输入内容" clearable></el-input>
</div>
<!--表格部分-->
<el-table
    :data="tables"
    ref="multipleTable"
    @selection-change="handleSelectionChange"
    border
    height="465"
    style="width: 100%">
  <el-table-column align="center" type="selection" width="70"></el-table-column>
  <el-table-column type="index" label="No." align="center" width="90"></el-table-column>
  <el-table-column prop="wlbm" label="代码" width="150"></el-table-column>
  <el-table-column prop="qc2" label="长描述" show-overflow-tooltip></el-table-column>
  <el-table-column prop="jc2" label="短描述" show-overflow-tooltip></el-table-column>
</el-table>

二、JS部分

1、在data中定义变量

data() {
  return {
    searchText:'', //搜索内容
    tableData:[
        {
          "qc2": "回液接头 ZY12000/20/40D液压支架 FATA250/50-9",
          "wlbm": "10465084",
          "jc2": "回液接头 ZY12000/20/40D液压支架 FATA250/50-9"
        }, {
          "qc2": "刮板输送机 SGZ1000/2800",
          "wlbm": "10472715",
          "jc2": "刮板输送机 SGZ1000/2800"
        }, {
          "qc2": "斜齿轮 P-30B扒斗机 19CA50101-2",
          "wlbm": "10467568",
          "jc2": "斜齿轮 P-30B扒斗机 19CA50101-2"
        }, {
          "qc2": "轴承座 SUCT209",
          "wlbm": "10474550",
          "jc2": "轴承座 SUCT209"
        }, {
          "qc2": "高压防爆异步电动机 YB3-40010-2 500kW 10KV ExdⅡBT4 IP55 F",
          "wlbm": "10480161",
          "jc2": "高压防爆异步电动机 YB3-40010-2 500kW 10KV ExdⅡBT4"
        }
    ],//表格数据
    multipleSelection: [],//多选数据
  }
},

2、在methods实现功能

//表格全选
handleSelectionChange(val) {
  this.multipleSelection = val;
},
//删除
deleteBatch() {
  var d = this.tableData;
  this.$refs.multipleTable.selection.forEach((Ele, index) => {
    for(var i = 0; i<d.length; i++ ){
      var t = d[i].wlbm;
      if( t == Ele.wlbm ){
        d.splice(i , 1);
      }
    }
  })
},

3、通过计算属性实现搜索功能

computed:{
  tables:function(){
    var search = this.searchText;
    if(search){
      return  this.tableData.filter(function(dataNews){
        return Object.keys(dataNews).some(function(key){
          return String(dataNews[key]).toLowerCase().indexOf(search) > -1
        })
      })
    }
    return this.tableData
  }
},

最终实现效果:

search.jpg