Commit Graph

255 Commits

Author SHA1 Message Date
Cheng Zhou 90ca061db8 优化文档管理与导航体验
1、为文档增加编辑接口和前端编辑抽屉,文档列表与详情页统一按创建、更新、删除权限展示操作。

2、将文档版本上传和分发改为抽屉交互,并在详情页补充版本删除权限检查。

3、增强全局面包屑上下文和详情页标题同步,避免详情页重复或缺失导航信息。

4、按项目权限过滤快捷入口、首页费用指标和 eTMF 新建入口,并补充对应前端测试。
2026-06-04 11:11:28 +08:00
Cheng Zhou 6e8494abd5 统一业务页面权限与抽屉编辑
1、将 FAQ 分类和问题维护改为抽屉交互,并按分类、问题、回复的细粒度权限控制入口。

2、将注意事项、可行性和伦理记录接入详情页抽屉编辑,创建时支持先保存主记录再上传附件。

3、将参与者基础信息编辑改为抽屉,详情页按可读权限显示病史、访视、AE 和 PD 标签页。

4、补充业务页面权限一致性测试,覆盖停用中心、无权限入口和面包屑上下文。
2026-06-04 11:10:20 +08:00
Cheng Zhou 6a2e43f829 抽屉化物资与启动授权流程
1、将药物发货新建和编辑从独立页面迁移到抽屉,详情页支持权限控制和停用中心只读状态。

2、补充药物发货状态字段校验,统一 PENDING、IN_TRANSIT、SIGNED、EXCEPTION 状态及演示数据。

3、为物资设备增加详情页和编辑抽屉,复用通用附件上传并按项目权限控制操作入口。

4、将启动会和培训授权编辑迁移到抽屉,详情页按中心过滤培训记录并移除旧独立编辑路由。
2026-06-04 11:08:43 +08:00
Cheng Zhou 720c98765f 迁移合同费用通用附件
1、删除旧费用附件 API、CRUD、模型和专用前端面板,统一改用通用附件能力。

2、调整合同费用接口为 study_id 语义,并补充合同、凭证、发票等附件类型的权限映射。

3、将合同费用新建和编辑改为抽屉流程,详情页与列表页复用同一编辑组件。

4、补充数据库迁移、附件列表、合同费用抽屉和权限场景测试,覆盖旧权限移除与新流程。
2026-06-04 11:07:13 +08:00
Cheng Zhou ab4f0d93ed 统一项目权限读取模型
1、合并列表与详情读取权限,统一使用 subjects:read、project_members:read、monitoring_issues:read 等业务读取 key。

2、增加历史读取权限 key 的兼容映射,确保存量项目权限覆盖值不会丢失。

3、同步前端权限工具、路由权限与权限管理页面,避免继续引用已合并的旧权限 key。

4、补充项目角色启停保护与抽屉未保存变更守卫,防止停用 PM 或仍有关联成员的角色。
2026-06-04 11:06:03 +08:00
Cheng Zhou 44d69c2d7b 清理全局角色残留并修复项目权限判断 2026-05-29 10:20:42 +08:00
Cheng Zhou 63457aab11 支持开发环境局域网登录测试 2026-05-29 09:39:18 +08:00
Cheng Zhou c9b677e96a 收紧分支环境安装流程 2026-05-28 10:57:49 +08:00
Cheng Zhou 8611bd66f8 补齐业务路由与页面权限控制 2026-05-28 10:56:28 +08:00
Cheng Zhou fa961f1391 新增电子试验主文件目录与文件归档 2026-05-28 10:54:47 +08:00
Cheng Zhou 31fcb7e6f2 按业务模块拆分附件权限 2026-05-28 10:53:00 +08:00
Cheng Zhou d2b41ae454 将知识库笔记迁移为注意事项 2026-05-28 10:52:05 +08:00
Cheng Zhou 8da7fc715c 整合合同费用并移除旧财务合同 2026-05-28 10:49:08 +08:00
Cheng Zhou 2c85742040 统一项目角色与接口权限配置 2026-05-28 10:48:33 +08:00
Cheng Zhou 6d1c98bcae 合并相同属地的IP统计 2026-05-26 15:19:19 +08:00
Cheng Zhou c909fc9387 优化前后端权限一致性 2026-05-26 14:53:17 +08:00
Cheng Zhou 41bd423be0 统一项目角色展示与预设文案 2026-05-26 14:46:01 +08:00
Cheng Zhou 3c168565ce 移除QA预设角色并收紧角色模板编辑 2026-05-26 11:32:14 +08:00
Cheng Zhou 6c2f61eebd chore: clean legacy setup artifacts 2026-05-25 14:35:24 +08:00
Cheng Zhou 934d114a29 feat(perm/frontend): PM 视角的权限管理界面与个人有效权限接入
- store/study 与 router 改为读取 /api-permissions/me 拉取当前用户在
  当前项目的有效权限,菜单与路由守卫据此判定,并在 PM 项目缺省时
  主动 ensureDefaultPmStudy。
