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知识库 -> element树形表格 模糊查询前端 -> 正文阅读

[JavaScript知识库]element树形表格 模糊查询前端

查询条件

<el-form :model="search" size="small" label-width="80px">
      <el-row>
        <el-col :span="8">
          <el-form-item label="名称">
            <el-input v-model="search.mc" clearable placeholder="请输入名称" />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="描述">
            <el-input v-model="search.ms" clearable placeholder="请输入描述" />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item style="text-align:left">
            <el-button size="small" type="primary" @click="filterTreeData">查询</el-button>
            <el-button size="small" @click="resetmh">重置</el-button>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>

树形表格数据

 <el-table
      border
      :data="treeTableData"
      row-key="id"
      :expand-row-keys="expandRowKeys"
      :tree-props="{ children: 'children', hasChildren: 'haschildren' }"
    >
      <el-table-column type="selection" width="55" :selectable="selected"></el-table-column>
      <el-table-column prop="mc" label="名称" width="300" :show-overflow-tooltip="true" />
      <el-table-column prop="ms" label="描述" :show-overflow-tooltip="true" />
      <el-table-column prop="sstdmc" label="所属团队" width="200" :show-overflow-tooltip="true" />
    </el-table>

data数据

return{
     // 表格树数据
      tableData: [],
      expandRowKeys:[],
// 用于展现的表格树数据
 treeTableData: [],
    search: {
        mc: '',
        ms: '',
      },
}

js数据

      //重置
    resetmh(){
      this.search.mc = "";
      this.search.ms = "";
      this.filterTreeData()
    },
 // 过滤数据
    filterTreeData() {
      var searchValue = this.search
      if (searchValue.mc != '' || searchValue.ms != '') {
        let treeData = this.tableData
        let handleTreeData = this.handleTreeData(treeData, searchValue)
        this.setExpandRow(handleTreeData)
        this.treeTableData = handleTreeData
      } else {
        this.treeTableData = this.tableData
      }
    },
    //  树形表格过滤
    handleTreeData(treeData, searchValue) {
      if (!treeData || treeData.length === 0) {
        return []
      }
      const array = []
      for (let i = 0; i < treeData.length; i += 1) {
        // 根据需求修改过滤逻辑
        let match = false
        let flag = false
        let f1 = true
        if (this.search.mc !== '') {
          flag = treeData[i]['mc'].includes(searchValue.mc)
          f1 = flag
        }
        if (this.search.ms !== '') {
          flag = treeData[i]['ms'].includes(searchValue.ms)
          if(flag === true && f1 === false){
            flag = false
          }
        }
        match |= flag
        // for (let key in treeData[i]) {
        // 下面这段逻辑
        // 判断对象{key:value}的value是否为String类型,如果是,那就判断value是否存在要过滤的值,只要有一个为true,那就跳出循环
        // if (typeof treeData[i][key] == 'string') {
        //   // x |= y // x = x | y,|:位运算符,只要二进制数字存在1便为1
        //   // 大概为: false:0  true:1   0|0为0    0|1或1|0或1|1都为1
        //   match |= treeData[i][key].includes(searchValue)
        //   if (match) {
        //     break
        //   }
        // }
        if (this.handleTreeData(treeData[i].children, searchValue).length > 0 || match) {
          // ... 表示 js的展开能读取的元素
          array.push({
            // 展开treeData[i]里所有能读取的元素并赋予对象
            ...treeData[i],
            children: this.handleTreeData(treeData[i].children, searchValue)
          })
        }
      }
      return array
    },

后台接口数据

  //查询知识库列表
    async getData() {
      const { data: res } = await this.$postRequest('zskflgl/getZskflTreeData', {
        mc: this.search.mc,
        ms: this.search.ms,
        sstd: this.search.sstd,
        sstdmc: this.search.sstdmc
      })
      if (res.flag === 'Y') {
        this.tableData = res.data
        this.filterTreeData()
      } else {
        this.$message.error(res.message)
      }
    },
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:59:01  更:2022-05-08 08:02:30 
 
开发: 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年11日历 -2024/11/23 23:38:14-

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