el-tree树形结构回显

img


左侧有一个单位的树形结构,点击最后一级可以查到单位下的部门,可以进行配置,配置完成后可以再点击其他单位进行配置,再次点击之前配置过的单位,要进行部门回显,请问该怎么实现呢

点击时调用 接口 获取部门。一般来说要传点击的唯一标识 。

就是点击树查询数据,要注意的点是添加了下级部门,要刷新当前树,刷新要默认展开之前节点。
默认展开之前节点可以参考我这篇文章。
https://blog.csdn.net/z291493823/article/details/103072889

【以下回答由 GPT 生成】

问题分析

根据问题描述,我们需要实现一个树形结构的回显功能,并且能够配置单位和部门信息。具体要求如下: - 当点击最后一级单位时,显示该单位下的所有部门。 - 可以对单位和部门进行配置操作。 - 当再次点击之前配置过的单位时,要能够回显其部门信息。

解决方案

1. 准备数据

首先,我们需要准备相关的数据。根据问题描述,我们可以把单位和部门的信息存储在一个数组中,并给每个单位和部门添加一个唯一的标识符。

// 准备数据
data() {
  return {
    treeData: [
      {
        id: '1',
        name: '单位1',
        children: [
          {
            id: '11',
            name: '部门1'
          },
          {
            id: '12',
            name: '部门2'
          }
        ]
      },
      {
        id: '2',
        name: '单位2',
        children: [
          {
            id: '21',
            name: '部门3'
          },
          {
            id: '22',
            name: '部门4'
          }
        ]
      }
    ],
    selectedUnitId: '', // 当前选中的单位id
    departments: [] // 当前选中单位的部门信息
  }
}

2. 显示树形结构

使用 el-tree 组件显示树形结构,并通过 default-expand-all 属性设置默认展开所有节点。

<el-tree
  :data="treeData"
  :default-expand-all="true"
  @node-click="handleNodeClick"
></el-tree>

3. 处理节点点击事件

在节点点击事件处理函数 handleNodeClick 中,获取当前点击的节点信息,并根据节点类型进行处理。

methods: {
  handleNodeClick(data) {
    if (data.children && data.children.length === 0) {
      // 最后一级单位,显示部门信息
      this.departments = data.children;
      this.selectedUnitId = data.id;
    } else {
      // 单位节点,清空部门信息
      this.departments = [];
      this.selectedUnitId = '';
    }
  }
}

4. 显示部门信息

使用 el-table 组件显示部门信息,并根据选中的单位id判断是否显示。

<el-table v-if="selectedUnitId" :data="departments" border>
  <el-table-column prop="id" label="部门ID"></el-table-column>
  <el-table-column prop="name" label="部门名称"></el-table-column>
</el-table>

5. 配置操作

根据问题描述,我们可以在单位和部门的节点上添加配置操作按钮。点击配置操作按钮时,弹出一个配置弹窗,进行相关配置操作。

<el-tree
  :data="treeData"
  :default-expand-all="true"
  @node-click="handleNodeClick"
  :scoped-slots="{
    default: scope => (
      <span>
        { scope.node.name }
        { scope.node.children.length === 0 && (
          <el-button type="text" size="mini" @click.stop="handleConfig(scope.node)">
            配置
          </el-button>
        )}
      </span>
    )
  }"
></el-tree>
methods: {
  handleConfig(node) {
    // 弹出配置弹窗,并进行相关配置操作
    console.log('配置操作', node);
  }
}

总结

通过以上的解决方案,我们可以实现树形结构的回显功能,并能够对单位和部门进行配置操作。具体步骤如下: 1. 准备数据,存储单位和部门信息,并给每个节点添加唯一标识符。 2. 使用 el-tree 组件显示树形结构,并设置默认展开所有节点。 3. 处理节点点击事件,在事件处理函数中获取当前点击的节点信息,并根据节点类型进行处理。 4. 使用 el-table 组件显示部门信息,并根据选中的单位id判断是否显示。 5. 根据需求,在节点上添加配置操作按钮,并在点击配置操作按钮时弹出配置弹窗进行相关操作。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^