当前位置: 首页 > news >正文

组织架构树形选择组件使用说明(Vue3 + UniApp)

文章目录

  • 组织架构树形选择组件使用说明(Vue3 + UniApp)
    • 1. 效果预览
    • 2. 核心功能
    • 3. 代码实现
      • 1. 模板部分(Template)
      • 2. 脚本部分(Script)
    • 4. 数据结构示例(`data.js`)
    • 5. 插件市场链接
    • 使用建议
    • 6.总结

组织架构树形选择组件使用说明(Vue3 + UniApp)

本文介绍如何在 UniApp 项目中使用select-tree-zhikuany组件实现组织架构的树形展示与选择功能,支持多选、反选,并可通过事件回调返回选中数据。适用于微信小程序等多端场景。

1. 效果预览

以下为组件在实际项目中的展示效果:

图:树形结构清晰展示部门层级,支持节点展开/收起、勾选操作。

2. 核心功能

  • 树形结构展示组织架构
  • 支持多选 / 单选模式
  • 可配置是否允许取消选择(isCheck
  • 选中后可通过$emit回传数据至上级页面
  • 基于 Vue3<script setup>语法糖开发,兼容 UniApp 框架

3. 代码实现

1. 模板部分(Template)

<template> <view> <!-- 动态渲染树形选择组件 --> <select-tree :checkList="checkList" v-if="tree.length > 0" :options="prop" @sendValue="confirm" :isCheck="isCheck" :treeNone="tree" /> </view> </template>

⚠️ 注意:v-if="tree.length > 0"确保数据加载完成后再渲染组件,避免空数据导致异常。


2. 脚本部分(Script)

<script setup lang="ts"> 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 = ref<any>([]) // 组织架构树数据 const prop = ref<any>(null) // 组件配置项 const isCheck = ref<boolean>(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() } </script>

4. 数据结构示例(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-zhikuany(Vue3 版本)开发,已在 UniApp 插件市场发布,支持微信小程序及其他端。

👉 点击前往插件详情页下载与文档查看

使用建议

  1. 传参规范:通过页面跳转时使用?prop=${encodeURIComponent(JSON.stringify(config))}传递配置。
  2. 事件通信:利用uni.$emit('selectSuccess', data)实现跨页面数据传递。
  3. 性能优化:对于大型组织架构,建议添加虚拟滚动或懒加载功能。
  4. 类型安全:可进一步定义treeNodeprop的 TypeScript 接口以提升可维护性。

6.总结

该方案通过封装良好的树形选择组件,实现了组织架构的可视化选择,具备良好的扩展性和用户体验。结合 UniApp 的跨平台能力,可广泛应用于企业级小程序管理系统中。

如有疑问或定制需求,欢迎参考插件文档或联系作者

http://www.jsqmd.com/news/986681/

相关文章:

  • `org.xml.sax` 是 Java 标准库中用于**简单 API for XML(SAX)** 的核心包,它提供了一组基于事件驱动的、轻量级的 XML 解析接口
  • 5步构建专业级环视系统:从摄像头标定到实时全景拼接完整指南
  • 仿生技术与自适应抓取:2026年3C电子柔性供应商解析 - 品牌2026
  • 保姆级教程:用示波器+电流钳实测汽车轮速传感器AK协议信号(含数据解析步骤)
  • 2026广州名表回收避坑实录:5家店亲测,收的顶不压价稳居C位 - 奢侈品回收评测
  • 5个技巧:深度解析Trestle插件系统如何扩展你的Rails管理框架
  • SAP各模块BAPI合集
  • 2026成都留学中介排名,八家优选测评前三强品牌 - 资讯速览
  • Spring Batch 4.2.0.M2(里程碑版本2)是 Spring Batch 4.2 系列的早期预发布版本
  • Reconmap:革命性开源渗透测试管理平台 - 10个核心功能彻底改变安全评估工作流
  • 2026年6月最新| 票务管理系统公司推荐,文旅展会剧场一站式售票系统厂商盘点 - 信息热点
  • 河北球场围栏网厂家排行:实测资质与交付能力对比 - 奔跑123
  • 如何快速实现Unity游戏适配微信小游戏:完整WebGL转换指南
  • GWSL终极指南:在Windows上轻松运行Linux图形应用
  • 微信如何设置匿名投票?海投票2026隐私评选完整操作教程 - 微信投票小程序
  • 如何为json2csv编写单元测试:Go测试框架实践教程
  • 2026投票小程序排行深度横评:广告/防刷/模板/客服,云众评选一项没输 - 微信投票小程序
  • 为什么选择clianpro超链PRO?5大优势让你告别网盘下载限速
  • 终极解决方案:如何让2008-2017年旧Mac免费升级到最新macOS系统?
  • 2026靠谱的耐磨管道厂家推荐:渤洋管道领衔,双金属耐磨弯头/耐磨陶瓷弯头/稀土合金耐磨管/碳化硅耐磨弯头厂家盘点 - 栗子测评
  • 龙芯2K0300开发板终极使用指南:从开箱到系统烧录完整教程
  • 如何从微信聊天中挖掘个人数据金矿:WeChatMsg数据提取与分析全攻略
  • MobileOne重参数化技术详解:如何将多分支网络转换为单分支推理
  • umi框架代码分割架构解密:如何实现React应用秒级加载的性能突破
  • Windows平台终极解决方案:苹果苹方字体完美移植指南
  • 3大性能瓶颈深度解析:如何优化DeepFace人脸识别系统的实时推理速度
  • 3步搞定AI抠图:告别繁琐手动操作,Python自动背景移除工具
  • 如何快速实现BRFlabbyTable:5分钟完成iOS表格弹性动画效果
  • 【稳定EI/Scopus检索、ACM出版、韩国召开】2026年人工智能与设计国际学术会议(AID 2026) - 爱写稿的小帅哥
  • 济南靠谱的发电机租赁厂家实力榜单|租期灵活可选 收费透明无隐形消费 - 信息热点