el-cascader数据递归反显

  <el-cascader
    v-model="arrArrList"
    :options="optionsArr"
    :props="propsOptions"
    collapse-tags
    ref="demoCascader"
    placeholder="11111"
    clearable></el-cascader>

js

data(){
  propsOptions:{ // 权限
    children: "children",
      label: "label",
      id:"id",
      value:"id",
      multiple: true,
      checkStrictly: true // 这个可以去掉 可以不去掉
  },
  arrArrListValue:[// 这里是后端返回的数据
	{id:1},
	{id:111},
	{id:222},
	{id:2},
]
   arrArrList:[],
   optionsArr:[
   {id :1,label:"1",
   	children:[
   	{id:11,label:"11"},
   	{id:22,label:"22"}
   	{id:33,label:"33"}
   	{id:44,label:"44",
   	  children:[
   	    {id:111,label:"111"},
        {id:222,label:"222"},
	  ]}
   ]},
   {id :2,label:"2"},
   {id :3,label:"3"},
   {id :4,label:"4"},
  ],
}

逻辑功能

 if(this.arrArrListValue){
    this.arrArrList = this.fromDeptTree(this.optionsArr, this.arrArrListValue);
  } else {
    this.arrArrList = []
  }
fromDeptTree(array, selects) {
      var items = [];
      if(selects) {
        for(var i = 0; i < selects.length; i++) {
            var item = this.recursionDept(array, selects[i].id);
            items.push(item);
        }
      } else {
        items = []
      }
      return items ;
    },
  recursionDept(array, id) {
      if(array) {
        for(var i = 0; i < array.length; i++) {
          if(array[i].id == id) {
            var items = [] ;
            items.unshift(id) 
            return items;
          } else {
            if(array[i].children) {
              var res = this.recursionDept(array[i].children, id);                
              if(res) {
                res.unshift(array[i].id);
                return res ;
              }
            }
          }
        }
      }
    },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值