this is a push
This commit is contained in:
@@ -22,9 +22,8 @@
|
||||
<button class="nav-item is-active" type="button" data-view="overview"><span class="nav-icon">▦</span><span>系统总览</span></button>
|
||||
<button class="nav-item" type="button" data-view="inspection"><span class="nav-icon">▶</span><span>视频巡检</span></button>
|
||||
<button class="nav-item" type="button" data-view="events"><span class="nav-icon">!</span><span>告警中心</span><span class="nav-count" id="pendingNavCount">0</span></button>
|
||||
<button class="nav-item" type="button" data-view="robots"><span class="nav-icon">⌾</span><span>机器人管理</span><span class="nav-count nav-count-cyan" id="robotNavCount">4</span></button>
|
||||
<button class="nav-item" type="button" data-view="robots"><span class="nav-icon">⌁</span><span>消息机器人</span><span class="nav-count nav-count-cyan" id="robotNavCount">0</span></button>
|
||||
<button class="nav-item" type="button" data-view="risks"><span class="nav-icon">◇</span><span>风险台账</span></button>
|
||||
<button class="nav-item" type="button" data-view="channels"><span class="nav-icon">⌁</span><span>通知通道</span></button>
|
||||
<button class="nav-item" type="button" data-view="settings"><span class="nav-icon">⚙</span><span>系统设置</span></button>
|
||||
</nav>
|
||||
<div class="sidebar-footer">
|
||||
@@ -64,18 +63,24 @@
|
||||
<article class="stat-card"><div class="stat-head"><span>今日告警</span><span class="stat-symbol warning">!</span></div><strong id="todayEventCount">0</strong><small>系统产生的有效告警事件</small></article>
|
||||
<article class="stat-card"><div class="stat-head"><span>待处置事件</span><span class="stat-symbol danger">●</span></div><strong id="pendingEventCount">0</strong><small>需要值班人员确认处理</small></article>
|
||||
<article class="stat-card"><div class="stat-head"><span>模型状态</span><span class="stat-symbol success">✓</span></div><strong id="modelStatusValue" class="text-value">检查中</strong><small id="modelStatusDetail">正在读取权重状态</small></article>
|
||||
<article class="stat-card"><div class="stat-head"><span>在线机器人</span><span class="stat-symbol info">⌾</span></div><strong id="onlineRobotCount">0</strong><small id="robotSummary">正在同步机器人编队</small></article>
|
||||
<article class="stat-card"><div class="stat-head"><span>消息机器人</span><span class="stat-symbol info">⌁</span></div><strong id="onlineRobotCount">0</strong><small id="robotSummary">正在读取通知通道</small></article>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-command-grid">
|
||||
<article class="panel safety-score-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">SAFETY INDEX</p><h3>综合安全指数</h3></div><span class="trend-badge">较昨日 +2.4%</span></div>
|
||||
<div class="safety-score-body"><div id="safetyGauge" class="safety-gauge" style="--score: 86"><div><strong id="safetyScore">86</strong><span>安全</span></div></div><div class="score-breakdown"><div><span>设备在线率</span><strong id="deviceOnlineRate">--</strong></div><div><span>事件闭环率</span><strong id="eventClosureRate">--</strong></div><div><span>通知覆盖率</span><strong id="notificationCoverage">--</strong></div></div></div>
|
||||
<div class="safety-score-body"><div id="safetyGauge" class="safety-gauge" style="--score: 86"><div><strong id="safetyScore">86</strong><span>安全</span></div></div><div class="score-breakdown"><div><span>机器人可用率</span><strong id="deviceOnlineRate">--</strong></div><div><span>事件闭环率</span><strong id="eventClosureRate">--</strong></div><div><span>通知覆盖率</span><strong id="notificationCoverage">--</strong></div></div></div>
|
||||
</article>
|
||||
<article class="panel zone-map-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">ZONE MONITORING</p><h3>重点区域态势</h3></div><button class="text-button" type="button" data-view-jump="robots">查看编队 →</button></div>
|
||||
<div class="zone-map" aria-label="园区重点区域态势图"><div class="map-grid"></div><span class="zone-block zone-a">A 仓储区</span><span class="zone-block zone-b">B 生产区</span><span class="zone-block zone-c">C 能源站</span><span class="zone-block zone-d">D 装卸区</span><span class="robot-dot robot-dot-1" title="巡检一号"></span><span class="robot-dot robot-dot-2" title="巡检二号"></span><span class="robot-dot robot-dot-3 is-warning" title="哨兵三号"></span><span class="camera-sweep"></span></div>
|
||||
<div class="zone-legend"><span><i class="dot-online"></i>正常</span><span><i class="dot-warning"></i>需关注</span><span><i class="dot-offline"></i>离线</span></div>
|
||||
<article class="panel message-flow-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">MESSAGE DELIVERY</p><h3>告警消息触达链路</h3></div><button class="text-button" type="button" data-view-jump="robots">管理机器人 →</button></div>
|
||||
<div class="message-flow" aria-label="告警消息触达流程">
|
||||
<div class="flow-node source"><span>01</span><strong>烟火识别</strong><small>YOLO 实时推理</small></div>
|
||||
<i class="flow-connector"></i>
|
||||
<div class="flow-node policy"><span>02</span><strong>告警确认</strong><small id="overviewPolicyText">连续帧策略</small></div>
|
||||
<i class="flow-connector split"></i>
|
||||
<div class="flow-destinations"><div class="flow-node channel"><span class="wechat-dot">微</span><strong>企业微信</strong><small id="overviewWechatState">检查中</small></div><div class="flow-node channel"><span class="feishu-dot">飞</span><strong>飞书</strong><small id="overviewFeishuState">检查中</small></div></div>
|
||||
</div>
|
||||
<div class="flow-foot"><span>检测结果只在达到确认阈值后发送</span><strong id="overviewDeliveryCount">累计成功 0 次</strong></div>
|
||||
</article>
|
||||
<article class="panel risk-donut-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">RISK MIX</p><h3>风险类型分布</h3></div><span class="micro-copy">近 7 日</span></div>
|
||||
@@ -156,42 +161,33 @@
|
||||
</section>
|
||||
|
||||
<section class="view" id="view-robots" data-view-panel="robots">
|
||||
<div class="page-intro robot-page-intro"><div><p class="section-kicker">ROBOT FLEET OPERATIONS</p><h2>机器人资产与任务管理</h2><p>集中掌握巡检机器人在线状态、任务进度、能源与传感器健康度。</p></div><button id="dispatchRobotButton" class="primary-button" type="button">+ 创建巡检任务</button></div>
|
||||
<div class="page-intro robot-page-intro"><div><p class="section-kicker">MESSAGING ROBOT OPERATIONS</p><h2>消息机器人管理</h2><p>管理企业微信与飞书群机器人,监控告警投递状态并执行连接测试。</p></div><button id="refreshRobotsButton" class="secondary-button" type="button">刷新状态</button></div>
|
||||
<div class="fleet-stat-grid">
|
||||
<article class="fleet-stat"><span>资产总数</span><strong id="robotTotalCount">0</strong><small>台巡检设备</small></article>
|
||||
<article class="fleet-stat"><span>执行任务</span><strong id="robotMissionCount">0</strong><small>正在自动巡检</small></article>
|
||||
<article class="fleet-stat"><span>平均电量</span><strong id="robotAverageBattery">0%</strong><small>编队能源健康</small></article>
|
||||
<article class="fleet-stat"><span>今日里程</span><strong id="robotDistance">0 km</strong><small>累计巡检距离</small></article>
|
||||
<article class="fleet-stat"><span>支持平台</span><strong id="robotTotalCount">0</strong><small>企业微信与飞书</small></article>
|
||||
<article class="fleet-stat"><span>已配置</span><strong id="robotConfiguredCount">0</strong><small>可接收告警消息</small></article>
|
||||
<article class="fleet-stat"><span>成功投递</span><strong id="robotDeliveredCount">0</strong><small>本次服务运行期间</small></article>
|
||||
<article class="fleet-stat"><span>发送失败</span><strong id="robotFailedCount">0</strong><small>需要检查网络或凭据</small></article>
|
||||
</div>
|
||||
<div class="fleet-toolbar"><div class="filter-group" role="group" aria-label="机器人状态筛选"><button type="button" class="filter-button is-active" data-robot-filter="all">全部</button><button type="button" class="filter-button" data-robot-filter="active">任务中</button><button type="button" class="filter-button" data-robot-filter="charging">充电中</button><button type="button" class="filter-button" data-robot-filter="offline">离线</button></div><label class="search-field"><span>⌕</span><input id="robotSearchInput" type="search" placeholder="搜索编号、名称或区域" /></label></div>
|
||||
<div class="robot-management-grid">
|
||||
<div id="robotCardGrid" class="robot-card-grid"></div>
|
||||
<aside class="panel mission-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">MISSION QUEUE</p><h3>今日任务队列</h3></div><span id="missionQueueCount" class="nav-count nav-count-cyan">0</span></div>
|
||||
<div id="missionQueue" class="mission-queue"></div>
|
||||
<button class="secondary-button mission-history-button" type="button">查看任务历史</button>
|
||||
<div class="robot-management-grid message-robot-layout">
|
||||
<div id="robotCardGrid" class="message-robot-grid"><article class="panel robot-empty">正在读取机器人状态</article></div>
|
||||
<aside class="panel robot-policy-panel">
|
||||
<div class="panel-header"><div><p class="section-kicker">DELIVERY POLICY</p><h3>告警发送策略</h3></div><span class="status-chip status-online">自动执行</span></div>
|
||||
<div class="policy-chain"><div><span>1</span><p><strong>连续帧确认</strong><small id="robotPolicyConfirm">--</small></p></div><div><span>2</span><p><strong>生成告警内容</strong><small>目标类型、置信度与检测时间</small></p></div><div><span>3</span><p><strong>并行发送</strong><small>向所有已配置机器人投递</small></p></div><div><span>4</span><p><strong>分类冷却</strong><small id="robotPolicyCooldown">--</small></p></div></div>
|
||||
<div class="credential-note"><strong>凭据安全</strong><p>Webhook 与签名密钥只保存在服务端 <code>.env</code>,页面不会读取或展示敏感值。</p></div>
|
||||
</aside>
|
||||
</div>
|
||||
<article class="panel robot-config-panel"><div class="panel-header"><div><p class="section-kicker">CONFIGURATION</p><h3>机器人接入</h3></div></div><div class="config-steps"><div><span>01</span><p><strong>创建群机器人</strong><small>在企业微信群或飞书群中添加自定义机器人。</small></p></div><div><span>02</span><p><strong>写入服务端配置</strong><small><code>WECHAT_WEBHOOK_URL</code> / <code>FEISHU_WEBHOOK_URL</code></small></p></div><div><span>03</span><p><strong>重启并测试</strong><small>重启服务后,在机器人卡片中发送测试消息。</small></p></div></div></article>
|
||||
</section>
|
||||
<section class="view" id="view-risks" data-view-panel="risks">
|
||||
<div class="page-intro"><div><p class="section-kicker">RISK REGISTER</p><h2>风险台账</h2><p>从模型阈值、告警策略和处置状态评估当前风险治理情况。</p></div></div>
|
||||
<div class="risk-grid">
|
||||
<article class="panel risk-card"><span class="risk-level high">高风险</span><h3>未处置告警事件</h3><strong id="riskPendingValue">0</strong><p>待值班人员确认的火焰或烟雾事件。</p><button class="text-button" type="button" data-view-jump="events">进入告警中心 →</button></article>
|
||||
<article class="panel risk-card"><span class="risk-level medium">策略风险</span><h3>告警通知覆盖</h3><strong id="riskChannelValue">0 / 2</strong><p>建议至少启用一个机器人通知通道。</p><button class="text-button" type="button" data-view-jump="channels">检查通知通道 →</button></article>
|
||||
<article class="panel risk-card"><span class="risk-level medium">策略风险</span><h3>告警通知覆盖</h3><strong id="riskChannelValue">0 / 2</strong><p>建议至少启用一个机器人通知通道。</p><button class="text-button" type="button" data-view-jump="robots">管理消息机器人 →</button></article>
|
||||
<article class="panel risk-card"><span class="risk-level low">模型策略</span><h3>检测置信度阈值</h3><strong id="riskConfidenceValue">--</strong><p>阈值过低会增加误报,过高可能遗漏早期烟雾。</p><button class="text-button" type="button" data-view-jump="settings">查看系统参数 →</button></article>
|
||||
</div>
|
||||
<article class="panel checklist-panel"><div class="panel-header"><div><p class="section-kicker">PREVENTION CHECKLIST</p><h3>火灾预防工作清单</h3></div></div><div class="checklist"><label><input type="checkbox" />视频监控覆盖重点区域</label><label><input type="checkbox" />告警机器人可正常接收消息</label><label><input type="checkbox" />值班人员明确事件处置流程</label><label><input type="checkbox" />模型权重与阈值定期复核</label><label><input type="checkbox" />消防通道和设备状态已巡查</label><label><input type="checkbox" />告警事件完成闭环记录</label></div></article>
|
||||
</section>
|
||||
|
||||
<section class="view" id="view-channels" data-view-panel="channels">
|
||||
<div class="page-intro"><div><p class="section-kicker">NOTIFICATION CHANNELS</p><h2>通知通道</h2><p>管理告警触达方式。敏感凭据保存在服务端本地环境文件中。</p></div></div>
|
||||
<div class="channel-grid">
|
||||
<article class="panel channel-card"><div class="channel-logo wechat-logo">微</div><div class="channel-content"><div><h3>企业微信群机器人</h3><span id="wechatChannelBadge" class="channel-badge">未配置</span></div><p>告警时发送 Markdown 消息与带检测框截图。</p><code>WECHAT_WEBHOOK_URL</code></div></article>
|
||||
<article class="panel channel-card"><div class="channel-logo feishu-logo">飞</div><div class="channel-content"><div><h3>飞书自定义机器人</h3><span id="feishuChannelBadge" class="channel-badge">未配置</span></div><p>告警时发送红色交互卡片,支持签名校验。</p><code>FEISHU_WEBHOOK_URL / FEISHU_SECRET</code></div></article>
|
||||
</div>
|
||||
<article class="panel config-guide"><div class="panel-header"><div><p class="section-kicker">CONFIGURATION</p><h3>配置说明</h3></div></div><ol><li>在企业微信或飞书群中添加自定义机器人并复制 Webhook。</li><li>将 Webhook 填入项目根目录 <code>.env</code> 对应字段。</li><li>飞书开启签名校验时,同时填写 <code>FEISHU_SECRET</code>。</li><li>重启后端服务,平台将自动显示通道启用状态。</li></ol></article>
|
||||
</section>
|
||||
|
||||
<section class="view" id="view-settings" data-view-panel="settings">
|
||||
<div class="page-intro"><div><p class="section-kicker">SYSTEM SETTINGS</p><h2>系统设置</h2><p>查看当前生效的模型和告警参数。配置修改后需重启服务。</p></div></div>
|
||||
<div class="settings-grid">
|
||||
|
||||
Reference in New Issue
Block a user