syzDetails.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. <template>
  2. <!-- 头部按钮选项 -->
  3. <HeaderNav @firstRender="firstRender" :isAll="true" />
  4. <!-- <BSHeaderButton :type="stationType" @renderData="renderData"/> -->
  5. <div class="syzDetailsPaneItem">
  6. <div class="buttonGroup">
  7. <el-button-group>
  8. <el-button
  9. size="small"
  10. @click="changeHeight('D')"
  11. :class="allHeight === 'D' ? 'showSty' : ''"
  12. >大图标
  13. </el-button>
  14. <el-button
  15. size="small"
  16. @click="changeHeight('Z')"
  17. :class="allHeight === 'Z' ? 'showSty' : ''"
  18. >中图标
  19. </el-button>
  20. <el-button
  21. size="small"
  22. @click="changeHeight('X')"
  23. :class="allHeight === 'X' ? 'showSty' : ''"
  24. >小图标
  25. </el-button>
  26. </el-button-group>
  27. </div>
  28. <div
  29. v-if="activeTab == -1"
  30. :style="allpageHeight"
  31. style="width: 100%; display: grid; overflow-y: auto"
  32. >
  33. <!-- 小五台-->
  34. <div
  35. class="showAllSvgMsg"
  36. :style="getStyle(allHeight)"
  37. @dblclick="handleClick('XWT')"
  38. >
  39. <div class="cover"></div>
  40. <XWT class="booster-station-body" />
  41. <div class="showAllSvgMsg_bot">
  42. <span>{{ getStationName("XWT") }}</span>
  43. </div>
  44. </div>
  45. <!-- 败虎堡 -->
  46. <div
  47. class="showAllSvgMsg"
  48. :style="getStyle(allHeight)"
  49. @dblclick="handleClick('BHB')"
  50. >
  51. <div class="cover"></div>
  52. <BHB class="booster-station-body" />
  53. <div class="showAllSvgMsg_bot">
  54. <span>{{ getStationName("BHB") }}</span>
  55. </div>
  56. </div>
  57. <!-- 禹丰 -->
  58. <div
  59. class="showAllSvgMsg"
  60. :style="getStyle(allHeight)"
  61. @dblclick="handleClick('YF')"
  62. >
  63. <div class="cover"></div>
  64. <YF class="booster-station-body" />
  65. <div class="showAllSvgMsg_bot">
  66. <span>{{ getStationName("YF") }}</span>
  67. </div>
  68. </div>
  69. <!-- 败虎堡三期 -->
  70. <div
  71. class="showAllSvgMsg"
  72. :style="getStyle(allHeight)"
  73. @dblclick="handleClick('BHB3')"
  74. >
  75. <div class="cover"></div>
  76. <BHBSQ class="booster-station-body" />
  77. <div class="showAllSvgMsg_bot">
  78. <span>{{ getStationName("BHB3") }}</span>
  79. </div>
  80. </div>
  81. <!-- 盘道梁 -->
  82. <div
  83. class="showAllSvgMsg"
  84. :style="getStyle(allHeight)"
  85. @dblclick="handleClick('PDL')"
  86. >
  87. <div class="cover"></div>
  88. <PDL class="booster-station-body" />
  89. <div class="showAllSvgMsg_bot">
  90. <span>{{ getStationName("PDL") }}</span>
  91. </div>
  92. </div>
  93. <!-- 牛家岭 -->
  94. <div
  95. class="showAllSvgMsg"
  96. :style="getStyle(allHeight)"
  97. @dblclick="handleClick('NJL')"
  98. >
  99. <div class="cover"></div>
  100. <NJL class="booster-station-body" />
  101. <div class="showAllSvgMsg_bot">
  102. <span>{{ getStationName("NJL") }}</span>
  103. </div>
  104. </div>
  105. <!-- 丁家窑 -->
  106. <div
  107. class="showAllSvgMsg"
  108. :style="getStyle(allHeight)"
  109. @dblclick="handleClick('DJY')"
  110. >
  111. <div class="cover"></div>
  112. <DJY class="booster-station-body" />
  113. <div class="showAllSvgMsg_bot">
  114. <span>{{ getStationName("DJY") }}</span>
  115. </div>
  116. </div>
  117. <!-- 高家堰 -->
  118. <div
  119. class="showAllSvgMsg"
  120. :style="getStyle(allHeight)"
  121. @dblclick="handleClick('GJY')"
  122. >
  123. <div class="cover"></div>
  124. <GJY class="booster-station-body" />
  125. <div class="showAllSvgMsg_bot">
  126. <span>{{ getStationName("GJY") }}</span>
  127. </div>
  128. </div>
  129. <!-- 平头镇 -->
  130. <div
  131. class="showAllSvgMsg"
  132. :style="getStyle(allHeight)"
  133. @dblclick="handleClick('PTZ')"
  134. >
  135. <div class="cover"></div>
  136. <PTZ class="booster-station-body" />
  137. <div class="showAllSvgMsg_bot">
  138. <span>{{ getStationName("PTZ") }}</span>
  139. </div>
  140. </div>
  141. <!-- 红石峁 -->
  142. <div
  143. class="showAllSvgMsg"
  144. :style="getStyle(allHeight)"
  145. @dblclick="handleClick('HSM')"
  146. >
  147. <div class="cover"></div>
  148. <HSM class="booster-station-body" />
  149. <div class="showAllSvgMsg_bot">
  150. <span>{{ getStationName("HSM") }}</span>
  151. </div>
  152. </div>
  153. <!-- 朱坑 -->
  154. <div
  155. class="showAllSvgMsg"
  156. :style="getStyle(allHeight)"
  157. @dblclick="handleClick('ZK')"
  158. >
  159. <div class="cover"></div>
  160. <ZK class="booster-station-body" />
  161. <div class="showAllSvgMsg_bot">
  162. <span>{{ getStationName("ZK") }}</span>
  163. </div>
  164. </div>
  165. <!-- 羊头崖 -->
  166. <div
  167. class="showAllSvgMsg"
  168. :style="getStyle(allHeight)"
  169. @dblclick="handleClick('YTY')"
  170. >
  171. <div class="cover"></div>
  172. <YTY class="booster-station-body" />
  173. <div class="showAllSvgMsg_bot">
  174. <span>{{ getStationName("YTY") }}</span>
  175. </div>
  176. </div>
  177. <!-- 尹灵芝 -->
  178. <div
  179. class="showAllSvgMsg"
  180. :style="getStyle(allHeight)"
  181. @dblclick="handleClick('YLZ')"
  182. >
  183. <div class="cover"></div>
  184. <YLZ class="booster-station-body" />
  185. <div class="showAllSvgMsg_bot">
  186. <span>{{ getStationName("YLZ") }}</span>
  187. </div>
  188. </div>
  189. <!-- 米粮局 -->
  190. <div
  191. class="showAllSvgMsg"
  192. :style="getStyle(allHeight)"
  193. @dblclick="handleClick('MLJ')"
  194. >
  195. <div class="cover"></div>
  196. <MLJ class="booster-station-body" />
  197. <div class="showAllSvgMsg_bot">
  198. <span>{{ getStationName("MLJ") }}</span>
  199. </div>
  200. </div>
  201. </div>
  202. <!-- 风场 *************** -->
  203. <!-- 光伏 *************** -->
  204. <div
  205. v-if="activeTab == -2"
  206. :style="allpageHeight"
  207. style="width: 100%; display: grid; overflow-y: auto"
  208. >
  209. <!-- 右玉右卫 -->
  210. <div
  211. class="showAllSvgMsg"
  212. :style="getStyle(allHeight)"
  213. @dblclick="handleClick('YY')"
  214. >
  215. <div class="cover"></div>
  216. <GFyouyuyouwei class="booster-station-body" />
  217. <div class="showAllSvgMsg_bot">
  218. <span>{{ getStationName("YY") }}</span>
  219. </div>
  220. </div>
  221. <!-- 平鲁阻虎 -->
  222. <div
  223. class="showAllSvgMsg"
  224. :style="getStyle(allHeight)"
  225. @dblclick="handleClick('PL')"
  226. >
  227. <div class="cover"></div>
  228. <GFpingluzuhu class="booster-station-body" />
  229. <div class="showAllSvgMsg_bot">
  230. <span>{{ getStationName("PL") }}</span>
  231. </div>
  232. </div>
  233. <!-- 应县晶辉 -->
  234. <div
  235. class="showAllSvgMsg"
  236. :style="getStyle(allHeight)"
  237. @dblclick="handleClick('YX')"
  238. >
  239. <div class="cover"></div>
  240. <GFyingxianjinghui class="booster-station-body" />
  241. <div class="showAllSvgMsg_bot">
  242. <span>{{ getStationName("YX") }}</span>
  243. </div>
  244. </div>
  245. <!-- 天镇旭升 -->
  246. <div
  247. class="showAllSvgMsg"
  248. :style="getStyle(allHeight)"
  249. @dblclick="handleClick('TZ')"
  250. >
  251. <GFtianzhenxusheng class="booster-station-body" />
  252. <div class="showAllSvgMsg_bot">
  253. <span>{{ getStationName("TZ") }}</span>
  254. </div>
  255. </div>
  256. <!-- 阳高蔚家堡 -->
  257. <div
  258. class="showAllSvgMsg"
  259. :style="getStyle(allHeight)"
  260. @dblclick="handleClick('YG')"
  261. >
  262. <div class="cover"></div>
  263. <GFyanggaoweijiabao class="booster-station-body" />
  264. <div class="showAllSvgMsg_bot">
  265. <span>{{ getStationName("YG") }}</span>
  266. </div>
  267. </div>
  268. <!-- 方山孙家山 -->
  269. <div
  270. class="showAllSvgMsg"
  271. :style="getStyle(allHeight)"
  272. @dblclick="handleClick('FS')"
  273. >
  274. <div class="cover"></div>
  275. <GFfangshansunjiashan class="booster-station-body" />
  276. <div class="showAllSvgMsg_bot">
  277. <span>{{ getStationName("FS") }}</span>
  278. </div>
  279. </div>
  280. <!-- 山阴荣新 -->
  281. <div
  282. class="showAllSvgMsg"
  283. :style="getStyle(allHeight)"
  284. @dblclick="handleClick('SY')"
  285. >
  286. <div class="cover"></div>
  287. <GFshanyinrongxin class="booster-station-body" />
  288. <div class="showAllSvgMsg_bot">
  289. <span>{{ getStationName("SY") }}</span>
  290. </div>
  291. </div>
  292. <!-- 怀仁初晨 -->
  293. <div
  294. class="showAllSvgMsg"
  295. :style="getStyle(allHeight)"
  296. @dblclick="handleClick('HR')"
  297. >
  298. <div class="cover"></div>
  299. <GFhuairenchuchen class="booster-station-body" />
  300. <div class="showAllSvgMsg_bot">
  301. <span>{{ getStationName("HR") }}</span>
  302. </div>
  303. </div>
  304. <!-- 屯留吾元 -->
  305. <div
  306. class="showAllSvgMsg"
  307. :style="getStyle(allHeight)"
  308. @dblclick="handleClick('TL')"
  309. >
  310. <div class="cover"></div>
  311. <GFtunliuwuyuan class="booster-station-body" />
  312. <div class="showAllSvgMsg_bot">
  313. <span>{{ getStationName("TL") }}</span>
  314. </div>
  315. </div>
  316. <!-- 繁峙均然 -->
  317. <div
  318. class="showAllSvgMsg"
  319. :style="getStyle(allHeight)"
  320. @dblclick="handleClick('JR')"
  321. >
  322. <div class="cover"></div>
  323. <GFfanshijunran class="booster-station-body" />
  324. <div class="showAllSvgMsg_bot">
  325. <span>{{ getStationName("JR") }}</span>
  326. </div>
  327. </div>
  328. </div>
  329. </div>
  330. </template>
  331. <script>
  332. import BSHeaderButton from "../factoryMonitor/components/BSHeaderButton.vue";
  333. // 风场
  334. import GJY from "../factoryMonitor/windPowerPlant/boosterStation/components/GJY.vue";
  335. import BHB from "../factoryMonitor/windPowerPlant/boosterStation/components/BHB.vue";
  336. import BHBSQ from "../factoryMonitor/windPowerPlant/boosterStation/components/BHBSQ.vue";
  337. import DJY from "../factoryMonitor/windPowerPlant/boosterStation/components/DJY.vue";
  338. import HSM from "../factoryMonitor/windPowerPlant/boosterStation/components/HSM.vue";
  339. import NJL from "../factoryMonitor/windPowerPlant/boosterStation/components/NJL.vue";
  340. import PDL from "../factoryMonitor/windPowerPlant/boosterStation/components/PDL.vue";
  341. import PTZ from "../factoryMonitor/windPowerPlant/boosterStation/components/PTZ.vue";
  342. import XWT from "../factoryMonitor/windPowerPlant/boosterStation/components/XWT.vue";
  343. import YTY from "../factoryMonitor/windPowerPlant/boosterStation/components/YTY.vue";
  344. import YLZ from "../factoryMonitor/windPowerPlant/boosterStation/components/YLZ.vue";
  345. import YF from "../factoryMonitor/windPowerPlant/boosterStation/components/YF.vue";
  346. import ZK from "../factoryMonitor/windPowerPlant/boosterStation/components/ZK.vue";
  347. import MLJ from "../factoryMonitor/windPowerPlant/boosterStation/components/MLJ.vue";
  348. import GFshanyinrongxin from "../factoryMonitor/photovoltaic/lightBoosterStation/components/shanyinrongxin.vue";
  349. import GFfangshansunjiashan from "../factoryMonitor/photovoltaic/lightBoosterStation/components/fangshansunjiashan.vue";
  350. import GFfanshijunran from "../factoryMonitor/photovoltaic/lightBoosterStation/components/fanshijunran.vue";
  351. import GFhuairenchuchen from "../factoryMonitor/photovoltaic/lightBoosterStation/components/huairenchuchen.vue";
  352. import GFpingluzuhu from "../factoryMonitor/photovoltaic/lightBoosterStation/components/pingluzuhu.vue";
  353. import GFtianzhenxusheng from "../factoryMonitor/photovoltaic/lightBoosterStation/components/tianzhenxusheng.vue";
  354. import GFtunliuwuyuan from "../factoryMonitor/photovoltaic/lightBoosterStation/components/tunliuwuyuan.vue";
  355. import GFyanggaoweijiabao from "../factoryMonitor/photovoltaic/lightBoosterStation/components/yanggaoweijiabao.vue";
  356. import GFyingxianjinghui from "../factoryMonitor/photovoltaic/lightBoosterStation/components/yingxianjinghui.vue";
  357. import GFyouyuyouwei from "../factoryMonitor/photovoltaic/lightBoosterStation/components/youyuyouwei.vue";
  358. import ABS from "./allBoosterStation";
  359. import HeaderNav from "@/components/headerNavSta/index.vue";
  360. import { GetStationByCompany } from "@/api/factoryMonitor/index.js";
  361. export default {
  362. name: "boosterStation",
  363. components: {
  364. HeaderNav,
  365. // BSHeaderButton,
  366. GJY,
  367. BHB,
  368. BHBSQ,
  369. MLJ,
  370. PDL,
  371. PTZ,
  372. XWT,
  373. YTY,
  374. YLZ,
  375. YF,
  376. ZK,
  377. NJL,
  378. HSM,
  379. DJY,
  380. GFshanyinrongxin,
  381. GFfangshansunjiashan,
  382. GFfanshijunran,
  383. GFhuairenchuchen,
  384. GFpingluzuhu,
  385. GFtianzhenxusheng,
  386. GFtunliuwuyuan,
  387. GFyanggaoweijiabao,
  388. GFyingxianjinghui,
  389. GFyouyuyouwei,
  390. // ABS,
  391. },
  392. data() {
  393. return {
  394. stationType: "-1",
  395. wpId: "",
  396. activeTab: -1,
  397. allHeight: "D",
  398. stationList: [],
  399. };
  400. },
  401. created() {
  402. this.getStation();
  403. },
  404. computed: {
  405. allpageHeight() {
  406. let obj = {
  407. height: "calc(100% - 34px)",
  408. gridGap: "15px",
  409. };
  410. if (this.allHeight == "D") {
  411. obj.gridTemplateColumns = "auto auto auto";
  412. } else if (this.allHeight == "Z") {
  413. obj.gridTemplateColumns = "auto auto auto auto";
  414. } else if (this.allHeight == "X") {
  415. obj.gridTemplateColumns = "auto auto auto auto auto";
  416. obj.gridAutoRows = "245px";
  417. }
  418. return obj;
  419. },
  420. },
  421. methods: {
  422. firstRender(activeTab) {
  423. this.activeTab = activeTab;
  424. this.getStation();
  425. },
  426. changeHeight(type) {
  427. this.allHeight = type;
  428. },
  429. getStationName(key, type = "") {
  430. if (this.stationList.length) {
  431. let ele = this.stationList.find((item) => {
  432. let arr = item.id.split("_");
  433. if (arr[2] == key) {
  434. return item;
  435. }
  436. });
  437. if (type && type.length) {
  438. return ele?.id;
  439. }
  440. return ele?.name;
  441. }
  442. },
  443. getStyle(type) {
  444. if (type === "D") {
  445. return {
  446. height: "400px",
  447. };
  448. } else if (type === "Z") {
  449. return {
  450. height: "300px",
  451. };
  452. } else {
  453. return {
  454. height: "245px",
  455. };
  456. }
  457. },
  458. getStation() {
  459. GetStationByCompany({
  460. companyids: "KGDL_FGS",
  461. type: this.activeTab,
  462. }).then((res) => {
  463. console.log(res);
  464. if (res.code == 0) {
  465. this.stationList = res.data.data;
  466. }
  467. });
  468. },
  469. handleClick(key) {
  470. console.log(key);
  471. if (this.activeTab == -1) {
  472. this.$router.push({
  473. path: "/stateMonitor/factoryMonitor/windPowerPlant/boosterStation",
  474. query: {
  475. wpid: this.getStationName(key, "id"),
  476. wpname: this.getStationName(key),
  477. },
  478. });
  479. } else if (this.activeTab == -2) {
  480. this.$router.push({
  481. path: "/stateMonitor/factoryMonitor/photovoltaic/lightBoosterStation",
  482. query: {
  483. wpid: this.getStationName(key, "id"),
  484. wpname: this.getStationName(key),
  485. },
  486. });
  487. }
  488. },
  489. handleDbclick(key) {
  490. console.log(key);
  491. },
  492. renderData(company, wpId) {
  493. this.wpId = wpId;
  494. },
  495. refData(wpId) {
  496. this.wpId = wpId;
  497. },
  498. },
  499. };
  500. </script>
  501. <style lang="less" scoped>
  502. .syzDetailsPaneItem {
  503. position: relative;
  504. padding: 0 20px 10px 20px;
  505. height: calc(100% - 57px);
  506. .buttonGroup {
  507. margin-bottom: 10px;
  508. display: flex;
  509. // justify-content: end;
  510. float: right;
  511. .el-button-group {
  512. .el-button {
  513. min-height: 30px !important;
  514. background-color: rgba(5, 187, 76, 0.2);
  515. border: 1px solid #3b6c53;
  516. color: #b3b3b3;
  517. }
  518. .showSty {
  519. // color: #409eff;
  520. // border-color: #c6e2ff;
  521. // background-color: #ecf5ff;
  522. border: 1px solid #3b6c53;
  523. background-color: rgba(5, 187, 76, 0.5);
  524. color: #ffffff;
  525. outline: 0;
  526. }
  527. }
  528. }
  529. .warningMaskNew {
  530. background-color: rgba(186, 50, 55, 0.5);
  531. animation: fade 2000ms infinite;
  532. -webkit-animation: fade 2000ms infinite;
  533. }
  534. @keyframes fade {
  535. from {
  536. opacity: 0.7;
  537. }
  538. 50% {
  539. opacity: 0.3;
  540. }
  541. to {
  542. opacity: 0.7;
  543. }
  544. }
  545. @-webkit-keyframes fade {
  546. from {
  547. opacity: 0.7;
  548. }
  549. 50% {
  550. opacity: 0.3;
  551. }
  552. to {
  553. opacity: 0.7;
  554. }
  555. }
  556. .showAllSvgMsg {
  557. border: 3px solid #646464;
  558. border-radius: 10px;
  559. margin-right: 15px;
  560. margin-bottom: 15px;
  561. position: relative;
  562. &:hover {
  563. .showAllSvgMsg_bot {
  564. background: #1f5533;
  565. span {
  566. color: #fff;
  567. }
  568. }
  569. }
  570. .cover {
  571. position: absolute;
  572. background: transparent;
  573. height: calc(100% - 40px);
  574. width: 100%;
  575. z-index: 99;
  576. }
  577. .booster-station-body {
  578. height: calc(100% - 40px);
  579. width: 100%;
  580. }
  581. .showAllSvgMsg_bot {
  582. background: #3a3a3a;
  583. border-radius: 0 0 8px 8px;
  584. height: 40px;
  585. text-align: center;
  586. span {
  587. position: relative;
  588. top: 10px;
  589. font-weight: bold;
  590. color: rgba(255, 255, 255, 0.5);
  591. }
  592. }
  593. }
  594. .alarmIconBox {
  595. position: absolute;
  596. right: 0;
  597. top: 0;
  598. cursor: pointer;
  599. i {
  600. font-size: 20px;
  601. }
  602. }
  603. }
  604. </style>