|
|
@@ -14,7 +14,10 @@
|
|
|
<div class="safety-eval-section">
|
|
|
<div class="safety-eval-top">
|
|
|
<span class="safety-eval-section-title">综合安全等级</span>
|
|
|
- <span class="safety-eval-grade grade-a">一类坝</span>
|
|
|
+ <span class="safety-eval-grade grade-a">安全</span>
|
|
|
+ </div>
|
|
|
+ <div style="text-align:right;padding:0 10px 2px 0;">
|
|
|
+ <span style="color:#fbbf24;font-size:11px;">系统评估参考值,非专业机构评定</span>
|
|
|
</div>
|
|
|
<div class="safety-eval-sub-row">
|
|
|
<div class="safety-eval-sub-card">
|
|
|
@@ -69,19 +72,19 @@
|
|
|
<!-- 今日巡检统计 -->
|
|
|
<div class="patrol-stats-row">
|
|
|
<div class="patrol-stat-item">
|
|
|
- <span class="patrol-stat-num">24</span>
|
|
|
+ <span class="patrol-stat-num">16</span>
|
|
|
<span class="patrol-stat-label">今日应巡检</span>
|
|
|
</div>
|
|
|
<div class="patrol-stat-item">
|
|
|
- <span class="patrol-stat-num" style="color:#22c55e">18</span>
|
|
|
+ <span class="patrol-stat-num" style="color:#22c55e">14</span>
|
|
|
<span class="patrol-stat-label">已完成</span>
|
|
|
</div>
|
|
|
<div class="patrol-stat-item">
|
|
|
- <span class="patrol-stat-num" style="color:#f59e0b">6</span>
|
|
|
+ <span class="patrol-stat-num" style="color:#f59e0b">2</span>
|
|
|
<span class="patrol-stat-label">未完成</span>
|
|
|
</div>
|
|
|
<div class="patrol-stat-item">
|
|
|
- <span class="patrol-stat-num" style="color:#ef4444">2</span>
|
|
|
+ <span class="patrol-stat-num" style="color:#22c55e">0</span>
|
|
|
<span class="patrol-stat-label">异常发现</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -125,7 +128,7 @@
|
|
|
</button>
|
|
|
</div>
|
|
|
<!-- 形变内容 -->
|
|
|
- <div v-show="mergedTab === 'deform'" class="deform-section">
|
|
|
+ <div v-if="mergedTab === 'deform'" class="deform-section">
|
|
|
<div class="conclusion-row" style="margin-bottom:6px;">
|
|
|
<span class="conclusion-row-label">整体变形状态判定</span>
|
|
|
<span class="conclusion-row-value text-green">稳定</span>
|
|
|
@@ -134,7 +137,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 渗压内容 -->
|
|
|
- <div v-show="mergedTab === 'seepage'" class="seepage-section">
|
|
|
+ <div v-if="mergedTab === 'seepage'" class="seepage-section">
|
|
|
<div class="conclusion-row" style="margin-bottom:6px;">
|
|
|
<span class="conclusion-row-label">渗流整体安全状态</span>
|
|
|
<span class="conclusion-row-value text-green">防渗正常</span>
|
|
|
@@ -157,15 +160,15 @@
|
|
|
<!-- 设备完好率 + 仪表盘 -->
|
|
|
<div class="device-stats-row">
|
|
|
<div class="device-stat-card">
|
|
|
- <div class="device-stat-percent">89.55%</div>
|
|
|
+ <div class="device-stat-percent">96.94%</div>
|
|
|
<div class="device-stat-icon"><img src="/src/assets/images/小图标库水位.png" class="stat-icon-img" /></div>
|
|
|
<div class="device-stat-label">完好率</div>
|
|
|
</div>
|
|
|
<div class="device-gauge-section">
|
|
|
- <canvas id="deviceGaugeChart" width="140" height="150"></canvas>
|
|
|
+ <canvas id="deviceGaugeChart" width="110" height="110"></canvas>
|
|
|
</div>
|
|
|
<div class="device-stat-card">
|
|
|
- <div class="device-stat-percent">84.36%</div>
|
|
|
+ <div class="device-stat-percent">96.94%</div>
|
|
|
<div class="device-stat-icon"><img src="/src/assets/images/小图标库水位.png" class="stat-icon-img" /></div>
|
|
|
<div class="device-stat-label">运行期 完好率</div>
|
|
|
</div>
|
|
|
@@ -195,15 +198,15 @@
|
|
|
<div class="monitor-divider"></div>
|
|
|
<div class="threshold-summary">
|
|
|
<div class="threshold-stat">
|
|
|
- <span class="threshold-stat-value">6</span>
|
|
|
+ <span class="threshold-stat-value">2</span>
|
|
|
<span class="threshold-stat-label">超阈值设备</span>
|
|
|
</div>
|
|
|
<div class="threshold-stat">
|
|
|
- <span class="threshold-stat-value" style="color:#fbbf24;">3</span>
|
|
|
+ <span class="threshold-stat-value" style="color:#fbbf24;">0</span>
|
|
|
<span class="threshold-stat-label">临界设备</span>
|
|
|
</div>
|
|
|
<div class="threshold-stat">
|
|
|
- <span class="threshold-stat-value" style="color:#22c55e;">128</span>
|
|
|
+ <span class="threshold-stat-value" style="color:#22c55e;">96</span>
|
|
|
<span class="threshold-stat-label">正常设备</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -343,70 +346,80 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
// 监控摘要
|
|
|
- activeSummaryCard: "变形检测",
|
|
|
+ activeSummaryCard: "变形监测",
|
|
|
summaryPieChart: null,
|
|
|
deviceGaugeChart: null,
|
|
|
monitorSummaryList: [
|
|
|
- { name: "变形检测", count: 42, progress: 82, color: "#62f6fb" },
|
|
|
- { name: "渗流渗压", count: 28, progress: 65, color: "#a78bfa" },
|
|
|
- { name: "应力应变", count: 16, progress: 45, color: "#fbbf24" },
|
|
|
+ { name: "变形监测", count: 75, progress: 82, color: "#62f6fb" },
|
|
|
+ { name: "渗流渗压", count: 17, progress: 65, color: "#a78bfa" },
|
|
|
+ { name: "水位流量", count: 7, progress: 45, color: "#fbbf24" },
|
|
|
],
|
|
|
summaryPieMap: {
|
|
|
- "变形检测": [
|
|
|
- { name: "精密水准", value: 12, color: "#62f6fb" },
|
|
|
- { name: "基岩变形计", value: 10, color: "#34d399" },
|
|
|
- { name: "电磁沉降环", value: 8, color: "#fbbf24" },
|
|
|
- { name: "测缝计", value: 7, color: "#f97316" },
|
|
|
- { name: "多点位移计", value: 5, color: "#ef4444" },
|
|
|
+ "变形监测": [
|
|
|
+ { name: "GNSS位移监测站", value: 12, color: "#62f6fb" },
|
|
|
+ { name: "GNSS位移监测基准站", value: 3, color: "#34d399" },
|
|
|
+ { name: "大坝综合位移标点", value: 29, color: "#fbbf24" },
|
|
|
+ { name: "校核基准点", value: 4, color: "#f97316" },
|
|
|
+ { name: "工作基准点", value: 4, color: "#ef4444" },
|
|
|
+ { name: "高程引测", value: 1, color: "#a78bfa" },
|
|
|
+ { name: "多点位移计", value: 18, color: "#818cf8" },
|
|
|
+ { name: "测缝计", value: 4, color: "#c084fc" },
|
|
|
],
|
|
|
"渗流渗压": [
|
|
|
- { name: "渗压计", value: 10, color: "#a78bfa" },
|
|
|
- { name: "量水堰", value: 7, color: "#818cf8" },
|
|
|
- { name: "测压管", value: 6, color: "#c084fc" },
|
|
|
- { name: "孔隙水压力计", value: 5, color: "#e879f9" },
|
|
|
+ { name: "渗压计", value: 14, color: "#a78bfa" },
|
|
|
+ { name: "MCU自动化采集设备", value: 1, color: "#818cf8" },
|
|
|
+ { name: "数据采集箱", value: 1, color: "#c084fc" },
|
|
|
+ { name: "振弦式读数仪", value: 1, color: "#e879f9" },
|
|
|
],
|
|
|
- "应力应变": [
|
|
|
- { name: "钢筋计", value: 6, color: "#fbbf24" },
|
|
|
- { name: "应变计", value: 5, color: "#f59e0b" },
|
|
|
- { name: "无应力计", value: 5, color: "#f97316" },
|
|
|
+ "水位流量": [
|
|
|
+ { name: "水尺", value: 2, color: "#62f6fb" },
|
|
|
+ { name: "流速仪", value: 2, color: "#34d399" },
|
|
|
+ { name: "水准仪", value: 1, color: "#fbbf24" },
|
|
|
+ { name: "经纬仪", value: 1, color: "#f97316" },
|
|
|
+ { name: "全站仪", value: 1, color: "#ef4444" },
|
|
|
],
|
|
|
},
|
|
|
// 设备清单树
|
|
|
searchKey: "",
|
|
|
treeData: [
|
|
|
{
|
|
|
- name: "大坝安全监测系统", expanded: true, children: [
|
|
|
+ name: "大坝安全监测系统", count: 98, expanded: true, children: [
|
|
|
{
|
|
|
- name: "主坝", expanded: true, children: [
|
|
|
- {
|
|
|
- name: "变形监测", expanded: true, children: [
|
|
|
- { name: "坝顶", children: [{ name: "坝顶水平位移-01", children: [{ name: "R201YL1" }, { name: "R201YL2" }, { name: "R201YL3" }] }, { name: "坝顶水平位移-02", children: [{ name: "R201YL4" }, { name: "R201YL5" }, { name: "R201YL6" }] }, { name: "坝顶水平位移-03", children: [{ name: "R201YL7" }, { name: "R201YL8" }, { name: "R201YL9" }] }, { name: "坝顶水平位移-04", children: [{ name: "R201YL10" }, { name: "R201YL11" }, { name: "R201YL12" }] }, { name: "坝顶水平位移-05", children: [{ name: "R201YL13" }, { name: "R201YL14" }, { name: "R201YL15" }] }] },
|
|
|
- { name: "坝基", children: [{ name: "坝基垂直位移-01", children: [{ name: "B301YL1" }, { name: "B301YL2" }, { name: "B301YL3" }] }, { name: "坝基垂直位移-02", children: [{ name: "B301YL4" }, { name: "B301YL5" }, { name: "B301YL6" }] }, { name: "坝基垂直位移-03", children: [{ name: "B301YL7" }, { name: "B301YL8" }, { name: "B301YL9" }] }, { name: "坝基垂直位移-04", children: [{ name: "B301YL10" }, { name: "B301YL11" }, { name: "B301YL12" }] }, { name: "坝基垂直位移-05", children: [{ name: "B301YL13" }, { name: "B301YL14" }, { name: "B301YL15" }] }, { name: "坝基垂直位移-06", children: [{ name: "B301YL16" }, { name: "B301YL17" }, { name: "B301YL18" }] }] },
|
|
|
- { name: "左岸", children: [{ name: "库岸变形-B01", children: [{ name: "K401YL1" }, { name: "K401YL2" }, { name: "K401YL3" }] }, { name: "库岸变形-B02", children: [{ name: "K401YL4" }, { name: "K401YL5" }, { name: "K401YL6" }] }, { name: "库岸变形-B03", children: [{ name: "K401YL7" }, { name: "K401YL8" }, { name: "K401YL9" }] }, { name: "裂缝开合度-C01", children: [{ name: "F501YL1" }, { name: "F501YL2" }, { name: "F501YL3" }] }, { name: "裂缝开合度-C02", children: [{ name: "F501YL4" }, { name: "F501YL5" }, { name: "F501YL6" }] }] },
|
|
|
- { name: "右岸", children: [{ name: "库岸变形-B04", children: [{ name: "K401YL10" }, { name: "K401YL11" }, { name: "K401YL12" }] }, { name: "库岸变形-B05", children: [{ name: "K401YL13" }, { name: "K401YL14" }, { name: "K401YL15" }] }, { name: "裂缝开合度-C03", children: [{ name: "F501YL7" }, { name: "F501YL8" }, { name: "F501YL9" }] }] },
|
|
|
- { name: "坝肩", children: [{ name: "坝肩位移-J01", children: [{ name: "J601YL1" }, { name: "J601YL2" }, { name: "J601YL3" }] }, { name: "坝肩位移-J02", children: [{ name: "J601YL4" }, { name: "J601YL5" }, { name: "J601YL6" }] }, { name: "精密水准-S01", children: [{ name: "S701YL1" }, { name: "S701YL2" }, { name: "S701YL3" }] }] },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "渗流监测", expanded: true, children: [
|
|
|
- { name: "坝基", children: [{ name: "渗流压力-P01", children: [{ name: "P801YL1" }, { name: "P801YL2" }, { name: "P801YL3" }] }, { name: "渗流压力-P02", children: [{ name: "P801YL4" }, { name: "P801YL5" }, { name: "P801YL6" }] }, { name: "渗流压力-P03", children: [{ name: "P801YL7" }, { name: "P801YL8" }, { name: "P801YL9" }] }, { name: "渗流压力-P04", children: [{ name: "P801YL10" }, { name: "P801YL11" }, { name: "P801YL12" }] }, { name: "绕坝渗流-S01", children: [{ name: "R901YL1" }, { name: "R901YL2" }, { name: "R901YL3" }] }, { name: "绕坝渗流-S02", children: [{ name: "R901YL4" }, { name: "R901YL5" }, { name: "R901YL6" }] }] },
|
|
|
- { name: "坝体", children: [{ name: "渗流压力-P05", children: [{ name: "P801YL13" }, { name: "P801YL14" }, { name: "P801YL15" }] }, { name: "渗流压力-P06", children: [{ name: "P801YL16" }, { name: "P801YL17" }, { name: "P801YL18" }] }, { name: "渗流压力-P07", children: [{ name: "P801YL19" }, { name: "P801YL20" }, { name: "P801YL21" }] }, { name: "渗流压力-P08", children: [{ name: "P801YL22" }, { name: "P801YL23" }, { name: "P801YL24" }] }] },
|
|
|
- { name: "廊道", children: [{ name: "廊道渗流-L01", children: [{ name: "L011YL1" }, { name: "L011YL2" }, { name: "L011YL3" }] }, { name: "廊道渗流-L02", children: [{ name: "L011YL4" }, { name: "L011YL5" }, { name: "L011YL6" }] }, { name: "廊道渗流-L03", children: [{ name: "L011YL7" }, { name: "L011YL8" }, { name: "L011YL9" }] }] },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "应力应变", expanded: true, children: [
|
|
|
- { name: "坝体", children: [{ name: "钢筋应力-R01", children: [{ name: "G111YL1" }, { name: "G111YL2" }, { name: "G111YL3" }] }, { name: "钢筋应力-R02", children: [{ name: "G111YL4" }, { name: "G111YL5" }, { name: "G111YL6" }] }, { name: "钢筋应力-R03", children: [{ name: "G111YL7" }, { name: "G111YL8" }, { name: "G111YL9" }] }, { name: "钢筋应力-R04", children: [{ name: "G111YL10" }, { name: "G111YL11" }, { name: "G111YL12" }] }] },
|
|
|
- { name: "坝基", children: [{ name: "基岩应力-Y01", children: [{ name: "J121YL1" }, { name: "J121YL2" }, { name: "J121YL3" }] }, { name: "基岩应力-Y02", children: [{ name: "J121YL4" }, { name: "J121YL5" }, { name: "J121YL6" }] }, { name: "基岩应力-Y03", children: [{ name: "J121YL7" }, { name: "J121YL8" }, { name: "J121YL9" }] }] },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "环境量监测", expanded: true, children: [
|
|
|
- { name: "库水位", children: [{ name: "库水位-W01", children: [{ name: "W131YL1" }, { name: "W131YL2" }, { name: "W131YL3" }] }, { name: "库水位-W02", children: [{ name: "W131YL4" }, { name: "W131YL5" }, { name: "W131YL6" }] }] },
|
|
|
- { name: "降雨量", children: [{ name: "雨量计-R01", children: [{ name: "Y141YL1" }, { name: "Y141YL2" }, { name: "Y141YL3" }] }, { name: "雨量计-R02", children: [{ name: "Y141YL4" }, { name: "Y141YL5" }, { name: "Y141YL6" }] }] },
|
|
|
- { name: "温度", children: [{ name: "温度计-T01", children: [{ name: "T151YL1" }, { name: "T151YL2" }, { name: "T151YL3" }] }, { name: "温度计-T02", children: [{ name: "T151YL4" }, { name: "T151YL5" }, { name: "T151YL6" }] }, { name: "温度计-T03", children: [{ name: "T151YL7" }, { name: "T151YL8" }, { name: "T151YL9" }] }] },
|
|
|
- ],
|
|
|
- },
|
|
|
+ name: "变形监测(GNSS)", count: 53, expanded: true, children: [
|
|
|
+ { name: "GNSS位移监测基准站", count: 3, children: [{ name: "基准站-01" }, { name: "基准站-02" }, { name: "基准站-03" }] },
|
|
|
+ { name: "GNSS位移监测站", count: 12, children: [{ name: "监测站-01" }, { name: "监测站-02" }, { name: "监测站-03" }, { name: "监测站-04" }, { name: "监测站-05" }, { name: "监测站-06" }, { name: "监测站-07" }, { name: "监测站-08" }, { name: "监测站-09" }, { name: "监测站-10" }, { name: "监测站-11" }, { name: "监测站-12" }] },
|
|
|
+ { name: "大坝综合位移标点", count: 29 },
|
|
|
+ { name: "校核基准点", count: 4 },
|
|
|
+ { name: "工作基准点", count: 4 },
|
|
|
+ { name: "高程引测", count: 1 },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "渗流监测", count: 17, expanded: true, children: [
|
|
|
+ { name: "渗压计", count: 14 },
|
|
|
+ { name: "测压管", count: 700, unit: "m" },
|
|
|
+ { name: "MCU自动化采集设备", count: 1 },
|
|
|
+ { name: "数据采集箱", count: 1 },
|
|
|
+ { name: "便携式振弦式读数仪", count: 1 },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "放水洞变形监测", count: 22, expanded: true, children: [
|
|
|
+ { name: "多点位移计", count: 18 },
|
|
|
+ { name: "测缝计", count: 4 },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "溢洪道监测", count: 4, expanded: true, children: [
|
|
|
+ { name: "水尺", count: 2 },
|
|
|
+ { name: "流速仪", count: 2 },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "人工观测仪器", count: 3, expanded: true, children: [
|
|
|
+ { name: "水准仪", count: 1 },
|
|
|
+ { name: "经纬仪", count: 1 },
|
|
|
+ { name: "全站仪", count: 1 },
|
|
|
],
|
|
|
},
|
|
|
],
|
|
|
@@ -415,18 +428,18 @@ export default {
|
|
|
// 报警数据
|
|
|
// 巡检记录
|
|
|
patrolRecords: [
|
|
|
- { id: "PR01", time: "08:30", point: "坝顶水平位移-01", person: "张建国", status: "正常" },
|
|
|
- { id: "PR02", time: "08:45", point: "坝基垂直位移-03", person: "张建国", status: "正常" },
|
|
|
- { id: "PR03", time: "09:10", point: "渗流压力-P05", person: "李卫东", status: "正常" },
|
|
|
- { id: "PR04", time: "09:30", point: "绕坝渗流-S01", person: "李卫东", status: "正常" },
|
|
|
- { id: "PR05", time: "09:55", point: "钢筋应力-R01", person: "王振华", status: "异常" },
|
|
|
- { id: "PR06", time: "10:20", point: "基岩应力-Y02", person: "王振华", status: "正常" },
|
|
|
- { id: "PR07", time: "10:40", point: "库水位-W01", person: "张建国", status: "正常" },
|
|
|
- { id: "PR08", time: "11:00", point: "裂缝开合度-C01", person: "张建国", status: "正常" },
|
|
|
+ { id: "PR01", time: "08:30", point: "GNSS监测站-01", person: "张建国", status: "正常" },
|
|
|
+ { id: "PR02", time: "08:45", point: "GNSS监测站-05", person: "张建国", status: "正常" },
|
|
|
+ { id: "PR03", time: "09:10", point: "渗压计-P03", person: "李卫东", status: "正常" },
|
|
|
+ { id: "PR04", time: "09:30", point: "渗压计-P08", person: "李卫东", status: "正常" },
|
|
|
+ { id: "PR05", time: "09:55", point: "多点位移计-D03", person: "王振华", status: "正常" },
|
|
|
+ { id: "PR06", time: "10:20", point: "测缝计-F02", person: "王振华", status: "正常" },
|
|
|
+ { id: "PR07", time: "10:40", point: "水尺-W01", person: "张建国", status: "正常" },
|
|
|
+ { id: "PR08", time: "11:00", point: "GNSS基准站-J02", person: "张建国", status: "正常" },
|
|
|
],
|
|
|
thresholdAlarms: [
|
|
|
- { id: "T001", device: "钢筋应力-R01-03", threshold: "200 MPa", current: "246 MPa", over: "23%", level: "critical", time: "2026-06-08 11:00" },
|
|
|
- { id: "T002", device: "基岩应力-Y02-05", threshold: "150 MPa", current: "172 MPa", over: "14.7%", level: "critical", time: "2026-06-08 10:10" },
|
|
|
+ { id: "T001", device: "渗压计-P07", threshold: "0.60 MPa", current: "0.68 MPa", over: "13.3%", level: "warning", time: "2026-06-08 11:00" },
|
|
|
+ { id: "T002", device: "测缝计-F03", threshold: "8 mm", current: "9.2 mm", over: "15%", level: "warning", time: "2026-06-08 10:10" },
|
|
|
],
|
|
|
mergedTab: 'deform',
|
|
|
};
|
|
|
@@ -534,14 +547,14 @@ export default {
|
|
|
series: [{
|
|
|
type: "gauge",
|
|
|
center: ["50%", "55%"],
|
|
|
- radius: "80%",
|
|
|
+ radius: "75%",
|
|
|
startAngle: 210,
|
|
|
endAngle: -30,
|
|
|
min: 0,
|
|
|
- max: 3000,
|
|
|
+ max: 120,
|
|
|
splitNumber: 3,
|
|
|
- progress: { show: true, width: 16, itemStyle: { color: { type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#62f6fb" }, { offset: 0.5, color: "#a78bfa" }, { offset: 1, color: "#fbbf24" }] } } },
|
|
|
- axisLine: { lineStyle: { width: 16, color: [[1, "rgba(255,255,255,0.08)"]] } },
|
|
|
+ progress: { show: true, width: 12, itemStyle: { color: { type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#62f6fb" }, { offset: 0.5, color: "#a78bfa" }, { offset: 1, color: "#fbbf24" }] } } },
|
|
|
+ axisLine: { lineStyle: { width: 12, color: [[1, "rgba(255,255,255,0.08)"]] } },
|
|
|
axisTick: { show: false },
|
|
|
splitLine: { show: false },
|
|
|
axisLabel: { show: false },
|
|
|
@@ -549,14 +562,14 @@ export default {
|
|
|
anchor: { show: false },
|
|
|
title: { show: false },
|
|
|
detail: {
|
|
|
- offsetCenter: [0, "20%"],
|
|
|
- formatter: () => "{val|2,279}\n{label|在线仪器}",
|
|
|
+ offsetCenter: [0, "25%"],
|
|
|
+ formatter: () => "{val|98}\n{label|监测设备}",
|
|
|
rich: {
|
|
|
- val: { color: "#ffffff", fontSize: 22, fontWeight: "bold", lineHeight: 30 },
|
|
|
- label: { color: "#ffffff", fontSize: 15, lineHeight: 22 },
|
|
|
+ val: { color: "#ffffff", fontSize: 16, fontWeight: "bold", lineHeight: 22 },
|
|
|
+ label: { color: "#ffffff", fontSize: 11, lineHeight: 16 },
|
|
|
},
|
|
|
},
|
|
|
- data: [{ value: 2279, name: "" }],
|
|
|
+ data: [{ value: 98, name: "" }],
|
|
|
}],
|
|
|
});
|
|
|
}
|
|
|
@@ -566,7 +579,7 @@ export default {
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
.safety-container { width: 100%; height: 100%; display: flex; flex-direction: column; position: relative; overflow: hidden; }
|
|
|
-.safety-scroll-area { position: absolute; left: 0; right: 0; top: 80px; bottom: 0; overflow-y: auto; overflow-x: hidden; z-index: 5; padding-bottom: 40px; pointer-events: none; display: flex; flex-direction: column; align-items: center; }
|
|
|
+.safety-scroll-area { position: absolute; left: 0; right: 0; top: 120px; bottom: 0; overflow-y: auto; overflow-x: hidden; z-index: 5; padding-bottom: 40px; pointer-events: none; display: flex; flex-direction: column; align-items: center; }
|
|
|
.safety-scroll-area::-webkit-scrollbar { width: 4px; }
|
|
|
.safety-scroll-area::-webkit-scrollbar-track { background: rgba(0,20,40,0.5); }
|
|
|
.safety-scroll-area::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.3); border-radius: 2px; }
|
|
|
@@ -574,19 +587,19 @@ export default {
|
|
|
|
|
|
|
|
|
|
|
|
-.left-sidebar { width: 420px; flex-shrink: 0; pointer-events: auto; display: flex; flex-direction: column; }
|
|
|
+.left-sidebar { width: 380px; flex-shrink: 0; pointer-events: auto; display: flex; flex-direction: column; }
|
|
|
.right-sidebar { width: 380px; flex-shrink: 0; pointer-events: auto; display: flex; flex-direction: column; }
|
|
|
.mt-10 { margin-top: 8px; }
|
|
|
|
|
|
/* ========== Data Card ========== */
|
|
|
.data-card { width: 100%; background: rgba(0,20,40,0.7); border-radius: 4px; overflow: hidden; box-shadow: 0 0 10px rgba(0,212,255,0.2); display: flex; flex-direction: column; }
|
|
|
.left-sidebar .data-card { flex: unset; }
|
|
|
-.left-sidebar .data-card:first-child .card-body { max-height: 155px; overflow-y: auto; }
|
|
|
+.left-sidebar .data-card:first-child .card-body { max-height: 175px; overflow-y: auto; }
|
|
|
.card-header { height: 38px; background-image: url("/src/assets/images/数据小标题.png"); background-size: 100% 100%; background-position: center; background-repeat: no-repeat; display: flex; align-items: flex-start; justify-content: space-between; padding: 4px 12px 0; }
|
|
|
.card-title { font-size: 13px; font-weight: bold; color: #e0fcff; margin: 0; text-shadow: 0 0 5px rgba(0,212,255,0.5); padding-left: 25px; padding-right: 25px; }
|
|
|
.card-body { padding: 8px; min-height: auto; font-size: 12px; line-height: 1.4; margin-top: -4px; }
|
|
|
.card-body.chart-body { padding: 3px 8px 4px; }
|
|
|
-.card-body.card-body-tight { padding: 3px 8px 4px; height: 100%; }
|
|
|
+.card-body.card-body-tight { padding: 1px 6px 2px; height: 100%; }
|
|
|
|
|
|
/* ========== Safety Evaluation ========== */
|
|
|
.safety-eval-section { background: rgba(0,20,40,0.5); border-radius: 4px; border: 1px solid rgba(0,212,255,0.12); padding: 6px 10px; display: flex; flex-direction: column; gap: 5px; }
|
|
|
@@ -612,13 +625,23 @@ export default {
|
|
|
.safety-eval-time { margin-left: auto; color: #7bbef6; font-size: 10px; white-space: nowrap; }
|
|
|
|
|
|
/* ========== Device Stats + Gauge ========== */
|
|
|
-.device-stats-row { display: flex; gap: 3px; align-items: center; }
|
|
|
-.device-stat-card { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; border-radius: 4px; padding: 4px 3px; }
|
|
|
-.device-stat-percent { color: #e0fcff; font-size: 17px; font-weight: bold; }
|
|
|
+.device-stats-row { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
|
|
|
+.monitor-summary-row { display: flex; gap: 4px; margin-bottom: 3px; }
|
|
|
+.monitor-summary-card { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 1px; background: rgba(0,20,40,0.5); border-radius: 4px; border: 1px solid rgba(0,212,255,0.12); padding: 5px 3px; cursor: pointer; transition: all 0.2s; }
|
|
|
+.monitor-summary-card:hover { border-color: rgba(0,212,255,0.35); background: rgba(0,30,60,0.6); }
|
|
|
+.monitor-summary-card.active { border-color: rgba(0,212,255,0.6); background: rgba(0,40,80,0.7); box-shadow: 0 0 8px rgba(0,212,255,0.2); }
|
|
|
+.summary-pie-area { background: rgba(0,20,40,0.4); border-radius: 4px; border: 1px solid rgba(0,212,255,0.1); padding: 1px; margin-bottom: 3px; text-align: center; }
|
|
|
+.progress-ring { flex-shrink: 0; }
|
|
|
+.progress-ring-bg { fill: none; stroke: rgba(255,255,255,0.08); stroke-width: 3; }
|
|
|
+.progress-ring-fill { fill: none; stroke-width: 3; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 24px 24px; }
|
|
|
+.monitor-summary-name { color: #7bbef6; font-size: 10px; }
|
|
|
+.monitor-summary-count { font-size: 16px; font-weight: bold; }
|
|
|
+.device-stat-card { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 1px; border-radius: 4px; padding: 2px 3px; }
|
|
|
+.device-stat-percent { color: #e0fcff; font-size: 14px; font-weight: bold; }
|
|
|
.device-stat-icon { display: flex; align-items: center; justify-content: center; height: 28px; }
|
|
|
-.stat-icon-img { height: auto; width: auto; max-height: none; }
|
|
|
-.device-stat-label { color: #ffffff; font-size: 11px; white-space: nowrap; }
|
|
|
-.device-gauge-section { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; margin: 0; }
|
|
|
+.stat-icon-img { height: auto; width: auto; max-height: 28px; }
|
|
|
+.device-stat-label { color: #ffffff; font-size: 10px; white-space: nowrap; }
|
|
|
+.device-gauge-section { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; margin: 0; line-height: 0; }
|
|
|
|
|
|
/* ========== Monitor Summary ========== */
|
|
|
.monitor-divider { height: 1px; background: rgba(0,212,255,0.15); margin: 3px 0; }
|
|
|
@@ -652,23 +675,23 @@ export default {
|
|
|
.patrol-row-status.status-abnormal { color: #ef4444; background: rgba(239,68,68,0.15); }
|
|
|
|
|
|
/* ========== Threshold Alarm ========== */
|
|
|
-.threshold-summary { display: flex; gap: 4px; margin-bottom: 3px; }
|
|
|
+.threshold-summary { display: flex; gap: 4px; margin: 4px 0; }
|
|
|
.threshold-stat { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 4px 3px; background: rgba(0,20,40,0.4); border-radius: 4px; border: 1px solid rgba(0,212,255,0.1); }
|
|
|
.threshold-stat-value { font-size: 19px; font-weight: bold; color: #ef4444; line-height: 1.1; }
|
|
|
.threshold-stat-label { font-size: 10px; color: #7bbef6; margin-top: 1px; }
|
|
|
-.threshold-item { padding: 4px 5px; border-radius: 3px; border: 1px solid transparent; margin-bottom: 2px; }
|
|
|
+.threshold-item { padding: 3px 5px; border-radius: 3px; border: 1px solid transparent; margin-bottom: 2px; }
|
|
|
.threshold-item.threshold-critical { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.2); }
|
|
|
.threshold-item.threshold-warning { background: rgba(251,191,36,0.06); border-color: rgba(251,191,36,0.15); }
|
|
|
-.threshold-item-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
|
|
|
-.threshold-device { color: #e0fcff; font-size: 11px; font-weight: bold; }
|
|
|
-.threshold-tag { font-size: 9px; padding: 0 5px; border-radius: 2px; line-height: 16px; }
|
|
|
+.threshold-item-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1px; }
|
|
|
+.threshold-device { color: #e0fcff; font-size: 10px; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
|
+.threshold-tag { font-size: 9px; padding: 0 4px; border-radius: 2px; line-height: 14px; }
|
|
|
.tag-critical { background: rgba(239,68,68,0.2); color: #ef4444; }
|
|
|
.tag-warning { background: rgba(251,191,36,0.2); color: #fbbf24; }
|
|
|
-.threshold-item-body { display: flex; gap: 3px; margin-bottom: 1px; }
|
|
|
-.threshold-metric { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 1px 3px; background: rgba(0,20,40,0.3); border-radius: 2px; }
|
|
|
-.tm-label { color: #7bbef6; font-size: 9px; }
|
|
|
-.tm-value { color: #e0fcff; font-size: 11px; font-weight: bold; }
|
|
|
-.threshold-item-time { color: #7bbef6; font-size: 9px; text-align: right; }
|
|
|
+.threshold-item-body { display: flex; gap: 2px; margin-bottom: 0; }
|
|
|
+.threshold-metric { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 0 3px; background: rgba(0,20,40,0.3); border-radius: 2px; }
|
|
|
+.tm-label { color: #7bbef6; font-size: 8px; line-height: 12px; }
|
|
|
+.tm-value { color: #e0fcff; font-size: 10px; font-weight: bold; line-height: 14px; }
|
|
|
+.threshold-item-time { color: #7bbef6; font-size: 8px; text-align: right; line-height: 14px; }
|
|
|
|
|
|
/* ========== Deformation & Seepage Section ========== */
|
|
|
.deform-section,
|