- api/projectPermissions 暴露 fetchMyApiEndpointPermissions,并允许
  调用方关闭统一错误提示,便于在批量项目权限拉取场景下静默失败。
- 项目管理:Projects 页根据每个项目的有效权限决定项目入口的可点击
  状态,缺权限时禁用项目名跳转;ProjectDetail 据 setup_config 写权限
  渲染保存/回填/清空/发布按钮,并在无读取权限时提示并退出页面。
- 权限管理:PermissionManagement 切换为按角色提交,Admin 视角才能
  编辑 PM 行;按系统模块美化系统级权限展示并标注 PM 可访问项;项目
  成员表的角色下拉受 PM 等级约束,自定义角色入口下线。
- 监控:PermissionMonitoring/PermissionAccessLogs 增加 isAdmin 与
  showSecurityLog 入参,仅 ADMIN 才能看到底层安全日志与统计。
- ApiEndpointPermissions 表格根据当前用户角色禁用不可写行,避免
  误操作 PM 行;MODULE_LABELS 增加 setup_config 的中文展示。
- 测试同步覆盖以上行为:新版 router/Layout/Projects/PermissionManagement
  /PermissionAccessLogs/PermissionMonitoring/PermissionIpLocations 等
  组件均补足检测,并按需为相关组件提供 pinia + localStorage stub。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:38:54 +08:00
Cheng Zhou 747dd55225 feat(perm): 项目 PM 共管接口权限与监控并细化 PM 写权限边界
- deps 新增 list_active_pm_study_ids、is_active_project_pm 与
  require_admin_or_any_project_pm 依赖,用于把 PM 项目范围带进鉴权与
  监控。get_cra_site_scope 内部延后导入 site CRUD,避免循环依赖。
- system_permissions API 改用 PM/ADMIN 双角色入口,permissions/monitoring
  系统级权限新增 PM 配额,并细化访问日志、告警、监控指标的可见范围。
- members API 调整:项目 PM 仅可管理低于 PM 的项目角色,禁止互相
  改写或授予 PM。
- api_permissions API 增加 GET /api-permissions/me,返回当前用户在该
  项目的有效权限矩阵;保存权限矩阵时校验 PM 行为不被篡改。
- core/api_permissions:新增立项配置接口键、PM 默认拥有的监控/权限
  系统级条目,并在权限元信息中标注 PM 共享角色。
- core/project_permissions:role_has_api_permission 命中默认角色矩阵;
  replace_api_endpoint_permissions 改为部分更新且永不持久化 ADMIN/PM。
- studies setup-config 各端点改用接口级权限装饰器,与新的 setup_config
  权限键对齐。permission_monitor 新增 get_metrics 摘要供 PM 视图调用。
- 测试:新增 test_admin_pm_permissions 覆盖 PM 系统级权限、监控范围和
  成员管理边界;conftest 兼容 SA_UUID 列;权限相关用例同步移除已失效
  的 module_permission 链路。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:38:07 +08:00
Cheng Zhou dd2973c429 test(register): 校验注册请求不再接收角色字段
- test_registration 改用全模型 metadata 创建表并注入自定义 GUID 类型,
  以便 StudyMember 等关联表在 SQLite 测试库中正常工作。
