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:
86
-
本月咨询
+
咨询次数
擅长疾病
@@ -120,7 +120,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
64
-
本月咨询
+
咨询次数
擅长疾病
@@ -142,7 +142,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
102
-
本月咨询
+
咨询次数
擅长疾病
@@ -164,7 +164,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
47
-
本月咨询
+
咨询次数
擅长疾病
@@ -186,7 +186,7 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
73
-
本月咨询
+
咨询次数
擅长疾病
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 @@
+ + diff --git a/employee-app/profile/emergency-contacts.html b/employee-app/profile/emergency-contacts.html index 9d1a95f..49189a1 100644 --- a/employee-app/profile/emergency-contacts.html +++ b/employee-app/profile/emergency-contacts.html @@ -190,7 +190,7 @@ function render() { if (unitContact) { html += '
'; html += '
' + unitContact.name + ''; - html += '
编辑删除
'; + html += '
编辑
'; html += '
单位' + unitContact.company + '
'; html += '
部门' + unitContact.dept + '
'; html += '
电话' + unitContact.phone + '
'; diff --git a/web-admin/emergency-dispatch/admin/archive-unit.html b/web-admin/emergency-dispatch/admin/archive-unit.html index 04c2150..8f8835a 100644 --- a/web-admin/emergency-dispatch/admin/archive-unit.html +++ b/web-admin/emergency-dispatch/admin/archive-unit.html @@ -187,8 +187,8 @@ - 合计 - 6个单位 + 统计行 + 6 10,300 850685 355315 diff --git a/web-admin/emergency-dispatch/admin/center-basic-info-add.html b/web-admin/emergency-dispatch/admin/center-basic-info-add.html index 62aaec8..a2746c8 100644 --- a/web-admin/emergency-dispatch/admin/center-basic-info-add.html +++ b/web-admin/emergency-dispatch/admin/center-basic-info-add.html @@ -129,10 +129,17 @@ 大病就医 - - - 大屏数据配置 - + + 排班配置 @@ -204,23 +211,10 @@
云坐席电话
- +
-
*值班电话
-
-
- - 删除 -
-
- -
-
-
上班时间
+
*上班时间
@@ -237,6 +231,22 @@ 添加时段
+
+
*短信发送电话
+
+
+
+ + 删除 +
+
+ +
作用于上班时间以外有员工发起应急求助后,发送短信进行提醒
+
+
*服务范围
@@ -308,7 +318,7 @@ function addDutyPhone(){ var g=document.getElementById('dutyPhoneGroup'); var row=document.createElement('div'); row.className='dynamic-row'; - row.innerHTML='删除'; + row.innerHTML='删除'; g.appendChild(row); } function addWorkTime(){ diff --git a/web-admin/emergency-dispatch/admin/center-basic-info.html b/web-admin/emergency-dispatch/admin/center-basic-info.html index cc2d417..7c33567 100644 --- a/web-admin/emergency-dispatch/admin/center-basic-info.html +++ b/web-admin/emergency-dispatch/admin/center-basic-info.html @@ -194,10 +194,17 @@ thead th.group-header{background:#F0F5FF;color:var(--primary);text-align:center; 大病就医 - - - 大屏数据配置 - + + 排班配置 diff --git a/web-admin/emergency-dispatch/admin/center-call-record.html b/web-admin/emergency-dispatch/admin/center-call-record.html index 62a873a..76eacb5 100644 --- a/web-admin/emergency-dispatch/admin/center-call-record.html +++ b/web-admin/emergency-dispatch/admin/center-call-record.html @@ -126,10 +126,17 @@ tbody tr:hover{background:#F8FBFF;} 大病就医 - - - 大屏数据配置 - + + 排班配置 diff --git a/web-admin/emergency-dispatch/admin/center-data-screen.html b/web-admin/emergency-dispatch/admin/center-data-screen.html index e01ef19..c1f234c 100644 --- a/web-admin/emergency-dispatch/admin/center-data-screen.html +++ b/web-admin/emergency-dispatch/admin/center-data-screen.html @@ -131,10 +131,17 @@ 大病就医 - - - 大屏数据配置 - + + 排班配置 diff --git a/web-admin/emergency-dispatch/admin/center-group.html b/web-admin/emergency-dispatch/admin/center-group.html index 0dcc26a..a34a657 100644 --- a/web-admin/emergency-dispatch/admin/center-group.html +++ b/web-admin/emergency-dispatch/admin/center-group.html @@ -141,10 +141,17 @@ tbody tr:hover{background:#F8FBFF;} 大病就医 - - - 大屏数据配置 - + + 排班配置 diff --git a/web-admin/emergency-dispatch/admin/center-schedule.html b/web-admin/emergency-dispatch/admin/center-schedule.html index c1f39a5..eb47583 100644 --- a/web-admin/emergency-dispatch/admin/center-schedule.html +++ b/web-admin/emergency-dispatch/admin/center-schedule.html @@ -137,10 +137,17 @@ 大病就医 - - - 大屏数据配置 - + + 排班配置 diff --git a/web-admin/emergency-dispatch/admin/center-screen-call-record.html b/web-admin/emergency-dispatch/admin/center-screen-call-record.html new file mode 100644 index 0000000..5967471 --- /dev/null +++ b/web-admin/emergency-dispatch/admin/center-screen-call-record.html @@ -0,0 +1,210 @@ + + + + + +应急就医 - 大屏通话记录 | 健康长庆原型 + + + + + + + + + + + + +
+ + +
+ + + + + + + + +
+ + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + +
序号发起者发起时间结束时间通话时长(分钟)已参与
1西安应急中心2026-05-09 09:15:322026-05-09 09:28:4713参与(2): 西安应急中心,庆阳应急就医服务中心
2庆阳应急就医服务中心2026-05-09 08:42:102026-05-09 08:55:0313参与(2): 庆阳应急就医服务中心,西安应急中心
3西安应急中心2026-05-08 16:30:222026-05-08 16:45:1815参与(2): 西安应急中心,庆阳应急就医服务中心
4庆阳应急就医服务中心2026-05-08 14:12:052026-05-08 14:20:338参与(2): 庆阳应急就医服务中心,西安应急中心
5西安应急中心2026-05-08 10:05:412026-05-08 10:18:2913参与(2): 西安应急中心,庆阳应急就医服务中心
6庆阳应急就医服务中心2026-05-07 15:48:192026-05-07 16:02:0714参与(2): 庆阳应急就医服务中心,西安应急中心
7西安应急中心2026-05-07 11:22:552026-05-07 11:35:4013参与(2): 西安应急中心,庆阳应急就医服务中心
8西安应急中心2026-05-07 09:08:122026-05-07 09:19:4511参与(2): 西安应急中心,庆阳应急就医服务中心
9庆阳应急就医服务中心2026-05-06 16:55:302026-05-06 17:10:2215参与(2): 庆阳应急就医服务中心,西安应急中心
10西安应急中心2026-05-06 13:40:082026-05-06 13:52:1612参与(2): 西安应急中心,庆阳应急就医服务中心
+ + +
+
+ + + diff --git a/web-admin/emergency-dispatch/admin/center-serious-illness-detail.html b/web-admin/emergency-dispatch/admin/center-serious-illness-detail.html index 7a4e52e..ce86d96 100644 --- a/web-admin/emergency-dispatch/admin/center-serious-illness-detail.html +++ b/web-admin/emergency-dispatch/admin/center-serious-illness-detail.html @@ -150,10 +150,17 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei 大病就医 - - - 大屏数据配置 - + + 排班配置 @@ -239,6 +246,10 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
+ +
@@ -284,6 +295,72 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
+ + + + diff --git a/web-admin/emergency-dispatch/admin/resource-aed-deploy.html b/web-admin/emergency-dispatch/admin/resource-aed-deploy.html index 68fbe23..ed02639 100644 --- a/web-admin/emergency-dispatch/admin/resource-aed-deploy.html +++ b/web-admin/emergency-dispatch/admin/resource-aed-deploy.html @@ -210,14 +210,7 @@ 新增布点 - - + + + +
+ + +
+ + + + + +
+ +
@@ -232,14 +239,97 @@
AED-2025-001 ×
-
厂家型号迈瑞 BeneHeart C1A
-
布放地址总部办公楼1层大厅
-
所属单位公司机关·健康科
-
设备状态正常
-
责任人张明 138****1001
+
厂家迈瑞
+
型号BeneHeart C1A
+
单位公司机关
+
部门健康科
+
责任人张明 138558991001
+
布放地址总部办公楼1层大厅
+
+ + + \ No newline at end of file diff --git a/web-admin/emergency-dispatch/admin/resource-aed-training-add.html b/web-admin/emergency-dispatch/admin/resource-aed-training-add.html index 3c5a437..3f284a8 100644 --- a/web-admin/emergency-dispatch/admin/resource-aed-training-add.html +++ b/web-admin/emergency-dispatch/admin/resource-aed-training-add.html @@ -62,6 +62,22 @@ .upload-area:hover{border-color:var(--primary);color:var(--primary);} .upload-area svg{width:28px;height:28px;} .upload-hint{font-size:var(--font-xs);color:var(--text-placeholder);} + .upload-grid{display:flex;flex-wrap:wrap;gap:8px;min-width:320px;width:480px;} + .upload-item{width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;position:relative;border:1px solid var(--border);background:#fafafa;} + .upload-item img{width:100%;height:100%;object-fit:cover;} + .upload-item__del{position:absolute;top:-1px;right:-1px;width:20px;height:20px;background:rgba(0,0,0,0.55);color:#fff;font-size:14px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 4px;line-height:1;} + .upload-add{width:80px;height:80px;border:1px dashed var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--text-placeholder);font-size:var(--font-xs);gap:4px;transition:border-color .2s;background:#fafafa;} + .upload-add:hover{border-color:var(--primary);color:var(--primary);} + .file-list{min-width:320px;width:480px;} + .file-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fafafa;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;} + .file-item__icon{width:28px;height:28px;background:var(--primary-light);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;} + .file-item__name{flex:1;font-size:var(--font-sm);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} + .file-item__size{font-size:var(--font-xs);color:var(--text-placeholder);flex-shrink:0;} + .file-item__del{width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--text-placeholder);font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;flex-shrink:0;} + .file-item__del:hover{background:#fff1f0;color:var(--danger);} + .file-add-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-placeholder);font-size:var(--font-sm);transition:all .2s;background:#fafafa;} + .file-add-btn:hover{border-color:var(--primary);color:var(--primary);} + .file-hint{font-size:var(--font-xs);color:var(--text-placeholder);margin-top:6px;} .btn{height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;} .btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:#40a9ff;} .btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}.btn-default:hover{color:var(--primary);border-color:var(--primary);} @@ -178,18 +194,26 @@
附件信息
签到表
-
- - 点击或拖拽上传签到表图片 - 支持 JPG / PNG,不超过 5MB +
+
+
+ + 上传图片 +
+
+
支持 JPG、PNG 格式,最多上传 9 张
现场照片
-
- - 点击或拖拽上传现场照片 - 支持 JPG / PNG,可上传多张,单张不超过 5MB +
+
+
+ + 上传图片 +
+
+
支持 JPG、PNG 格式,最多上传 9 张
@@ -202,10 +226,13 @@
活动资料
-
- - 点击或拖拽上传活动资料 - 支持 PDF / Word / PPT,不超过 20MB +
+
+
+ + 上传文件 +
+
支持 PDF / Word / PPT,单个不超过 20MB,最多 5 个
@@ -241,6 +268,45 @@ document.addEventListener('click',function(e){ if(!document.getElementById('deviceSearch').contains(e.target)) document.getElementById('deviceDropdown').style.display='none'; }); + +var uploadCounts={uploadSignin:0,uploadPhoto:0}; +var photoColors=['#ffe8e8','#e6f7ff','#f6ffed','#fff7e6','#f9f0ff','#e6fffb','#fff0f6','#fcffe6','#f0f5ff']; +function addUploadPhoto(areaId){ + if(uploadCounts[areaId]>=9)return; + var area=document.getElementById(areaId); + var addBtn=area.querySelector('.upload-add'); + var item=document.createElement('div'); + item.className='upload-item'; + item.style.background=photoColors[uploadCounts[areaId]%photoColors.length]; + uploadCounts[areaId]++; + item.innerHTML='
图片'+uploadCounts[areaId]+'
'; + area.insertBefore(item,addBtn); + if(uploadCounts[areaId]>=9)addBtn.style.display='none'; +} +function removeUploadPhoto(btn,areaId){ + btn.parentElement.remove(); + uploadCounts[areaId]--; + document.getElementById(areaId).querySelector('.upload-add').style.display=''; +} + +var fileCount=0; +var fileNames=['AED操作培训手册.pdf','急救知识PPT.pptx','签到名单.docx','培训考核表.pdf','活动总结报告.docx']; +var fileSizes=['2.3MB','5.1MB','1.2MB','3.8MB','0.9MB']; +function addFile(){ + if(fileCount>=5)return; + var list=document.getElementById('fileList'); + var item=document.createElement('div'); + item.className='file-item'; + item.innerHTML='
'+fileNames[fileCount]+''+fileSizes[fileCount]+''; + list.appendChild(item); + fileCount++; + if(fileCount>=5)document.getElementById('fileAddBtn').style.display='none'; +} +function removeFile(btn){ + btn.parentElement.remove(); + fileCount--; + document.getElementById('fileAddBtn').style.display=''; +}