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,60 +1,60 @@
|
||||
# 全文复筛前端开发完成总结
|
||||
|
||||
**日期**: 2025-01-23
|
||||
**蠑蜿鷹亳谿?*: Week 2 (Day 6-8)
|
||||
**蠑蜿題?*: AI Assistant
|
||||
**迥カ諤?*: 笨?蟾イ螳梧<E89EB3>?
|
||||
**开发阶段**: Week 2 (Day 6-8)
|
||||
**开发者**: AI Assistant
|
||||
**状态**: ✅ 已完成
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>搭 蠑蜿第ヲりァ?
|
||||
## 📋 开发概览
|
||||
|
||||
### 完成内容
|
||||
|
||||
譛ャ谺。蠑蜿大ョ梧<EFBFBD>莠<EFBFBD><EFBFBD>譁<EFBFBD>、咲ュ帛粥閭ス逧<EFBFBD>燕遶ッMVP螳樒鴫<EFBFBD>悟桁諡?荳ェ譬ク蠢<EFBDB8>。オ髱「縲?荳ェ迢ャ遶狗サ<E78B97>サカ縲、PI螳「謌キ遶ッ蜥御ク鍋畑Hooks縲?
|
||||
本次开发完成了全文复筛功能的前端MVP实现,包括4个核心页面、1个独立组件、API客户端和专用Hooks。
|
||||
|
||||
### 譬ク蠢<EFBFBD>音諤?
|
||||
### 核心特性
|
||||
|
||||
1. **螳梧紛逧<EFBFBD>畑謌キ豬∫ィ?*<2A>夊ョセ鄂?竊?霑帛コヲ 竊?螳。譬ク 竊?扈捺棡
|
||||
2. **蜿梧ィ。蝙句ッケ豈?*<2A>咼eepSeek-V3 + Qwen-Max 12蟄玲ョオ隸<EFBFBD>シー
|
||||
3. **迢ャ遶狗サ<EFBFBD>サカ隶セ隶。**<EFBFBD>壻ク取<EFBFBD><EFBFBD>「俶遭隕∝<EFBFBD>遲帛ョ悟<EFBFBD>隗」閠?
|
||||
4. **莠大次逕滓楔譫?*<2A>壼燕遶ッ逕滓<E98095>Excel縲<6C>峺譁<E5B3BA>サカ關ス逶<EFBDBD>
|
||||
1. **完整的用户流程**:设置 → 进度 → 审核 → 结果
|
||||
2. **双模型对比**:DeepSeek-V3 + Qwen-Max 12字段评估
|
||||
3. **独立组件设计**:与标题摘要初筛完全解耦
|
||||
4. **云原生架构**:前端生成Excel、零文件落盘
|
||||
|
||||
---
|
||||
|
||||
## 📂 文件清单
|
||||
|
||||
### 譁ー蠅樣。オ髱「 (4荳?
|
||||
### 新增页面 (4个)
|
||||
|
||||
```
|
||||
frontend-v2/src/modules/asl/pages/
|
||||
笏懌楳笏 FulltextSettings.tsx (621陦? - 隶セ鄂ョ荳主星蜉?
|
||||
笏懌楳笏 FulltextProgress.tsx (411陦? - 莉サ蜉。霑帛コヲ
|
||||
笏懌楳笏 FulltextWorkbench.tsx (504陦? - 螳。譬ク蟾・菴懷<EFBFBD>?
|
||||
笏披楳笏 FulltextResults.tsx (339陦? - 扈捺棡扈溯ョ。
|
||||
├── FulltextSettings.tsx (621行) - 设置与启动
|
||||
├── FulltextProgress.tsx (411行) - 任务进度
|
||||
├── FulltextWorkbench.tsx (504行) - 审核工作台
|
||||
└── FulltextResults.tsx (339行) - 结果统计
|
||||
```
|
||||
|
||||
### 譁ー蠅樒サ<EFBFBD>サカ (1荳?
|
||||
### 新增组件 (1个)
|
||||
|
||||
```
|
||||
frontend-v2/src/modules/asl/components/
|
||||
笏披楳笏 FulltextDetailDrawer.tsx (441陦? - 隸ヲ諠<EFBFBD>ク主、肴<EFBFBD>ク謚ス螻?
|
||||
└── FulltextDetailDrawer.tsx (441行) - 详情与复核抽屉
|
||||
```
|
||||
|
||||
### 譁ー蠅曰ooks (2荳?
|
||||
### 新增Hooks (2个)
|
||||
|
||||
```
|
||||
frontend-v2/src/modules/asl/hooks/
|
||||
笏懌楳笏 useFulltextTask.ts (58陦? - 莉サ蜉。霑帛コヲHook
|
||||
笏披楳笏 useFulltextResults.ts (81陦? - 扈捺棡蛻苓。ィHook
|
||||
├── useFulltextTask.ts (58行) - 任务进度Hook
|
||||
└── useFulltextResults.ts (81行) - 结果列表Hook
|
||||
```
|
||||
|
||||
### 菫ョ謾ケ譁<EFBFBD>サカ (3荳?
|
||||
### 修改文件 (3个)
|
||||
|
||||
```
|
||||
frontend-v2/src/modules/asl/
|
||||
├── index.tsx - 添加全文复筛路由
|
||||
笏懌楳笏 components/ASLLayout.tsx - 豺サ蜉<EFBFBD>萓ァ霎ケ譬剰除蜊?
|
||||
├── components/ASLLayout.tsx - 添加侧边栏菜单
|
||||
└── api/index.ts - 添加全文复筛API
|
||||
```
|
||||
|
||||
@@ -64,84 +64,84 @@ frontend-v2/src/modules/asl/
|
||||
|
||||
### 1. FulltextSettings 页面
|
||||
|
||||
**蜉溯<EFBFBD>**<EFBFBD>?
|
||||
- 笨?PICOS譬<EFBFBD>㊥螻慕、コ<EFBFBD>亥宵隸サ縲∝庄謚伜匠<EFBFBD>?
|
||||
- 笨?荳臥ァ肴枚迪ョ蟇シ蜈・譁ケ蠑擾シ亥<EFBDBC>遲?謇句勘/遏・隸<EFBDA5>コ難シ<E99BA3>
|
||||
- 笨?譁<>鍵蛻苓。ィ邂。逅<EFBDA1>
|
||||
- 笨?PDF荳贋シ<EFBFBD>荳守憾諤∫ョ。逅?
|
||||
- 笨?謇ケ驥乗桃菴懶シ亥唖髯、<E9ABAF><EFBDA4>
|
||||
- 笨?蜷ッ蜉ィ遲幃我ササ蜉?
|
||||
**功能**:
|
||||
- ✅ PICOS标准展示(只读、可折叠)
|
||||
- ✅ 三种文献导入方式(初筛/手动/知识库)
|
||||
- ✅ 文献列表管理
|
||||
- ✅ PDF上传与状态管理
|
||||
- ✅ 批量操作(删除)
|
||||
- ✅ 启动筛选任务
|
||||
|
||||
**謚譛ッ莠ョ轤?*<2A>?
|
||||
**技术亮点**:
|
||||
- Tab切换导入方式
|
||||
- 螳樊慮扈溯ョ。<EFBFBD>域サ謨ー/蟆ア扈ェ/荳贋シ<E8B48B>荳?螟ア雍・<E99B8D>?
|
||||
- 譚。莉カ蜷ッ蜉ィ<EFBFBD>郁<EFBFBD>蟆?遽⑰DF蟆ア扈ェ<E68988>?
|
||||
- 实时统计(总数/就绪/上传中/失败)
|
||||
- 条件启动(至少1篇PDF就绪)
|
||||
|
||||
### 2. FulltextProgress 页面
|
||||
|
||||
**蜉溯<EFBFBD>**<EFBFBD>?
|
||||
- 笨?螳樊慮霑帛コヲ霓ョ隸「<E99AB8>域ッ<E59F9F>2遘抵シ<E68AB5>
|
||||
- 笨?霑帛コヲ譚。荳守卆蛻<E58D86>ッ?
|
||||
- 笨?扈溯ョ。蜊。迚<EFBDA1>シ域<EFBDBC>蜉?蠕<>、<EFBFBD><EFBDA4>?蜀イ遯<EFBDB2>/螟ア雍・<E99B8D>?
|
||||
- 笨?謌先悽扈溯ョ。<EFBDAE><EFBDA1>oken/雍ケ逕ィ<E98095>?
|
||||
- 笨?譌カ髣エ扈溯ョ。<EFBDAE>亥キイ逕ィ譌カ/鬚<>ョ。蜑ゥ菴呻シ?
|
||||
- 笨?莉サ蜉。螳梧<E89EB3>閾ェ蜉ィ霍ウ霓ャ
|
||||
**功能**:
|
||||
- ✅ 实时进度轮询(每2秒)
|
||||
- ✅ 进度条与百分比
|
||||
- ✅ 统计卡片(成功/待处理/冲突/失败)
|
||||
- ✅ 成本统计(Token/费用)
|
||||
- ✅ 时间统计(已用时/预计剩余)
|
||||
- ✅ 任务完成自动跳转
|
||||
|
||||
**謚譛ッ莠ョ轤?*<2A>?
|
||||
**技术亮点**:
|
||||
- React Query自动轮询
|
||||
- 譎コ閭ス蛛懈ュ「霓ョ隸「<EFBFBD>井ササ蜉。螳梧<EFBFBD>?螟ア雍・譌カ<E8AD8C><EFBDB6>
|
||||
- 智能停止轮询(任务完成/失败时)
|
||||
- 预估剩余时间计算
|
||||
|
||||
### 3. FulltextWorkbench 页面(核心)
|
||||
|
||||
**蜉溯<EFBFBD>**<EFBFBD>?
|
||||
- 笨?PICOS譬<EFBFBD>㊥謚伜匠蜊。迚<EFBFBD>
|
||||
- 笨?Tab遲幃会シ亥<EFBFBD>驛ィ/蜀イ遯<EFBDB2>/蟾イ郤ウ蜈?蟾イ謗帝<E8AC97>?蟾イ螟肴<E89E9F>ク<EFBFBD><EFBDB8>
|
||||
- 笨?蜿瑚。瑚。ィ譬シ<E8ADAC>域ッ冗ッ<E58697>枚迪?陦鯉シ<E9AF89>
|
||||
- 笨?蜀イ遯∵枚迪ョ鬮倅コョ<EFBDBA>育コ「濶イ閭梧勹<E6A2A7><E58BB9>
|
||||
- 笨?螻募シ譟・逵<EFBDA5>12蟄玲ョオ隸ヲ諠<EFBDA6>
|
||||
- 笨?轤ケ蜃サ"螟肴<E89E9F>ク"謇灘シDrawer
|
||||
**功能**:
|
||||
- ✅ PICOS标准折叠卡片
|
||||
- ✅ Tab筛选(全部/冲突/已纳入/已排除/已复核)
|
||||
- ✅ 双行表格(每篇文献2行)
|
||||
- ✅ 冲突文献高亮(红色背景)
|
||||
- ✅ 展开查看12字段详情
|
||||
- ✅ 点击"复核"打开Drawer
|
||||
|
||||
**謚譛ッ莠ョ轤?*<2A>?
|
||||
**技术亮点**:
|
||||
- 双行表格数据转换函数
|
||||
- `rowSpan`螳樒鴫蜷亥ケカ蜊募<EFBFBD>譬?
|
||||
- 螻募シ陦悟ア慕、?2蟄玲ョオ蟇ケ豈<EFBDB9>
|
||||
- `rowSpan`实现合并单元格
|
||||
- 展开行展示12字段对比
|
||||
- 冲突状态可视化
|
||||
|
||||
### 4. FulltextResults 页面
|
||||
|
||||
**蜉溯<EFBFBD>**<EFBFBD>?
|
||||
- 笨?扈溯ョ。讎りァ亥今迚<E4BB8A>シ?荳ェ<E88DB3><EFBDAA>
|
||||
- 笨?PRISMA謗帝勁蜴溷屏扈溯ョ。
|
||||
- 笨?Tab蛻<EFBFBD>困扈捺棡蛻苓。ィ
|
||||
- 笨?謇ケ驥城画叫荳主ッシ蜃?
|
||||
- 笨?Excel蟇シ蜃コ<EFBFBD>亥燕遶ッ逕滓<EFBFBD><EFBFBD><EFBFBD>
|
||||
**功能**:
|
||||
- ✅ 统计概览卡片(4个)
|
||||
- ✅ PRISMA排除原因统计
|
||||
- ✅ Tab切换结果列表
|
||||
- ✅ 批量选择与导出
|
||||
- ✅ Excel导出(前端生成)
|
||||
|
||||
**謚譛ッ莠ョ轤?*<2A>?
|
||||
- 謗帝勁蜴溷屏譟ア迥カ蝗セ<EFBFBD><EFBFBD>rogress扈<EFBFBD>サカ<EFBFBD>?
|
||||
**技术亮点**:
|
||||
- 排除原因柱状图(Progress组件)
|
||||
- 多选行支持
|
||||
- 蜑咲ォッExcel逕滓<EFBFBD><EFBFBD>井コ大次逕滂シ?
|
||||
- 前端Excel生成(云原生)
|
||||
|
||||
### 5. FulltextDetailDrawer 组件(独立)
|
||||
|
||||
**蜉溯<EFBFBD>**<EFBFBD>?
|
||||
- 笨?Tab1: 蜿梧ィ。蝙句ッケ豈碑。ィ譬シ<EFBFBD><EFBFBD>12蟄玲ョオ<EFBFBD>?
|
||||
- 笨?Tab2: PDF鬚<EFBFBD>ァ茨シ<EFBFBD>VP蜊<EFBFBD>菴咲ャヲ<EFBFBD><EFBFBD>
|
||||
- 笨?Tab3: 12蟄玲ョオ隸ヲ扈<EFBFBD>ッ∵紺<EFBFBD>域釜蜿<EFBFBD>髱「譚ソ<EFBFBD><EFBFBD>
|
||||
- 笨?蠎暮Κ莠コ蟾・蜀ウ遲冶。ィ蜊<EFBDA8>
|
||||
- 笨?蜀イ遯∵署遉コ
|
||||
**功能**:
|
||||
- ✅ Tab1: 双模型对比表格(12字段)
|
||||
- ✅ Tab2: PDF预览(MVP占位符)
|
||||
- ✅ Tab3: 12字段详细证据(折叠面板)
|
||||
- ✅ 底部人工决策表单
|
||||
- ✅ 冲突提示
|
||||
|
||||
**謚譛ッ莠ョ轤?*<2A>?
|
||||
**技术亮点**:
|
||||
- 完全独立于`DetailReviewDrawer`
|
||||
- 12字段名称映射
|
||||
- 折叠面板展示详细证据
|
||||
- 謗帝勁譌カ蠑コ蛻カ蝪ォ蜀吝次蝗?
|
||||
- 排除时强制填写原因
|
||||
|
||||
---
|
||||
|
||||
## 🔌 API集成
|
||||
|
||||
### 譁ー蠅暸PI蜃ス謨ー (5荳?
|
||||
### 新增API函数 (5个)
|
||||
|
||||
```typescript
|
||||
aslApi.createFulltextTask() // 创建任务
|
||||
@@ -163,24 +163,24 @@ GET /api/v1/asl/fulltext-screening/tasks/:taskId/export
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>屮<EFBFBD>?霍ッ逕ア驟咲スョ
|
||||
## 🛣️ 路由配置
|
||||
|
||||
### 新增路由
|
||||
|
||||
```typescript
|
||||
/literature/screening/fulltext/
|
||||
笏懌楳笏 settings // 隶セ鄂ョ荳主星蜉?
|
||||
├── settings // 设置与启动
|
||||
├── progress/:taskId // 任务进度
|
||||
笏懌楳笏 workbench/:taskId // 螳。譬ク蟾・菴懷<EFBFBD>?
|
||||
├── workbench/:taskId // 审核工作台
|
||||
└── results/:taskId // 复筛结果
|
||||
```
|
||||
|
||||
### 萓ァ霎ケ譬剰除蜊?
|
||||
### 侧边栏菜单
|
||||
|
||||
```
|
||||
5. 全文复筛
|
||||
笏懌楳笏 隶セ鄂ョ荳主星蜉?
|
||||
笏懌楳笏 螳。譬ク蟾・菴懷<E88FB4>?
|
||||
├── 设置与启动
|
||||
├── 审核工作台
|
||||
└── 复筛结果
|
||||
```
|
||||
|
||||
@@ -190,68 +190,68 @@ GET /api/v1/asl/fulltext-screening/tasks/:taskId/export
|
||||
|
||||
### 1. 统一设计语言
|
||||
- 复用Ant Design 5组件
|
||||
- 荳取<EFBFBD><EFBFBD>「俶遭隕∝<EFBFBD>遲幃」取<EFBFBD>シ荳閾?
|
||||
- 与标题摘要初筛风格一致
|
||||
- 响应式布局
|
||||
|
||||
### 2. 用户体验优化
|
||||
- 螳樊慮蜿埼ヲ茨シ<EFBFBD>oading縲ヾuccess縲・rror<EFBFBD>?
|
||||
- 实时反馈(Loading、Success、Error)
|
||||
- 智能提示(条件未满足时禁用按钮)
|
||||
- 蜀イ遯∝庄隗<EFBFBD>喧<EFBFBD>育コ「濶イ鬮倅コョ<EFBFBD>?
|
||||
- 冲突可视化(红色高亮)
|
||||
- 一键操作(批量删除、导出)
|
||||
|
||||
### 3. 性能优化
|
||||
- 諛貞刈霓ス鬘オ髱「扈<EFBFBD>サ?
|
||||
- 懒加载页面组件
|
||||
- React Query缓存
|
||||
- 轮询智能停止
|
||||
|
||||
---
|
||||
|
||||
## 笞<EFBFBD><EFBFBD><EFBFBD> 蟾イ遏・髯仙宛<E4BB99>域橿譛ッ蛟コ蜉。<E89C89>?
|
||||
## ⚠️ 已知限制(技术债务)
|
||||
|
||||
### MVP髦カ谿オ譛ェ螳樒<EFBFBD>?
|
||||
### MVP阶段未实现
|
||||
|
||||
| 蛟コ蜉。ID | 蜉溯<EFBFBD> | 莨伜<E88EA8>郤?| 隶。蛻<EFBDA1> |
|
||||
| 债务ID | 功能 | 优先级 | 计划 |
|
||||
|--------|------|--------|------|
|
||||
| Debt 11 | PDF高亮标注 | P2 | Week 5+ |
|
||||
| Debt 13 | 从知识库选择文献 | P3 | Week 6+ |
|
||||
| Debt 14 | 自动获取全文 | P3 | Week 7+ |
|
||||
| Debt 15 | PDF预览中高亮AI引用 | P2 | Week 5+ |
|
||||
| Debt 16 | WebSocket替代轮询 | P2 | Week 6+ |
|
||||
| Debt 17 | 陌壽供貊壼勘莨伜喧螟ァ陦ィ譬?| P3 | Week 6+ |
|
||||
| Debt 18 | 謇ケ驥乗桃菴懶シ亥<EFBFBD>遲?蟇シ蜃コ/蛻<>髯、<E9ABAF>?| P2 | Week 5+ |
|
||||
| Debt 17 | 虚拟滚动优化大表格 | P3 | Week 6+ |
|
||||
| Debt 18 | 批量操作(决策/导出/删除) | P2 | Week 5+ |
|
||||
|
||||
### MVP使用占位符的功能
|
||||
|
||||
1. **PDF预览**:Tab2显示"敬请期待"
|
||||
2. **遏・隸<EFBFBD>コ馴画叫**<EFBFBD>壽潔髓ョ轤ケ蜃サ譏セ遉?豁」蝨ィ蠑蜿台クュ"
|
||||
3. **謇句勘荳贋シ<EFBFBD>Excel**<EFBFBD>壼粥閭ス謠千、?豁」蝨ィ蠑蜿台クュ"
|
||||
4. **讓。諡滓焚謐ョ**<EFBFBD>壽園譛蛾。オ髱「蠖灘燕菴ソ逕ィ讓。諡滓焚謐?
|
||||
2. **知识库选择**:按钮点击显示"正在开发中"
|
||||
3. **手动上传Excel**:功能提示"正在开发中"
|
||||
4. **模拟数据**:所有页面当前使用模拟数据
|
||||
|
||||
---
|
||||
|
||||
## 笨?莉」遐∬エィ驥<EFBDA8>
|
||||
## ✅ 代码质量
|
||||
|
||||
### Linter譽譟?
|
||||
### Linter检查
|
||||
|
||||
```
|
||||
笨?0 errors
|
||||
笨?0 warnings
|
||||
✅ 0 errors
|
||||
✅ 0 warnings
|
||||
```
|
||||
|
||||
### 代码规范
|
||||
|
||||
- 笨?TypeScript邀サ蝙句ョ梧紛
|
||||
- 笨?扈<>サカProps謗・蜿」螳壻ケ<E5A3BB>
|
||||
- 笨?JSDoc豕ィ驥雁ョ梧紛
|
||||
- 笨?蜃ス謨ー閨瑚エ」蜊穂ク
|
||||
- 笨?蜻ス蜷崎ァ<E5B48E>激扈滉ク
|
||||
- ✅ TypeScript类型完整
|
||||
- ✅ 组件Props接口定义
|
||||
- ✅ JSDoc注释完整
|
||||
- ✅ 函数职责单一
|
||||
- ✅ 命名规范统一
|
||||
|
||||
### 莠大次逕滓怙菴ウ螳櫁キ?
|
||||
### 云原生最佳实践
|
||||
|
||||
- 笨?髮カ譁<EFBDB6>サカ關ス逶假シ<E58187>DF荳贋シ<E8B48B>逶エ謗・蛻ーOSS<EFBFBD>?
|
||||
- 笨?蜑咲ォッExcel逕滓<E98095><E6BB93>域裏髴蜷守ォッ荳エ譌カ譁<EFBDB6>サカ<EFBDBB>?
|
||||
- 笨?迥カ諤∫ョ。逅<EFBDA1>シ<EFBFBD>eact Query郛灘ュ假シ?
|
||||
- 笨?蠑よュ・莉サ蜉。<E89C89>郁スョ隸「霑帛コヲ<EFBDBA>御ク埼仆蝪朸I<E69CB8>?
|
||||
- ✅ 零文件落盘(PDF上传直接到OSS)
|
||||
- ✅ 前端Excel生成(无需后端临时文件)
|
||||
- ✅ 状态管理(React Query缓存)
|
||||
- ✅ 异步任务(轮询进度,不阻塞UI)
|
||||
|
||||
---
|
||||
|
||||
@@ -260,48 +260,48 @@ GET /api/v1/asl/fulltext-screening/tasks/:taskId/export
|
||||
### 总代码量
|
||||
|
||||
```
|
||||
譁ー蠅樔サ」遐<EFBFBD>シ嘸2,500陦?
|
||||
笏懌楳笏 鬘オ髱「扈<EFBDA2>サカ<EFBDBB>?,875陦?
|
||||
笏懌楳笏 迢ャ遶狗サ<E78B97>サカ<EFBDBB>?41陦?
|
||||
笏懌楳笏 Hooks<EFBFBD>?39陦?
|
||||
笏懌楳笏 API蜃ス謨ー<E8ACA8>嘸100陦?
|
||||
笏披楳笏 霍ッ逕ア驟咲スョ<EFBDBD>嘸50陦?
|
||||
新增代码:~2,500行
|
||||
├── 页面组件:1,875行
|
||||
├── 独立组件:441行
|
||||
├── Hooks:139行
|
||||
├── API函数:~100行
|
||||
└── 路由配置:~50行
|
||||
```
|
||||
|
||||
### 螟咲畑邇?
|
||||
### 复用率
|
||||
|
||||
```
|
||||
螟咲畑扈<EFBFBD>サカ<EFBFBD>?荳ェ<E88DB3><EFBDAA>onclusionTag, JudgmentBadge, ASLLayout<EFBFBD>?
|
||||
螟咲畑Hooks<EFBFBD>?荳ェ<E88DB3><EFBDAA>seQuery, useMutation from React Query<EFBFBD>?
|
||||
螟咲畑蟾・蜈キ蜃ス謨ー<EFBFBD>?荳ェ<E88DB3><EFBDAA>ransformToDoubleRows - 蛟滄俺<EFBFBD>?
|
||||
复用组件:3个(ConclusionTag, JudgmentBadge, ASLLayout)
|
||||
复用Hooks:2个(useQuery, useMutation from React Query)
|
||||
复用工具函数:1个(transformToDoubleRows - 借鉴)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>噫 荳倶ク豁・蟾・菴?
|
||||
## 🚀 下一步工作
|
||||
|
||||
### Week 3: 蜑榊錘遶ッ閨碑ー?
|
||||
### Week 3: 前后端联调
|
||||
|
||||
1. **Day 9**: 前后端API对接
|
||||
- 替换所有模拟数据为真实API调用
|
||||
- 测试5个API端点
|
||||
- 处理错误边界
|
||||
|
||||
2. **Day 10**: 遶ッ蛻ー遶ッ豬玖ッ?
|
||||
- 螳梧紛豬∫ィ区オ玖ッ包シ郁ョセ鄂ョ竊定ソ帛コヲ竊貞ョ。譬ク竊堤サ捺棡<EFBFBD>?
|
||||
2. **Day 10**: 端到端测试
|
||||
- 完整流程测试(设置→进度→审核→结果)
|
||||
- 冲突文献复核测试
|
||||
- Excel导出测试
|
||||
|
||||
3. **Day 11**: Bug菫ョ螟堺ク惹シ伜<EFBFBD>?
|
||||
- 菫ョ螟肴オ玖ッ募書邇ー逧<EFBFBD>琉鬚?
|
||||
3. **Day 11**: Bug修复与优化
|
||||
- 修复测试发现的问题
|
||||
- UI细节优化
|
||||
- 性能调优
|
||||
|
||||
### Week 4+: 技术债务清偿
|
||||
|
||||
- PDF鬚<EFBFBD>ァ井ク朱ォ倅コョ<EFBFBD><EFBFBD>ebt 11, 15<EFBFBD>?
|
||||
- WebSocket螳樊慮謗ィ騾<EFBFBD>シ<EFBFBD>ebt 16<EFBFBD>?
|
||||
- 謇ケ驥乗桃菴懶シ<EFBFBD>ebt 18<EFBFBD>?
|
||||
- PDF预览与高亮(Debt 11, 15)
|
||||
- WebSocket实时推送(Debt 16)
|
||||
- 批量操作(Debt 18)
|
||||
|
||||
---
|
||||
|
||||
@@ -311,15 +311,15 @@ GET /api/v1/asl/fulltext-screening/tasks/:taskId/export
|
||||
|
||||
1. **独立组件vs扩展复用**
|
||||
- 决策:创建独立的`FulltextDetailDrawer`
|
||||
- 逅<EFBFBD>罰<EFBFBD>壻ク、荳ェ蜉溯<EFBFBD>蟾ョ蠑ょ、ァ<EFBFBD>?0%+蜀<>ョケ荳榊酔<E6A68A>会シ梧悴譚・貍泌喧迢ャ遶<EFBDAC>
|
||||
- 理由:两个功能差异大(70%+内容不同),未来演化独立
|
||||
|
||||
2. **任务进度页面独立**
|
||||
- 蜀ウ遲厄シ夂峡遶矩。オ髱「<EFBFBD>井ク榊粋蟷カ蛻ーWorkbench<EFBFBD>?
|
||||
- 决策:独立页面(不合并到Workbench)
|
||||
- 理由:全文复筛任务耗时长,独立进度页面体验更好
|
||||
|
||||
3. **Excel导出方式**
|
||||
- 蜀ウ遲厄シ壼燕遶ッ逕滓<EFBFBD>荳コ荳サ<EFBFBD>悟錘遶ッAPI荳コ螟<EFBFBD>?
|
||||
- 逅<EFBFBD>罰<EFBFBD>壻コ大次逕滓楔譫<EFBFBD>シ悟㍼蟆大錘遶ッ荳エ譌カ譁<EFBFBD>サ?
|
||||
- 决策:前端生成为主,后端API为备选
|
||||
- 理由:云原生架构,减少后端临时文件
|
||||
|
||||
### 关键依赖
|
||||
|
||||
@@ -336,15 +336,14 @@ GET /api/v1/asl/fulltext-screening/tasks/:taskId/export
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
蜈ィ譁<EFBFBD>、咲ュ帛燕遶ッMVP蠑蜿大キイ螳梧<EFBFBD><EFBFBD>悟ョ樒鴫莠<EFBFBD>ョ梧紛逧<EFBFBD>畑謌キ豬∫ィ句柱譬ク蠢<EFBFBD>粥閭ス縲ゆサ」遐∬エィ驥城ォ倥∵楔譫<EFBFBD>ク<EFBFBD>匆縲∵<EFBFBD>莠守サエ謚、蜥梧黄螻輔?
|
||||
全文复筛前端MVP开发已完成,实现了完整的用户流程和核心功能。代码质量高、架构清晰、易于维护和扩展。
|
||||
|
||||
**荳倶ク豁?*<2A>壼燕蜷守ォッ閨碑ー<E7A291>シ梧崛謐「讓。諡滓焚謐ョ荳コ逵溷ョ暸PI隹<49>畑縲?
|
||||
**下一步**:前后端联调,替换模拟数据为真实API调用。
|
||||
|
||||
---
|
||||
|
||||
**文档版本**: v1.0
|
||||
**譛蜷取峩譁?*: 2025-01-23
|
||||
|
||||
**最后更新**: 2025-01-23
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user