feat: 新增驻场人员全部页面,补全SITE_MAP页面登记,修复共享页面角色跳转

- 新增驻场人员(onsite)工作台、知识库、我的共12个页面
- 修复AI助手和消息页面底部Tab导航缺少onsite角色映射的问题
- 补登SITE_MAP中24个遗漏的HTML页面条目(管理员/操作人员/员工端/应急APP)
- 移除不存在的center-seat.html条目
- 包含操作人员、专业人员已有页面的暂存提交

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 14:10:09 +08:00
co-authored by Claude Opus 4.6
parent a6a21695b5
commit e420e6bca2
72 changed files with 8563 additions and 106 deletions
@@ -18,6 +18,7 @@
.scroll-content::-webkit-scrollbar { display: none; }
.status-area { padding: 32px 16px 24px; text-align: center; background: #fff; }
.status-area__title { font-size: 22px; font-weight: 700; color: #999; margin-bottom: 8px; }
.status-area__desc { font-size: 14px; color: #999; line-height: 1.8; }
.info-card { background: #fff; margin: 12px 16px; border-radius: 12px; padding: 16px; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
.info-card__title { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 12px; }
.info-card__row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #f5f5f5; font-size: 14px; }
@@ -42,21 +43,19 @@
</div>
<div class="scroll-content">
<div class="status-area">
<div class="status-area__title">个人取消</div>
<div class="status-area__title">员工取消</div>
<div class="status-area__desc">取消时间:2026-08-21 15:34:32</div>
<div class="status-area__desc">取消原因:没有时间去了</div>
</div>
<div class="info-card">
<div class="info-card__title">预约信息</div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">预约医院</span><span class="info-card__value">空军军医大学西京医院</span></div>
<div class="info-card__row"><span class="info-card__label">科室</span><span class="info-card__value">神经内科</span></div>
<div class="info-card__row"><span class="info-card__label">医生</span><span class="info-card__value">张学强</span></div>
<div class="info-card__row"><span class="info-card__label">挂号类别</span><span class="info-card__value">专家号</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24</span></div>
</div>
<div class="info-card">
<div class="info-card__title">取消信息</div>
<div class="info-card__row"><span class="info-card__label">创建时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">取消时间</span><span class="info-card__value">2026-08-21 15:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">取消原因</span><span class="info-card__value">没有时间去了</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24 15:00</span></div>
<div class="info-card__row"><span class="info-card__label">病情描述</span><span class="info-card__value">反复头痛头晕半年,需神经内科排查</span></div>
</div>
</div>
<div class="bottom-spacer"></div>
@@ -39,6 +39,10 @@
.modal__btn { flex: 1; height: 40px; border-radius: 20px; font-size: 15px; font-weight: 500; cursor: pointer; border: none; }
.modal__btn--cancel { background: #f5f5f5; color: #666; }
.modal__btn--confirm { background: #ff4d4f; color: #fff; }
.modal__btn--confirm.disabled { background: #ffb3b3; pointer-events: none; }
.modal__textarea { width: 100%; height: 80px; border: 1px solid #d9d9d9; border-radius: 8px; padding: 10px; font-size: 14px; resize: none; margin-bottom: 16px; font-family: inherit; }
.modal__textarea::placeholder { color: #bbb; }
.modal__textarea:focus { outline: none; border-color: #1677ff; }
.bottom-spacer { height: 100px; flex-shrink: 0; }
</style>
</head>
@@ -62,12 +66,13 @@
</div>
<div class="info-card">
<div class="info-card__title">预约信息</div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">预约医院</span><span class="info-card__value">空军军医大学西京医院</span></div>
<div class="info-card__row"><span class="info-card__label">科室</span><span class="info-card__value">神经内科</span></div>
<div class="info-card__row"><span class="info-card__label">医生</span><span class="info-card__value">张学强</span></div>
<div class="info-card__row"><span class="info-card__label">挂号类别</span><span class="info-card__value">专家号</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24</span></div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24 15:00</span></div>
<div class="info-card__row"><span class="info-card__label">病情描述</span><span class="info-card__value">反复头痛头晕半年,需神经内科排查</span></div>
</div>
</div>
<div class="bottom-btns">
@@ -79,10 +84,10 @@
<div class="modal-mask" id="cancelModal">
<div class="modal">
<div class="modal__title">确认取消预约?</div>
<!-- <div class="modal__desc">取消后需要重新发起预约申请</div>-->
<textarea class="modal__textarea" id="cancelReason" placeholder="请输入取消原因" oninput="document.getElementById('confirmCancelBtn').classList.toggle('disabled', !this.value.trim())"></textarea>
<div class="modal__btns">
<button class="modal__btn modal__btn--cancel" onclick="document.getElementById('cancelModal').classList.remove('modal-mask--show')">再想想</button>
<button class="modal__btn modal__btn--confirm" onclick="window.location.href='appointment-list.html'">确认取消</button>
<button class="modal__btn modal__btn--confirm disabled" id="confirmCancelBtn" onclick="window.location.href='appointment-list.html'">确认取消</button>
</div>
</div>
</div>
@@ -49,12 +49,14 @@
</div>
<div class="info-card">
<div class="info-card__title">预约信息</div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">预约医院</span><span class="info-card__value">空军军医大学西京医院</span></div>
<div class="info-card__row"><span class="info-card__label">科室</span><span class="info-card__value">神经内科</span></div>
<div class="info-card__row"><span class="info-card__label">医生</span><span class="info-card__value">张学强</span></div>
<div class="info-card__row"><span class="info-card__label">挂号类别</span><span class="info-card__value">专家号</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24</span></div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24 15:00</span></div>
<div class="info-card__row"><span class="info-card__label">病情描述</span><span class="info-card__value">反复头痛头晕半年,需神经内科排查</span></div>
</div>
<div class="info-card">
<div class="info-card__title">挂号结果</div>
@@ -37,6 +37,10 @@
.modal__btn { flex: 1; height: 40px; border-radius: 20px; font-size: 15px; font-weight: 500; cursor: pointer; border: none; }
.modal__btn--cancel { background: #f5f5f5; color: #666; }
.modal__btn--confirm { background: #ff4d4f; color: #fff; }
.modal__btn--confirm.disabled { background: #ffb3b3; pointer-events: none; }
.modal__textarea { width: 100%; height: 80px; border: 1px solid #d9d9d9; border-radius: 8px; padding: 10px; font-size: 14px; resize: none; margin-bottom: 16px; font-family: inherit; }
.modal__textarea::placeholder { color: #bbb; }
.modal__textarea:focus { outline: none; border-color: #1677ff; }
</style>
</head>
<body>
@@ -59,12 +63,14 @@
</div>
<div class="info-card">
<div class="info-card__title">预约信息</div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">预约医院</span><span class="info-card__value">空军军医大学西京医院</span></div>
<div class="info-card__row"><span class="info-card__label">科室</span><span class="info-card__value">神经内科</span></div>
<div class="info-card__row"><span class="info-card__label">医生</span><span class="info-card__value">张学强</span></div>
<div class="info-card__row"><span class="info-card__label">挂号类别</span><span class="info-card__value">专家号</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24</span></div>
<div class="info-card__row"><span class="info-card__label">发起预约时间</span><span class="info-card__value">2026-08-21 13:34:32</span></div>
<div class="info-card__row"><span class="info-card__label">期望预约时间</span><span class="info-card__value">2026-09-24 15:00</span></div>
<div class="info-card__row"><span class="info-card__label">病情描述</span><span class="info-card__value">反复头痛头晕半年,需神经内科排查</span></div>
</div>
</div>
<button class="bottom-btn" onclick="document.getElementById('cancelModal').classList.add('modal-mask--show')">取消预约</button>
@@ -73,10 +79,10 @@
<div class="modal-mask" id="cancelModal">
<div class="modal">
<div class="modal__title">确认取消预约?</div>
<!-- <div class="modal__desc">取消后需要重新发起预约申请</div>-->
<textarea class="modal__textarea" id="cancelReason" placeholder="请输入取消原因" oninput="document.getElementById('confirmCancelBtn').classList.toggle('disabled', !this.value.trim())"></textarea>
<div class="modal__btns">
<button class="modal__btn modal__btn--cancel" onclick="document.getElementById('cancelModal').classList.remove('modal-mask--show')">再想想</button>
<button class="modal__btn modal__btn--confirm" onclick="window.location.href='appointment-list.html'">确认取消</button>
<button class="modal__btn modal__btn--confirm disabled" id="confirmCancelBtn" onclick="window.location.href='appointment-list.html'">确认取消</button>
</div>
</div>
</div>
@@ -46,15 +46,15 @@
</div>
<div class="scroll-content">
<div class="tab-bar">
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">全部</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">进行中</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">待确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-confirmed.html'">已确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-done.html'">已完成</div>
<div class="tab-bar__item tab-bar__item--active">已取消</div>
</div>
<div class="card" onclick="window.location.href='appointment-detail-cancelled.html'">
<div class="card__header">
<span class="card__hospital">空军军医大学西京医院</span>
<span class="card__status card__status--self-cancel">个人取消</span>
<span class="card__status card__status--self-cancel">员工取消</span>
</div>
<div class="card__info">
<div>科室:神经内科</div>
@@ -66,7 +66,7 @@
<div class="card" onclick="window.location.href='appointment-detail-cancelled.html'">
<div class="card__header">
<span class="card__hospital">空军军医大学西京医院</span>
<span class="card__status card__status--admin-cancel">管理人员取消</span>
<span class="card__status card__status--self-cancel">管理人员取消</span>
</div>
<div class="card__info">
<div>科室:神经内科</div>
@@ -0,0 +1,72 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>大病就医预约-已确认</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #f0f2f5; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif; }
.phone-shell { width: 390px; min-height: 844px; background: #fff; border-radius: 44px; box-shadow: 0 20px 60px rgba(0,0,0,0.25), inset 0 0 0 2px #e0e0e0; overflow: hidden; position: relative; display: flex; flex-direction: column; }
.phone-status-bar { height: 44px; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; font-size: 12px; font-weight: 600; flex-shrink: 0; }
.phone-status-bar .time { font-size: 15px; font-weight: 700; }
.phone-status-bar .icons { display: flex; gap: 6px; align-items: center; }
.nav-bar { height: 44px; display: flex; align-items: center; padding: 0 16px; background: #fff; border-bottom: 1px solid #f0f0f0; flex-shrink: 0; position: relative; }
.nav-bar .nav-back { font-size: 14px; color: #1a1a1a; cursor: pointer; }
.nav-bar .nav-title { position: absolute; left: 50%; transform: translateX(-50%); font-size: 17px; font-weight: 600; color: #1a1a1a; }
.scroll-content { flex: 1; overflow-y: auto; background: #f5f5f5; padding: 12px 16px; }
.scroll-content::-webkit-scrollbar { display: none; }
.new-btn { display: block; width: calc(100% - 32px); height: 44px; background: #1677ff; color: #fff; border: none; border-radius: 8px; font-size: 16px; font-weight: 500; cursor: pointer; position: absolute; bottom: 34px; left: 16px; z-index: 10; }
.tab-bar { display: flex; background: #fff; border-radius: 8px; margin-bottom: 12px; overflow: hidden; }
.tab-bar__item { flex: 1; text-align: center; padding: 10px 0; font-size: 13px; color: #666; cursor: pointer; border-bottom: 2px solid transparent; }
.tab-bar__item--active { color: #1677ff; font-weight: 600; border-bottom-color: #1677ff; }
.card { background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.06); cursor: pointer; transition: transform 0.15s; }
.card:active { transform: scale(0.98); }
.card__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.card__hospital { font-size: 15px; font-weight: 600; color: #1a1a1a; }
.card__status { font-size: 12px; padding: 2px 10px; border-radius: 10px; font-weight: 500; }
.card__status--confirmed { background: #e6f7ff; color: #1677ff; }
.card__info { font-size: 13px; color: #666; line-height: 1.8; }
.card__tip { font-size: 12px; color: #999; margin-top: 6px; }
.bottom-spacer { height: 34px; flex-shrink: 0; }
</style>
</head>
<body>
<div class="phone-shell">
<div class="phone-status-bar">
<span class="time">12:00</span>
<div class="icons">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 6l5 5 5-5"/><path d="M4 9l3 3 3-3" opacity="0.5"/></svg>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="1" y="6" width="18" height="12" rx="2"/><path d="M21 10v4"/></svg>
</div>
</div>
<div class="nav-bar">
<span class="nav-back" onclick="window.location.href='index.html'"></span>
<span class="nav-title">大病就医预约</span>
</div>
<div class="scroll-content">
<div class="tab-bar">
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">待确认</div>
<div class="tab-bar__item tab-bar__item--active">已确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-done.html'">已完成</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-cancelled.html'">已取消</div>
</div>
<div class="card" onclick="window.location.href='appointment-detail-confirmed.html'">
<div class="card__header">
<span class="card__hospital">空军军医大学西京医院</span>
<span class="card__status card__status--confirmed">已确认</span>
</div>
<div class="card__info">
<div>科室:神经内科</div>
<div>医生:张学强</div>
<div>挂号类别:专家号</div>
<div>期望预约时间:2026-09-24</div>
</div>
<div class="card__tip">已派单至驻场人员(张旭)</div>
</div>
</div>
<button class="new-btn" onclick="window.location.href='appointment-form.html'">发起新的预约</button>
<div class="bottom-spacer"></div>
</div>
</body>
</html>
@@ -46,8 +46,8 @@
</div>
<div class="scroll-content">
<div class="tab-bar">
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">全部</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">进行中</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list.html'">待确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-confirmed.html'">已确认</div>
<div class="tab-bar__item tab-bar__item--active">已完成</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-cancelled.html'">已取消</div>
</div>
@@ -47,8 +47,8 @@
</div>
<div class="scroll-content">
<div class="tab-bar">
<div class="tab-bar__item ">全部</div>
<div class="tab-bar__item tab-bar__item--active" onclick="window.location.href='appointment-list.html'">进行中</div>
<div class="tab-bar__item tab-bar__item--active">待确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-confirmed.html'">已确认</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-done.html'">已完成</div>
<div class="tab-bar__item" onclick="window.location.href='appointment-list-cancelled.html'">已取消</div>
</div>
@@ -66,20 +66,6 @@
</div>
<div class="card__tip">请耐心等待管理人员进行确认</div>
</div>
<!-- 卡片2:已确认 -->
<div class="card" onclick="window.location.href='appointment-detail-confirmed.html'">
<div class="card__header">
<span class="card__hospital">空军军医大学西京医院</span>
<span class="card__status card__status--confirmed">已确认</span>
</div>
<div class="card__info">
<div>科室:神经内科</div>
<div>医生:张学强</div>
<div>挂号类别:专家号</div>
<div>期望预约时间:2026-09-24</div>
</div>
<div class="card__tip">已派单至驻场人员(张旭)</div>
</div>
</div>
<button class="new-btn" onclick="window.location.href='appointment-form.html'">发起新的预约</button>
<div class="bottom-spacer"></div>
+61 -44
View File
@@ -2,7 +2,7 @@
> **所属端**:员工端 APP
> **模块路径**`employee-app/emergency-medical/`
> **最后更新**2026-04-23
> **最后更新**2026-04-27
## 模块概述
@@ -25,7 +25,7 @@
│ ├── 应急视频通话
│ └── 应急电话(系统电话,将云坐席号码带入到拨号页面)
├── 大病就医预约
│ ├── 预约列表(进行中(待确认/已确认)/已完成/已取消)
│ ├── 预约列表(待确认/已确认/已完成/已取消)
│ ├── 发起预约(表单)
│ └── 预约详情(待确认/已确认/已完成/已取消)
├── 急救教学视频
@@ -85,14 +85,15 @@ stateDiagram-v2
| 序号 | 页面/弹窗 | 文件 | 类型 |
|------|-----------|------|------|
| 16 | 预约列表(进行中 | appointment-list.html | 页面 |
| 17 | 预约列表(已完成 | appointment-list-done.html | 页面 |
| 18 | 预约列表(已取消 | appointment-list-cancelled.html | 页面 |
| 19 | 发起预约 | appointment-form.html | 页面 |
| 20 | 预约详情-待确认 | appointment-detail-pending.html | 页面 |
| 21 | 预约详情-确认 | appointment-detail-confirmed.html | 页面 |
| 22 | 预约详情-已完成 | appointment-detail-done.html | 页面 |
| 23 | 预约详情-已取消 | appointment-detail-cancelled.html | 页面 |
| 16 | 预约列表(待确认 | appointment-list.html | 页面 |
| 17 | 预约列表(已确认 | appointment-list-confirmed.html | 页面 |
| 18 | 预约列表(已完成 | appointment-list-done.html | 页面 |
| 19 | 预约列表(已取消) | appointment-list-cancelled.html | 页面 |
| 20 | 发起预约 | appointment-form.html | 页面 |
| 21 | 预约详情-确认 | appointment-detail-pending.html | 页面 |
| 22 | 预约详情-已确认 | appointment-detail-confirmed.html | 页面 |
| 23 | 预约详情-已完成 | appointment-detail-done.html | 页面 |
| 24 | 预约详情-已取消 | appointment-detail-cancelled.html | 页面 |
---
@@ -346,27 +347,44 @@ stateDiagram-v2
## 五、大病就医预约
### 16. 预约列表-进行中appointment-list.html
### 16. 预约列表-待确认appointment-list.html
![页面截图](screenshots/appointment-list.jpg)
**功能说明:** 展示员工的大病就医预约记录列表,默认显示进行中的预约,支持Tab切换查看不同状态
**功能说明:** 展示员工的大病就医预约记录列表,按状态分 Tab 展示,当前页为"待确认"Tab,仅显示待确认状态的预约卡片
**业务规则:**
- Tab栏:全部(默认激活,根据状态和时间双重倒序)、进行中、已完成、已取消
- 预约卡片展示:医院名称、状态标签、科室、医生、挂号类别、期望预约时间
- 进行中状态包含"待确认"和"已确认"两种子状态
- 底部提供"发起新预约"按钮
- Tab栏:待确认(默认激活)、已确认、已完成、已取消,每个 Tab 对应独立页面
- 预约卡片展示:医院名称、状态标签(橙色"待确认"、科室、医生、挂号类别、期望预约时间
- 卡片底部提示文字:"请耐心等待管理人员进行确认"
- 底部提供"发起新预约"按钮
**交互说明:**
- 点击Tab栏切换不同状态的预约列表
- 点击预约卡片,跳转到对应状态的预约详情页面
- 点击"发起新预约"按钮,跳转到预约表单页面
- 点击Tab栏切换到对应状态的预约列表页面
- 点击预约卡片,跳转到待确认预约详情页面
- 点击"发起新预约"按钮,跳转到预约表单页面
- 点击返回箭头,返回应急就医主页
---
### 17. 预约列表-已完成appointment-list-done.html
### 17. 预约列表-已确认appointment-list-confirmed.html
![页面截图](screenshots/appointment-list-confirmed.jpg)
**功能说明:** 展示已确认状态的预约记录列表。
**业务规则:**
- "已确认"Tab激活,列表展示已确认的预约卡片
- 状态标签显示蓝色"已确认"
- 卡片底部显示"已派单至驻场人员(姓名)"提示
**交互说明:**
- 点击预约卡片,跳转到已确认预约详情页面
- 其他交互同预约列表-待确认
---
### 18. 预约列表-已完成(appointment-list-done.html
![页面截图](screenshots/appointment-list-done.jpg)
@@ -375,15 +393,15 @@ stateDiagram-v2
**业务规则:**
- "已完成"Tab激活,列表展示已完成的预约卡片
- 状态标签显示绿色"已完成"
- 卡片下方显示"驻场人员已完成挂号"提示
- 卡片底部显示"驻场人员已完成挂号"提示
**交互说明:**
- 点击预约卡片,跳转到已完成预约详情页面
- 其他交互同预约列表-进行中
- 其他交互同预约列表-待确认
---
### 18. 预约列表-已取消(appointment-list-cancelled.html
### 19. 预约列表-已取消(appointment-list-cancelled.html
![页面截图](screenshots/appointment-list-cancelled.jpg)
@@ -391,16 +409,15 @@ stateDiagram-v2
**业务规则:**
- "已取消"Tab激活,列表展示已取消的预约卡片
- 状态标签显示灰色"已取消"
- 支持区分"个人取消"和"管理人员取消"两种取消来源
- 支持区分"员工取消"(灰色标签)和"管理人员取消"(红色标签)两种取消来源
**交互说明:**
- 点击预约卡片,跳转到已取消预约详情页面
- 其他交互同预约列表-进行中
- 其他交互同预约列表-待确认
---
### 19. 发起预约(appointment-form.html
### 20. 发起预约(appointment-form.html
![页面截图](screenshots/appointment-form.jpg)
@@ -413,15 +430,15 @@ stateDiagram-v2
**表单字段表:**
| 字段名 | 类型 | 必填 | 校验规则 |
|--------|--------------|------|----------|
| 预约医院 | 下拉选择 | 是 | 从系统配置医院列表中选择 |
| 就诊卡号 | 文本输入 | 否 | 无 |
| 挂号类别 | 下拉选择 | 是 | 专家号/普通号 |
| 字段名 | 类型 | 必填 | 校验规则 |
|--------|------|------|----------|
| 预约医院 | 下拉选择 | 是 | 从系统配置医院列表中选择 |
| 就诊卡号 | 文本输入 | 否 | 无 |
| 挂号类别 | 下拉选择 | 是 | 专家号/普通号 |
| 期望预约时间 | 日期时间选择,精确到时分 | 是 | 不可选择过去时间 |
| 预约科室 | 文本输入 | 是 | 无 |
| 预约医生 | 文本输入 | 是 | 无 |
| 病情描述 | 多行文本 | 是 | 无 |
| 预约科室 | 文本输入 | 是 | 无 |
| 预约医生 | 文本输入 | 是 | 无 |
| 病情描述 | 多行文本 | 是 | 无 |
**交互说明:**
- 填写完成后点击"确定"按钮提交预约
@@ -430,7 +447,7 @@ stateDiagram-v2
---
### 20-23. 预约详情(4种状态页面)
### 21-24. 预约详情(4种状态页面)
![待确认](screenshots/appointment-detail-pending.jpg)
![已确认](screenshots/appointment-detail-confirmed.jpg)
@@ -441,7 +458,7 @@ stateDiagram-v2
**通用结构:**
- 顶部状态区:状态大标题 + 状态说明文字
- 预约信息卡片:预约医院、科室、医生、挂号类别、期望预约时间、发起预约时间
- 预约信息卡片:发起预约时间、预约医院、科室、医生、挂号类别、期望预约时间、病情描述
**各状态差异:**
@@ -449,18 +466,18 @@ stateDiagram-v2
|------|--------|----------|----------|----------|----------|
| 待确认 | appointment-detail-pending.html | 橙色 | 请耐心等待管理人员进行确认 | 取消预约(红色边框) | 无 |
| 已确认 | appointment-detail-confirmed.html | 蓝色 | 已派单至驻场人员(姓名) | 取消预约 + 联系驻场人员 | 无 |
| 已完成 | appointment-detail-done.html | 绿色 | 驻场人员已完成挂号 | 联系驻场人员 | 挂号结果卡片 |
| 已取消 | appointment-detail-cancelled.html | 灰色 | 个人取消 / 管理人员取消 | 无 | 取消信息卡片(取消时间取消原因 |
| 已完成 | appointment-detail-done.html | 绿色 | 驻场人员(姓名)已完成挂号 | 联系驻场人员 | 挂号结果卡片 |
| 已取消 | appointment-detail-cancelled.html | 灰色 | 员工取消 / 管理人员取消 | 无 | 顶部状态区直接展示取消时间取消原因 |
**业务规则:**
- 待确认和已确认状态支持员工主动取消预约
- 取消预约需二次确认(弹窗确认)
- 已完成状态额外展示挂号结果信息
- 已取消状态展示取消来源(个人取消/管理人员取消)及取消原因
- 取消预约时弹出确认弹窗,弹窗内包含取消原因输入框(必填),未填写时确认按钮置灰不可点击
- 已完成状态额外展示挂号结果信息(就诊科室、就诊医生、就诊时段、排队序号、就诊医院、挂号类别、备注)
- 已取消状态在顶部状态区直接展示取消时间和取消原因(不再使用独立的取消信息卡片),展示取消来源(员工取消/管理人员取消)
**交互说明:**
- 点击"取消预约"按钮,弹出确认弹窗,确认取消预约并返回列表
- 点击"取消预约"按钮,弹出确认弹窗,填写取消原因后确认取消预约并返回列表
- 点击"联系驻场人员"按钮,调起系统拨号联系驻场人员
- 点击弹窗中的"再想想",关闭弹窗
- 点击弹窗中的"确认取消",取消预约并跳转回预约列表
- 点击弹窗中的"确认取消"(需先填写取消原因),取消预约并跳转回预约列表
- 点击返回箭头,返回预约列表页面
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 58 KiB

+2 -2
View File
@@ -193,7 +193,7 @@ stateDiagram-v2
**功能说明**
综合搜索的结果展示页面。顶部保留搜索栏(显示当前搜索关键词,支持修改后重新搜索)。搜索结果按专家、医院、科室、疾病四个分类混合展示,每个分类默认展示前几条,专家和医院分类带"查看全部"入口。无匹配结果时展示空状态提示。
综合搜索的结果展示页面。顶部保留搜索栏(显示当前搜索关键词,支持修改后重新搜索)。搜索结果按专家、医院、科室、疾病四个分类混合展示,专家和医院分类带"查看全部"入口。无匹配结果时展示空状态提示。
**业务规则**
@@ -210,7 +210,7 @@ stateDiagram-v2
- 点击科室/疾病标签跳转到专家列表页
- 点击专家/医院分类的"查看全部"跳转到对应的完整列表
- 点击"取消"返回综合搜索页
- 导航栏返回 → 综合搜索页
- 导航栏返回 → 综合搜索页
---
### 2.5 专家列表(expert-list.html