- 注册请求负载移除 role 字段,新增断言验证用户默认角色为 PV 且不再
  生成 study_members 关联;新增 schema 级用例确认 role 不在
  UserRegisterRequest 模型字段中。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:37:26 +08:00
Cheng Zhou a2add43fa5 feat(subject): 参与者状态依赖筛选日期并支持后续编辑
- 未填写筛选日期的参与者不再默认进入 SCREENING,状态显示为占位符。
- SubjectUpdate 不再开放 status 入参,改由后端依据日期推导,并新增
  screening_date 字段允许 PM/CRA 后续补录筛选日期。
- 参与者管理页与详情页同步:详情页支持编辑筛选日期,列表页与详情页
  在没有筛选日期时显示占位符而非旧 enum 值。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:36:33 +08:00
Cheng Zhou f40e979c53 refactor(db): 抽出 GUID 类型并兼容 SQLite 的 JSONB 字段
- base_class.py 内置 GUID(TypeDecorator),PostgreSQL 走原生 UUID,
  SQLite 走 CHAR(36),UUID 在绑定/读取时统一转换。
- study_setup_config 与 study_setup_config_version 改用 JSONB().with_variant
  以便测试库使用 JSON 字段,生产仍保留 JSONB。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:36:02 +08:00
Cheng Zhou ffcf217142 chore: 移除已生成的角色 UAT 文档并加入忽略规则
将 docs/guides/role-uat 与 output/doc/role-uat 加入 .gitignore,
避免重复提交由脚本生成的角色 UAT 测试手册和导出文档。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:35:39 +08:00
Cheng Zhou fce671d7e0 docs: add role UAT test manuals 2026-05-21 17:25:25 +08:00
Cheng Zhou 78247a8149 Remove non-admin workbench 2026-05-21 15:48:19 +08:00
Cheng Zhou da6f2f2d41 feat: derive subject status from visits 2026-05-21 14:47:42 +08:00
Cheng Zhou 9305ced664 整理项目文档并优化权限监控与安装脚本 2026-05-21 11:39:00 +08:00
Cheng Zhou 6d682103f3 项目总览界面UI美化与入组数据统计修复
- 重构总览页面布局:卡片化设计、顶部标题栏、图标装饰
- 美化进度时间线:hover高亮、呼吸动画、渐变连接线
- 重写入组图表:去除边框、虚线网格、渐变柱子、柔和背景
- 修复入组统计:同时匹配enrollment_date和ENROLLED状态
- 移除adapter中hasEnrollmentStage过滤,显示真实入组数

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 16:53:36 +08:00
Cheng Zhou 5b97ea32ab 移除用户系统级角色,权限完全迁移至项目级管理
- 用户注册/创建不再需要选择角色,账号管理只管资料和状态
- 移除前后端所有系统级 role 字段的暴露,改用 is_admin 标识管理员
- PM(项目负责人)角色自动拥有全部项目权限且不可修改
- 系统管理员在项目中的成员身份不可被删除
- 管理界面全面美化

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 15:52:17 +08:00
Cheng Zhou 6cefa620e4 权限监控与管理界面全面美化
重新设计权限系统所有 UI 组件的视觉风格,统一配色、圆角、阴影和交互动效:
- 实时概览:统计卡片加图标和渐变色条,健康评分改为环形进度,告警改为卡片式
- 趋势分析:图表卡片加彩色图标标识,ECharts 配色升级为渐变面积填充
- 访问日志:指标卡片带图标,日志审计改为卡片式入口,IP排行前三高亮
- IP属地:工具栏重设计,排行列表前三渐变高亮,指标卡片统一新风格
- 系统级权限:从 el-table 改为自定义卡片列表,模块块独立圆角卡片
- 项目权限配置:空状态引导优化,成员表格加头像,工具栏加背景容器
- 角色概览卡片:加进度条可视化,hover 微动效
- 接口权限矩阵:工具栏分离布局,表格圆角包裹
- 角色管理抽屉:侧边栏选中态渐变,操作行 hover 高亮

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 14:36:35 +08:00
Cheng Zhou e95eeed90e 完善权限缓存与监控指标 2026-05-19 16:03:27 +08:00
Cheng Zhou f8a959b801 权限管理界面重构:角色概览、生效管理与编辑权限整合
【界面优化】
- 移除权限模板列表和角色概览卡片上的"系统预设"标签,视觉上减少噪音
- 将 PermissionTemplateSelector 改为纯展示组件,重命名为"角色权限概览"
- 移除"应用此模板"按钮及预览面板,卡片仅展示各角色权限统计
- 角色描述改为鼠标悬浮 tooltip 显示,节省卡片空间
- 未生效角色以虚线边框 + 降低透明度区分,悬浮提示状态说明

