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
135 lines
5.4 KiB
Markdown
135 lines
5.4 KiB
Markdown
# **智能期刊审稿系统 MVP 产品需求文档**
|
||
|
||
| 项目属性 | 内容 |
|
||
| :---- | :---- |
|
||
| **项目名称** | 智能期刊审稿辅助系统 (SmartReview MVP) |
|
||
| **文档版本** | V1.0 (MVP) |
|
||
| **优先级** | P0 (核心功能闭环) |
|
||
| **目标用户** | 期刊初审编辑 |
|
||
|
||
## **1\. 产品目标 (Product Goal)**
|
||
|
||
打造一个\*\*“开箱即用”\*\*的智能审稿工具。编辑上传稿件,系统自动运行双重检查(规范性+方法学),输出可供参考的审稿报告。
|
||
核心指标:上传到出报告 \< 2分钟;规范性问题检出率 \> 80%。
|
||
|
||
## **2\. 功能范围 (Scope)**
|
||
|
||
### **✅ MVP 包含 (In Scope)**
|
||
|
||
1. **账户体系**:简单的账号登录,支持期刊 Logo 定制。
|
||
2. **文件处理**:批量上传 Word/PDF,列表展示状态。
|
||
3. **审查流程**:用户手动选择智能体发起审查,后台异步运行。
|
||
4. **规范性审查**:覆盖字数、摘要结构、参考文献、图片DPI等硬指标。
|
||
5. **方法学审查**:PICO 提取、研究类型识别、基础统计逻辑校验。
|
||
6. **报告与导出**:双视图报告展示,支持 PDF 导出。
|
||
|
||
### **❌ MVP 不包含 (Out of Scope)**
|
||
|
||
1. 在线文档编辑器 (Web Office)。
|
||
2. 复杂的角色权限管理系统。
|
||
3. 邮件自动发送功能。
|
||
4. 高级历史归档与检索系统。
|
||
5. 前端可视化的 Prompt 配置后台。
|
||
|
||
## **3\. 详细功能需求 (Requirements)**
|
||
|
||
### **3.1 登录页 (Login)**
|
||
|
||
* **功能**:账号密码验证。
|
||
* **UI**:
|
||
* 左/上侧展示期刊 Logo 与名称(支持配置)。
|
||
* 输入框:账号、密码。
|
||
* 登录按钮:点击校验,失败提示“账号或密码错误”。
|
||
* **逻辑**:Session 保持 24 小时,避免频繁登录。
|
||
|
||
### **3.2 审稿工作台 (Dashboard)**
|
||
|
||
这是系统的主界面,采用\*\*“宽表”\*\*布局。
|
||
|
||
#### **3.2.1 顶部操作区**
|
||
|
||
* **品牌区**:展示“XX杂志社智能审稿系统”。
|
||
* **筛选栏**:
|
||
* 状态 (全部/待处理/已完成)。
|
||
* 时间 (今天/近7天)。
|
||
* **上传按钮**:
|
||
* 点击触发文件选择器。
|
||
* 支持多选。
|
||
* 支持扩展名:.docx, .pdf。
|
||
* 限制:单文件 \< 50MB。
|
||
|
||
#### **3.2.2 稿件列表**
|
||
|
||
列表包含以下列:
|
||
|
||
* 复选框:用于批量操作。
|
||
* 文件信息:文件名(点击进入详情)、大小、上传时间。
|
||
* 审稿维度:展示 Tags(规范性、方法学)。
|
||
* 状态:
|
||
* **待处理**:刚上传,未运行。
|
||
* **运行中**:展示动态 Loading 图标。
|
||
* **已完成**:
|
||
* 若跑了规范性,显示分数(如:绿色 "90分")。
|
||
* 若跑了方法学,显示结论(如:黄色 "存疑")。
|
||
* 操作列:
|
||
* \[开始审查\]:针对待处理状态。
|
||
* \[查看报告\]:针对已完成状态。
|
||
|
||
#### **3.2.3 任务发起弹窗 (The Launcher)**
|
||
|
||
* **触发**:点击列表中的“开始审查”或底部批量操作栏的“运行”。
|
||
* **内容**:
|
||
* 标题:“发起智能审查”。
|
||
* 复选框组:
|
||
* \[x\] 稿约规范性智能体 (默认选中)。
|
||
* \[ \] 方法学统计智能体。
|
||
* **逻辑**:点击确定后,后端创建任务,列表状态变为“运行中”。
|
||
|
||
### **3.3 审稿详情页 (Report Detail)**
|
||
|
||
#### **3.3.1 头部信息**
|
||
|
||
* 展示文件名、作者(若能提取)、版本标签(MVP可暂不显示)。
|
||
* 按钮:\[下载原稿\]、\[导出报告PDF\]。
|
||
|
||
#### **3.3.2 视图 A:稿约规范性报告**
|
||
|
||
* **总评卡片**:展示总分 (0-100) 和 结论 (Pass/Fail)。
|
||
* **检查项列表**:
|
||
* **文题字数**:提取字数,对比标准(如 \<20字)。
|
||
* **摘要结构**:正则匹配“目的/方法/结果/结论”关键词。
|
||
* **参考文献**:识别引用格式错误。
|
||
* **图片质量**:显示低分辨率图片的页码和 DPI 值。
|
||
* **交互**:每个报错项下方提供“建议修改意见”,支持点击复制。
|
||
|
||
#### **3.3.3 视图 B:方法学评估报告**
|
||
|
||
* **PICO 卡片**:结构化展示提取出的 P/I/C/O 内容。
|
||
* **逻辑推理区**:
|
||
* 展示模型对“研究类型”的判断(如:回顾性队列研究)。
|
||
* 展示“统计方法”的合理性分析(如:发现多组比较未用 ANOVA)。
|
||
* **红绿灯**:
|
||
* 🔴 **错误**:明确的逻辑硬伤。
|
||
* 🟡 **存疑**:模型不确定,需人工复核。
|
||
* 🟢 **通过**:逻辑自洽。
|
||
|
||
## **4\. 技术与性能要求 (Non-functional)**
|
||
|
||
1. **响应速度**:
|
||
* 列表加载 \< 1秒。
|
||
* 文件上传速度取决于带宽,需有进度反馈。
|
||
2. **并发处理**:
|
||
* 支持至少 5 个任务并发运行(不需要排队太久)。
|
||
3. **兼容性**:
|
||
* 优先支持 Chrome / Edge 浏览器。
|
||
4. **数据安全**:
|
||
* 稿件文件存储需加密或隔离。
|
||
* 审稿报告仅授权账号可见。
|
||
|
||
## **5\. 验收标准 (Acceptance Criteria)**
|
||
|
||
1. **流程通**:用户能成功上传 5 个 PDF,勾选双模型运行,等待 3 分钟内,状态全部变为“已完成”。
|
||
2. **报告准**:
|
||
* 上传一篇故意删掉“摘要结论”的稿件,规范性智能体必须报错。
|
||
* 上传一篇故意混淆“t检验”和“卡方检验”的稿件,方法学智能体必须报“存疑”或“错误”。
|
||
3. **无崩溃**:连续上传 20 个文件,系统不卡死,不白屏。 |