diff --git a/emergency-app/assistant/workbench/push-expert.html b/emergency-app/assistant/workbench/push-expert.html
index 26741fd..21fb720 100644
--- a/emergency-app/assistant/workbench/push-expert.html
+++ b/emergency-app/assistant/workbench/push-expert.html
@@ -98,7 +98,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
擅长疾病
@@ -120,7 +120,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
擅长疾病
@@ -142,7 +142,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
擅长疾病
@@ -164,7 +164,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
擅长疾病
@@ -186,7 +186,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
擅长疾病
diff --git a/emergency-app/onsite/workbench/serious-illness-detail-pending.html b/emergency-app/onsite/workbench/serious-illness-detail-pending.html
index f2c4739..b7c074c 100644
--- a/emergency-app/onsite/workbench/serious-illness-detail-pending.html
+++ b/emergency-app/onsite/workbench/serious-illness-detail-pending.html
@@ -166,7 +166,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
diff --git a/emergency-app/operator/doc/PRD.md b/emergency-app/operator/doc/PRD.md
index b188373..37db89a 100644
--- a/emergency-app/operator/doc/PRD.md
+++ b/emergency-app/operator/doc/PRD.md
@@ -97,6 +97,7 @@ stateDiagram-v2
**业务规则:**
- 顶部统计卡片展示:应急进行中数量、大病待确认数量
- 一级 Tab 切换:应急求助(默认)/ 大病就医
+- 一级 Tab 右上角显示红色数字徽标,分别展示应急求助进行中数量和大病就医待确认数量
- 应急求助面板:二级 Tab 切换进行中 / 已完成
- 大病就医面板:跳转至大病就医列表页
- 应急卡片展示:患者姓名、年龄、求助方式标签、求助时间
@@ -203,7 +204,7 @@ stateDiagram-v2
- 点击搜索框:展开救护车下拉列表
- 输入关键词:实时过滤匹配的救护车
- 选择救护车:自动填充信息卡片
-- 点击"确认填写":验证目的地必填,提示成功后返回上一页
+- 点击"确认填写":验证目的地必填,toast 提示"保存成功",延迟 800ms 后自动返回应急聊天页
**表单字段表:**
diff --git a/emergency-app/operator/doc/screenshots/dispatch-ambulance.jpg b/emergency-app/operator/doc/screenshots/dispatch-ambulance.jpg
index d1d7e94..89a1619 100644
Binary files a/emergency-app/operator/doc/screenshots/dispatch-ambulance.jpg and b/emergency-app/operator/doc/screenshots/dispatch-ambulance.jpg differ
diff --git a/emergency-app/operator/doc/screenshots/index.jpg b/emergency-app/operator/doc/screenshots/index.jpg
index 43a821c..ffb5761 100644
Binary files a/emergency-app/operator/doc/screenshots/index.jpg and b/emergency-app/operator/doc/screenshots/index.jpg differ
diff --git a/emergency-app/operator/workbench/dispatch-ambulance.html b/emergency-app/operator/workbench/dispatch-ambulance.html
index 217b4ce..4d60300 100644
--- a/emergency-app/operator/workbench/dispatch-ambulance.html
+++ b/emergency-app/operator/workbench/dispatch-ambulance.html
@@ -59,6 +59,8 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
.bottom-bar { padding: 12px 16px 28px; background: #fff; border-top: 1px solid #f0f0f0; flex-shrink: 0; }
.btn-submit { width: 100%; height: 44px; border-radius: 10px; font-size: 16px; font-weight: 600; cursor: pointer; border: none; background: #fa8c16; color: #fff; transition: background .2s; }
.btn-submit:hover { background: #ffa940; }
+.toast { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0,0,0,0.75); color: #fff; padding: 12px 24px; border-radius: 8px; font-size: 14px; z-index: 9999; pointer-events: none; animation: toastFade .3s ease; }
+@keyframes toastFade { from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@@ -250,8 +252,13 @@ function confirmDispatch() {
var destination = document.getElementById('destination-input').value.trim();
if (!selected) { alert('请选择救护车'); return; }
if (!destination) { alert('请填写目的地'); return; }
- alert('已成功呼叫救护车:' + selected.getAttribute('data-plate'));
- history.back();
+ var toast = document.createElement('div');
+ toast.className = 'toast';
+ toast.textContent = '保存成功';
+ document.body.appendChild(toast);
+ setTimeout(function() {
+ window.location.href = 'emergency-chat.html';
+ }, 800);
}
document.addEventListener('click', function(event) {
diff --git a/emergency-app/operator/workbench/index.html b/emergency-app/operator/workbench/index.html
index c0282f1..21236ca 100644
--- a/emergency-app/operator/workbench/index.html
+++ b/emergency-app/operator/workbench/index.html
@@ -23,6 +23,8 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
.primary-tabs { display: flex; gap: 8px; padding: 12px 16px 8px; background: #f7f8fa; }
.primary-tab { flex: 1; height: 38px; border-radius: 19px; background: #fff; color: #666; font-size: 14px; font-weight: 600; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.06); border: 1px solid transparent; text-decoration: none; }
.primary-tab.active { color: #1677ff; border-color: #b7d8ff; background: #e6f4ff; }
+.primary-tab { position: relative; }
+.primary-tab .pt-badge { position: absolute; top: -4px; right: -4px; 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 */
.seg-tabs { display: flex; background: #fff; border-bottom: 1px solid #f0f0f0; flex-shrink: 0; }
.seg-tab { flex: 1; text-align: center; padding: 12px 0; font-size: 14px; color: #666; cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s; }
diff --git a/employee-app/emergency-medical/doc/PRD.md b/employee-app/emergency-medical/doc/PRD.md
index 46f1115..926f83a 100644
--- a/employee-app/emergency-medical/doc/PRD.md
+++ b/employee-app/emergency-medical/doc/PRD.md
@@ -140,13 +140,15 @@ stateDiagram-v2
- 模拟急救面板提供心梗、猝死、脑梗/脑出血三种疾病场景
**交互说明:**
+- 默认显示当前员工位置(未获取到员工位置以长庆油田公司机关大楼为中心点)附近50公里内的资源,如果50公里内没有数据,那么就查最近距离前10的资源
+- 地图拖动后,地图上方显示“在此区域内搜索”的按钮,点击后查询该区域内(以地图中心点)50公里内的资源
- 点击地图标记点,弹出底部资源概要卡片
- 点击顶部Tab栏切换资源类型,跳转到对应资源地图页面
- 点击资源卡片中的"联系电话"按钮,调起系统拨号
- 点击资源卡片中的"地图导航"按钮,调起地图导航
- 点击"模拟急救"按钮,展开疾病选择面板
- 点击疾病标签(心梗/猝死/脑梗),跳转到对应急救提示书页面
-- 点击右侧定位按钮,重新定位到当前位置
+- 点击右侧定位按钮,重新定位到当前位置,并重新调取附近资源
- 点击 +/− 按钮,缩放地图
---
@@ -293,9 +295,9 @@ stateDiagram-v2
- 参与本次应急视频通话的操作人员和专业人员选定规则:
* 根据员工所在单位反查所属的应急中心(若该单位未分配到指定的应急中心则使用默认应急中心)
* 查询当前应急中心的排班人员加到应急通话(若当前应急中心未设置排班则使用默认应急中心的排班设置)
- * 若应急中心下同时存在多个值班人员优先查找处于空闲状态下的值班人员加入视频通话
- * 若多个值班人员都处于空闲状态使用轮询策略
- * 若当前应急中心和默认应急中心都没有设置值班人员 则无法发起应急通话,提示“暂无应急值班人员”
+ * 若应急中心下同时存在多个排班人员优先查找处于空闲状态下的排班人员加入视频通话
+ * 若多个排班人员都处于空闲状态使用轮询策略
+ * 若当前应急中心和默认应急中心都没有设置排班人员 则无法发起应急通话,提示“暂无应急值班人员”
- 聊天区域展示三种消息类型:系统消息(居中灰色)、员工消息(右侧蓝色气泡)、对方消息(左侧白色气泡)
- 参与人员列表展示通话参与者的姓名和角色(如”吴凤-主治医师”、”张旭-操作人员”)
- 底部输入栏包含【+更多功能】、文字输入、语音输入以及发送按钮
diff --git a/employee-app/emergency-medical/doc/screenshots/resource-map.jpg b/employee-app/emergency-medical/doc/screenshots/resource-map.jpg
index 4603cdb..1e8b764 100644
Binary files a/employee-app/emergency-medical/doc/screenshots/resource-map.jpg and b/employee-app/emergency-medical/doc/screenshots/resource-map.jpg differ
diff --git a/employee-app/emergency-medical/emergency-chat.html b/employee-app/emergency-medical/emergency-chat.html
index 4af9770..4ebe403 100644
--- a/employee-app/emergency-medical/emergency-chat.html
+++ b/employee-app/emergency-medical/emergency-chat.html
@@ -129,24 +129,6 @@
-
-
diff --git a/employee-app/emergency-medical/resource-map.html b/employee-app/emergency-medical/resource-map.html
index 29df391..d8a548d 100644
--- a/employee-app/emergency-medical/resource-map.html
+++ b/employee-app/emergency-medical/resource-map.html
@@ -32,6 +32,10 @@
.map-me { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 4; }
.map-me__dot { width: 14px; height: 14px; background: #1677ff; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 6px rgba(22,119,255,0.2); }
+ /* 拖动搜索按钮 */
+ .map-search-btn { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 6; background: #fff; border: none; border-radius: 20px; padding: 8px 16px; font-size: 13px; color: #1677ff; font-weight: 600; box-shadow: 0 2px 12px rgba(0,0,0,0.15); cursor: pointer; display: none; align-items: center; gap: 4px; white-space: nowrap; }
+ .map-search-btn--visible { display: flex; }
+
/* 地图控件 */
.map-locate { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; background: #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.15); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 5; }
.map-zoom { position: absolute; top: 56px; right: 12px; display: flex; flex-direction: column; background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); overflow: hidden; z-index: 5; }
@@ -68,6 +72,10 @@
.sim-tag:active { background: #e8f4ff; border-color: #1677ff; color: #1677ff; }
.simulate-panel__close { font-size: 13px; color: #1677ff; cursor: pointer; text-align: center; }
+ /* 新搜索结果标记 */
+ .map-pin--new { animation: pinDrop 0.3s ease; }
+ @keyframes pinDrop { from { opacity: 0; transform: translate(-50%, -120%) scale(0.6); } to { opacity: 1; transform: translate(-50%, -100%) scale(1); } }
+
.bottom-spacer { height: 34px; flex-shrink: 0; }
@@ -108,7 +116,9 @@
-
+
+
+
@@ -140,5 +150,55 @@
+
+