diff --git a/emergency-app/assistant/doc/PRD.md b/emergency-app/assistant/doc/PRD.md index be7b76c..b709ed7 100644 --- a/emergency-app/assistant/doc/PRD.md +++ b/emergency-app/assistant/doc/PRD.md @@ -2,30 +2,30 @@ ## 模块概述 -咨询小助手端为平台客服人员提供移动端工作平台,负责接收员工的初步咨询请求,进行图文对话沟通,并在需要时为员工推荐合适的专家。小助手端仅支持图文咨询,不支持视频咨询。 +咨询小助手端为平台客服人员提供移动端工作平台,负责接收员工步咨询请求,进行图文对话沟通,并在需要时为员工推荐合适的专家。小助手端仅支持图文咨询,不支持视频咨询。 ### 页面导航结构 ``` 咨询小助手端 ├── 工作台(底部Tab) -│ ├── 工作台首页(3分类Tab) -│ │ ├── 待回复 → 图文聊天 -│ │ ├── 进行中 → 图文聊天 -│ │ └── 已完成 → 咨询完成详情 → 历史对话 -│ ├── 图文聊天 -│ │ ├── 查看档案 → 员工健康档案 -│ │ ├── 结束咨询 → 结束咨询确认弹窗 -│ │ └── 推送专家 → 选择专家页 → 返回聊天(发送名片) +│ ├── 工作台首页(3分类Tab + 过滤条件) +│ │ ├── 待回复 → 图文聊天(进行中) +│ │ ├── 进行中 → 图文聊天(进行中) +│ │ └── 已完成 +│ │ ├── 已完成 → 图文咨询完成详情 → 历史对话(只读)→ 咨询人健康档案 +│ │ └── 已超时 → 图文咨询已超时详情 → 历史对话(只读)→ 咨询人健康档案 ├── 知识库(底部Tab) -│ ├── 知识库首页(4分类Tab) -│ └── 知识详情 -├── AI助手(底部Tab,共享模块) -├── 消息(底部Tab,共享模块) +│ ├── 知识库首页 +│ │ ├── 知识文章(知识分类-知识列表)→ 知识详情 +│ │ └── 规章制度(PDF列表)→ 查看文件 +├── AI助手(底部Tab) +├── 消息(底部Tab) └── 我的(底部Tab) ├── 个人中心主页 - │ ├── 咨询统计 - │ └── 修改密码 + │ ├── 个人信息设置 + │ ├── 修改密码 + │ └── 关于我们 └── 退出登录(确认弹窗) ``` @@ -36,223 +36,287 @@ stateDiagram-v2 [*] --> 待回复 : 员工发起咨询 待回复 --> 进行中 : 小助手首次回复 进行中 --> 进行中 : 推送专家名片 - 进行中 --> 已完成 : 小助手结束咨询 + 进行中 --> 已完成 : 任一方结束咨询/有回复但是7天无更新自动变为已完成 + 进行中 --> 已超时 : 7天首次未回复自动关闭 ``` ## 页面清单 -| 序号 | 文件名 | 页面名称 | 类型 | 所属模块 | -|------|--------|----------|------|----------| -| 1 | workbench/index.html | 工作台首页 | 页面 | 工作台 | -| 2 | workbench/text-chat.html | 图文咨询 | 页面 | 工作台 | -| 3 | workbench/consult-done.html | 咨询完成详情 | 页面 | 工作台 | -| 4 | workbench/employee-profile.html | 员工健康档案 | 页面 | 工作台 | -| 5 | workbench/end-consult-dialog.html | 结束咨询确认弹窗 | 弹窗 | 工作台 | -| 6 | workbench/push-expert.html | 选择专家 | 页面 | 工作台 | -| 7 | knowledge/index.html | 知识库首页 | 页面 | 知识库 | -| 8 | knowledge/detail.html | 知识详情 | 页面 | 知识库 | -| 9 | ../ai-assistant/index.html | AI 助手(共享) | 页面 | AI 助手 | -| 10 | ../message/index.html | 消息列表(共享) | 页面 | 消息 | -| 11 | ../message/contacts.html | 通讯录(共享) | 页面 | 消息 | -| 12 | ../message/im-chat.html | IM 聊天(共享) | 页面 | 消息 | -| 13 | profile/index.html | 个人中心主页 | 页面 | 我的 | -| 14 | profile/stats.html | 咨询统计 | 页面 | 我的 | -| 15 | profile/change-pwd.html | 修改密码 | 页面 | 我的 | +| 序号 | 文件名 | 页面名称 | 所属模块 | +|------|--------|-----|-------| +| 1 | workbench/index.html | 工作台首页 | 工作台 | +| 2 | workbench/text-chat.html | 图文聊天 | 工作台·图文咨询 | +| 3 | workbench/text-chat-done.html | 历史对话(只读) | 工作台·图文咨询 | +| 4 | workbench/text-consult-done.html | 图文咨询完成详情 | 工作台·图文咨询 | +| 5 | workbench/text-consult-timeout.html | 图文咨询已超时详情 | 工作台·图文咨询 | +| 6 | workbench/employee-profile.html | 咨询人健康档案 | 工作台 | +| 7 | workbench/end-consult-dialog.html | 结束咨询确认弹窗 | 工作台 | +| 8 | workbench/push-expert.html | 选择专家 | 工作台 | +| 9 | knowledge/index.html | 知识库首页 | 知识库 | +| 10 | knowledge/detail.html | 知识详情 | 知识库 | +| 11 | ../ai-assistant/index.html | AI 助手 | AI 助手 | +| 12 | ../message/index.html | 消息列表 | 消息 | +| 13 | ../message/contacts.html | 通讯录 | 消息 | +| 14 | ../message/im-chat.html | IM 聊天 | 消息 | +| 15 | profile/index.html | 个人中心主页 | 我的 | +| 16 | profile/edit-profile.html | 个人信息设置 | 我的 | +| 17 | profile/change-pwd.html | 修改密码 | 我的 | ## 逐页说明 --- +## 一、工作台模块 + ### 1. 工作台首页(workbench/index.html) -**功能说明:** 小助手工作台入口,展示图文咨询任务队列,按状态分类管理。 +![页面截图](screenshots/index.jpg) + +**功能说明:** 小助手工作台入口,展示图文咨询任务队列,按状态分类管理,支持多维度过滤筛选。 **业务规则:** -- 头部统计卡片展示:待回复数、进行中数、今日完成数、满意度百分比 -- 仅支持图文咨询,无视频咨询Tab -- 分三个子Tab:待回复、进行中、已完成 +- 头部展示欢迎语和统计数据:待回复数、进行中数 +- 二级 Tab 切换:待回复、进行中、已结束(已完成、已超时) +- 过滤条件栏支持按咨询类型(咨询专家 / 咨询小助手)和专家未回复筛选 +- 咨询卡片展示:咨询人头像、姓名、角色标签、最后消息、时间 +- 咨询类型标签:咨询专家、咨询小助手 +- 已完成面板同时展示已完成和已超时两种终态卡片 **交互说明:** -- 点击待回复/进行中的咨询卡片跳转到图文聊天 -- 点击已完成的咨询卡片跳转到咨询完成详情 -- 底部5Tab导航:工作台/知识库/AI助手/消息/我的 +- 点击"待回复 / 进行中"咨询卡片:跳转到图文聊天页 +- 点击"已完成"咨询卡片:跳转到图文咨询完成详情页 +- 点击"已超时"咨询卡片:跳转到图文咨询已超时详情页 +- 点击过滤条件:动态筛选当前列表 --- -### 2. 图文咨询(workbench/text-chat.html) +## 二、图文咨询业务线 -**功能说明:** 小助手与员工的实时图文对话界面,相比专家端多了"推送专家"功能。 +### 2. 图文聊天(workbench/text-chat.html) + +![页面截图](screenshots/text-chat.jpg) + +**功能说明:** 小助手与员工的实时图文对话界面,支持文字、语音、图片发送,提供常用语快捷填充和推送专家功能。 **业务规则:** -- 聊天区分员工消息(左侧白色气泡)和小助手消息(右侧蓝色气泡,机器人头像) -- 支持文字、语音、图片三种消息类型 -- 常用语面板提供5条预设快捷语 +- 导航栏展示咨询人姓名和咨询类型标签(咨询专家蓝色 / 咨询小助手紫色) +- 咨询信息条(可折叠)展示:发起时间、咨询人信息、专家信息、查看档案入口。“咨询人档案”按钮需判断当前员工是否选择了咨询档案进行发起咨询,如果没有选择,则按钮置灰,点击时提示Toast“员工未选择咨询人档案” +- 员工消息以左侧白色气泡展示(含咨询卡片),小助手消息以右侧蓝色气泡展示 +- 常用语面板支持分类 Tab:全部 / 问候语 / 注意事项 / 结束语/ 引导语 +- 媒体选择面板提供:拍照、图库、推送专家三个选项 - 推送专家后,聊天区自动插入专家名片气泡(含头像、姓名、科室、职称、医院、擅长病种) **交互说明:** -- 点击"查看档案"跳转到员工健康档案 -- 点击"结束咨询"跳转到结束咨询确认弹窗 -- 点击闪电图标展开/收起常用语面板 -- 点击加号展开媒体面板(拍照/图库/推送专家) -- 点击"推送专家"跳转到选择专家页 +- 点击咨询人档案卡片或"查看档案":跳转到咨询人健康档案页 +- 点击右上角"结束咨询":跳转到结束咨询确认弹窗 +- 点击"⚡"图标:展开 / 收起常用语面板,点击常用语自动填入输入框 +- 点击"🎤"图标:切换语音 / 文字输入模式 +- 点击"+"图标:展开 / 收起媒体选择面板 +- 点击"推送专家":跳转到选择专家页 +- 点击"➤"发送按钮:将输入框内容发送为小助手消息气泡 --- -### 3. 咨询完成详情(workbench/consult-done.html) +### 3. 历史对话(只读)(workbench/text-chat-done.html) -**功能说明:** 展示已完结的员工咨询全部信息,包括咨询统计、评价及健康档案。 +![页面截图](screenshots/text-chat-done.jpg) + +**功能说明:** 展示已结束图文咨询的历史对话记录,为只读模式,无输入区,底部显示咨询结束说明。 **业务规则:** -- 展示咨询类型(员工咨询)、发起/完成时间、员工评分 +- 布局与图文聊天页一致,但无导航栏右上角"结束咨询"按钮,无底部输入区 +- 底部固定条显示咨询状态文案: + - 正常完成:「— 本次咨询已结束 —」 + - 超时关闭:「— 长时间未回复系统已自动结束本次咨询 —」 +- 聊天区末尾展示绿色结束卡片(含完成时间),超时状态下不展示该卡片 + +**交互说明:** +- 对话内交互与图文聊天页一致 +- 返回按钮:跳转到工作台首页 + +--- + +### 4. 图文咨询完成详情(workbench/text-consult-done.html) + +![页面截图](screenshots/text-consult-done.jpg) + +**功能说明:** 展示已完成图文咨询的摘要信息,提供查看历史对话和咨询人健康档案的入口。 + +**业务规则:** +- 顶部员工信息卡展示:头像、姓名、所属部门、"已完成"标签 +- 咨询信息区展示:咨询类型、发起时间、结束时间 - 员工评价以黄色引用框展示 -- 健康档案分基本信息、生活习惯、身体情况三组 +- 咨询人健康档案区支持折叠 / 展开 **交互说明:** -- 点击"查看历史对话记录"跳转到图文聊天页(只读) -- 健康档案支持折叠/展开 +- 点击"查看历史对话记录":跳转到历史对话(只读)页 +- 点击"咨询人健康档案"标题:展开 / 收起档案详情 +- 返回按钮:跳转到工作台首页 --- -### 4. 员工健康档案(workbench/employee-profile.html) +### 5. 图文咨询已超时详情(workbench/text-consult-timeout.html) -**功能说明:** 展示咨询员工的完整健康档案,供小助手参考。 +![页面截图](screenshots/text-consult-timeout.jpg) + +**功能说明:** 展示因 7 天未回复被系统自动关闭的图文咨询详情,提示超时原因,并提供查看历史记录和健康档案的入口。 **业务规则:** -- 分三组展示:基本信息(姓名、性别/年龄、身高/体重)、生活习惯(吸烟、饮酒、饮食、睡眠)、身体情况(过敏史、遗传史、既往史) -- 过敏史以红色高亮标记 +- 顶部员工信息卡展示:头像、姓名、所属部门、"已超时"标签 +- 咨询信息区展示:咨询对象、咨询单号、发起时间、结束时间 +- 橙色警示卡片展示超时原因:「超过七天无回复,本次咨询已自动关闭。」 **交互说明:** -- 返回按钮跳转到图文聊天页 +- 点击"查看历史对话记录":跳转到历史对话(只读)页, +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 5. 结束咨询确认弹窗(workbench/end-consult-dialog.html) +### 6. 咨询人健康档案(workbench/employee-profile.html) -**功能说明:** 小助手结束咨询的二次确认弹窗,作为独立HTML页面实现。 +![页面截图](screenshots/employee-profile.jpg) + +**功能说明:** 展示咨询员工的完整健康档案,供小助手在咨询过程中参考。 + +**业务规则:** +- 基本信息卡:姓名、关系、性别、年龄、身高、体重 +- 生活习惯卡:以标签形式展示,吸烟、饮酒、饮食均衡、睡眠良好 +- 身体情况卡:红色高亮标记,过敏史、遗传史、既往史、其他疾病 +- 咨询信息卡:问题描述、持续时间、检查资料(图片展示)、就诊经历、期望帮助 + +**交互说明:** +- 返回按钮:返回来源页面 + +--- + +### 7. 结束咨询确认弹窗(workbench/end-consult-dialog.html) + +![页面截图](screenshots/end-consult-dialog.jpg) + +**功能说明:** 小助手结束咨询的二次确认弹窗,作为独立 HTML 页面实现。 **业务规则:** - 弹窗提示"确认结束与XX的咨询?结束后将无法继续发送消息" - 半透明蒙层背景 **交互说明:** -- 点击"取消"返回图文聊天页 -- 点击"确认结束"跳转到工作台首页 +- 点击"取消":关闭弹窗 +- 点击"确认结束":跳转到工作台首页 --- -### 6. 选择专家(workbench/push-expert.html) +### 8. 选择专家(workbench/push-expert.html) + +![页面截图](screenshots/push-expert.jpg) **功能说明:** 小助手在咨询中为员工推荐合适的专家,选择后将专家名片发送至聊天会话。 **业务规则:** - 展示可推荐的专家列表,每位含头像、姓名、医院、科室职称、本月咨询数、擅长病种标签 -- 选择专家后数据存入 sessionStorage,返回聊天页后自动发送名片气泡 +- 选择专家后返回聊天页后自动发送名片气泡 **交互说明:** -- 顶部搜索框支持按姓名/科室搜索 -- 点击专家卡片选中并返回图文聊天页 +- 顶部搜索框支持按姓名 / 科室搜索 +- 点击专家卡片:选中并返回图文聊天页 --- -### 7. 知识库首页(knowledge/index.html) +## 三、知识库模块 -**功能说明:** 小助手查阅专业医学知识的参考库,与专家端知识库结构和内容一致。 +### 9. 知识库首页(knowledge/index.html) + +![页面截图](screenshots/knowledge-index.jpg) + +**功能说明:** 后续规划,暂时显示”开发中,敬请期待~”。 -**业务规则:** -- 4个分类Tab:体检知识、药品知识、疾病知识、保健知识 -- 共10条知识条目 -**交互说明:** -- 切换分类Tab显示对应知识列表 -- 点击知识条目跳转到知识详情 --- -### 8. 知识详情(knowledge/detail.html) +### 10. 知识详情(knowledge/detail.html) -**功能说明:** 展示单条知识的完整内容,由URL参数动态渲染,与专家端内容一致。 +![页面截图](screenshots/knowledge-detail.jpg) -**业务规则:** -- 共支持9个知识条目的动态渲染 -- 每条含概述段落和2-3个主要内容分项 - -**交互说明:** -- 返回按钮跳转到知识库首页 +**功能说明:** 后续规划,暂时显示”开发中,敬请期待~”。 --- -### 9. 个人中心主页(profile/index.html) +## 四、我的模块 + +### 11. 个人中心主页(profile/index.html) + +![页面截图](screenshots/profile-index.jpg) **功能说明:** 小助手个人中心入口,展示用户信息和功能菜单。 **业务规则:** -- 蓝色渐变头部展示小助手头像、姓名、角色标签、所属机构 -- 功能菜单分两组:第一组为咨询统计(显示今日完成次数),第二组为修改密码和关于我们 -- 底部提供退出登录按钮 +- 蓝色渐变头部展示:小助手头像、姓名、角色标签(咨询小助手) +- 功能菜单:个人信息设置、修改密码、关于我们 +- 底部提供红色退出登录按钮 **交互说明:** -- 点击"咨询统计"跳转到咨询统计页 -- 点击"修改密码"跳转到修改密码页 -- 点击"退出登录"弹出确认弹窗,确认后退出 -- 底部5Tab导航:工作台/知识库/AI助手/消息/我的 +- 点击"个人信息设置":跳转到个人信息设置页 +- 点击"修改密码":跳转到修改密码页 +- 点击"退出登录":弹出确认弹窗,确认后退出 --- -### 10. 咨询统计(profile/stats.html) +### 12. 个人信息设置(profile/edit-profile.html) -**功能说明:** 展示小助手的咨询工作量统计数据。 +![页面截图](screenshots/edit-profile.jpg) + +**功能说明:** 小助手编辑个人基本信息,支持更换头像和修改姓名。 **业务规则:** -- 数据概览2×2网格:今日完成、本周完成、本月完成、累计完成 -- 本月咨询类型仅图文咨询(小助手不支持视频咨询) -- 近7日完成量以柱状图展示,今日高亮 +- 头像区支持点击更换(拍照 / 相册选择) +- 姓名输入框可编辑 **交互说明:** -- 返回按钮跳转到个人中心主页 +- 点击头像:弹出底部弹窗选择拍照或从相册选择 +- 点击"保存":显示 Toast 提示保存成功 +- 返回按钮:跳转到个人中心主页 --- -### 11. 修改密码(profile/change-pwd.html) +### 13. 修改密码(profile/change-pwd.html) + +![页面截图](screenshots/change-pwd.jpg) **功能说明:** 小助手修改登录密码。 **业务规则:** -- 表单包含当前密码、新密码(至少8位)、确认新密码三个字段 +- 表单包含当前密码、新密码(至少 8 位)、确认新密码三个字段 - 修改成功后弹窗提示 **交互说明:** -- 点击"保存修改"弹出修改成功弹窗 -- 弹窗点击"确定"跳转到个人中心主页 +- 点击"保存修改":弹出修改成功弹窗 +- 弹窗点击"确定":跳转到个人中心主页 **表单字段表:** -| 字段名 | 类型 | 必填 | 规则 | -|--------|------|------|------| -| 当前密码 | password | 是 | - | -| 新密码 | password | 是 | 至少8位 | -| 确认新密码 | password | 是 | 与新密码一致 | +| 字段名 | 类型 | 必填 | 规则 | +|--------|------|------|-----------| +| 当前密码 | password | 是 | - | +| 新密码 | password | 是 | 跟当前系统规则一致 | +| 确认新密码 | password | 是 | 与新密码一致 | --- -## 共享模块说明 +## 五、AI模块说明 以下模块为专家端和小助手端共用,通过 sessionStorage 的 `appRole` 标记区分当前端,动态设置底部导航栏的工作台返回目标。 -### 12. AI 助手(../ai-assistant/index.html) +### 14. AI 助手(../ai-assistant/index.html) -**功能说明:** AI 智能助手,提供医学知识问答辅助。 +**功能说明:** 后续规划,暂时显示”开发中,敬请期待~”。 -**业务规则:** -- AI 回复为系统自动生成 -- 底部 Tab 导航中"工作台"按钮根据 `appRole` 动态跳转到对应端的工作台 -**交互说明:** -- 底部输入框输入问题,AI 自动回复 -- 底部 Tab 导航切换到其他模块 --- -### 13. 消息列表(../message/index.html) +## 六、消息模块说明 +### 15. 消息列表(../message/index.html) **功能说明:** 内部消息模块,展示与其他角色的消息列表。 @@ -261,13 +325,13 @@ stateDiagram-v2 - 每条消息显示联系人头像、姓名、角色标签、最后一条消息预览、时间 **交互说明:** -- 点击消息项跳转到 IM 聊天页 -- 点击右上角通讯录图标跳转到通讯录页 +- 点击消息项:跳转到 IM 聊天页 +- 点击右上角通讯录图标:跳转到通讯录页 - 底部 Tab 导航切换到其他模块 --- -### 14. 通讯录(../message/contacts.html) +### 16. 通讯录(../message/contacts.html) **功能说明:** 展示系统内所有可联系的内部人员,支持按角色筛选和姓名搜索。 @@ -276,15 +340,17 @@ stateDiagram-v2 - 支持搜索和角色筛选 **交互说明:** -- 点击联系人跳转到 IM 聊天页 -- 返回按钮跳转到消息列表 +- 点击联系人:跳转到 IM 聊天页 +- 返回按钮:跳转到消息列表 --- -### 15. IM 聊天(../message/im-chat.html) +### 17. IM 聊天(../message/im-chat.html) **功能说明:** 与内部人员的即时通讯聊天界面。 **交互说明:** - 底部输入框输入文字并发送 -- 返回按钮跳转到消息列表 +- 返回按钮:跳转到消息列表 + + diff --git a/emergency-app/assistant/doc/screenshot.mjs b/emergency-app/assistant/doc/screenshot.mjs new file mode 100644 index 0000000..69969a7 --- /dev/null +++ b/emergency-app/assistant/doc/screenshot.mjs @@ -0,0 +1,88 @@ +/** + * 小助手端 APP 页面截图脚本 + * 按规范:移除 phone-shell 高度限制、视口 390px、JPEG 85% + */ +import { chromium } from 'playwright'; +import { fileURLToPath } from 'url'; +import path from 'path'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const screenshotsDir = path.join(__dirname, 'screenshots'); + +// 小助手端所有页面 +const pages = [ + // 工作台 + { file: '../../assistant/workbench/index.html', name: 'index' }, + { file: '../../assistant/workbench/text-chat.html', name: 'text-chat' }, + { file: '../../assistant/workbench/text-chat-done.html', name: 'text-chat-done' }, + { file: '../../assistant/workbench/consult-done.html', name: 'consult-done' }, + { file: '../../assistant/workbench/text-consult-done.html', name: 'text-consult-done' }, + { file: '../../assistant/workbench/text-consult-timeout.html', name: 'text-consult-timeout' }, + { file: '../../assistant/workbench/employee-profile.html', name: 'employee-profile' }, + { file: '../../assistant/workbench/end-consult-dialog.html', name: 'end-consult-dialog' }, + { file: '../../assistant/workbench/push-expert.html', name: 'push-expert' }, + // 知识库 + { file: '../../assistant/knowledge/index.html', name: 'knowledge-index' }, + { file: '../../assistant/knowledge/detail.html', name: 'knowledge-detail' }, + // 个人中心 + { file: '../../assistant/profile/index.html', name: 'profile-index' }, + { file: '../../assistant/profile/edit-profile.html', name: 'edit-profile' }, +{ file: '../../assistant/profile/change-pwd.html', name: 'change-pwd' }, +]; + +(async () => { + const browser = await chromium.launch({ + executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', + args: ['--no-sandbox', '--disable-setuid-sandbox'], + }); + const context = await browser.newContext({ viewport: { width: 390, height: 844 } }); + + for (const p of pages) { + const page = await context.newPage(); + const filePath = path.resolve(__dirname, p.file); + await page.goto(`file:///${filePath.replace(/\\/g, '/')}`, { waitUntil: 'networkidle' }); + + // 移除 phone-shell 高度限制、圆角、阴影;展开内容 + await page.evaluate(() => { + const shell = document.querySelector('.phone-shell'); + if (shell) { + shell.style.height = 'auto'; + shell.style.borderRadius = '0'; + shell.style.boxShadow = 'none'; + shell.style.overflow = 'visible'; + } + const content = document.querySelector('.page-content') || document.querySelector('.scroll-content'); + if (content) { + content.style.overflow = 'visible'; + content.style.maxHeight = 'none'; + content.style.height = 'auto'; + content.style.flex = 'none'; + } + document.body.style.padding = '0'; + document.body.style.minHeight = 'auto'; + document.body.style.background = '#fff'; + }); + + await page.waitForTimeout(300); + + const height = await page.evaluate(() => { + const shell = document.querySelector('.phone-shell'); + return shell ? shell.scrollHeight : document.body.scrollHeight; + }); + await page.setViewportSize({ width: 390, height: Math.max(height, 200) }); + + const shell = await page.$('.phone-shell'); + const target = shell || page; + await target.screenshot({ + path: path.join(screenshotsDir, `${p.name}.jpg`), + type: 'jpeg', + quality: 85, + }); + + console.log(`✓ ${p.name}.jpg`); + await page.close(); + } + + await browser.close(); + console.log(`\n完成!共截取 ${pages.length} 张截图`); +})(); diff --git a/emergency-app/assistant/doc/screenshots/change-pwd.jpg b/emergency-app/assistant/doc/screenshots/change-pwd.jpg new file mode 100644 index 0000000..7f70b2a Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/change-pwd.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/consult-done.jpg b/emergency-app/assistant/doc/screenshots/consult-done.jpg new file mode 100644 index 0000000..8c7ccdb Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/consult-done.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/edit-profile.jpg b/emergency-app/assistant/doc/screenshots/edit-profile.jpg new file mode 100644 index 0000000..f00a5b8 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/edit-profile.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/employee-profile.jpg b/emergency-app/assistant/doc/screenshots/employee-profile.jpg new file mode 100644 index 0000000..0e31635 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/employee-profile.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/end-consult-dialog.jpg b/emergency-app/assistant/doc/screenshots/end-consult-dialog.jpg new file mode 100644 index 0000000..f0d4bb5 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/end-consult-dialog.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/index.jpg b/emergency-app/assistant/doc/screenshots/index.jpg new file mode 100644 index 0000000..869f3f0 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/index.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/knowledge-detail.jpg b/emergency-app/assistant/doc/screenshots/knowledge-detail.jpg new file mode 100644 index 0000000..3a5b22c Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/knowledge-detail.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/knowledge-index.jpg b/emergency-app/assistant/doc/screenshots/knowledge-index.jpg new file mode 100644 index 0000000..6908e4e Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/knowledge-index.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/profile-index.jpg b/emergency-app/assistant/doc/screenshots/profile-index.jpg new file mode 100644 index 0000000..6288ce7 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/profile-index.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/push-expert.jpg b/emergency-app/assistant/doc/screenshots/push-expert.jpg new file mode 100644 index 0000000..ce57f3a Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/push-expert.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/text-chat-done.jpg b/emergency-app/assistant/doc/screenshots/text-chat-done.jpg new file mode 100644 index 0000000..266e47e Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/text-chat-done.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/text-chat.jpg b/emergency-app/assistant/doc/screenshots/text-chat.jpg new file mode 100644 index 0000000..e55b286 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/text-chat.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/text-consult-done.jpg b/emergency-app/assistant/doc/screenshots/text-consult-done.jpg new file mode 100644 index 0000000..d8baf7f Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/text-consult-done.jpg differ diff --git a/emergency-app/assistant/doc/screenshots/text-consult-timeout.jpg b/emergency-app/assistant/doc/screenshots/text-consult-timeout.jpg new file mode 100644 index 0000000..36bfde7 Binary files /dev/null and b/emergency-app/assistant/doc/screenshots/text-consult-timeout.jpg differ diff --git a/emergency-app/assistant/profile/change-pwd.html b/emergency-app/assistant/profile/change-pwd.html index 1a2c804..2079c38 100644 --- a/emergency-app/assistant/profile/change-pwd.html +++ b/emergency-app/assistant/profile/change-pwd.html @@ -50,7 +50,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
新密码 - +
确认新密码 diff --git a/emergency-app/assistant/profile/stats.html b/emergency-app/assistant/profile/stats.html deleted file mode 100644 index 8723efd..0000000 --- a/emergency-app/assistant/profile/stats.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -咨询小助手 - 咨询统计 | 健康长庆原型 - - - - -
-
- 9:41 -
●●●WiFi🔋
-
- - - -
- -
-
数据概览
-
-
-
24
-
今日完成
-
-
-
102
-
本周完成
-
-
-
436
-
本月完成
-
-
-
2,158
-
累计完成
-
-
-
- - -
-
本月咨询类型
-
- 图文咨询 -
-
-
- 436 -
-
- - -
-
近7日完成量
-
-
-
18
-
-
4/4
-
-
-
22
-
-
4/5
-
-
-
30
-
-
4/6
-
-
-
15
-
-
4/7
-
-
-
28
-
-
4/8
-
-
-
20
-
-
4/9
-
-
-
24
-
-
今日
-
-
-
- -
-
-
- - - diff --git a/emergency-app/assistant/workbench/consult-done.html b/emergency-app/assistant/workbench/consult-done.html deleted file mode 100644 index 11b9163..0000000 --- a/emergency-app/assistant/workbench/consult-done.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -咨询小助手 - 已完成咨询详情 | 健康长庆原型 - - - -
- - -
- 9:41 -
●●●WiFi🔋
-
- - - - - -
- - -
-
-
👩
-
-
孙丽
-
行政部 · 行政专员
-
- 已完成 -
- -
-
📋 咨询信息
-
咨询类型员工咨询
-
发起时间2026-04-08 14:10
-
完成时间2026-04-08 14:38
-
员工评分⭐⭐⭐⭐⭐ 5.0
-
-
- - -
-
员工评价
-
"小助手回复很及时,解答很专业,帮我解决了体检报告的疑问,非常感谢!"
-
- - -
- 💬 - 查看历史对话记录 - -
- - -
- -
- 📋 咨询人健康档案 - -
- -
- -
-
- -
- - - - diff --git a/emergency-app/assistant/workbench/employee-profile.html b/emergency-app/assistant/workbench/employee-profile.html index b199f3e..4d82bab 100644 --- a/emergency-app/assistant/workbench/employee-profile.html +++ b/emergency-app/assistant/workbench/employee-profile.html @@ -249,7 +249,12 @@ function goBack() { 'expert-chat': '../../expert/workbench/text-chat.html', 'expert-chat-done': '../../expert/workbench/text-chat-done.html', 'expert-consult-done': '../../expert/workbench/text-consult-done.html', - 'expert-consult-timeout': '../../expert/workbench/text-consult-timeout.html' + 'expert-consult-timeout': '../../expert/workbench/text-consult-timeout.html', + 'expert-video-appt': '../../expert/workbench/video-appt.html', + 'expert-video-ongoing': '../../expert/workbench/video-ongoing.html', + 'expert-video-done': '../../expert/workbench/video-done.html', + 'expert-video-cancelled': '../../expert/workbench/video-cancelled.html', + 'expert-video-rejected': '../../expert/workbench/video-rejected.html' }; location.href = backMap[from] || './text-chat.html'; } diff --git a/emergency-app/assistant/workbench/text-consult-done.html b/emergency-app/assistant/workbench/text-consult-done.html index ebbe8d8..c484fbf 100644 --- a/emergency-app/assistant/workbench/text-consult-done.html +++ b/emergency-app/assistant/workbench/text-consult-done.html @@ -60,7 +60,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
📋 咨询信息
-
咨询类型图文咨询
+
咨询对象咨询专家
发起时间2026-04-08 08:10
结束时间2026-04-08 08:40
diff --git a/emergency-app/assistant/workbench/text-consult-timeout.html b/emergency-app/assistant/workbench/text-consult-timeout.html index 65c8619..20b9626 100644 --- a/emergency-app/assistant/workbench/text-consult-timeout.html +++ b/emergency-app/assistant/workbench/text-consult-timeout.html @@ -64,7 +64,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
📋 咨询信息
-
咨询类型图文咨询
+
咨询对象咨询小助手
咨询单号ZX202688552270
发起时间2026-04-06 14:20
结束时间2026-04-13 14:20
diff --git a/emergency-app/expert/doc/PRD.md b/emergency-app/expert/doc/PRD.md index 2d6b4b4..71e1da5 100644 --- a/emergency-app/expert/doc/PRD.md +++ b/emergency-app/expert/doc/PRD.md @@ -11,23 +11,30 @@ ├── 工作台(底部Tab) │ ├── 工作台首页 │ │ ├── 图文咨询 -│ │ │ ├── 待回复 → 图文聊天 → 员工档案 -│ │ │ ├── 进行中 → 图文聊天 -│ │ │ └── 已完成 → 咨询完成详情 → 历史对话 +│ │ │ ├── 待回复 → 图文聊天(进行中) +│ │ │ ├── 进行中 → 图文聊天(进行中) +│ │ │ └── 已结束 +│ │ │ ├── 已完成 → 图文咨询完成详情 → 历史对话(只读)→ 咨询人健康档案 +│ │ │ └── 已超时 → 图文咨询已超时详情 → 历史对话(只读)→ 咨询人健康档案 │ │ └── 视频咨询 -│ │ ├── 待确认 → 视频预约确认 -│ │ ├── 进行中 → 视频进行中 → 视频通话 -│ │ └── 已完成 → 视频完成详情 +│ │ ├── 待确认 → 视频预约确认 → 咨询人健康档案 +│ │ ├── 待开始 → 视频待开始详情 → 咨询人健康档案 +│ │ └── 已结束 +│ │ ├── 已完成 → 视频完成详情 → 咨询人健康档案 +│ │ ├── 已取消 → 视频已取消详情 → 咨询人健康档案 +│ │ └── 已拒绝 → 视频已拒绝详情 → 咨询人健康档案 ├── 知识库(底部Tab) -│ ├── 知识库首页(4分类Tab) -│ └── 知识详情 -├── AI助手(底部Tab,共享模块) -├── 消息(底部Tab,共享模块) +│ ├── 知识库首页(分为知识文章和规章制度) +│ └── 知识详情/制度详情 +├── AI助手(底部Tab) +├── 消息(底部Tab) └── 我的(底部Tab) ├── 个人中心 - ├── 咨询统计 → 全部评价 + ├── 咨询统计 + ├── 我的评价 ├── 排班设置 - ├── 编辑资料 + ├── 个人信息设置 + │ └── 擅长疾病选择 └── 修改密码 ``` @@ -38,357 +45,498 @@ stateDiagram-v2 state "图文咨询" as TF { [*] --> 待回复 : 员工发起 待回复 --> 进行中 : 专家首次回复 - 进行中 --> 已完成 : 任一方结束 + 进行中 --> 已完成 : 任一方主动结束 + 进行中 --> 已超时 : 7天无回复自动关闭 } state "视频咨询" as VF { [*] --> 待确认 : 员工预约 - 待确认 --> 已确认 : 专家接受 - 待确认 --> 已拒绝 : 专家拒绝 - 已确认 --> 通话中 : 发起视频 - 通话中 --> 已完成 : 挂断 + 待确认 --> 待开始 : 专家接受 + 待确认 --> 已拒绝 : 专家拒绝(填写原因) + 待开始 --> 已取消 : 任一方取消预约 + 待开始 --> 已完成 : 完成通话 } ``` ## 页面清单 -| 序号 | 文件名 | 页面名称 | 所属模块 | -|------|--------|----------|----------| -| 1 | workbench/index.html | 工作台首页 | 工作台 | -| 2 | workbench/text-chat.html | 图文咨询 | 工作台 | -| 3 | workbench/text-consult-done.html | 咨询完成详情 | 工作台 | -| 4 | workbench/employee-profile.html | 员工健康档案 | 工作台 | -| 5 | workbench/consult-person-detail.html | 咨询人档案详情 | 工作台 | -| 6 | workbench/video-appt.html | 视频预约确认 | 工作台 | -| 7 | workbench/video-call.html | 视频通话 | 工作台 | -| 8 | workbench/video-done.html | 视频完成详情 | 工作台 | -| 9 | workbench/video-ongoing.html | 视频进行中 | 工作台 | -| 10 | knowledge/index.html | 知识库首页 | 知识库 | -| 11 | knowledge/detail.html | 知识详情 | 知识库 | -| 12 | ../ai-assistant/index.html | AI 助手(共享) | AI 助手 | -| 13 | ../message/index.html | 消息列表(共享) | 消息 | -| 14 | ../message/contacts.html | 通讯录(共享) | 消息 | -| 15 | ../message/im-chat.html | IM 聊天(共享) | 消息 | -| 16 | profile/index.html | 个人中心 | 我的 | -| 17 | profile/edit-profile.html | 编辑资料 | 我的 | -| 18 | profile/change-pwd.html | 修改密码 | 我的 | -| 19 | profile/schedule.html | 排班设置 | 我的 | -| 20 | profile/stats.html | 咨询统计 | 我的 | -| 21 | profile/reviews.html | 全部评价 | 我的 | +| 序号 | 文件名 | 页面名称 | 所属模块 | +|------|--------|-------------|-----------------| +| 1 | workbench/index.html | 工作台首页 | 工作台 | +| 2 | workbench/text-chat.html | 图文聊天 | 工作台·图文咨询 | +| 3 | workbench/text-chat-done.html | 历史对话(只读) | 工作台·图文咨询 | +| 4 | workbench/text-consult-done.html | 图文咨询完成详情 | 工作台·图文咨询 | +| 5 | workbench/text-consult-timeout.html | 图文咨询已超时详情 | 工作台·图文咨询 | +| 6 | workbench/video-appt.html | 视频预约确认 | 工作台·视频咨询 | +| 7 | workbench/video-ongoing.html | 视频待开始详情 | 工作台·视频咨询 | +| 8 | workbench/video-done.html | 视频完成详情 | 工作台·视频咨询 | +| 9 | workbench/video-cancelled.html | 视频已取消详情 | 工作台·视频咨询 | +| 10 | workbench/video-rejected.html | 视频已拒绝详情 | 工作台·视频咨询 | +| 11 | knowledge/index.html | 知识库首页 | 知识库 | +| 12 | knowledge/detail.html | 知识详情 | 知识库 | +| 13 | ../ai-assistant/index.html | AI 助手(共享) | AI 助手 | +| 14 | ../message/index.html | 消息列表(共享) | 消息 | +| 15 | ../message/contacts.html | 通讯录(共享) | 消息 | +| 16 | ../message/im-chat.html | IM 聊天(共享) | 消息 | +| 17 | profile/index.html | 个人中心 | 我的 | +| 18 | profile/stats.html | 咨询统计 | 我的 | +| 19 | profile/reviews.html | 我的评价 | 我的 | +| 20 | profile/schedule.html | 排班设置 | 我的 | +| 21 | profile/edit-profile.html | 个人信息设置 | 我的 | +| 22 | profile/edit-diseases.html | 擅长疾病选择 | 我的 | +| 23 | profile/change-pwd.html | 修改密码 | 我的 | +| 24 | ../assistant/workbench/employee-profile.html | 咨询人健康档案 | 工作台已结束图文/视频详情页面 | ## 逐页说明 --- +## 一、工作台模块 + ### 1. 工作台首页(workbench/index.html) -**功能说明:** 专家工作台入口,展示当前咨询任务队列,支持图文和视频两类咨询的分类管理。 +![页面截图](screenshots/index.jpg) + +**功能说明:** 专家工作台入口,展示当前咨询任务队列,支持图文和视频两类咨询的分类管理,右上角提供服务状态控制。 **业务规则:** -- 头部统计卡片展示:图文待回复数、视频待确认数、今日完成数、当前评分 -- 服务状态支持"服务中/暂停服务"切换(绿色/红色) -- 图文咨询分三个子Tab:待回复、进行中、已完成 -- 视频咨询分三个子Tab:待确认、进行中、已完成 +- 头部展示:图文待回复数、视频待确认数 +- 服务状态按钮支持"咨询已开启 / 咨询已关闭"切换,绿色/红色指示点区分状态 +- 一级 Tab 切换图文咨询 / 视频咨询两个面板 +- 图文咨询分三个二级 Tab:待回复、进行中、已结束(已完成、已超时) +- 视频咨询分三个二级 Tab:待确认、待开始、已结束(已完成、已拒绝、已取消) +- 底部 5 Tab 导航:工作台 / 知识库 / AI助手 / 消息 / 我的 **交互说明:** -- 一级Tab切换图文咨询/视频咨询 -- 点击待回复/进行中的咨询卡片跳转到图文聊天 -- 点击已完成的咨询卡片跳转到咨询完成详情 -- 点击视频待确认卡片跳转到视频预约确认 -- 点击视频进行中卡片跳转到视频进行中 -- 底部5Tab导航:工作台/知识库/AI助手/消息/我的 +- 点击服务状态按钮:弹出确认弹窗,确认后切换状态。 +- 点击图文"待回复 / 进行中"咨询卡片:跳转到图文聊天页 +- 点击图文"已完成"咨询卡片:跳转到图文咨询完成详情页 +- 点击图文"已超时"咨询卡片:跳转到图文咨询已超时详情页 +- 点击视频"待确认"咨询卡片:跳转到视频预约确认页 +- 点击视频"待开始"咨询卡片:跳转到视频待开始详情页 +- 点击视频"已完成"咨询卡片:跳转到视频完成详情页 +- 点击视频"已取消"咨询卡片:跳转到视频已取消详情页 +- 点击视频"已拒绝"咨询卡片:跳转到视频已拒绝详情页 --- -### 2. 图文咨询(workbench/text-chat.html) +## 二、图文咨询业务线 + +### 2. 图文聊天(workbench/text-chat.html) + +![页面截图](screenshots/text-chat.jpg) **功能说明:** 专家与员工的实时图文对话界面,支持文字、语音、图片发送及常用语快捷填充。 **业务规则:** -- 聊天区分员工消息(左侧白色气泡)和专家消息(右侧蓝色气泡) -- 支持文字、语音、图片三种消息类型 -- 常用语面板提供 5 条预设快捷语 +- 员工消息以左侧白色气泡展示,专家消息以右侧蓝色气泡展示 +- 如果员工发起咨询时,选择了咨询人档案,则聊天消息为咨询人档案卡片(含姓名、性别/年龄、身高/体重、问题描述‘最多显示两行’、持续时间标签、检查图片‘最多显示三张’) +- 聊天对话支持显示文字、语音、图片、文件、自定义卡片(位置、咨询人档案、体检报告、已结束本次咨询)消息类型 +- 常用语面板点击后可直接将常用语赋值到输入框中 +- 媒体选择面板提供相册、拍照、文件、位置四个选项 **交互说明:** -- 点击"查看档案"跳转到员工健康档案 -- 点击"结束咨询"弹出确认弹窗,确认后返回工作台首页 -- 点击闪电图标展开/收起常用语面板 -- 点击麦克风切换语音/文字输入模式 -- 点击加号展开媒体选择面板(拍照/图库) +- 点击对话中的顶部咨询人档案卡片:跳转到咨询人健康档案页 +- 点击对话中的位置卡片,进入二级页面,加载高德地图,显示位置信息 +- 点击对话中的体检报告卡片,进入二级页面,查看当前体检报告内容(参考体检模块) +- 点击对话中的文件,使用手机中的软件打开文件 +- 点击对话中的语音,播放语音 +- 点击右上角"结束咨询":弹出确认弹窗,确认后返回工作台首页,并且该对话发出一条“已结束本次咨询”的卡片消息。 +- 点击"⚡"图标:展开 / 收起常用语面板,点击常用语自动填入输入框 +- 点击"🎤"图标:切换语音 / 文字输入模式 +- 点击"+"图标:展开 / 收起媒体选择面板,参考旧业务操作 +- 点击发送按钮:将输入框内容发送为专家消息气泡 --- -### 3. 咨询完成详情(workbench/text-consult-done.html) +### 3. 历史对话(只读)(workbench/text-chat-done.html) -**功能说明:** 展示已完结的图文咨询全部信息,包括咨询统计、员工评价及健康档案。 +![页面截图](screenshots/text-chat-done.jpg) + +**功能说明:** 展示已结束图文咨询的历史对话记录,为只读模式,无输入区,底部显示咨询结束说明。 **业务规则:** -- 展示咨询类型、发起/完成时间、员工评分 -- 员工评价以黄色引用框展示 -- 健康档案分基本信息、生活习惯、身体情况三组 +- 布局与图文聊天页一致,但无导航栏右上角"结束咨询"按钮,无底部输入区 +- 底部固定条显示咨询状态文案: + - 正常完成:「— 本次咨询已结束 —」 + - 超时关闭:「— 长时间未回复系统已自动结束本次咨询 —」 **交互说明:** -- 点击"查看历史对话记录"跳转到图文聊天页(只读) -- 健康档案支持折叠/展开 +- 返回按钮:跳转到工作台首页 +- 对话内交互与图文聊天也面一致 --- -### 4. 员工健康档案(workbench/employee-profile.html) +### 4. 图文咨询完成详情(workbench/text-consult-done.html) -**功能说明:** 展示咨询员工的完整健康档案,供专家参考。 +![页面截图](screenshots/text-consult-done.jpg) + +**功能说明:** 展示已完成图文咨询的摘要信息,提供查看历史对话和咨询人健康档案的入口。 **业务规则:** -- 分三组展示:基本信息(姓名、性别/年龄、身高/体重)、生活习惯(吸烟、饮酒、饮食、睡眠)、身体情况(过敏史、遗传史、既往史) -- 过敏史以红色高亮标记 +- 顶部员工信息卡展示:头像、姓名、所属单位、"已完成"标签 +- 咨询信息区展示:咨询类型、咨询单号、发起时间、结束时间 **交互说明:** -- 返回按钮跳转到图文聊天页 +- 点击"查看历史对话记录":跳转到历史对话(只读)页 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 5. 咨询人档案详情(workbench/consult-person-detail.html) +### 5. 图文咨询已超时详情(workbench/text-consult-timeout.html) -**功能说明:** 展示咨询人的完整档案信息,包括个人基本信息、生活习惯、身体情况以及本次咨询的健康档案(问题描述、持续时间、检查资料、期望帮助)。 +![页面截图](screenshots/text-consult-timeout.jpg) + +**功能说明:** 展示因 7 天未回复被系统自动关闭的图文咨询详情,提示超时原因,并提供查看历史记录和健康档案的入口。 **业务规则:** -- 头部展示咨询人头像、姓名、性别/年龄、身高/体重 -- 生活习惯以标签形式展示,绿色标签表示良好习惯,橙色标签表示需关注项 -- 身体情况以网格布局展示过敏史、遗传史、既往史、其他疾病 -- 本次咨询档案展示问题描述、持续时间标签、检查资料图片、期望帮助 +- 顶部员工信息卡展示:头像、姓名、所属单位、"已超时"标签 +- 咨询信息区展示:咨询类型、咨询单号、发起时间、结束时间 +- 橙色警示卡片展示超时原因:「超过七天无回复,本次咨询已自动关闭。」 **交互说明:** -- 返回按钮跳转到上一页(图文聊天页或咨询完成详情页) +- 点击"查看历史对话记录":跳转到历史对话(只读)页 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- +## 三、视频咨询业务线 + ### 6. 视频预约确认(workbench/video-appt.html) -**功能说明:** 展示员工发起的视频咨询预约详情,专家可接受或拒绝。 +![页面截图](screenshots/video-appt.jpg) + +**功能说明:** 展示员工发起的视频咨询预约详情,专家可接受或拒绝预约。 **业务规则:** -- 预约信息卡展示预约时间、咨询类型、发起时间 -- 附带咨询人健康档案和咨询说明 +- 顶部员工信息区展示:头像、姓名性别年龄、"待确认"标签 +- 黄色预约信息卡展示:预约时间(高亮)、咨询类型、发起时间 +- 提供咨询人健康档案入口(点击跳转) +- 底部双按钮:拒绝预约/ 接受预约 **交互说明:** -- 点击"接受预约"弹出确认弹窗,确认后返回工作台首页 -- 点击"拒绝预约"拒绝该预约 -- 健康档案支持折叠/展开 +- 点击"接受预约":弹出确认弹窗,确认后返回工作台首页 +- 点击"拒绝预约":弹出拒绝弹窗(含必填原因文本框),填写原因后确认,返回工作台首页 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 7. 视频通话(workbench/video-call.html) +### 7. 视频待开始详情(workbench/video-ongoing.html) -**功能说明:** 专家与员工进行视频通话的全屏界面。 +![页面截图](screenshots/video-ongoing.jpg) + +**功能说明:** 已确认但尚未开始通话的视频咨询详情,显示预约信息并提供发起通话和取消预约的入口。 **业务规则:** -- 全屏深色背景,显示远端画面区、通话时长计时器、本地小窗 -- 底部三个控制按钮:麦克风、挂断、摄像头 +- 顶部员工信息区展示:头像、姓名、部门职位、"待开始"标签 +- 绿色预约信息卡展示:预约时间(高亮)、咨询类型、发起时间、接受时间 +- 提供咨询人健康档案入口 +- 咨询说明区提示:「请在预约时间内发起视频通话」 +- 底部按钮:取消预约和发起视频通话 **交互说明:** -- 点击麦克风切换静音/取消静音 -- 点击摄像头切换开关 -- 点击挂断弹出确认弹窗,确认后返回工作台首页 +- 点击"取消预约":弹出取消弹窗(含必填原因文本框),填写原因后确认,返回工作台首页 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 点击发起视频通话,打开IM视频通话拨打页面 +- 返回按钮:跳转到工作台首页 --- ### 8. 视频完成详情(workbench/video-done.html) -**功能说明:** 展示已完结视频咨询的详情,包括通话时长、评分评价、健康档案。 +![页面截图](screenshots/video-done.jpg) + +**功能说明:** 展示已完成视频咨询的详情,包含通话信息和咨询人健康档案入口。 **业务规则:** -- 展示咨询时间段、通话时长、员工评分 -- 附带员工评价和健康档案 +- 顶部员工信息区展示:头像、姓名性别年龄、"已完成"标签 +- 灰色信息卡展示:预约时间、咨询类型、拨打时间、通话时长 +- 提供咨询人健康档案入口 **交互说明:** -- 健康档案支持折叠/展开 -- 返回按钮跳转到工作台首页 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 9. 视频进行中(workbench/video-ongoing.html) +### 9. 视频已取消详情(workbench/video-cancelled.html) -**功能说明:** 已确认但尚未开始通话的视频咨询详情,提供发起通话入口。 +![页面截图](screenshots/video-cancelled.jpg) + +**功能说明:** 展示因员工/专家主动取消而终止的视频咨询详情,包含取消信息和原因。 **业务规则:** -- 预约信息卡展示预约时间、咨询类型、状态为"已确认" -- 附带健康档案和咨询说明 +- 顶部员工信息区展示:头像、姓名性别年龄、"已取消"标签 +- 灰色信息卡展示:预约时间、咨询类型、取消时间、取消方(员工/专家) +- 灰色左边框引用框展示取消原因 +- 提供咨询人健康档案入口 **交互说明:** -- 点击"发起视频通话"跳转到视频通话页 -- 健康档案支持折叠/展开 +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 10. 知识库首页(knowledge/index.html) +### 10. 视频已拒绝详情(workbench/video-rejected.html) -**功能说明:** 专家查阅专业医学知识的参考库,按分类浏览条目列表。 +![页面截图](screenshots/video-rejected.jpg) + +**功能说明:** 展示专家主动拒绝的视频咨询预约详情,包含拒绝信息和原因。 **业务规则:** -- 4个分类Tab:体检知识、药品知识、疾病知识、保健知识 -- 共10条知识条目,每条含图标、标题、摘要 +- 顶部员工信息区展示:头像、姓名性别年龄、"已拒绝"红色标签 +- 灰色信息卡展示:预约时间、咨询类型、拒绝时间、拒绝方(专家) +- 红色左边框引用框展示专家填写的拒绝原因 +- 提供咨询人健康档案入口 **交互说明:** -- 切换分类Tab显示对应知识列表 -- 点击知识条目跳转到知识详情(带key参数) +- 点击"咨询人健康档案":跳转到咨询人健康档案页 +- 返回按钮:跳转到工作台首页 --- -### 11. 知识详情(knowledge/detail.html) +## 四、知识库模块 -**功能说明:** 展示单条知识的完整内容,由URL参数动态渲染。 +### 11. 知识库首页(knowledge/index.html) -**业务规则:** -- 共支持9个知识条目的动态渲染 -- 每条含概述段落和2-3个主要内容分项 +![页面截图](screenshots/knowledge-index.jpg) -**交互说明:** -- 返回按钮跳转到知识库首页 +**功能说明:** 等后续“知识普及”模块规划,暂时不做,先显示“开发中,敬请期待~” --- -### 12. AI 助手(共享模块:../ai-assistant/index.html) +### 12. 知识详情(knowledge/detail.html) -**功能说明:** 专家端和小助手端共用的 AI 智能助手,提供医学知识问答辅助。 +![页面截图](screenshots/knowledge-detail.jpg) -**业务规则:** -- 通过 sessionStorage 的 `appRole` 标记区分当前端,动态设置底部导航栏的工作台返回目标 -- AI 回复为系统自动生成 - -**交互说明:** -- 底部输入框输入问题,AI 自动回复 -- 底部 Tab 导航切换到其他模块 +**功能说明:** 等后续“知识普及”模块规划 --- -### 13. 消息列表(共享模块:../message/index.html) +## 五、我的模块 -**功能说明:** 专家端和小助手端共用的内部消息模块,展示与其他角色的消息列表。 +### 13. 个人中心(profile/index.html) -**业务规则:** -- 通过 sessionStorage 的 `appRole` 标记区分当前端 -- 消息列表按最新消息时间倒序排列 -- 每条消息显示联系人头像、姓名、角色标签、最后一条消息预览、时间 - -**交互说明:** -- 点击消息项跳转到 IM 聊天页 -- 点击右上角通讯录图标跳转到通讯录页 -- 底部 Tab 导航切换到其他模块 - ---- - -### 14. 通讯录(共享模块:../message/contacts.html) - -**功能说明:** 展示系统内所有可联系的内部人员,支持按角色筛选和姓名搜索。 - -**业务规则:** -- 人员按角色分类展示 -- 支持搜索和角色筛选 - -**交互说明:** -- 点击联系人跳转到 IM 聊天页 -- 返回按钮跳转到消息列表 - ---- - -### 15. IM 聊天(共享模块:../message/im-chat.html) - -**功能说明:** 与内部人员的即时通讯聊天界面。 - -**交互说明:** -- 底部输入框输入文字并发送 -- 返回按钮跳转到消息列表 - ---- - -### 16. 个人中心(profile/index.html) +![页面截图](screenshots/profile-index.jpg) **功能说明:** 专家个人信息中心,展示基础信息及功能入口列表。 **业务规则:** -- 头部展示头像、姓名、科室职称、医院 -- 服务状态支持在线/暂停切换 -- 功能列表:咨询统计、排班设置、个人信息设置、修改密码、关于我们 +- 头部展示:头像、姓名、科室职称、所属医院 +- 服务状态按钮支持"咨询已开启 / 咨询已关闭"切换(与工作台首页状态联动) +- 功能列表分两组: + - 第一组:咨询统计(附今日次数)、我的评价(附综合评分)、排班设置、个人信息设置 + - 第二组:修改密码、关于我们 +- 底部"退出登录"红色按钮 **交互说明:** -- 点击各功能项跳转到对应页面 -- 点击"退出登录"弹出确认弹窗 +- 点击"咨询统计":跳转到咨询统计页 +- 点击"我的评价":跳转到全部评价页 +- 点击"排班设置":跳转到排班设置页 +- 点击"个人信息设置":跳转到个人信息设置页 +- 点击"修改密码":跳转到修改密码页 +- 点击服务状态按钮:弹出确认弹窗,确认后切换状态 +- 点击"退出登录":弹出确认弹窗 --- -### 17. 编辑资料(profile/edit-profile.html) +### 14. 咨询统计(profile/stats.html) + +![页面截图](screenshots/stats.jpg) + +**功能说明:** 展示专家的多维度咨询数据统计,含月度收益、咨询类型分布和月度趋势折线图。 + +**业务规则:** +- 月份切换器支持前后月份翻页 +- 收益概览展示:已结算收益(绿色)、未结算收益(橙色) +- 咨询类型分布:环形图 + 图例,展示图文/视频咨询次数和占比,以及进行中/已完成拆分 +- 月度趋势:折线图,展示当月每日咨询量,今日数据点高亮蓝色,点击数据点弹出详情悬浮卡 + +**交互说明:** +- 点击"‹ / ›"翻月按钮:切换统计月份 +- 点击折线图数据点:在数据点上方弹出悬浮卡,展示当日图文/视频咨询分类数据,点击悬浮卡以外区域:关闭悬浮卡 +- 返回按钮:跳转到个人中心 + +--- + +### 15. 全部评价(profile/reviews.html) + +![页面截图](screenshots/reviews.jpg) + +**功能说明:** 展示员工对专家的历史评价列表,含综合评分汇总。 + +**业务规则:** +- 固定头部展示综合评分:大字显示分值(如 4.9)、星级、评价总数 +- 右侧星级分布条形图展示 1–5 星各占比 +- 评价列表每条含:员工头像(部分匿名)、姓名、评价时间、星级、评价正文 + +**交互说明:** +- 返回按钮:跳转到咨询统计页 + +--- + +### 16. 排班设置(profile/schedule.html) + +![页面截图](screenshots/schedule.jpg) + +**功能说明:** 专家自主设置每周固定排班计划,按星期配置各时段的开诊状态和接诊人数上限。 + +**业务规则:** +- 顶部"开启视频咨询"总开关,控制是否接受视频咨询预约,开启时显示绿色状态文案 +- 每周排班以卡片列表展示(周一~周日),每天一个可折叠卡片 +- 卡片折叠状态显示:星期名称 + 开诊时段数摘要(如"4个时段开诊"或"休息") +- 每天分 4 个时段:上午 8:00–10:00、上午 10:00–12:00、下午 14:00–16:00、下午 16:00–18:00 +- 每个时段独立设置:开诊开关 + 接诊人数(±调节,范围 1–20 人) +- 关闭时段时人数显示"—"且不可编辑 +- 默认排班:周一~周五开诊(上午5人、下午4人),周六日休息 +- 默认展开周一卡片,其余折叠 +- 导航栏右侧"保存"按钮提交排班配置 + +**交互说明:** +- 点击视频咨询开关:切换开启/关闭状态,文案同步更新 +- 点击卡片头部:展开/折叠该天的时段设置 +- 点击时段开关:切换该时段开诊/关闭状态 +- 点击"−"按钮:人数减 1(最小为 1) +- 点击"+"按钮:人数加 1(最大为 20) +- 点击"保存":提交排班配置 +- 返回按钮:跳转到个人中心 + +--- + +### 17. 个人信息设置(profile/edit-profile.html) + +![页面截图](screenshots/edit-profile.jpg) **功能说明:** 专家编辑个人基本资料、擅长病种和个人简介。 **表单字段表:** -| 字段名 | 类型 | 必填 | 规则 | -|--------|------|------|------| -| 头像 | 图片上传 | 否 | 点击相机角标更换 | -| 姓名 | 文本输入 | 是 | - | -| 所属医院 | 文本输入 | 是 | - | -| 科室 | 文本输入 | 是 | - | -| 职称 | 文本输入 | 是 | - | -| 执业年限 | 文本输入 | 是 | - | -| 擅长病种 | 多选标签 | 否 | 10个可选标签,点击切换选中 | -| 个人简介 | 多行文本 | 否 | 最多200字 | -| 个人擅长 | 多行文本 | 否 | 最多300字 | +| 字段名 | 类型 | 必填 | 规则 | +|--------|------------|------|----------------------| +| 头像 | 图片上传 | 否 | 点击相机角标更换 ,支持拍照和图库 | +| 姓名 | 文本输入 | 是 | — | +| 所属医院 | 选择 | 是 | — | +| 科室 | 选择 | 是 | — | +| 职称 | 选择 | 是 | — | +| 擅长疾病 | 标签选择(跳转子页) | 否 | 已选标签只读展示,点击跳转擅长疾病选择页 | +| 个人简介 | 多行文本 | 否 | 最多 300 字 | +| 职业经历 | 多行文本 | 否 | 最多 300 字 | + +**交互说明:** +- 点击头像区相机角标:弹出底部弹窗,支持拍照和图库,进行更换头像 +- 点击"擅长疾病"区域:跳转到擅长疾病选择页 +- 点击导航栏"保存":提交编辑结果 +- 返回按钮:跳转到个人中心 --- -### 18. 修改密码(profile/change-pwd.html) +### 18. 擅长疾病选择(profile/edit-diseases.html) + +![页面截图](screenshots/edit-diseases.jpg) + +**功能说明:** 专家从按科室分类的疾病标签库中多选擅长病种,保存后同步回个人信息设置页。 + +**业务规则:** +- 顶部蓝色提示条展示已选数量(实时更新) +- 疾病按科室分类展示:心内科、内分泌科、神经内科、精神心理科、骨科/康复科等 +- 每个科室分类支持折叠 / 展开,默认第一个科室展开 +- 已选标签显示蓝色填充,未选标签显示灰色背景 + +**交互说明:** +- 点击科室分类标题:折叠 / 展开该科室疾病标签列表 +- 点击疾病标签:切换选中 / 未选中状态,顶部已选数量同步更新 +- 点击导航栏"保存":保存已选病种并返回个人信息设置页 +- 返回按钮:跳转到个人信息设置页 + +--- + +### 19. 修改密码(profile/change-pwd.html) + +![页面截图](screenshots/change-pwd.jpg) **功能说明:** 专家修改登录密码。 **表单字段表:** -| 字段名 | 类型 | 必填 | 规则 | -|--------|------|------|------| -| 当前密码 | 密码输入 | 是 | - | -| 新密码 | 密码输入 | 是 | 至少8位 | +| 字段名 | 类型 | 必填 | 规则 | +|--------|------|------|---------| +| 当前密码 | 密码输入 | 是 | — | +| 新密码 | 密码输入 | 是 | 按系统目前规则 | | 确认新密码 | 密码输入 | 是 | 须与新密码一致 | **交互说明:** -- 点击"保存修改"弹出成功提示,确认后返回个人中心 +- 点击"保存修改":弹出"修改成功"提示弹窗 +- 弹窗点击"确定":跳转到个人中心 +- 返回按钮:跳转到个人中心 --- -### 19. 排班设置(profile/schedule.html) +## 六、AI助手模块 -**功能说明:** 专家自主设置接诊日期和时段的接诊人数上限。 +### 20. AI 助手(../ai-assistant/index.html) + +![页面截图](screenshots/ai-assistant.jpg) + +**功能说明:** 后续规划,暂时显示”开发中,敬请期待~”。 + + +--- +## 七、消息模块 +### 21. 消息列表(../message/index.html) + +![页面截图](screenshots/message-index.jpg) + +**功能说明:** 内部消息模块,与当前系统中”咨询专家”、”咨询小助手”、”操作人员”、”专业人员”、”驻场人员”、”健康管理员”进行对话聊天的消息列表。 **业务规则:** -- 月历选择排班日期,已选日期显示蓝色圆形背景 -- 时段分上午(09:00-12:00)和下午(14:00-17:00) -- 接诊人数支持加减调节,范围1-10人 +- 消息列表按最新消息时间倒序排列 +- 每条消息显示联系人头像、姓名、角色标签、最后一条消息预览、时间 **交互说明:** -- 点击日期格子切换选中/未选中 -- 点击加减按钮调整接诊人数 -- 支持前后月份翻页 +- 点击消息项:跳转到 IM 聊天页 +- 点击右上角通讯录图标:跳转到通讯录页 +- 底部 Tab 导航切换到其他模块 --- -### 20. 咨询统计(profile/stats.html) +### 22. 通讯录(../message/contacts.html) -**功能说明:** 展示专家的多维度咨询数据统计。 +![页面截图](screenshots/message-contacts.jpg) -**业务规则:** -- 数据概览:今日完成、本周完成、本月完成、累计完成 -- 本月咨询类型分布:图文/视频占比 -- 近7日完成量柱状图 -- 综合评分卡:评分、星级、评价数、1-5星分布 +**功能说明:** 展示系统内所有可联系的内部人员,支持按角色筛选和姓名搜索。 **交互说明:** -- 点击"查看全部评价"跳转到全部评价页 +- 点击联系人:跳转到 IM 聊天页 +- 输入名称进行模糊搜索 +- 角色分类可收起展开 +- 返回按钮:跳转到消息列表 --- -### 21. 全部评价(profile/reviews.html) +### 23. IM 聊天(../message/im-chat.html) -**功能说明:** 展示员工对专家的历史评价列表。 +![页面截图](screenshots/message-im-chat.jpg) -**业务规则:** -- 顶部统计:评价总数、综合评分 -- 评价卡片含:员工头像(脱敏)、姓名、咨询类型标签、时间、星级、评价正文 +**功能说明:** 与内部人员的即时通讯聊天界面。 **交互说明:** -- 返回按钮跳转到咨询统计页 +- 底部输入框输入文字并发送 +- 支持语音和输入切换 +- 支持拍照和发送图库照片 +- 返回按钮:跳转到消息列表 + +--- +## 八、咨询详情共用模块 +### 24. 咨询人健康档案(../assistant/workbench/employee-profile.html) + +![页面截图](screenshots/employee-profile.jpg) + +**功能说明:** 展示咨询人的完整健康档案和本次咨询档案,由专家端和小助手端共用。专家端通过图文聊天、各类咨询详情页的"咨询人健康档案"入口跳转至此页面。 + +**业务规则:** +- 基本信息区展示:姓名、与本人关系、性别、年龄、身高、体重 +- 生活习惯区以标签展示:吸烟、饮酒、饮食、睡眠 +- 身体情况区展示:过敏史、遗传史、既往史、其他疾病(红色高亮) +- 本次咨询档案区展示:问题描述、持续时间标签、检查资料图片、就诊经历(医院/科室/疾病名称)、期望帮助 diff --git a/emergency-app/expert/doc/screenshot.mjs b/emergency-app/expert/doc/screenshot.mjs new file mode 100644 index 0000000..30c4e48 --- /dev/null +++ b/emergency-app/expert/doc/screenshot.mjs @@ -0,0 +1,101 @@ +/** + * 专家端 APP 页面截图脚本 + * 按规范:移除 phone-shell 高度限制、视口 390px、JPEG 85% + */ +import { chromium } from 'playwright'; +import { fileURLToPath } from 'url'; +import path from 'path'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const screenshotsDir = path.join(__dirname, 'screenshots'); + +// 专家端所有页面 +const pages = [ + // 工作台 + { file: '../../expert/workbench/index.html', name: 'index' }, + { file: '../../expert/workbench/text-chat.html', name: 'text-chat' }, + { file: '../../expert/workbench/text-chat-done.html', name: 'text-chat-done' }, + { file: '../../expert/workbench/text-consult-done.html', name: 'text-consult-done' }, + { file: '../../expert/workbench/text-consult-timeout.html', name: 'text-consult-timeout' }, + { file: '../../expert/workbench/video-appt.html', name: 'video-appt' }, + { file: '../../expert/workbench/video-ongoing.html', name: 'video-ongoing' }, + { file: '../../expert/workbench/video-done.html', name: 'video-done' }, + { file: '../../expert/workbench/video-cancelled.html', name: 'video-cancelled' }, + { file: '../../expert/workbench/video-rejected.html', name: 'video-rejected' }, + // 知识库 + { file: '../../expert/knowledge/index.html', name: 'knowledge-index' }, + { file: '../../expert/knowledge/detail.html', name: 'knowledge-detail' }, + // 个人中心 + { file: '../../expert/profile/index.html', name: 'profile-index' }, + { file: '../../expert/profile/edit-profile.html', name: 'edit-profile' }, + { file: '../../expert/profile/edit-diseases.html', name: 'edit-diseases' }, + { file: '../../expert/profile/schedule.html', name: 'schedule' }, + { file: '../../expert/profile/stats.html', name: 'stats' }, + { file: '../../expert/profile/reviews.html', name: 'reviews' }, + { file: '../../expert/profile/change-pwd.html', name: 'change-pwd' }, + // 共享模块 + { file: '../../ai-assistant/index.html', name: 'ai-assistant' }, + { file: '../../message/index.html', name: 'message-index' }, + { file: '../../message/contacts.html', name: 'message-contacts' }, + { file: '../../message/im-chat.html', name: 'message-im-chat' }, +]; + +(async () => { + const browser = await chromium.launch({ + executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', + args: ['--no-sandbox', '--disable-setuid-sandbox'], + }); + const context = await browser.newContext({ viewport: { width: 390, height: 844 } }); + + for (const p of pages) { + const page = await context.newPage(); + const filePath = path.resolve(__dirname, p.file); + await page.goto(`file:///${filePath.replace(/\\/g, '/')}`, { waitUntil: 'networkidle' }); + + // 移除 phone-shell 高度限制、圆角、阴影;展开内容 + await page.evaluate(() => { + const shell = document.querySelector('.phone-shell'); + if (shell) { + shell.style.height = 'auto'; + shell.style.borderRadius = '0'; + shell.style.boxShadow = 'none'; + shell.style.overflow = 'visible'; + } + const content = document.querySelector('.page-content') || document.querySelector('.scroll-content'); + if (content) { + content.style.overflow = 'visible'; + content.style.maxHeight = 'none'; + content.style.height = 'auto'; + content.style.flex = 'none'; + } + document.body.style.padding = '0'; + document.body.style.minHeight = 'auto'; + document.body.style.background = '#fff'; + }); + + // 等待渲染 + await page.waitForTimeout(300); + + // 获取 phone-shell 实际高度,调整视口 + const height = await page.evaluate(() => { + const shell = document.querySelector('.phone-shell'); + return shell ? shell.scrollHeight : document.body.scrollHeight; + }); + await page.setViewportSize({ width: 390, height: Math.max(height, 200) }); + + // 截取 phone-shell 元素 + const shell = await page.$('.phone-shell'); + const target = shell || page; + await target.screenshot({ + path: path.join(screenshotsDir, `${p.name}.jpg`), + type: 'jpeg', + quality: 85, + }); + + console.log(`✓ ${p.name}.jpg`); + await page.close(); + } + + await browser.close(); + console.log(`\n完成!共截取 ${pages.length} 张截图`); +})(); diff --git a/emergency-app/expert/doc/screenshots/ai-assistant.jpg b/emergency-app/expert/doc/screenshots/ai-assistant.jpg new file mode 100644 index 0000000..2788d31 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/ai-assistant.jpg differ diff --git a/emergency-app/expert/doc/screenshots/change-pwd.jpg b/emergency-app/expert/doc/screenshots/change-pwd.jpg new file mode 100644 index 0000000..7f70b2a Binary files /dev/null and b/emergency-app/expert/doc/screenshots/change-pwd.jpg differ diff --git a/emergency-app/expert/doc/screenshots/edit-diseases.jpg b/emergency-app/expert/doc/screenshots/edit-diseases.jpg new file mode 100644 index 0000000..ef48780 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/edit-diseases.jpg differ diff --git a/emergency-app/expert/doc/screenshots/edit-profile.jpg b/emergency-app/expert/doc/screenshots/edit-profile.jpg new file mode 100644 index 0000000..49b9913 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/edit-profile.jpg differ diff --git a/emergency-app/expert/doc/screenshots/employee-profile.jpg b/emergency-app/expert/doc/screenshots/employee-profile.jpg new file mode 100644 index 0000000..0e31635 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/employee-profile.jpg differ diff --git a/emergency-app/expert/doc/screenshots/index.jpg b/emergency-app/expert/doc/screenshots/index.jpg new file mode 100644 index 0000000..d4ff5ed Binary files /dev/null and b/emergency-app/expert/doc/screenshots/index.jpg differ diff --git a/emergency-app/expert/doc/screenshots/knowledge-detail.jpg b/emergency-app/expert/doc/screenshots/knowledge-detail.jpg new file mode 100644 index 0000000..3a5b22c Binary files /dev/null and b/emergency-app/expert/doc/screenshots/knowledge-detail.jpg differ diff --git a/emergency-app/expert/doc/screenshots/knowledge-index.jpg b/emergency-app/expert/doc/screenshots/knowledge-index.jpg new file mode 100644 index 0000000..6908e4e Binary files /dev/null and b/emergency-app/expert/doc/screenshots/knowledge-index.jpg differ diff --git a/emergency-app/expert/doc/screenshots/message-contacts.jpg b/emergency-app/expert/doc/screenshots/message-contacts.jpg new file mode 100644 index 0000000..0359cd0 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/message-contacts.jpg differ diff --git a/emergency-app/expert/doc/screenshots/message-im-chat.jpg b/emergency-app/expert/doc/screenshots/message-im-chat.jpg new file mode 100644 index 0000000..912b0ee Binary files /dev/null and b/emergency-app/expert/doc/screenshots/message-im-chat.jpg differ diff --git a/emergency-app/expert/doc/screenshots/message-index.jpg b/emergency-app/expert/doc/screenshots/message-index.jpg new file mode 100644 index 0000000..7362017 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/message-index.jpg differ diff --git a/emergency-app/expert/doc/screenshots/profile-index.jpg b/emergency-app/expert/doc/screenshots/profile-index.jpg new file mode 100644 index 0000000..ac2c2af Binary files /dev/null and b/emergency-app/expert/doc/screenshots/profile-index.jpg differ diff --git a/emergency-app/expert/doc/screenshots/reviews.jpg b/emergency-app/expert/doc/screenshots/reviews.jpg new file mode 100644 index 0000000..76a4fc3 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/reviews.jpg differ diff --git a/emergency-app/expert/doc/screenshots/schedule.jpg b/emergency-app/expert/doc/screenshots/schedule.jpg new file mode 100644 index 0000000..da7c3b2 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/schedule.jpg differ diff --git a/emergency-app/expert/doc/screenshots/stats.jpg b/emergency-app/expert/doc/screenshots/stats.jpg new file mode 100644 index 0000000..e434e37 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/stats.jpg differ diff --git a/emergency-app/expert/doc/screenshots/text-chat-done.jpg b/emergency-app/expert/doc/screenshots/text-chat-done.jpg new file mode 100644 index 0000000..163462e Binary files /dev/null and b/emergency-app/expert/doc/screenshots/text-chat-done.jpg differ diff --git a/emergency-app/expert/doc/screenshots/text-chat.jpg b/emergency-app/expert/doc/screenshots/text-chat.jpg new file mode 100644 index 0000000..bfb72e8 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/text-chat.jpg differ diff --git a/emergency-app/expert/doc/screenshots/text-consult-done.jpg b/emergency-app/expert/doc/screenshots/text-consult-done.jpg new file mode 100644 index 0000000..55048ae Binary files /dev/null and b/emergency-app/expert/doc/screenshots/text-consult-done.jpg differ diff --git a/emergency-app/expert/doc/screenshots/text-consult-timeout.jpg b/emergency-app/expert/doc/screenshots/text-consult-timeout.jpg new file mode 100644 index 0000000..5d340f8 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/text-consult-timeout.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-appt.jpg b/emergency-app/expert/doc/screenshots/video-appt.jpg new file mode 100644 index 0000000..ec02f9a Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-appt.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-call.jpg b/emergency-app/expert/doc/screenshots/video-call.jpg new file mode 100644 index 0000000..b9bcdc9 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-call.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-cancelled.jpg b/emergency-app/expert/doc/screenshots/video-cancelled.jpg new file mode 100644 index 0000000..26d1db2 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-cancelled.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-done.jpg b/emergency-app/expert/doc/screenshots/video-done.jpg new file mode 100644 index 0000000..4024574 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-done.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-ongoing.jpg b/emergency-app/expert/doc/screenshots/video-ongoing.jpg new file mode 100644 index 0000000..2ff7da4 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-ongoing.jpg differ diff --git a/emergency-app/expert/doc/screenshots/video-rejected.jpg b/emergency-app/expert/doc/screenshots/video-rejected.jpg new file mode 100644 index 0000000..f874af1 Binary files /dev/null and b/emergency-app/expert/doc/screenshots/video-rejected.jpg differ diff --git a/emergency-app/expert/knowledge/index.html b/emergency-app/expert/knowledge/index.html index beb36ae..72259cf 100644 --- a/emergency-app/expert/knowledge/index.html +++ b/emergency-app/expert/knowledge/index.html @@ -31,6 +31,27 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items: .tab-item .tab-label { font-size: 10px; color: #999; font-weight: 500; } .tab-item.active .tab-label { color: #1677ff; } .tab-badge { position: absolute; top: 2px; right: 18px; background: #ff4d4f; color: #fff; font-size: 10px; font-weight: 700; min-width: 16px; height: 16px; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 4px; } + /* ========== 子分类Tab ========== */ + .sub-tabs { display: flex; gap: 8px; padding: 10px 16px; background: #fff; flex-shrink: 0; } + .sub-tab { + font-size: 12px; padding: 4px 14px; border-radius: 16px; + background: #f5f5f5; color: #666; cursor: pointer; transition: all 0.2s; + } + .sub-tab.active { background: #e6f4ff; color: #1677ff; font-weight: 600; } + + /* ========== PDF文档条目 ========== */ + .pdf-item { + background: #fff; border-radius: 10px; padding: 12px 14px; + display: flex; align-items: center; gap: 10px; + box-shadow: 0 1px 4px rgba(0,0,0,0.06); margin-bottom: 10px; cursor: pointer; + } + .pdf-item__icon { + width: 44px; height: 44px; border-radius: 10px; background: #fff1f0; + display: flex; align-items: center; justify-content: center; flex-shrink: 0; + } + .pdf-item__info { flex: 1; } + .pdf-item__name { font-size: 14px; font-weight: 600; color: #1a1a1a; } + .pdf-item__meta { font-size: 12px; color: #999; margin-top: 3px; display: flex; gap: 8px; } @@ -48,14 +69,22 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
知识库
- -
-
体检知识
-
药品知识
-
疾病知识
-
保健知识
+ +
+
知识文章
+
规章制度
+ +
+ +
+
体检知识
+
药品知识
+
疾病知识
+
保健知识
+
+
@@ -146,6 +175,54 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
+
+ + +
@@ -178,19 +255,31 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items: /* 标记当前角色为专家 */ sessionStorage.setItem('appRole', 'expert'); +/** + * 切换一级Tab(知识文章 / 规章制度) + */ +function switchTopTab(el, panelId) { + el.closest('.seg-tabs').querySelectorAll('.seg-tab').forEach(function(t) { + t.classList.remove('active'); + }); + el.classList.add('active'); + var displayMap = { 'panel-article': 'flex', 'panel-rule': 'block' }; + ['panel-article', 'panel-rule'].forEach(function(id) { + var p = document.getElementById(id); + if (p) p.style.display = id === panelId ? displayMap[id] : 'none'; + }); +} + /** * 切换知识库分类Tab * @param {HTMLElement} el - 被点击的Tab元素 * @param {string} panelId - 对应面板的ID */ function switchKbTab(el, panelId) { - // 移除所有Tab的选中状态 - el.closest('.seg-tabs').querySelectorAll('.seg-tab').forEach(function(t) { + el.closest('.sub-tabs').querySelectorAll('.sub-tab').forEach(function(t) { t.classList.remove('active'); }); - // 设置当前Tab为选中 el.classList.add('active'); - // 切换面板显示 ['kb-exam', 'kb-drug', 'kb-disease', 'kb-health'].forEach(function(id) { var p = document.getElementById(id); if (p) p.style.display = id === panelId ? 'block' : 'none'; diff --git a/emergency-app/expert/profile/change-pwd.html b/emergency-app/expert/profile/change-pwd.html index 5c7c293..11e9628 100644 --- a/emergency-app/expert/profile/change-pwd.html +++ b/emergency-app/expert/profile/change-pwd.html @@ -59,7 +59,7 @@
新密码 - +
diff --git a/emergency-app/expert/profile/edit-diseases.html b/emergency-app/expert/profile/edit-diseases.html new file mode 100644 index 0000000..660ba7c --- /dev/null +++ b/emergency-app/expert/profile/edit-diseases.html @@ -0,0 +1,206 @@ + + + + + + 擅长疾病 - 个人信息设置 | 健康长庆原型 + + + + +
+ +
+ 9:41 +
●●●WiFi🔋
+
+ + + + + +
+ + 已选 3 +
+ + +
+ + +
+
+
+ + 心内科 +
+
+
+
+
高血压
+
冠心病
+
心律失常
+
心力衰竭
+
心肌病
+
心绞痛
+
+
+
+ + +
+
+
+ + 内分泌科 +
+
+
+
+
糖尿病
+
高脂血症
+
甲状腺疾病
+
痛风
+
骨质疏松
+
+
+
+ + +
+
+
+ + 神经内科 +
+
+
+
+
脑卒中
+
头痛/偏头痛
+
睡眠障碍
+
帕金森病
+
癫痫
+
+
+
+ + +
+
+
+ + 精神心理科 +
+
+
+
+
焦虑抑郁
+
失眠症
+
躯体化障碍
+
+
+
+ + +
+
+
+ + 骨科/康复科 +
+
+
+
+
颈椎病
+
腰椎间盘突出
+
关节炎
+
骨折康复
+
+
+
+ +
+
+ + + + diff --git a/emergency-app/expert/profile/edit-profile.html b/emergency-app/expert/profile/edit-profile.html index d7b20fa..6be8cc3 100644 --- a/emergency-app/expert/profile/edit-profile.html +++ b/emergency-app/expert/profile/edit-profile.html @@ -70,43 +70,34 @@ 职称
-
- 执业年限 - -
+
- -
擅长病种
-
-
点击选择/取消(可多选)
-
- -
高血压
-
冠心病
-
心律失常
- -
心力衰竭
-
糖尿病
-
高脂血症
-
脑卒中
-
睡眠障碍
-
颈椎病
-
焦虑抑郁
+ +
擅长疾病
+ +
+
+ +
高血压
+
冠心病
+
心律失常
+ +
个人简介
-
已输入 68/200 字
+
已输入 68/300 字
-
个人擅长
+
职业经历
- +
已输入 62/300 字
diff --git a/emergency-app/expert/profile/index.html b/emergency-app/expert/profile/index.html index 22c77a7..7825fcd 100644 --- a/emergency-app/expert/profile/index.html +++ b/emergency-app/expert/profile/index.html @@ -56,7 +56,7 @@
@@ -71,6 +71,12 @@ 今日 18 次 + +
+ 我的评价 + 4.9 分 + +
📅排班设置 @@ -112,6 +118,18 @@
+ + +
@@ -152,19 +170,31 @@ let isPaused = false; /** - * 切换服务状态(服务中/暂停服务) + * 点击按钮时弹窗确认 */ function togglePause() { + var title = isPaused ? '开启咨询' : '关闭咨询'; + var body = isPaused ? '是否要开启咨询?开启咨询后,员工可发起咨询。' : '是否要关闭咨询?关闭咨询后,员工无法发起咨询。'; + document.getElementById('pause-modal-title').textContent = title; + document.getElementById('pause-modal-body').textContent = body; + openModal('modal-pause'); + } + + /** + * 确认切换服务状态 + */ + function confirmTogglePause() { isPaused = !isPaused; - const bg = isPaused ? '#ff4d4f' : '#52c41a'; - const text = isPaused ? '暂停服务' : '服务中'; - const mineBtn = document.getElementById('pause-btn-mine'); + var bg = isPaused ? '#ff4d4f' : '#52c41a'; + var text = isPaused ? '咨询已关闭' : '咨询已开启'; + var mineBtn = document.getElementById('pause-btn-mine'); if (mineBtn) { - const dot = mineBtn.querySelector('span'); + var dot = mineBtn.querySelector('span'); if (dot) dot.style.background = bg; - /* 更新按钮文字 */ - mineBtn.childNodes.forEach(function(n) { if (n.nodeType === 3) n.textContent = text; }); + var pauseText = document.getElementById('pause-text'); + if (pauseText) pauseText.textContent = text; } + closeModal('modal-pause'); } /** diff --git a/emergency-app/expert/profile/reviews.html b/emergency-app/expert/profile/reviews.html index e57974f..d8e48f6 100644 --- a/emergency-app/expert/profile/reviews.html +++ b/emergency-app/expert/profile/reviews.html @@ -40,10 +40,43 @@ 全部评价
- -
- 1,248 条评价 - ⭐ 综合 4.9 + +
+
综合评分
+
+
+
4.9
+
⭐⭐⭐⭐⭐
+
1,248次评价
+
+
+
+ 5 +
+ 88% +
+
+ 4 +
+ 8% +
+
+ 3 +
+ 3% +
+
+ 2 +
+ 1% +
+
+ 1 +
+ 0% +
+
+
@@ -53,8 +86,8 @@
👩
- 孙*丽 - 视频咨询 + 匿名评价 +
昨天
@@ -67,8 +100,8 @@
👨
- 赵*磊 - 图文咨询 + 赵磊 +
2026-04-08
@@ -81,8 +114,8 @@
👩
- 王*芳 - 视频咨询 + 王芳 +
2026-04-07
@@ -95,8 +128,8 @@
👨
- 李*建 - 图文咨询 + 李建 +
2026-04-06
diff --git a/emergency-app/expert/profile/schedule.html b/emergency-app/expert/profile/schedule.html index f52d9c5..a0d277d 100644 --- a/emergency-app/expert/profile/schedule.html +++ b/emergency-app/expert/profile/schedule.html @@ -5,7 +5,6 @@ 个人中心 - 排班设置 | 健康长庆原型 -
-
9:41
●●●WiFi🔋
- - - - -
- -
-
- 2026年4月 -
- - -
-
- -
-
-
-
-
-
-
-
- -
-
1
-
2
-
3
-
4
-
5
-
6
- -
7
-
8
-
9
-
10
-
11
-
12
-
13
- -
14
-
15
-
16
-
17
-
18
-
19
-
20
-
+
+ +
+ 开启视频咨询 +
+ 已开启 — 患者可预约视频咨询
- - -
-
时段设置(每日)
- -
-
-
上午 09:00 – 12:00
-
每时段接诊人数
-
-
- - 3 - -
-
- -
-
-
下午 14:00 – 17:00
-
每时段接诊人数
-
-
- - 3 - -
-
+ +
+ + 每周排班设置
+ +
+
- - + \ No newline at end of file diff --git a/emergency-app/expert/profile/stats.html b/emergency-app/expert/profile/stats.html index c5e8a7c..cca3545 100644 --- a/emergency-app/expert/profile/stats.html +++ b/emergency-app/expert/profile/stats.html @@ -17,6 +17,16 @@ .nav-title { position: absolute; left: 50%; transform: translateX(-50%); font-size: 17px; font-weight: 600; color: #1a1a1a; white-space: nowrap; } .scroll-content { flex: 1; overflow-y: auto; background: #f7f8fa; } .scroll-content::-webkit-scrollbar { display: none; } + + /* 数据点悬浮提示框 */ + .data-tooltip { position: absolute; background: #fff; border-radius: 8px; padding: 12px; box-shadow: 0 4px 16px rgba(0,0,0,0.15); display: none; z-index: 100; min-width: 160px; } + .data-tooltip::before { content: ''; position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid #fff; } + .data-tooltip-date { font-size: 13px; font-weight: 600; color: #1a1a1a; margin-bottom: 8px; text-align: center; } + .data-tooltip-item { display: flex; align-items: center; justify-content: space-between; font-size: 12px; margin-bottom: 4px; } + .data-tooltip-item:last-child { margin-bottom: 0; } + .data-tooltip-label { color: #666; display: flex; align-items: center; gap: 4px; } + .data-tooltip-value { font-weight: 600; color: #1a1a1a; } + .data-tooltip-badge { display: inline-block; width: 8px; height: 8px; border-radius: 2px; } @@ -39,157 +49,246 @@
- -
-
数据概览
-
- -
-
18
-
今日完成
-
- -
-
87
-
本周完成
-
- -
-
312
-
本月完成
-
- -
-
1,248
-
累计完成
-
-
-
- -
-
本月咨询类型
- -
- 图文咨询 -
-
-
- 213 + +
+ +
+ + +
2026年4月
+ +
- -
- 视频咨询 -
-
-
- 99 -
-
- -
-
近7日完成量
-
- -
-
12
-
-
4/2
+ +
+ +
+
已结算收益
+
¥8,640
- -
-
15
-
-
4/3
-
- -
-
20
-
-
4/4
-
- -
-
10
-
-
4/5
-
- -
-
22
-
-
4/6
-
- -
-
16
-
-
4/7
-
- -
-
18
-
-
今日
+ +
+
未结算收益
+
¥2,340
-
- -
-
-
综合评分
- - -
-
- -
-
4.9
-
⭐⭐⭐⭐⭐
-
1,248次评价
-
- + +
+ + + + + + + + + + 312 + 总咨询 + + +
- -
- 5 -
- 88% + +
+
+
+
图文咨询
+
213(68%)
+
进行中64 / 已完成149
+
- -
- 4 -
- 8% + +
+
+
+
视频咨询
+
99(32%)
+
进行中20 / 已完成79
+
- -
- 3 -
- 3% +
+
+ + +
+
月度趋势
+ + + + + + + + + + + + + + + + + + + + + + + + 1 + 6 + 11 + 16 + + 21 + 26 + 30 + + + 18 + + + 0 + 5 + 10 + 15 + 20 + + + +
+
4月17日
+
+ 图文咨询 + 12次 (进行中6 / 已完成6)
- -
- 2 -
- 1% -
- -
- 1 -
- 0% +
+ 视频咨询 + 6次 (进行中2 / 已完成4)
-
+
+ diff --git a/emergency-app/expert/workbench/index.html b/emergency-app/expert/workbench/index.html index 664725c..5fa01fa 100644 --- a/emergency-app/expert/workbench/index.html +++ b/emergency-app/expert/workbench/index.html @@ -48,6 +48,16 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items: .cc-preview { font-size: 13px; color: #666; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 210px; } .cc-time { font-size: 12px; color: #bbb; flex-shrink: 0; } .unread-dot { width: 8px; height: 8px; border-radius: 50%; background: #ff4d4f; flex-shrink: 0; } +/* 弹窗样式 */ +.modal-center { display: none; position: absolute; inset: 0; background: rgba(0,0,0,0.5); z-index: 200; align-items: center; justify-content: center; } +.modal-center.active { display: flex; } +.modal-box { width: 280px; background: #fff; border-radius: 16px; overflow: hidden; } +.modal-box .modal-title { padding: 20px 20px 8px; font-size: 17px; font-weight: 700; text-align: center; color: #1a1a1a; } +.modal-box .modal-body { padding: 8px 20px 20px; font-size: 14px; color: #666; text-align: center; line-height: 1.6; } +.modal-box .modal-actions { display: flex; border-top: 1px solid #f0f0f0; } +.modal-box .modal-actions button { flex: 1; padding: 14px; font-size: 16px; cursor: pointer; background: none; border: none; } +.modal-box .modal-actions button:first-child { color: #666; border-right: 1px solid #f0f0f0; } +.modal-box .modal-actions button:last-child { color: #1677ff; font-weight: 600; } @@ -69,7 +79,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
@@ -139,7 +149,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items: diff --git a/emergency-app/expert/workbench/video-appt.html b/emergency-app/expert/workbench/video-appt.html index b7dbb23..878b05d 100644 --- a/emergency-app/expert/workbench/video-appt.html +++ b/emergency-app/expert/workbench/video-appt.html @@ -29,6 +29,10 @@ .modal-box .modal-actions button { flex: 1; padding: 14px; font-size: 16px; cursor: pointer; background: none; border: none; } .modal-box .modal-actions button:first-child { color: #666; border-right: 1px solid #f0f0f0; } .modal-box .modal-actions button:last-child { color: #1677ff; font-weight: 600; } + .reject-reason { width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px; resize: none; font-family: inherit; line-height: 1.5; outline: none; transition: border-color 0.2s; } + .reject-reason:focus { border-color: #1677ff; } + .reject-reason.error { border-color: #ff4d4f; } + .reject-hint { display: none; font-size: 12px; color: #ff4d4f; text-align: left; margin-top: 4px; } /* ===== 页面专属样式 ===== */ /* 员工信息区 */ @@ -89,64 +93,66 @@
预约时间 - 今日 14:00-14:30 + 2026-03-24 15:00-15:30
咨询类型 视频咨询
- 预约时间 + 发起时间 2026-04-08 09:30
- -
-
+ +
+
咨询人健康档案 - -
-
-
姓名王芳
-
性别/年龄女 / 34岁
-
身高/体重160cm / 58kg
-
饮酒情况偶尔饮酒
-
饮食习惯偏油腻
-
睡眠质量一般
-
家族病史高血压
-
异常指标血脂偏高
+ 查看详情 ›
- -
-
咨询说明
-
最近体检发现血脂偏高,想咨询一下饮食和生活方式方面需要注意什么,以及是否需要进一步检查。
-
+
- +
+ + +
diff --git a/emergency-app/expert/workbench/video-cancelled.html b/emergency-app/expert/workbench/video-cancelled.html new file mode 100644 index 0000000..f611994 --- /dev/null +++ b/emergency-app/expert/workbench/video-cancelled.html @@ -0,0 +1,103 @@ + + + + + + 咨询详情(已取消) - 咨询专家 + + + +
+
+ 9:41 +
●●●WiFi🔋
+
+ +
+ +
+
+ 预约时间 + 2026-03-24 15:00-15:30 +
+
+ 咨询类型 + 视频咨询 +
+
+ 取消时间 + 2026-03-24 13:34 +
+
+ 取消方 + 员工 +
+
+
+
取消原因
+
临时有紧急会议,无法按时参加视频咨询,后续再重新预约。
+
+ +
+
+ 咨询人健康档案 + 查看详情 › +
+
+ +
+
+ + + diff --git a/emergency-app/expert/workbench/video-done.html b/emergency-app/expert/workbench/video-done.html index 7c7b4d4..e6b7825 100644 --- a/emergency-app/expert/workbench/video-done.html +++ b/emergency-app/expert/workbench/video-done.html @@ -78,59 +78,49 @@
- 咨询时间 - 昨天 10:00-10:28 + 预约时间 + 2026-03-24 15:00-15:30 +
+
+ 咨询类型 + 视频咨询 +
+
+ 拨打时间 + 2026-03-24 15:00
通话时长 28分钟
-
- 员工评分 - ★★★★★ 5.0 -
+
- - -
-
+ + + + + +
+
咨询人健康档案 - -
-
-
姓名孙丽
-
性别/年龄女 / 26岁
-
身高/体重162cm / 50kg
-
饮食习惯清淡饮食
-
睡眠质量一般
-
健康问题颈椎不适
+ 查看详情 ›
-
-
咨询说明
-
长期伏案工作导致颈椎不适,想了解日常保养方法和是否需要就医检查。
-
+ + + +
diff --git a/emergency-app/expert/workbench/video-ongoing.html b/emergency-app/expert/workbench/video-ongoing.html index 4e90902..7eba0d2 100644 --- a/emergency-app/expert/workbench/video-ongoing.html +++ b/emergency-app/expert/workbench/video-ongoing.html @@ -55,7 +55,24 @@ /* 底部操作栏 */ .bottom-actions { padding: 12px 16px 28px; background: #fff; display: flex; gap: 12px; border-top: 1px solid #f0f0f0; flex-shrink: 0; } - .bottom-actions__btn { flex: 1; height: 48px; border-radius: 8px; font-size: 16px; font-weight: 600; cursor: pointer; background: #52c41a; border: none; color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; } + .bottom-actions__btn { flex: 1; height: 48px; border-radius: 8px; font-size: 16px; font-weight: 600; cursor: pointer; border: none; color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; } + .bottom-actions__btn--cancel { background: #fff; border: 1px solid #ff4d4f; color: #ff4d4f; } + .bottom-actions__btn--call { background: #52c41a; } + + /* 弹窗样式 */ + .modal-center { display: none; position: absolute; inset: 0; background: rgba(0,0,0,0.5); z-index: 200; align-items: center; justify-content: center; } + .modal-center.active { display: flex; } + .modal-box { width: 280px; background: #fff; border-radius: 16px; overflow: hidden; } + .modal-box .modal-title { padding: 20px 20px 8px; font-size: 17px; font-weight: 700; text-align: center; color: #1a1a1a; } + .modal-box .modal-body { padding: 8px 20px 20px; font-size: 14px; color: #666; text-align: center; line-height: 1.6; } + .modal-box .modal-actions { display: flex; border-top: 1px solid #f0f0f0; } + .modal-box .modal-actions button { flex: 1; padding: 14px; font-size: 16px; cursor: pointer; background: none; border: none; } + .modal-box .modal-actions button:first-child { color: #666; border-right: 1px solid #f0f0f0; } + .modal-box .modal-actions button:last-child { color: #1677ff; font-weight: 600; } + .cancel-reason { width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px; resize: none; font-family: inherit; line-height: 1.5; outline: none; transition: border-color 0.2s; } + .cancel-reason:focus { border-color: #1677ff; } + .cancel-reason.error { border-color: #ff4d4f; } + .cancel-hint { display: none; font-size: 12px; color: #ff4d4f; text-align: left; margin-top: 4px; } @@ -76,7 +93,7 @@ @@ -84,54 +101,76 @@
预约时间 - 今日 14:00-14:30 + 2026-03-24 15:00-15:30
咨询类型 视频咨询
- 状态 - 已确认 + 发起时间 + 2026-03-21 09:01 +
+
+ 接受时间 + 2026-03-21 10:01
- -
-
+ +
+
咨询人健康档案 - -
-
-
姓名刘梅
-
性别/年龄女 / 31岁
-
身高/体重165cm / 55kg
-
饮食习惯均衡饮食
-
睡眠质量良好
-
重大病史
-
异常指标血脂偏高
+ 查看详情 ›
咨询说明
-
近期体检血脂指标偏高,希望了解日常饮食调整建议及是否需要药物干预。
+
请在预约时间内发起视频通话。
- +
+ +
diff --git a/emergency-app/expert/workbench/video-rejected.html b/emergency-app/expert/workbench/video-rejected.html new file mode 100644 index 0000000..10f6adf --- /dev/null +++ b/emergency-app/expert/workbench/video-rejected.html @@ -0,0 +1,103 @@ + + + + + + 咨询详情(已拒绝) - 咨询专家 + + + +
+
+ 9:41 +
●●●WiFi🔋
+
+ +
+ +
+
+ 预约时间 + 2026-03-24 15:00-15:30 +
+
+ 咨询类型 + 视频咨询 +
+
+ 拒绝时间 + 2026-03-24 13:34 +
+
+ 拒绝方 + 专家(王医生) +
+
+
+
拒绝原因
+
该时段已有其他紧急咨询安排,建议员工改约其他时间或选择其他专家。
+
+ +
+
+ 咨询人健康档案 + 查看详情 › +
+
+ +
+
+ + + diff --git a/index.html b/index.html index 2c5f812..194bcf6 100644 --- a/index.html +++ b/index.html @@ -286,6 +286,7 @@ const SITE_MAP = [ {file:'text-consult-done.html',label:'咨询完成'},{file:'consult-person-detail.html',label:'咨询人档案'}, {file:'video-appt.html',label:'视频预约'},{file:'video-call.html',label:'视频通话'}, {file:'video-done.html',label:'视频完成'},{file:'video-ongoing.html',label:'视频进行中'}, + {file:'video-cancelled.html',label:'视频已取消'},{file:'video-rejected.html',label:'视频已拒绝'}, {file:'employee-profile.html',label:'员工档案'} ]}, { name:'知识库', dir:'emergency-app/expert/knowledge', pages:[ @@ -293,6 +294,7 @@ const SITE_MAP = [ ]}, { name:'我的', dir:'emergency-app/expert/profile', pages:[ {file:'index.html',label:'个人中心'},{file:'edit-profile.html',label:'编辑资料'}, + {file:'edit-diseases.html',label:'擅长疾病'}, {file:'change-pwd.html',label:'修改密码'},{file:'schedule.html',label:'排班设置'}, {file:'stats.html',label:'咨询统计'},{file:'reviews.html',label:'我的评价'} ]} diff --git a/web-admin/health-consult/assistant/employee-profile-dialog.html b/web-admin/health-consult/assistant/employee-profile-dialog.html index 940698e..544245a 100644 --- a/web-admin/health-consult/assistant/employee-profile-dialog.html +++ b/web-admin/health-consult/assistant/employee-profile-dialog.html @@ -121,6 +121,10 @@
本次档案
+
+ 档案名称 + 久坐腰部疼痛 +
问题描述 久坐后腰部持续酸痛,弯腰时加重,近两周症状明显,影响日常工作和休息。 @@ -137,6 +141,8 @@
+ 是否前往医院就诊 + 医院名称 北京协和医院 科室 diff --git a/项目背景.md b/项目背景.md index 3f763ce..dc05a22 100644 --- a/项目背景.md +++ b/项目背景.md @@ -378,7 +378,7 @@ window.location.href = '../health-consult/consult-list.html'; 面向研发人员的产品需求文档,要求简洁、条理清晰,包含以下结构: 1. **模块概述**:一段话简要说明模块功能 + 页面导航结构树 + 状态流转图(Mermaid) -2. **页面清单**:表格列出所有功能页面、弹窗、内嵌功能页、结果态页面,页面清单根据业务分类(公用的页面不重复罗列) +2. **页面清单**:表格列出所有功能页面、弹窗、内嵌功能页、结果态页面,页面清单根据业务分类(同一个PRD文档内公用的页面不重复罗列) 3. **逐页说明**:自动按业务流程顺序组织,WEB后台按一级菜单顺序分类罗列,APP端按每个业务线分类罗列,每个页面/弹窗/内嵌功能页/结果态页面包含以下维度: - **页面截图**:在标题下方紧跟截图引用(格式见 7.4) - **功能说明**:页面用途和核心 UI 元素