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

vue3+ant design vue动态实现级联菜单~

1、这里使用的是ant design vue 的TreeSelect 树选择来实现的。

<a-form-item name="staffDept" label="责任部门" labelAlign="left"><a-tree-selectv-model:value="formState.staffDept"show-search//允许在下拉框中添加搜索框style="width: 100%":dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"//设置下拉菜单的最大高度和溢出行为placeholder="请输入"allow-clear//显示清楚按钮tree-default-expand-all//默认展开所有树节点:tree-data="treeData"//将数据绑定在树形结构上/>
</a-form-item>import type { TreeSelectProps } from 'ant-design-vue';
import {getOrganizationChatrt} from '@/api/import';
const treeData = ref<TreeSelectProps['treeData']>([]);
const formState = ref({staffDept: '',
});
const handData = (array, level?) => {array.forEach((item, index) => {if (level === 0) {//获取一级菜单item.title = item.deptName;item.value = item.deptId;}if (item.nodeOfChildren != null) {//获取二级菜单item.children = [...item.nodeOfChildren];item.children.map((res) => {res.title = res.deptName;res.value = res.deptId;});handData(item.nodeOfChildren);//递归遍历,获取后续菜单如三级菜单}});treeData.value = array;
};
onMounted(() => {getOrganizationChatrt({}).then((res) => {console.log('测试数据', res);handData(res, 0);});
});
//假设这是后端返回的数据
[{"deptId": "00001","deptName": "营销中心","parentDeptId": "a00001","nodeOfChildren": [{"deptId": "000011","deptName": "网络管理部","parentDeptId": "00001","nodeOfChildren": [{"deptId": "0000111","deptName": "网络开发","parentDeptId": "000011","nodeOfChildren": null,"title": "网络开发","value": "001"},{"deptId": "0000112","deptName": "网络管理","parentDeptId": "000011","nodeOfChildren": null,"title": "网络管理","value": "002"}]},{"deptId": "000012","deptName": "市场营销部","parentDeptId": "00001","nodeOfChildren": null}]}
]

2、效果图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 动态规划算法:05.路径问题_不同路径_C++
  • 通信工程学习:什么是接入网(AN)中的CF核心功能
  • Linux 工程师:探索开源世界的专业之路
  • JVM锁的优化与逃逸分析
  • ESP8266+httpServer+GET+POST实现网页验证密码
  • element表格合并列数据相同合并单元格
  • Tuxera NTFS for Mac 2023绿色版
  • 应急响应靶场》》第一章 应急响应-Linux日志分析
  • Docker基础命令汇总,小白必备
  • 漫画元素检测系统源码分享
  • 二十三种设计模式之原型模式
  • ZooKeeper--分布式协调服务
  • linux驱动开发-磁盘管理
  • 时序必读论文09|ICLR24基于Transformer 自适应多尺度patch的时序预测模型
  • 路径规划——D*算法
  • [Vue CLI 3] 配置解析之 css.extract
  • chrome扩展demo1-小时钟
  • Java-详解HashMap
  • JDK 6和JDK 7中的substring()方法
  • jquery cookie
  • js继承的实现方法
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • react 代码优化(一) ——事件处理
  • Spring Boot快速入门(一):Hello Spring Boot
  • Sublime text 3 3103 注册码
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue-router 实现分析
  • 阿里云购买磁盘后挂载
  • 动态魔术使用DBMS_SQL
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 记录:CentOS7.2配置LNMP环境记录
  • 技术发展面试
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端面试总结(at, md)
  • 使用SAX解析XML
  • 思否第一天
  • 算法系列——算法入门之递归分而治之思想的实现
  • 2017年360最后一道编程题
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Python 3 新特性:类型注解
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​如何在iOS手机上查看应用日志
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #includecmath
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (7)svelte 教程: Props(属性)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)ssm高校实验室 毕业设计 800008
  • (三)终结任务
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)深入super,看Python如何解决钻石继承难题