feat(admin): Add user management and upgrade to module permission system

Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
This commit is contained in:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,273 +1,272 @@
# 待办事项 - DC模å<C2A1>—ä¸ä¸€æ­¥å·¥ä½?
# 待办事项 - DC模块下一步工作
**更新日期**: 2025-12-03
**当å‰<EFBFBD>状æ€?*: Phase 2完æˆ<C3A6>,等待æµè¯?
**当前状态**: Phase 2完成等待测试
---
## �已完�
## ✅ 已完成
### Phase 1: Portal工作å<EFBFBD>°ï¼ˆ2025-12-02ï¼?
- âœ?Portal页é<EFBFBD>¢è®¾è®¡ä¸Žå¼€å<EFBFBD>?
- âœ?ToolCard组件ï¼?个工具å<C2B7>¡ç‰‡ï¼‰
- �TaskList组件(最近任务列表)
- âœ?AssetLibrary组件(数æ<EFBFBD>®èµ„产库ï¼?
- âœ?UI优åŒï¼?00%对标原型图)
### Phase 1: Portal工作台(2025-12-02
- Portal页面设计与开发
- ToolCard组件3个工具卡片
- TaskList组件(最近任务列表)
- AssetLibrary组件(数据资产库)
- ✅ UI优化100%对标原型图)
### Phase 2: Tool B å‰<EFBFBD>端开å<EFBFBD>(2025-12-03ï¼?
- âœ?Step 1: æ‡ä»¶ä¸Šä¼ ä¸Žå<EFBFBD>¥åº·æ£€æŸ?
- âœ?Step 2: 智能模æ<EFBFBD>¿é…<EFBFBD>ç½®
- âœ?Step 3: å<EFBFBD>Œç²æ<EFBFBD><EFBFBD>å<EFBFBD>è¿åº¦
- âœ?Step 4: 冲çª<EFBFBD>验è¯<EFBFBD>工作å<EFBFBD>?
- �Step 5: 结果展示
- âœ?APIæœ<C3A6>务å±å°<C3A5>è£?
- âœ?è·¯ç”±é†æˆ<C3A6>
### Phase 2: Tool B 前端开发(2025-12-03
- Step 1: 文件上传与健康检查
- Step 2: 智能模板配置
- Step 3: 双盲提取进度
- Step 4: 冲突验证工作台
- Step 5: 结果展示
- ✅ API服务层封装
- ✅ 路由集成
---
## 🔄 进行�
## 🔄 进行中
### Phase 3: 测试与优化(进行中)
- 🔄 æµ<C3A6>览器功能æµè¯?
- 🔄 浏览器功能测试
- 🔄 完整流程验证
- â<EFBFBD>?Bugä¿®å¤<C3A5>
- â<EFBFBD>?性能优化
- ⏳ Bug修复
- ⏳ 性能优化
---
## 📋 待办任务
### 优先�:核心功能(本周�
### 优先级1核心功能本周
#### 1. æµ<EFBFBD>览器æµè¯?â<>?预计1h
- [ ] å<EFBFBD>¯åЍå‰<EFBFBD>å<EFBFBD>Žç«¯æœ<EFBFBD>åŠ?
#### 1. 浏览器测试 ⏰ 预计1h
- [ ] 启动前后端服务
- [ ] 访问Tool B页面
- [ ] 完整走�个步�
- [ ] 记录所有BugåŒä½“验问é¢?
- [ ] 完整走通5个步骤
- [ ] 记录所有Bug和体验问题
- [ ] 填写测试报告
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-03
#### 2. Bugä¿®å¤<EFBFBD> â<>?预计2h
#### 2. Bug修复 ⏰ 预计2h
- [ ] 修复测试中发现的所有Bug
- [ ] 优化交互体验
- [ ] ä¿®å¤<EFBFBD>控制å<EFBFBD>°é”™è¯¯ï¼ˆå¦æœ‰ï¼?
- [ ] 修复控制台错误(如有)
- [ ] 重新测试验证
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-03
#### 3. API对接 â<>?预计2h
#### 3. API对接 ⏰ 预计2h
- [ ] 替换Step 1的Mock健康检查API
- [ ] 替换Step 2的Mock模板API
- [ ] 集成真实的任务创建API
- [ ] 集成真实的进度查询API
- [ ] 集成真实的验证数据API
- [ ] 处ç<EFBFBD>†API错误状æ€?
- [ ] 添加Loading状�
- [ ] 处理API错误状态
- [ ] 添加Loading状态
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**前置条件**: 后端API可用
**截止日期**: 2025-12-04
#### 4. æ‡ä»¶ä¸Šä¼ Storage醿ˆ<EFBFBD> â<>?预计1.5h
#### 4. 文件上传Storage集成 ⏰ 预计1.5h
- [ ] 阅读项目Storage模块文档
- [ ] 集成Storage上传组件
- [ ] 实现文件上传到Storage
- [ ] 获取并保存fileKey
- [ ] 错误处理(文件大小、格式)
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-04
---
### 优先�:功能增强(本周�
### 优先级2功能增强本周
#### 5. Step 4优化 â<>?预计1.5h
#### 5. Step 4优化 ⏰ 预计1.5h
- [ ] 添加批量操作
- "全部采纳Model A"
- "全部采纳Model B"
- "智能采纳(优先长值)"
- [ ] 添加快æ<EFBFBD>·é”?
- `â†<EFBFBD>` 采纳左侧(DSï¼?
- `→` 采纳å<C2B3>³ä¾§ï¼ˆQWï¼?
- `â†?↓` 切æ<E280A1>¢è¡?
- `Esc` 关闭侧边�
- [ ] è¡¨æ ¼è™šæŸæ»šåŠ¨ï¼ˆå¤§æ•°æ<EFBFBD>®ä¼˜åŒï¼?
- [ ] æ<EFBFBD>œç´¢/筛选功èƒ?
- [ ] 添加快捷键
- `←` 采纳左侧DS
- `→` 采纳右侧QW
- `↑/↓` 切换行
- `Esc` 关闭侧边栏
- [ ] 表格虚拟滚动(大数据优化)
- [ ] 搜索/筛选功能
- 按状态筛选(冲突/已解决)
- 按字段筛�
- 按字段筛选
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-05
#### 6. Step 5完善 â<>?预计1h
#### 6. Step 5完善 ⏰ 预计1h
- [ ] 实现Excel导出功能
- [ ] 实现流转到Tool C
- [ ] 添加ä¸è½½è¿åº¦æ<EFBFBD>?
- [ ] 添加下载进度条
- [ ] 错误处理
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-05
#### 7. 错误处ç<EFBFBD>†ä¸Žå<EFBFBD><EFBFBD>é¦?â<>?预计1h
#### 7. 错误处理与反馈 ⏰ 预计1h
- [ ] 统一错误提示组件
- [ ] API错误处理
- [ ] 网络错误提示
- [ ] 表单验证提示
- [ ] Toast通知集成
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-05
---
### 优先�:体验优化(下周�
### 优先级3体验优化下周
#### 8. å“<EFBFBD>应å¼<EFBFBD>优åŒ?â<>?预计1h
#### 8. 响应式优化 ⏰ 预计1h
- [ ] 适配1024px屏幕
- [ ] 适配1366px屏幕
- [ ] 适配1920px屏幕
- [ ] 移动端é™<EFBFBD>级æ<EFBFBD><EFBFBD>ç¤?
- [ ] 移动端降级提示
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-06
#### 9. 性能优化 â<>?预计1h
- [ ] 组件懒加载优�
- [ ] 大列表渲染优�
- [ ] 图片/图标懒加�
#### 9. 性能优化 ⏰ 预计1h
- [ ] 组件懒加载优化
- [ ] 大列表渲染优化
- [ ] 图片/图标懒加载
- [ ] 代码分割优化
- [ ] 打包体积优化
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-06
#### 10. æ— éšœç¢<EFBFBD>优åŒ?â<>?预计0.5h
#### 10. 无障碍优化 ⏰ 预计0.5h
- [ ] 添加ARIA标签
- [ ] 键盘导航优化
- [ ] 焦点管理
- [ ] å±<EFBFBD>幕阅读器支æŒ?
- [ ] 屏幕阅读器支持
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-06
---
### 优先�:文档与测试(下周)
### 优先级4文档与测试下周
#### 11. å<EFBFBD>•å…ƒæµè¯• â<>?预计2h
#### 11. 单元测试 ⏰ 预计2h
- [ ] Step1Upload组件测试
- [ ] Step2Schema组件测试
- [ ] Step4Verify组件测试
- [ ] APIæœ<EFBFBD>åŠ¡å±æµè¯?
- [ ] API服务层测试
- [ ] Hook测试
**è´Ÿè´£äº?*: å¼€å<E282AC>å¢é˜?
**负责人**: 开发团队
**截止日期**: 2025-12-07
#### 12. E2E测试 â<>?预计2h
#### 12. E2E测试 ⏰ 预计2h
- [ ] 完整流程测试脚本
- [ ] 异常流程测试
- [ ] 性能测试
- [ ] 兼容性测�
- [ ] 兼容性测试
**负责�*: 测试团队
**负责人**: 测试团队
**截止日期**: 2025-12-07
#### 13. 用户文档 â<>?预计1h
#### 13. 用户文档 ⏰ 预计1h
- [ ] Tool B使用指南
- [ ] 常见问题FAQ
- [ ] 视频教程(可选)
- [ ] API文档更新
**è´Ÿè´£äº?*: 产å“<C3A5>/å¼€å<E282AC>å¢é˜?
**负责人**: 产品/开发团队
**截止日期**: 2025-12-08
---
## 🚀 未来规划
### Tool A - 超级å<EFBFBD>ˆå¹¶å™?
**状�*: 未开�
### Tool A - 超级合并器
**状态**: 未开始
**预计工时**: 20h
**计划开�*: 2025-12-09
**计划开始**: 2025-12-09
### Tool C - ç§ç ”æ•°æ<EFBFBD>®ç¼è¾å™?
**状�*: 未开�
### Tool C - 科研数据编辑器
**状态**: 未开始
**预计工时**: 30h
**计划开�*: 2025-12-16
**计划开始**: 2025-12-16
### DC模块集成测试
**状�*: 未开�
**状态**: 未开始
**预计工时**: 8h
**计划开�*: 2025-12-23
**计划开始**: 2025-12-23
---
## 📊 进度跟踪
### 本周任务�025-12-02 ~ 2025-12-08�
| 任务 | 优先�| 状�| 进度 | 备注 |
### 本周任务2025-12-02 ~ 2025-12-08
| 任务 | 优先级 | 状态 | 进度 | 备注 |
|------|--------|------|------|------|
| Phase 1完æˆ<EFBFBD> | P0 | âœ?完æˆ<C3A6> | 100% | 2025-12-02 |
| Phase 2完æˆ<EFBFBD> | P0 | âœ?完æˆ<C3A6> | 100% | 2025-12-03 |
| æµ<EFBFBD>览器æµè¯?| P1 | 🔄 进行ä¸?| 50% | 等待用户å<C2B7>¯åЍæœ<C3A6>务 |
| Bugä¿®å¤<EFBFBD> | P1 | â<EFBFBD>?å¾…å¼€å§?| 0% | æµè¯•å<E280A2>Žè¿è¡?|
| API对接 | P1 | â<EFBFBD>?å¾…å¼€å§?| 0% | - |
| Storage醿ˆ<EFBFBD> | P1 | â<EFBFBD>?å¾…å¼€å§?| 0% | - |
| Step 4优化 | P2 | â<EFBFBD>?å¾…å¼€å§?| 0% | - |
| Step 5完善 | P2 | â<EFBFBD>?å¾…å¼€å§?| 0% | - |
| Phase 1完成 | P0 | ✅ 完成 | 100% | 2025-12-02 |
| Phase 2完成 | P0 | ✅ 完成 | 100% | 2025-12-03 |
| 浏览器测试 | P1 | 🔄 进行中 | 50% | 等待用户启动服务 |
| Bug修复 | P1 | ⏳ 待开始 | 0% | 测试后进行 |
| API对接 | P1 | ⏳ 待开始 | 0% | - |
| Storage集成 | P1 | ⏳ 待开始 | 0% | - |
| Step 4优化 | P2 | ⏳ 待开始 | 0% | - |
| Step 5完善 | P2 | ⏳ 待开始 | 0% | - |
### 下周任务�025-12-09 ~ 2025-12-15�
| 任务 | 优先�| 预计工时 |
### 下周任务2025-12-09 ~ 2025-12-15
| 任务 | 优先级 | 预计工时 |
|------|--------|----------|
| å“<EFBFBD>应å¼<EFBFBD>优åŒ?| P3 | 1h |
| 响应式优化 | P3 | 1h |
| 性能优化 | P3 | 1h |
| 单元测试 | P4 | 2h |
| E2E测试 | P4 | 2h |
| 用户文档 | P4 | 1h |
| Tool Aå¼€å<EFBFBD>?| P0 | 20h |
| Tool A开发 | P0 | 20h |
---
## 🎯 里程�
## 🎯 里程碑
- âœ?**2025-12-02**: Phase 1完æˆ<EFBFBD> - Portal页é<EFBFBD>¢
- âœ?**2025-12-03**: Phase 2完æˆ<EFBFBD> - Tool Bå‰<EFBFBD>端
- 🔄 **2025-12-03**: Phase 3开�- 测试与优�
- â<EFBFBD>?**2025-12-05**: Tool B功能完整
- â<EFBFBD>?**2025-12-08**: Tool B上线就绪
- â<EFBFBD>?**2025-12-15**: Tool Aå¼€å<EFBFBD>完æˆ?
- â<EFBFBD>?**2025-12-25**: Tool Cå¼€å<EFBFBD>完æˆ?
- â<EFBFBD>?**2025-12-31**: DC模å<EFBFBD>—å…¨é‡<EFBFBD>上线
- **2025-12-02**: Phase 1完成 - Portal页面
- **2025-12-03**: Phase 2完成 - Tool B前端
- 🔄 **2025-12-03**: Phase 3开始 - 测试与优化
- **2025-12-05**: Tool B功能完整
- **2025-12-08**: Tool B上线就绪
- **2025-12-15**: Tool A开发完成
- **2025-12-25**: Tool C开发完成
- **2025-12-31**: DC模块全量上线
---
## 💡 备注
### 当前阻塞
1. â<EFBFBD>?**等待用户å<C2B7>¯åЍå‰<C3A5>å<EFBFBD>Žç«¯æœ<C3A6>åŠ?* - è¿è¡Œæµ<C3A6>览器æµè¯?
2. â<EFBFBD>?**等待å<E280A6>Žç«¯API就绪** - è¿è¡ŒAPI对接
1. **等待用户启动前后端服务** - 进行浏览器测试
2. **等待后端API就绪** - 进行API对接
### 风险提示
1. âš ï¸<EFBFBD> **API接å<C2A5>£å<C2A3>¯èƒ½ä¸<C3A4>稳å®?* - 需è¦<C3A8>充分的错误处ç<E2809E>
2. âš ï¸<EFBFBD> **大数æ<C2B0>®é‡<C3A9>性能** - Step 4表格å<C2BC>¯èƒ½éœ€è¦<C3A8>è™šæŸæ»šåŠ?
1. ⚠️ **API接口可能不稳定** - 需要充分的错误处理
2. ⚠️ **大数据量性能** - Step 4表格可能需要虚拟滚动
3. ⚠️ **文件上传大小限制** - 需要明确限制并提示
### 优化建议
1. 💡 è€ƒè™æ·»åŠ æ•°æ<C2B0>®ç¼“存(React Queryï¼?
2. 💡 è€ƒè™æ·»åŠ æ“<C3A6>作历å<E280A0>²ï¼ˆUndo/Redoï¼?
1. 💡 考虑添加数据缓存(React Query
2. 💡 考虑添加操作历史(Undo/Redo
3. 💡 考虑添加自动保存功能
4. 💡 考虑添加协作功能(多人同时裁决)
---
**更新�*: AI Assistant
**下次更新**: æµè¯•完æˆ<C3A6>å<EFBFBD>?
**更新人**: AI Assistant
**下次更新**: 测试完成后