PropertBenchmark_particulars.vue 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114
  1. <template>
  2. <div class="box">
  3. <div class="searchBar">
  4. <el-form :inline="true" :model="formInline" class="demo-form-inline" style="margin-left:1%">
  5. <el-row :gutter="1">
  6. <!-- <el-form-item label="风场一">
  7. <el-select v-model="value" multiple placeholder="请选择">
  8. <el-option
  9. v-for="item in options"
  10. :key="item.name"
  11. :label="item.name"
  12. :value="item.id">
  13. </el-option>
  14. </el-select>
  15. </el-form-item> -->
  16. <el-form-item label="风场一">
  17. <el-select
  18. v-model="fc"
  19. clearable
  20. placeholder="请选择"
  21. @change="query_xml()"
  22. >
  23. <el-option
  24. v-for="item in wpIdslist"
  25. :key="item.id"
  26. :label="item.name"
  27. :value="item.id"
  28. >
  29. </el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="风机一">
  33. <el-select v-model="pj" multiple clearable placeholder="请选择">
  34. <el-option
  35. v-for="item in projectlist"
  36. :key="item.id"
  37. :label="item.name"
  38. :value="item.id"
  39. >
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. <!-- <el-form-item label="风场二">
  44. <el-select v-model="value2" multiple placeholder="请选择">
  45. <el-option
  46. v-for="item in options"
  47. :key="item.name"
  48. :label="item.name"
  49. :value="item.id">
  50. </el-option>
  51. </el-select>
  52. </el-form-item> -->
  53. <el-form-item label="风场二">
  54. <el-select
  55. v-model="fc2"
  56. clearable
  57. placeholder="请选择"
  58. @change="query_xml2()"
  59. >
  60. <el-option
  61. v-for="item in wpIdslist"
  62. :key="item.id"
  63. :label="item.name"
  64. :value="item.id"
  65. >
  66. </el-option>
  67. </el-select>
  68. </el-form-item>
  69. <el-form-item label="风机二">
  70. <el-select v-model="pj2" multiple clearable placeholder="请选择">
  71. <el-option
  72. v-for="item in projectlist2"
  73. :key="item.id"
  74. :label="item.name"
  75. :value="item.id"
  76. >
  77. </el-option>
  78. </el-select>
  79. </el-form-item>
  80. <el-form-item label="选择时间:">
  81. <el-date-picker
  82. v-model="timedate"
  83. value-format="yyyy-MM-dd"
  84. type="daterange"
  85. range-separator="至"
  86. start-placeholder="开始日期"
  87. end-placeholder="结束日期"
  88. >
  89. </el-date-picker>
  90. </el-form-item>
  91. <el-form-item>
  92. <el-button type="primary" @click="queryApData" :plain="true"
  93. >查询</el-button
  94. >
  95. </el-form-item>
  96. <el-form-item>
  97. <el-button type="primary" @click="querycheck"
  98. >对标分析</el-button
  99. >
  100. </el-form-item>
  101. <el-form-item>
  102. <el-button type="primary" @click="goReturn">返回</el-button>
  103. </el-form-item>
  104. </el-row>
  105. </el-form>
  106. <el-card>
  107. <el-table
  108. v-loading="loading"
  109. :data="fdcLineData"
  110. :row-style="{ height: '10px' }"
  111. :cell-style="{ textAlign: 'center'}"
  112. :header-cell-style="headStyle"
  113. @selection-change="handleSelectionChange"
  114. @sort-change="changeTableSort"
  115. style="widht: 100%"
  116. max-height="399px"
  117. >
  118. <el-table-column label="场际对标列表一">
  119. <el-table-column fixed type="index" width="45"> </el-table-column>
  120. <el-table-column type="selection" width="45"> </el-table-column>
  121. <el-table-column prop="wtName" label="风机名称" width="110">
  122. </el-table-column>
  123. <el-table-column
  124. :sortable="'custom'"
  125. prop="ordernum"
  126. label="排名"
  127. width="80"
  128. >
  129. </el-table-column>
  130. <el-table-column
  131. :sortable="'custom'"
  132. prop="scadafdlnum"
  133. label="发电量排名"
  134. width="130"
  135. >
  136. </el-table-column>
  137. <el-table-column
  138. :sortable="'custom'"
  139. prop="scadafdl"
  140. :formatter="filter_fdl"
  141. label="发电量"
  142. width="120"
  143. >
  144. </el-table-column>
  145. <el-table-column
  146. :sortable="'custom'"
  147. prop="gzssnum"
  148. label="故障排名"
  149. width="110"
  150. >
  151. </el-table-column>
  152. <el-table-column
  153. :sortable="'custom'"
  154. prop="gzss"
  155. label="故障损失"
  156. width="110"
  157. >
  158. <template slot-scope="scope">
  159. <span>{{ scope.row.gzss | rounding }}</span>
  160. </template>
  161. </el-table-column>
  162. <el-table-column
  163. :sortable="'custom'"
  164. prop="whssnum"
  165. label="检修排名"
  166. width="110"
  167. >
  168. </el-table-column>
  169. <el-table-column
  170. :sortable="'custom'"
  171. prop="whss"
  172. label="检修损失"
  173. width="110"
  174. >
  175. <template slot-scope="scope">
  176. <span>{{ scope.row.whss | rounding }}</span>
  177. </template>
  178. </el-table-column>
  179. <el-table-column
  180. :sortable="'custom'"
  181. prop="qfssnum"
  182. label="性能排名"
  183. width="110"
  184. >
  185. </el-table-column>
  186. <el-table-column
  187. :sortable="'custom'"
  188. prop="qfss"
  189. label="性能损失"
  190. width="110"
  191. >
  192. <template slot-scope="scope">
  193. <span>{{ scope.row.qfss | rounding }}</span>
  194. </template>
  195. </el-table-column>
  196. <el-table-column
  197. :sortable="'custom'"
  198. prop="xdssnum"
  199. label="限电排名"
  200. width="110"
  201. >
  202. </el-table-column>
  203. <el-table-column
  204. :sortable="'custom'"
  205. prop="xdss"
  206. label="限电损失"
  207. width="110"
  208. >
  209. <template slot-scope="scope">
  210. <span>{{ scope.row.xdss | rounding }}</span>
  211. </template>
  212. </el-table-column>
  213. <el-table-column
  214. :sortable="'custom'"
  215. prop="slssnum"
  216. label="受累排名"
  217. width="110"
  218. >
  219. </el-table-column>
  220. <el-table-column
  221. :sortable="'custom'"
  222. prop="slss"
  223. label="受累损失"
  224. width="110"
  225. >
  226. </el-table-column>
  227. <el-table-column
  228. :sortable="'custom'"
  229. prop="fnlyl"
  230. label="风能利用率"
  231. width="130"
  232. >
  233. </el-table-column>
  234. <el-table-column
  235. :sortable="'custom'"
  236. prop="gzsslnum"
  237. label="故障损失率排名"
  238. width="150"
  239. >
  240. </el-table-column>
  241. <el-table-column
  242. :sortable="'custom'"
  243. prop="gzssl"
  244. label="故障损失率"
  245. width="130"
  246. >
  247. </el-table-column>
  248. <el-table-column
  249. :sortable="'custom'"
  250. prop="jxsslnum"
  251. label="检修损失率排名"
  252. width="150"
  253. >
  254. </el-table-column>
  255. <el-table-column
  256. :sortable="'custom'"
  257. prop="jxssl"
  258. label="检修损失率"
  259. width="130"
  260. >
  261. </el-table-column>
  262. <el-table-column
  263. :sortable="'custom'"
  264. prop="qflnum"
  265. label="弃风率排名"
  266. width="130"
  267. >
  268. </el-table-column>
  269. <el-table-column
  270. :sortable="'custom'"
  271. prop="qfl"
  272. label="弃风率"
  273. width="110"
  274. >
  275. </el-table-column>
  276. <el-table-column
  277. :sortable="'custom'"
  278. prop="xnsslnum"
  279. label="性能损失率排名"
  280. width="150"
  281. >
  282. </el-table-column>
  283. <el-table-column
  284. :sortable="'custom'"
  285. prop="xnssl"
  286. label="性能损失率"
  287. width="130"
  288. >
  289. </el-table-column>
  290. <el-table-column
  291. :sortable="'custom'"
  292. prop="slsslnum"
  293. label="受累损失率排名"
  294. width="150"
  295. >
  296. </el-table-column>
  297. <el-table-column
  298. :sortable="'custom'"
  299. prop="slssl"
  300. label="受累损失率"
  301. width="130"
  302. >
  303. </el-table-column>
  304. <el-table-column
  305. :sortable="'custom'"
  306. prop="fwjsl"
  307. label="复位及时率"
  308. width="130"
  309. >
  310. </el-table-column>
  311. <el-table-column
  312. :sortable="'custom'"
  313. prop="xqjsl"
  314. label="消缺及时率"
  315. width="130"
  316. >
  317. </el-table-column>
  318. <el-table-column
  319. :sortable="'custom'"
  320. prop="ztzhjsl"
  321. label="状态转换率"
  322. width="130"
  323. >
  324. </el-table-column>
  325. </el-table-column>
  326. </el-table>
  327. </el-card>
  328. <el-card>
  329. <el-table
  330. v-loading="loading2"
  331. :data="fdcLineData2"
  332. :row-style="{ height: '10px' }"
  333. :cell-style="{ textAlign: 'center'}"
  334. :header-cell-style="headStyle"
  335. @selection-change="handleSelectionChange2"
  336. @sort-change="changeTableSort"
  337. style="widht: 100%"
  338. max-height="399px"
  339. v-if="tb2"
  340. >
  341. <el-table-column label="场际对标列表二">
  342. <el-table-column fixed type="index" width="45"> </el-table-column>
  343. <el-table-column type="selection" width="45"> </el-table-column>
  344. <el-table-column prop="wtName" label="风机名称" width="110">
  345. </el-table-column>
  346. <el-table-column
  347. :sortable="'custom'"
  348. prop="ordernum"
  349. label="排名"
  350. width="80"
  351. >
  352. </el-table-column>
  353. <el-table-column
  354. :sortable="'custom'"
  355. prop="scadafdlnum"
  356. label="发电量排名"
  357. width="130"
  358. >
  359. </el-table-column>
  360. <el-table-column
  361. :sortable="'custom'"
  362. prop="scadafdl"
  363. :formatter="filter_fdl"
  364. label="发电量"
  365. width="120"
  366. >
  367. </el-table-column>
  368. <el-table-column
  369. :sortable="'custom'"
  370. prop="gzssnum"
  371. label="故障排名"
  372. width="110"
  373. >
  374. </el-table-column>
  375. <el-table-column
  376. :sortable="'custom'"
  377. prop="gzss"
  378. label="故障损失"
  379. width="110"
  380. >
  381. <template slot-scope="scope">
  382. <span>{{ scope.row.gzss | rounding }}</span>
  383. </template>
  384. </el-table-column>
  385. <el-table-column
  386. :sortable="'custom'"
  387. prop="whssnum"
  388. label="检修排名"
  389. width="110"
  390. >
  391. </el-table-column>
  392. <el-table-column
  393. :sortable="'custom'"
  394. prop="whss"
  395. label="检修损失"
  396. width="110"
  397. >
  398. <template slot-scope="scope">
  399. <span>{{ scope.row.whss | rounding }}</span>
  400. </template>
  401. </el-table-column>
  402. <el-table-column
  403. :sortable="'custom'"
  404. prop="qfssnum"
  405. label="性能排名"
  406. width="110"
  407. >
  408. </el-table-column>
  409. <el-table-column
  410. :sortable="'custom'"
  411. prop="qfss"
  412. label="性能损失"
  413. width="110"
  414. >
  415. <template slot-scope="scope">
  416. <span>{{ scope.row.qfss | rounding }}</span>
  417. </template>
  418. </el-table-column>
  419. <el-table-column
  420. :sortable="'custom'"
  421. prop="xdssnum"
  422. label="限电排名"
  423. width="110"
  424. >
  425. </el-table-column>
  426. <el-table-column
  427. :sortable="'custom'"
  428. prop="xdss"
  429. label="限电损失"
  430. width="110"
  431. >
  432. <template slot-scope="scope">
  433. <span>{{ scope.row.xdss | rounding }}</span>
  434. </template>
  435. </el-table-column>
  436. <el-table-column
  437. :sortable="'custom'"
  438. prop="slssnum"
  439. label="受累排名"
  440. width="110"
  441. >
  442. </el-table-column>
  443. <el-table-column
  444. :sortable="'custom'"
  445. prop="slss"
  446. label="受累损失"
  447. width="110"
  448. >
  449. </el-table-column>
  450. <el-table-column
  451. :sortable="'custom'"
  452. prop="fnlyl"
  453. label="风能利用率"
  454. width="130"
  455. >
  456. </el-table-column>
  457. <el-table-column
  458. :sortable="'custom'"
  459. prop="gzsslnum"
  460. label="故障损失率排名"
  461. width="150"
  462. >
  463. </el-table-column>
  464. <el-table-column
  465. :sortable="'custom'"
  466. prop="gzssl"
  467. label="故障损失率"
  468. width="130"
  469. >
  470. </el-table-column>
  471. <el-table-column
  472. :sortable="'custom'"
  473. prop="jxsslnum"
  474. label="检修损失率排名"
  475. width="150"
  476. >
  477. </el-table-column>
  478. <el-table-column
  479. :sortable="'custom'"
  480. prop="jxssl"
  481. label="检修损失率"
  482. width="130"
  483. >
  484. </el-table-column>
  485. <el-table-column
  486. :sortable="'custom'"
  487. prop="qflnum"
  488. label="弃风率排名"
  489. width="130"
  490. >
  491. </el-table-column>
  492. <el-table-column
  493. :sortable="'custom'"
  494. prop="qfl"
  495. label="弃风率"
  496. width="110"
  497. >
  498. </el-table-column>
  499. <el-table-column
  500. :sortable="'custom'"
  501. prop="xnsslnum"
  502. label="性能损失率排名"
  503. width="150"
  504. >
  505. </el-table-column>
  506. <el-table-column
  507. :sortable="'custom'"
  508. prop="xnssl"
  509. label="性能损失率"
  510. width="130"
  511. >
  512. </el-table-column>
  513. <el-table-column
  514. :sortable="'custom'"
  515. prop="slsslnum"
  516. label="受累损失率排名"
  517. width="150"
  518. >
  519. </el-table-column>
  520. <el-table-column
  521. :sortable="'custom'"
  522. prop="slssl"
  523. label="受累损失率"
  524. width="130"
  525. >
  526. </el-table-column>
  527. <el-table-column
  528. :sortable="'custom'"
  529. prop="fwjsl"
  530. label="复位及时率"
  531. width="130"
  532. >
  533. </el-table-column>
  534. <el-table-column
  535. :sortable="'custom'"
  536. prop="xqjsl"
  537. label="消缺及时率"
  538. width="130"
  539. >
  540. </el-table-column>
  541. <el-table-column
  542. :sortable="'custom'"
  543. prop="ztzhjsl"
  544. label="状态转换率"
  545. width="130"
  546. >
  547. </el-table-column>
  548. </el-table-column>
  549. </el-table>
  550. </el-card>
  551. <el-dialog
  552. class="el-dialog_body"
  553. width="60%"
  554. title="对标信息分析"
  555. :visible.sync="dialogTableVisible"
  556. append-to-body
  557. >
  558. <div class="margin">
  559. <div class="dialogLeftData">
  560. <div id="leiDaTu3" class="echart"></div>
  561. <div id="leiDaTu4" class="echart"></div>
  562. </div>
  563. <div class="dialogRightData">
  564. <el-table
  565. :data="getTableData"
  566. height="618"
  567. :row-style="{ height: '10px' }"
  568. border
  569. :header-cell-style="headStyle"
  570. :cell-style="{ textAlign: 'center', padding: '7px' }"
  571. style="width: 100%; font-size: 10px"
  572. >
  573. <el-table-column prop="index" label="指标"> </el-table-column>
  574. <el-table-column prop="data1" :label="pjName1"> </el-table-column>
  575. <el-table-column prop="data2" :label="pjName2"> </el-table-column>
  576. </el-table>
  577. </div>
  578. </div>
  579. </el-dialog>
  580. </div>
  581. </div>
  582. </template>
  583. <script>
  584. import formateDate from "@/utils/date";
  585. export default {
  586. data() {
  587. return {
  588. tb2: false,
  589. loading:true,
  590. loading2:true,
  591. tableData: [],
  592. options: [],
  593. fc: "",
  594. fc2: "",
  595. pj: "",
  596. pj2: "",
  597. timedate: [],
  598. multipleSelection: [],
  599. multipleSelection1: [],
  600. multipleSelection2: [],
  601. orderByColumn: "",
  602. isAsc: "asc",
  603. fdcLineData: "",
  604. fdcLineData2: "",
  605. currentPage2: 1,
  606. pagesize: 10,
  607. wpId: "",
  608. pjId: "",
  609. beginDate: "",
  610. endDate: "",
  611. dialogTableVisible: false,
  612. sortInOrder: [],
  613. sortInOrderTop: [],
  614. pjName1: "",
  615. pjName2: "",
  616. sortInOrde2: [],
  617. getTableData: [],
  618. fdcND: [],
  619. fdcND1: "",
  620. fdcND2: "",
  621. wpIdslist: {
  622. name: "",
  623. id: "",
  624. },
  625. projectlist: {
  626. name: "",
  627. id: "",
  628. },
  629. projectlist2: {
  630. name: "",
  631. id: "",
  632. },
  633. };
  634. },
  635. filters: {
  636. rounding(fc) {
  637. return fc.toFixed(2);
  638. },
  639. },
  640. created() {
  641. this.timedate[0] = this.$route.query.beginDate;
  642. this.timedate[1] = this.$route.query.endDate;
  643. this.fc = this.$route.query.wpId;
  644. this.query_xml();
  645. this.query_wpid();
  646. this.YardTableData();
  647. },
  648. methods: {
  649. queryApData() {
  650. this.YardTableData();
  651. if (this.fc2 != null || this.fc2 != undefined) {
  652. this.tb2 = true;
  653. if (this.timedate == "") {
  654. this.beginDate = this.$route.query.beginDate;
  655. this.endDate = this.$route.query.endDate;
  656. } else {
  657. this.beginDate = this.timedate[0];
  658. this.endDate = this.timedate[1];
  659. }
  660. var guilty = new URLSearchParams();
  661. guilty.append("pageNum", this.currentPage2);
  662. guilty.append("pageSize", this.pagesize);
  663. guilty.append("orderByColumn", this.orderByColumn);
  664. guilty.append("isAsc", this.isAsc);
  665. guilty.append("wpId", this.fc2);
  666. guilty.append("wtId", this.pj2);
  667. guilty.append("beginDate", this.beginDate);
  668. guilty.append("endDate", this.endDate);
  669. this.$http.post("/contrast/benchmarkWtList", guilty).then((res) => {
  670. this.fdcLineData2 = res.data.data;
  671. this.loading2 = false;
  672. });
  673. }
  674. },
  675. querycheck(){
  676. if(this.multipleSelection1.length + this.multipleSelection2.length ==2){
  677. this.queryApDataMx();
  678. }else{
  679. this.$message({
  680. message:"请选择两个项目!",
  681. type:'error'
  682. });
  683. return
  684. }
  685. },
  686. queryApDataMx() {
  687. this.dialogTableVisible = true;
  688. if (
  689. this.multipleSelection1.length + this.multipleSelection2.length ==
  690. 2
  691. ) {
  692. this.multipleSelection = this.multipleSelection1.concat(
  693. this.multipleSelection2
  694. );
  695. } else {
  696. this.$message.error("请选两个风场!");
  697. return;
  698. }
  699. if (this.multipleSelection.length == 2) {
  700. this.pjName1 = this.multipleSelection[0].wtName;
  701. this.pjName2 = this.multipleSelection[1].wtName;
  702. this.fdcND1 =
  703. this.multipleSelection[0].wtName +
  704. "" +
  705. formateDate(new Date(this.multipleSelection[0].recordDate) / 1000);
  706. this.fdcND2 =
  707. this.multipleSelection[1].wtName +
  708. "" +
  709. formateDate(new Date(this.multipleSelection[1].recordDate) / 1000);
  710. this.fdcND.push(this.fdcND1, this.fdcND2);
  711. this.sortInOrder.push(
  712. this.multipleSelection[0].fnlyl,
  713. this.multipleSelection[0].xqjsl,
  714. this.multipleSelection[0].ztzhjsl,
  715. this.multipleSelection[0].fwjsl,
  716. this.multipleSelection[0].slssl,
  717. this.multipleSelection[0].xnssl,
  718. this.multipleSelection[0].qfl,
  719. this.multipleSelection[0].jxssl,
  720. this.multipleSelection[0].gzssl
  721. );
  722. this.sortInOrderTop.push(
  723. this.multipleSelection[1].fnlyl,
  724. this.multipleSelection[1].xqjsl,
  725. this.multipleSelection[1].ztzhjsl,
  726. this.multipleSelection[1].fwjsl,
  727. this.multipleSelection[1].slssl,
  728. this.multipleSelection[1].xnssl,
  729. this.multipleSelection[1].qfl,
  730. this.multipleSelection[1].jxssl,
  731. this.multipleSelection[1].gzssl
  732. );
  733. for (let i = 0; i < this.multipleSelection.length; i++) {
  734. this.sortInOrde2.push({
  735. product: this.multipleSelection[i].wtName+" "+formateDate(this.multipleSelection[i].recordDate/1000),
  736. "限电损失电量单位:万KWh": this.multipleSelection[i].xdss,
  737. "故障损失电量单位:万KWh": this.multipleSelection[i].gzss,
  738. "检修损失电量单位:万KWh": this.multipleSelection[i].jxssl,
  739. "性能损失电量单位:万KWh": this.multipleSelection[i].xnssl,
  740. "受累损失电量单位:万KWh": this.multipleSelection[i].slss,
  741. });
  742. }
  743. this.getTableData.push({
  744. index: "发电量",
  745. data1: this.multipleSelection[0].scadafdl,
  746. data2: this.multipleSelection[1].scadafdl,
  747. });
  748. this.getTableData.push({
  749. index: "故障损失电量",
  750. data1: this.multipleSelection[0].gzss,
  751. data2: this.multipleSelection[1].gzss,
  752. });
  753. this.getTableData.push({
  754. index: "检修损失电量",
  755. data1: this.multipleSelection[0].jxssl,
  756. data2: this.multipleSelection[1].jxssl,
  757. });
  758. this.getTableData.push({
  759. index: "性能未达标损失电量",
  760. data1: this.multipleSelection[0].xnsslfraction,
  761. data2: this.multipleSelection[1].xnsslfraction,
  762. });
  763. this.getTableData.push({
  764. index: "受累损失电量",
  765. data1: this.multipleSelection[0].slss,
  766. data2: this.multipleSelection[1].slss,
  767. });
  768. this.getTableData.push({
  769. index: "风能利用率",
  770. data1: this.multipleSelection[0].fnlyl,
  771. data2: this.multipleSelection[1].fnlyl,
  772. });
  773. this.getTableData.push({
  774. index: "故障损失率",
  775. data1: this.multipleSelection[0].gzssl,
  776. data2: this.multipleSelection[1].gzssl,
  777. });
  778. this.getTableData.push({
  779. index: "检修损失率",
  780. data1: this.multipleSelection[0].jxssl,
  781. data2: this.multipleSelection[1].jxssl,
  782. });
  783. this.getTableData.push({
  784. index: "弃风率",
  785. data1: this.multipleSelection[0].qfl,
  786. data2: this.multipleSelection[1].qfl,
  787. });
  788. this.getTableData.push({
  789. index: "性能损失率",
  790. data1: this.multipleSelection[0].xnssl,
  791. data2: this.multipleSelection[1].xnssl,
  792. });
  793. this.getTableData.push({
  794. index: "受累损失率",
  795. data1: this.multipleSelection[0].slssl,
  796. data2: this.multipleSelection[1].slssl,
  797. });
  798. this.getTableData.push({
  799. index: "复位及时率",
  800. data1: this.multipleSelection[0].fwjsl,
  801. data2: this.multipleSelection[1].fwjsl,
  802. });
  803. this.getTableData.push({
  804. index: "消缺及时率",
  805. data1: this.multipleSelection[0].xqjsl,
  806. data2: this.multipleSelection[1].xqjsl,
  807. });
  808. this.getTableData.push({
  809. index: "状态转换率",
  810. data1: this.multipleSelection[0].ztzhjsl,
  811. data2: this.multipleSelection[1].ztzhjsl,
  812. });
  813. }
  814. this.$nextTick(function () {
  815. this.drawPie("leiDaTu3");
  816. });
  817. this.$nextTick(function () {
  818. this.drawPie2("leiDaTu4");
  819. });
  820. },
  821. filter_fdl(cellValue) {
  822. return parseFloat(cellValue.scadafdl).toFixed(2);
  823. },
  824. YardTableData() {
  825. this.$http.get("/powercompare/windfarmAjax").then((res) => {
  826. this.options = res.data.data;
  827. });
  828. this.wpId = this.$route.query.wpId;
  829. if (this.timedate == "") {
  830. this.beginDate = this.$route.query.beginDate;
  831. this.endDate = this.$route.query.endDate;
  832. } else {
  833. this.beginDate = this.timedate[0];
  834. this.endDate = this.timedate[1];
  835. }
  836. var guilty = new URLSearchParams();
  837. guilty.append("pageNum", this.currentPage2);
  838. guilty.append("pageSize", this.pagesize);
  839. guilty.append("orderByColumn", this.orderByColumn);
  840. guilty.append("isAsc", this.isAsc);
  841. if (this.fc == "") {
  842. guilty.append("wpId", this.wpId);
  843. } else {
  844. guilty.append("wpId", this.fc);
  845. }
  846. if (this.pj == "") {
  847. guilty.append("wtId", this.pjId);
  848. } else {
  849. guilty.append("wtId", this.pj);
  850. }
  851. guilty.append("beginDate", this.beginDate);
  852. guilty.append("endDate", this.endDate);
  853. this.$http.post("/contrast/benchmarkWtList", guilty).then((res) => {
  854. this.fdcLineData = res.data.data;
  855. this.loading = false;
  856. });
  857. },
  858. query_xml() {
  859. this.pj = "";
  860. this.xl = "";
  861. this.pj2 = "";
  862. this.xl2 = "";
  863. this.$http
  864. .get("powercompare/windturbineAjax?wpId=" + this.fc)
  865. .then((res) => {
  866. this.projectlist = res.data.data;
  867. });
  868. },
  869. query_xml2() {
  870. this.pj = "";
  871. this.xl = "";
  872. this.$http
  873. .get("powercompare/windturbineAjax?wpId=" + this.fc2)
  874. .then((res) => {
  875. this.projectlist2 = res.data.data;
  876. });
  877. },
  878. query_wpid() {
  879. this.$http.get("powercompare/windfarmAjax?").then((res) => {
  880. this.wpIdslist = res.data.data;
  881. });
  882. },
  883. headStyle() {
  884. return "text-align:left";
  885. },
  886. handleSelectionChange(val) {
  887. this.sortInOrder = [];
  888. this.sortInOrderTop = [];
  889. this.getTableData = [];
  890. this.sortInOrde2 = [];
  891. this.multipleSelection1 = [];
  892. this.multipleSelection1 = val;
  893. },
  894. handleSelectionChange2(val) {
  895. this.sortInOrder = [];
  896. this.sortInOrderTop = [];
  897. this.getTableData = [];
  898. this.sortInOrde2 = [];
  899. this.multipleSelection2 = [];
  900. this.multipleSelection2 = val;
  901. },
  902. changeTableSort(column) {
  903. this.orderByColumn = column.prop;
  904. if (column.order == "descending") {
  905. this.isAsc = "desc";
  906. } else if (column.order == "ascending") {
  907. this.isAsc = "asc";
  908. }
  909. this.YardTableData();
  910. },
  911. filter_date(cellValue) {
  912. let date = new Date(cellValue.recordDate);
  913. return formateDate(date / 1000);
  914. },
  915. drawPie() {
  916. var charts;
  917. if (charts != null && charts != "" && charts != undefined) {
  918. charts.dispose();
  919. }
  920. charts = this.$echarts.init(document.getElementById("leiDaTu3"));
  921. let option = {
  922. title: {
  923. // text: '对标排名分析',
  924. left: "center",
  925. },
  926. tooltip: {},
  927. // legend: {
  928. // data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'],
  929. // left: 'right'
  930. // },
  931. radar: {
  932. // shape: 'circle',
  933. name: {
  934. textStyle: {
  935. color: "#fff",
  936. backgroundColor: "#999",
  937. borderRadius: 3,
  938. padding: [3, 5],
  939. },
  940. },
  941. indicator: [
  942. { name: "风能利用率", max: 150 },
  943. { name: "消缺及时率", max: 150 },
  944. { name: "状态转换率", max: 150 },
  945. { name: "复位及时率", max: 150 },
  946. { name: "受累损失率", max: 150 },
  947. { name: "性能损失率", max: 150 },
  948. { name: "弃风率", max: 150 },
  949. { name: "检修损失率", max: 150 },
  950. { name: "故障损失率", max: 150 },
  951. ],
  952. },
  953. series: [
  954. {
  955. name: "预算 vs 开销(Budget vs spending)",
  956. type: "radar",
  957. // areaStyle: {normal: {}},
  958. data: [
  959. {
  960. value: this.sortInOrder,
  961. name: this.pjName1,
  962. },
  963. {
  964. value: this.sortInOrderTop,
  965. name: this.pjName2,
  966. },
  967. ],
  968. },
  969. ],
  970. };
  971. charts.clear();
  972. charts.setOption(option);
  973. },
  974. drawPie2() {
  975. var charts2;
  976. if (charts2 != null && charts2 != "" && charts2 != undefined) {
  977. charts2.dispose();
  978. }
  979. charts2 = this.$echarts.init(document.getElementById("leiDaTu4"));
  980. let option2 = {
  981. legend: {
  982. orient: "vertical",
  983. left: "right",
  984. },
  985. tooltip: {},
  986. dataset: {
  987. dimensions: [
  988. "product",
  989. "限电损失电量单位:万KWh",
  990. "故障损失电量单位:万KWh",
  991. "检修损失电量单位:万KWh",
  992. "性能损失电量单位:万KWh",
  993. "受累损失电量单位:万KWh",
  994. ],
  995. source: this.sortInOrde2,
  996. },
  997. xAxis: {
  998. type: "category",
  999. date: this.fdcND,
  1000. axisPointer: {
  1001. type: "shadow",
  1002. },
  1003. },
  1004. yAxis: { type: "category" },
  1005. series: [
  1006. {
  1007. // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
  1008. type: "bar",
  1009. barWidth: 30,
  1010. itemStyle: {
  1011. normal: {
  1012. color: "#D201D8",
  1013. },
  1014. },
  1015. },
  1016. {
  1017. type: "bar",
  1018. barWidth: 30,
  1019. itemStyle: {
  1020. normal: {
  1021. color: "#FD0100",
  1022. },
  1023. },
  1024. },
  1025. {
  1026. type: "bar",
  1027. barWidth: 30,
  1028. itemStyle: {
  1029. normal: {
  1030. color: "#FF7B16",
  1031. },
  1032. },
  1033. },
  1034. {
  1035. type: "bar",
  1036. barWidth: 30,
  1037. itemStyle: {
  1038. normal: {
  1039. color: "#8085E9",
  1040. },
  1041. },
  1042. },
  1043. {
  1044. type: "bar",
  1045. barWidth: 30,
  1046. itemStyle: {
  1047. normal: {
  1048. color: "#A6A6A6",
  1049. },
  1050. },
  1051. },
  1052. ],
  1053. };
  1054. charts2.clear();
  1055. charts2.setOption(option2);
  1056. },
  1057. goReturn() {
  1058. this.$router.push("/benchmark_property");
  1059. },
  1060. toExcel() {},
  1061. },
  1062. };
  1063. </script>
  1064. <style lang="scss" scoped>
  1065. .box {
  1066. width: 100%;
  1067. justify-content: space-around;
  1068. align-items: center;
  1069. overflow: hidden;
  1070. }
  1071. .searchBar {
  1072. margin-top: 1%;
  1073. }
  1074. #leiDaTu3 {
  1075. margin-left: 5%;
  1076. height: 300px;
  1077. width: 100%;
  1078. float: left;
  1079. }
  1080. #leiDaTu4 {
  1081. margin: 15%;
  1082. height: 300px;
  1083. width: 450px;
  1084. float: left;
  1085. }
  1086. .margin {
  1087. width: 100%;
  1088. height: 618px;
  1089. }
  1090. .dialogLeftData {
  1091. width: 50%;
  1092. height: 650px;
  1093. text-align: center;
  1094. float: left;
  1095. }
  1096. /deep/::-webkit-scrollbar {
  1097. z-index: 99999999;
  1098. width: 6px;
  1099. height: 13px !important;
  1100. background-color: #f5f5f5;
  1101. }
  1102. .dialogRightData {
  1103. width: 50%;
  1104. height: 650px;
  1105. text-align: center;
  1106. float: left;
  1107. }
  1108. </style>