【生效管理】
- Study 模型新增 active_roles JSON 字段,记录项目已生效角色列表
- 新增 /studies/{study_id}/active-roles GET/PUT 接口
- 数据库迁移 20260518_01:studies 表添加 active_roles 列
- 成员管理的项目角色下拉列表仅显示已生效角色,未生效角色不可分配

【模板管理抽屉重构】
- 抽屉改为三标签页:模板列表 / 生效管理 / 编辑权限
- 生效管理:开关控制各角色生效状态,保存后同步后端
- 编辑权限:左右分栏设计,左侧角色列表点击选中,右侧实时展示权限勾选
- 原独立的角色权限编辑抽屉合并至此,角色概览卡片"编辑权限"直接跳转对应标签页

【操作类型标签统一】
- 系统级权限和编辑权限界面的操作类型标签统一使用细分类型
- 操作类型从粗粒度 read/write 细化为 read/create/update/delete/export
- 颜色规范:读取灰色、创建绿色、更新黄色、删除红色、导出无色
- 权限模板管理接口限制为 ADMIN 角色,修复原先权限过宽的问题

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-05-19 08:48:07 +08:00
Cheng Zhou 20ce6bccef 完全移除模块级权限系统,迁移至接口级权限
后端:
- 删除 StudyRolePermission 模型和 project_permissions API 文件
- 重写 project_permissions.py core,移除所有模块级权限函数
- 重写 permission_cache.py,移除模块级权限缓存逻辑
- 新增权限模板功能(PermissionTemplate 模型、API、服务层)
- 新增 permission_templates 数据库迁移
- 迁移 8 个模块(attachments、audit_logs、dashboard、faqs、
  faq_categories、fees_attachments、knowledge_notes、
  material_equipments、overview、subject_histories、subject_pds)
  至接口级权限检查
- 删除所有模块级权限相关测试文件,新增权限模板测试

前端:
- 删除 ProjectPermissions.vue 和 ProjectPermissionsModule.vue
- 重写 projectRoutePermissions.ts,改为基于接口级权限格式
- 更新 store/study.ts、router/index.ts、AuditLogs.vue、Projects.vue
  中的权限 API 调用,从 fetchProjectRolePermissions 改为
  fetchApiEndpointPermissions
- 清理 types/api.ts 中的旧模块级权限类型定义
- 新增 PermissionTemplateSelector.vue 组件
- 更新权限管理页面,移除模块级权限 tab

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 09:07:43 +08:00
Cheng Zhou 3b1bdc2070 权限系统评估:模块级权限移除可行性分析
## 评估结果

### 主要发现
1. 68个API端点已成功迁移到接口级权限
2. 仍有~40个API端点未迁移(attachments, dashboard, faqs等)
3. 系统中仍有15处代码调用role_has_project_permission()
4. 权限管理API仍依赖模块级权限

### 评估结论
- ⚠️ 模块级权限暂不可移除
- 需要先迁移剩余的~40个API端点
- 需要更新权限管理API
- 预计可在2026年10月完全移除

### 建议时间表
- 第1阶段:迁移剩余端点 (2-3周)
- 第2阶段:更新权限管理API (1周)
- 第3阶段:代码清理 (1-2周)
- 第4阶段:数据库迁移 (1-2周)
- 完全移除日期:2026年10月

### 新增文档
1. REMOVE_MODULE_LEVEL_PERMISSIONS_ASSESSMENT.md
   - 详细的移除评估和计划

