164 lines
5.0 KiB
Markdown
164 lines
5.0 KiB
Markdown
|
|
# 组织架构权限等级自动管理功能
|
|||
|
|
|
|||
|
|
## 功能概述
|
|||
|
|
|
|||
|
|
本次更新实现了基于组织架构层级的权限等级自动管理功能,彻底解决了手动填写权限等级的问题,使权限等级管理更加智能化和自动化。
|
|||
|
|
|
|||
|
|
## 核心改进
|
|||
|
|
|
|||
|
|
### 1. 前端优化 (static/super_admin.html)
|
|||
|
|
|
|||
|
|
#### 新增模态框显示权限信息
|
|||
|
|
- **新增部门时**:显示蓝色信息框,清晰展示:
|
|||
|
|
- 父级层级
|
|||
|
|
- 子级层级
|
|||
|
|
- 自动分配的权限等级
|
|||
|
|
- **编辑部门时**:显示黄色信息框,展示:
|
|||
|
|
- 当前层级
|
|||
|
|
- 当前权限等级
|
|||
|
|
- 权限等级自动计算说明
|
|||
|
|
|
|||
|
|
#### 移除手动选择权限等级
|
|||
|
|
- ❌ 删除了权限等级下拉选择框
|
|||
|
|
- ✅ 改为自动显示权限等级信息
|
|||
|
|
- ✅ 用户无需手动填写数字
|
|||
|
|
|
|||
|
|
#### 新增辅助函数
|
|||
|
|
- `calculateGradeByLevel(level)` - 根据层级计算权限等级
|
|||
|
|
- `getGradeInfo(grade)` - 获取权限等级详细信息
|
|||
|
|
- `syncGradesWithLevels()` - 同步权限等级与层级关系
|
|||
|
|
|
|||
|
|
### 2. 后端优化 (lawrisk/services/licensing_repo.py)
|
|||
|
|
|
|||
|
|
#### 新增自动计算函数
|
|||
|
|
- `_calculate_grade_by_parent(parent_id)` - 根据父节点计算权限等级
|
|||
|
|
- 根级部门(无父节点):90(超级权限)
|
|||
|
|
- 二级部门:80(高级权限)
|
|||
|
|
- 三级部门:70(中级权限)
|
|||
|
|
- 四级及以下:60(一般权限)
|
|||
|
|
|
|||
|
|
- `_get_department_level(department_id)` - 获取部门在组织架构中的层级
|
|||
|
|
- 通过递归查询parent_id追溯到根节点
|
|||
|
|
- 返回该部门的深度层级(根节点为0)
|
|||
|
|
|
|||
|
|
#### 修改创建部门逻辑
|
|||
|
|
```python
|
|||
|
|
# 自动根据父节点计算权限等级,不再使用传入的grade参数
|
|||
|
|
grade_value = _calculate_grade_by_parent(parent_token)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改更新部门逻辑
|
|||
|
|
```python
|
|||
|
|
# 如果修改了parent_id,则自动计算grade
|
|||
|
|
if parent_id is not None:
|
|||
|
|
new_grade = _calculate_grade_by_parent(parent_id)
|
|||
|
|
updates.append("grade = %s")
|
|||
|
|
values.append(new_grade)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 权限等级映射表
|
|||
|
|
|
|||
|
|
| 组织层级 | 权限等级 | 权限名称 | 颜色标识 |
|
|||
|
|
|---------|---------|---------|---------|
|
|||
|
|
| 0级(根级) | 90 | 超级权限 | 🔴 红色 |
|
|||
|
|
| 1级(二级) | 80 | 高级权限 | 🟠 橙色 |
|
|||
|
|
| 2级(三级) | 70 | 中级权限 | 🟡 黄色 |
|
|||
|
|
| 3级+(四级及以下) | 60 | 一般权限 | 🟢 绿色 |
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
### 1. 自动计算
|
|||
|
|
- ✅ 新增部门时自动根据父级部门计算权限等级
|
|||
|
|
- ✅ 拖拽修改从属关系时自动重新计算权限等级
|
|||
|
|
- ✅ 编辑部门信息时自动显示当前权限等级
|
|||
|
|
|
|||
|
|
### 2. 智能提示
|
|||
|
|
- ✅ 新增部门时显示权限等级自动设置信息
|
|||
|
|
- ✅ 编辑部门时显示当前权限等级和层级
|
|||
|
|
- ✅ 控制台输出调试信息,便于问题定位
|
|||
|
|
|
|||
|
|
### 3. 无缝兼容
|
|||
|
|
- ✅ 保留grade字段向后兼容
|
|||
|
|
- ✅ 不影响现有数据
|
|||
|
|
- ✅ 自动同步现有不匹配的权限等级
|
|||
|
|
|
|||
|
|
## 使用场景
|
|||
|
|
|
|||
|
|
### 场景1:新增子部门
|
|||
|
|
1. 点击某个部门的"➕ 新增"按钮
|
|||
|
|
2. 弹出模态框显示蓝色信息框:
|
|||
|
|
- 父级层级:X 级
|
|||
|
|
- 子级层级:X+1 级
|
|||
|
|
- 自动分配:XX - XXXX权限
|
|||
|
|
3. 填写部门名称、账号等信息
|
|||
|
|
4. 点击确定,系统自动分配正确的权限等级
|
|||
|
|
|
|||
|
|
### 场景2:拖拽修改从属关系
|
|||
|
|
1. 拖拽部门到其他部门下作为子级
|
|||
|
|
2. 释放鼠标确认操作
|
|||
|
|
3. 系统自动:
|
|||
|
|
- 更新从属关系
|
|||
|
|
- 重新计算权限等级
|
|||
|
|
- 刷新组织架构显示
|
|||
|
|
|
|||
|
|
### 场景3:编辑部门信息
|
|||
|
|
1. 点击部门的"✏️ 编辑"按钮
|
|||
|
|
2. 弹出模态框显示黄色信息框:
|
|||
|
|
- 当前层级:X 级
|
|||
|
|
- 当前权限:XX - XXXX权限
|
|||
|
|
3. 修改部门名称、电话等信息(不影响权限等级)
|
|||
|
|
4. 权限等级基于层级自动保持正确
|
|||
|
|
|
|||
|
|
## 技术实现细节
|
|||
|
|
|
|||
|
|
### 数据库层
|
|||
|
|
- 在`update_service_department`中添加自动计算grade逻辑
|
|||
|
|
- 新增`_calculate_grade_by_parent`函数
|
|||
|
|
- 新增`_get_department_level`函数
|
|||
|
|
|
|||
|
|
### API层
|
|||
|
|
- 创建和更新部门时自动计算grade
|
|||
|
|
- grade参数保留但不再使用
|
|||
|
|
|
|||
|
|
### 前端层
|
|||
|
|
- 修改`showAddChildModal`函数,显示权限信息
|
|||
|
|
- 修改`showEditModal`函数,显示当前权限
|
|||
|
|
- 添加权限等级计算辅助函数
|
|||
|
|
- 移除手动选择权限等级的UI
|
|||
|
|
|
|||
|
|
## 优势
|
|||
|
|
|
|||
|
|
1. **智能化**:无需手动计算和填写权限等级
|
|||
|
|
2. **一致性**:确保权限等级与组织架构层级始终一致
|
|||
|
|
3. **易用性**:清晰的信息提示,用户一目了然
|
|||
|
|
4. **可维护性**:逻辑集中管理,便于维护和修改
|
|||
|
|
5. **向后兼容**:不破坏现有功能和数据
|
|||
|
|
|
|||
|
|
## 部署状态
|
|||
|
|
|
|||
|
|
✅ Flask服务已启动 (http://127.0.0.1:8000)
|
|||
|
|
✅ 所有修改已部署
|
|||
|
|
✅ 功能已生效
|
|||
|
|
|
|||
|
|
## 测试建议
|
|||
|
|
|
|||
|
|
1. **新增部门测试**
|
|||
|
|
- 在不同层级新增部门
|
|||
|
|
- 验证权限等级是否正确自动分配
|
|||
|
|
|
|||
|
|
2. **拖拽测试**
|
|||
|
|
- 拖拽部门改变从属关系
|
|||
|
|
- 验证权限等级是否自动更新
|
|||
|
|
|
|||
|
|
3. **编辑测试**
|
|||
|
|
- 编辑部门基本信息
|
|||
|
|
- 验证权限等级显示是否正确
|
|||
|
|
|
|||
|
|
4. **信息显示测试**
|
|||
|
|
- 检查新增和编辑模态框中的权限信息提示
|
|||
|
|
- 验证颜色标识和文字说明
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**功能完成!** 🎉 权限等级现在完全基于组织架构层级自动管理,用户无需再手动填写数字。
|