From 8282126f152901c1e9874ff335d1e38e18da22de Mon Sep 17 00:00:00 2001 From: selia-zx <1771203023@qq.com> Date: Fri, 6 Jun 2025 17:42:15 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=86=B7=E6=BA=90=E7=9B=91=E6=8E=A7-?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=9B=91=E6=B5=8B=E6=B7=BB=E5=8A=A0=E5=8F=AF?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=89=93=E5=BC=80=E5=BC=B9=E7=AA=97=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E9=98=80=E9=97=A8=E3=80=81=E6=B0=B4=E6=B3=B5=E3=80=81?= =?UTF-8?q?=E9=A3=8E=E6=9C=BA=E3=80=81=E4=B8=BB=E6=9C=BA=202.=E4=B8=BB?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=98=BE=E7=A4=BA=E4=B8=BB=E6=9C=BA=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E8=BD=BD=E7=9A=84=E6=97=B6=E9=97=B4=203.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BB=E6=9C=BA=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E7=9A=84=E5=B1=95=E7=A4=BA=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=204.=E4=BF=AE=E6=94=B9=E7=83=AD=E6=B0=B4=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=89=8B=E8=87=AA=E5=8A=A8=E7=8A=B6=E6=80=81=E3=80=81=E5=AD=97?= =?UTF-8?q?=E4=BD=93=205.=E4=BF=AE=E6=94=B9=E6=B8=A9=E5=BA=A6=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=9B=91=E8=A7=86=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/assets/images/detail-line.png | Bin 10513 -> 0 bytes src/assets/styles/index.scss | 266 +++++++- src/views/centerairC/deviceStrategy/index.vue | 2 +- .../centerairC/sysControl/index copy 2.vue | 431 ------------ .../centerairC/sysControl/index copy.vue | 643 ------------------ src/views/centerairC/sysControl/index.vue | 10 - .../centerairC/sysControl/listHeader.vue | 109 --- .../centerairC/sysControl/vavleheader.vue | 107 --- .../sysMonitor/components/hostChart.vue | 2 +- .../centerairC/sysMonitor/hostDetails.vue | 191 +++--- .../centerairC/sysMonitor/monitorCenter.vue | 635 ++++++++++++++++- .../centerairC/sysMonitor/performance.vue | 147 ---- src/views/hotWater/waterControl/index.vue | 6 +- src/views/temSys/temMonitor/index.vue | 1 + 15 files changed, 969 insertions(+), 1585 deletions(-) delete mode 100644 src/assets/images/detail-line.png delete mode 100644 src/views/centerairC/sysControl/index copy 2.vue delete mode 100644 src/views/centerairC/sysControl/index copy.vue diff --git a/.env.development b/.env.development index a08e7e1..13c7001 100644 --- a/.env.development +++ b/.env.development @@ -7,9 +7,9 @@ ENV = 'development' # 开发环境 # VUE_APP_BASE_API = '/dev-api' # 后台 -VUE_APP_BASE_API = 'http://192.168.1.222:8080' +# VUE_APP_BASE_API = 'http://192.168.1.222:8080' # 梅州云端 -# VUE_APP_BASE_API = 'http://106.55.173.225:8091' +VUE_APP_BASE_API = 'http://106.55.173.225:8091' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/src/assets/images/detail-line.png b/src/assets/images/detail-line.png deleted file mode 100644 index bc79effada586c283fd281c5b052a8e9d9797d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10513 zcmZ8n2{=^W`;SUdQA}m0gh5%duOWLFJK3WwG047zD2gnVY{QID#2Au&8KQ>DzK(s( zZb-%+{&z;dzwz}v!}E-L?m6du-_LU1dn0tTRnJi|QXM;X?3}uqlHRdnWRbw<+-VBn zn+r`>-GDzQJQURpP6I!WPv3uW>=^qobtMG@UrXFDO{%$J;Kqu_a`SYox|%o7hi<)x zDAPMAQzz6~p&F{hVb_@Hv+$4BYbF|~*w~WZ#>Pg|&~DS0msTJ=I%-S9_wBw$K6wGU zKz8xMg$~n_$QLhO&?hIijJ7N_quVxy`iGs_6vrBMD;EN65j zh0YVM_4w5KP731n`fLu=DiSG3rHfdV*YP7L#k@nc&75u84jt zBl0iW3G-GJ7<&FU_bamu9gLX5BD9xp8IP5@%JJkF`RQ`1vk95nt3NiVlcJft*uUd? zu~CW_2Tv4M-9_#_H7j|mLLAKV$|?g)7~CB-VIjw)=1iEEOq`5`?4kJJol7YzUD7VE zJrgq1j^&zAUWGgKBKP|sk_pO$!4lQvTbz;Z_vw`MpCd*BeN!}{r`dtIcTazrtTy|%fX-7v7gnZDa^iJ0`!Sp~E1FqSG4yQ2oZudx` zW%S}!^8(kWrjsG4j*qVbQ!&)d&pm&9sJ*EUoBw$yGTZp`11$%vl$nvxXaBYE)?3f} z(Hd6r5s)SQ^Tls?R(#O{% zeJ^b=x^|Ff(JA-Jg2OPi2vb{vZdnozWGWw4$)Xn4bzJ)C2y712|EKhLKeerNjLqN_ zZlT|Hr^do47ROOVT~z4hign`m?j^IIU-Z`8*-!SGZ733WAlllnl<;HVV^y;DQ1t5? zJ1?|{SUf*-+V}n_71*J2@%f!>W;OWNg$ZS_Zn;sxB2{@@39ABq{7cGHt8#fz@9t1O zrdq5uZ@GDNn!UBCaE94#5P`w%p+1W(`IK@b;codumIwAv{b)w-zU1}~8e3S`8V0E> zKezx@heFreY-}AiOA7ezZ?xsktgnzgSlrC*yPNEicRlL?JOXR++(o7e{})^2Q#l&C z)PN`(8GbN>^4Vx{kzV|KH#x7>Z^7EC%}9O$|DtbrtuuV!hHzDlcNmV%WNJ|=HRr}Q zEjrr+lzgw(BkyH&;*FFFW>54?D%0A}eg*IJTIb1RocVCHgZCtCVY5HMPWwU|D>}fq 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

