点击时调用 接口 获取部门。一般来说要传点击的唯一标识 。
就是点击树查询数据,要注意的点是添加了下级部门,要刷新当前树,刷新要默认展开之前节点。
默认展开之前节点可以参考我这篇文章。
https://blog.csdn.net/z291493823/article/details/103072889
【以下回答由 GPT 生成】
根据问题描述,我们需要实现一个树形结构的回显功能,并且能够配置单位和部门信息。具体要求如下: - 当点击最后一级单位时,显示该单位下的所有部门。 - 可以对单位和部门进行配置操作。 - 当再次点击之前配置过的单位时,要能够回显其部门信息。
首先,我们需要准备相关的数据。根据问题描述,我们可以把单位和部门的信息存储在一个数组中,并给每个单位和部门添加一个唯一的标识符。
// 准备数据
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: [] // 当前选中单位的部门信息
}
}
使用 el-tree
组件显示树形结构,并通过 default-expand-all
属性设置默认展开所有节点。
<el-tree
:data="treeData"
:default-expand-all="true"
@node-click="handleNodeClick"
></el-tree>
在节点点击事件处理函数 handleNodeClick
中,获取当前点击的节点信息,并根据节点类型进行处理。
methods: {
handleNodeClick(data) {
if (data.children && data.children.length === 0) {
// 最后一级单位,显示部门信息
this.departments = data.children;
this.selectedUnitId = data.id;
} else {
// 单位节点,清空部门信息
this.departments = [];
this.selectedUnitId = '';
}
}
}
使用 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>
根据问题描述,我们可以在单位和部门的节点上添加配置操作按钮。点击配置操作按钮时,弹出一个配置弹窗,进行相关配置操作。
<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. 根据需求,在节点上添加配置操作按钮,并在点击配置操作按钮时弹出配置弹窗进行相关操作。
【相关推荐】