生成 组织信息 页面,并生成单独的树组件

在本次对话中,我的需求是生成一个树形结构的侧边栏。
我们的实现结果是分阶段的,根据不同的阶段,生成不同的结果。
参考上下文
请务必全面的阅读这些上下文。这些上下文我会动态的更新,请你注意重新读取。
这些上下文包括:
- 本项目的源码。可能是具体的代码,或者是文件夹目录。
- 参考 url 链接。
菜单树结构(采用 Element Plus 的 Tree V2 组件并支持国际化)
扩展 Elemenet Plus 的树形组件包括虚拟树组件,支持连接线
https://pure-admin.github.io/vue-pure-admin/#/able/line-tree
apps\admin\src\views\able\line-tree.vue
apps\admin\src\components\ReTreeLine
用户管理
https://pure-admin.github.io/vue-pure-admin/#/system/user/index
apps\admin\src\views\system\user\index.vue
apps\admin\src\views\system\user\tree.vue
以 <ReTreeLine> 组件和核心制作树形结构的侧边栏
我所期望的侧边栏,应该具有以下的功能。
树组件核心功能
- 纯展示:作为一个单纯的数据展示功能。作为一个单纯的展示效果,不需要考虑成表单模式。
- 可点击:每一个树节点,都可以点击。
- 节点带有 icon:使用本框架 pure-admin 的方案,实现 icon 标签的配置。要求使用
<IconifyIconOnline>组件实现 iconify 在线图标的选取。
树组件的注意事项
这些注意事项请务必遵守,我会动态的增加这里的注意事项,请注意重新阅读。
阶段 1 制作页面
根据我给你的截图,开始制作页面。在你制作右侧的表格、分页栏、搜索栏时,应该主动的参考本项目其他页面的写法。
比如这个例子:
- apps\admin\src\pages\property-manage\community-manage\house-decoration\index.vue
阶段 2 封装树组件
将树组件单独抽离出来,作为一个通用的渲染组件。
- 专用类型:渲染树节点时,渲染的每一个树节点,需要设计一个单独的类型
- 对外暴露常用功能:
节点名称查询函数、获取当前选中的节点、遍历并设置树的全部节点,扁平化树等。 - 外部函数控制树的全部展开与收缩:需要对外暴露一个函数,用于直接控制树的全部展开与收缩。
- 封装单独的组合式 api 函数:你需要单独封装一个组合式 api 函数,将树组件常用的函数都对外暴露出去。
- 外部传入 iconify 字符串实现 icon 渲染:树的每一个节点都可以渲染 icon。icon 一律用 iconify 字符串来实现渲染。icon 图标在树组件内部的渲染逻辑使用 useRenderIcon 函数实现渲染。
封装树组件的实现细节
在你封装树组件时,请你遵守以下的实现细节。该部分的细节会持续增加。
ReTreeLineIcon 目录
你所生成的树组件,其目录在 apps\admin\src\components\ReTreeLineIcon 内。将树组件迁移时,请注意在此处迁移树组件。