?tU5_l 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 Zy=aC?X|bm50Pi>+Q&-kj%2%`w{XcExQ3C(~ diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index ab199b3..471be88 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -449,7 +449,7 @@ table th { .el-dialog .el-row .el-select { width: 100% !important; } -.el-dialog .el-row .el-date-editor{ +.el-dialog .el-row .el-date-editor { width: 100% !important; } @@ -502,7 +502,7 @@ table th { /* 设置滚动条背景颜色 */ } .analysis-table::-webkit-scrollbar-thumb { - background-color: rgb(21, 50, 104); + background-color: rgb(21, 50, 104); /* 设置滑块颜色 */ } .analysis-table::-webkit-scrollbar-thumb:hover { @@ -513,3 +513,265 @@ table th { background-color: #002249; /* 设置滑道颜色 */ } + +.detail-data-li { + width: 80%; + margin-right: 0.1rem; + position: relative; + color: #c0dffc; + font-family: Arial, sans-serif; + letter-spacing: 0.02rem; + font-size: 0.18rem; + position: relative; + margin-bottom: 0.08rem; + border-left: 0.01rem solid #217df5; + border-right: 0.01rem solid #217df5; + background-image: radial-gradient( + circle at left top, + #217df5 0.01rem, + transparent 0.01rem + ), + radial-gradient(circle at right top, #217df5 0.01rem, transparent 0.01rem), + radial-gradient(circle at left bottom, #217df5 0.01rem, transparent 0.01rem), + radial-gradient( + circle at right bottom, + #217df5 0.01rem, + transparent 0.01rem + ); + background-repeat: no-repeat; + background-position: left top, right top, left bottom, right bottom; +} +.detail-data-li::before, +.detail-data-li::after { + content: ""; + position: absolute; + left: 0; + right: 0; + height: 0.01rem; + background-image: linear-gradient( + to right, + #217df5 0%, + rgba(41, 128, 185, 0) 50%, + #217df5 100% + ) !important; +} +.year-data { + margin-top: 0.1rem; +} +.rightDot { + position: relative; + width: 100%; + height: 100%; + z-index: 999; +} +.leftDot { + position: relative; + width: 100%; + height: 100%; + padding: 0.04rem 0.1rem; + display: flex; + flex-direction: row; + justify-content: space-between; + .dotData { + font-weight: bold; + margin: 0 0.06rem; + color: #3b80ff; + display: flex; + align-items: center; + } + .dotUnit { + width: 0.55rem; + text-align: left; + display: flex; + align-items: center; + } +} + +.rightDot::before { + content: ""; + position: absolute; + top: -0.03rem; + right: -0.03rem; + width: 0.06rem; + height: 0.06rem; + background-color: #217df5; + box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); + background-image: radial-gradient( + circle at 30% 30%, + rgba(255, 255, 255, 0.8) 0%, + rgba(255, 255, 255, 0) 70% + ); + border-radius: 50%; +} + +.rightDot::after { + content: ""; + position: absolute; + bottom: -0.03rem; + right: -0.03rem; + width: 0.06rem; + height: 0.06rem; + background-color: #217df5; + box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); + background-image: radial-gradient( + circle at 30% 30%, + rgba(255, 255, 255, 0.8) 0%, + rgba(255, 255, 255, 0) 70% + ); + border-radius: 50%; +} +.leftDot::before { + content: ""; + position: absolute; + top: -0.03rem; + left: -0.03rem; + width: 0.06rem; + height: 0.06rem; + background-color: #217df5; + border-radius: 50%; + box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); + background-image: radial-gradient( + circle at 30% 30%, + rgba(255, 255, 255, 0.8) 0%, + rgba(255, 255, 255, 0) 70% + ); +} + +.leftDot::after { + content: ""; + position: absolute; + bottom: -0.03rem; + left: -0.03rem; + width: 0.06rem; + height: 0.06rem; + background-color: #217df5; + box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); + background-image: radial-gradient( + circle at 30% 30%, + rgba(255, 255, 255, 0.8) 0%, + rgba(255, 255, 255, 0) 70% + ); + border-radius: 50%; +} + +/* 设备控制列表样式 */ +.device-container { + display: flex; + flex-direction: column; + width: 100%; + background-color: #142c4e; + padding: 10px 10px 30px 10px; + border-radius: 10px; + margin-bottom: 20px; +} + +.device-li { + flex: 1; + width: 100%; + display: flex; + flex-direction: row; + align-items: center; + padding: 12px 0; + color: #abcdfc; + border-bottom: 1px dashed #0349ac; + .device-name { + flex: 1; + white-space: nowrap; + font-size: 14px; + .el-switch { + width: 120px !important; + } + .run { + display: flex; + flex-direction: row; + align-items: center; + display: block; + } + .run::before { + content: ""; + display: inline-block; + width: 10px; + height: 10px; + background-color: rgb(16, 231, 16); + border-radius: 50%; + margin-right: 5px; + } + .no-run { + display: flex; + flex-direction: row; + align-items: center; + display: block; + } + .no-run::before { + content: ""; + display: inline-block; + width: 10px; + height: 10px; + background-color: rgb(180, 180, 180); + border-radius: 50%; + margin-right: 5px; + } + .el-input { + width: 100px; + } + .strong-electric { + background-color: rgba(59, 130, 246, 0.2); + color: #60a5fa; + padding: 5px 20px; + border-radius: 10px; + } + .auto-electric { + background-color: rgba(231, 144, 45, 0.2); + color: #e47f21; + padding: 5px 20px; + border-radius: 10px; + } + .good-status { + color: #4ade80; + } + .bad-status { + color: #f05348; + } + } + .device-name2 { + width: 140px; + } +} +.device-li:nth-child(1) { + color: #9ca3af; +} +// 媒体查询,适配大于2000px分辨率的大屏样式 +@media (min-width: 2000px) { + .device-li { + padding: 0.12rem 0 !important; + border-bottom: 0.01rem dashed #0349ac !important; + .device-name { + font-size: 0.14rem !important; + .el-switch { + width: 1.2rem !important; + } + .run::before { + width: 0.1rem !important; + height: 0.1rem !important; + margin-right: 0.05rem !important; + } + + .no-run::before { + width: 0.1rem !important; + height: 0.1rem !important; + margin-right: 0.05rem !important; + } + .el-input { + width: 1rem !important; + } + .strong-electric { + padding: 0.05rem 0.2rem; + border-radius: 0.1rem !important; + } + .auto-electric { + padding: 0.05rem 0.2rem; + border-radius: 0.1rem !important; + } + } + } +} diff --git a/src/views/centerairC/deviceStrategy/index.vue b/src/views/centerairC/deviceStrategy/index.vue index 6b2718d..032141c 100644 --- a/src/views/centerairC/deviceStrategy/index.vue +++ b/src/views/centerairC/deviceStrategy/index.vue @@ -370,7 +370,7 @@ export default { position: relative; width: calc(33.33% - 40px); margin: 0 20px; - min-height: 300px; + min-height: 350px; background-image: url(../../../assets/images/strategy-border.png); background-size: 100% 100%; border-bottom: 1px solid #1587cc; diff --git a/src/views/centerairC/sysControl/index copy 2.vue b/src/views/centerairC/sysControl/index copy 2.vue deleted file mode 100644 index 9d8d252..0000000 --- a/src/views/centerairC/sysControl/index copy 2.vue +++ /dev/null @@ -1,431 +0,0 @@ - - - - - diff --git a/src/views/centerairC/sysControl/index copy.vue b/src/views/centerairC/sysControl/index copy.vue deleted file mode 100644 index 7bbeb12..0000000 --- a/src/views/centerairC/sysControl/index copy.vue +++ /dev/null @@ -1,643 +0,0 @@ - - - - - diff --git a/src/views/centerairC/sysControl/index.vue b/src/views/centerairC/sysControl/index.vue index 6789e5b..3428d83 100644 --- a/src/views/centerairC/sysControl/index.vue +++ b/src/views/centerairC/sysControl/index.vue @@ -425,16 +425,6 @@ export default { diff --git a/src/views/centerairC/sysControl/vavleheader.vue b/src/views/centerairC/sysControl/vavleheader.vue index 4c4ddbb..f971c5c 100644 --- a/src/views/centerairC/sysControl/vavleheader.vue +++ b/src/views/centerairC/sysControl/vavleheader.vue @@ -125,111 +125,4 @@ export default { diff --git a/src/views/centerairC/sysMonitor/components/hostChart.vue b/src/views/centerairC/sysMonitor/components/hostChart.vue index 921b03a..810054c 100644 --- a/src/views/centerairC/sysMonitor/components/hostChart.vue +++ b/src/views/centerairC/sysMonitor/components/hostChart.vue @@ -461,6 +461,6 @@ export default { diff --git a/src/views/centerairC/sysMonitor/hostDetails.vue b/src/views/centerairC/sysMonitor/hostDetails.vue index 840bfdf..67ea877 100644 --- a/src/views/centerairC/sysMonitor/hostDetails.vue +++ b/src/views/centerairC/sysMonitor/hostDetails.vue @@ -112,6 +112,27 @@ > +

+
+ 手自动切换: + {{ automaticObj.showValue }} +
+
+ 本地远程状态: + {{ localObj.showValue }} +
+
+ 故障状态: + {{ + badObj.showValue + }} + {{ badObj.showValue }} +
+
+ 运行累计时间: + {{ timeObj.showValue }}小时 +
+
@@ -121,27 +142,6 @@
-
-
- 手自动切换: - {{ automaticObj.showValue }} -
-
- 本地远程状态: - {{ localObj.showValue }} -
-
- 故障状态: - {{ - badObj.showValue - }} - {{ badObj.showValue }} -
-
- 运行累计时间: - {{ timeObj.showValue }}小时 -
-
@@ -497,43 +497,47 @@ export default { hostListClass(paramType) { for (let i = 0; i < this.hostData.length; i++) { const item = this.hostData[i]; - if (item.paramType === paramType && typeof item.curValue === "string" && /[\u4e00-\u9fa5]/.test(item.curValue)) { + if ( + item.paramType === paramType && + typeof item.curValue === "string" && + /[\u4e00-\u9fa5]/.test(item.curValue) + ) { switch (item.paramType) { case "1": // 运行状态 - if (item.curValue === '运行') { + if (item.curValue === "运行") { return true; } break; case "2": // 启停 - if (item.curValue === '启动' && item.otherName.includes('启停')) { + if (item.curValue === "启动" && item.otherName.includes("启停")) { return true; } break; case "5": // 故障 - if (item.curValue === '正常') { + if (item.curValue === "正常") { return true; } break; case "6": // 手自动切换 - if (item.curValue === '自动') { + if (item.curValue === "自动") { return true; } break; case "22": // 本地远程切换 - if (item.curValue === '远程') { + if (item.curValue === "远程") { return true; } break; default: return false; break; - } + } } else { if (item.paramType === paramType && Number(item.curValue) !== 0) { return true; } + } } - } // 否则 return false; }, @@ -676,13 +680,12 @@ export default { align-items: center; justify-content: space-between; .detail-top-left { - width: 7rem; height: 4.4rem; // background-color: aquamarine; position: relative; .host-img1 { - width: 4.88rem; - height: 3.97rem; + width: 4.48rem; + height: 3.57rem; margin: 0.2rem 0 0 0.2rem; } .outIn { @@ -754,18 +757,71 @@ export default { .startClass { z-index: 10; position: absolute; - top: 2.9rem; - left: 3.4rem; + top: 2.2rem; + left: 2.7rem; width: 0.18rem; height: 0.18rem; border-radius: 50%; animation: blink 1s infinite; background-color: #38fc52 !important; } + .hostStatus { + z-index: 10; + position: absolute; + top: 0.6rem; + left: 4.8rem; + display: flex; + flex-direction: column; + justify-content: flex-start; + width: 2.8rem !important; + margin-top: 1.5rem; + .hostStatus-li { + background-color: #25455a; + color: #c0dffc; + font-size: 0.16rem; + margin-bottom: 0.1rem; + padding: 0.1rem; + letter-spacing: 0.02rem; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: flex-start; + span { + white-space: nowrap; + } + } + .dotData { + font-weight: bold; + margin: 0 0.06rem; + color: #3b80ff; + display: flex; + align-items: center; + } + .goodData { + font-weight: bold; + margin: 0 0.06rem; + color: #3df574; + } + .badData { + font-weight: bold; + margin: 0 0.06rem; + color: #cf3607; + } + .automaticData { + font-weight: bold; + margin: 0 0.06rem; + color: #da7b10; + } + .timeData { + font-weight: bold; + margin: 0 0.06rem; + color: #1df3e8; + } + } .water-flow3 { z-index: 10; position: absolute; - top: 3.6rem; + top: 3.5rem; left: 1.2rem; .water-flow-li { margin-bottom: 0.04rem; @@ -808,8 +864,8 @@ export default { .fanBlade { z-index: 10; position: absolute; - top: 2.55rem; - left: 4.65rem; + top: 2.3rem; + left: 4.3rem; width: 0.5rem; height: 0.5rem; transform-style: preserve-3d; @@ -819,7 +875,7 @@ export default { .leftFan { z-index: 10; position: absolute; - top: 2.55rem; + top: 2.29rem; left: 0.53rem; width: 0.5rem; height: 0.5rem; @@ -832,8 +888,8 @@ export default { .host-name { z-index: 10; position: absolute; - top: 1.55rem; - left: 1.8rem; + top: 1.43rem; + left: 1.44rem; color: #3520f8; font-weight: bold; font-size: 0.18rem; @@ -841,12 +897,12 @@ export default { .loadData { z-index: 10; position: absolute; - top: 0.2rem; - right: 0rem; + top: 0rem; + left:5rem; } } .detail-top-right { - width: calc(100% - 7.25rem); + width: calc(100% - 7.6rem); height: 4.4rem; // background-color: rgb(127, 172, 255); } @@ -858,28 +914,6 @@ export default { display: flex; flex-direction: row; justify-content: space-between; - .hostStatus { - display: flex; - flex-direction: column; - justify-content: flex-start; - width: 3rem !important; - margin-top: 1.5rem; - .hostStatus-li { - background-color: #25455a; - color: #c0dffc; - font-size: 0.18rem; - margin-bottom: 0.1rem; - padding: 0.1rem; - letter-spacing: 0.02rem; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - align-items: flex-start; - span { - white-space: nowrap; - } - } - } .detail-data { display: flex; flex-direction: column; @@ -1080,33 +1114,6 @@ export default { } } } - .dotData { - font-weight: bold; - margin: 0 0.06rem; - color: #3b80ff; - display: flex; - align-items: center; - } - .goodData { - font-weight: bold; - margin: 0 0.06rem; - color: #3df574; - } - .badData { - font-weight: bold; - margin: 0 0.06rem; - color: #cf3607; - } - .automaticData { - font-weight: bold; - margin: 0 0.06rem; - color: #da7b10; - } - .timeData { - font-weight: bold; - margin: 0 0.06rem; - color: #1df3e8; - } } } } diff --git a/src/views/centerairC/sysMonitor/monitorCenter.vue b/src/views/centerairC/sysMonitor/monitorCenter.vue index b443669..e5159a6 100644 --- a/src/views/centerairC/sysMonitor/monitorCenter.vue +++ b/src/views/centerairC/sysMonitor/monitorCenter.vue @@ -114,6 +114,27 @@
+ +
+
+
+
+ 主机加载时间: + {{ hostAddTime }} + min +
+
+
+
+
+
+ 主机减载时间: + {{ hostReduceTime }} + min +
+
+
+
ON
@@ -140,7 +161,11 @@ /> -
+
{{ hostList[0].deviceName }}
-
+
{{ hostList[1].deviceName }}
-
+
{{ hostList[2].deviceName }}
@@ -300,11 +333,11 @@ > -
1#
-
2#
-
3#
-
4#
-
5#
+
1#
+
2#
+
3#
+
4#
+
5#
-
1#
-
2#
-
3#
-
4#
-
5#
+
+ 1# +
+
+ 2# +
+
+ 3# +
+
+ 4# +
+
+ 5# +
-
3#
-
2#
-
1#
+
+ 3# +
+
+ 2# +
+
+ 1# +
+
@@ -585,7 +645,11 @@
- 裙楼供冷进水阀: + 裙楼供冷进水阀: - 客房供冷进水阀: + 客房供冷进水阀:
- 裙楼供冷出水阀: + 裙楼供冷出水阀: - 客房供冷出水阀: + 客房供冷出水阀:
- 裙楼供暖进水阀: + 裙楼供暖进水阀:
- 客房供暖进水阀: + 客房供暖进水阀:
- 裙楼供暖出水阀: + 裙楼供暖出水阀: - 客房供暖出水阀: + 客房供暖出水阀: +
+
+
手自动切换
+
手动控制
+
+ 频率手自动切换 +
+
+ 频率反馈 +
+
+ 频率调节 +
+
+
+
+ + +
+
+ + +
+ +
+ + +
+
+ {{ item.frequency }}Hz +
+ +
+ +
+
+
+
@@ -750,6 +938,7 @@ import { } from "@/api/centerairC/sysMonitor"; import LineChildren from "./components/lineChildren.vue"; import { alarmRecordList } from "@/api/alarm/alarmRecord"; +import { policyListData } from "@/api/centerairC/strategy"; import { getDay } from "@/utils/datetime"; export default { components: { LineChildren }, @@ -827,6 +1016,14 @@ export default { nowTimer: null, isShowWarning: false, //是否有报警 dayData: "", //监测天数 + + // 控制弹框 + controlTitle: "", + openControlDialog: false, + controlArr: [], + + hostAddTime: "", //主机加载时间 + hostReduceTime: "", //主机减载时间 }; }, computed: { @@ -862,6 +1059,7 @@ export default { this.getMonitorList(); this.getAlarnStatus(); this.getDayData(); + this.getPolicyList(); // 设置定时器,每 10 秒执行一次 this.timer = setInterval(() => { @@ -1082,6 +1280,43 @@ export default { }) .catch(() => {}); }, + // 主机加减载时间min + getPolicyList() { + return new Promise((resolve, reject) => { + let data = { + systemType: "0", + funPolicyType: "1", + }; + policyListData(data) + .then((res) => { + console.log("策略返回res", res); + if (res.code == 200) { + let dataList = res.rows; + // 筛选出主机->加减载时间 + dataList.forEach((val) => { + if (val.name === "主机策略") { + val.values.forEach((child) => { + if (child.pointName === "主机加载时间") { + this.hostAddTime = child.curValue; + } + if (child.pointName === "主机减载时间") { + this.hostReduceTime = child.curValue; + } + }); + } + }); + } else { + this.policyList = []; + } + // 成功时解析 Promise + resolve(res); + }) + .catch((error) => { + // 失败时拒绝 Promise + reject(error); + }); + }); + }, // 系统监测数据 getMonitorList() { monitorList({ systemType: 0 }).then((res) => { @@ -1304,7 +1539,11 @@ export default { // 遍历 properties 数组,如果当前对象paramType === 2并且item.collectValue !== "0.00"则便是启停控制中的开启 for (let i = 0; i < properties.length; i++) { const item = properties[i]; - if (item.paramType === "2" && Number(item.collectValue) !== 0 && item.collectName.includes('启停')) { + if ( + item.paramType === "2" && + Number(item.collectValue) !== 0 && + item.collectName.includes("启停") + ) { return true; } } @@ -2057,6 +2296,284 @@ export default { // this.exitFullscreen(); this.$router.push("/alarm/alarmRecord"); }, + // 控制 + goControlList(item, index, name) { + console.log("item1111111111111111111", item, index, name); + // 处理properties值, + this.controlArr = []; + this.controlTitle = ""; + // 初始化一个空对象来存储非蝶阀处理后的结果 + let deviceItem = {}; + let properties; + if (index !== undefined && index !== null && index !== "") { + // 从 item 中查找 deviceName 包含与 index 相同数字的对象 + let targetDevice = null; + for (let i = 0; i < item.length; i++) { + const device = item[i]; + const indexStr = index.toString(); + const deviceName = device.deviceName.toString(); + for (let j = 0; j < indexStr.length; j++) { + if (deviceName.includes(indexStr[j])) { + this.controlTitle = deviceName; + deviceItem.name = deviceName; + console.log("this.controlTitle", this.controlTitle); + targetDevice = device; + break; + } + } + if (targetDevice) { + break; + } + } + // 如果未找到匹配的设备,返回 false + if (!targetDevice) { + return false; + } + // 获取匹配设备的 properties 数组 + properties = targetDevice.properties; + console.log("匹配的当前的设备数据", properties); + } else { + // 如果 index 未传值,直接将 item 当作 properties + properties = item; + this.controlTitle = name; + deviceItem.name = name; + console.log("index 未传值,直接处理 item 作为 properties", properties); + } + console.log("匹配的当前的设备数据", properties); + + properties.forEach((child) => { + if (child.collectName) { + // 手动控制 + if ( + child.paramType === "2" && + !child.collectName.includes("阀") && + child.collectName.includes("启停") + ) { + deviceItem.controlText = + Number(child.collectValue) == 0 ? false : true; + deviceItem.controlId = child.id; + } + // 阀门的-手动控制 + else if ( + child.paramType === "2" && + child.collectName.includes("阀") + ) { + deviceItem.controlText = + Number(child.collectValue) == 0 ? false : true; + deviceItem.controlId = child.id; + } + // 手自动切换 0自动1手动 + else if ( + child.paramType === "6" && + !child.collectName.includes("阀") + ) { + deviceItem.automaticText = + Number(child.collectValue) == 0 ? false : true; + deviceItem.automaticId = child.id; + } + // 阀门的-手自动切换 + else if ( + child.paramType === "6" && + child.collectName.includes("阀") + ) { + deviceItem.automaticText = + Number(child.collectValue) == 0 ? false : true; + deviceItem.automaticId = child.id; + } + // 频率-手自动切换 + else if ( + child.paramType === "40" && + !child.collectName.includes("阀") + ) { + deviceItem.frequencyAutotext = + Number(child.collectValue) == 0 ? false : true; + deviceItem.frequencyAutotextId = child.id; + } + // 频率调节 + else if ( + child.paramType === "3" && + !child.collectName.includes("阀") + ) { + deviceItem.frequencySet = + Number(child.collectValue) == 0 ? "0" : child.collectValue; + deviceItem.frequencyId = child.id; + } + // 频率反馈 + else if ( + child.paramType === "4" && + child.collectName.includes("频率反馈") + ) { + deviceItem.frequency = child.collectValue; + } + } + }); + // 将处理后的对象添加到 deviceList 中 + if (Object.keys(deviceItem).length > 1) { + this.controlArr.push(deviceItem); + } + console.log("处理后的this.controlArr", this.controlArr); + this.openControlDialog = true; + }, + hasFrequencySet(item, name) { + return ( + item && + item.hasOwnProperty(name) && + item[name] !== null && + item[name] !== "" + ); + }, + // 处理输入事件,过滤非数字字符 + handleInput(item) { + console.log("校验"); + // 实时校验并过滤非数字字符 + item.frequencySet = String(item.frequencySet).replace(/[^\d]/g, ""); + }, + // 失去焦点 + handleBlur() { + // this.currentFocusIndex = ""; + }, + handleEnter(item, event) { + console.log("请求后端", item); + // 失去焦点 + event.target.blur(); + this.$confirm( + `确定要修改"${item.name}"的频率为:${item.frequencySet} Hz吗?`, + "提示", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(() => { + this.operationConrol(item.frequencyId, item.frequencySet); + }) + .catch(() => { + // 用户取消操作,需要更新原来的频率 + // this.$emit("upList"); + }); + }, + //手动控制 + handleControlText(item) { + this.$confirm( + `确定要切换设备"${item.name}"的状态为:${ + item.controlText ? "开启" : "停止 吗?" + }`, + "提示", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(() => { + // 这里调用请求函数 + console.log("请求后台", item.controlText); + let param = null; + if (item.controlText) { + param = 1; + } else { + param = 0; + } + this.operationConrol(item.controlId, param); + }) + .catch(() => { + // 用户取消操作,恢复开关状态 + item.controlText = !item.controlText; + console.log("不请求后台"); + }); + }, + // 手自动切换 + handleAutomaticText(item) { + this.$confirm( + `确定要切换设备"${item.name}"的状态为:${ + item.automaticText ? "手动" : "自动 吗?" + }`, + "提示", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(() => { + // 这里调用请求函数 + console.log("请求后台", item.automaticText); + let param = null; + if (item.automaticText) { + param = 1; + } else { + param = 0; + } + this.operationConrol(item.automaticId, param); + }) + .catch(() => { + // 用户取消操作,恢复开关状态 + item.automaticText = !item.automaticText; + console.log("不请求后台"); + }); + }, + // 频率-手自动切换 + handleFrequencyAutomaticText(item) { + this.$confirm( + `确定要切换"${item.name}"的频率手自动状态为:${ + item.frequencyAutotext ? "手动" : "自动 吗?" + }`, + "提示", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(() => { + // 这里调用请求函数 + console.log("请求后台", item.frequencyAutotext); + let param = null; + if (item.frequencyAutotext) { + param = 1; + } else { + param = 0; + } + this.operationConrol(item.frequencyAutotextId, param); + }) + .catch(() => { + // 用户取消操作,恢复开关状态 + item.frequencyAutotext = !item.frequencyAutotext; + console.log("不请求后台"); + }); + }, + // 操作 + hadleOperationConrol(id, param) { + let data = { + id: id, + param: param, + }; + console.log("操作参数", data); + operationConrol([data]) + .then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("指令下发成功!"); + // 开启 loading 效果 + this.loading = true; + // 更新所有设备状态; + setTimeout(() => { + this.getMonitorList(); + this.loading = false; + }, 5000); + } else { + // this.$modal.msgError("操作失败"); + console.log("应该更新状态的"); + // 更新所有设备状态; + this.getMonitorList(); + } + }) + .catch((error) => { + console.log("请求发生错误,更新设备状态", error); + // 更新所有设备状态; + this.getMonitorList(); + }); + }, }, }; @@ -2246,6 +2763,7 @@ export default { } } .towerValve1 { + cursor: pointer; z-index: 10; position: absolute; top: 1.43rem; @@ -2256,6 +2774,7 @@ export default { border-radius: 50%; } .towerValve2 { + cursor: pointer; z-index: 10; position: absolute; top: 1.37rem; @@ -2266,6 +2785,7 @@ export default { border-radius: 50%; } .towerValve3 { + cursor: pointer; z-index: 10; position: absolute; top: 1.3rem; @@ -2276,6 +2796,7 @@ export default { border-radius: 50%; } .towerValve4 { + cursor: pointer; z-index: 10; position: absolute; top: 2.35rem; @@ -2286,6 +2807,7 @@ export default { border-radius: 50%; } .towerValve5 { + cursor: pointer; z-index: 10; position: absolute; top: 2.27rem; @@ -2296,6 +2818,7 @@ export default { border-radius: 50%; } .towerValve6 { + cursor: pointer; z-index: 10; position: absolute; top: 2.2rem; @@ -2398,6 +2921,7 @@ export default { z-index: 10; } .hostName1 { + cursor: pointer; border-bottom: 1px solid rgba(0, 255, 255, 1); z-index: 10; font-size: 0.22rem; @@ -2411,6 +2935,7 @@ export default { text-shadow: 0.02rem 0.02rem 0.04rem rgba(0, 0, 0, 0.9); /* 添加文字阴影增强立体感 */ } .hostName2 { + cursor: pointer; border-bottom: 1px solid rgba(0, 255, 255, 1); z-index: 10; font-size: 0.22rem; @@ -2424,6 +2949,7 @@ export default { text-shadow: 0.02rem 0.02rem 0.04rem rgba(0, 0, 0, 0.9); } .hostName3 { + cursor: pointer; border-bottom: 1px solid rgba(0, 255, 255, 1); z-index: 10; font-size: 0.22rem; @@ -2480,11 +3006,12 @@ export default { .host-main1 { z-index: 100; position: absolute; - top: 5.4rem; + top: 5.39rem; left: 4.15rem; width: 1.6rem; - height: 1.4rem; + // height: 1.2rem; // background-color: #007bff; + border-top-right-radius: 0.3rem; cursor: pointer; opacity: 0.4; transform-style: preserve-3d; @@ -2493,11 +3020,12 @@ export default { .host-main2 { z-index: 100; position: absolute; - top: 4.8rem; - left: 6rem; - width: 1.55rem; - height: 1.3rem; + top: 4.9rem; + left: 5.9rem; + width: 1.5rem; + height: 1.05rem; // background-color: #007bff; + border-top-right-radius: 0.3rem; cursor: pointer; opacity: 0.4; transform-style: preserve-3d; @@ -2506,15 +3034,16 @@ export default { .host-main3 { z-index: 100; position: absolute; - top: 4.4rem; + top: 4.55rem; left: 7.7rem; width: 1.5rem; - height: 1rem; + height: 0.8rem; // background-color: #007bff; + border-top-right-radius: 0.3rem; cursor: pointer; opacity: 0.4; transform-style: preserve-3d; - transform: translateX(-50%) rotateY(0deg) rotateX(0deg) rotateZ(30deg); + transform: translateX(-50%) rotateY(0deg) rotateX(0deg) rotateZ(25deg); } .hostLoad1 { z-index: 10; @@ -2625,6 +3154,7 @@ export default { border-radius: 50%; } .coolingPump1 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2634,6 +3164,7 @@ export default { left: 7.23rem; } .coolingPump2 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2643,6 +3174,7 @@ export default { left: 7.68rem; } .coolingPump3 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2652,6 +3184,7 @@ export default { left: 8.22rem; } .coolingPump4 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2661,6 +3194,7 @@ export default { left: 8.68rem; } .coolingPump5 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2760,6 +3294,7 @@ export default { font-weight: bold; } .freezingPump1 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2769,6 +3304,7 @@ export default { left: 6.2rem; } .freezingPump2 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2778,6 +3314,7 @@ export default { left: 6.96rem; } .freezingPump3 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2787,6 +3324,7 @@ export default { left: 8.6rem; } .freezingPump4 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2796,6 +3334,7 @@ export default { left: 9.15rem; } .freezingPump5 { + cursor: pointer; z-index: 10; font-size: 0.15rem; font-weight: bold; @@ -2895,6 +3434,7 @@ export default { font-weight: bold; } .coolingTower3 { + cursor: pointer; z-index: 10; font-size: 0.18rem; color: #46f1e3; @@ -2905,6 +3445,7 @@ export default { transform: rotateX(20deg) rotateY(-25deg) rotateZ(0deg); } .coolingTower2 { + cursor: pointer; z-index: 10; font-size: 0.18rem; color: #46f1e3; @@ -2915,6 +3456,7 @@ export default { transform: rotateX(20deg) rotateY(-25deg) rotateZ(0deg); } .coolingTower1 { + cursor: pointer; z-index: 10; font-size: 0.18rem; color: #46f1e3; @@ -2967,6 +3509,7 @@ export default { } } .frozenValve1 { + cursor: pointer; z-index: 10; position: absolute; top: 6.27rem; @@ -2977,6 +3520,7 @@ export default { border-radius: 50%; } .frozenValve2 { + cursor: pointer; z-index: 10; position: absolute; top: 5.61rem; @@ -2987,6 +3531,7 @@ export default { border-radius: 50%; } .frozenValve3 { + cursor: pointer; z-index: 10; position: absolute; top: 4.88rem; @@ -2997,6 +3542,7 @@ export default { border-radius: 50%; } .coolingValue1 { + cursor: pointer; z-index: 10; position: absolute; top: 5.37rem; @@ -3007,6 +3553,7 @@ export default { border-radius: 50%; } .coolingValue2 { + cursor: pointer; z-index: 10; position: absolute; top: 4.85rem; @@ -3017,6 +3564,7 @@ export default { border-radius: 50%; } .coolingValue3 { + cursor: pointer; z-index: 10; position: absolute; top: 4.35rem; @@ -3097,7 +3645,7 @@ export default { z-index: 10; position: absolute; top: 0.2rem; - left: 1.1rem; + left: -0.5rem; display: flex; flex-direction: column; align-items: flex-start; @@ -3413,9 +3961,22 @@ export default { transform: scale(0.9); } } +.detail-data-bottom { + position: absolute; + top: 1rem; + left: 2.3rem; + width: 4rem; + padding: 0rem 0.3rem; + z-index: 0; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: flex-start; + justify-content: center; +} diff --git a/src/views/centerairC/sysMonitor/performance.vue b/src/views/centerairC/sysMonitor/performance.vue index aa3f206..2de3015 100644 --- a/src/views/centerairC/sysMonitor/performance.vue +++ b/src/views/centerairC/sysMonitor/performance.vue @@ -714,153 +714,6 @@ export default { flex-wrap: wrap; align-items: flex-start; justify-content: center; - .detail-data-li { - width: 80%; - margin-right: 0.1rem; - position: relative; - color: #89acc4; - font-family: Arial, sans-serif; - letter-spacing: 0.02rem; - font-size: 0.18rem; - position: relative; - margin-bottom: 0.08rem; - border-left: 0.01rem solid #217df5; - border-right: 0.01rem solid #217df5; - background-image: radial-gradient( - circle at left top, - #217df5 0.01rem, - transparent 0.01rem - ), - radial-gradient( - circle at right top, - #217df5 0.01rem, - transparent 0.01rem - ), - radial-gradient( - circle at left bottom, - #217df5 0.01rem, - transparent 0.01rem - ), - radial-gradient( - circle at right bottom, - #217df5 0.01rem, - transparent 0.01rem - ); - background-repeat: no-repeat; - background-position: left top, right top, left bottom, right bottom; - } - .detail-data-li::before, - .detail-data-li::after { - content: ""; - position: absolute; - left: 0; - right: 0; - height: 0.01rem; - background-image: linear-gradient( - to right, - #217df5 0%, - rgba(41, 128, 185, 0) 50%, - #217df5 100% - ) !important; - } - .year-data { - margin-top: 0.1rem; - } - .rightDot { - position: relative; - width: 100%; - height: 100%; - z-index: 999; - } - .leftDot { - position: relative; - width: 100%; - height: 100%; - padding: 0.04rem 0.1rem; - display: flex; - flex-direction: row; - justify-content: space-between; - .dotData { - font-weight: bold; - margin: 0 0.06rem; - color: #3b80ff; - display: flex; - align-items: center; - } - .dotUnit{ - width: 0.55rem; - text-align: left; - display: flex; - align-items: center; - } - } - - .rightDot::before { - content: ""; - position: absolute; - top: -0.03rem; - right: -0.03rem; - width: 0.06rem; - height: 0.06rem; - background-color: #217df5; - box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); - background-image: radial-gradient( - circle at 30% 30%, - rgba(255, 255, 255, 0.8) 0%, - rgba(255, 255, 255, 0) 70% - ); - border-radius: 50%; - } - - .rightDot::after { - content: ""; - position: absolute; - bottom: -0.03rem; - right: -0.03rem; - width: 0.06rem; - height: 0.06rem; - background-color: #217df5; - box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); - background-image: radial-gradient( - circle at 30% 30%, - rgba(255, 255, 255, 0.8) 0%, - rgba(255, 255, 255, 0) 70% - ); - border-radius: 50%; - } - .leftDot::before { - content: ""; - position: absolute; - top: -0.03rem; - left: -0.03rem; - width: 0.06rem; - height: 0.06rem; - background-color: #217df5; - border-radius: 50%; - box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); - background-image: radial-gradient( - circle at 30% 30%, - rgba(255, 255, 255, 0.8) 0%, - rgba(255, 255, 255, 0) 70% - ); - } - - .leftDot::after { - content: ""; - position: absolute; - bottom: -0.03rem; - left: -0.03rem; - width: 0.06rem; - height: 0.06rem; - background-color: #217df5; - box-shadow: 0 0 0.1rem 0.02rem rgba(33, 125, 245, 0.9); - background-image: radial-gradient( - circle at 30% 30%, - rgba(255, 255, 255, 0.8) 0%, - rgba(255, 255, 255, 0) 70% - ); - border-radius: 50%; - } } .line1 { position: absolute; diff --git a/src/views/hotWater/waterControl/index.vue b/src/views/hotWater/waterControl/index.vue index 0ced23a..6bf7e13 100644 --- a/src/views/hotWater/waterControl/index.vue +++ b/src/views/hotWater/waterControl/index.vue @@ -508,7 +508,7 @@
{{ item.pressure }}bar
-
供水温度误差设定:
+
温度偏差值: