Home.vue 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <div class="home">
  3. <Row type="flex">
  4. <Col :span="6">
  5. <Row type="flex">
  6. <Col :span="24">
  7. <com-panel :title="tqmap.name || 'yc'" :sub-title="nowTime + ' 实况'" icon="fa fa-map-marker">
  8. <weather :data="tqmap" />
  9. </com-panel>
  10. </Col>
  11. </Row>
  12. <Row type="flex">
  13. <Col :span="24">
  14. <com-panel title="预测电量" sub-title="(单位:万KWh)">
  15. <list-bar-chart-2 :list="ForecastPower" height="16.6667vh" />
  16. </com-panel>
  17. </Col>
  18. </Row>
  19. <Row type="flex">
  20. <Col :span="24">
  21. <com-panel title="功率复核" sub-title="(单位:万KW)">
  22. <power-review :data="powerData" :id="wpId" @chartClick="showPowerChart" />
  23. </com-panel>
  24. </Col>
  25. </Row>
  26. </Col>
  27. <Col :span="12">
  28. <Map :wpId="wpId" :day="String(jczbmap.aqts || '---')" :data="fcmap" @mapClick="changeShowType"></Map>
  29. </Col>
  30. <Col :span="6">
  31. <Row type="flex">
  32. <Col :span="24">
  33. <com-panel title="电量分析" sub-title="(单位:万KWh)">
  34. <coulometric-analysis />
  35. </com-panel>
  36. </Col>
  37. </Row>
  38. <Row type="flex">
  39. <Col :span="24">
  40. <com-panel title="计划电量完成情况" sub-title="(单位:万KWh)">
  41. <power-plan :data="planData" :title="planBtnName" :showSingle="powerplanShowSingle" :id="wpId" @chartClick="showDownChart" />
  42. </com-panel>
  43. </Col>
  44. </Row>
  45. </Col>
  46. </Row>
  47. <Row type="flex">
  48. <Col :span="12">
  49. <toolbar-panel title="日发电量">
  50. <template v-slot:tools>
  51. <div class="tools">
  52. <div class="tool-block">
  53. <div class="legend bg-green"></div>
  54. <div class="legend-text">日发电量(单位:万KWh)</div>
  55. </div>
  56. <div class="tool-block">
  57. <div class="legend bg-purple"></div>
  58. <div class="legend-text">上网电量(单位:万KWh)</div>
  59. </div>
  60. <div class="tool-block">
  61. <div class="legend bg-orange"></div>
  62. <div class="legend-text">购网电量(单位:万KWh)</div>
  63. </div>
  64. <div class="tool-block">
  65. <div class="legend bg-yellow"></div>
  66. <div class="legend-text">风速</div>
  67. </div>
  68. </div>
  69. </template>
  70. <template v-slot:default>
  71. <!-- 日发电量 -->
  72. <multiple-bar-chart :list="DayPower.value" :units="DayPower.units" height="12.963vh" :showLegend="true" />
  73. </template>
  74. </toolbar-panel>
  75. </Col>
  76. <Col :span="12">
  77. <toolbar-panel title="72小时功率趋势图">
  78. <template v-slot:tools>
  79. <div class="tools">
  80. <div class="tools">
  81. <div class="tool-block">
  82. <div class="legend long bg-green"></div>
  83. <div class="legend-text">应发功率</div>
  84. </div>
  85. <div class="tool-block">
  86. <div class="legend long bg-yellow"></div>
  87. <div class="legend-text">实发功率</div>
  88. </div>
  89. <div class="tool-block">
  90. <div class="legend long bg-purple"></div>
  91. <div class="legend-text">理论功率</div>
  92. </div>
  93. </div>
  94. </div>
  95. </template>
  96. <template v-slot:default>
  97. <multiple-line-chart :list="Powertrend.value" :units="Powertrend.units" height="12.963vh" />
  98. </template>
  99. </toolbar-panel>
  100. </Col>
  101. </Row>
  102. <Row type="flex">
  103. <!-- 下方 table -->
  104. <Col :span="16">
  105. <row>
  106. <Col>
  107. <com-panel>
  108. <table class="table-card">
  109. <tr class="">
  110. <td class="text gray">装机容量</td>
  111. <td class="value green">{{jczbmap.zjrl}}</td>
  112. <td class="unit gray">万kw</td>
  113. </tr>
  114. <tr class="">
  115. <td class="text gray">装机台数</td>
  116. <td class="value green">{{jczbmap.zjts}}</td>
  117. <td class="unit gray">台</td>
  118. </tr>
  119. <tr class="" @click="openDialog('日发电量详情', 'genreset/findDayInfo', 'rfdl', 'table')">
  120. <td class="text gray">日发电量</td>
  121. <td class="value green">{{jczbmap.rfdl}}</td>
  122. <td class="unit gray">万kwh</td>
  123. </tr>
  124. <tr class="" @click="openDialog('月发电量详情', 'genreset/findMonthInfo', 'yfdl', 'table')">
  125. <td class="text gray">月发电量</td>
  126. <td class="value green">{{jczbmap.yfdl}}</td>
  127. <td class="unit gray gray">万kwh</td>
  128. </tr>
  129. <tr class="" @click="openDialog('年发电量详情', 'genreset/findYearInfo', 'nfdl', 'table')">
  130. <td class="text gray">年发电量</td>
  131. <td class="value green">{{jczbmap.nfdl}}</td>
  132. <td class="unit gray">万kwh</td>
  133. </tr>
  134. <tr class="">
  135. <td class="text gray">年设备可利用率</td>
  136. <td class="value green">{{gxkmap.nsbklyl}}</td>
  137. <td class="unit gray">%</td>
  138. </tr>
  139. </table>
  140. </com-panel>
  141. </Col>
  142. <Col>
  143. <com-panel>
  144. <table class="table-card">
  145. <tr class="">
  146. <td class="text gray">MTTR</td>
  147. <td class="value green">{{jczbmap.mttr}}</td>
  148. <td class="unit gray">小时</td>
  149. </tr>
  150. <tr class="">
  151. <td class="text gray">MTBF</td>
  152. <td class="value green">{{jczbmap.mtbf}}</td>
  153. <td class="unit gray">小时</td>
  154. </tr>
  155. <tr class="">
  156. <td class="text gray">上网电量</td>
  157. <td class="value green">{{jczbmap.swdl}}</td>
  158. <td class="unit gray">万kwh</td>
  159. </tr>
  160. <tr class="">
  161. <td class="text gray">月利用小时</td>
  162. <td class="value green">{{jczbmap.ylyxs}}</td>
  163. <td class="unit gray">%</td>
  164. </tr>
  165. <tr class="">
  166. <td class="text gray">年利用小时</td>
  167. <td class="value green">{{jczbmap.nlyxs}}</td>
  168. <td class="unit gray gray">%</td>
  169. </tr>
  170. <tr class="">
  171. <td class="text gray">{{wpId === "0" ? "节约二氧化碳" : "年等效科利用系数"}}</td>
  172. <td class="value green">{{wpId === "0" ? jczbmap.jpeyht : gxkmap.ndxkyss}}</td>
  173. <td class="unit gray">{{wpId === "0" ? "万吨" : "%"}}</td>
  174. </tr>
  175. </table>
  176. </com-panel>
  177. </Col>
  178. <Col>
  179. <com-panel>
  180. <table class="table-card">
  181. <tr class="" @click="openDialog('日性能损失详情', 'genreset/findDayInfo', 'rxnssdl', 'table')">
  182. <td class="text gray">日性能损失</td>
  183. <td class="value green">{{wxssmap.rqfssdl}}</td>
  184. <td class="unit gray">万kwh</td>
  185. </tr>
  186. <tr class="" @click="openDialog('日故障损失详情', 'genreset/findDayInfo', 'rgzssdl', 'table')">
  187. <td class="text gray">日故障损失</td>
  188. <td class="value green">{{wxssmap.rgzssdl}}</td>
  189. <td class="unit gray">万kwh</td>
  190. </tr>
  191. <tr class="" @click="openDialog('日检修损失详情', 'genreset/findDayInfo', 'rjxssdl', 'table')">
  192. <td class="text gray">日检修损失</td>
  193. <td class="value green">{{wxssmap.rjxssdl}}</td>
  194. <td class="unit gray">万kwh</td>
  195. </tr>
  196. <tr class="" @click="openDialog('日限电损失详情', 'genreset/findDayInfo', 'rxdssdl', 'table')">
  197. <td class="text gray">日限电损失</td>
  198. <td class="value green">{{wxssmap.rxdssdl}}</td>
  199. <td class="unit gray gray">万kwh</td>
  200. </tr>
  201. <tr class="" @click="openDialog('日受累损失详情', 'genreset/findDayInfo', 'rslssdl', 'table')">
  202. <td class="text gray">日受累损失</td>
  203. <td class="value green">{{wxssmap.rslssdl}}</td>
  204. <td class="unit gray">万kwh</td>
  205. </tr>
  206. <tr class="">
  207. <td class="text gray">{{wpId === "0" ? "节约标煤" : "年待机小时"}}</td>
  208. <td class="value green">{{wpId === "0" ? jczbmap.jybm : gxkmap.ndjxs}}</td>
  209. <td class="unit gray">{{wpId === "0" ? "万吨" : "小时"}}</td>
  210. </tr>
  211. </table>
  212. </com-panel>
  213. </Col>
  214. <Col>
  215. <com-panel>
  216. <table class="table-card">
  217. <tr class="" @click="openDialog('月性能损失详情', 'genreset/findMonthInfo', 'yxnssdl', 'table')">
  218. <td class="text gray">月性能损失</td>
  219. <td class="value green">{{wxssmap.yqfssdl}}</td>
  220. <td class="unit gray">万kwh</td>
  221. </tr>
  222. <tr class="" @click="openDialog('月故障损失详情', 'genreset/findMonthInfo', 'ygzssdl', 'table')">
  223. <td class="text gray">月故障损失</td>
  224. <td class="value green">{{wxssmap.ygzssdl}}</td>
  225. <td class="unit gray">万kwh</td>
  226. </tr>
  227. <tr class="" @click="openDialog('月检修损失详情', 'genreset/findMonthInfo', 'yjxssdl', 'table')">
  228. <td class="text gray">月检修损失</td>
  229. <td class="value green">{{wxssmap.yjxssdl}}</td>
  230. <td class="unit gray">万kwh</td>
  231. </tr>
  232. <tr class="" @click="openDialog('月限电损失详情', 'genreset/findMonthInfo', 'yxdssdl', 'table')">
  233. <td class="text gray">月限电损失</td>
  234. <td class="value green">{{wxssmap.yxdssdl}}</td>
  235. <td class="unit gray gray">万kwh</td>
  236. </tr>
  237. <tr class="" @click="openDialog('月受累损失详情', 'genreset/findMonthInfo', 'yslssdl', 'table')">
  238. <td class="text gray">月受累损失</td>
  239. <td class="value green">{{wxssmap.yslssdl}}</td>
  240. <td class="unit gray">万kwh</td>
  241. </tr>
  242. <tr class="">
  243. <td class="text gray">{{wpId === "0" ? "节约二氧化硫" : "年运行小时"}}</td>
  244. <td class="value green">{{wpId === "0" ? jczbmap.jpeyhl : gxkmap.nyxxs}}</td>
  245. <td class="unit gray">{{wpId === "0" ? "万吨" : "小时"}}</td>
  246. </tr>
  247. </table>
  248. </com-panel>
  249. </Col>
  250. <Col>
  251. <com-panel>
  252. <table class="table-card">
  253. <tr class="" @click="openDialog('年性能损失详情', 'genreset/findYearInfo', 'nxnssdl', 'table')">
  254. <td class="text gray">年性能损失</td>
  255. <td class="value green">{{wxssmap.nqfssdl}}</td>
  256. <td class="unit gray">万kwh</td>
  257. </tr>
  258. <tr class="" @click="openDialog('年故障损失详情', 'genreset/findYearInfo', 'ngzssdl', 'table')">
  259. <td class="text gray">年故障损失</td>
  260. <td class="value green">{{wxssmap.ngzssdl}}</td>
  261. <td class="unit gray">万kwh</td>
  262. </tr>
  263. <tr class="" @click="openDialog('年检修损失详情', 'genreset/findYearInfo', 'njxssdl', 'table')">
  264. <td class="text gray">年检修损失</td>
  265. <td class="value green">{{wxssmap.njxssdl}}</td>
  266. <td class="unit gray">万kwh</td>
  267. </tr>
  268. <tr class="" @click="openDialog('年限电损失详情', 'genreset/findYearInfo', 'nxdssdl', 'table')">
  269. <td class="text gray">年限电损失</td>
  270. <td class="value green">{{wxssmap.nxdssdl}}</td>
  271. <td class="unit gray gray">万kwh</td>
  272. </tr>
  273. <tr class="" @click="openDialog('年受累损失详情', 'genreset/findYearInfo', 'nslssdl', 'table')">
  274. <td class="text gray">年受累损失</td>
  275. <td class="value green">{{wxssmap.nslssdl}}</td>
  276. <td class="unit gray">万kwh</td>
  277. </tr>
  278. <tr class="">
  279. <td class="text gray">{{wpId === "0" ? "节约用水" : "年故障小时"}}</td>
  280. <td class="value green">{{wpId === "0" ? jczbmap.jys : gxkmap.ngzxs}}</td>
  281. <td class="unit gray">{{wpId === "0" ? "万吨" : "小时"}}</td>
  282. </tr>
  283. </table>
  284. </com-panel>
  285. </Col>
  286. </row>
  287. </Col>
  288. <!-- 右下角 panel -->
  289. <Col :span="8">
  290. <panel-3 class="situation">
  291. <div class="situation-body">
  292. <row align="middle">
  293. <div class="situation-item fengji">
  294. <div class="icon fengji-icon svg-icon svg-icon-white">
  295. <svg-icon class="" svgid="svg-风机" />
  296. </div>
  297. <div class="info">
  298. <div class="title green">接入风机</div>
  299. <div class="value">{{mxztmap.jrts}}</div>
  300. </div>
  301. </div>
  302. <div class="situation-item">
  303. <div class="icon svg-icon svg-icon-purple">
  304. <svg-icon class="" svgid="svg-待机图标" />
  305. </div>
  306. <div class="info">
  307. <div class="title green">待机</div>
  308. <div class="value">
  309. <span class="text gray">待风</span>
  310. <span>{{mxztmap.djts}}</span>
  311. </div>
  312. <div class="value">
  313. <span class="text gray">手动停机</span>
  314. <span>{{mxztmap.sdtjts}}</span>
  315. </div>
  316. </div>
  317. </div>
  318. <div class="situation-item">
  319. <div class="icon svg-icon svg-icon-green">
  320. <svg-icon class="" svgid="svg-运行图标" />
  321. </div>
  322. <div class="info">
  323. <div class="title green">运行</div>
  324. <div class="value">
  325. <span class="text gray">正常发电</span>
  326. <span>{{mxztmap.yxts}}</span>
  327. </div>
  328. <div class="value">
  329. <span class="text gray">降出力运行</span>
  330. <span>{{mxztmap.fdjclts}}</span>
  331. </div>
  332. </div>
  333. </div>
  334. <div class="situation-item">
  335. <div class="icon svg-icon svg-icon-yellow">
  336. <svg-icon class="" svgid="svg-限电图标" />
  337. </div>
  338. <div class="info">
  339. <div class="title green">限电</div>
  340. <div class="value">
  341. <span class="text gray">限电降出力</span>
  342. <span>{{mxztmap.xdjclts}}</span>
  343. </div>
  344. <div class="value">
  345. <span class="text gray">停机</span>
  346. <span>{{mxztmap.xdtjts}}</span>
  347. </div>
  348. </div>
  349. </div>
  350. </row>
  351. <row align="middle">
  352. <div class="situation-item">
  353. <div class="icon svg-icon svg-icon-red">
  354. <svg-icon class="" svgid="svg-故障图标" />
  355. </div>
  356. <div class="info">
  357. <div class="title green">故障</div>
  358. <div class="value">
  359. <span class="text gray">故障停机</span>
  360. <span>{{mxztmap.gzts}}</span>
  361. </div>
  362. <div class="value">
  363. <span class="text gray">场内受累</span>
  364. <span>{{mxztmap.cnslgzts}}</span>
  365. </div>
  366. </div>
  367. </div>
  368. <div class="situation-item">
  369. <div class="icon svg-icon svg-icon-orange">
  370. <svg-icon class="" svgid="svg-检修图标" />
  371. </div>
  372. <div class="info">
  373. <div class="title green">检修</div>
  374. <div class="value">
  375. <span class="text gray">检修停机</span>
  376. <span>{{mxztmap.jxts}}</span>
  377. </div>
  378. <div class="value">
  379. <span class="text gray">场内受累</span>
  380. <span>{{mxztmap.cnsljxts}}</span>
  381. </div>
  382. </div>
  383. </div>
  384. <div class="situation-item">
  385. <div class="icon svg-icon svg-icon-darkblue">
  386. <svg-icon class="" svgid="svg-受累图标" />
  387. </div>
  388. <div class="info">
  389. <div class="title green">受累</div>
  390. <div class="value">
  391. <span class="text gray">电网</span>
  392. <span>{{mxztmap.dwslts}}</span>
  393. </div>
  394. <div class="value">
  395. <span class="text gray">环境</span>
  396. <span>{{mxztmap.hjslts}}</span>
  397. </div>
  398. </div>
  399. </div>
  400. <div class="situation-item">
  401. <div class="icon svg-icon svg-icon-gray">
  402. <svg-icon class="" svgid="svg-离线图标" />
  403. </div>
  404. <div class="info">
  405. <div class="title green">离线</div>
  406. <div class="value">
  407. <span class="text gray">离线</span>
  408. <span>{{mxztmap.lxts}}</span>
  409. </div>
  410. <div class="value">
  411. <span class="text gray">未知</span>
  412. <span>---</span>
  413. </div>
  414. </div>
  415. </div>
  416. </row>
  417. </div>
  418. </panel-3>
  419. </Col>
  420. </Row>
  421. <el-dialog :title="dialogTitle" v-model="dialogShow" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="true" @closed="dialogType = ''">
  422. <Table :data="dialogData" v-if="dialogType === 'table'" />
  423. <MultipleLineChart height="500px" :units="powerLineChartData.units" :list="powerLineChartData.value" :showLegend="true" v-if="dialogType === 'powerLineChart'" />
  424. <multiple-bar-chart height="500px" :list="doneLineChartData.value" :units="doneLineChartData.units" v-if="dialogType === 'doneLineChart'" />
  425. </el-dialog>
  426. </div>
  427. </template>
  428. <script>
  429. // @ is an alias to /src
  430. import Row from "../../components/coms/grid/row.vue";
  431. import Col from "../../components/coms/grid/col.vue";
  432. import ComPanel from "../../components/coms/panel/panel";
  433. // import ListBarChart from "../../components/chart/bar/list-bar-chart.vue";
  434. import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
  435. import MultipleBarChart from "../../components/chart/bar/multiple-bar-chart.vue";
  436. import MultipleLineChart from "../../components/chart/line/multiple-line-chart.vue";
  437. import Panel3 from "../../components/coms/panel/panel3.vue";
  438. import SvgIcon from "../../components/coms/icon/svg-icon.vue";
  439. import CoulometricAnalysis from "./components/coulometric-analysis.vue";
  440. import Weather from "./components/weather.vue";
  441. import PowerReview from "./components/power-review.vue";
  442. import PowerPlan from "./components/power-plan.vue";
  443. import Map from "./components/map.vue";
  444. import ListBarChart2 from "../../components/chart/bar/list-bar-chart2.vue";
  445. import Table from "./dialog/table.vue";
  446. export default {
  447. name: "Home",
  448. components: {
  449. Row,
  450. Col,
  451. ComPanel,
  452. Weather,
  453. CoulometricAnalysis,
  454. // ListBarChart,
  455. PowerReview,
  456. ToolbarPanel,
  457. PowerPlan,
  458. MultipleBarChart,
  459. MultipleLineChart,
  460. Panel3,
  461. SvgIcon,
  462. Map,
  463. ListBarChart2,
  464. Table
  465. },
  466. data () {
  467. return {
  468. timmer: null, // 计时器
  469. timmer2:null,
  470. jczbmap: {},
  471. wxssmap: {},
  472. gxkmap: {},
  473. mxztmap: {},
  474. planData: {},
  475. powerData: {},
  476. tqmap:{},
  477. nowTime:"",
  478. planBtnName:"全部",
  479. powerLineChartData: {
  480. // 图表所用单位
  481. units: [""],
  482. value: [
  483. {
  484. title: "",
  485. yAxisIndex: 0, // 使用单位
  486. value: [],
  487. },
  488. ],
  489. },
  490. doneLineChartData: {
  491. // 图表所用单位
  492. units: [""],
  493. value: [
  494. {
  495. title: "",
  496. yAxisIndex: 0, // 使用单位
  497. value: [],
  498. },
  499. ],
  500. },
  501. dialogType: null,
  502. wpId: "0",
  503. fcmap:{},
  504. dialogShow: false,
  505. dialogTitle: "",
  506. dialogData:{},
  507. // 预测电量
  508. ForecastPower: [],
  509. // 日发电量
  510. DayPower: {
  511. // 图表所用单位
  512. units: [""],
  513. value: [
  514. {
  515. title: "",
  516. yAxisIndex: 0, // 使用单位
  517. value: [],
  518. },
  519. ],
  520. },
  521. // 72小时功率趋势图
  522. Powertrend: {
  523. // 图表所用单位
  524. units: [""],
  525. value: [
  526. {
  527. title: "",
  528. yAxisIndex: 0, // 使用单位
  529. value: [],
  530. },
  531. ],
  532. },
  533. };
  534. },
  535. methods: {
  536. // 请求服务
  537. requestData (showLoading) {
  538. let that = this;
  539. that.API.requestData({
  540. showLoading,
  541. method: "POST",
  542. subUrl: "genreset/findBasicDataInfo",
  543. timeout: 60000,
  544. data: {
  545. id: that.wpId,
  546. },
  547. success (res) {
  548. let glvos = [];
  549. let rdlKey = ["value1", "value2", "value3"];
  550. let DayPower = {
  551. // 图表所用单位
  552. units: ["(万KWh)"],
  553. value: [{
  554. title: "发电量",
  555. yAxisIndex: 0,
  556. value: []
  557. }, {
  558. title: "上网电量",
  559. yAxisIndex: 0,
  560. value: []
  561. }, {
  562. title: "购网电量",
  563. yAxisIndex: 0,
  564. value: []
  565. }]
  566. };
  567. let glKey = ["value1", "value2", "value3", "value4", "value5", "value6"];
  568. let Powertrend = {
  569. // 图表所用单位
  570. units: ["(万KWh)", "(m/s)"],
  571. value: [{
  572. title: "应发功率",
  573. yAxisIndex: 0,
  574. value: []
  575. }, {
  576. title: "实发功率",
  577. yAxisIndex: 0,
  578. value: []
  579. }, {
  580. title: "理论功率",
  581. yAxisIndex: 0,
  582. value: []
  583. }, {
  584. title: "预测功率",
  585. yAxisIndex: 0,
  586. value: []
  587. }, {
  588. title: "保证功率",
  589. yAxisIndex: 0,
  590. value: []
  591. }, {
  592. title: "平均风速",
  593. yAxisIndex: 1,
  594. value: []
  595. }]
  596. };
  597. rdlKey.forEach((keyEle, keyIndex) => {
  598. res.data.rdlvos.forEach(cEle => {
  599. DayPower.value[keyIndex].value.push({
  600. text: cEle.timestr,
  601. value: cEle[keyEle]
  602. });
  603. });
  604. });
  605. glKey.forEach((keyEle, keyIndex) => {
  606. res.data.glvos.forEach(cEle => {
  607. Powertrend.value[keyIndex].value.push({
  608. text: new Date(cEle.time).formatDate("hh:mm:ss"),
  609. value: cEle[keyEle]
  610. });
  611. });
  612. });
  613. that.powerData = [{
  614. title: "风速",
  615. value: res.data.jczbmap.ssfs,
  616. dialogTitle: "风速详情",
  617. subUrl: "genreset/findGLDetail",
  618. targetName: "ssfs",
  619. dialogType: "powerLineChart",
  620. max: res.data.jczbmap.zjts
  621. }, {
  622. title: "保证功率",
  623. value: res.data.jczbmap.bzgl,
  624. dialogTitle: "保证功率详情",
  625. subUrl: "genreset/findGLDetail",
  626. targetName: "bzgl",
  627. dialogType: "powerLineChart",
  628. max: res.data.jczbmap.zjts
  629. }, {
  630. title: "应发功率",
  631. value: res.data.jczbmap.yfgl,
  632. dialogTitle: "应发功率详情",
  633. subUrl: "genreset/findGLDetail",
  634. targetName: "yfgl",
  635. dialogType: "powerLineChart",
  636. max: res.data.jczbmap.zjts
  637. }, {
  638. title: "实际功率",
  639. value: res.data.jczbmap.sjgl,
  640. dialogTitle: "实际功率详情",
  641. subUrl: "genreset/findGLDetail",
  642. targetName: "sjgl",
  643. dialogType: "powerLineChart",
  644. max: res.data.jczbmap.zjts
  645. }];
  646. that.DayPower = DayPower;
  647. that.Powertrend = Powertrend;
  648. that.jczbmap = res.data.jczbmap;
  649. that.wxssmap = res.data.wxssmap;
  650. that.gxkmap = res.data.gxkmap;
  651. that.mxztmap = res.data.mxztmap;
  652. that.fcmap = res.data.fcmap;
  653. that.tqmap = res.data.tqmap;
  654. that.ForecastPower = [{
  655. name: "当日预测电量",
  656. value: res.data.jczbmap.rycfdl,
  657. total: res.data.jczbmap.rfdlsx
  658. },{
  659. name: "实际发电量",
  660. value: res.data.jczbmap.rfdl,
  661. total: res.data.jczbmap.rfdlsx
  662. },{
  663. name: "当月预测电量",
  664. value: res.data.jczbmap.yycfdl,
  665. total: res.data.jczbmap.yfdlsx
  666. },{
  667. name: "实际发电量",
  668. value: res.data.jczbmap.yfdl,
  669. total: res.data.jczbmap.yfdlsx
  670. }];
  671. that.planData = {
  672. yfdl: res.data.jczbmap.yfdl,
  673. nfdl: res.data.jczbmap.nfdl,
  674. yfdljh: res.data.gxkmap.yfdljh,
  675. nfdljh: res.data.gxkmap.nfdljh,
  676. ywcl: res.data.gxkmap.ywcl,
  677. nwcl: res.data.gxkmap.nwcl
  678. };
  679. },
  680. });
  681. },
  682. // 点击地图展示类型
  683. changeShowType(wpId, planBtnName){
  684. this.planBtnName = planBtnName;
  685. this.jczbmap = {};
  686. clearInterval(this.timmer);
  687. this.timmer = null;
  688. this.wpId = wpId;
  689. this.requestData(false);
  690. this.timmer = setInterval(() => {
  691. this.requestData(false);
  692. }, this.$store.state.websocketTimeSec);
  693. },
  694. // 打开弹窗
  695. openDialog(dialogTitle, subUrl, targetName, dialogType){
  696. this.dialogTitle = dialogTitle;
  697. let that = this;
  698. that.API.requestData({
  699. method: "POST",
  700. subUrl,
  701. data: {
  702. id:that.wpId,
  703. targetName
  704. },
  705. success (res) {
  706. that.dialogShow = true;
  707. that.dialogData = res.data;
  708. that.dialogType = dialogType;
  709. }
  710. });
  711. },
  712. // 显示功率复核图表
  713. showPowerChart(res){
  714. this.dialogTitle = res.dialogTitle;
  715. this.dialogType = res.dialogType;
  716. let powerLineChartData = {
  717. // 图表所用单位
  718. units: [""],
  719. value: [],
  720. };
  721. res.data.forEach((pEle,pIndex)=>{
  722. powerLineChartData.value.push({
  723. title: pEle[0].name,
  724. yAxisIndex: 0,
  725. value: [],
  726. });
  727. pEle.forEach(cEle=>{
  728. powerLineChartData.value[pIndex].value.push({
  729. text: new Date(cEle.time).formatDate("hh:mm:ss"),
  730. value: cEle.value1
  731. });
  732. });
  733. });
  734. this.powerLineChartData = powerLineChartData;
  735. this.dialogShow = true;
  736. },
  737. // 显示计划电量完成情况图表
  738. showDownChart(res){
  739. this.dialogTitle = res.dialogTitle;
  740. this.dialogType = res.dialogType;
  741. this.doneLineChartData = res.data;
  742. this.dialogShow = true;
  743. },
  744. // 地图进入事件
  745. onEnter() {
  746. this.powerplanShowSingle = true;
  747. },
  748. // 地图退出事件
  749. onBack() {
  750. this.powerplanShowSingle = false;
  751. },
  752. },
  753. created () {
  754. let that = this;
  755. that.nowTime = new Date().formatDate("hh:mm:ss");
  756. that.$nextTick(() => {
  757. that.requestData(false);
  758. that.timmer = setInterval(() => {
  759. that.requestData(false);
  760. }, that.$store.state.websocketTimeSec);
  761. that.timmer2 = setInterval(() => {
  762. that.nowTime = new Date().formatDate("hh:mm:ss");
  763. }, 1000);
  764. });
  765. },
  766. unmounted () {
  767. clearInterval(this.timmer);
  768. clearInterval(this.timmer2);
  769. this.timmer = null;
  770. this.timmer2 = null;
  771. }
  772. };
  773. </script>
  774. <style lang="less" scoped>
  775. .grid-content {
  776. background: #333;
  777. height: 1.111vh;
  778. }
  779. .table-card {
  780. background: rgba(255, 255, 255, 0.1);
  781. border-collapse: collapse;
  782. width: 100%;
  783. tr {
  784. font-size: @fontsize-s;
  785. td {
  786. border: 0.093vh solid @darkgray;
  787. padding: 0.556vh 0.741vh;
  788. &.text {
  789. }
  790. &.value {
  791. text-align: right;
  792. font-family: @font-family-num;
  793. }
  794. &.unit {
  795. }
  796. }
  797. }
  798. }
  799. .tools {
  800. display: flex;
  801. .tool-block {
  802. display: flex;
  803. align-items: center;
  804. margin-left: 0.741vh;
  805. .legend {
  806. flex: auto;
  807. width: 0.741vh;
  808. height: 0.741vh;
  809. margin-right: 0.741vh;
  810. &.long {
  811. width: 2.963vh;
  812. height: 0.37vh;
  813. }
  814. }
  815. .legend-text {
  816. color: #ffffff4d;
  817. }
  818. }
  819. }
  820. .situation {
  821. width: 100%;
  822. height: 100%;
  823. .situation-body {
  824. display: flex;
  825. flex-direction: column;
  826. justify-content: center;
  827. height: 100%;
  828. .situation-item {
  829. display: flex;
  830. align-content: center;
  831. flex: 1 1 auto;
  832. align-items: center;
  833. .icon {
  834. svg {
  835. width: 4.167vh;
  836. height: 4.167vh;
  837. }
  838. }
  839. &.fengji {
  840. flex: 0 1 7.99vw;
  841. .info .value {
  842. font-size: 1.852vh;
  843. }
  844. }
  845. .fengji-icon {
  846. padding: 1.111vh;
  847. border-radius: 50%;
  848. box-shadow: inset 1.5px -1px 1px 0px @green;
  849. svg {
  850. width: 2.593vh;
  851. height: 2.593vh;
  852. }
  853. }
  854. .info {
  855. display: flex;
  856. flex-direction: column;
  857. justify-content: center;
  858. margin-left: 0.741vh;
  859. .title {
  860. font-size: @fontsize;
  861. margin-bottom: 0.741vh;
  862. }
  863. .text {
  864. margin-right: 0.741vh;
  865. }
  866. .value {
  867. text-align: right;
  868. font-size: @fontsize-s;
  869. }
  870. }
  871. }
  872. }
  873. }
  874. </style>