Decision2Cjdb.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932
  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 "../../components/coms/table/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. name: item.name,
  345. zhpm: item.zhpm,
  346. gzssdl: item.gzssdl,
  347. jxssdlpm: item.jxssdlpm,
  348. jxssdl: item.jxssdl,
  349. xnssdlpm: item.xnssdlpm,
  350. xnssdl: item.xnssdl,
  351. xdssdlpm: item.xdssdlpm,
  352. xdssdl: item.xdssdl,
  353. slssdlpm: item.slssdlpm,
  354. slssdl: item.slssdl,
  355. fnlylpm: item.fnlylpm,
  356. fnlyl: item.fnlyl,
  357. gzsslpm: item.gzsslpm,
  358. gzssl: item.gzssl,
  359. jxsslpm: item.jxsslpm,
  360. jxssl: item.jxssl,
  361. qflpm: item.qflpm,
  362. qfl: item.qfl,
  363. xnsslpm: item.xnsslpm,
  364. xnssl: item.xnssl,
  365. slsslpm: item.slsslpm,
  366. slssl: item.slssl,
  367. is_light: false
  368. })
  369. })
  370. that.tableDataDetail.data = dataTab;
  371. }
  372. });
  373. }
  374. }
  375. ],
  376. data: [],
  377. },
  378. tableDataDetail: {
  379. column: [{
  380. name: "",
  381. field: "index",
  382. is_num: false,
  383. is_light: false,
  384. },
  385. {
  386. name: "",
  387. field: "check",
  388. is_num: false,
  389. is_light: false,
  390. template: function() {
  391. return "<input class='check curCheckBox checkItem' type='CheckBox'/>";
  392. },
  393. click: function(event, data) {
  394. var dataId = that.tableIdArr[data.index - 1];
  395. if (event.target.checked == false && that.checkLength <= 2) {
  396. that.tableId.forEach((item, i) => {
  397. if (item == dataId) {
  398. that.tableId.splice(i, 1);
  399. that.dbData.splice(i, 1);
  400. }
  401. })
  402. that.checkLength--;
  403. } else if (event.target.checked && that.checkLength < 2) {
  404. that.tableId.push(dataId);
  405. that.dbData.push(data);
  406. that.checkLength++;
  407. } else if (that.checkLength == 2) {
  408. event.target.checked = false;
  409. }
  410. },
  411. },
  412. {
  413. name: "风机名称",
  414. field: "name",
  415. is_num: false,
  416. is_light: false,
  417. },
  418. {
  419. name: "综合排名",
  420. field: "zhpm",
  421. is_num: false,
  422. is_light: false,
  423. sortable: true,
  424. },
  425. {
  426. name: "故障损失",
  427. field: "gzssdl",
  428. is_num: false,
  429. is_light: false,
  430. sortable: true,
  431. },
  432. {
  433. name: "检修损失排名",
  434. field: "jxssdlpm",
  435. is_num: false,
  436. is_light: false,
  437. sortable: true,
  438. },
  439. {
  440. name: "检修损失",
  441. field: "jxssdl",
  442. is_num: false,
  443. is_light: false,
  444. sortable: true,
  445. },
  446. {
  447. name: "性能损失排名",
  448. field: "xnssdlpm",
  449. is_num: false,
  450. is_light: false,
  451. sortable: true,
  452. },
  453. {
  454. name: "性能损失",
  455. field: "xnssdl",
  456. is_num: false,
  457. is_light: false,
  458. sortable: true,
  459. },
  460. {
  461. name: "限电损失排名",
  462. field: "xdssdlpm",
  463. is_num: false,
  464. is_light: false,
  465. sortable: true,
  466. },
  467. {
  468. name: "限电损失",
  469. field: "xdssdl",
  470. is_num: false,
  471. is_light: false,
  472. sortable: true,
  473. }, {
  474. name: "受累损失排名",
  475. field: "slssdlpm",
  476. is_num: false,
  477. is_light: false,
  478. sortable: true,
  479. }, {
  480. name: "受累损失",
  481. field: "slssdl",
  482. is_num: false,
  483. is_light: false,
  484. sortable: true,
  485. }, {
  486. name: "故障损失率排名",
  487. field: "gzsslpm",
  488. is_num: false,
  489. is_light: false,
  490. sortable: true,
  491. }, {
  492. name: "故障损失率(%)",
  493. field: "gzssl",
  494. is_num: false,
  495. is_light: false,
  496. sortable: true,
  497. }, {
  498. name: "检修损失率排名",
  499. field: "jxsslpm",
  500. is_num: false,
  501. is_light: false,
  502. sortable: true,
  503. }, {
  504. name: "检修损失率(%)",
  505. field: "jxssl",
  506. is_num: false,
  507. is_light: false,
  508. sortable: true,
  509. }, {
  510. name: "弃风率排名",
  511. field: "qflpm",
  512. is_num: false,
  513. is_light: false,
  514. sortable: true,
  515. }, {
  516. name: "弃风率(%)",
  517. field: "qfl",
  518. is_num: false,
  519. is_light: false,
  520. sortable: true,
  521. }, {
  522. name: "性能损失率排名",
  523. field: "xnsslpm",
  524. is_num: false,
  525. is_light: false,
  526. sortable: true,
  527. }, {
  528. name: "性能损失率(%)",
  529. field: "xnssl",
  530. is_num: false,
  531. is_light: false,
  532. sortable: true,
  533. }, {
  534. name: "受累损失率排名",
  535. field: "slsslpm",
  536. is_num: false,
  537. is_light: false,
  538. sortable: true,
  539. }, {
  540. name: "受累损失率(%)",
  541. field: "slssl",
  542. is_num: false,
  543. is_light: false,
  544. sortable: true,
  545. }
  546. ],
  547. data: [],
  548. },
  549. options: [],
  550. ChangZhan: [], //场站
  551. value1: [],
  552. value4: "",
  553. value5: "",
  554. innerFdl: [], //发电量占比
  555. outerFdl: [],
  556. innerCz: [], //各场站损失电量占比
  557. outerLl: [],
  558. analyis: [], //损失电量分析
  559. dialogVisible: false,
  560. radarValue: [],
  561. windNum: 'dd',
  562. windNum2: 'dd',
  563. tabs: [],
  564. analyisDialog: [],
  565. detailShow: 1,
  566. ajaxData: [],
  567. dbData:[]
  568. };
  569. },
  570. created() {
  571. this.ChangZhanVal();
  572. this.value4 = this.getTime(1);
  573. this.value5 = this.getTime(2);
  574. this.AjaxCommon();
  575. },
  576. methods: {
  577. ChangZhanVal() {
  578. var that = this;
  579. that.API.requestData({
  580. method: "GET",
  581. baseURL: "http://10.155.32.4:9001/",
  582. subUrl: "benchmarking/wplist",
  583. success(res) {
  584. that.ChangZhan = res.data;
  585. }
  586. });
  587. },
  588. ChangZhanChange(val) {
  589. this.value1 = val;
  590. this.AjaxCommon();
  591. this.clearDb();
  592. },
  593. BeginChange(val) {
  594. this.value4 = val;
  595. this.AjaxCommon();
  596. this.clearDb();
  597. },
  598. EndChange(val) {
  599. this.value5 = val;
  600. this.AjaxCommon();
  601. this.clearDb();
  602. },
  603. getTime(val) { //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
  604. var date = new Date();
  605. var year = date.getFullYear(),
  606. month = date.getMonth() + 1,
  607. day = date.getDate();
  608. month >= 1 && month <= 9 ? (month = '0' + month) : '';
  609. day >= 0 && day <= 9 ? (day = '0' + day) : '';
  610. var begin = year + '-' + month + '-01';
  611. var end = year + '-' + month + '-' + day;
  612. if (val == 1) {
  613. return begin;
  614. } else if (val == 2) {
  615. return end;
  616. }
  617. },
  618. AjaxCommon() {
  619. var that = this;
  620. that.API.requestData({ //五项损失率
  621. method: "GET",
  622. baseURL: "http://10.155.32.4:9001/",
  623. subUrl: "benchmarking/cjdb",
  624. data: {
  625. wpids: that.value1,
  626. projectids: that.value2,
  627. lineids: that.value3,
  628. beginDate: that.value4,
  629. endDate: that.value5,
  630. target: '',
  631. sort: ''
  632. },
  633. success(res) {
  634. that.ajaxData = res.data;
  635. var dataTab = [], //表格
  636. fdl = [],
  637. cz = [],
  638. ll = [],
  639. analyis = [],
  640. gzssdl = [],
  641. jxssdl = [],
  642. xnssdl = [],
  643. xdssdl = [],
  644. slssdl = [];
  645. res.data.forEach((item, index) => {
  646. that.tableIdArr.push(item.id);
  647. dataTab.push({ //表格
  648. index: index + 1,
  649. name: item.name,
  650. zhpm: item.zhpm,
  651. fdlpm: item.fdlpm,
  652. fdl: item.fdl,
  653. gzssdlpm: item.gzssdlpm,
  654. gzssdl: item.gzssdl,
  655. jxssdlpm: item.jxssdlpm,
  656. jxssdl: item.jxssdl,
  657. xnssdlpm: item.xnssdlpm,
  658. xnssdl: item.xnssdl,
  659. xdssdlpm: item.xdssdlpm,
  660. xdssdl: item.xdssdl,
  661. slssdlpm: item.slssdlpm,
  662. slssdl: item.slssdl,
  663. fnlylpm: item.fnlylpm,
  664. fnlyl: item.fnlyl,
  665. gzsslpm: item.gzsslpm,
  666. gzssl: item.gzssl,
  667. jxsslpm: item.jxsslpm,
  668. jxssl: item.jxssl,
  669. qflpm: item.qflpm,
  670. qfl: item.qfl,
  671. xnsslpm: item.xnsslpm,
  672. xnssl: item.xnssl,
  673. slsslpm: item.slsslpm,
  674. slssl: item.slssl,
  675. is_light: false
  676. })
  677. fdl.push({
  678. value: item.fdl,
  679. name: item.name
  680. })
  681. cz.push({
  682. value: (item.gzssdl + item.jxssdl + item.xnssdl + item.xdssdl +
  683. item.slssdl).toFixed(2),
  684. name: item.name
  685. })
  686. gzssdl.push({
  687. text: item.name,
  688. value: item.gzssdl
  689. });
  690. jxssdl.push({
  691. text: item.name,
  692. value: item.jxssdl
  693. });
  694. xnssdl.push({
  695. text: item.name,
  696. value: item.xnssdl
  697. });
  698. xdssdl.push({
  699. text: item.name,
  700. value: item.xdssdl
  701. });
  702. slssdl.push({
  703. text: item.name,
  704. value: item.slssdl
  705. });
  706. })
  707. analyis.push({
  708. title: "故障损失电量",
  709. yAxisIndex: 0,
  710. value: gzssdl
  711. }, {
  712. title: "检修损失电量",
  713. yAxisIndex: 0,
  714. value: jxssdl
  715. }, {
  716. title: "性能损失电量",
  717. yAxisIndex: 0,
  718. value: xnssdl
  719. }, {
  720. title: "限电损失电量",
  721. yAxisIndex: 0,
  722. value: xdssdl
  723. }, {
  724. title: "受累损失电量",
  725. yAxisIndex: 0,
  726. value: slssdl
  727. })
  728. that.tableData.data = dataTab;
  729. that.innerFdl = fdl;
  730. that.outerFdl = fdl;
  731. that.innerCz = cz;
  732. that.outerCz = cz;
  733. that.analyis = analyis;
  734. }
  735. });
  736. },
  737. AjaxDbfx() {
  738. var that = this;
  739. var data = that.dbData;
  740. that.windNum = data[0].name;
  741. that.windNum2 = data[1].name;
  742. that.tabs = [{
  743. name: "发电量",
  744. windData1: data[0].fdl,
  745. windData2: data[1].fdl
  746. }, {
  747. name: "故障损失电量",
  748. windData1: data[0].gzssdl,
  749. windData2: data[1].gzssdl
  750. }, {
  751. name: "检修损失电量",
  752. windData1: data[0].jxssdl,
  753. windData2: data[1].jxssdl
  754. }, {
  755. name: "性能未达标损失电量",
  756. windData1: data[0].xnssdl,
  757. windData2: data[1].xnssdl
  758. }, {
  759. name: "受累损失电量",
  760. windData1: data[0].slssdl,
  761. windData2: data[1].slssdl
  762. }, {
  763. name: "风能利用率",
  764. windData1: data[0].fnlyl,
  765. windData2: data[1].fnlyl
  766. }, {
  767. name: "故障损失率",
  768. windData1: data[0].gzssl,
  769. windData2: data[1].gzssl
  770. }, {
  771. name: "检修损失率",
  772. windData1: data[0].jxssl,
  773. windData2: data[1].jxssl
  774. }, {
  775. name: "弃风率",
  776. windData1: data[0].qfl,
  777. windData2: data[1].qfl
  778. }, {
  779. name: "性能损失率",
  780. windData1: data[0].xnssl,
  781. windData2: data[1].xnssl
  782. }, {
  783. name: "受累损失率",
  784. windData1: data[0].slssl,
  785. windData2: data[1].slssl
  786. }];
  787. that.radarValue = [{
  788. indicator: ["风能利用率", "故障损失率", "检修损失率", "弃风率", "性能损失率", "受累损失率"],
  789. data: [{
  790. value: [data[0].fnlylpm, data[0].gzsslpm, data[0].jxsslpm, data[0].qflpm,
  791. data[0].xnsslpm, data[0].slsslpm
  792. ]
  793. }, {
  794. value: [data[1].fnlylpm, data[1].gzsslpm, data[1].jxsslpm, data[1].qflpm,
  795. data[1].xnsslpm, data[1].slsslpm
  796. ]
  797. }]
  798. }];
  799. var analyis = [],
  800. gzssdl = [],
  801. jxssdl = [],
  802. xnssdl = [],
  803. xdssdl = [],
  804. slssdl = [];
  805. data.forEach((item, index) => {
  806. gzssdl.push({
  807. text: item.name,
  808. value: item.gzssdl
  809. });
  810. jxssdl.push({
  811. text: item.name,
  812. value: item.jxssdl
  813. });
  814. xnssdl.push({
  815. text: item.name,
  816. value: item.xnssdl
  817. });
  818. xdssdl.push({
  819. text: item.name,
  820. value: item.xdssdl
  821. });
  822. slssdl.push({
  823. text: item.name,
  824. value: item.slssdl
  825. });
  826. })
  827. analyis.push({
  828. title: "故障损失电量",
  829. yAxisIndex: 0,
  830. value: gzssdl
  831. }, {
  832. title: "检修损失电量",
  833. yAxisIndex: 0,
  834. value: jxssdl
  835. }, {
  836. title: "性能损失电量",
  837. yAxisIndex: 0,
  838. value: xnssdl
  839. }, {
  840. title: "限电损失电量",
  841. yAxisIndex: 0,
  842. value: xdssdl
  843. }, {
  844. title: "受累损失电量",
  845. yAxisIndex: 0,
  846. value: slssdl
  847. })
  848. that.analyisDialog = analyis;
  849. },
  850. tooltip(param, callback) {
  851. var color = ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"];
  852. var result = param[0].axisValue;
  853. param.forEach((value, index) => {
  854. result += "<br />" +
  855. `<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${color[index]};"></span>` +
  856. value.seriesName + ":" + value.value;
  857. });
  858. callback(result);
  859. return true;
  860. },
  861. dbfx() {
  862. var that = this;
  863. if (that.tableId.length == 2) {
  864. that.dialogVisible = true;
  865. this.AjaxDbfx();
  866. this.clearDb();
  867. }
  868. },
  869. clearDb() { //清空对标状态
  870. this.$refs.curRef.clearCheckBox();
  871. this.tableId = [];
  872. this.dbData = [];
  873. this.checkLength = 0;
  874. },
  875. back() {
  876. this.detailShow = 1;
  877. this.clearDb();
  878. },
  879. onSort(){
  880. this.clearDb();
  881. }
  882. }
  883. };
  884. </script>
  885. <style lang="less">
  886. .decision-page-2 {
  887. .content .project-table {
  888. tbody {
  889. height: calc(100vh - 24.5vh);
  890. }
  891. }
  892. .project-table {
  893. overflow: auto;
  894. tbody {
  895. height: 239px;
  896. }
  897. th,
  898. td {
  899. color: #b2bdc0;
  900. &:nth-child(1) {
  901. width: 50px;
  902. }
  903. &:nth-child(2) {
  904. width: 50px;
  905. }
  906. }
  907. }
  908. .action {
  909. text-decoration: underline;
  910. color: @green;
  911. cursor: pointer;
  912. }
  913. }
  914. </style>