2. MODULE_LEVEL_PERMISSIONS_DEPENDENCY_ANALYSIS.md
   - 依赖关系详细分析
   - 未迁移端点清单
   - 修订的移除计划

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 12:46:45 +08:00
Cheng Zhou 3630b9000f 权限系统迁移完成:接口级权限 + 前置权限检查
## 核心改进
- 完全迁移到接口级权限(68个API端点)
- 实现前置权限检查机制,解决跨模块数据访问权限问题
- 添加权限管理API端点,支持前置权限查询

## 关键变更
1. 权限配置系统
   - 添加OPERATION_PREREQUISITES映射表
   - 所有操作配置前置权限依赖

2. 权限检查函数
   - role_has_api_permission()支持前置权限检查
   - get_missing_prerequisites()获取缺失权限列表

3. 权限管理API
   - GET /api-permissions/operations - 获取所有操作及前置权限
   - GET /api-permissions/operations/prerequisites - 获取前置权限依赖
   - GET /api-permissions/{endpoint_key}/prerequisites - 检查缺失权限

4. API端点迁移
   - 第1批:subjects, visits, aes, monitoring_visit_issues (23个)
   - 第2批:members, sites, project_milestones (11个)
   - 第3批:finance_contracts, fees_contracts, drug_shipments (15个)
   - 第4批:startup endpoints (19个)

## 测试验证
- 单元测试:24个测试全部通过
- 集成测试:22个迁移端点测试通过
- 前置权限测试:12个测试全部通过
- 总计:46个测试全部通过

## 向后兼容性
- 模块级权限表保留用于历史数据
- 接口级权限未配置时自动回退到模块级权限
- 现有权限配置继续有效

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 12:44:18 +08:00
Cheng Zhou 5327e00cf1 将接口级权限改为业务语言
1. 更新权限配置格式
   - 从 "METHOD:/path" 改为 "module:operation"
   - 例如: "subjects:create", "visits:update", "risk_issues:delete"
   - 更易理解和管理

2. 新增权限操作列表 API
   - GET /api/v1/api-permissions/operations
   - 返回所有权限操作及其描述

3. 更新前端权限管理界面
   - 显示业务语言的权限名称
   - 按模块和操作类型筛选
   - 改进用户体验

4. 修复导入错误
   - 更新 MODULE_TO_ENDPOINTS 为 OPERATION_TO_ENDPOINTS
   - 禁用 API 端点注册表初始化

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 11:00:41 +08:00
Cheng Zhou 6eea6b35fd 修复权限管理页面错误
1. 修复 ApiPermissions.vue 中的数据绑定错误
   - 从 axios 响应中正确提取 .data 属性
   - 修复 loadPermissionData、loadMonitoringData、save 函数

2. 禁用 FastAPI 响应验证
   - 在 api_permissions.py 中添加 response_model=None
   - 避免 Pydantic 验证错误

3. 注册权限监控 API 路由
   - 在 router.py 中导入并注册 permission_monitoring 模块
   - 修改 permission_monitoring.py 的路由前缀

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 10:41:16 +08:00
Cheng Zhou ebbb6aed25 权限管理:修复前端导航指向新的接口级权限管理页面
- 修改 Projects.vue 中权限管理按钮导航到新的 /api-permissions 路由
- 前端重新构建以应用 ApiPermissions 组件的最新更改
- 用户点击权限管理按钮现在会进入三标签页面(模块级、接口级、监控)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 10:18:11 +08:00
Cheng Zhou cb36606607 修复路由前缀重复导致的502错误
问题:api_permissions.py 中的路由已包含 /studies/{study_id},
但在 router.py 中又添加了相同前缀,导致路径重复:
/studies/{study_id}/api-permissions/studies/{study_id}

修复:移除 api_permissions.py 中的 /studies/{study_id} 路径前缀,
只保留相对路径 "" 和 "",由 router.py 的 include_router 提供前缀。

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:50:28 +08:00
Cheng Zhou e0c165e194 文档:Docker 启动问题修复报告
添加完整的 Docker 启动问题修复报告,包括:
- 4 个问题的详细说明
- 每个问题的原因分析
- 具体的修复方案
- 验证结果和访问方式

