loopReport.vue 32 KB

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