递归筛选部门(无人员),层级选择器

这篇博客介绍了如何在通讯录列表中使用级联选择器筛选部门,并确保仅显示包含人员的部门。通过`handleChange`方法处理选择器的变更,`getBmTree`方法获取部门树状结构,同时`keepDep`方法递归地删除无人员的子部门。最终在组件挂载时初始化数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.通讯录列表

 

<h6>通讯录列表</h6>

 <div class="input-wrap">

    <el-cascader class="cascader" :show-all-levels="false" :options="depTree" :props="defaultProps" v-model="selectDepartmentList" filterable clearable change-on-select @change="handleChange"></el-cascader>

 </div>

 

2.data里声明

 

data() {

        return {

             defaultProps:{//级联选择器部门人员自定义变量指示

                    value:'ID',

                    label:'NAME',

                    children:'CHILDREN',

             },

             depTree:[],

             selectDepartmentList: [],//默认值

 

             bmmc:null,       //部门名称索引

 

 

        }

}

 

3.点击  筛选部门

 

//筛选部门

        handleChange(val){

            console.log(1212,val)

    

            this.bmmc = val[val.length-1],

            

            this.getAddressList();//获取列表的方法

        },

 

4.搜索框 无人员显示  只获取部门

 

//部门树状结构(搜索框)

        getBmTree(){

            let param = {

                departid: '',

                name:'',

            }

            this._GetDepartmentTreeAndUser(param).then(da => {

                let data = JSON.parse(da);

                if (data.status==0) {

                    this.keepDep(data.result);

                    data.result.forEach(ele=>{

                        if(ele.ID!='918' && ele.ID!='919' && ele.ID!='920'){//此处因为返回之中无ISDEPARTMENT字段

                            this.depTree.push(ele)

                        }

                    })

                }

            });

        },

        //递归处理空的部门children(搜索框)

        keepDep(item){

            if(item&&item.length!=0){

                item.forEach(ele =>{

                    if(ele.CHILDREN.length!=0){

                        this.keepDep(ele.CHILDREN)

                    }else{

                        delete ele.CHILDREN

                    }

                })

            }

        },

 

5 声明

 

mounted() {

        this.getBmTree()

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值