feat: 健康监测多端原型新增与优化
- 员工端新增体重监测模块(主页/历史数据/详细报告),支持按设备来源(体重秤/蓝牙秤/体脂仪)显示不同字段 - 员工端新增健康排查模块(首页/打卡填写/打卡记录/问卷详情/题目设置),含打卡成功dialog弹窗 - 管理端体重监测数据明细页使用次数统计靠右显示 - 管理端体重监测dialog弹窗改为分类展示监测字段 - 导航页SITE_MAP同步更新新增页面条目 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+91
-19
@@ -284,7 +284,69 @@ const SITE_MAP = [
|
||||
{ file:'ano-result.html', label:'结果异常' }
|
||||
]},
|
||||
{ name:'运动管理', dir:'web-admin/exercise', pages:[] },
|
||||
{ name:'健康监测', dir:'web-admin/health-monitor', pages:[] },
|
||||
{ name:'健康监测', dir:'web-admin/health-monitor', entry:'archive-personal.html', pages:[
|
||||
{ file:'archive-personal.html', label:'个人监测档案' },
|
||||
{ file:'archive-unit.html', label:'单位报表数据' },
|
||||
{ file:'archive-algorithm.html', label:'算法模型' },
|
||||
{ file:'health-checkup/survey-category.html', label:'排查问卷-问题分类' },
|
||||
{ file:'health-checkup/survey-score.html', label:'排查问卷-积分规则' },
|
||||
{ file:'health-checkup/survey-template.html', label:'排查问卷-模板信息' },
|
||||
{ file:'health-checkup/survey-question.html', label:'排查问卷-问题管理' },
|
||||
{ file:'health-checkup/maxim.html', label:'格言管理' },
|
||||
{ file:'health-checkup/record-user.html', label:'排查记录-用户排查' },
|
||||
{ file:'health-checkup/record-dept.html', label:'排查记录-部门排查' },
|
||||
{ file:'wearable/tool-manage.html', label:'穿戴监测-工具管理' },
|
||||
{ file:'wearable/bind-record.html', label:'穿戴监测-绑定记录' },
|
||||
{ file:'wearable/user-data.html', label:'穿戴监测-用户数据' },
|
||||
{ file:'wearable/exception-event.html', label:'穿戴监测-异常事件' },
|
||||
{ file:'wearable/notification.html', label:'穿戴监测-通知消息' },
|
||||
{ file:'wearable/dept-stat.html', label:'穿戴监测-部门数据统计' },
|
||||
{ file:'wearable/personal-stat.html', label:'穿戴监测-个人数据统计' },
|
||||
{ file:'weight/scale-device.html', label:'体重秤-设备管理' },
|
||||
{ file:'weight/scale-monitor.html', label:'体重秤-设备监测' },
|
||||
{ file:'weight/scale-monitor-detail.html', label:'体重秤-数据明细' },
|
||||
{ file:'weight/scale-stat.html', label:'体重秤-设备统计' },
|
||||
{ file:'weight/bluetooth-device.html', label:'蓝牙称-设备管理' },
|
||||
{ file:'weight/bluetooth-monitor.html', label:'蓝牙称-设备监测' },
|
||||
{ file:'weight/bluetooth-monitor-detail.html', label:'蓝牙称-数据明细' },
|
||||
{ file:'weight/bluetooth-stat.html', label:'蓝牙称-设备统计' },
|
||||
{ file:'weight/fat-device.html', label:'体脂仪-设备管理' },
|
||||
{ file:'weight/fat-monitor.html', label:'体脂仪-设备监测' },
|
||||
{ file:'weight/fat-monitor-detail.html', label:'体脂仪-数据明细' },
|
||||
{ file:'weight/fat-stat.html', label:'体脂仪-设备统计' },
|
||||
{ file:'weight/sport-device.html', label:'运动器械-设备管理' },
|
||||
{ file:'weight/sport-monitor.html', label:'运动器械-设备监测' },
|
||||
{ file:'weight/sport-monitor-detail.html', label:'运动器械-数据明细' },
|
||||
{ file:'weight/sport-stat.html', label:'运动器械-设备统计' },
|
||||
{ file:'weight/employee-data.html', label:'体重监测-员工数据' },
|
||||
{ file:'environment/indoor-device-list.html', label:'室内空气-设备列表' },
|
||||
{ file:'environment/indoor-device-category.html', label:'室内空气-设备分类' },
|
||||
{ file:'environment/indoor-data-monitor.html', label:'室内空气-数据监测' },
|
||||
{ file:'environment/indoor-exception-alarm.html', label:'室内空气-异常报警' },
|
||||
{ file:'environment/indoor-app-record.html', label:'室内空气-应用记录' },
|
||||
{ file:'environment/indoor-history-data.html', label:'室内空气-历史数据' },
|
||||
{ file:'environment/outdoor-device-list.html', label:'室外空气-设备列表' },
|
||||
{ file:'environment/outdoor-device-category.html', label:'室外空气-设备分类' },
|
||||
{ file:'environment/outdoor-data-monitor.html', label:'室外空气-数据监测' },
|
||||
{ file:'environment/outdoor-exception-alarm.html', label:'室外空气-异常报警' },
|
||||
{ file:'environment/outdoor-app-record.html', label:'室外空气-应用记录' },
|
||||
{ file:'environment/outdoor-history-data.html', label:'室外空气-历史数据' },
|
||||
{ file:'environment/water-device-list.html', label:'水质监测-设备列表' },
|
||||
{ file:'environment/water-device-category.html', label:'水质监测-设备分类' },
|
||||
{ file:'environment/water-data-monitor.html', label:'水质监测-数据监测' },
|
||||
{ file:'environment/water-exception-alarm.html', label:'水质监测-异常报警' },
|
||||
{ file:'environment/water-app-record.html', label:'水质监测-应用记录' },
|
||||
{ file:'environment/water-history-data.html', label:'水质监测-历史数据' },
|
||||
{ file:'environment/pollen-device-list.html', label:'花粉监测-设备列表' },
|
||||
{ file:'environment/pollen-device-category.html', label:'花粉监测-设备分类' },
|
||||
{ file:'environment/pollen-data-monitor.html', label:'花粉监测-数据监测' },
|
||||
{ file:'environment/pollen-exception-alarm.html', label:'花粉监测-异常报警' },
|
||||
{ file:'environment/pollen-app-record.html', label:'花粉监测-应用记录' },
|
||||
{ file:'environment/pollen-history-data.html', label:'花粉监测-历史数据' },
|
||||
{ file:'environment/pollen-knowledge.html', label:'花粉监测-知识科普' },
|
||||
{ file:'exception-dirty.html', label:'异常事件-系统脏数据' },
|
||||
{ file:'exception-result.html', label:'异常事件-结果异常' }
|
||||
]},
|
||||
{ name:'健康评估', dir:'web-admin/health-assessment', pages:[] },
|
||||
{ name:'知识普及', dir:'web-admin/knowledge', pages:[] },
|
||||
{ name:'健康数据', dir:'web-admin/health-data', pages:[] },
|
||||
@@ -441,18 +503,27 @@ const SITE_MAP = [
|
||||
{ name:'营养管理', dir:'employee-app/nutrition', pages:[] },
|
||||
{ name:'运动管理', dir:'employee-app/exercise', pages:[] },
|
||||
{ name:'健康监测', dir:'employee-app/health-monitor', entry:'index.html', pages:[
|
||||
{ file:'index.html', label:'健康监测首页' },
|
||||
{ file:'steps.html', label:'步数详情' },
|
||||
{ file:'sleep.html', label:'睡眠详情' },
|
||||
{ file:'heart-rate.html', label:'心率详情' },
|
||||
{ file:'heart-rate-alerts.html', label:'心率预警历史' },
|
||||
{ file:'temperature.html', label:'体温详情' },
|
||||
{ file:'temperature-alerts.html', label:'体温预警历史' },
|
||||
{ file:'blood-oxygen.html', label:'血氧详情' },
|
||||
{ file:'blood-oxygen-alerts.html', label:'血氧预警历史' },
|
||||
{ file:'stress.html', label:'压力详情' },
|
||||
{ file:'stress-alerts.html', label:'压力预警历史' },
|
||||
{ file:'exercise.html', label:'锻炼详情' }
|
||||
{ file:'index.html', label:'健康监测主页' },
|
||||
{ file:'wearable/index.html', label:'穿戴监测首页' },
|
||||
{ file:'wearable/steps.html', label:'步数详情' },
|
||||
{ file:'wearable/sleep.html', label:'睡眠详情' },
|
||||
{ file:'wearable/heart-rate.html', label:'心率详情' },
|
||||
{ file:'wearable/heart-rate-alerts.html', label:'心率预警历史' },
|
||||
{ file:'wearable/temperature.html', label:'体温详情' },
|
||||
{ file:'wearable/temperature-alerts.html', label:'体温预警历史' },
|
||||
{ file:'wearable/blood-oxygen.html', label:'血氧详情' },
|
||||
{ file:'wearable/blood-oxygen-alerts.html', label:'血氧预警历史' },
|
||||
{ file:'wearable/stress.html', label:'压力详情' },
|
||||
{ file:'wearable/stress-alerts.html', label:'压力预警历史' },
|
||||
{ file:'wearable/exercise.html', label:'锻炼详情' },
|
||||
{ file:'health-screening/index.html', label:'健康排查首页' },
|
||||
{ file:'health-screening/questionnaire-fill.html', label:'每日打卡填写' },
|
||||
{ file:'health-screening/questionnaire-setting.html', label:'题目设置' },
|
||||
{ file:'health-screening/checkin-record.html', label:'打卡记录' },
|
||||
{ file:'health-screening/questionnaire-detail.html', label:'问卷详情' },
|
||||
{ file:'weight/index.html', label:'体重监测首页' },
|
||||
{ file:'weight/history.html', label:'体重历史数据' },
|
||||
{ file:'weight/report-detail.html', label:'体重详细报告' }
|
||||
] },
|
||||
{ name:'健康评估', dir:'employee-app/health-assessment', pages:[] },
|
||||
{ name:'心脑血管病预防', dir:'employee-app/cardiovascular', pages:[] },
|
||||
@@ -701,11 +772,12 @@ tabNav.innerHTML += `<div class="tab-nav__item" data-idx="${prdTabIdx}">${ICONS.
|
||||
let openPopover = null;
|
||||
function cardHTML(mod, uid) {
|
||||
const has = mod.pages.length > 0;
|
||||
const isDone = has && mod.done;
|
||||
const isWip = has && !mod.done;
|
||||
const cls = isDone ? 'module-card module-card--ready' : isWip ? 'module-card module-card--wip' : 'module-card module-card--empty';
|
||||
const mainHref = has ? `${mod.dir}/${mod.entry || 'index.html'}` : '';
|
||||
const onclick = has ? `onclick="window.open('${mainHref}','_blank')"` : '';
|
||||
const isPending = !!mod.pending;
|
||||
const isDone = has && mod.done && !isPending;
|
||||
const isWip = has && !mod.done && !isPending;
|
||||
const cls = isPending ? 'module-card module-card--empty' : isDone ? 'module-card module-card--ready' : isWip ? 'module-card module-card--wip' : 'module-card module-card--empty';
|
||||
const mainHref = has && !isPending ? `${mod.dir}/${mod.entry || 'index.html'}` : '';
|
||||
const onclick = has && !isPending ? `onclick="window.open('${mainHref}','_blank')"` : '';
|
||||
|
||||
/* 右上角状态标签 */
|
||||
let statusHtml = '';
|
||||
@@ -723,7 +795,7 @@ function cardHTML(mod, uid) {
|
||||
prdLink = `<a class="module-card__prd" onclick="event.stopPropagation();openMdPreview('${mod.prd}','${mod.name} PRD')">${ICONS.prdSmall}PRD文档</a>`;
|
||||
}
|
||||
let pageCountHtml = '';
|
||||
if (has) {
|
||||
if (has && !isPending) {
|
||||
let popItems = mod.pages.map(p => {
|
||||
const dcls = p.dialog ? ' page-popover__item--dialog' : '';
|
||||
const icon = p.dialog ? ICONS.dialog : ICONS.page;
|
||||
|
||||
Reference in New Issue
Block a user