Files
OneMD/posts/blog/工作/项目/通用权限管理项目.md
T
2026-06-19 14:45:07 +08:00

106 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 通用权限管理项目
date: 2025-02-21
categories: [工作, 项目]
tags: [项目]
---
## 前端
- 封装菜单、菜单项目,动态路由
- 封装http请求
- 封装弹窗
- 封装提示框
数据持久化插件
[开始 | Pinia Plugin Persistedstate](https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/)
动态路由
![image 44.png](通用权限管理项目/image44.png)
动态菜单
## 后端
角色
- 简单的增删改查
用户
- 简单的增删改查
- 和角色的一个联查
菜单
- 简单的增删改查
- 将菜单进行手动拼接成Tree
## 简单的增删改查
### 增
- 将数据库表映射成对象
- 编写通用增加接口: int add(T t)
- 动态sql
### 改
- 编写通用修改接口: int edit(T t)
- 动态Sql
### 删
- 通过id删除:int delete(int id)
### 查
- 普通查询
- 分页:pagehelper
对于菜单分配的设计问题
角色查看分配菜单
方案一(role_id
- 返回角色对应的菜单id(表示选中)
- 直接返回==所有菜单==(树结构)
- 优点:简单
- 缺点:用户可以看到所有权限,并可以进行修改
方案二(user_id,role_id
- 返回角色对应的菜单id(表示选中)
- 返回==用户对应的菜单====(树结构)==
- 优点:用户只可以看见自己的权限,并且修改也只可以在此基础上
- 缺点:需要设置是否是为管理员字段(保证至少一个显示完整菜单)
## 后端进阶
- 验证码图片生成
持久化数据
- 持久化token、持久化userId、userName
### SpringSecurity
基于一种维持会话的方式(session、jwt)进行防止直接访问后端请求