所有问题已解决,应用现在可以正常启动。

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:42:38 +08:00
Cheng Zhou 50106452ac 修复:添加缺失的 PROJECT_PERMISSION_ROLES 常量
问题:Docker 启动时后端导入错误,缺少 PROJECT_PERMISSION_ROLES
原因:api_permissions.py 中定义了 API_ENDPOINT_PERMISSIONS 但没有定义 PROJECT_PERMISSION_ROLES
解决:在 api_permissions.py 末尾添加 PROJECT_PERMISSION_ROLES 常量

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:40:34 +08:00
Cheng Zhou fdf640692d 修复:解决后端循环导入问题
问题:Docker 启动时后端服务崩溃,提示循环导入错误
原因:permission_cache.py 在模块级别导入 project_permissions.py,而后者也导入前者
解决:使用延迟导入,在方法内部导入所需的函数

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:34:54 +08:00
Cheng Zhou 7b397640b9 修复:添加 Vite 路径别名配置
问题:Docker 构建时 Vite 无法解析 @/ 路径别名
原因:vite.config.ts 缺少 resolve.alias 配置
解决:添加 @ 别名指向 ./src 目录

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:31:40 +08:00
Cheng Zhou 77b16ffa82 修复:添加 sass-embedded 依赖以支持 SCSS 编译
问题:Docker 构建时前端编译失败,缺少 sass-embedded 依赖
原因:新增的 Vue 组件使用了 SCSS 样式,需要 sass-embedded 来编译
解决:在 package.json 的 devDependencies 中添加 sass-embedded

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:29:42 +08:00
Cheng Zhou 4a70c1df08 第11阶段完成:前端权限管理交互实现
完成内容:
- 实现接口级权限管理UI
- 实现权限系统监控仪表板
- 更新API客户端,支持8个新函数
- 新增6个TypeScript类型定义
- 创建4个Vue组件
- 添加15+个单元测试
- 编写集成指南和完成总结

新增文件:
- ApiPermissions.vue: 权限管理主页面
- ProjectPermissionsModule.vue: 模块级权限组件
- ApiEndpointPermissions.vue: 接口级权限组件
- PermissionMonitoring.vue: 监控仪表板组件
- 3个测试文件
- 2个文档文件

修改文件:
- projectPermissions.ts: 新增8个API函数
- types/api.ts: 新增6个类型定义
- router/index.ts: 新增路由配置
- zh-CN.ts: 新增国际化文本

特点:
- 完整的TypeScript支持
- 向后兼容现有权限系统
- 灵活的搜索和筛选
- 实时监控和告警
- 详细的文档说明

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:25:02 +08:00
Cheng Zhou b9c87046fa 前端权限管理:添加集成指南文档
新增文档:
- FRONTEND_PERMISSION_INTEGRATION.md: 前端权限管理集成指南

文档内容:
- 功能特性说明
- API 客户端使用示例
- 组件使用说明
- 类型定义参考
- 最佳实践建议
- 故障排除指南
- 后续改进方向

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:23:56 +08:00
Cheng Zhou 35acf96d6b 前端权限管理:添加单元测试
新增测试文件:
- ApiPermissions.test.ts: 权限管理主页面测试
- ApiEndpointPermissions.test.ts: 接口级权限矩阵组件测试
- PermissionMonitoring.test.ts: 权限监控仪表板组件测试

测试覆盖:
- 组件渲染验证
- 事件发出验证
- 搜索和筛选功能测试
- 数据显示验证

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:23:17 +08:00
Cheng Zhou c73c00d932 前端权限管理:修复组件数据结构和路由参数处理
修复内容:
- 修复 ApiPermissions.vue 中的路由参数处理,支持 id 和 projectId 两种参数
- 修复 ApiEndpointPermissions.vue 中的权限数据结构处理
- 修复 PermissionMonitoring.vue 中的缓存统计显示
- 修复 ProjectPermissionsModule.vue 中的权限矩阵更新逻辑
- 优化保存逻辑,保存后重新加载数据以确保同步

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-14 09:21:33 +08:00