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
5.0 KiB
5.0 KiB
标题摘要初筛需求详述
文档版本: v1.0
创建日期: 2025-10-29
维护者: AI智能文献开发团队
最后更新: 2025-10-29
📋 文档说明
本文档详细描述标题摘要初筛模块的功能需求,基于PRD文档进行扩展和细化。
🎯 功能概述
标题摘要初筛是筛选流程的第一阶段,仅基于文献的标题和摘要进行快速筛选。
核心子视图
- 设置与启动视图 - 配置筛选标准、导入文献、启动筛选
- 表格化审核工作台 - 双模型PICS判断、冲突管理、决策制定
- 初筛结果视图 - 统计概览、结果列表、导出功能
📝 功能需求详述
需求1: 设置与启动视图
FR-TSCR-01.1: 标准参考展示
- 需求: 页面顶部展示从"研究方案"继承的PICO和入排标准(只读)
- 优先级: 高
- 验收标准:
- 清晰展示PICO框架内容
- 展示纳入标准和排除标准
- 提供"调整本次筛选标准"入口
FR-TSCR-01.2: 临时调整筛选标准
- 需求: 允许用户进行仅对本次筛选生效的临时修改
- 优先级: 高
- 验收标准:
- 可修改PICO和入排标准
- 修改不影响原始研究方案
- 在审核工作台有明确提示
FR-TSCR-01.3: 文献导入
- 需求: 仅支持"上传Excel文件"方式,提供模板下载
- 优先级: 高
- 验收标准:
- 支持Excel文件上传
- 提供标准模板下载
- 文件格式验证
- 导入结果预览
FR-TSCR-01.4: 启动筛选
- 需求: 导入文献后,激活"开始AI初筛"按钮
- 优先级: 高
- 验收标准:
- 按钮状态控制
- 点击后启动AI筛选任务
- 显示任务进度
需求2: 表格化审核工作台视图 ⭐⭐⭐
FR-TSCR-02.1: 表格结构设计
- 需求: 高信息密度的表格化布局
- 优先级: 极高
- 验收标准:
- 两行表头结构(模型区域 + P/I/C/S列)
- 主行包含所有关键信息
- 展开行显示证据短语
- 支持展开/收起
FR-TSCR-02.2: 双模型PICS判断
- 需求: DS和Q3模型分别对P/I/C/S四个维度进行判断
- 优先级: 极高
- 验收标准:
- 每个维度显示判断结果(✓/✗/?)
- 展示双模型的判断结果
- 支持查看详细判断理由
FR-TSCR-02.3: 证据短语提取
- 需求: 展示AI提取的关键证据短语
- 优先级: 极高
- 验收标准:
- 展开行显示DS和Q3的证据短语
- 短语清晰标注对应的P/I/C/S维度
- 支持点击查看原文
FR-TSCR-02.4: 原文审查模态框
- 需求: 点击判断图标弹出双视图审查模态框
- 优先级: 极高
- 验收标准:
- 左侧显示摘要
- 右侧显示双模型判断详情
- 原文自动高亮
- 支持来源引用查看
需求3: 冲突管理
FR-TSCR-03.1: 冲突识别
- 需求: 自动识别两模型判断不一致的文献
- 优先级: 高
- 验收标准:
- 自动检测冲突项
- 视觉高亮(如行背景色)
- 支持冲突项筛选
FR-TSCR-03.2: 冲突处理
- 需求: 允许用户对冲突项进行人工仲裁
- 优先级: 高
- 验收标准:
- 支持查看冲突详情
- 支持选择最终决策
- 记录决策原因
需求4: 批量操作
FR-TSCR-04.1: 批量决策
- 需求: 支持对非冲突项进行批量决策
- 优先级: 中
- 验收标准:
- 支持多选文献
- 批量设置决策结果
- 批量设置决策原因
需求5: 初筛结果视图
FR-TSCR-05.1: 统计概览
- 需求: 展示筛选统计信息
- 优先级: 高
- 验收标准:
- 卡片形式展示统计数字
- 包括:总计、纳入、排除数量
FR-TSCR-05.2: PRISMA式排除总结
- 需求: 展示主要排除原因及数量
- 优先级: 高
- 验收标准:
- 列表展示排除原因
- 显示对应文献数量
- 支持点击查看详情
FR-TSCR-05.3: 结果列表
- 需求: Tab页切换查看纳入和排除的文献列表
- 优先级: 高
- 验收标准:
- 支持Tab切换
- 表格展示文献信息
- 支持筛选和搜索
FR-TSCR-05.4: 导出功能
- 需求: 将结果列表导出为Excel
- 优先级: 高
- 验收标准:
- 支持导出为Excel格式
- 包含完整的文献信息
- 格式规范清晰
📊 非功能性需求
- 性能: 单次筛选支持1000+文献
- 响应时间: 单个文献判断 < 5秒
- 并发: 支持多用户同时筛选
- 可靠性: 支持任务中断和恢复
📚 相关文档
文档版本: v1.0
最后更新: 2025-10-29