Commit Graph

299 Commits

Author SHA1 Message Date
Cheng Zhou b25055775e 完善邮件验证与密码重置安全流程 2026-06-30 09:44:24 +08:00
Cheng Zhou 6c2bcc59b2 调整账号注册与删除流程 2026-06-29 16:25:04 +08:00
Cheng Zhou e242e067f0 feat(ui): 美化忘记密码页面视觉风格
- 重构整体布局为极光渐变背景 + 居中毛玻璃卡片设计
- 新增浮动极光球光效(aurora-1/2/3)与旋转几何圆环装饰动效
- 卡片采用半透明磨砂玻璃(backdrop-filter: blur(40px)),阴影层次丰富
- 步骤指引改为带渐变编号圆圈的卡片列表,悬停有微动效
- 联系方式区块增加图标 + 悬停高亮交互
- 返回登录按钮增加光泽扫光动画与上浮效果
- 完整适配移动端响应式(max-width: 640px)
2026-06-29 11:31:10 +08:00
Cheng Zhou c7ca97a6d6 feat(ui): 优化登录与注册页面视觉风格
- 统一登录页(Login.vue)左侧品牌文案,移除虚假 AI 宣传,
  改为准确描述系统实际功能:项目全流程管理、合规核查与
  数据溯源、偏差与安全事件管理
- 重构注册页(Register.vue)为与登录页一致的明亮极光双栏布局:
  · 左侧:蓝紫渐变品牌面板 + 特性卡片 + 入场动效
  · 右侧:纯白背景 + 下划线风格输入框 + 蓝色 #2563eb 主色调
  · 步骤进度条、按钮、复选框配色全部对齐登录页风格
  · 小屏(< 900px)自动隐藏左侧品牌面板,右侧全屏适配
2026-06-29 11:22:56 +08:00
Cheng Zhou f94acebd1a Merge branch 'dev'
Storage Persistence Guard / storage-persistence-audit (push) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (pull_request) Has been cancelled
2026-06-24 10:51:56 +08:00
Cheng Zhou f9a9f7eafe 环境配置统一以 .env 为单一事实来源,移除 .ctms-env
- 删除 .ctms-env:环境名由 .env 的 COMPOSE_PROJECT_NAME 反推
  (ctms_detect_env),健康检查地址改存 .env 的 CTMS_BASE_URL
- prepare_env_file 由“已存在则整体跳过”改为逐项探测补全:
  身份类缺失补目标值、密钥类缺失/空才生成、已有值一律不动
- resolve_effective_config 放宽为“冲突才致命”:身份类缺失交给
  补全,仅 COMPOSE_PROJECT_NAME/ENV 与目标环境冲突时报错停止
  (防止覆盖后孤立旧环境容器)
- 新增 ctms_env_has_key 区分“键缺失”与“键存在但空值”
  (dev 的 LOGIN_RSA_PRIVATE_KEY= 是合法空值)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:48:27 +08:00
Cheng Zhou b1c55abb10 Merge branch 'dev'
Storage Persistence Guard / storage-persistence-audit (push) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (pull_request) Has been cancelled
2026-06-24 09:31:43 +08:00
Cheng Zhou 24d5b7445f 滚动更新新增 Git 访问方式选择(HTTPS/SSH)及工作区变更预检
- install.sh:
  - 滚动更新流程新增「选择 Git 访问方式」步骤(HTTPS 登录 / SSH 访问)
  - SSH 方式支持指定私钥文件路径或粘贴私钥内容(临时文件用后即删)
  - 仓库地址输入回填当前 remote(同协议时)作为默认值
  - 选环境后立即检测工作区变更,提供暂存/放弃/取消处理
  - 更新结束后按 HEAD 是否变化决定自动恢复暂存或提示手动恢复
- scripts/update.sh:
  - 新增 --ssh-key 参数,SSH 协议下通过 GIT_SSH_COMMAND -i 指定私钥
  - 新增 --skip-dirty-check 参数,供 install.sh 预检后透传
