loopReport.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. <template>
  2. <div>
  3. <!-- 筛选start -->
  4. <div class="filter-container mb-20" style="justify-content: left; white-space: nowrap;">
  5. <div class="filter-item">
  6. <div class="title">选择站点:</div>
  7. <el-select v-model="store.state.siteId" placeholder="请选择" style="width: 220px" clearable filterable
  8. @change="linkDevice()" :disabled="store.state.authorities.indexOf('查询') == -1">
  9. <el-option v-for="site in store.state.siteList" :key="site" :label="site.siteName" :value="site.id"></el-option>
  10. </el-select>
  11. </div>
  12. <div class="filter-item">
  13. <div class="title">选择设备:</div>
  14. <el-select v-model="deviceCode" placeholder="请选择" style="width: 150px"
  15. :disabled="store.state.authorities.indexOf('查询') == -1">
  16. <el-option v-for="device in deviceList" :key="device" :label="device.deviceName"
  17. :value="device.deviceCode"></el-option>
  18. </el-select>
  19. </div>
  20. <div class="filter-item">
  21. <div class="title">日期:</div>
  22. <el-date-picker v-model="dateTime" placeholder="请选择" style="width: 150px; margin-left: 20px" :clearable="false"
  23. :editable="false" :disabled="store.state.authorities.indexOf('查询') == -1"></el-date-picker>
  24. </div>
  25. <el-button type="primary" class="search-button" @click="SingleLoopReportData()"
  26. :disabled="store.state.authorities.indexOf('查询') == -1">
  27. 搜索
  28. </el-button>
  29. <div class="filter-item prompt cursor-pointer" @click="openDescripDialog()">
  30. <img class="image" src="@/assets/images/descIcon.png" alt="" />
  31. <div class="title">指标说明</div>
  32. </div>
  33. </div>
  34. <!-- 筛选end -->
  35. <el-row :gutter="20">
  36. <el-col :md="24" :lg="14">
  37. <div class="grid-content bg-purple">
  38. <div class="blanceChartTit">
  39. <span>电压质量</span>
  40. <span class="subs">
  41. 标称电压:
  42. {{ getData.voltageLevel ? getData.voltageLevel : '-' }}V
  43. </span>
  44. </div>
  45. <el-row :gutter="20" style="padding: 20px">
  46. <el-col :md="24" :lg="8" v-loading="loading">
  47. <div class="grid-content bg-purple assCard" style="text-align: center">
  48. <div class="subTits">A相电压</div>
  49. <el-row :gutter="20" style="padding: 0 20px">
  50. <el-col :span="12">
  51. <div class="grid-content bg-purple assSmallbox">
  52. <div class="assNum">
  53. {{ getData.proportionUa ? getData.proportionUa : '-' }}
  54. </div>
  55. <div class="assTxt">超限数/测点数</div>
  56. </div>
  57. </el-col>
  58. <el-col :span="12">
  59. <div class="grid-content bg-purple assSmallbox">
  60. <div class="assNum greenRate">
  61. {{ getData.qrUa == null ? '-' : getData.qrUa }}%
  62. </div>
  63. <div class="assTxt">合格率</div>
  64. </div>
  65. </el-col>
  66. </el-row>
  67. <el-button class="banlanceBtn" round
  68. :type="getData.uaStatus == true ? 'primary' : getData.uaStatus == false ? 'danger' : 'warning'">
  69. {{ getData.uaStatus == true ? '合格' : getData.uaStatus == false ? '不合格' : '暂无结论' }}
  70. </el-button>
  71. <ul>
  72. <li>
  73. <div>最大值:{{ getData.maxUa ? getData.maxUa : '-' }}</div>
  74. <span :class="getData.maxUaStatus ? '' : 'overLimit'">
  75. {{
  76. getData.maxUaStatus == true
  77. ? '未超限'
  78. : getData.maxUaStatus == false
  79. ? '超限'
  80. : '-'
  81. }}
  82. </span>
  83. </li>
  84. <li>
  85. <div>最小值:{{ getData.minUa ? getData.minUa : '-' }}</div>
  86. <span :class="getData.minUaStatus ? '' : 'overLimit'">
  87. {{
  88. getData.minUaStatus == true
  89. ? '未超限'
  90. : getData.minUaStatus == false
  91. ? '超限'
  92. : '-'
  93. }}
  94. </span>
  95. </li>
  96. <li>
  97. <div>平均值:{{ getData.avgUa ? getData.avgUa : '-' }}</div>
  98. <span :class="getData.avgUaStatus ? '' : 'overLimit'">
  99. {{
  100. getData.avgUaStatus == true
  101. ? '未超限'
  102. : getData.avgUaStatus == false
  103. ? '超限'
  104. : '-'
  105. }}
  106. </span>
  107. </li>
  108. </ul>
  109. </div>
  110. </el-col>
  111. <el-col :md="24" :lg="8" v-loading="loading">
  112. <div class="grid-content bg-purple assCard" style="text-align: center">
  113. <div class="subTits">B相电压</div>
  114. <el-row :gutter="20" style="padding: 0 20px">
  115. <el-col :span="12">
  116. <div class="grid-content bg-purple assSmallbox">
  117. <div class="assNum">
  118. {{ getData.proportionUb ? getData.proportionUb : '-' }}
  119. </div>
  120. <div class="assTxt">超限数/测点数</div>
  121. </div>
  122. </el-col>
  123. <el-col :span="12">
  124. <div class="grid-content bg-purple assSmallbox">
  125. <div class="assNum greenRate">
  126. {{ getData.qrUb == null ? '-' : getData.qrUb }}%
  127. </div>
  128. <div class="assTxt">合格率</div>
  129. </div>
  130. </el-col>
  131. </el-row>
  132. <el-button class="banlanceBtn" round :type="getData.ubStatus == true
  133. ? 'primary'
  134. : getData.ubStatus == false
  135. ? 'danger'
  136. : 'warning'
  137. ">
  138. {{
  139. getData.ubStatus == true
  140. ? '合格'
  141. : getData.ubStatus == false
  142. ? '不合格'
  143. : '暂无结论'
  144. }}
  145. </el-button>
  146. <ul>
  147. <li>
  148. <div>最大值:{{ getData.maxUb ? getData.maxUb : '-' }}</div>
  149. <span :class="getData.maxUbStatus ? '' : 'overLimit'">
  150. {{
  151. getData.maxUbStatus == true
  152. ? '未超限'
  153. : getData.maxUbStatus == false
  154. ? '超限'
  155. : '-'
  156. }}
  157. </span>
  158. </li>
  159. <li>
  160. <div>最小值:{{ getData.minUb ? getData.minUb : '-' }}</div>
  161. <span :class="getData.minUbStatus ? '' : 'overLimit'">
  162. {{
  163. getData.minUbStatus == true
  164. ? '未超限'
  165. : getData.minUbStatus == false
  166. ? '超限'
  167. : '-'
  168. }}
  169. </span>
  170. </li>
  171. <li>
  172. <div>平均值:{{ getData.avgUb ? getData.avgUb : '-' }}</div>
  173. <span :class="getData.avgUbStatus ? '' : 'overLimit'">
  174. {{
  175. getData.avgUbStatus == true
  176. ? '未超限'
  177. : getData.avgUbStatus == false
  178. ? '超限'
  179. : '-'
  180. }}
  181. </span>
  182. </li>
  183. </ul>
  184. </div>
  185. </el-col>
  186. <el-col :md="24" :lg="8" v-loading="loading">
  187. <div class="grid-content bg-purple assCard" style="text-align: center">
  188. <div class="subTits">C相电压</div>
  189. <el-row :gutter="20" style="padding: 0 20px">
  190. <el-col :span="12">
  191. <div class="grid-content bg-purple assSmallbox">
  192. <div class="assNum">
  193. {{ getData.proportionUc ? getData.proportionUc : '-' }}
  194. </div>
  195. <div class="assTxt">超限数/测点数</div>
  196. </div>
  197. </el-col>
  198. <el-col :span="12">
  199. <div class="grid-content bg-purple assSmallbox">
  200. <div class="assNum greenRate">
  201. {{ getData.qrUc == null ? '-' : getData.qrUc }}%
  202. </div>
  203. <div class="assTxt">合格率</div>
  204. </div>
  205. </el-col>
  206. </el-row>
  207. <el-button class="banlanceBtn" round :type="getData.ucStatus == true
  208. ? 'primary'
  209. : getData.ucStatus == false
  210. ? 'danger'
  211. : 'warning'
  212. ">
  213. {{
  214. getData.ucStatus == true
  215. ? '合格'
  216. : getData.ucStatus == false
  217. ? '不合格'
  218. : '暂无结论'
  219. }}
  220. </el-button>
  221. <ul>
  222. <li>
  223. <div>最大值:{{ getData.maxUc ? getData.maxUc : '-' }}</div>
  224. <span :class="getData.maxUcStatus ? '' : 'overLimit'">
  225. {{
  226. getData.maxUcStatus == true
  227. ? '未超限'
  228. : getData.maxUcStatus == false
  229. ? '超限'
  230. : '-'
  231. }}
  232. </span>
  233. </li>
  234. <li>
  235. <div>最小值:{{ getData.minUc ? getData.minUc : '-' }}</div>
  236. <span :class="getData.minUcStatus ? '' : 'overLimit'">
  237. {{
  238. getData.minUcStatus == true
  239. ? '未超限'
  240. : getData.minUcStatus == false
  241. ? '超限'
  242. : '-'
  243. }}
  244. </span>
  245. </li>
  246. <li>
  247. <div>平均值:{{ getData.avgUc ? getData.avgUc : '-' }}</div>
  248. <span :class="getData.avgUcStatus ? '' : 'overLimit'">
  249. {{
  250. getData.avgUcStatus == true
  251. ? '未超限'
  252. : getData.avgUcStatus == false
  253. ? '超限'
  254. : '-'
  255. }}
  256. </span>
  257. </li>
  258. </ul>
  259. </div>
  260. </el-col>
  261. </el-row>
  262. </div>
  263. </el-col>
  264. <el-col :md="12" :lg="5" v-loading="loading">
  265. <div class="grid-content bg-purple">
  266. <div class="blanceChartTit">
  267. <span>频率质量</span>
  268. <span class="subs">
  269. 标称频率:{{ getData.mhz ? getData.mhz : 0 }}Hz
  270. </span>
  271. </div>
  272. <el-row :gutter="20" style="padding: 20px">
  273. <el-col :span="24">
  274. <div class="grid-content bg-purple assCard" style="text-align: center">
  275. <div class="subTits">频率</div>
  276. <el-row :gutter="20" style="padding: 0 20px">
  277. <el-col :span="12">
  278. <div class="grid-content bg-purple assSmallbox">
  279. <div class="assNum">
  280. {{ getData.proportionF ? getData.proportionF : '-' }}
  281. </div>
  282. <div class="assTxt">超限数/测点数</div>
  283. </div>
  284. </el-col>
  285. <el-col :span="12">
  286. <div class="grid-content bg-purple assSmallbox">
  287. <div class="assNum greenRate">
  288. <!-- {{ getData.qrF ? getData.qrF : '-' }}% -->
  289. {{ getData.qrF == null ? '-' : getData.qrF }}%
  290. </div>
  291. <div class="assTxt">合格率</div>
  292. </div>
  293. </el-col>
  294. </el-row>
  295. <el-button class="banlanceBtn" round :type="getData.fstatus == true
  296. ? 'primary'
  297. : getData.fstatus == false
  298. ? 'danger'
  299. : 'warning'
  300. ">
  301. {{
  302. getData.fstatus == true
  303. ? '合格'
  304. : getData.fstatus == false
  305. ? '不合格'
  306. : '暂无结论'
  307. }}
  308. </el-button>
  309. <ul>
  310. <li>
  311. <div>最大值:{{ getData.maxF ? getData.maxF : '-' }}</div>
  312. <span :class="getData.maxFStatus ? '' : 'overLimit'">
  313. {{
  314. getData.maxFStatus == true
  315. ? '未超限'
  316. : getData.maxFStatus == false
  317. ? '超限'
  318. : '-'
  319. }}
  320. </span>
  321. </li>
  322. <li>
  323. <div>最小值:{{ getData.minF ? getData.minF : '-' }}</div>
  324. <span :class="getData.minFStatus ? '' : 'overLimit'">
  325. {{
  326. getData.minFStatus == true
  327. ? '未超限'
  328. : getData.minFStatus == false
  329. ? '超限'
  330. : '-'
  331. }}
  332. </span>
  333. </li>
  334. <li>
  335. <div>平均值:{{ getData.avgF ? getData.avgF : '-' }}</div>
  336. <span :class="getData.avgFStatus ? '' : 'overLimit'">
  337. {{
  338. getData.avgFStatus == true
  339. ? '未超限'
  340. : getData.avgFStatus == false
  341. ? '超限'
  342. : '-'
  343. }}
  344. </span>
  345. </li>
  346. </ul>
  347. </div>
  348. </el-col>
  349. </el-row>
  350. </div>
  351. </el-col>
  352. <el-col :md="12" :lg="5" v-loading="loading">
  353. <div class="grid-content bg-purple">
  354. <div class="blanceChartTit">功率因数分析</div>
  355. <el-row :gutter="20" style="padding: 20px">
  356. <el-col :span="24">
  357. <div class="grid-content bg-purple assCard" style="text-align: center">
  358. <div class="subTits">功率因数</div>
  359. <el-row :gutter="20" style="padding: 0 20px">
  360. <el-col :span="24" style="margin-bottom: 20px">
  361. <div class="grid-content bg-purple assSmallbox">
  362. <div class="assNum">
  363. {{ getData.appraise != null ? getData.appraise : '-' }}
  364. </div>
  365. <div class="assTxt">考核限值</div>
  366. </div>
  367. </el-col>
  368. <el-col :span="24" style="margin-bottom: 20px">
  369. <div class="grid-content bg-purple assSmallbox">
  370. <div class="assNum greenRate">
  371. {{ getData.cos != null ? getData.cos : '-' }}
  372. </div>
  373. <div class="assTxt">数值</div>
  374. </div>
  375. </el-col>
  376. </el-row>
  377. <el-button class="banlanceBtn" round :type="getData.cosStatus == true
  378. ? 'primary'
  379. : getData.cosStatus == false
  380. ? 'danger'
  381. : 'warning'
  382. ">
  383. {{
  384. getData.cosStatus == true
  385. ? '合格'
  386. : getData.cosStatus == false
  387. ? '不合格'
  388. : '暂无结论'
  389. }}
  390. </el-button>
  391. </div>
  392. </el-col>
  393. </el-row>
  394. </div>
  395. </el-col>
  396. </el-row>
  397. <el-row :gutter="20" class="mt-20">
  398. <el-col :md="24" :lg="14" v-loading="loading">
  399. <div class="grid-content bg-purple">
  400. <div class="blanceChartTit">
  401. <span>谐波畸变率</span>
  402. <span class="subs">数值标准</span>
  403. </div>
  404. <el-row :gutter="20" style="padding: 20px">
  405. <el-col :md="24" :lg="8">
  406. <div class="grid-content bg-purple assCard" style="text-align: center">
  407. <div class="subTits">A相电流谐波畸变率</div>
  408. <img class="noDataImg" src="@/assets/images/noDataImg.png" alt="" />
  409. </div>
  410. </el-col>
  411. <el-col :md="24" :lg="8">
  412. <div class="grid-content bg-purple assCard" style="text-align: center">
  413. <div class="subTits">B相电流谐波畸变率</div>
  414. <img class="noDataImg" src="@/assets/images/noDataImg.png" alt="" />
  415. </div>
  416. </el-col>
  417. <el-col :md="24" :lg="8">
  418. <div class="grid-content bg-purple assCard" style="text-align: center">
  419. <div class="subTits">C相电流谐波畸变率</div>
  420. <img class="noDataImg" src="@/assets/images/noDataImg.png" alt="" />
  421. </div>
  422. </el-col>
  423. </el-row>
  424. </div>
  425. </el-col>
  426. <el-col :md="24" :lg="10">
  427. <div class="grid-content bg-purple">
  428. <div class="blanceChartTit">
  429. <span>不平衡度</span>
  430. <span class="subs">数值标准</span>
  431. </div>
  432. <el-row :gutter="20" style="padding: 20px">
  433. <el-col :span="12">
  434. <div class="grid-content bg-purple assCard" style="text-align: center">
  435. <div class="subTits">电流不平衡度</div>
  436. <el-row :gutter="20" style="padding: 0 20px" v-loading="loading">
  437. <el-col :span="12">
  438. <div class="grid-content bg-purple assSmallbox">
  439. <div class="assNum">
  440. {{
  441. getData.proportionElBalun
  442. ? getData.proportionElBalun
  443. : '-'
  444. }}
  445. </div>
  446. <div class="assTxt">超限数/测点数</div>
  447. </div>
  448. </el-col>
  449. <el-col :span="12">
  450. <div class="grid-content bg-purple assSmallbox">
  451. <div class="assNum greenRate">
  452. {{ getData.qrElBalun == null ? '-' : getData.qrElBalun }}%
  453. </div>
  454. <div class="assTxt">合格率</div>
  455. </div>
  456. </el-col>
  457. </el-row>
  458. <el-button class="banlanceBtn" round :type="getData.elBalunStatus == true
  459. ? 'primary'
  460. : getData.elBalunStatus == false
  461. ? 'danger'
  462. : 'warning'
  463. ">
  464. {{
  465. getData.elBalunStatus == true
  466. ? '合格'
  467. : getData.elBalunStatus == false
  468. ? '不合格'
  469. : '暂无结论'
  470. }}
  471. </el-button>
  472. <ul>
  473. <li>
  474. <div>
  475. 最大值:{{
  476. getData.maxElBalun != null ? getData.maxElBalun : '-'
  477. }}
  478. </div>
  479. <span :class="getData.maxElBalunStatus ? '' : 'overLimit'">
  480. {{
  481. getData.maxElBalunStatus == true
  482. ? '未超限'
  483. : getData.maxElBalunStatus == false
  484. ? '超限'
  485. : '-'
  486. }}
  487. </span>
  488. </li>
  489. <li>
  490. <div>
  491. 最小值:{{
  492. getData.minElBalun != null ? getData.minElBalun : '-'
  493. }}
  494. </div>
  495. <span :class="getData.minElBalunStatus ? '' : 'overLimit'">
  496. {{
  497. getData.minElBalunStatus == true
  498. ? '未超限'
  499. : getData.minElBalunStatus == false
  500. ? '超限'
  501. : '-'
  502. }}
  503. </span>
  504. </li>
  505. <li>
  506. <div>
  507. 平均值:{{
  508. getData.avgElBalun != null ? getData.avgElBalun : '-'
  509. }}
  510. </div>
  511. <span :class="getData.avgElBalunStatus ? '' : 'overLimit'">
  512. {{
  513. getData.avgElBalunStatus == true
  514. ? '未超限'
  515. : getData.avgElBalunStatus == false
  516. ? '超限'
  517. : '-'
  518. }}
  519. </span>
  520. </li>
  521. </ul>
  522. </div>
  523. </el-col>
  524. <el-col :span="12">
  525. <div class="grid-content bg-purple assCard" style="text-align: center">
  526. <div class="subTits">电压不平衡度</div>
  527. <el-row :gutter="20" style="padding: 0 20px" v-loading="loading">
  528. <el-col :span="12">
  529. <div class="grid-content bg-purple assSmallbox">
  530. <div class="assNum">
  531. {{
  532. getData.proportionVtBalun
  533. ? getData.proportionVtBalun
  534. : '-'
  535. }}
  536. </div>
  537. <div class="assTxt">超限数/测点数</div>
  538. </div>
  539. </el-col>
  540. <el-col :span="12">
  541. <div class="grid-content bg-purple assSmallbox">
  542. <div class="assNum greenRate">
  543. {{ getData.qrVtBalun == null ? '-' : getData.qrVtBalun }}%
  544. </div>
  545. <div class="assTxt">合格率</div>
  546. </div>
  547. </el-col>
  548. </el-row>
  549. <el-button class="banlanceBtn" round :type="getData.vtBalunStatus == true
  550. ? 'primary'
  551. : getData.vtBalunStatus == false
  552. ? 'danger'
  553. : 'warning'
  554. ">
  555. {{
  556. getData.vtBalunStatus == true
  557. ? '合格'
  558. : getData.vtBalunStatus == false
  559. ? '不合格'
  560. : '暂无结论'
  561. }}
  562. </el-button>
  563. <ul>
  564. <li>
  565. <div>
  566. 最大值:{{
  567. getData.maxVtBalun != null ? getData.maxVtBalun : '-'
  568. }}
  569. </div>
  570. <span :class="getData.maxVtBalunStatus ? '' : 'overLimit'">
  571. {{
  572. getData.maxVtBalunStatus == true
  573. ? '未超限'
  574. : getData.maxVtBalunStatus == false
  575. ? '超限'
  576. : '-'
  577. }}
  578. </span>
  579. </li>
  580. <li>
  581. <div>
  582. 最小值:{{
  583. getData.minVtBalun != null ? getData.minVtBalun : '-'
  584. }}
  585. </div>
  586. <span :class="getData.minVtBalunStatus ? '' : 'overLimit'">
  587. {{
  588. getData.minVtBalunStatus == true
  589. ? '未超限'
  590. : getData.minVtBalunStatus == false
  591. ? '超限'
  592. : '-'
  593. }}
  594. </span>
  595. </li>
  596. <li>
  597. <div>
  598. 平均值:{{
  599. getData.avgVtBalun != null ? getData.avgVtBalun : '-'
  600. }}
  601. </div>
  602. <span :class="getData.avgVtBalunStatus ? '' : 'overLimit'">
  603. {{
  604. getData.avgVtBalunStatus == true
  605. ? '未超限'
  606. : getData.avgVtBalunStatus == false
  607. ? '超限'
  608. : '-'
  609. }}
  610. </span>
  611. </li>
  612. </ul>
  613. </div>
  614. </el-col>
  615. </el-row>
  616. </div>
  617. </el-col>
  618. </el-row>
  619. <!--指标说明弹框组件开始-----------------------start-->
  620. <descrip-dialog ref="descripDialogRef"></descrip-dialog>
  621. <!--指标说明弹框组件结束-----------------------end-->
  622. </div>
  623. </template>
  624. <script setup>
  625. /*----------------------------------依赖引入-----------------------------------*/
  626. import { useStore } from 'vuex'
  627. import { ElMessage, ElNotification } from 'element-plus'
  628. import { ref, onMounted, watch, getCurrentInstance, reactive, toRefs, } from 'vue'
  629. /*----------------------------------接口引入-----------------------------------*/
  630. import * as api from '@/api/powerQuality/loopReport.js'
  631. /*----------------------------------组件引入-----------------------------------*/
  632. import descripDialog from './component/descripDialog.vue'
  633. /*----------------------------------store引入-----------------------------------*/
  634. /*----------------------------------公共方法引入-----------------------------------*/
  635. /*----------------------------------公共变量-----------------------------------*/
  636. const store = useStore()
  637. const props = defineProps({
  638. activeName: String,
  639. }) //数据双向绑定
  640. const emit = defineEmits([])
  641. const { proxy } = getCurrentInstance()
  642. /*----------------------------------变量声明-----------------------------------*/
  643. const loading = ref(false)
  644. const getData = ref({})
  645. const deviceList = ref([])
  646. const deviceCode = ref('')
  647. const dateTime = ref(new Date())
  648. function linkDevice() {
  649. deviceSelect()
  650. }
  651. //设备下拉请求
  652. function deviceSelect() {
  653. api.deviceListOne({ siteId: store.state.siteId }).then((requset) => {
  654. if (requset.status === 'SUCCESS') {
  655. deviceList.value = requset.data
  656. deviceCode.value = requset.data[0] ? requset.data[0].deviceCode : ''
  657. } else {
  658. ElMessage.error(requset.msg)
  659. }
  660. })
  661. }
  662. //单回路主页面请求
  663. function SingleLoopReportData() {
  664. loading.value = true
  665. store.commit('getNowFormatDate', dateTime.value)
  666. api
  667. .SingleLoopReportData({
  668. deviceCode: deviceCode.value,
  669. time: store.state.dateList,
  670. type: 1,
  671. })
  672. .then((requset) => {
  673. loading.value = false
  674. if (requset.status === 'SUCCESS') {
  675. if (requset.data == null) {
  676. ElMessage.warning('暂无数据')
  677. } else {
  678. getData.value = requset.data
  679. }
  680. } else {
  681. ElMessage.error(requset.msg)
  682. }
  683. })
  684. }
  685. // 查看指标说明
  686. function openDescripDialog() {
  687. proxy.$refs['descripDialogRef'].openDialog({
  688. dialogTitle: '指标说明'
  689. })
  690. }
  691. watch(
  692. () => props.activeName,
  693. (newVal) => {
  694. if (newVal == 'second') {
  695. // getData.value={}
  696. deviceSelect()
  697. setTimeout(function () {
  698. SingleLoopReportData()
  699. }, 1000)
  700. }
  701. }
  702. )
  703. onMounted(() => {
  704. deviceSelect()
  705. })
  706. </script>
  707. <style scoped lang="scss">
  708. .el-row {
  709. margin-bottom: 20px;
  710. &:last-child {
  711. margin-bottom: 0;
  712. }
  713. }
  714. .el-col {
  715. border-radius: 4px;
  716. }
  717. .banlanceBtn {
  718. max-width: 80%;
  719. // margin: 0 auto 20px;
  720. height: 40px;
  721. // line-height: 40px;
  722. width: 236px;
  723. font-size: 16px !important;
  724. // background: #6dc6ff;
  725. // color: #fff
  726. }
  727. </style>