Decision2Xmdb.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. <template>
  2. <div class="decision-page-2">
  3. <div class="query mg-b-8">
  4. <div class="query-items">
  5. <div class="query-item">
  6. <div class="lable">场站:</div>
  7. <div class="search-input">
  8. <el-select v-model="value1" @change="ChangZhanChange(value1)" multiple placeholder="请选择"
  9. popper-class="select">
  10. <el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
  11. </el-option>
  12. </el-select>
  13. </div>
  14. </div>
  15. <div class="query-item">
  16. <div class="lable">项目:</div>
  17. <div class="search-input">
  18. <el-select v-model="value2" @change="XiangMuChange(value2)" multiple placeholder="请选择"
  19. popper-class="select">
  20. <el-option v-for="item in XiangMu" :key="item.id" :value="item.id" :label="item.name">
  21. </el-option>
  22. </el-select>
  23. </div>
  24. </div>
  25. <div class="query-item">
  26. <div class="lable">开始日期:</div>
  27. <div class="search-input">
  28. <el-date-picker v-model="value4" @change="BeginChange(value4)" type="date"
  29. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  30. </el-date-picker>
  31. </div>
  32. </div>
  33. <div class="query-item">
  34. <div class="lable">结束日期:</div>
  35. <div class="search-input">
  36. <el-date-picker v-model="value5" @change="EndChange(value5)" type="date"
  37. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  38. </el-date-picker>
  39. <div class="unit svg-icon svg-icon-gray">
  40. <svg-icon :svgid="''" />
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="query-actions">
  46. <button class="btn green">搜索</button>
  47. <button class="btn" @click="dbfx">对标分析</button>
  48. <button class="btn">导出</button>
  49. </div>
  50. </div>
  51. <div v-show="detailShow==1">
  52. <div class="mg-b-16">
  53. <div class="project-table">
  54. <Table :data="tableData" :canScroll="false" ref="curRef"></Table>
  55. </div>
  56. </div>
  57. <el-row class="mg-b-16">
  58. <el-col :span="12">
  59. <panel title="发电量占比">
  60. <dual-pie-chart height="21.296vh" :innerData="innerFdl" :outerData="outerFdl" />
  61. </panel>
  62. </el-col>
  63. <el-col :span="12">
  64. <panel title="各场站损失电量占比">
  65. <dual-pie-chart height="21.296vh" :innerData="innerCz" :outerData="outerCz" />
  66. </panel>
  67. </el-col>
  68. </el-row>
  69. <div>
  70. <panel title="损失电量分析">
  71. <multiple-bar-chart height="300px" :list="analyis" :customerTooltip="true" @tooltip="tooltip"
  72. :units='["(万KWh)"]' />
  73. </panel>
  74. </div>
  75. </div>
  76. <el-row :type="'flex'" class="content" v-show="detailShow==2">
  77. <el-col :span="24" class="pd-l-8">
  78. <panel :title="'风机对标列表明细'" :showLine="false">
  79. <div class="project-table">
  80. <Table :data="tableDataDetail"></Table>
  81. </div>
  82. </panel>
  83. </el-col>
  84. </el-row>
  85. <el-dialog title="对标排名分析" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal"
  86. :close-on-click-modal="false">
  87. <dayinfo :radarValue="radarValue" :windNum="windNum" :windNum2="windNum2" :tabs="tabs"
  88. :analyisDialog="analyisDialog" />
  89. </el-dialog>
  90. </div>
  91. </template>
  92. <script>
  93. import MultipleBarChart from "../../components/chart/bar/multiple-bar-chart.vue";
  94. import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
  95. import SvgIcon from "../../components/coms/icon/svg-icon.vue";
  96. import Panel from "../../components/coms/panel/panel.vue";
  97. import Table from "../../components/coms/table/table.vue";
  98. import Dayinfo from "./dayinfo.vue";
  99. export default {
  100. components: {
  101. Panel,
  102. Table,
  103. SvgIcon,
  104. DualPieChart,
  105. MultipleBarChart,
  106. Dayinfo
  107. },
  108. data() {
  109. let that = this;
  110. return {
  111. tableIdArr: [], //放checkbox的id数组
  112. tableId: [],
  113. checkLength: 0, //对标分析只能选择2个
  114. tableData: {
  115. column: [{
  116. name: "",
  117. field: "index",
  118. is_num: false,
  119. is_light: false,
  120. },
  121. {
  122. name: "",
  123. field: "check",
  124. is_num: false,
  125. is_light: false,
  126. template: function() {
  127. return "<input class='check curCheckBox' type='CheckBox'/>";
  128. },
  129. click: function(event, data) {
  130. // checkbox 事件
  131. // event.target checkbox or td 需进行判断
  132. // event.target.checked 判断 checkbox 是否选中
  133. // data 当前数据
  134. // console.log(that);
  135. // console.log(event.target);
  136. // console.log(event.target.checked);
  137. var dataId = that.tableIdArr[data.index - 1];
  138. if (event.target.checked == false && that.checkLength <= 2) {
  139. that.tableId.forEach((item, i) => {
  140. if (item == dataId) {
  141. that.tableId.splice(i, 1)
  142. }
  143. })
  144. that.checkLength--;
  145. } else if (event.target.checked && that.checkLength < 2) {
  146. that.tableId.push(dataId)
  147. that.checkLength++;
  148. } else if (that.checkLength == 2) {
  149. event.target.checked = false;
  150. }
  151. },
  152. },
  153. {
  154. name: "名称",
  155. field: "name",
  156. is_num: false,
  157. is_light: false,
  158. },
  159. {
  160. name: "综合排名",
  161. field: "zhpm",
  162. is_num: false,
  163. is_light: false,
  164. sortable: true,
  165. },
  166. {
  167. name: "发电量排名",
  168. field: "fdlpm",
  169. is_num: false,
  170. is_light: false,
  171. sortable: true,
  172. },
  173. {
  174. name: "发电量",
  175. field: "fdl",
  176. is_num: false,
  177. is_light: false,
  178. sortable: true,
  179. },
  180. {
  181. name: "故障损失电量排名",
  182. field: "gzssdlpm",
  183. is_num: false,
  184. is_light: false,
  185. sortable: true,
  186. },
  187. {
  188. name: "故障损失电量",
  189. field: "gzssdl",
  190. is_num: false,
  191. is_light: false,
  192. sortable: true,
  193. },
  194. {
  195. name: "检修损失电量排名",
  196. field: "jxssdlpm",
  197. is_num: false,
  198. is_light: false,
  199. sortable: true,
  200. },
  201. {
  202. name: "检修损失电量",
  203. field: "jxssdl",
  204. is_num: false,
  205. is_light: false,
  206. sortable: true,
  207. },
  208. {
  209. name: "性能损失电量排名",
  210. field: "xnssdlpm",
  211. is_num: false,
  212. is_light: true,
  213. sortable: true,
  214. },
  215. {
  216. name: "性能损失电量",
  217. field: "xnssdl",
  218. is_num: false,
  219. is_light: false,
  220. sortable: true,
  221. },
  222. {
  223. name: "限电损失电量排名",
  224. field: "xdssdlpm",
  225. is_num: false,
  226. is_light: false,
  227. sortable: true,
  228. },
  229. {
  230. name: "限电损失电量",
  231. field: "xdssdl",
  232. is_num: false,
  233. is_light: false,
  234. sortable: true,
  235. }, {
  236. name: "受累损失电量排名",
  237. field: "slssdlpm",
  238. is_num: false,
  239. is_light: false,
  240. sortable: true,
  241. }, {
  242. name: "受累损失电量",
  243. field: "slssdl",
  244. is_num: false,
  245. is_light: false,
  246. sortable: true,
  247. }, {
  248. name: "风能利用率排名",
  249. field: "fnlylpm",
  250. is_num: false,
  251. is_light: false,
  252. sortable: true,
  253. }, {
  254. name: "风能利用率(%)",
  255. field: "fnlyl",
  256. is_num: false,
  257. is_light: false,
  258. sortable: true,
  259. },{
  260. name: "故障损失率排名",
  261. field: "gzsslpm",
  262. is_num: false,
  263. is_light: false,
  264. sortable: true,
  265. }, {
  266. name: "故障损失率(%)",
  267. field: "gzssl",
  268. is_num: false,
  269. is_light: false,
  270. sortable: true,
  271. }, {
  272. name: "检修损失率排名",
  273. field: "jxsslpm",
  274. is_num: false,
  275. is_light: false,
  276. sortable: true,
  277. }, {
  278. name: "检修损失率(%)",
  279. field: "jxssl",
  280. is_num: false,
  281. is_light: false,
  282. sortable: true,
  283. }, {
  284. name: "弃风率排名",
  285. field: "qflpm",
  286. is_num: false,
  287. is_light: false,
  288. sortable: true,
  289. }, {
  290. name: "弃风率(%)",
  291. field: "qfl",
  292. is_num: false,
  293. is_light: false,
  294. sortable: true,
  295. }, {
  296. name: "性能损失率排名",
  297. field: "xnsslpm",
  298. is_num: false,
  299. is_light: false,
  300. sortable: true,
  301. }, {
  302. name: "性能损失率(%)",
  303. field: "xnssl",
  304. is_num: false,
  305. is_light: false,
  306. sortable: true,
  307. }, {
  308. name: "受累损失率排名",
  309. field: "slsslpm",
  310. is_num: false,
  311. is_light: false,
  312. sortable: true,
  313. }, {
  314. name: "受累损失率(%)",
  315. field: "slssl",
  316. is_num: false,
  317. is_light: false,
  318. sortable: true,
  319. }, {
  320. name: "操作",
  321. field: "cz",
  322. is_num: false,
  323. is_light: false,
  324. template: function() {
  325. return "<a class='action'>详情</a>";
  326. },
  327. click: function(event, data) {
  328. var dataId = that.tableIdArr[data.index - 1];
  329. that.detailShow = 2;
  330. // var that = this;
  331. that.API.requestData({
  332. method: "GET",
  333. subUrl: "benchmarking/details",
  334. data: {
  335. id: dataId,
  336. beginDate: that.value4,
  337. endDate: that.value5,
  338. target: '',
  339. sort: ''
  340. },
  341. success(res) {
  342. var dataTab = [];
  343. res.data.forEach((item, index) => {
  344. that.tableIdArr.push(item.id);
  345. dataTab.push({ //表格
  346. index: index + 1,
  347. name: item.name,
  348. zhpm: item.zhpm,
  349. gzssdl: item.gzssdl,
  350. jxssdlpm: item.jxssdlpm,
  351. jxssdl: item.jxssdl,
  352. xnssdlpm: item.xnssdlpm,
  353. xnssdl: item.xnssdl,
  354. xdssdlpm: item.xdssdlpm,
  355. xdssdl: item.xdssdl,
  356. slssdlpm: item.slssdlpm,
  357. slssdl: item.slssdl,
  358. fnlylpm: item.fnlylpm,
  359. fnlyl: item.fnlyl,
  360. gzsslpm: item.gzsslpm,
  361. gzssl: item.gzssl,
  362. jxsslpm: item.jxsslpm,
  363. jxssl: item.jxssl,
  364. qflpm: item.qflpm,
  365. qfl: item.qfl,
  366. xnsslpm: item.xnsslpm,
  367. xnssl: item.xnssl,
  368. slsslpm: item.slsslpm,
  369. slssl: item.slssl,
  370. is_light: false
  371. })
  372. })
  373. that.tableDataDetail.data = dataTab;
  374. }
  375. });
  376. }
  377. }
  378. ],
  379. data: [],
  380. },
  381. tableDataDetail: {
  382. column: [{
  383. name: "",
  384. field: "index",
  385. is_num: false,
  386. is_light: false,
  387. },
  388. {
  389. name: "",
  390. field: "check",
  391. is_num: false,
  392. is_light: false,
  393. template: function() {
  394. return "<input class='check' type='CheckBox'/>";
  395. },
  396. click: function(event, data) {
  397. var dataId = that.tableIdArr[data.index - 1];
  398. if (event.target.checked == false && that.checkLength <= 2) {
  399. that.tableId.forEach((item, i) => {
  400. if (item == dataId) {
  401. that.tableId.splice(i, 1)
  402. }
  403. })
  404. that.checkLength--;
  405. } else if (event.target.checked && that.checkLength < 2) {
  406. that.tableId.push(dataId)
  407. that.checkLength++;
  408. } else if (that.checkLength == 2) {
  409. event.target.checked = false;
  410. }
  411. },
  412. },
  413. {
  414. name: "风机名称",
  415. field: "name",
  416. is_num: false,
  417. is_light: false,
  418. },
  419. {
  420. name: "综合排名",
  421. field: "zhpm",
  422. is_num: false,
  423. is_light: false,
  424. sortable: true,
  425. },
  426. {
  427. name: "故障损失电量",
  428. field: "gzssdl",
  429. is_num: false,
  430. is_light: false,
  431. sortable: true,
  432. },
  433. {
  434. name: "检修损失电量排名",
  435. field: "jxssdlpm",
  436. is_num: false,
  437. is_light: false,
  438. sortable: true,
  439. },
  440. {
  441. name: "检修损失电量",
  442. field: "jxssdl",
  443. is_num: false,
  444. is_light: false,
  445. sortable: true,
  446. },
  447. {
  448. name: "性能损失电量排名",
  449. field: "xnssdlpm",
  450. is_num: false,
  451. is_light: true,
  452. sortable: true,
  453. },
  454. {
  455. name: "性能损失电量",
  456. field: "xnssdl",
  457. is_num: false,
  458. is_light: false,
  459. sortable: true,
  460. },
  461. {
  462. name: "限电损失电量排名",
  463. field: "xdssdlpm",
  464. is_num: false,
  465. is_light: false,
  466. sortable: true,
  467. },
  468. {
  469. name: "限电损失电量",
  470. field: "xdssdl",
  471. is_num: false,
  472. is_light: false,
  473. sortable: true,
  474. }, {
  475. name: "受累损失电量排名",
  476. field: "slssdlpm",
  477. is_num: false,
  478. is_light: false,
  479. sortable: true,
  480. }, {
  481. name: "受累损失电量",
  482. field: "slssdl",
  483. is_num: false,
  484. is_light: false,
  485. sortable: true,
  486. }, {
  487. name: "故障损失率排名",
  488. field: "gzsslpm",
  489. is_num: false,
  490. is_light: false,
  491. sortable: true,
  492. }, {
  493. name: "故障损失率(%)",
  494. field: "gzssl",
  495. is_num: false,
  496. is_light: false,
  497. sortable: true,
  498. }, {
  499. name: "检修损失率排名",
  500. field: "jxsslpm",
  501. is_num: false,
  502. is_light: false,
  503. sortable: true,
  504. }, {
  505. name: "检修损失率(%)",
  506. field: "jxssl",
  507. is_num: false,
  508. is_light: false,
  509. sortable: true,
  510. }, {
  511. name: "弃风率排名",
  512. field: "qflpm",
  513. is_num: false,
  514. is_light: false,
  515. sortable: true,
  516. }, {
  517. name: "弃风率(%)",
  518. field: "qfl",
  519. is_num: false,
  520. is_light: false,
  521. sortable: true,
  522. }, {
  523. name: "性能损失率排名",
  524. field: "xnsslpm",
  525. is_num: false,
  526. is_light: false,
  527. sortable: true,
  528. }, {
  529. name: "性能损失率(%)",
  530. field: "xnssl",
  531. is_num: false,
  532. is_light: false,
  533. sortable: true,
  534. }, {
  535. name: "受累损失率排名",
  536. field: "slsslpm",
  537. is_num: false,
  538. is_light: false,
  539. sortable: true,
  540. }, {
  541. name: "受累损失率(%)",
  542. field: "slssl",
  543. is_num: false,
  544. is_light: false,
  545. sortable: true,
  546. }
  547. ],
  548. data: [],
  549. },
  550. options: [],
  551. ChangZhan: [], //场站
  552. XiangMu: [], //项目
  553. value1: [],
  554. value2: [],
  555. value4: "",
  556. value5: "",
  557. innerFdl: [], //发电量占比
  558. outerFdl: [],
  559. innerCz: [], //各场站损失电量占比
  560. outerCz: [],
  561. innerLl: [], //理论发电量占比
  562. outerLl: [],
  563. analyis: [], //损失电量分析
  564. dialogVisible: false,
  565. radarValue: [],
  566. windNum: 'dd',
  567. windNum2: 'dd',
  568. tabs: [],
  569. analyisDialog: [],
  570. detailShow: 1,
  571. ajaxData:[]
  572. };
  573. },
  574. created() {
  575. this.ChangZhanVal();
  576. this.value4 = this.getTime(1);
  577. this.value5 = this.getTime(2);
  578. this.AjaxCommon();
  579. },
  580. methods: {
  581. ChangZhanVal() {
  582. var that = this;
  583. that.API.requestData({
  584. method: "GET",
  585. subUrl: "benchmarking/wplist",
  586. success(res) {
  587. that.ChangZhan = res.data;
  588. }
  589. });
  590. },
  591. ChangZhanChange(val) {
  592. this.value1 = val;
  593. this.value2 = [];
  594. this.AjaxCommon();
  595. this.XiangMuVal(val);
  596. this.clearDb();
  597. },
  598. XiangMuVal(val) {
  599. var that = this;
  600. that.API.requestData({
  601. method: "GET",
  602. subUrl: "benchmarking/projectList",
  603. data: {
  604. wpids: val
  605. },
  606. success(res) {
  607. that.XiangMu = res.data;
  608. }
  609. });
  610. },
  611. XiangMuChange(val) {
  612. this.value2 = val;
  613. this.AjaxCommon();
  614. this.clearDb();
  615. },
  616. BeginChange(val) {
  617. this.value4 = val;
  618. this.AjaxCommon();
  619. this.clearDb();
  620. },
  621. EndChange(val) {
  622. this.value5 = val;
  623. this.AjaxCommon();
  624. this.clearDb();
  625. },
  626. getTime(val) { //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
  627. var date = new Date();
  628. var year = date.getFullYear(),
  629. month = date.getMonth() + 1,
  630. day = date.getDate();
  631. month >= 1 && month <= 9 ? (month = '0' + month) : '';
  632. day >= 0 && day <= 9 ? (day = '0' + day) : '';
  633. var begin = year + '-' + month + '-01';
  634. var end = year + '-' + month + '-' + day;
  635. if (val == 1) {
  636. return begin;
  637. } else if (val == 2) {
  638. return end;
  639. }
  640. },
  641. AjaxCommon() {
  642. var that = this;
  643. that.API.requestData({ //五项损失率
  644. method: "GET",
  645. subUrl: "benchmarking/xmdb",
  646. data: {
  647. wpids: that.value1,
  648. projectids: that.value2,
  649. beginDate: that.value4,
  650. endDate: that.value5,
  651. target: '',
  652. sort: ''
  653. },
  654. success(res) {
  655. that.ajaxData = res.data;
  656. var dataTab = [], //表格
  657. fdl = [],
  658. cz = [],
  659. ll = [],
  660. analyis = [],
  661. gzssdl = [],
  662. jxssdl = [],
  663. xnssdl = [],
  664. xdssdl = [],
  665. slssdl = [];
  666. res.data.forEach((item, index) => {
  667. that.tableIdArr.push(item.id);
  668. dataTab.push({ //表格
  669. index: index + 1,
  670. name: item.name,
  671. zhpm: item.zhpm,
  672. fdlpm: item.fdlpm,
  673. fdl: item.fdl,
  674. gzssdlpm: item.gzssdlpm,
  675. gzssdl: item.gzssdl,
  676. jxssdlpm: item.jxssdlpm,
  677. jxssdl: item.jxssdl,
  678. xnssdlpm: item.xnssdlpm,
  679. xnssdl: item.xnssdl,
  680. xdssdlpm: item.xdssdlpm,
  681. xdssdl: item.xdssdl,
  682. slssdlpm: item.slssdlpm,
  683. slssdl: item.slssdl,
  684. fnlylpm: item.fnlylpm,
  685. fnlyl: item.fnlyl,
  686. gzsslpm: item.gzsslpm,
  687. gzssl: item.gzssl,
  688. jxsslpm: item.jxsslpm,
  689. jxssl: item.jxssl,
  690. qflpm: item.qflpm,
  691. qfl: item.qfl,
  692. xnsslpm: item.xnsslpm,
  693. xnssl: item.xnssl,
  694. slsslpm: item.slsslpm,
  695. slssl: item.slssl,
  696. is_light: false
  697. })
  698. fdl.push({
  699. value: item.fdl,
  700. name: item.name
  701. })
  702. cz.push({
  703. value: (item.gzssdl + item.jxssdl + item.xnssdl + item.xdssdl +
  704. item.slssdl).toFixed(2),
  705. name: item.name
  706. })
  707. ll.push({
  708. value: item.llfdl,
  709. name: item.name
  710. })
  711. gzssdl.push({
  712. text: item.name,
  713. value: item.gzssdl
  714. });
  715. jxssdl.push({
  716. text: item.name,
  717. value: item.jxssdl
  718. });
  719. xnssdl.push({
  720. text: item.name,
  721. value: item.xnssdl
  722. });
  723. xdssdl.push({
  724. text: item.name,
  725. value: item.xdssdl
  726. });
  727. slssdl.push({
  728. text: item.name,
  729. value: item.slssdl
  730. });
  731. })
  732. analyis.push({
  733. title: "故障损失电量",
  734. yAxisIndex: 0,
  735. value: gzssdl
  736. }, {
  737. title: "检修损失电量",
  738. yAxisIndex: 0,
  739. value: jxssdl
  740. }, {
  741. title: "性能损失电量",
  742. yAxisIndex: 0,
  743. value: xnssdl
  744. }, {
  745. title: "限电损失电量",
  746. yAxisIndex: 0,
  747. value: xdssdl
  748. }, {
  749. title: "受累损失电量",
  750. yAxisIndex: 0,
  751. value: slssdl
  752. })
  753. that.tableData.data = dataTab;
  754. that.innerFdl = fdl;
  755. that.outerFdl = fdl;
  756. that.innerCz = cz;
  757. that.outerCz = cz;
  758. that.innerLl = ll;
  759. that.outerLl = ll;
  760. that.analyis = analyis;
  761. }
  762. });
  763. },
  764. AjaxDbfx() {
  765. var that = this;
  766. var data = that.ajaxData;
  767. that.windNum = data[0].name;
  768. that.windNum2 = data[1].name;
  769. that.tabs = [{
  770. name: "发电量",
  771. windData1: data[0].fdl,
  772. windData2: data[1].fdl
  773. }, {
  774. name: "故障损失电量",
  775. windData1: data[0].gzssdl,
  776. windData2: data[1].gzssdl
  777. }, {
  778. name: "检修损失电量",
  779. windData1: data[0].jxssdl,
  780. windData2: data[1].jxssdl
  781. }, {
  782. name: "性能未达标损失电量",
  783. windData1: data[0].xnssdl,
  784. windData2: data[1].xnssdl
  785. }, {
  786. name: "受累损失电量",
  787. windData1: data[0].slssdl,
  788. windData2: data[1].slssdl
  789. }, {
  790. name: "风能利用率",
  791. windData1: data[0].fnlyl,
  792. windData2: data[1].fnlyl
  793. }, {
  794. name: "故障损失率",
  795. windData1: data[0].gzssl,
  796. windData2: data[1].gzssl
  797. }, {
  798. name: "检修损失率",
  799. windData1: data[0].jxssl,
  800. windData2: data[1].jxssl
  801. }, {
  802. name: "弃风率",
  803. windData1: data[0].qfl,
  804. windData2: data[1].qfl
  805. }, {
  806. name: "性能损失率",
  807. windData1: data[0].xnssl,
  808. windData2: data[1].xnssl
  809. }, {
  810. name: "受累损失率",
  811. windData1: data[0].slssl,
  812. windData2: data[1].slssl
  813. }];
  814. that.radarValue = [{
  815. indicator: ["风能利用率", "故障损失率", "检修损失率", "弃风率", "性能损失率", "受累损失率"],
  816. data: [{
  817. value: [data[0].fnlylpm, data[0].gzsslpm, data[0].jxsslpm, data[0].qflpm,
  818. data[0].xnsslpm, data[0].slsslpm
  819. ]
  820. }, {
  821. value: [data[1].fnlylpm, data[1].gzsslpm, data[1].jxsslpm, data[1].qflpm,
  822. data[1].xnsslpm, data[1].slsslpm
  823. ]
  824. }]
  825. }];
  826. var analyis = [],
  827. gzssdl = [],
  828. jxssdl = [],
  829. xnssdl = [],
  830. xdssdl = [],
  831. slssdl = [];
  832. data.forEach((item, index) => {
  833. gzssdl.push({
  834. text: item.name,
  835. value: item.gzssdl
  836. });
  837. jxssdl.push({
  838. text: item.name,
  839. value: item.jxssdl
  840. });
  841. xnssdl.push({
  842. text: item.name,
  843. value: item.xnssdl
  844. });
  845. xdssdl.push({
  846. text: item.name,
  847. value: item.xdssdl
  848. });
  849. slssdl.push({
  850. text: item.name,
  851. value: item.slssdl
  852. });
  853. })
  854. analyis.push({
  855. title: "故障损失电量",
  856. yAxisIndex: 0,
  857. value: gzssdl
  858. }, {
  859. title: "检修损失电量",
  860. yAxisIndex: 0,
  861. value: jxssdl
  862. }, {
  863. title: "性能损失电量",
  864. yAxisIndex: 0,
  865. value: xnssdl
  866. }, {
  867. title: "限电损失电量",
  868. yAxisIndex: 0,
  869. value: xdssdl
  870. }, {
  871. title: "受累损失电量",
  872. yAxisIndex: 0,
  873. value: slssdl
  874. })
  875. that.analyisDialog = analyis;
  876. },
  877. tooltip(param, callback) {
  878. var color = ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"];
  879. var result = param[0].axisValue;
  880. param.forEach((value, index) => {
  881. result += "<br />" +
  882. `<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${color[index]};"></span>` +
  883. value.seriesName + ":" + value.value;
  884. });
  885. callback(result);
  886. return true;
  887. },
  888. dbfx() {
  889. var that = this;
  890. if (that.tableId.length == 2) {
  891. that.dialogVisible = true;
  892. this.AjaxDbfx();
  893. this.clearDb();
  894. }
  895. },
  896. clearDb(){//清空对标状态
  897. this.$refs.curRef.clearCheckBox();
  898. this.tableId = [];
  899. this.checkLength = 0;
  900. }
  901. }
  902. };
  903. </script>
  904. <style lang="less">
  905. .decision-page-2 {
  906. .content .project-table {
  907. tbody {
  908. height: calc(100vh - 24.5vh);
  909. }
  910. }
  911. .project-table {
  912. overflow: auto;
  913. tbody {
  914. height: 279px;
  915. }
  916. th,
  917. td {
  918. color: #b2bdc0;
  919. &:nth-child(1) {
  920. width: 50px;
  921. }
  922. &:nth-child(2) {
  923. width: 50px;
  924. }
  925. }
  926. }
  927. .action {
  928. text-decoration: underline;
  929. color: @green;
  930. cursor: pointer;
  931. }
  932. }
  933. </style>