From 173634c40e3431f9345259a6e50646a7aaec29f2 Mon Sep 17 00:00:00 2001 From: liuyunqin Date: Tue, 22 Sep 2026 18:04:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=80=E7=BA=BF=E5=8C=BB=E7=96=97?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E9=A1=BA=E5=BA=8F=E8=B0=83=E6=95=B4=E4=B8=8E?= =?UTF-8?q?=E5=90=84=E6=A8=A1=E5=9D=97=E7=AD=9B=E9=80=89=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 顶部导航「数据统计」前移、侧边栏「统计报表」前移,统一模块菜单顺序 - 床位统计/超时告警/救护车与门诊统计报表新增周/月/年/选时周期与单位部门级联筛选 - 健康小屋:轮播图配置重构、预约管理改员工预约记录、新增小屋数据管理页 - 健康咨询:新增年份/专家回复状态/用户发送状态筛选与同步/更多操作、短信模板弹窗 - 短信历史页同步改造 --- .../frontline-medical/alert-abnormal.html | 2 +- web-admin/frontline-medical/alert-dirty.html | 2 +- .../frontline-medical/archive-algo-model.html | 2 +- .../archive-unit-report.html | 2 +- .../frontline-medical/archive-visit-data.html | 2 +- .../bed-allocate-record.html | 2 +- web-admin/frontline-medical/bed-bed.html | 2 +- web-admin/frontline-medical/bed-building.html | 2 +- .../frontline-medical/bed-call-record.html | 2 +- .../bed-device-allocate.html | 2 +- web-admin/frontline-medical/bed-device.html | 2 +- .../frontline-medical/bed-dormitory.html | 2 +- web-admin/frontline-medical/bed-stat.html | 261 +++++++++++++-- web-admin/frontline-medical/bed-station.html | 2 +- .../frontline-medical/bed-timeout-alarm.html | 143 ++++++-- .../config-allocate-stat.html | 6 +- .../frontline-medical/config-allocate.html | 2 +- .../frontline-medical/config-ambulance.html | 2 +- .../config-medical-point.html | 2 +- .../config-medical-staff.html | 2 +- .../config-medicine-stock.html | 2 +- .../frontline-medical/config-medicine.html | 2 +- .../config-partner-hospital.html | 2 +- .../daily-ambulance-attendance.html | 2 +- .../daily-chronic-intervention.html | 2 +- .../frontline-medical/daily-chronic.html | 2 +- .../frontline-medical/daily-education.html | 2 +- .../daily-employee-file.html | 2 +- .../daily-employee-search.html | 2 +- .../frontline-medical/daily-follow-task.html | 2 +- web-admin/frontline-medical/daily-follow.html | 2 +- .../daily-interpret-manage.html | 2 +- .../frontline-medical/daily-interpret.html | 2 +- .../frontline-medical/daily-treatment.html | 2 +- .../frontline-medical/hut-appointment.html | 289 ++++++++++------ web-admin/frontline-medical/hut-banner.html | 82 +---- .../frontline-medical/hut-cabin-data.html | 309 ++++++++++++++++++ .../frontline-medical/hut-cabin-stat.html | 253 ++++++++++---- web-admin/frontline-medical/hut-cabin.html | 156 ++------- web-admin/frontline-medical/hut-room.html | 6 +- web-admin/frontline-medical/hut-schedule.html | 6 +- web-admin/frontline-medical/hut-screen.html | 6 +- .../stat-ambulance-chart.html | 6 +- .../stat-ambulance-table.html | 211 +++++++++--- .../frontline-medical/stat-clinic-chart.html | 6 +- .../frontline-medical/stat-clinic-table.html | 232 +++++++++---- .../frontline-medical/stat-rescue-chart.html | 6 +- .../assistant/history-consult.html | 304 +++++++++++++++-- web-admin/health-consult/history-expert.html | 66 +++- web-admin/system-management/sms-history.html | 16 +- 50 files changed, 1832 insertions(+), 594 deletions(-) create mode 100644 web-admin/frontline-medical/hut-cabin-data.html diff --git a/web-admin/frontline-medical/alert-abnormal.html b/web-admin/frontline-medical/alert-abnormal.html index 2470be4..1793b7d 100644 --- a/web-admin/frontline-medical/alert-abnormal.html +++ b/web-admin/frontline-medical/alert-abnormal.html @@ -85,8 +85,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/alert-dirty.html b/web-admin/frontline-medical/alert-dirty.html index d2df3cf..2edf9f7 100644 --- a/web-admin/frontline-medical/alert-dirty.html +++ b/web-admin/frontline-medical/alert-dirty.html @@ -92,8 +92,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/archive-algo-model.html b/web-admin/frontline-medical/archive-algo-model.html index d3282cd..c3025f1 100644 --- a/web-admin/frontline-medical/archive-algo-model.html +++ b/web-admin/frontline-medical/archive-algo-model.html @@ -104,8 +104,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/archive-unit-report.html b/web-admin/frontline-medical/archive-unit-report.html index fd250e5..53834fa 100644 --- a/web-admin/frontline-medical/archive-unit-report.html +++ b/web-admin/frontline-medical/archive-unit-report.html @@ -81,8 +81,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/archive-visit-data.html b/web-admin/frontline-medical/archive-visit-data.html index a4ab293..00cfe44 100644 --- a/web-admin/frontline-medical/archive-visit-data.html +++ b/web-admin/frontline-medical/archive-visit-data.html @@ -97,8 +97,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-allocate-record.html b/web-admin/frontline-medical/bed-allocate-record.html index bc5465c..abcd821 100644 --- a/web-admin/frontline-medical/bed-allocate-record.html +++ b/web-admin/frontline-medical/bed-allocate-record.html @@ -101,8 +101,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-bed.html b/web-admin/frontline-medical/bed-bed.html index fc784fc..9b554e2 100644 --- a/web-admin/frontline-medical/bed-bed.html +++ b/web-admin/frontline-medical/bed-bed.html @@ -134,8 +134,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-building.html b/web-admin/frontline-medical/bed-building.html index 22c1475..1196efe 100644 --- a/web-admin/frontline-medical/bed-building.html +++ b/web-admin/frontline-medical/bed-building.html @@ -134,8 +134,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-call-record.html b/web-admin/frontline-medical/bed-call-record.html index 694bdf9..89ff337 100644 --- a/web-admin/frontline-medical/bed-call-record.html +++ b/web-admin/frontline-medical/bed-call-record.html @@ -119,8 +119,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-device-allocate.html b/web-admin/frontline-medical/bed-device-allocate.html index 59df135..ebfb77c 100644 --- a/web-admin/frontline-medical/bed-device-allocate.html +++ b/web-admin/frontline-medical/bed-device-allocate.html @@ -116,8 +116,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-device.html b/web-admin/frontline-medical/bed-device.html index cf8d25c..f13a912 100644 --- a/web-admin/frontline-medical/bed-device.html +++ b/web-admin/frontline-medical/bed-device.html @@ -119,8 +119,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-dormitory.html b/web-admin/frontline-medical/bed-dormitory.html index 2eb0ece..26a7ba0 100644 --- a/web-admin/frontline-medical/bed-dormitory.html +++ b/web-admin/frontline-medical/bed-dormitory.html @@ -127,8 +127,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-stat.html b/web-admin/frontline-medical/bed-stat.html index 58e60af..7848500 100644 --- a/web-admin/frontline-medical/bed-stat.html +++ b/web-admin/frontline-medical/bed-stat.html @@ -44,7 +44,45 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;} .filter-input{height:36px;min-width:110px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;} .filter-input:focus{border-color:var(--primary);} -/* [交互] 统计周期:周/月/年/选时 四选一,选时才展开时间范围 */ +.period-value{display:inline-block;height:36px;line-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);background:#fff;white-space:nowrap;} +.filter-select{height:36px;min-width:140px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;} +/* [交互] 周选择日历:点击触发框打开日历,点选一周(周一至周日) */ +.week-picker{position:relative;display:inline-block;} +.week-trigger{height:36px;min-width:220px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;display:flex;align-items:center;user-select:none;white-space:nowrap;} +.week-trigger.open,.week-trigger:hover{border-color:var(--primary);} +.week-panel{display:none;position:absolute;top:40px;left:0;z-index:320;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:12px;width:280px;} +.week-panel.open{display:block;} +.week-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;} +.week-cal__title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);} +.week-cal__nav{width:24px;height:24px;border:none;background:none;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;border-radius:var(--radius-sm);} +.week-cal__nav:hover{color:var(--primary);background:var(--primary-light);} +.week-cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;} +.week-cal__weekdays span{text-align:center;font-size:var(--font-xs);color:var(--text-placeholder);padding:2px 0;} +.week-cal__body{display:flex;flex-direction:column;gap:2px;} +.week-row{display:grid;grid-template-columns:repeat(7,1fr);cursor:pointer;border-radius:var(--radius-sm);} +.week-row:hover{background:var(--primary-light);} +.week-row.active{background:var(--primary-light);} +.week-cell{height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);color:var(--text-primary);border-radius:var(--radius-sm);} +.week-row.active .week-cell{color:var(--primary);font-weight:600;} +.week-cell--out{color:var(--text-placeholder);} +/* [交互] 年选择十年历 */ +.year-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;} +.year-cell{height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;} +.year-cell:hover{background:var(--primary-light);color:var(--primary);} +.year-cell.active{background:var(--primary);color:#fff;font-weight:600;} +/* [交互] 单位部门级联筛选 */ +.org-wrap{position:relative;display:inline-block;} +.org-trigger{height:36px;min-width:130px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;display:flex;align-items:center;user-select:none;white-space:nowrap;} +.org-trigger.open,.org-trigger:hover{border-color:var(--primary);} +.org-panel{display:none;position:absolute;top:36px;left:0;z-index:310;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);width:380px;} +.org-panel.open{display:flex;} +.org-col{flex:1;overflow-y:auto;max-height:200px;border-right:1px solid var(--border);} +.org-col:last-child{border-right:none;} +.org-col__title{padding:6px 12px;font-size:var(--font-sm);color:var(--text-placeholder);background:#FAFAFA;border-bottom:1px solid var(--border);font-weight:500;} +.org-item{padding:8px 12px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:4px;} +.org-item:hover{background:#F0F8FF;color:var(--primary);} +.org-item.active{background:var(--primary-light);color:var(--primary);font-weight:500;} +/* [交互] 统计周期:周/月/年/选时 四选一,各显示对应可选时间控件(带默认值) */ .seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;} .seg__btn{height:32px;padding:0 14px;border:none;background:#fff;color:var(--text-primary);font-size:var(--font-sm);cursor:pointer;border-right:1px solid var(--border);} .seg__btn:last-child{border-right:none;} @@ -56,6 +94,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .tab-bar{display:flex;gap:4px;margin-top:16px;background:#fff;border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:var(--shadow-sm);padding:6px 16px 0;} .tab-item{padding:10px 18px;font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;} .tab-item.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;} +.tab-filter{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#fff;padding:12px 16px;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);} .table-card{background:#fff;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;} .table-card__head{display:flex;align-items:center;justify-content:flex-start;padding:12px 16px;border-bottom:1px solid var(--border);} .table-card__title{font-size:var(--font-sm);font-weight:600;} @@ -94,8 +133,8 @@ tfoot td{padding:10px 7px;text-align:center;font-size:var(--font-sm);font-weight 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 @@ -138,7 +177,7 @@ tfoot td{padding:10px 7px;text-align:center;font-size:var(--font-sm);font-weight
- +
@@ -149,8 +188,41 @@ tfoot td{padding:10px 7px;text-align:center;font-size:var(--font-sm);font-weight
+ + + + +
+
+ + +
+ +
+
@@ -212,48 +312,171 @@ var rows=[ ]; var dim='dep'; var period='week'; -/* 各周期对应的统计区间(演示口径:周=上一自然周,月=本月,年=本年度) */ +/* 单位→部门两级映射,与站点管理/告警记录页口径一致 */ +var unitDeparts={'采油一厂':['樊学作业区','麻子山作业区'],'采油二厂':['桐园作业区','姬圪台作业区'],'第四采油厂':['西峰作业区'],'采气一厂':['靖边气田']}; +var selUnit='',selDept=''; +function initFilters(){ + var us=[];rows.forEach(function(r){if(us.indexOf(r.unit)<0)us.push(r.unit);}); + document.getElementById('filterUnit').innerHTML=''+us.map(function(u){return '';}).join(''); +} +/* [交互] 站点统计:单位部门级联筛选,选中即即时出数 */ +function toggleOrg(){ + document.getElementById('orgPanel').classList.toggle('open'); + document.getElementById('orgTrigger').classList.toggle('open'); +} +function selectUnit(elem,unitName){ + document.querySelectorAll('#unitCol .org-item').forEach(function(i){i.classList.remove('active');}); + elem.classList.add('active'); + selUnit=unitName; + var html='
部门
全部部门
'; + (unitDeparts[unitName]||[]).forEach(function(d){html+='
'+d+'
';}); + document.getElementById('deptCol').innerHTML=html; + selDept=''; + document.getElementById('orgTrigger').textContent=(selUnit||'全部单位')+' / '+(selDept||'全部部门'); + render(); +} +function selectDept(elem,deptName){ + document.querySelectorAll('#deptCol .org-item').forEach(function(i){i.classList.remove('active');}); + elem.classList.add('active'); + selDept=deptName; + document.getElementById('orgTrigger').textContent=(selUnit||'全部单位')+' / '+(selDept||'全部部门'); + render(); + document.getElementById('orgPanel').classList.remove('open'); + document.getElementById('orgTrigger').classList.remove('open'); +} +/* 各周期统计区间:周从日历选周取值,月/年/选时来自对应可选控件(带默认值) */ +function pad2(n){return ('0'+n).slice(-2);} +function fmtDate(d){return d.getFullYear()+'-'+pad2(d.getMonth()+1)+'-'+pad2(d.getDate());} +function monthRange(m){ + var mm=String(m||'').match(/^(\d{4})-(\d{2})$/); + if(!mm)return [m,m]; + var y=+mm[1],mo=+mm[2]; + return [y+'-'+mm[2]+'-01',fmtDate(new Date(y,mo,0))]; +} +/* [交互] 周选择:点击「统计时间」打开日历,点选一周(周一至周日),展示为日期范围 */ +var weekSelStart='2026-08-31'; // 选中周的周一 +var calYear=2026,calMonth=8; // 日历当前显示的月份(0 起,8=9月) +function parseDate(s){var p=s.split('-');return new Date(+p[0],+p[1]-1,+p[2]);} +function weekEndOf(start){return fmtDate(new Date(start.getFullYear(),start.getMonth(),start.getDate()+6));} +function updateWeekTrigger(){ + var d=parseDate(weekSelStart); + document.getElementById('weekTrigger').textContent=fmtDate(d)+' 至 '+weekEndOf(d); +} +function toggleWeekPanel(){ + var open=document.getElementById('weekPanel').classList.toggle('open'); + document.getElementById('weekTrigger').classList.toggle('open',open); + if(open)renderWeekCalendar(); +} +function shiftWeekMonth(delta){ + calMonth+=delta; + if(calMonth<0){calMonth=11;calYear--;} + if(calMonth>11){calMonth=0;calYear++;} + renderWeekCalendar(); +} +function renderWeekCalendar(){ + document.getElementById('weekCalTitle').textContent=calYear+'年'+(calMonth+1)+'月'; + var first=new Date(calYear,calMonth,1); + var start=new Date(calYear,calMonth,1-((first.getDay()+6)%7)); // 该月首日所在周的周一 + var sel=parseDate(weekSelStart); + var html=''; + for(var r=0;r<6;r++){ + var ws=new Date(start.getFullYear(),start.getMonth(),start.getDate()+r*7); + var isSel=ws.getTime()===sel.getTime(); + html+='
'; + for(var c=0;c<7;c++){ + var d=new Date(ws.getFullYear(),ws.getMonth(),ws.getDate()+c); + html+='
'+d.getDate()+'
'; + } + html+='
'; + } + document.getElementById('weekCalBody').innerHTML=html; +} +function selectWeek(start){ + weekSelStart=start; + var d=parseDate(start); + calYear=d.getFullYear();calMonth=d.getMonth(); + updateWeekTrigger(); + document.getElementById('weekPanel').classList.remove('open'); + document.getElementById('weekTrigger').classList.remove('open'); + render(); +} +/* [交互] 年选择:点击「统计时间」打开十年历,点选年份 */ +var yearSel=2026; +var yearPage=2020; // 当前展示的十年起始 +function updateYearTrigger(){document.getElementById('yearTrigger').textContent=yearSel+'年';} +function toggleYearPanel(){ + var open=document.getElementById('yearPanel').classList.toggle('open'); + document.getElementById('yearTrigger').classList.toggle('open',open); + if(open)renderYearPanel(); +} +function shiftYearPage(delta){yearPage+=delta*10;renderYearPanel();} +function renderYearPanel(){ + document.getElementById('yearPageTitle').textContent=yearPage+' - '+(yearPage+9); + var html=''; + for(var i=0;i<10;i++){ + var y=yearPage+i; + html+='
'+y+'
'; + } + document.getElementById('yearPanelBody').innerHTML=html; +} +function selectYear(y){ + yearSel=y; + updateYearTrigger(); + document.getElementById('yearPanel').classList.remove('open'); + document.getElementById('yearTrigger').classList.remove('open'); + render(); +} function curRange(){ - if(period==='week')return ['2026-09-01','2026-09-07']; - if(period==='month')return ['2026-09-01','2026-09-30']; - if(period==='year')return ['2026-01-01','2026-12-31']; + if(period==='week'){var d=parseDate(weekSelStart);return [fmtDate(d),weekEndOf(d)];} + if(period==='month')return monthRange(document.getElementById('monthInput').value); + if(period==='year')return [yearSel+'-01-01',yearSel+'-12-31']; return [document.getElementById('filterFrom').value,document.getElementById('filterTo').value]; } function head(){ var dimCol=dim==='dep'?'部门':'站点名称'; - return '序号单位'+dimCol+'' + var depTh=dim==='station'?'部门':''; + return '序号单位'+depTh+''+dimCol+'' +'呼叫设备数量已分配数量总呼叫次数已接通次数未接通次数' +'已急救处理次数未急救处理次数告警次数'; } -function num(v,color){return ''+v+'';} +function num(v){return ''+v+'';} function render(){ var rg=curRange(),f=rg[0],t=rg[1]; var inRange=!!(f&&t)&&!(t<'2026-09-01'||f>'2026-09-30'); - var list=inRange?rows.slice():[]; + var list=inRange?rows.filter(function(r){ + if(dim==='dep'){var u=document.getElementById('filterUnit').value;return !u||r.unit===u;} + return (!selUnit||r.unit===selUnit)&&(!selDept||r.dep===selDept); + }):[]; document.getElementById('thead').innerHTML=head(); + var depExtra=dim==='station'; document.getElementById('tbody').innerHTML=list.map(function(r,i){ var dimCell=dim==='dep'?r.dep:r.station; - return ''+(i+1)+''+r.unit+''+dimCell+'' - +num(r.dev)+num(r.alloc,r.alloc'; - }).join('')||''+(inRange?'暂无符合条件的统计数据':'所选周期内无统计数据(演示数据仅覆盖 2026-09)')+''; + return ''+(i+1)+''+r.unit+''+(depExtra?''+r.dep+'':'')+''+dimCell+'' + +num(r.dev)+num(r.alloc)+num(r.calls)+num(r.ok)+num(r.miss) + +num(r.done)+num(r.undone)+num(r.alarm)+''; + }).join('')||''+(inRange?'暂无符合条件的统计数据':'所选周期内无统计数据(演示数据仅覆盖 2026-09)')+''; var sum=function(k){return list.reduce(function(s,r){return s+r[k];},0);}; - var tv=list.length?'合计'+list.length+' 个'+(dim==='dep'?'部门':'站点')+'' + var tv=list.length?'合计'+(depExtra?'':'')+''+list.length+' 个'+(dim==='dep'?'部门':'站点')+'' +num(sum('dev'))+num(sum('alloc'))+num(sum('calls'))+num(sum('ok'))+num(sum('miss'))+num(sum('done'))+num(sum('undone'))+num(sum('alarm'))+'':''; document.getElementById('tfoot').innerHTML=tv; document.getElementById('totalTip').textContent='共 '+list.length+' 行 · 统计区间 '+(f||'—')+' 至 '+(t||'—'); } -/* [交互] 周期切换:非选时隐藏时间范围并即时出数,选时默认展示上一周期区间 */ +/* [交互] 周期切换:周/月/年显示对应可选时间控件(带默认值),选时统计展开起止日期 */ function setPeriod(p){ period=p; ['Week','Month','Year','Custom'].forEach(function(k){document.getElementById('seg'+k).classList.toggle('active',p===k.toLowerCase());}); - document.getElementById('rangeItem').style.display=p==='custom'?'flex':'none'; + document.getElementById('weekItem').style.display=(p==='week')?'flex':'none'; + document.getElementById('monthItem').style.display=(p==='month')?'flex':'none'; + document.getElementById('yearItem').style.display=(p==='year')?'flex':'none'; + document.getElementById('rangeItem').style.display=(p==='custom')?'flex':'none'; render(); } function switchDim(d){ dim=d; document.getElementById('tabDep').classList.toggle('active',d==='dep'); document.getElementById('tabStation').classList.toggle('active',d==='station'); + document.getElementById('unitFilterItem').style.display=(d==='dep')?'flex':'none'; + document.getElementById('orgFilterItem').style.display=(d==='station')?'flex':'none'; render(); } function doExport(){showToast('导出任务已提交,完成后可在「查看导出任务」下载');} @@ -277,7 +500,7 @@ function showToast(msg){ var t=document.getElementById('toast');t.textContent=msg;t.classList.add('show'); clearTimeout(t._timer);t._timer=setTimeout(function(){t.classList.remove('show');},2200); } -render(); +initFilters();updateWeekTrigger();updateYearTrigger();setPeriod('week'); diff --git a/web-admin/frontline-medical/bed-station.html b/web-admin/frontline-medical/bed-station.html index 27aa364..9c85568 100644 --- a/web-admin/frontline-medical/bed-station.html +++ b/web-admin/frontline-medical/bed-station.html @@ -115,8 +115,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/bed-timeout-alarm.html b/web-admin/frontline-medical/bed-timeout-alarm.html index bad26e1..d36da7c 100644 --- a/web-admin/frontline-medical/bed-timeout-alarm.html +++ b/web-admin/frontline-medical/bed-timeout-alarm.html @@ -44,6 +44,19 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;} .filter-input{height:36px;min-width:110px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;} .filter-input:focus{border-color:var(--primary);} +.filter-select{height:36px;min-width:150px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;} +.filter-select:focus{border-color:var(--primary);} +.org-wrap{position:relative;display:inline-block;} +.org-trigger{height:36px;min-width:130px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;display:flex;align-items:center;user-select:none;white-space:nowrap;} +.org-trigger.open,.org-trigger:hover{border-color:var(--primary);} +.org-panel{display:none;position:absolute;top:36px;left:0;z-index:310;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);width:380px;} +.org-panel.open{display:flex;} +.org-col{flex:1;overflow-y:auto;max-height:200px;border-right:1px solid var(--border);} +.org-col:last-child{border-right:none;} +.org-col__title{padding:6px 12px;font-size:var(--font-sm);color:var(--text-placeholder);background:#FAFAFA;border-bottom:1px solid var(--border);font-weight:500;} +.org-item{padding:8px 12px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:4px;} +.org-item:hover{background:#F0F8FF;color:var(--primary);} +.org-item.active{background:var(--primary-light);color:var(--primary);font-weight:500;} .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;white-space:nowrap;} .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);} @@ -88,8 +101,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 @@ -132,15 +145,35 @@ tbody tr:hover{background:#F8FBFF;}
- +
- - + +
+
全部单位/部门
+
+
+
单位
+
全部单位/部门
+
采油一厂
+
采油二厂
+
第四采油厂
+
采气一厂
+
+
+
部门
+
全部部门
+
+
+
- - + + +
+
+ +
@@ -166,9 +199,9 @@ tbody tr:hover{background:#F8FBFF;}
- - - + + +
序号告警时间告警类型告警原因告警设备宿舍名称序号设备编号所属单位部门所属站点告警类型告警时间告警原因宿舍信息(楼栋+宿舍)
@@ -194,31 +227,91 @@ tbody tr:hover{background:#F8FBFF;}
diff --git a/web-admin/frontline-medical/config-allocate-stat.html b/web-admin/frontline-medical/config-allocate-stat.html index ea3b377..e9ec24e 100644 --- a/web-admin/frontline-medical/config-allocate-stat.html +++ b/web-admin/frontline-medical/config-allocate-stat.html @@ -130,8 +130,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 @@ -151,8 +151,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 医疗点统计
救助物品统计 diff --git a/web-admin/frontline-medical/config-allocate.html b/web-admin/frontline-medical/config-allocate.html index d6ba757..fdc3983 100644 --- a/web-admin/frontline-medical/config-allocate.html +++ b/web-admin/frontline-medical/config-allocate.html @@ -172,8 +172,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-ambulance.html b/web-admin/frontline-medical/config-ambulance.html index 0a13e51..7ee779c 100644 --- a/web-admin/frontline-medical/config-ambulance.html +++ b/web-admin/frontline-medical/config-ambulance.html @@ -170,8 +170,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-medical-point.html b/web-admin/frontline-medical/config-medical-point.html index 0d87e6c..cd800e6 100644 --- a/web-admin/frontline-medical/config-medical-point.html +++ b/web-admin/frontline-medical/config-medical-point.html @@ -197,8 +197,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-medical-staff.html b/web-admin/frontline-medical/config-medical-staff.html index aeb4ea7..9e8bbe9 100644 --- a/web-admin/frontline-medical/config-medical-staff.html +++ b/web-admin/frontline-medical/config-medical-staff.html @@ -147,8 +147,8 @@ textarea.form-control{height:72px;padding:8px 10px;resize:vertical;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-medicine-stock.html b/web-admin/frontline-medical/config-medicine-stock.html index 0fa2c9d..396cf78 100644 --- a/web-admin/frontline-medical/config-medicine-stock.html +++ b/web-admin/frontline-medical/config-medicine-stock.html @@ -146,8 +146,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-medicine.html b/web-admin/frontline-medical/config-medicine.html index 0111848..cfba7d2 100644 --- a/web-admin/frontline-medical/config-medicine.html +++ b/web-admin/frontline-medical/config-medicine.html @@ -158,8 +158,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/config-partner-hospital.html b/web-admin/frontline-medical/config-partner-hospital.html index 10edae3..e646128 100644 --- a/web-admin/frontline-medical/config-partner-hospital.html +++ b/web-admin/frontline-medical/config-partner-hospital.html @@ -159,8 +159,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-ambulance-attendance.html b/web-admin/frontline-medical/daily-ambulance-attendance.html index 446c364..66359e7 100644 --- a/web-admin/frontline-medical/daily-ambulance-attendance.html +++ b/web-admin/frontline-medical/daily-ambulance-attendance.html @@ -141,8 +141,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-chronic-intervention.html b/web-admin/frontline-medical/daily-chronic-intervention.html index 4ba74c4..3c90b15 100644 --- a/web-admin/frontline-medical/daily-chronic-intervention.html +++ b/web-admin/frontline-medical/daily-chronic-intervention.html @@ -113,8 +113,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-chronic.html b/web-admin/frontline-medical/daily-chronic.html index 290705b..cc535c8 100644 --- a/web-admin/frontline-medical/daily-chronic.html +++ b/web-admin/frontline-medical/daily-chronic.html @@ -129,8 +129,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-education.html b/web-admin/frontline-medical/daily-education.html index e6d149c..cec8bfb 100644 --- a/web-admin/frontline-medical/daily-education.html +++ b/web-admin/frontline-medical/daily-education.html @@ -151,8 +151,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-employee-file.html b/web-admin/frontline-medical/daily-employee-file.html index 498d2db..68fcc9b 100644 --- a/web-admin/frontline-medical/daily-employee-file.html +++ b/web-admin/frontline-medical/daily-employee-file.html @@ -177,8 +177,8 @@ tbody tr:hover{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-employee-search.html b/web-admin/frontline-medical/daily-employee-search.html index a9efd41..c10baf1 100644 --- a/web-admin/frontline-medical/daily-employee-search.html +++ b/web-admin/frontline-medical/daily-employee-search.html @@ -112,8 +112,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-follow-task.html b/web-admin/frontline-medical/daily-follow-task.html index e6fcabc..ceaa65c 100644 --- a/web-admin/frontline-medical/daily-follow-task.html +++ b/web-admin/frontline-medical/daily-follow-task.html @@ -174,8 +174,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-follow.html b/web-admin/frontline-medical/daily-follow.html index 9bb8593..d53f53e 100644 --- a/web-admin/frontline-medical/daily-follow.html +++ b/web-admin/frontline-medical/daily-follow.html @@ -170,8 +170,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-interpret-manage.html b/web-admin/frontline-medical/daily-interpret-manage.html index a96643f..c8efd65 100644 --- a/web-admin/frontline-medical/daily-interpret-manage.html +++ b/web-admin/frontline-medical/daily-interpret-manage.html @@ -138,8 +138,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-interpret.html b/web-admin/frontline-medical/daily-interpret.html index 0aab386..0c1e2d4 100644 --- a/web-admin/frontline-medical/daily-interpret.html +++ b/web-admin/frontline-medical/daily-interpret.html @@ -181,8 +181,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/daily-treatment.html b/web-admin/frontline-medical/daily-treatment.html index 6d6bffe..5059d75 100644 --- a/web-admin/frontline-medical/daily-treatment.html +++ b/web-admin/frontline-medical/daily-treatment.html @@ -172,8 +172,8 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 diff --git a/web-admin/frontline-medical/hut-appointment.html b/web-admin/frontline-medical/hut-appointment.html index e047767..0f6747a 100644 --- a/web-admin/frontline-medical/hut-appointment.html +++ b/web-admin/frontline-medical/hut-appointment.html @@ -3,7 +3,7 @@ -预约管理 | 一线医疗 +员工预约记录 | 一线医疗 + + + +
+ + +
+ 返回首页 +
+ 系统管理员 ▾ +
+
+ + + + + +
+
+ 返回小屋管理 + 小屋数据管理 +
+ + +
+
健康小屋基本信息
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ + + +
+
+ + + + + +
序号日期血压测量人次血糖测量人次操作
+
+
+
+ + + + + + + + + + +
+ + + + diff --git a/web-admin/frontline-medical/hut-cabin-stat.html b/web-admin/frontline-medical/hut-cabin-stat.html index aface60..42e4457 100644 --- a/web-admin/frontline-medical/hut-cabin-stat.html +++ b/web-admin/frontline-medical/hut-cabin-stat.html @@ -47,12 +47,35 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .filter-input{height:36px;min-width:110px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;} .filter-input:focus{border-color:var(--primary);} .seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;} -.seg span{padding:6px 14px;font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;background:#fff;border-right:1px solid var(--border);} -.seg span:last-child{border-right:none;} -.seg span.on{background:var(--primary);color:#fff;} +.seg__btn{height:32px;padding:0 14px;border:none;background:#fff;color:var(--text-primary);font-size:var(--font-sm);cursor:pointer;border-right:1px solid var(--border);} +.seg__btn:last-child{border-right:none;} +.seg__btn.active{background:var(--primary);color:#fff;} +.week-picker{position:relative;display:inline-block;} +.week-trigger{height:36px;min-width:220px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 8px center;cursor:pointer;display:flex;align-items:center;user-select:none;white-space:nowrap;} +.week-trigger.open,.week-trigger:hover{border-color:var(--primary);} +.week-panel{display:none;position:absolute;top:40px;left:0;z-index:320;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:12px;width:280px;} +.week-panel.open{display:block;} +.week-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;} +.week-cal__title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);} +.week-cal__nav{width:24px;height:24px;border:none;background:none;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;border-radius:var(--radius-sm);} +.week-cal__nav:hover{color:var(--primary);background:var(--primary-light);} +.week-cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;} +.week-cal__weekdays span{text-align:center;font-size:var(--font-xs);color:var(--text-placeholder);padding:2px 0;} +.week-cal__body{display:flex;flex-direction:column;gap:2px;} +.week-row{display:grid;grid-template-columns:repeat(7,1fr);cursor:pointer;border-radius:var(--radius-sm);} +.week-row:hover{background:var(--primary-light);} +.week-row.active{background:var(--primary-light);} +.week-cell{height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);color:var(--text-primary);border-radius:var(--radius-sm);} +.week-row.active .week-cell{color:var(--primary);font-weight:600;} +.week-cell--out{color:var(--text-placeholder);} +.year-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;} +.year-cell{height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;} +.year-cell:hover{background:var(--primary-light);color:var(--primary);} +.year-cell.active{background:var(--primary);color:#fff;font-weight:600;} .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;white-space:nowrap;} .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);} +.action-bar{display:flex;justify-content:flex-start;gap:8px;margin-top:16px;} .table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;margin-top:16px;} .table-card__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);gap:10px;flex-wrap:wrap;} .table-card__title{font-size:var(--font-sm);font-weight:600;} @@ -83,8 +106,8 @@ tbody tr:hover td:last-child{background:#F8FBFF;} 档案 基础配置 日常业务 - 床头呼叫 数据统计 + 床头呼叫 健康小屋 异常事件 @@ -105,13 +128,13 @@ tbody tr:hover td:last-child{background:#F8FBFF;}