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)
}