vue树结构搜索 递归 watch监听 一个表格间隔分开样式

vue树结构搜索 递归 watch监听 一个表格间隔分开样式

树结构搜索.vue

<template>
    <div class="container">
          <el-input 
        v-model= "search"
        size="mini"
        suffix-icon ="el-icon-search"
        placeholder = "请输入关键字搜索"
        @input="searchName"
        />
    </div>
</template>
<script>
export default {
       data(){
           return{
             search:"",
           }
       },
       watch:{
        //    方式一
           search(val){
               if(!val){
                   this.tableData =this.cloneTableData;
               }
               if(val){
                   let filterData = this.cloneTableData.concat();
                   var Ary = rebuildData(this.search,filterData);
                   this.tableData = Ary;
               }
           }
       },
       methods:{
        //    方式二
           getData(){
               let dataList = res.obj;
               this.cloneTableData = objData.data;
                if(!this.search){
                   this.tableData =this.cloneTableData;
               }else{
                   let filterData = this.cloneTableData.concat();
                   var Ary = rebuildData(this.search,filterData);
                   this.tableData = Ary;
               }
           }
       }
       created(){
           this.tableData = res.obj;
           this.cloneTableData = res.obj;
       },

},
var ary;
const rebuildData = (value,arr){
    if(!arr){
        return [];
    }
    let newarr = [];
    arr.forEach((element)=>{
        if(element.showName.indexOf(value)>-1){
            const ab = rebuildData(value,element.children);
            const obj = {
                ...element,
                children:ab,
            };
            newarr.push(obj);
        }else{
            if(element.children && element.children.length>0){
                 const ab = rebuildData(value,element.children);
                 const obj = {
                    ...element,
                    children:ab,
                };
                if(ab && ab.length> 0){
                    newarr.push(obj);
                }
            }
        }
    });
    ary = newarr;
    return newarr
};
</script>
<style scoped lang="scss">
// ::v-deep   增加权重
// 搜索框样式
::v-deep .el-input_inner{
    background-color:#1d658b;
}
::v-deep .el-input_suffix{
    margin-right:15px
}
</style>
<style lang="scss">
    // 一个表格分开间隔
    .container{
        .el-table_row--level-0:not(:nth-of-type(1)){
            margin-top:10px;
            display:inline-block !important;
            display:flex;
            width:10000px;
        }

        .el-table_row--level-0{
            background: #144861 !important;
            z-index:10000;
            color:#82c5e8;
            font-weight:bold;
            td{
                background:#144861 !important
            }
        }
    }
</style>
效果图

1.1-表格界面解析

在这里插入图片描述

1.2-搜索层级

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值