【递归】根据code值递归获取属性结构数组中的name值

1.需求
有个需求嘛,就是一个数组里面有code和对应的name值,但是操作时只保存了code值,要name值时就要获取树形结构的数据

<el-tree
 class=""
 :data="treeData"
 node-key="classCode"
 highlight-current
 ref="menuTree"
 :props="defaultProps"
 style="overflow: scroll;"
 :style="{height: treeHeight + 'px'}"
 @node-click="handleNodeClick"
 :default-expanded-keys="defaultShowNodes"
>
 <span class="custom-tree-node" slot-scope="{ node, data }" @mouseover="treeMouseOver($event, data)" @mouseleave="treemouseLeave($event, data)" style="width: 100%;">
   <el-tooltip popper-class="" effect="dark" placement="top" v-if="data.toolshow">
     <span slot="content">{{ node.label }}</span>
     <span class="tree-nood">{{ node.label }}</span>
   </el-tooltip>
   <span v-else class="tree-nood">{{ node.label }}</span>
   <span style="position: absolute;right: 0;width: 112px;" class="node-none">
     <el-tooltip effect="dark" content="新增" placement="top" style="margin-left: 8px;">
       <span v-if="data.validFlag==='1' && data.showflag">
         <el-button
           type="text"
           size="mini"
           class="purchmanager-button-add"
           v-privilege="activeMenu + 'parentTreeNode'"
           @click="() => parentTreeNode(node, data, '1')">
         </el-button>
       </span>
     </el-tooltip>
     <el-tooltip effect="dark" content="修改" placement="top" style="margin-left: 40px;">
       <span v-if="data.validFlag==='1'">
         <el-button
           type="text"
           size="mini"
           class="purchmanager-button-edit"
           v-privilege="activeMenu + 'openEditWindow2'"
           @click="() => openEditWindow('2', data)">
         </el-button>
       </span>
     </el-tooltip>
     <el-tooltip effect="dark" content="停用" placement="top" style="margin-left: 32px;">
       <span style="margin-right: 5px;" v-if="data.validFlag==='1'">
         <el-button
           type="text"
           size="mini"
           class="purchmanager-button-stop"
           v-privilege="activeMenu + 'userStop1'"
           @click="() => userStop('stop', data)">
         </el-button>
       </span>
     </el-tooltip>
     <el-tooltip effect="dark" content="启用" placement="top" style="margin-left: 80px;">
       <span style="margin-right: 5px;" v-if="data.validFlag==='0'">
         <el-button
           type="text"
           size="mini"
           class="purchmanager-button-use"
           v-privilege="activeMenu + 'userStop2'"
           @click="() => userStop('use', data)">
         </el-button>
       </span>
     </el-tooltip>
   </span>
 </span>
</el-tree>
data () {
	return: {
		treeData: [
			code: '1',
			name: '11',
			children: [
				{
					id: 'x1',
					name: 'x11'
				},
				{
					id: 'x2',
					name: 'x22'
				}
			]
		],
		defaultProps: {
         children: 'children',
         label: 'name'
      },
      code: 'x1',
      name: ''
	}
}

在script中

getName (list, code) { // list存放数组,code存放要找的code值
	var name = '';
    for (let i = 0; i < list.length; i++) {
      try {
        if (list[i].orgCode === code) {
          name = list[i].orgName
          return name
        } else if (list[i].children && list[i].children.length >= 1) {
          name = this.getName(list[i].children, code);
          if (name) {
            return name
          }
        }
      } catch (error) {
        console.log(error)
      }
    }
    return name;
}
xxx () {
	this.name = this.getName(this.treeData, this.code)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值