通过当前id递归遍历树结构,树结构回显

13 篇文章 0 订阅

 方法

treeSelect(node) {
//调用赋值
            this.findPathByLeafId(this.partOptions, node.id)
        },
        // 递归实现,遍历数组
        // 通过id遍历查找父级name
findPathByLeafId(array, id) {
            const stack = []
            let going = true
            const walker = (array, id) => {
                array.forEach(item => {
                    if (!going) return
                    stack.push(item.partialName)
                    if (item['id'] === id) {
                        going = false
                    } else if (item['children']) {
                        walker(item['children'], id)
                    } else {
                        stack.pop()
                    }
                })
                if (going) stack.pop()
            }
            walker(array, id)
            // return stack.join(' / ')
            this.partLabelName = stack.join(' / ')
        },

HTML结构

<tree-select
v-model="form.partialId"
:options="partOptions"
:flat="false"
:searchable="true"
:show-count="false"
:normalizer="normalizerPart"
:multiple="false"
:disable-branch-nodes="false"
placeholder="请选择名称"
@treeSelect="treeSelect"
/>

<el-col :span="24">
<div style="margin-left: 90px;margin-bottom:5px;color: #999999">
{{ partLabelName }}
</div>
</el-col>
data() {
        return {
            visible: false,
            // 是否显示弹出层
            open: false,
            // 确认按钮加载状态
            loading: false,
            // 表单参数
            form: {},
            partLabelName: ''
        }
    },

循环树结构

  const renderTreeNodes = (data) =>
    data.map((item, index) => {
      if (item.children) {
        return (
          <TreeNode checkable={false} title={`${index + 1}、${item.title}`} key={item.key}>
            {renderTreeNodes(item.children)}
          </TreeNode>
        );
      }
      return <TreeNode key={item.key} {...item}></TreeNode>;
    });
 <Tree
        checkable
        onExpand={onExpand}
        expandedKeys={expandedKeys}
        autoExpandParent={autoExpandParent}
        onCheck={checkDep}
        checkedKeys={checkedKeys}
        selectable={false}
        // onSelect={onSelect}
        // selectdKeys={selectdKeys}
      >
        {renderTreeNodes(treeData)}
      </Tree>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值