From d5ec548602d3dab5effe0958480306deba1631fd Mon Sep 17 00:00:00 2001 From: "william.wan" Date: Mon, 16 Feb 2026 19:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=B4=E7=A0=94=E5=AE=89?= =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E7=AB=AF=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PRD/RMO保险报价流程.md | 119 --- PRD/RMO网站需求文档.md | 386 ++++---- PRD/临床试验责任保险报价流程.md | 128 ++- src/components/Breadcrumb.vue | 6 + src/components/DashboardLayout.vue | 15 +- src/pages/dashboard/ProjectQuotes.css | 493 ++++++++++ src/router/index.ts | 7 + src/stores/auth.ts | 6 +- src/views/Login.vue | 2 +- src/views/dashboard/ProjectQuotes.vue | 524 +++++++---- src/views/dashboard/QuoteCompare.vue | 293 ++++++ .../dashboard/smart-ops/QuoteTaskDetail.vue | 872 ++++++++++++++++++ .../dashboard/smart-ops/QuoteTaskList.vue | 584 ++++++++++++ 13 files changed, 2939 insertions(+), 496 deletions(-) delete mode 100644 PRD/RMO保险报价流程.md create mode 100644 src/views/dashboard/QuoteCompare.vue create mode 100644 src/views/dashboard/smart-ops/QuoteTaskDetail.vue create mode 100644 src/views/dashboard/smart-ops/QuoteTaskList.vue diff --git a/PRD/RMO保险报价流程.md b/PRD/RMO保险报价流程.md deleted file mode 100644 index c2c7b66..0000000 --- a/PRD/RMO保险报价流程.md +++ /dev/null @@ -1,119 +0,0 @@ -# 临床试验责任保险报价流程 - -> 基于 ProcessOn 流程图(RMO保险报价.pos)整理 - -## 一、泳道角色 - -| 泳道 | 说明 | -|------|------| -| **申办者** | 投保人(采购、项目经理等) | -| **系统** | RMO 网站及 Smart-Ops 系统 | -| **临研安/华泰** | 服务方(TPA 经纪) | -| **保司** | 太保/大地、其他保险公司 | - -## 二、流程阶段 - -### 阶段一:信息收集与 AI 报价 - -1. **登录**(申办者) - - 申办者登录系统 - -2. **填写项目信息**(申办者) - - 上传项目方案、知情同意书或手动填写报价必备资料 - - 可通过邮件/小程序通知进入此步骤 - -3. **标准报价材料**(系统) - - 系统生成标准报价材料 - -4. **AI 报价**(系统) - - 基于标准材料进行 AI 报价 - -5. **报价任务创建**(系统) - - 生成报价任务文档 - - 通过 **API Smart-Ops** 与 Smart-Ops 系统对接 - -6. **报价任务**(临研安/华泰) - - 每保司报价生成一条任务 - - 跟踪每一任务的完成状态 - -7. **报价**(临研安/华泰) - - 发件人:RMO@vdano.com - - 向各保司发起报价请求 - -8. **初步评估**(保司) - - 太保/大地、其他保司分别进行初步评估 - -9. **核保通过**(保司) - - 保司核保通过后,生成正式报价 - -10. **正式报价**(保司) - - 输出正式报价文档 - -### 阶段二:全保司报价 - -11. **报价任务完成**(临研安/华泰) - - 汇总各保司报价结果 - -12. **页面对比呈现**(临研安/华泰) - - 保司回复到:RMO@vdano.com - - 整理形成可对比的报价方式,呈现给申办者 - -13. **价格确定**(保司) - - 确定最终报价 - -### 阶段三:议价 - -14. **是否含报价?**(判断) - - **否**:邮件/小程序通知 → 返回「填写项目信息」 - - **是**:进入「再次登录」流程 - -15. **再次登录?**(申办者) - - 申办者再次登录系统 - -16. **在线议价**(临研安/华泰) - - 申办者与经纪人在线沟通、调整报价 - -17. **主动人工跟进**(临研安/华泰) - - 经纪人对未完成报价的保司进行主动跟进 - -## 三、流程示意(Mermaid) - -```mermaid -flowchart TB - subgraph 信息收集与AI报价 - A[登录] --> B[填写项目信息] - B --> C[标准报价材料] - C --> D[AI报价] - D --> E[报价任务创建] - E --> F[报价任务] - F --> G[报价] - G --> H[初步评估] - H --> I[太保/大地] - H --> J[其他保司] - I --> K[核保通过] - J --> K - K --> L[正式报价] - end - - subgraph 全保司报价 - L --> M[报价任务完成] - M --> N[页面对比呈现] - N --> O[价格确定] - end - - subgraph 议价 - O --> P{是否含报价?} - P -->|否| Q[邮件/小程序通知] - Q --> B - P -->|是| R[再次登录] - R --> S[在线议价] - S --> T[主动人工跟进] - end -``` - -## 四、关键说明 - -- **API Smart-Ops**:报价信息通过 API 传输到 Smart-Ops 系统,用于后续报价、投保、理赔等流程 -- **任务跟踪**:每保司报价生成一条任务,系统跟踪每一任务的完成状态 -- **回复渠道**:保司报价回复至 RMO@vdano.com -- **数据归属**:所有报价数据属于申办者,在投保人租户下呈现 diff --git a/PRD/RMO网站需求文档.md b/PRD/RMO网站需求文档.md index fd3f27b..2967f0d 100644 --- a/PRD/RMO网站需求文档.md +++ b/PRD/RMO网站需求文档.md @@ -45,98 +45,109 @@ #### 2.1.1 免登录浏览区(已实现) ``` 首页(免登录) -├── 主页 -│ ├── Banner(紧凑型):生命科学风险管理的保险与保证方案;含「获取报价」入口 -│ ├── 风险管理体系 -│ │ ├── 法律法规 -│ │ ├── 实践指南 -│ │ ├── 行业动态 -│ │ └── 药物警戒 -│ └── 角色专区(各方职责快捷入口) +├── 首页 +│ ├── Hero:赋能生命科学风险管理,患者安全始终第一;含「获取报价」「了解更多」入口 +│ ├── RMO价值主张 / 解决方案 +│ ├── 核心能力(患者安全专家、合作保司、团标与数字化、服务时限) +│ ├── 知识资源(法规指南、保险知识、PV与保险、常见问题) +│ └── 联系我们 │ -├── 风险职责(原"各方关注") -│ ├── 风险职责总览 -│ ├── 申办者职责 -│ ├── 持有人职责 -│ ├── 受试者专区 -│ ├── 研究中心 -│ └── CXO职责 +├── 关于RMO(下拉) +│ ├── RMO概述(/about/overview) +│ ├── 合作保司、专家经纪、第三方机构 +│ └── 风险职责 +│ ├── 风险职责总览(/concern) +│ ├── 申办者职责(/sponsor) +│ ├── 持有人职责(/holder) +│ ├── 研究中心(/institution) +│ ├── 参与者(/participant) +│ └── CXO职责(/service-provider) │ -├── 临床试验(原RMO模式) +├── 解决方案(下拉) +│ ├── 药物警戒:PV服务、AI工具 +│ ├── 临床保险:保险方案(/rmo-mode/insurance)、保证设计(/rmo-mode/guarantee) +│ └── 产品保险:保险方案、保证设计(/post-market/*) +│ +├── 知识资源(下拉) +│ ├── PV知识(法规指南、AI应用) +│ ├── 保险知识(基础知识、国外比较、条款标准) +│ ├── 常见问题(/faq,含职责逻辑、保障范围、PV与保险) +│ └── 学习中心(案例学习、培训视频、考试中心) +│ +├── 临床试验(/rmo-mode) │ ├── 临床试验模块首页 -│ ├── 保险方案(含「获取报价」入口) +│ ├── 保险方案(含「获取报价」入口,跳转项目报价页) │ ├── 保证方案 │ └── 保险保证 │ -├── 上市应用 +├── 上市应用(/post-market) +├── 海外风险(/overseas) │ -├── 海外风险 -│ -├── 资源中心(原"体系管理") +├── 资源中心(/system-management) │ ├── 资源中心首页 +│ ├── 法律法规(/laws) │ ├── 实践指南 │ ├── 培训材料 │ └── 常见问题 │ -└── 登录(右上角) +├── 联系我们(/contact) +└── 登录(右上角,/login) ``` -### 2.1.2 登录后系统区(待开发) - -# -登录后依然可见登录前的菜单。如果用户没有账号,引导其注册账号。所有账号将会有管理员进行审批,以使其获得查看数据的权限。 +### 2.1.2 登录后系统区(已实现) +登录后使用 DashboardLayout,顶部保留首页、风险职责、临床试验、上市应用、海外风险、资源中心等导航入口;侧边栏根据角色显示相应菜单。用户由管理员创建账号,无需自助注册。 ``` -登录后系统(需权限验证) -├── 工作台 -│ ├── 我的保障 -│ ├── 我的项目 -│ ├── 待办任务 -│ └── 快捷方式(获取报价、申请保障、申请理赔) +登录后系统(需权限验证,已实现) +├── 工作台(/dashboard) +│ ├── 数据统计卡片(询价项目、生效保障、全部项目) +│ ├── 待处理任务(待处理的报价项目、待处理的理赔) +│ └── 快捷方式(投保人可见:获取报价、报价页面、申请理赔、方案介绍、培训支持) │ -├── 项目列表 -│ ├── 项目列表(试验项目编号、试验题目、保障范围、承保公司、承保状态) -│ └── 项目明细(详细信息、相关文档、操作按钮) +├── 项目报价(需权限:投保人,/dashboard/project-quotes) +│ └── PV报价、临床试验保险报价、产品责任保险报价(分表单提交) │ -├── 询价列表(需权限:保险人) -│ └── 询价列表(申办者、项目编号、试验题目、保障范围、特别约定、成交情况) +├── 项目列表(需权限:投保人,/dashboard/projects) +│ ├── 项目列表 +│ └── 项目明细(/dashboard/projects/:id) │ -├── 理赔进度(需权限:投保人、保险人) -│ └── 理赔评估列表(项目编号、试验题目、保障范围、承保公司、承保状态) +├── 询价列表(需权限:保险人,/dashboard/inquiries) +│ └── 询价列表、询价明细(/dashboard/inquiries/:id) │ -└── 智能工具(所有登录用户可见) +├── 理赔进度(需权限:投保人、保险人,/dashboard/claims) +│ └── 理赔评估列表、理赔详情(/dashboard/claims/:id) +│ +└── 智能工具(/dashboard/tools) ├── 保费测算工具(所有登录用户可见) ├── ICF智能修改(需权限:投保人) - └── 方案风险评分(需权限:投保人) + ├── 方案风险评分(需权限:投保人) + ├── 方案风险评估(所有登录用户可见,AI 评估方案风险) + └── 药安查(所有登录用户可见,药物安全数据查询) ``` ### 2.2 路由与页面结构 #### 2.2.0 路由架构说明 -- **免登录浏览区路由**:所有路由在 `App.tsx` 中定义,使用 `Layout` 组件包裹(Header + Footer) -- **登录后系统路由**:所有 `/dashboard/*` 路由需使用 `ProtectedRoute` 包裹,使用 `DashboardLayout` 组件(侧边栏 + 主内容区) -- **路由守卫**:未登录用户访问登录后页面应重定向到 `/login` +- **免登录浏览区路由**:在 `router/index.ts` 中定义,使用 `Layout` 组件包裹(Header + Footer + Breadcrumb) +- **登录后系统路由**:所有 `/dashboard/*` 路由使用 `ProtectedRoute` 包裹,内层使用 `DashboardLayout`(侧边栏 + 主内容区) +- **路由守卫**:`router.beforeEach` 检查登录状态,未登录访问 `/dashboard` 重定向至 `/login` 并携带 `from` 查询参数 ### 2.3 核心页面详细需求 #### 2.2.1 首页(已实现) **核心元素:** -- **Banner区域**(紧凑型) - - 标题:生命科学风险管理的保险与保证方案 - - 按钮1:保险方案(链接到 `/rmo-mode/insurance`) - - 按钮2:保证方案(链接到 `/rmo-mode/guarantee`) - - 按钮3:获取报价(打开报价申请流程:弹窗或跳转报价页面,见 2.3.2.2) -- **风险管理体系区域** - - 展示四个环节:法律法规、实践指南、行业动态、药物警戒 - - 以卡片形式展示,带图标和说明文字 -- **角色专区**(各方职责快捷入口) - - 申办者职责(链接到 `/sponsor`) - - 持有人职责(链接到 `/holder`) - - 研究中心(链接到 `/institution`) - - 受试者专区(链接到 `/participant`) - - CXO职责(链接到 `/service-provider`) +- **Hero 区域**(全屏滚动) + - 标题:赋能生命科学风险管理 + - 副标题:患者安全始终第一 + - 按钮1:了解更多(链接到 `/about/overview`) + - 按钮2:获取报价(未登录时引导登录,已登录跳转 `/dashboard/project-quotes`) +- **RMO 价值主张/解决方案**(RmoValueProposition 组件) +- **核心能力**(卡片展示) + - 100+ 患者安全专家、10+ 合作保司、1st 团标与数字化、7/15 服务时限 +- **知识资源**(快捷入口) + - 法规指南、保险知识、PV与保险、常见问题 +- **联系我们**(入口链接) **交互要求:** -- Banner区域紧凑型设计 +- 全屏分节滚动,带指示点导航 - 响应式设计,适配不同屏幕尺寸 -- 所有链接按钮可点击跳转到对应页面 #### 2.2.2 临床试验页面(原RMO模式,已实现) **路由结构:** @@ -148,18 +159,12 @@ **内容模块:** 1. **保险方案页面**(已实现) - - 基础保障、全面保障说明 - - 保险条款标准核心内容 - - **获取报价入口**:页面内提供「获取报价」按钮,点击后打开报价申请流程(弹窗或报价页面,见 2.3.2.2) - - 保险服务内容: - - 保险合同审查 - - 理赔审查 - - 保险条款修订 - - 理赔规则制定 - - 条款标准制定 + - **获取报价入口**:页面内提供「获取报价」「前往报价页面」按钮;未登录点击引导登录,已登录跳转 `/dashboard/project-quotes` + - 基础保障、全面保障、保险条款标准核心内容 + - 保险服务内容:保险合同审查、理赔审查、保险条款修订、理赔规则制定、条款标准制定 - 服务供应商展示(保险公司、经纪公司 logo) -2. **保证方案页面**(已实现) +2. **保证方案页面**(已实现,导航中称为「保证设计」) - 保证基金的基本逻辑(图示) - 保证基金管理形式比较(表格) - **自保(专项风险管理基金)** @@ -224,54 +229,62 @@ #### 2.2.4 资源中心(原"体系管理",已实现) **路由结构:** - `/system-management`:资源中心首页(ResourceCenterOverview) +- `/system-management/laws`:法律法规 - `/system-management/practice-guide`:实践指南 - `/system-management/training`:培训材料 - `/system-management/faq` 或 `/faq`:常见问题 **内容模块:** -1. **实践指南**(已实现) +1. **法律法规**(已实现) + - 临床试验与风险管理相关法律法规 + +2. **实践指南**(已实现) - 操作指南文档 - 最佳实践案例 - 流程规范 -2. **培训材料**(已实现) +3. **培训材料**(已实现) - 培训视频 - 培训文档 - 培训课程 -3. **常见问题**(已实现) +4. **常见问题**(已实现) - FAQ列表 - 问题分类 - 搜索功能(待实现) #### 2.2.5 上市应用(已实现) -- **路由**:`/post-market` -- **内容**:上市应用相关说明 +- **路由**:`/post-market`、`/post-market/insurance`、`/post-market/guarantee` +- **内容**:药品上市后风险管理与药物警戒的保险与保障方案(当前为建设中占位页) #### 2.2.6 海外风险(已实现) - **路由**:`/overseas` -- **内容**:海外风险相关说明 +- **内容**:跨境临床试验与海外市场的风险管理保险与保障(当前为建设中占位页) #### 2.2.7 登录页面(已实现) - **路由**:`/login` -- **功能**:账号密码登录表单 -- **后续**:登录成功后根据用户角色跳转到工作台(`/dashboard`) +- **功能**:用户名/邮箱 + 密码登录表单;测试账号:admin、policyholder、insurer(密码:123456) +- **登录逻辑**:登录成功后跳转到工作台(`/dashboard`);支持 `from` 查询参数回跳 +- **说明**:用户由管理员创建,无自助注册;记住我、忘记密码为 UI 占位 -### 2.3 登录后系统详细需求(待开发) +### 2.3 登录后系统详细需求(已实现) -#### 2.3.1 系统架构 -- **布局**:侧边栏导航 + 主内容区(DashboardLayout) -- **侧边栏导航结构**: +#### 2.3.1 系统架构(已实现) +- **布局**:侧边栏导航 + 主内容区(DashboardLayout)✅ +- **顶部导航**:登录后仍可访问首页、风险职责、临床试验、上市应用、海外风险、资源中心 +- **侧边栏导航结构**(根据角色动态显示): - 工作台 + - 项目报价(需权限:投保人,`/dashboard/project-quotes`) - 项目列表(需权限:投保人) - 询价列表(需权限:保险人) - 理赔进度(需权限:投保人、保险人) - - 智能工具(所有登录用户可见) - - 保费测算工具(所有登录用户可见) - - ICF智能修改(需权限:投保人) - - 方案风险评分(需权限:投保人) -- **权限控制**:侧边栏菜单根据用户角色动态显示有权限的菜单项 + - 智能工具 + - 保费测算工具(所有用户) + - ICF智能修改(仅投保人) + - 方案风险评分(仅投保人) + - 方案风险评估(所有用户) + - 药安查(所有用户) #### 2.3.2 工作台页面(Dashboard) **路径**:`/dashboard` @@ -311,33 +324,20 @@ - 点击可跳转到对应详情页 - 其他角色:根据权限显示相应内容 -##### 2.3.2.3 报价申请流程(获取报价) -**入口**:店家首页 Banner「获取报价」、保险方案页「获取报价」、登录后工作台快捷方式「获取报价」。点击后打开报价申请流程(弹窗或独立报价页面,建议统一为弹窗以保持上下文)。 +##### 2.3.2.3 报价申请流程(获取报价)(已实现) -**流程对应页面/弹窗需求:** +**入口**:首页「获取报价」、保险方案页「获取报价」、工作台快捷方式「获取报价」。当前实现为**跳转至项目报价页面** `/dashboard/project-quotes`;未登录时引导先登录。 -1. **报价需提交的资料(第一步)** - - **表单字段**:项目方案编号、项目标题、申办者、项目分期。 - - **填写方式**: - - **手动填写**:用户逐项输入上述字段。 - - **上传项目方案**:用户上传项目方案文件,系统调用 AI 识别并解析,自动填充「项目方案编号、项目标题、申办者、项目分期」;用户可核对并修改。 - - **操作**:资料填写完成后,显示「生成报价」按钮。 +**项目报价页面**(`/dashboard/project-quotes`)已实现三种报价类型,以可折叠卡片展示: +1. **PV报价**:药物警戒服务报价,表单含姓名、邮箱、电话、公司、职位、业务问题、验证码、隐私承诺 +2. **临床试验保险报价**:项目类型、风险等级、保障金额、受试者人数、试验周期、备注等 +3. **产品责任保险报价**:产品类型、风险等级、保障金额、销售区域等 -2. **生成报价(第二步)** - - 用户点击「生成报价」后,系统调用 AI 服务,基于当前资料自动生成报价。 - - 报价结果展示在同一弹窗/页面内(AI 生成报价区域)。 +**临床试验保险弹窗流程**(QuoteRequestModal,已实现但当前未接入入口): +- 弹窗内含:手动填写/上传项目方案(AI 识别)、项目方案编号/标题/申办者/分期、生成报价(AI)、获取精准报价 +- 与需求 3.3.2.1 流程一致,可将入口改为打开弹窗以保持上下文 -3. **获取精准报价(第三步)** - - 用户点击「获取精准报价」后,系统将报价资料整合为标准化询价内容,以 Email 发送至各保司。 - - 前端可展示「已发送至保司,等待保司回复」等状态;该次报价申请进入「询价中」状态,可在工作台「待处理的报价项目」中查看。 - -4. **精准报价回显(系统侧 + 前端)** - - **系统侧**:从 rmo@vdano.com 拉取保司回复邮件,解析并提取各保司报价;由临研安进行审核,审核通过的报价写入报价记录并关联该次申请。 - - **前端**:报价页面/报价详情支持展示「精准报价」结果(各保司、报价内容等);工作台「待处理的报价项目」中该条状态更新为「已回显精准报价」,点击可进入报价页面查看。 - -**路由建议**(若采用独立页面):`/quote` 或 `/dashboard/quote`(新建申请),`/dashboard/quote/:id`(查看某次报价申请及精准报价结果)。若采用弹窗则无需单独路由,弹窗内可提供「查看我的报价」链接至投保人报价列表或工作台待处理任务。 - -**权限**:获取报价入口对免登录用户可开放(弹窗内可引导登录后再发精准报价);登录后工作台入口仅投保人可见。 +**权限**:项目报价页面仅投保人可见;获取报价入口对免登录用户点击时引导登录。 #### 2.3.3 项目列表页面(ProjectList) **路径**:`/dashboard/projects` @@ -467,17 +467,18 @@ - 相关文档 - 操作按钮:查看明细、处理理赔 -#### 2.3.8 智能工具页面(Tools) +#### 2.3.8 智能工具页面(Tools)(已实现) **路径**:`/dashboard/tools` **权限说明**:所有登录用户可见 -**工具入口页**: -- 展示三个工具的入口卡片 - - 保费测算工具(所有登录用户可见) - - ICF智能修改(仅投保人可见) - - 方案风险评分(仅投保人可见) -- 每个工具卡片显示:工具名称、工具描述 +**工具入口页**(已实现): +- 展示五个工具的入口卡片 + - 保费测算工具(所有用户) + - ICF智能修改(仅投保人) + - 方案风险评分(仅投保人) + - 方案风险评估(所有用户,AI 评估方案信息不足风险与偏倚风险) + - 药安查(所有用户,药物安全数据查询、不良反应与警戒信息检索) ##### 2.3.8.1 保费测算工具(PremiumCalculator) **路径**:`/dashboard/tools/premium-calculator` @@ -512,6 +513,16 @@ - 自动计算风险评分 - 显示评分结果、风险等级、改进建议 +##### 2.3.8.4 方案风险评估(ProtocolRiskAssessment)(已实现) +**路径**:`/dashboard/tools/protocol-risk` + +**功能**:借助 AI 评估方案信息不足风险与偏倚风险 + +##### 2.3.8.5 药安查(DrugSafetyQuery)(已实现) +**路径**:`/dashboard/tools/drug-safety` + +**功能**:药物安全数据查询,不良反应与警戒信息检索 + --- ## 三、核心业务逻辑说明 @@ -766,14 +777,14 @@ flowchart TB #### 4.1.1 免登录浏览区(已实现) - **访问方式**:网站免登录访问,所有内容公开 -- **页面范围**:首页、风险职责、临床试验、上市应用、海外风险、资源中心、常见问题 +- **页面范围**:首页、关于RMO(RMO概述、合作保司、专家经纪、第三方机构、风险职责及子页)、解决方案(药物警戒、临床保险、产品保险)、知识资源、临床试验、上市应用、海外风险、资源中心、常见问题、联系我们 -#### 4.1.2 登录后系统(待开发) -- **登录方式**:账号、密码登录 -- **用户角色**:投保人、保险人 -- **权限控制**:根据用户角色呈现有权限的内容 -- **路由守卫**:未登录用户访问登录后页面应重定向到登录页 -- **状态管理**:需要全局状态管理用户信息、角色权限、登录状态(建议使用 Context API 或 Zustand) +#### 4.1.2 登录后系统(已实现) +- **登录方式**:用户名/邮箱 + 密码登录 ✅ +- **用户角色**:投保人、保险人(AuthStore 中 user.role)✅ +- **权限控制**:侧边栏、工作台内容根据角色动态显示 ✅ +- **路由守卫**:未登录访问 `/dashboard` 重定向至 `/login`,支持 `from` 回跳 ✅ +- **状态管理**:Pinia AuthStore 管理用户信息、token、登录状态,localStorage 持久化 ✅ #### 4.1.3 数据权限说明 - **数据权限维度**: @@ -785,9 +796,9 @@ flowchart TB - 保险人只能查看和操作分配给自己的项目 - **项目状态**:信息收集、询价中、已报价、已成交、已失效 -### 4.2 登录后系统功能模块(待开发) +### 4.2 登录后系统功能模块(已实现) -#### 4.2.1 工作台(Dashboard) +#### 4.2.1 工作台(Dashboard)(已实现) - **路径**:`/dashboard` - **布局**:侧边栏导航 + 主内容区(DashboardLayout) - **权限**:所有登录用户可见,但内容根据角色不同 @@ -815,15 +826,13 @@ flowchart TB - 待处理的报价项目 - 待处理的理赔 -#### 4.2.2 报价申请(获取报价) -- **入口**:首页 Banner、保险方案页、登录后工作台「获取报价」 -- **形式**:弹窗或独立页面(建议弹窗);对应业务流程图见 3.3.2.1 -- **功能要点**: - - 报价资料表单:项目方案编号、项目标题、申办者、项目分期;支持手动填写或上传项目方案由 AI 识别并自动填充 - - 生成报价:调用 AI 生成报价并展示 - - 获取精准报价:系统整合资料后以 Email 发送至各保司;前端展示「询价中」等状态 - - 精准报价回显:系统从 rmo@vdano.com 拉取保司回复,临研安审核通过后,报价回写到该次申请,前端在报价页面/报价详情展示 -- **投保人**:可在工作台「待处理的报价项目」中查看各次申请状态并进入报价详情查看精准报价 +#### 4.2.2 报价申请(获取报价)(已实现) +- **入口**:首页、保险方案页、工作台「获取报价」→ 跳转 `/dashboard/project-quotes` +- **形式**:独立项目报价页面(已实现);临床试验保险弹窗流程(QuoteRequestModal)已实现但入口未接入 +- **项目报价页面功能**: + - PV报价、临床试验保险报价、产品责任保险报价(三种可折叠表单) + - 各类型有独立表单字段,提交后展示提交状态 +- **临床试验保险弹窗**(QuoteRequestModal):手动填写/上传方案、AI 识别、生成报价、获取精准报价,与 3.3.2.1 流程一致 #### 4.2.3 项目列表(ProjectList) - **路径**:`/dashboard/projects` @@ -870,13 +879,15 @@ flowchart TB - 列表字段:项目编号、试验题目、保障范围、承保公司、承保状态 - 操作按钮:查看明细、处理理赔 -#### 4.2.7 智能工具(Tools) +#### 4.2.7 智能工具(Tools)(已实现) - **路径**:`/dashboard/tools` - **权限**:所有登录用户可见 -- **工具入口页**:展示三个工具的入口卡片 - - 保费测算工具(所有登录用户可见) - - ICF智能修改(仅投保人可见) - - 方案风险评分(仅投保人可见) +- **工具入口页**:展示五个工具的入口卡片 + - 保费测算工具(所有用户) + - ICF智能修改(仅投保人) + - 方案风险评分(仅投保人) + - 方案风险评估(所有用户) + - 药安查(所有用户) ##### 4.2.7.1 保费测算工具(PremiumCalculator) - **路径**:`/dashboard/tools/premium-calculator` @@ -891,6 +902,14 @@ flowchart TB - **路径**:`/dashboard/tools/risk-scoring` - **功能**:对试验方案进行风险评分 +##### 4.2.7.4 方案风险评估(ProtocolRiskAssessment) +- **路径**:`/dashboard/tools/protocol-risk` +- **功能**:AI 评估方案信息不足风险与偏倚风险(已实现) + +##### 4.2.7.5 药安查(DrugSafetyQuery) +- **路径**:`/dashboard/tools/drug-safety` +- **功能**:药物安全数据查询、不良反应与警戒信息检索(已实现) + ### 4.3 内容管理(部分已实现) - **内容发布**:支持发布活动动态、资源文件(待实现后台管理) - **内容分类**:支持多级分类管理(资源中心已实现分类展示) @@ -959,31 +978,31 @@ flowchart TB ## 七、技术建议 ### 7.1 技术栈(已采用) -- **前端框架**:React 18.2.0 ✅ +- **前端框架**:Vue 3.4.0 ✅ - **语言**:TypeScript 5.2.2 ✅ - **构建工具**:Vite 5.0.8 ✅ -- **路由**:react-router-dom 6.20.0 ✅ +- **路由**:Vue Router 4.2.0 ✅ +- **状态管理**:Pinia 2.1.0 ✅ - **样式**:原生 CSS + CSS 变量 ✅ - **UI组件库**:无(使用原生 CSS 实现)✅ -### 7.2 登录后系统技术栈建议(待实现) -- **状态管理**:Context API 或 Zustand(推荐 Zustand,简单易用) -- **数据请求**:axios + React Query 或 SWR(用于服务端数据缓存、同步、重试) -- **路由守卫**:ProtectedRoute 组件(检查登录状态) -- **权限控制**:基于角色的权限控制(RoleGuard 组件或 HOC) -- **表单管理**:React Hook Form(如需要复杂表单) +### 7.2 登录后系统技术栈(已采用) +- **状态管理**:Pinia(AuthStore 管理登录状态、用户信息、角色)✅ +- **路由守卫**:ProtectedRoute 组件(检查登录状态,未登录重定向至 /login)✅ +- **权限控制**:基于角色的权限控制(侧边栏根据 user.role 动态显示菜单)✅ +- **数据请求**:当前为模拟数据,后续可接入 axios + 接口 -### 7.3 其他技术建议 +### 7.3 其他技术 - **图表库**:ECharts / D3.js(用于模式图可视化,如需要) - **文件预览**:@vue-office 或类似库(用于文档预览) -### 7.2 后端建议(未来扩展) +### 7.4 后端建议(未来扩展) - **后端框架**:Node.js / Python Django / Java Spring Boot - **数据库**:MySQL / PostgreSQL - **文件存储**:OSS / 本地存储 - **API设计**:RESTful API -### 7.3 部署建议 +### 7.5 部署建议 - **服务器**:云服务器(阿里云/腾讯云等) - **CDN**:静态资源CDN加速 - **域名SSL**:配置HTTPS证书 @@ -1001,36 +1020,25 @@ flowchart TB 6. ✅ 资源中心(实践指南、培训材料、常见问题) 7. ✅ 登录页面(UI已实现,登录逻辑待开发) -### 8.2 第二阶段:登录后系统(待开发) -1. ⏳ 用户认证与权限系统 - - 登录接口对接 - - 全局状态管理(AuthContext) +### 8.2 第二阶段:登录后系统(已完成 ✅) +1. ✅ 用户认证与权限系统 + - 登录逻辑(Pinia AuthStore,当前为模拟接口) + - 全局状态管理(AuthStore) - 路由守卫(ProtectedRoute) - - 角色权限控制 -2. ⏳ 工作台页面 - - 我的保障、我的项目、待办任务 - - 快捷方式(获取报价、申请保障、申请理赔) - - 待处理的报价项目(含状态与跳转报价详情) -3. ⏳ 报价申请流程(获取报价) - - 多入口(首页、保险方案页、工作台)打开报价弹窗/页面 - - 报价资料表单(手动填写 + 上传方案 AI 识别)、生成报价、获取精准报价 - - 报价状态与精准报价回显(系统拉取 rmo@vdano.com、临研安审核后展示) -4. ⏳ 项目列表模块 - - 项目列表(带权限过滤) - - 项目明细页 -5. ⏳ 询价列表模块(保险人) - - 询价列表(需权限控制) - - 询价详情、处理报价 -6. ⏳ 理赔进度模块(投保人、保险人) - - 理赔评估列表(需权限控制) - - 理赔详情、处理理赔 -7. ⏳ 智能工具模块(所有登录用户可见) - - 保费测算工具(所有登录用户可见) - - ICF智能修改(仅投保人可见) - - 方案风险评分(仅投保人可见) -8. ⏳ 登录后系统布局 - - DashboardLayout(侧边栏 + 主内容区) - - 侧边栏导航(根据角色动态显示) + - 角色权限控制(侧边栏、工作台根据角色显示) +2. ✅ 工作台页面 + - 数据统计卡片、待处理任务、快捷方式 + - 投保人快捷方式:获取报价、报价页面、申请理赔、方案介绍、培训支持 +3. ✅ 报价申请流程(获取报价) + - 多入口跳转至项目报价页(/dashboard/project-quotes) + - 项目报价页含 PV报价、临床试验保险报价、产品责任保险报价 + - 临床试验保险弹窗(QuoteRequestModal)已实现,可接入入口 +4. ✅ 项目列表模块(带权限过滤) +5. ✅ 询价列表模块(保险人权限控制) +6. ✅ 理赔进度模块(投保人、保险人可见) +7. ✅ 智能工具模块 + - 保费测算、ICF智能修改、方案风险评分、方案风险评估、药安查 +8. ✅ DashboardLayout(侧边栏 + 主内容区) ### 8.3 第三阶段:功能增强(未来扩展) 1. 在线咨询功能 @@ -1083,22 +1091,24 @@ flowchart TB - 相关图片资源:申办者和持有人责任风险管理相关图片 ### 10.3 项目状态 -- **当前版本**:v1.1 +- **当前版本**:v1.2 - **开发状态**: - - ✅ 免登录浏览区:已完成,可演示 - - ⏳ 登录后系统:待开发 + - ✅ 免登录浏览区:已完成 + - ✅ 登录后系统:已完成(含工作台、项目报价、项目列表、询价列表、理赔进度、智能工具) + - ⏳ 待完善:报价精准回显、后端接口对接、上市应用/海外风险内容填充 +- **技术栈**:Vue 3 + TypeScript + Vite + Pinia + Vue Router - **最后更新**:2025年2月 --- -**文档版本**:v1.1 +**文档版本**:v1.2 **创建日期**:2025年1月 -**最后更新**:2025年2月 +**最后更新**:2025年2月(根据网站代码同步更新) ### 10.4 开发状态说明 -- **✅ 已实现**:功能已开发完成,需求描述与代码实现一致 -- **⏳ 待开发**:功能规划已完成,待开发实现 -- **未来扩展**:功能需求已明确,优先级较低,后续版本实现 +- **✅ 已实现**:功能已开发完成,需求文档已与代码实现对齐 +- **⏳ 待完善**:部分流程(如报价精准回显、后端接口)需后续对接 +- **未来扩展**:上市应用/海外风险内容、在线咨询、后台管理等 diff --git a/PRD/临床试验责任保险报价流程.md b/PRD/临床试验责任保险报价流程.md index 91bcad4..ddee2f8 100644 --- a/PRD/临床试验责任保险报价流程.md +++ b/PRD/临床试验责任保险报价流程.md @@ -23,15 +23,20 @@ ## 报价必备资料 - 项目方案编号(必填) - 项目标题(必填) + - 投保人名称(必填) - 申办者名称(必填) - 受试药物名称(必填) - 项目分期(I、II、III、IV期、其他:___)(必填) - 试验受试者人数(必填) - 报价用途:制定项目预算;申请试验开展; - - 每人责任限额(万元)(选项:≤10、15、20、30、≥50)[非必填,可以AI推荐]; + 以下四项可以重复,即每次提交信息,可以申请多个保险方案报价,每一个即一个报价方案: + {- 每人责任限额(万元)(选项:≤10、15、20、30、≥50)[非必填,可以AI推荐]; - 累计责任限额[非必填,可以AI推荐]; - 每次事故免赔额[非必填,可以AI推荐]; - + - 拟投保人数 (默认为受试者总人数); + } + + ## 申请报价页面 1. 简洁页面: 由AI自动识别,提取报价必备资料;上传: @@ -44,11 +49,13 @@ 除上述简洁页面需要的字段,补充以下西信息: - 疾病类型(选项:癌症、心脏类疾病、生育类疾病、疫苗试验、其他) - 每一试验受试者的试验期限(月)(选项:6、(6,12]、(12,24]、(24,36]、(36,48]、(48,60]、(60,72]、(72,84]、>84) + - 项目预计时长(选项:6、(6,12]、(12,24]、(24,36]、(36,48]、(48,60]、(60,72]、(72,84]、>84) - 质量管理水平(选项:通过GMP、ISO等认证,质量标准要求高,管理先进、通过必要的认证,质量标准要求较高,管理较先进、其他情况) - 历史理赔赔付情况(选项:极少、较少、较多、极多) - 试验受试者类型(选项:儿童、老年人、孕妇、其他成年人) - 试验受试者健康状况(选项:良好、一般、较差) - 安全性监测措施(选项:完善、较完善、不完善) + - 特别要求(备注对保障范围、理赔条件的要求) # 报价流程 - 投保人填写报价资料; @@ -96,10 +103,125 @@ flowchart TB - **回复渠道**:保司报价回复至 RMO@vdano.com - **数据归属**:所有报价数据属于申办者,在投保人租户下呈现 +# 标准报价信息表 +| 项目 | 【取值】 | +|------------------------|------| +| **承保险种** | 【保险信息页面的标题】 | +| **投保人** | 【投保人名称】 | +| **被保险人** | 【申办者名称】 | +| **承保试验** | 【项目标题】 | +| **方案号** | 【项目方案编号】 | +| **研究分期** | 【项目分期】 | +| **受试者人数** | 【试验受试者人数】| +| **保单期限** | 【项目预计时长】 | +| **保单限额** | 【累计责任限额】| +| **每人责任限额** | 【每人责任限额】| +| **每次事故免赔额** | 【每次事故免赔额】| +| **特别约定** | 【特别要求】 | # 与Smart-OPS的衔接 - 收集到的报价信息,报价信息将传输到Smart-OPS系统,工作台进行后续的报价、投保、理赔等流程; - 临研安人员登录Smart-OPS系统,进行报价,所有报价数据属于申办者所有,该数据将在投保人租户下呈现; - 临研安人员在工作台页面处理所有报价的评估、整理。 -- \ No newline at end of file + + +# 在Smart-OPS中的操作 +- 临研安/华泰经纪工作人员,登录Smart-OPS,进入保险报价菜单; +- 显示报价任务列表,列表字段包括:投保人、项目编号、项目标题、主险限额、附加险限额、免赔额、保司、报价状态;操作按钮包括:编辑、查看、发送保司、整理报价 +## 报价状态包括: + - 已创建:报价任务创建; + - 初步评估:针对大地、太保广州,临研安给出的初步评估报价。 + - 正式报价:保司已回复初步报价 + - 报价完成:报价信息通过API接口返回到保险报价页面。 +## 报价详情页面:点击编辑或查看后,进入报价任务的详情页面,该页面包括: + - 之前收集到的全部信息; + - 对应每一方案,发出给保司的邮件、回收的邮件; + +## 数据呈现结构: +数据结构设计:项目、报价方案、保司报价任务三级结构 + +### 项目(Project) + - 项目ID + - 项目名称 + - 其他项目全局信息(如申办者、阶段、试验类型等) + - 报价方案列表(QuotationSchemes) + - 研究分期 + +### 报价方案(QuotationScheme) + - 方案ID + - 关联项目ID + - 方案名称/标题 【以限额作为方案名称】 + - 方案编号 + - 受试者人数 + - 项目周期/保险期限 + - 主险/附加险需求 + - 其他对保险的特别要求 + - 保司报价任务列表(InsurerQuotationTasks) + +### 保司报价任务(InsurerQuotationTask) + - 任务ID + - 关联方案ID + - 保险公司/保司名称 + - 主险限额/附加险限额 + - 每人/每次事故限额与免赔额 + - 报价金额 + - 特别约定 + - 审核状态/报价状态(如已创建、初步评估、正式报价、报价完成等) + - 任务处理记录(分派、发送、回复等信息) + - 关联邮件/回收邮件集合 + +## Smart-OPS页面所需操作功能设计 + +在Smart-OPS保险报价页面,应增加以下关键操作按钮及其流程说明: + +### 1. 生成标准报价信息 +- **功能说明**:根据项目及方案已收集到的基础信息,一键生成标准格式的报价表,可导出为Excel或PDF,便于对保司、项目组进行沟通。 +- **操作入口**:报价任务列表页、报价方案详情页增加“报价信息”按钮。 +- **流程**: + - 点击按钮后,系统根据当前方案或所有报价任务信息,生成符合行业/平台模板的报价文件,可对内容进行预览和导出。 + +### 2. 风险评估 +- **功能说明**:支持RMO团队或临研安对方案进行定量/定性的风险评估,便于后续作为保险条款的输入或决策支持。 +- **操作入口**:报价方案详情页,增加“风险评估”按钮。 +- **流程**: + - 点击后打开风险评估表单,根据受试药物安全特征、试验设计、受试者状态对项目风险进行评估; + - 提交后,评估结果关联于当前方案,风险评估历史可追溯。 + +### 3. 申请报价 +- **功能说明**:将已整理好的方案信息,一键发起给各保险公司(保司)申请正式报价。 +- **操作入口**:报价任务列表页、方案详情页,增加“申请报价”按钮。 +- **流程**: + - 选择需申请的保司、确认发送内容/模板; + - 支持批量申请多个保司; + - 系统记录申请时间、发送状态,自动更新报价任务状态。 + +### 4. 整理报价 +- **功能说明**:归集各保司返回的报价,生成汇总对比表,便于客户/投保人选定。 +- **操作入口**:报价方案详情页、报价任务详情页,增加“整理报价”按钮。 +- **流程**: + - 临研安填写各保司返回的正式报价数据; + - 一键合并生成报价对比表,可导出Excel/PDF; + - 系统标记哪家保司已完成报价,未完成自动提醒跟进。 + +### 5. 返回报价 +- **功能说明**:选择最终确定的报价,将结果通过系统返回给投保人,并自动同步到项目报价页面。 +- **操作入口**:报价方案详情页内,完成整理报价后显示“返回报价”按钮。 +- **流程**: + - 确认最终方案和保司,点击“返回报价”; + - 支持填写补充说明或上传附件; + - 返回信息同步到投保人端页面。 + +### 功能按钮汇总(页面动线建议) + +- 报价任务列表页: + - [生成标准报价信息] [申请报价] [整理报价] +- 报价方案详情页: + - [风险评估] [申请报价] [整理报价] [返回报价] +- 保司报价任务详情页: + - [整理报价] [返回报价] + +> 每一个操作需在系统内形成业务日志,支持后续审计和流程追踪。 + + + \ No newline at end of file diff --git a/src/components/Breadcrumb.vue b/src/components/Breadcrumb.vue index 7c62560..627695f 100644 --- a/src/components/Breadcrumb.vue +++ b/src/components/Breadcrumb.vue @@ -87,6 +87,8 @@ const pathLabels: Record = { // Dashboard '/dashboard': '工作台', '/dashboard/project-quotes': '项目报价', + '/dashboard/quote-compare': '报价对比', + '/dashboard/smart-ops/quote-tasks': '保险报价(Smart-OPS)', '/dashboard/projects': '项目列表', '/dashboard/projects/:id': '项目详情', '/dashboard/inquiries': '询价列表', @@ -111,6 +113,8 @@ function getLabel(path: string): string { if (inquiryMatch) return '询价详情' const claimMatch = path.match(/^(\/dashboard\/claims\/)[^/]+$/) if (claimMatch) return '理赔详情' + const quoteTaskMatch = path.match(/^(\/dashboard\/smart-ops\/quote-tasks\/)[^/]+$/) + if (quoteTaskMatch) return '报价任务详情' // 按路径段匹配 const segments = path.split('/').filter(Boolean) const lastSegment = segments[segments.length - 1] @@ -146,6 +150,8 @@ function getLabel(path: string): string { coverage: '保障范围', 'privacy-policy': '隐私政策', 'project-quotes': '项目报价', + 'quote-compare': '报价对比', + 'quote-tasks': '保险报价', projects: '项目列表', inquiries: '询价列表', claims: '理赔进度', diff --git a/src/components/DashboardLayout.vue b/src/components/DashboardLayout.vue index 2078fff..19bb553 100644 --- a/src/components/DashboardLayout.vue +++ b/src/components/DashboardLayout.vue @@ -19,10 +19,14 @@ 工作台 +