IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> elementUI的表格搜索和删除功能的实现 -> 正文阅读

[JavaScript知识库]elementUI的表格搜索和删除功能的实现

elementUI的表格搜索和删除功能的实现

1、搜索可以模糊搜索关键字
2、删除可以删除表格这条数据
3、搜索后可以删除表格数据并清空搜索时展示删除后的数据

具体效果可以复制如下代码查看效果;

<template>
  <div class="content-box">
    <div class="container">
      <div style="display: flex">
        <el-input
          v-model="inputText"
          placeholder="请输入内容"
          style="width: 250px"
        ></el-input>
        <el-button type="primary" @click="search">主要按钮</el-button>
      </div>

      <el-table
        :data="tableList"
        style="width: 100%; margin-bottom: 20px"
        row-key="id"
        border
        default-expand-all
        :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column
          prop="name"
          label="区域名称"
          width="180"
        ></el-table-column>
        <el-table-column
          prop="date"
          label="创建时间"
          width="180"
        ></el-table-column>
        <el-table-column label="操作管理">
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="danger"
              @click="handleDele(scope.row)"
            >
              删除
            </el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          id: 1,
          date: "2016-05-02",
          name: "篮球",
          address: "上海市普陀区金沙江路 1518 弄",
          isDelete:false
        },
        {
          id: 2,
          date: "2016-05-04",
          name: "读书1",
          address: "上海市普陀区金沙江路 1517 弄",
          isDelete:false
        },
        {
          id: 3,
          date: "2016-05-01",
          name: "编程",
          address: "上海市普陀区金沙江路 1519 弄",
          isDelete:false
        },
        {
          id: 4,
          date: "2016-05-03",
          name: "弹琴",
          address: "上海市普陀区金沙江路 1516 弄",
          isDelete:false
        },
        {
          id: 5,
          date: "2016-05-03",
          name: "读书2",
          address: "上海市普陀区金沙江路 1516 弄",
          isDelete:false
        },
        {
          id: 6,
          date: "2016-05-03",
          name: "插画",
          address: "上海市普陀区金沙江路 1516 弄",
          isDelete:false
        },
      ],
      tableList: [],
      searchlist: [],
      inputText: "",
    };
  },
  created() {
    this.setSlist(this.tableData);
  },
  methods: {
    // 获取需要渲染到页面中的数据
    setSlist(arr) {
      this.tableList = JSON.parse(JSON.stringify(arr));
    },
    search() {
      if (this.inputText) {
        var slist = [];
        // 过滤需要的数据
        this.tableData.forEach((item) => {
          // 检测搜索关键字 和 判断是否删除的数据
          if (item.name.indexOf(this.inputText) > -1 && !item.isDelete) {
            slist.push(item);
          } else if(!item.isDelete){
            this.searchlist.push(item)
          }
        });
        this.setSlist(slist); // 将过滤后的数据给了tableList 
      } else {
        // 没有搜索内容,则展示全部数据 但是要判断是否删除的数据
        this.searchlist = []
        this.tableData.forEach((item) => {
          if(!item.isDelete){
            this.searchlist.push(item)
            this.setSlist(this.searchlist)
          }
        })
      }
    },
    handleDele(row) {
      this.tableList.forEach((element, i) => {
        console.log(this.tableData, this.tableList);
        if (element.id == row.id) {
          if(this.tableData.length == 1){
            return this.$message.warning('至少保留一个参与对象')
          }
          if(this.tableData.filter(elm => !elm.isDelete).length == 1){
            return this.$message.warning('至少保留一个参与对象')
          }
          this.tableData.forEach((elm) => {
            if(elm.id == row.id){
              elm.isDelete = true
            }
          })
          this.tableList.splice(i, 1);
        }
      });
      this.setSlist(this.tableList);
    }
  },
};
</script>

<style lang="scss" scoped>
</style>

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:09:16  更:2021-08-09 10:09:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:19:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码