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:
@@ -7,48 +7,54 @@
|
||||
|
||||
### **1.1. 项目背景**
|
||||
|
||||
敶枏<EFBFBD>嚗<EFBFBD>龫摮衣<EFBFBD><EFBFBD>𥪯犖<EFBFBD>睃銁餈𥡝<EFBFBD>蝟餌<EFBFBD><EFBFBD>扳<EFBFBD><EFBFBD>桀<EFBFBD>憿整<EFBFBD><EFBFBD>eta<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡝗鰵<EFBFBD>舐<EFBFBD><EFBFBD>𤑳<EFBFBD>撌乩<EFBFBD><EFBFBD>塚<EFBFBD><EFBFBD>V葩<EFBFBD><EFBFBD>瘚琿<EFBFBD><EFBFBD><EFBFBD>讃撣行䔉<EFBFBD><EFBFBD>楊憭扳<EFBFBD><EFBFBD>塩<EFBFBD><EFBFBD><EFBFBD>蝏毺<EFBFBD><EFBFBD><EFBFBD>讃憭<EFBFBD><EFBFBD>瘚<EFBFBD><EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>祆<EFBFBD>蝝U<EFBFBD><EFBFBD><EFBFBD><EFBFBD>剹<EFBFBD><EFBFBD>㺭<EFBFBD>格<EFBFBD><EFBFBD>硋<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗峕糓擃睃漲<EFBFBD>喳𢆡撖<EFBFBD><EFBFBD><EFBFBD>讠<EFBFBD>撌乩<EFBFBD>嚗䔶<EFBFBD>隞<EFBFBD><EFBFBD>埈𧒄撌典之嚗諹<EFBFBD>䔶<EFBFBD>摰寞<EFBFBD>撘訫<EFBFBD>鈭箔蛹<EFBFBD>讛<EFBFBD><EFBFBD>屸<EFBFBD>霂荔<EFBFBD><EFBFBD>湔𦻖敶勗<EFBFBD>蝘𤑳<EFBFBD>蝏栞捏<EFBFBD><EFBFBD>捶<EFBFBD>誩<EFBFBD><EFBFBD>嗆<EFBFBD><EFBFBD>扼<EFBFBD><EFBFBD>𧋦憿寧𤌍<EFBFBD>典銁撘<EFBFBD><EFBFBD>睲<EFBFBD>銝芸抅鈭𦒘犖撌交惣<EFBFBD>賜<EFBFBD><EFBFBD>餃郎<EFBFBD><EFBFBD>讃摨𠉛鍂蝟餌<EFBFBD>嚗屸<EFBFBD>朞<EFBFBD><EFBFBD>芸𢆡<EFBFBD>硋<EFBFBD><EFBFBD>箄<EFBFBD><EFBFBD>𣇉<EFBFBD><EFBFBD>孵<EFBFBD>韏贝<EFBFBD>蝘𤑳<EFBFBD>鈭箏<EFBFBD>嚗<EFBFBD><EFBFBD>隞碶賑隞𡒊<EFBFBD><EFBFBD>鞟<EFBFBD><EFBFBD>滚<EFBFBD><EFBFBD>批極雿靝葉閫<EFBFBD>𦆮<EFBFBD>箸䔉嚗諹<EFBFBD><EFBFBD>虫<EFBFBD><EFBFBD>湧<EFBFBD>撅<EFBFBD>活<EFBFBD><EFBFBD><EFBFBD>摮行<EFBFBD>閫<EFBFBD><EFBFBD><EFBFBD>𥟇鰵<EFBFBD>?
|
||||
当前,医学科研人员在进行系统性文献回顾、Meta分析或新药研发等工作时,面临着海量文献带来的巨大挑战。传统的文献处理流程,包括检索、筛选、数据提取和分析,是高度劳动密集型的工作,不仅耗时巨大,而且容易引入人为偏见和错误,直接影响科研结论的质量和时效性。本项目旨在开发一个基于人工智能的医学文献应用系统,通过自动化和智能化的方式赋能科研人员,将他们从繁琐的重复性工作中解放出来,聚焦于更高层次的科学洞见和创新。
|
||||
|
||||
### **1.2. 产品目标**
|
||||
|
||||
* **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>嚗?* 撠<><E692A0>蝏罸<E89D8F>閬<EFBFBD>㺭<EFBFBD><E3BAAD><EFBFBD><EFBFBD>鞟<EFBFBD>蝟餌<E89D9F><E9A48C>扳<EFBFBD><E689B3>桀<EFBFBD>憿暹<E686BF>蝔页<E89D94>蝻拍<E89DBB><E68B8D>單㺭憭拇<E686AD><E68B87>啣𪂹<E595A3>?
|
||||
* **韐券<EFBFBD>靽嗪<EFBFBD>嚗?* <20>朞<EFBFBD><E69C9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I璅∪<E79285><E288AA>峕嵗撉峕㦤<E5B395>塚<EFBFBD><E5A19A>𣂼<EFBFBD><F0A382BC><EFBFBD>讃蝑偦<E89D91>匧<EFBFBD><E58CA7>唳旿<E594B3>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>蝖格<E89D96>找<EFBFBD>銝<EFBFBD><E98A9D>湔<EFBFBD>改<EFBFBD><E694B9>滢<EFBFBD>鈭箔蛹<E7AE94>讛<EFBFBD><E8AE9B>?
|
||||
* **瘛勗漲瘣𧼮<EFBFBD>嚗?* <20>函移<E587BD><E7A7BB><EFBFBD><EFBFBD>𣇉<EFBFBD><F0A38789>唳旿<E594B3>箇<EFBFBD>銝𠺪<E98A9D><F0A0BAAA>𣂷<EFBFBD>憭𡁶輕摨衣<E691A8>蝏澆<E89D8F><E6BE86><EFBFBD><EFBFBD><EFBFBD><EFBFBD>虾閫<E899BE><E996AB>撌亙<E6928C>嚗<EFBFBD>葬<EFBFBD>拍鍂<E68B8D>瑕翰<E79195>毺<EFBFBD><E6AFBA>鞾<EFBFBD>韐券<E99F90><E588B8><EFBFBD><EFBFBD><EFBFBD>桀㦛靚晞<E99D9A><E6999E>遞<EFBFBD><E9819E><EFBFBD>隞瑟𥁒<E7919F>羓<EFBFBD>摨𠉛鍂<F0A0899B>?
|
||||
* **<EFBFBD>函<EFBFBD><EFBFBD>舀滲嚗?* 蝖桐<E89D96>AI憭<49><E686AD><EFBFBD><EFBFBD><EFBFBD>銝<EFBFBD>銝芰㴓<E88AB0><E3B493><EFBFBD>蝑偦<E89D91>剹<EFBFBD><E589B9><EFBFBD><EFBFBD>硔<EFBFBD><E7A194><EFBFBD><EFBFBD>琜<EFBFBD><E7909C>賣<EFBFBD><E8B3A3>桀虾<E6A180>伐<EFBFBD><E4BC90><EFBFBD><EFBFBD>厩<EFBFBD>霈箏<E99C88><E7AE8F>航蕭皞航秐<E888AA><E7A790><EFBFBD>嚗峕說頞喟<E9A09E><E5969F>𠉛<EFBFBD>銝亥馬<E4BAA5>扯<EFBFBD>瘙<EFBFBD><E79899>?
|
||||
* **效率提升:** 将传统需要数月完成的系统性文献回顾流程,缩短至数天或数周。
|
||||
* **质量保障:** 通过先进的AI模型和校验机制,提升文献筛选和数据提取的准确性与一致性,降低人为偏见。
|
||||
* **深度洞察:** 在精准提取的数据基础上,提供多维度的综合分析和可视化工具,帮助用户快速生成高质量的证据图谱、综合评价报告等应用。
|
||||
* **全程可溯:** 确保AI处理的每一个环节(筛选、提取、分析)都有据可查,所有结论均可追溯至原文,满足科研的严谨性要求。
|
||||
|
||||
### **1.3. 目标用户**
|
||||
|
||||
* <EFBFBD>餃郎蝘𤑳<EFBFBD>鈭箏<EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>~<EFBFBD><EFBFBD><EFBFBD>蝛嗆<EFBFBD>嚗?
|
||||
* 銝游<EFBFBD><EFBFBD>餌<EFBFBD>銝𤾸龫摮虫<EFBFBD>摰?
|
||||
* 医学科研人员(高校、研究所)
|
||||
* 临床医生与医学专家
|
||||
* 制药公司及CRO(合同研究组织)的研发、医学和市场准入部门人员
|
||||
* 敺芾<EFBFBD><EFBFBD>餃郎銝𤾸㪗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>航<EFBFBD>隡堆<EFBFBD>HTA嚗㗇㦤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠉛弦<EFBFBD>?
|
||||
* 擃条<EFBFBD><EFBFBD>X嵗<EFBFBD><EFBFBD>龫摮?<3F>臬郎銝㮖<E98A9D>摮衣<E691AE><E8A1A3>𦠜<EFBFBD><F0A6A09C>?
|
||||
* 循证医学与卫生技术评估(HTA)机构的研究员
|
||||
* 高等院校的医学/药学专业学生及教员
|
||||
|
||||
### **1.4. 名词解释**
|
||||
|
||||
* **PRD:** Product Requirement Document嚗䔶漣<EFBFBD><EFBFBD><EFBFBD>瘙<EFBFBD><EFBFBD>獢<EFBFBD><EFBFBD>?
|
||||
* **PRD:** Product Requirement Document,产品需求文档。
|
||||
* **PICO(S):** 系统评价中用于确定文献纳入排除标准的研究要素框架,包括:
|
||||
* **P (Patient/Population):** 研究对象
|
||||
* **I (Intervention):** 干预措施
|
||||
* **C (Comparison):** 对照措施
|
||||
* **O (Outcome):** 结局指标
|
||||
* **S (Study Design):** 研究设计
|
||||
* **霂<EFBFBD>旿<EFBFBD>曇停 (Evidence Mapping):** 銝<EFBFBD>蝘滨頂蝏<EFBFBD><EFBFBD>批𧑐霂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餈啣<EFBFBD><EFBFBD><EFBFBD>掩<EFBFBD>孵<EFBFBD><EFBFBD>亙熒憸<EFBFBD><EFBFBD><EFBFBD>唳<EFBFBD><EFBFBD>𠉛弦霂<EFBFBD>旿<EFBFBD><EFBFBD>䲮瘜𤏪<EFBFBD><EFBFBD>𡁜虜隞亙虾閫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䲮撘誩<EFBFBD><EFBFBD>啜<EFBFBD>?
|
||||
* **Meta<EFBFBD><EFBFBD><EFBFBD>:** 撖寧㮾<EFBFBD>𣬚<EFBFBD>蝛園䔮憸条<EFBFBD>憭帋葵<EFBFBD>祉<EFBFBD><EFBFBD>𠉛弦蝏𤘪<EFBFBD>餈𥡝<EFBFBD>摰𡁻<EFBFBD><EFBFBD><EFBFBD>僎<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈⊥䲮瘜𨰻<EFBFBD>?
|
||||
* **证据图谱 (Evidence Mapping):** 一种系统性地识别、描述和分类特定健康领域现有研究证据的方法,通常以可视化的方式呈现。
|
||||
* **Meta分析:** 对相同研究问题的多个独立研究结果进行定量合并分析的统计方法。
|
||||
|
||||
## **2\. 产品概述**
|
||||
|
||||
### **2.1. 产品定位**
|
||||
|
||||
銝<EFBFBD>銝?*<2A>萄儐敺芾<E695BA><E88ABE>餃郎<E9A483><E9838E><EFBFBD>**<2A><><EFBFBD>銝𠾼<E98A9D><F0A0BEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>虾靽∟<E99DBD><E2889F><EFBFBD>I<EFBFBD>餃郎蝘𤑳<E89D98>**撌亙<E6928C>蝞?*<2A><><EFBFBD>隞?*<2A>𠉛弦<F0A0899B>寞<EFBFBD>**銝箸瓲敹<E793B2><E695B9>撽勗𢆡隞擧<E99A9E><E693A7>格<EFBFBD>蝝W<E89D9D>瘛勗漲<E58B97><E6BCB2><EFBFBD><EFBFBD>亙<EFBFBD><E4BA99><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘚<EFBFBD><E7989A>閫<EFBFBD><E996AB><EFBFBD>寞<EFBFBD><E5AF9E>?
|
||||
### **2.2. <20>詨<EFBFBD>隞瑕<E99A9E>?*
|
||||
一个**遵循循证医学标准**、专业、高效、可信赖的AI医学科研**工具箱**。它以**研究方案**为核心,驱动从文献检索到深度分析报告生成的全流程解决方案。
|
||||
|
||||
* **<2A>芸𢆡<E88AB8>?** <20>芸𢆡<E88AB8>扯<EFBFBD><E689AF><EFBFBD>讃蝑偦<E89D91>剹<EFBFBD><E589B9>㺭<EFBFBD>格<EFBFBD><E6A0BC>𣇉<EFBFBD>蝜<EFBFBD><E89D9C>隞餃𦛚<E9A483>?
|
||||
* **蝎曉<E89D8E><E69B89>?** 瘛勗漲<E58B97><E6BCB2>圾<EFBFBD>餃郎霂剛<E99C82><E5899B>釶ICO嚗䔶<E59A97><E494B6>𦦵<EFBFBD><F0A6A6B5>匧<EFBFBD><E58CA7>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>蝖格<E89D96>扼<EFBFBD>?
|
||||
* **蝏𤘪<EFBFBD><EFBFBD>?** 撠<><E692A0>蝏𤘪<E89D8F><F0A498AA>𣇉<EFBFBD><F0A38789><EFBFBD>讃<EFBFBD>冽<EFBFBD>頧砍<E9A0A7>銝箇<E98A9D><E7AE87><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>株<EFBFBD>鈭扼<E988AD>?
|
||||
* **<EFBFBD>箄<EFBFBD><EFBFBD>?** <20>箔<EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗㺭<F0A19D97>殷<EFBFBD><E6AEB7>𣂷<EFBFBD>憭𡁏甅<F0A1818F><E79485><EFBFBD>皜詨<E79A9C><E8A9A8>𣂼<EFBFBD><F0A382BC>典<EFBFBD><E585B8>亙<EFBFBD><E4BA99>?
|
||||
### **2.3. <20>蠘<EFBFBD><E8A098>餉<EFBFBD><E9A489>?(V4.0 <20>湔鰵)**
|
||||
### **2.2. 核心价值**
|
||||
|
||||
* **自动化:** 自动执行文献筛选、数据提取等繁重任务。
|
||||
* **精准化:** 深度理解医学语言和PICO,保障筛选和提取的准确性。
|
||||
* **结构化:** 将非结构化的文献全文转化为结构化的数据资产。
|
||||
* **智能化:** 基于结构化数据,提供多样的下游分析应用和报告。
|
||||
|
||||
### **2.3. 功能总览图 (V4.0 更新)**
|
||||
|
||||
graph TD
|
||||
A\[用户管理\] \--\> B(项目管理)
|
||||
B \--\> C\[1. 研究方案生成\]
|
||||
C \-- "<EFBFBD><EFBFBD>紡<EFBFBD>𡒊賒<EFBFBD><EFBFBD><EFBFBD>㗇<EFBFBD>蝔? \--\> D
|
||||
C \-- "指导后续所有流程" \--\> D
|
||||
|
||||
subgraph D\[研究执行流程\]
|
||||
D1\[2. 智能文献检索\]
|
||||
@@ -75,7 +81,9 @@ graph TD
|
||||
|
||||
### **2.4. 设计哲学:集成化与模块化**
|
||||
|
||||
<EFBFBD>砌漣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>詨<EFBFBD>霈曇恣<EFBFBD>脣郎<EFBFBD>胼<EFBFBD>?*<2A><><EFBFBD><EFBFBD>碶<EFBFBD>璅∪<E79285><E288AA>硋僎摮?*<2A>腈<EFBFBD>?
|
||||
* **<2A><><EFBFBD><EFBFBD>吔<EFBFBD>** <20>剖之<E58996>詨<EFBFBD><E8A9A8>蠘<EFBFBD>璅∪<E79285>嚗<EFBFBD><E59A97>蝛嗆䲮獢<E4B2AE><E78DA2><EFBFBD>惣<EFBFBD>賣<EFBFBD>蝝U<E89D9D><EFBCB5><EFBFBD>憸䀹<E686B8>閬<EFBFBD><E996AC>蝑䜘<E89D91><E49C98><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑䜘<E89D91><E49C98><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硔<EFBFBD><E7A194>遞<EFBFBD><E9819E><EFBFBD><EFBFBD>琜<EFBFBD><E7909C>删<EFBFBD>銵娍𦻖嚗䔶蛹<E494B6>冽<EFBFBD><E586BD>𣂷<EFBFBD>銝<EFBFBD>銝芯<E98A9D>霂暸<E99C82><E69AB8><EFBFBD><EFBFBD><EFBFBD>唳𥁒<E594B3>𠹺漣<F0A0B9BA>箇<EFBFBD>蝡臬<E89DA1>蝡胯<E89DA1><E883AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>韐舐<E99F90>蝟餌<E89D9F><E9A48C>扳<EFBFBD><E689B3>桃<EFBFBD>蝛嗅極雿𨀣<E99BBF><F0A880A3>?
|
||||
* **璅∪<E79285><E288AA>吔<EFBFBD>** 瘥譍葵<E8AD8D>詨<EFBFBD><E8A9A8>蠘<EFBFBD>璅∪<E79285><E288AA>賢虾隞乩<E99A9E>銝箔<E98A9D>銝芰𡠺蝡讠<E89DA1>撌亙<E6928C><E4BA99>亥圾<E4BAA5>喟鸌摰𡁶<E691B0>蝘𤑳<E89D98><F0A491B3>𤤿<EFBFBD><F0A4A4BF><EFBFBD>鍂<EFBFBD>瑟<EFBFBD><E7919F><EFBFBD><EFBFBD>萄儐摰峕㟲<E5B395><E39FB2><EFBFBD>蝔页<E89D94><E9A1B5>臭誑<E887AD>寞旿<E5AF9E>芸楛<E88AB8><E6A59B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘙<EFBFBD><E79899>隞𦒘遙<F0A69298>讐㴓<E8AE90><E3B493><EFBFBD>憒<EFBFBD><E68692>雿輻鍂璉<E98D82>蝝U<E89D9D><EFBCB5><EFBFBD>隞<EFBFBD><E99A9E>隡𪊲xcel餈𥡝<E9A488>蝑偦<E89D91>㚁<EFBFBD><E39A81><EFBFBD><EFBFBD>嚗䔶蝙<E494B6>函㮾摨𠉛<E691A8><F0A0899B>蠘<EFBFBD>璅∪<E79285><E288AA>?
|
||||
餈嗵<EFBFBD>霈曇恣<EFBFBD>典銁<EFBFBD><EFBFBD>憭批<EFBFBD>鈭批<EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘣餅<EFBFBD>批<EFBFBD><EFBFBD><EFBFBD>鍂<EFBFBD>改<EFBFBD><EFBFBD>滚𦛚鈭𦒘<EFBFBD><EFBFBD>屸<EFBFBD>瘙<EFBFBD><EFBFBD>甈∠<EFBFBD>撟踹之蝘𤑳<EFBFBD><EFBFBD>冽<EFBFBD><EFBFBD>
|
||||
本产品的核心设计哲学是“**集成化与模块化并存**”。
|
||||
|
||||
* **集成化:** 六大核心功能模块(研究方案、智能检索、标题摘要初筛、全文复筛、全文提取、综合分析)无缝衔接,为用户提供一个从课题构想到报告产出的端到端、流畅连贯的系统性文献研究工作流。
|
||||
* **模块化:** 每个核心功能模块都可以作为一个独立的工具来解决特定的科研痛点。用户无需遵循完整的流程,可以根据自己的实际需求,从任意环节(如仅使用检索、或仅上传Excel进行筛选)切入,使用相应的功能模块。
|
||||
|
||||
这种设计旨在最大化产品的灵活性和适用性,服务于不同需求层次的广大科研用户。
|
||||
Reference in New Issue
Block a user