Decision2Cjdb.vue 22 KB

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