Nav apraksta

airClamp.vue 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. <template>
  2. <div class="app-container" style="padding-bottom: 0px;padding-top: 0px;">
  3. <h4>气夹监测系统</h4>
  4. <div class="filter-container" style="overflow: auto;" v-loading="loadprogress" v-if="blockShow">
  5. <div class="airItem">
  6. <p class="pText">上游气夹监测</p>
  7. <div class="imgBox">
  8. <img src="/static/bridges.jpg" alt="" style="" />
  9. <div class="state-info Normal" @click="change(arr1,arr1obj.txt)">
  10. <p class="airHumidity" v-for="item in arr1" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  11. </div>
  12. <div class="state-info Normal" @click="change(arr2,arr2obj.txt)">
  13. <p class="airHumidity" v-for="item in arr2" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  14. </div>
  15. <div class="state-info Normal" @click="change(arr3,arr3obj.txt)">
  16. <p class="airHumidity" v-for="item in arr3" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  17. </div>
  18. <div class="state-info Normal" @click="change(arr4,arr4obj.txt)">
  19. <p class="airHumidity" v-for="item in arr4" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  20. </div>
  21. <div class="state-info Normal" @click="change(arr5,arr5obj.txt)">
  22. <p class="airHumidity" v-for="item in arr5" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  23. </div>
  24. <div class="state-info Normal" @click="change(arr6,arr6obj.txt)">
  25. <p class="airHumidity" v-for="item in arr6" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  26. </div>
  27. <div class="titlText">
  28. <p><span></span>进气夹</p>
  29. <p><span class="gass"></span>排气夹</p>
  30. </div>
  31. <div class="pukou">
  32. 浦口侧
  33. </div>
  34. <div class="jianye">
  35. 建邺侧
  36. </div>
  37. </div>
  38. </div>
  39. <div class="airItem">
  40. <p class="pText">下游气夹监测</p>
  41. <div class="imgBox">
  42. <img src="/static/bridges.jpg" alt="" style="transform:rotateY(180deg);" />
  43. <div class="stateNormal" @click="change(arr7,arr7obj.txt)">
  44. <p class="airHumidity" v-for="item in arr7" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  45. </div>
  46. <div class="stateNormal" @click="change(arr8,arr8obj.txt)">
  47. <p class="airHumidity" v-for="item in arr8" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  48. </div>
  49. <div class="stateNormal" @click="change(arr9,arr9obj.txt)">
  50. <p class="airHumidity" v-for="item in arr9" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  51. </div>
  52. <div class="stateNormal" @click="change(arr10,arr10obj.txt)">
  53. <p class="airHumidity" v-for="item in arr10" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  54. </div>
  55. <div class="stateNormal" @click="change(arr12,arr12obj.txt)">
  56. <p class="airHumidity" v-for="item in arr11" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  57. </div>
  58. <div class="stateNormal" @click="change(arr12,arr12obj.txt)">
  59. <p class="airHumidity" v-for="item in arr12" :key='item.code'>{{item.lastValue}}{{unitObj[item.unit]}}</p>
  60. </div>
  61. <div class="titlText">
  62. <p><span></span>进气夹</p>
  63. <p><span class="gass"></span>排气夹</p>
  64. </div>
  65. <div class="pukou">
  66. 建邺侧
  67. </div>
  68. <div class="jianye">
  69. 浦口侧
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. </template>
  76. <script>
  77. import Cookies from 'js-cookie'
  78. import { byBridgeAll } from '@/utils/queryBridgeAllResource'
  79. export default {
  80. name: 'complexTable',
  81. data() {
  82. return {
  83. saddleObj: {},
  84. loadprogress: true,
  85. blockShow: false,
  86. bridgeId: '',
  87. arr1obj: {
  88. txt: '浦口侧上游排气夹',
  89. '7709': 0,
  90. '7710': 1,
  91. '7711': 2
  92. },
  93. arr1: [],
  94. arr2obj: {
  95. txt: '浦口侧上游进气夹',
  96. '7706': 0,
  97. '7707': 1,
  98. '7708': 2
  99. },
  100. arr2: [],
  101. arr3obj: {
  102. txt: '浦口侧上游上排气夹和上排气',
  103. '7535': 0,
  104. '7536': 1
  105. },
  106. arr3: [],
  107. arr4obj: {
  108. txt: '建邺侧上游上排气夹和上排气',
  109. '7531': 0,
  110. '7532': 1
  111. },
  112. arr4: [],
  113. arr5obj: {
  114. txt: '建邺侧上游进气夹',
  115. '7694': 0,
  116. '7695': 1,
  117. '7696': 2
  118. },
  119. arr5: [],
  120. arr6obj: {
  121. txt: '建邺侧上游排气夹',
  122. '7697': 0,
  123. '7698': 1,
  124. '7699': 2
  125. },
  126. arr6: [],
  127. arr7obj: {
  128. txt: '建邺侧下游排气夹',
  129. '7703': 0,
  130. '7704': 1,
  131. '7705': 2
  132. },
  133. arr7: [],
  134. arr8obj: {
  135. txt: '建邺侧下游进气夹',
  136. '7700': 0,
  137. '7701': 1,
  138. '7702': 2
  139. },
  140. arr8: [],
  141. arr9obj: {
  142. txt: '建邺侧下游上排气夹和上排气',
  143. '7533': 0,
  144. '7534': 1
  145. },
  146. arr9: [],
  147. arr10obj: {
  148. txt: '浦口侧下游上排气夹和上排气',
  149. '7537': 0,
  150. '7538': 1
  151. },
  152. arr10: [],
  153. arr11obj: {
  154. txt: '浦口侧下游进气夹',
  155. '7712': 0,
  156. '7713': 1,
  157. '7714': 2
  158. },
  159. arr12: [],
  160. arr12obj: {
  161. txt: '浦口侧下游排气夹',
  162. '7715': 0,
  163. '7716': 1,
  164. '7717': 2
  165. },
  166. arr11: [],
  167. unitObj: {
  168. '01': '℃',
  169. '02': '%',
  170. '03': 'kPa',
  171. '04': 'm3/h'
  172. }
  173. }
  174. },
  175. created() {
  176. this.bridgeId = Cookies.get('bridgeId')
  177. byBridgeAll(this.bridgeId, (res) => {
  178. this.loadprogress = false
  179. if (res.server.length === 0) {
  180. return
  181. }
  182. this.blockShow = true
  183. const array1 = ['', '', '']
  184. const array2 = ['', '', '']
  185. const array3 = ['', '']
  186. const array4 = ['', '']
  187. const array5 = ['', '', '']
  188. const array6 = ['', '', '']
  189. const array7 = ['', '', '']
  190. const array8 = ['', '', '']
  191. const array9 = ['', '']
  192. const array10 = ['', '']
  193. const array11 = ['', '', '']
  194. const array12 = ['', '', '']
  195. Object.keys(res['01']).forEach((key) => {
  196. res['01'][key].forEach((item) => {
  197. const code = item.code
  198. if (this.arr1obj[code] >= 0) {
  199. array1[this.arr1obj[code]] = item
  200. }
  201. if (this.arr2obj[code] >= 0) {
  202. array2[this.arr2obj[code]] = item
  203. }
  204. if (this.arr3obj[code] >= 0) {
  205. array3[this.arr3obj[code]] = item
  206. }
  207. if (this.arr4obj[code] >= 0) {
  208. array4[this.arr4obj[code]] = item
  209. }
  210. if (this.arr5obj[code] >= 0) {
  211. array5[this.arr5obj[code]] = item
  212. }
  213. if (this.arr6obj[code] >= 0) {
  214. array6[this.arr6obj[code]] = item
  215. }
  216. if (this.arr7obj[code] >= 0) {
  217. array7[this.arr7obj[code]] = item
  218. }
  219. if (this.arr8obj[code] >= 0) {
  220. array8[this.arr8obj[code]] = item
  221. }
  222. if (this.arr9obj[code] >= 0) {
  223. array9[this.arr9obj[code]] = item
  224. }
  225. if (this.arr10obj[code] >= 0) {
  226. array10[this.arr10obj[code]] = item
  227. }
  228. if (this.arr11obj[code] >= 0) {
  229. array11[this.arr11obj[code]] = item
  230. }
  231. if (this.arr12obj[code] >= 0) {
  232. array12[this.arr12obj[code]] = item
  233. }
  234. })
  235. this.arr1 = array1
  236. this.arr2 = array2
  237. this.arr3 = array3
  238. this.arr4 = array4
  239. this.arr5 = array5
  240. this.arr6 = array6
  241. this.arr7 = array7
  242. this.arr8 = array8
  243. this.arr9 = array9
  244. this.arr10 = array10
  245. this.arr11 = array11
  246. this.arr12 = array12
  247. })
  248. })
  249. },
  250. methods: {
  251. change(arr, txt) {
  252. const pAy = {}
  253. for (let i = 0; i < arr.length; i++) {
  254. pAy[arr[i].code] = arr[i].unit
  255. }
  256. this.$router.push({ name: 'history', query: { id: JSON.stringify(pAy), title: `${txt}历史监测` }})
  257. }
  258. }
  259. }
  260. </script>
  261. <style rel="stylesheet/scss" lang="scss" scoped>
  262. .airItem {
  263. border-radius: 2px;
  264. border: 2px solid #ccc;
  265. box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
  266. width: 1546px;
  267. margin-bottom: 10px;
  268. .pText {
  269. margin-left: 15px;
  270. }
  271. .imgBox {
  272. position: relative;
  273. .stateNormal {
  274. cursor: pointer;
  275. font-size: 14px;
  276. line-height: 17px;
  277. color: #515151;
  278. text-align: right;
  279. width: 75px;
  280. position: absolute;
  281. border-radius: 10px;
  282. box-sizing: border-box;
  283. padding: 6px 8px 6px 0;
  284. border: 2px solid transparent;
  285. box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  286. background-color: rgba(246, 250, 255, 0.8);
  287. &:nth-child(2) {
  288. top: 215px;
  289. left: 201px;
  290. }
  291. &:nth-child(3) {
  292. top: 130px;
  293. left: 484px;
  294. }
  295. &:nth-child(4) {
  296. top: 51px;
  297. left: 772px;
  298. }
  299. &:nth-child(5) {
  300. top: 51px;
  301. left: 1009px;
  302. }
  303. &:nth-child(6) {
  304. top: 132px;
  305. right: 290px;
  306. }
  307. &:nth-child(7) {
  308. top: 215px;
  309. right: 146px;
  310. }
  311. p {
  312. margin: 0;
  313. padding: 0;
  314. }
  315. }
  316. .state-info {
  317. cursor: pointer;
  318. font-size: 14px;
  319. line-height: 17px;
  320. color: #515151;
  321. text-align: right;
  322. width: 75px;
  323. position: absolute;
  324. border-radius: 10px;
  325. box-sizing: border-box;
  326. padding: 6px 8px 6px 0;
  327. border: 2px solid transparent;
  328. box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  329. background-color: rgba(246, 250, 255, 0.8);
  330. &:nth-child(2) {
  331. top: 215px;
  332. left: 147px;
  333. }
  334. &:nth-child(3) {
  335. top: 130px;
  336. left: 290px;
  337. }
  338. &:nth-child(4) {
  339. top: 51px;
  340. left: 458px;
  341. }
  342. &:nth-child(5) {
  343. top: 51px;
  344. left: 695px;
  345. }
  346. &:nth-child(6) {
  347. top: 132px;
  348. right: 483px;
  349. }
  350. &:nth-child(7) {
  351. top: 215px;
  352. right: 201px;
  353. }
  354. p {
  355. margin: 0;
  356. padding: 0;
  357. }
  358. }
  359. .titlText {
  360. position: absolute;
  361. top: 10px;
  362. left: 10px;
  363. p {
  364. color: #515151;
  365. span {
  366. display: inline-block;
  367. width: 15px;
  368. height: 15px;
  369. background-color: #00a0e9;
  370. border-radius: 50%;
  371. vertical-align: top;
  372. margin-right: 10px;
  373. }
  374. .gass {
  375. background-color: #c45995;
  376. }
  377. }
  378. }
  379. .pukou {
  380. position: absolute;
  381. top: 170px;
  382. height: 40px;
  383. width: 20px;
  384. left: 25px;
  385. }
  386. .jianye {
  387. position: absolute;
  388. top: 170px;
  389. height: 40px;
  390. width: 20px;
  391. right: 25px;
  392. }
  393. }
  394. }
  395. </style>