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:
@@ -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
|
||||
**下次更新**: 测试完成后
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user