组织架构树形选择组件使用说明(Vue3 + UniApp)
发布时间:2026/6/10 15:56:25
分类:文化教育
浏览:1234
)
文章目录组织架构树形选择组件使用说明Vue3 UniApp1. 效果预览2. 核心功能3. 代码实现1. 模板部分Template2. 脚本部分Script4. 数据结构示例data.js5. 插件市场链接使用建议6.总结组织架构树形选择组件使用说明Vue3 UniApp本文介绍如何在 UniApp 项目中使用select-tree-zhikuany组件实现组织架构的树形展示与选择功能支持多选、反选并可通过事件回调返回选中数据。适用于微信小程序等多端场景。1. 效果预览以下为组件在实际项目中的展示效果图树形结构清晰展示部门层级支持节点展开/收起、勾选操作。2. 核心功能树形结构展示组织架构支持多选 / 单选模式可配置是否允许取消选择isCheck选中后可通过$emit回传数据至上级页面基于 Vue3script setup语法糖开发兼容 UniApp 框架3. 代码实现1. 模板部分Templatetemplate view !-- 动态渲染树形选择组件 -- select-tree :checkListcheckList v-iftree.length 0 :optionsprop sendValueconfirm :isCheckisCheck :treeNonetree / /view /template⚠️ 注意v-iftree.length 0确保数据加载完成后再渲染组件避免空数据导致异常。2. 脚本部分Scriptscript setup langts import SelectTree from /components/select-tree-zhikuany/tree.vue import { ref } from vue import { onLoad } from dcloudio/uni-app import { treeNode } from ./data.js // 组织架构树形数据源 // 响应式数据定义 const checkList ref([]) // 已选择的节点列表 const tree refany([]) // 组织架构树数据 const prop refany(null) // 组件配置项 const isCheck refboolean(false) // 是否支持取消选择 // 接收页面传参 const queryData defineProps{ prop?: string }() // 页面加载时初始化参数 onLoad((params) { console.log(页面加载参数:, params) if (params.prop) { prop.value JSON.parse(params.prop) isCheck.value prop.value.isCheck ?? false } // 设置组织架构树数据 tree.value treeNode console.log(组织架构数据:, tree.value) }) /** * 处理选中值的回调函数 * param val - 选中的节点数组 * param back - 是否触发返回上一页逻辑 */ const confirm (val: any, back: boolean) { console.log(选中数据:, val) if (back) { backConfirm(val) } else { uni.showToast({ title: JSON.stringify(val), icon: none, duration: 2000 }) } } /** * 返回上一页并传递选中数据 * param val - 选中的组织架构节点 */ const backConfirm (val: any) { uni.$emit(selectSuccess, { list: val }) uni.navigateBack() } /script4. 数据结构示例data.js确保treeNode数据格式符合组件要求示例如下exportconsttreeNode[{id:1,label:公司总部,children:[{id:2,label:技术部,children:[{id:5,label:前端组},{id:6,label:后端组}]},{id:3,label:人事部}]}]✅ 节点字段可根据prop配置进行映射如labelKey,valueKey,childrenKey。5. 插件市场链接本组件基于select-tree-zhikuanyVue3 版本开发已在 UniApp 插件市场发布支持微信小程序及其他端。 点击前往插件详情页下载与文档查看使用建议传参规范通过页面跳转时使用?prop${encodeURIComponent(JSON.stringify(config))}传递配置。事件通信利用uni.$emit(selectSuccess, data)实现跨页面数据传递。性能优化对于大型组织架构建议添加虚拟滚动或懒加载功能。类型安全可进一步定义treeNode和prop的 TypeScript 接口以提升可维护性。6.总结该方案通过封装良好的树形选择组件实现了组织架构的可视化选择具备良好的扩展性和用户体验。结合 UniApp 的跨平台能力可广泛应用于企业级小程序管理系统中。如有疑问或定制需求欢迎参考插件文档或联系作者。