
LayUI动态树 案例
发布日期:2025-04-04 09:10:38
浏览次数:10
分类:精选文章
本文共 2327 字,大约阅读时间需要 7 分钟。
数据库表分析与权限菜单管理系统开发
一、数据库表分析
该系统使用一个三级菜单表结构,t_oa_permission
表包含主要字段如下:
- id:标识符,作为主键
- name:菜单名称
- url:对应的链接地址
- description:菜单描述
- pid:父级菜单ID
- ismenu:控制是否为菜单(1表示菜单,0表示按钮)
- displayno:显示顺序
处理思路
通过表结构分析,可以看出顶级节点为“权限管理”,其下为“书籍管理”和“订单管理”,再分别包含多个三级节点。整理思路:先将除顶级节点以外的节点分离,并将这些二级和三级节点归类到顶级节点下。
二、系统开发与实现
1. 实体类定义
com.zking.entity.Permission { private long id; // 菜单编号 private String name; // 菜单名称 private String url; // accessing URL private String description; // 菜单描述 private long pid; // 父级菜单编号 private int ismenu; // 1表示菜单,0表示按钮 private long displayno; // 显示顺序}
2. 工具类开发
com.zking.util.BuildTree { public static TreeVo build(Listnodes) { if (nodes == null) { return null; } List topNodes = new ArrayList<>(); for (TreeVo node : nodes) { if (node.getParentId() == null || "-1".equals(node.getParentId())) { topNodes.add(node); continue; } for (TreeVo parent : nodes) { if (parent.getId().equals(node.getParentId())) { parent.getChildren().add(node); node.setHasParent(true); parent.setChildren(true); } } } if (topNodes.size() == 1) { return topNodes.get(0); } else { TreeVo root = new TreeVo(); root.setParentId("-1"); root.setHasParent(false); root.setChildren(topNodes); root.setChecked(true); root.setText("顶级节点"); return root; } }}
三、功能实现
1. 菜单管理
- 数据访问层:
MenuDao { List
list(Permission permission, PageBean pageBean); List menus(Permission permission, PageBean pageBean);} - 业务逻辑层:
{ List
list = this.list(permission, pageBean); List trees = new ArrayList<>(); for (Permission permission : list) { TreeVo vo = new TreeVo(); vo.setId(permission.getId()); vo.setText(permission.getName()); vo.setParentId(permission.getPid()); trees.add(vo); } return BuildTree.build(trees);}
2. web 层实现
PermissionAction { TreeVo menuTree = MenuDao.menu(permission, pageBean); ResponseUtil.writeJson(resp, menuTree);}
四、界面展示
前端页面使用LayUI框架构建,通过auer的方法加载菜单数据:
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月14日 13时31分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java基础学习总结(70)——开发Java项目常用的工具汇总
2023-01-28
Java基础学习总结(73)——Java最新面试题汇总
2023-01-28
Java基础学习总结(75)——Java反射机制及应用场景
2023-01-28
Java基础学习总结(76)——Java异常深入学习研究
2023-01-28
Java基础系列
2023-01-29
Kubernetes 自定义服务的启动顺序
2023-01-29
Java基础:Character 类概念、构造函数、实例方法、类方法
2023-01-29
Kubernetes 资源调度详解
2023-01-29
Java基础:StringBuffer类概念、构造函数、常用方法
2023-01-29
Kubernetes 部署 kubeflow1.7.0
2023-01-29
Java基础:变量(声明、赋值、引用)、基本数据类型、作用域
2023-01-29
Kubernetes 部署SonarQube
2023-01-29
Java基础:如何编写并执行入门级别程序 Hello World
2023-01-29
Java基础:循环语句for、while和do-while
2023-01-29
kubernetes 部署SonarQube 7.1 关联LDAP
2023-01-29
Java基础:按位运算符
2023-01-29
Kubernetes 配置管理实战
2023-01-29
Java基础:数字类概念、常用方法、常量
2023-01-29
Kubernetes 针对资源紧缺处理方式的配置
2023-01-29