- scripts/common.sh:
  - ctms_ask_line 提示语改输出到 stderr,避免被命令替换吞掉

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 09:26:54 +08:00
Cheng Zhou 2df8d60172 手动选择环境与配置不一致时自动更新 .ctms-env
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:26:54 +08:00
Cheng Zhou b83c900109 环境菜单标题显示已识别的环境名
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:23:50 +08:00
Cheng Zhou 20b414e741 环境菜单默认项显示为 dev(默认) 格式,操作菜单移除标签
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:22:36 +08:00
Cheng Zhou a81647a4f8 环境菜单中对自动识别的默认项标注 [自动]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:18:11 +08:00
Cheng Zhou b72b5314a0 环境选择菜单始终显示,.ctms-env 配置作为默认选中项
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:14:05 +08:00
Cheng Zhou b126a759f0 有 .ctms-env 配置时直接展示部署环境,跳过选择菜单
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:09:46 +08:00
Cheng Zhou 05cd74fd43 修复滚动更新跳过环境选择的问题
.ctms-env 有配置时不再自动采用,改为作为菜单默认选中项,
用户仍可切换到其他环境。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 22:07:34 +08:00
Cheng Zhou e531ce75f9 Merge branch 'dev'
Storage Persistence Guard / storage-persistence-audit (push) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (pull_request) Has been cancelled
2026-06-23 17:20:57 +08:00
Cheng Zhou 4bbc234b53 同步工作区更新:优化安装脚本与更新脚本,添加文档与测试脚本 2026-06-23 17:18:34 +08:00
Cheng Zhou efc325568d 美化终端脚本 UI 并修复对齐与闪屏
- 配色体系:256 色语义色板(primary/accent/success/warn/danger)与统一图标常量
- 修复右边框对齐:ctms_text_width 用 perl 精确计算显示宽度,剥离 sgr0 的 \e(B 序列
- 修复菜单闪屏:改用光标归位原地覆盖重绘,去掉每帧清屏
- 美化各面板:install.sh banner/确认/成功框、根菜单、status.sh 资源表格,标签列对齐
- 新增 ctms_pad_right 按显示宽度填充含中文标签

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 15:24:22 +08:00
Cheng Zhou c351ca59c4 整理测试代码并清理文档引用 2026-06-23 09:21:57 +08:00
Cheng Zhou 79d2ee344c 加固部署配置与敏感路径拦截
Storage Persistence Guard / storage-persistence-audit (pull_request) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (push) Has been cancelled
2026-06-22 15:35:25 +08:00
Cheng Zhou 6056c8364a 修复开发容器启动并加固部署配置 2026-06-22 15:35:00 +08:00
Cheng Zhou 360a2ba2b1 添加前端设计技能配置 2026-06-17 17:26:22 +08:00
Cheng Zhou e507ab98cb 增强开发部署构建配置 2026-06-17 17:23:13 +08:00
Cheng Zhou 9b2b8e90f6 压缩项目总览展示密度 2026-06-17 17:22:53 +08:00
Cheng Zhou 53249daf8d 优化顶栏导航与登录请求体验 2026-06-17 17:22:22 +08:00
Cheng Zhou 061792c73f 完善权限监控与安全中心 2026-06-17 17:21:48 +08:00
Cheng Zhou 1886765db8 拆分系统监测模块并统一运维化文案 2026-06-11 11:06:59 +08:00
Cheng Zhou b7484c8e01 优化个人中心与界面交互 2026-06-11 09:09:17 +08:00
Cheng Zhou 84e55af8fe 优化后台界面与无操作退出体验 2026-06-10 15:20:06 +08:00
Cheng Zhou ea3f19e241 完善审计日志展示与导出权限 2026-06-10 10:20:04 +08:00
Cheng Zhou 1fef12cd86 fix(faq): persist active defaults for medical consults 2026-06-09 09:01:34 +08:00
Cheng Zhou d472b8410e fix(faq): repair category schema and icons 2026-06-08 13:38:09 +08:00
Cheng Zhou 30e2398400 fix(router): check system permissions against target project 2026-06-08 11:08:23 +08:00
Cheng Zhou 8cd8c38900 feat(ia): polish project operation workspaces 2026-06-08 11:06:07 +08:00
Cheng Zhou 834b4f1d48 feat(documents): refresh detail pages and attachment cards 2026-06-08 11:03:34 +08:00
Cheng Zhou a3f6a04f35 feat(subjects): add visit drawer and editable screening dates 2026-06-08 11:01:32 +08:00
Cheng Zhou e5ed18c3cd feat(faq): refine category icons and project faq flows 2026-06-08 10:59:32 +08:00
Cheng Zhou f6e5a4c744 feat: enable dev frontend hot reload 2026-06-04 16:57:24 +08:00
Cheng Zhou e78bb04c4b 修正项目访问与角色排序体验
- 登录成功后按用户恢复上次项目,管理员优先选择启用项目\n- 项目详情路由增加 setup_config:read 权限校验,未授权时回到可访问页面\n- 项目管理操作按当前项目行角色读取权限,避免误用首个角色权限\n- 角色模板排序中固定 PM 优先,保持角色列表、生效管理和权限编辑器顺序一致\n- 补充登录、路由、项目管理和角色排序相关测试
2026-06-04 16:31:56 +08:00
Cheng Zhou 0b3a4d4d31 规范审计日志目标名称展示
- 药品运输审计日志写入运单号、批号或中心名称作为可读目标名\n- FAQ 分类审计日志写入分类名称,删除时提前保留展示名称\n- 前端审计归一化隐藏 UUID-only 目标名,并清理旧文本中的 UUID 标识\n- 新增审计归一化测试覆盖 FAQ 分类和药品运输记录
2026-06-04 16:30:54 +08:00
Cheng Zhou 4ea0e88c98 优化中心联系人展示名称解析
- 新增中心联系人展示名解析服务,支持从逗号分隔用户 ID 解析姓名\n- 中心列表接口返回 contact_display,避免前端依赖项目成员权限才能展示联系人姓名\n- 中心管理和立项会议授权页面优先使用后端联系人展示名\n- 补充联系人解析服务测试和立项会议授权页面展示顺序测试
2026-06-04 16:30:17 +08:00
Cheng Zhou d6452e3f9d 完善项目权限前置依赖保存校验
- 以接口权限定义中的 prerequisite_permissions 作为前置依赖单一事实源,生成运行时前置权限映射\n- 保存项目角色权限前预检缺失前置权限与受影响下游权限,未确认时返回 409 调整详情\n- 确认保存时自动合并补齐前置权限与取消下游权限,并提供有效权限矩阵读取接口\n- 前端角色权限编辑改为保存时执行依赖校验,弹窗展示需补充前置权限和受影响下游权限\n- 新增编辑权限取消按钮,清理权限选择即时确认弹窗残留\n- 补充后端接口测试、前端权限编辑测试与优化设计文档
2026-06-04 16:29:44 +08:00
Cheng Zhou 02f2c6660b 补充权限与物资实现计划
1、记录项目权限一致性实施计划,明确前后端权限矩阵以接口权限为准。

2、列出快捷入口、参与者操作、路由权限和权限契约测试的实施任务。

3、记录物资设备详情页实施计划,覆盖路由、详情页和列表导航入口。

4、保留验证步骤与约束说明,便于后续按计划复查实现范围。
2026-06-04 11:13:28 +08:00
Cheng Zhou 41968384b5 完善后台管理与测试支撑
1、为后台用户列表增加关键词和状态筛选,后端同步支持过滤与总数统计。

2、创建用户时要求填写初始密码,并补充前端校验和自动填充隔离。

3、优化项目管理列表角色展示、项目详情抽屉脏数据保护和审计详情抽屉关闭体验。

4、清理旧费用附件关联、统一测试模型注册,并更新迁移端点和注册筛选测试。
2026-06-04 11:12:40 +08:00
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