GradeEvaluation.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
  1. <template>
  2. <div class="box">
  3. <div class="overallSituation">
  4. <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card" style="width: 100%;margin: 0.5%;height: 130px;">
  5. <el-tab-pane label="风机日信息等级评估管理" name="first" :key="'first'">
  6. <div style="float: left;">查询条件</div>
  7. <div style="margin-left: 5%;width: 20%;float: left;">
  8. <span>风场</span>
  9. <el-select v-model="value" placeholder="请选择" style="margin-left: 5%;" @change="currentSel">
  10. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
  11. </el-option>
  12. </el-select>
  13. </div>
  14. <div class="block" style="width:20%;float: left;">
  15. <span>日期</span>
  16. <el-date-picker v-model="value1" type="date" placeholder="选择日期" style="margin-left: 5%;">
  17. </el-date-picker>
  18. </div>
  19. <div style="width: 2%; float:left;margin-left: 10%;">
  20. <el-button type="primary" @click="dialogTableVisibleOpen()">对比</el-button>
  21. </div>
  22. <div style="width: 2%; float:left;margin-left: 10%;">
  23. <el-button type="primary" @click="exportData()">导出</el-button>
  24. </div>
  25. <el-dialog class="el-dialog_body" width="65%" title="日信息对比" :visible.sync="dialogTableVisible" append-to-body>
  26. <div class="margin">
  27. <div class="dialogLeftData">
  28. <el-table
  29. :data="sortInOrderTop"
  30. height="97"
  31. border
  32. :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'0px' }"
  33. :row-style="{height:'10px'}"
  34. style="width: 100%;font-size: 10px;">
  35. <el-table-column
  36. prop="lhpj"
  37. :label=fanNumber1
  38. width="252.5">
  39. </el-table-column>
  40. <el-table-column
  41. prop="zhpm"
  42. :label=fanNumber2
  43. width="252.5">
  44. </el-table-column>
  45. </el-table>
  46. <div id="leiDaTu" class="echart"></div>
  47. </div>
  48. <div class="dialogRightData">
  49. <el-table :data="sortInOrder" height="618"
  50. :row-style="{ height: '10px' }"
  51. border :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'1px' }"
  52. style="width: 100%;font-size: 10px;">
  53. <el-table-column label="基础指标">
  54. <el-table-column prop="lx" label="类型" width="85">
  55. </el-table-column>
  56. <el-table-column prop="index" label="指标" width="115">
  57. </el-table-column>
  58. <el-table-column prop="data1" :label=fan1 width="100">
  59. </el-table-column>
  60. <el-table-column prop="data2" :label=fan2 width="100">
  61. </el-table-column>
  62. <el-table-column prop="ranking1" :label=ranking1 width="74">
  63. </el-table-column>
  64. <el-table-column prop="ranking2" :label=ranking2 width="74">
  65. </el-table-column>
  66. <el-table-column prop="score1" :label=score1 width="74">
  67. </el-table-column>
  68. <el-table-column prop="score2" :label=score2 width="74">
  69. </el-table-column>
  70. </el-table-column>
  71. </el-table>
  72. </div>
  73. </div>
  74. </el-dialog>
  75. </el-tab-pane>
  76. <el-tab-pane label="风机月信息等级评估管理" name="second" :key="'second'">
  77. <div style="float: left;">查询条件</div>
  78. <div style="margin-left: 5%;width: 20%;float: left;">
  79. <span>风场</span>
  80. <el-select v-model="value" placeholder="请选择" style="margin-left: 5%;" @change="currentSel">
  81. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
  82. </el-option>
  83. </el-select>
  84. </div>
  85. <div class="block" style="width:20%;float: left;">
  86. <span>日期</span>
  87. <el-date-picker v-model="value1" type="month" placeholder="选择月" style="margin-left: 5%;">
  88. </el-date-picker>
  89. <!-- <el-date-picker v-model="value1" type="date" placeholder="选择日期" style="margin-left: 5%;">
  90. </el-date-picker> -->
  91. </div>
  92. <div style="width: 2%; float:left;margin-left: 10%;">
  93. <el-button type="primary" @click="dialogTableVisibleOpenMonth()">对比</el-button>
  94. </div>
  95. <el-dialog class="el-dialog_body" width="65%" title="月信息对比" :visible.sync="dialogTableVisibleMonth"
  96. append-to-body>
  97. <div class="margin">
  98. <div class="dialogLeftData">
  99. <el-table
  100. :data="sortInOrderTop"
  101. height="97"
  102. border
  103. :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'0px' }"
  104. :row-style="{height:'10px'}"
  105. style="width: 100%;font-size: 10px;">
  106. <el-table-column
  107. prop="lhpj"
  108. :label=fanNumber1
  109. width="252.5">
  110. </el-table-column>
  111. <el-table-column
  112. prop="zhpm"
  113. :label=fanNumber2
  114. width="252.5">
  115. </el-table-column>
  116. </el-table>
  117. <div id="leiDaTu2" class="echart"></div>
  118. </div>
  119. <div class="dialogRightData">
  120. <el-table :data="sortInOrder" height="618"
  121. :row-style="{ height: '10px' }"
  122. border :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'1px' }"
  123. style="width: 100%;font-size: 10px;">
  124. <el-table-column label="基础指标">
  125. <el-table-column prop="lx" label="类型" width="85">
  126. </el-table-column>
  127. <el-table-column prop="index" label="指标" width="115">
  128. </el-table-column>
  129. <el-table-column prop="data1" :label=fan1 width="100">
  130. </el-table-column>
  131. <el-table-column prop="data2" :label=fan2 width="100">
  132. </el-table-column>
  133. <el-table-column prop="ranking1" :label=ranking1 width="74">
  134. </el-table-column>
  135. <el-table-column prop="ranking2" :label=ranking2 width="74">
  136. </el-table-column>
  137. <el-table-column prop="score1" :label=score1 width="74">
  138. </el-table-column>
  139. <el-table-column prop="score2" :label=score2 width="74">
  140. </el-table-column>
  141. </el-table-column>
  142. </el-table>
  143. </div>
  144. </div>
  145. </el-dialog>
  146. </el-tab-pane>
  147. <el-tab-pane label="风机年信息等级评估管理" name="cord" :key="'cord'">
  148. <div style="float: left;">查询条件</div>
  149. <div style="margin-left: 5%;width: 20%;float: left;">
  150. <span>风场</span>
  151. <el-select v-model="value" placeholder="请选择" style="margin-left: 5%;" @change="currentSel">
  152. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
  153. </el-option>
  154. </el-select>
  155. </div>
  156. <div class="block" style="width:20%;float: left;">
  157. <span>日期</span>
  158. <el-date-picker v-model="value1" type="year" placeholder="选择年" style="margin-left: 5%;">
  159. </el-date-picker>
  160. <!-- <el-date-picker v-model="value1" type="date" placeholder="选择日期" style="margin-left: 5%;">
  161. </el-date-picker> -->
  162. </div>
  163. <div style="width: 2%; float:left;margin-left: 10%;">
  164. <el-button type="primary" @click="dialogTableVisibleOpenYear()">对比</el-button>
  165. </div>
  166. <el-dialog class="el-dialog_body" width="65%" title="年信息对比" :visible.sync="dialogTableVisibleYear" append-to-body>
  167. <div class="margin">
  168. <div class="dialogLeftData">
  169. <el-table
  170. :data="sortInOrderTop"
  171. height="97"
  172. border
  173. :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'0px' }"
  174. :row-style="{height:'10px'}"
  175. style="width: 100%;font-size: 10px;">
  176. <el-table-column
  177. prop="lhpj"
  178. :label=fanNumber1
  179. width="252.5">
  180. </el-table-column>
  181. <el-table-column
  182. prop="zhpm"
  183. :label=fanNumber2
  184. width="252.5">
  185. </el-table-column>
  186. </el-table>
  187. <div id="leiDaTu3" class="echart"></div>
  188. </div>
  189. <div class="dialogRightData">
  190. <el-table :data="sortInOrder" height="618"
  191. :row-style="{ height: '10px' }"
  192. border :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'1px' }"
  193. style="width: 100%;font-size: 10px;">
  194. <el-table-column label="基础指标">
  195. <el-table-column prop="lx" label="类型" width="85">
  196. </el-table-column>
  197. <el-table-column prop="index" label="指标" width="115">
  198. </el-table-column>
  199. <el-table-column prop="data1" :label=fan1 width="100">
  200. </el-table-column>
  201. <el-table-column prop="data2" :label=fan2 width="100">
  202. </el-table-column>
  203. <el-table-column prop="ranking1" :label=ranking1 width="74">
  204. </el-table-column>
  205. <el-table-column prop="ranking2" :label=ranking2 width="74">
  206. </el-table-column>
  207. <el-table-column prop="score1" :label=score1 width="74">
  208. </el-table-column>
  209. <el-table-column prop="score2" :label=score2 width="74">
  210. </el-table-column>
  211. </el-table-column>
  212. </el-table>
  213. </div>
  214. </div>
  215. </el-dialog>
  216. </el-tab-pane>
  217. </el-tabs>
  218. <el-main v-if="dailyInformation == true">
  219. <el-table id="test1" :data="gridData" height="595" @selection-change="handleSelectionChange" :header-cell-style="headStyle"
  220. :cell-style="{ textAlign: 'center' }" style="font-size: 10px;">
  221. <el-table-column label="等级评定日信息查看">
  222. <el-table-column type="selection" width="55">
  223. </el-table-column>
  224. <el-table-column prop="windturbineid" label="风机编号" width="85">
  225. </el-table-column>
  226. <el-table-column prop="level" label="等级" width="65">
  227. </el-table-column>
  228. <el-table-column prop="rank" label="综合排名" width="85">
  229. </el-table-column>
  230. <el-table-column prop="dayfdl" label="发电量" width="75">
  231. </el-table-column>
  232. <el-table-column prop="dayllfdl" label="理论发电量" width="105">
  233. </el-table-column>
  234. <el-table-column prop="dayfs" label="平均风速" width="85">
  235. </el-table-column>
  236. <el-table-column prop="daygl" label="平均功率" width="85">
  237. </el-table-column>
  238. <el-table-column prop="daygzssdl" label="故障损失" width="85">
  239. </el-table-column>
  240. <el-table-column prop="dayxdssdl" label="限电损失" width="85">
  241. </el-table-column>
  242. <el-table-column prop="daywhssdl" label="维护损失" width="85">
  243. </el-table-column>
  244. <el-table-column prop="dayxnssdl" label="性能损失" width="85">
  245. </el-table-column>
  246. <el-table-column prop="dayslssdl" label="日受累损失电量" width="120">
  247. </el-table-column>
  248. <el-table-column prop="daylyxs" label="利用小时数" width="105">
  249. </el-table-column>
  250. <el-table-column prop="daynhyd" label="拟合优度" width="85">
  251. </el-table-column>
  252. <el-table-column prop="daysbklyl" label="设备可利用率" width="105">
  253. </el-table-column>
  254. <el-table-column prop="daydxkyxs" label="等效可用系数" width="105">
  255. </el-table-column>
  256. <el-table-column prop="dayyxfss" label="有效风时数" width="105">
  257. </el-table-column>
  258. <el-table-column prop="dayxfqr" label="平均切入风速" width="105">
  259. </el-table-column>
  260. <el-table-column prop="dayjfpl" label="静风频率" width="85">
  261. </el-table-column>
  262. <el-table-column prop="dayglyzxxs" label="功率一致性系数" width="120">
  263. </el-table-column>
  264. </el-table-column>
  265. </el-table>
  266. <div style="text-align: center;">
  267. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage2"
  268. :page-size="pagesize" layout="prev, pager, next" :total="1000">
  269. </el-pagination>
  270. </div>
  271. </el-main>
  272. <el-main v-if="monthlyInformation == true">
  273. <el-table :data="gridDataMonth" height="595" @selection-change="handleSelectionChange" :header-cell-style="headStyle"
  274. :cell-style="{ textAlign: 'center' }" style="font-size: 10px;">
  275. <el-table-column label="等级评定月信息查看">
  276. <el-table-column type="selection" width="55">
  277. </el-table-column>
  278. <el-table-column prop="windturbineid" label="风机编号" width="85">
  279. </el-table-column>
  280. <el-table-column prop="level" label="等级" width="65">
  281. </el-table-column>
  282. <el-table-column prop="rank" label="综合排名" width="85">
  283. </el-table-column>
  284. <el-table-column prop="dayfdl" label="发电量" width="75">
  285. </el-table-column>
  286. <el-table-column prop="dayllfdl" label="理论发电量" width="105">
  287. </el-table-column>
  288. <el-table-column prop="dayfs" label="平均风速" width="85">
  289. </el-table-column>
  290. <el-table-column prop="daygl" label="平均功率" width="85">
  291. </el-table-column>
  292. <el-table-column prop="daygzssdl" label="故障损失" width="85">
  293. </el-table-column>
  294. <el-table-column prop="dayxdssdl" label="限电损失" width="85">
  295. </el-table-column>
  296. <el-table-column prop="daywhssdl" label="维护损失" width="85">
  297. </el-table-column>
  298. <el-table-column prop="dayxnssdl" label="性能损失" width="85">
  299. </el-table-column>
  300. <el-table-column prop="dayslssdl" label="日受累损失电量" width="120">
  301. </el-table-column>
  302. <el-table-column prop="daylyxs" label="利用小时数" width="105">
  303. </el-table-column>
  304. <el-table-column prop="daynhyd" label="拟合优度" width="85">
  305. </el-table-column>
  306. <el-table-column prop="daysbklyl" label="设备可利用率" width="105">
  307. </el-table-column>
  308. <el-table-column prop="daydxkyxs" label="等效可用系数" width="105">
  309. </el-table-column>
  310. <el-table-column prop="dayyxfss" label="有效风时数" width="105">
  311. </el-table-column>
  312. <el-table-column prop="dayxfqr" label="平均切入风速" width="105">
  313. </el-table-column>
  314. <el-table-column prop="dayjfpl" label="静风频率" width="85">
  315. </el-table-column>
  316. <el-table-column prop="dayglyzxxs" label="功率一致性系数" width="120">
  317. </el-table-column>
  318. </el-table-column>
  319. </el-table>
  320. <div style="text-align: center;">
  321. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage2"
  322. :page-size="pagesize" layout="prev, pager, next" :total="1000">
  323. </el-pagination>
  324. </div>
  325. </el-main>
  326. <el-main v-if="annualInformation == true">
  327. <el-table :data="gridDataYear" height="595" @selection-change="handleSelectionChange" :header-cell-style="headStyle"
  328. :cell-style="{ textAlign: 'center' }" style="font-size: 10px;">
  329. <el-table-column label="等级评定年信息查看">
  330. <el-table-column type="selection" width="55">
  331. </el-table-column>
  332. <el-table-column prop="windturbineid" label="风机编号" width="85">
  333. </el-table-column>
  334. <el-table-column prop="level" label="等级" width="65">
  335. </el-table-column>
  336. <el-table-column prop="rank" label="综合排名" width="85">
  337. </el-table-column>
  338. <el-table-column prop="dayfdl" label="发电量" width="75">
  339. </el-table-column>
  340. <el-table-column prop="dayllfdl" label="理论发电量" width="105">
  341. </el-table-column>
  342. <el-table-column prop="dayfs" label="平均风速" width="85">
  343. </el-table-column>
  344. <el-table-column prop="daygl" label="平均功率" width="85">
  345. </el-table-column>
  346. <el-table-column prop="daygzssdl" label="故障损失" width="85">
  347. </el-table-column>
  348. <el-table-column prop="dayxdssdl" label="限电损失" width="85">
  349. </el-table-column>
  350. <el-table-column prop="daywhssdl" label="维护损失" width="85">
  351. </el-table-column>
  352. <el-table-column prop="dayxnssdl" label="性能损失" width="85">
  353. </el-table-column>
  354. <el-table-column prop="dayslssdl" label="日受累损失电量" width="120">
  355. </el-table-column>
  356. <el-table-column prop="daylyxs" label="利用小时数" width="105">
  357. </el-table-column>
  358. <el-table-column prop="daynhyd" label="拟合优度" width="85">
  359. </el-table-column>
  360. <el-table-column prop="daysbklyl" label="设备可利用率" width="105">
  361. </el-table-column>
  362. <el-table-column prop="daydxkyxs" label="等效可用系数" width="105">
  363. </el-table-column>
  364. <el-table-column prop="dayyxfss" label="有效风时数" width="105">
  365. </el-table-column>
  366. <el-table-column prop="dayxfqr" label="平均切入风速" width="105">
  367. </el-table-column>
  368. <el-table-column prop="dayjfpl" label="静风频率" width="85">
  369. </el-table-column>
  370. <el-table-column prop="dayglyzxxs" label="功率一致性系数" width="120">
  371. </el-table-column>
  372. </el-table-column>
  373. </el-table>
  374. <div style="text-align: center;">
  375. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage2"
  376. :page-size="pagesize" layout="prev, pager, next" :total="1000">
  377. </el-pagination>
  378. </div>
  379. </el-main>
  380. </div>
  381. </div>
  382. </template>
  383. <script>
  384. import excelHelper from "@/utils/excelHelper";
  385. export default {
  386. data() {
  387. return {
  388. options: [{
  389. value: 'MHS_FDC',
  390. label: '麻黄山'
  391. }, {
  392. value: 'NSS_FDC',
  393. label: '牛首山'
  394. }],
  395. gridData: [],
  396. gridDataMonth:[],
  397. gridDataYear:[],
  398. value: 'NSS_FDC',
  399. value1: '2021-01-01',
  400. yearvalue:'',
  401. monthvalue:'',
  402. dialogTableVisible: false,
  403. dialogTableVisibleMonth: false,
  404. dialogTableVisibleYear: false,
  405. multipleSelection: [],
  406. currentPage2: 1,
  407. pagesize: 10,
  408. radarChartData1: [],
  409. radarChartData2: [],
  410. radarChartName: "",
  411. radatChartWindturbineid1: '',
  412. radatChartWindturbineid2: '',
  413. fan1: '',
  414. fan2: '',
  415. fanNumber1 : '',
  416. fanNumber2 : '',
  417. dailyInformation: true,
  418. monthlyInformation: false,
  419. annualInformation: false,
  420. activeName: 'first',
  421. sortInOrder : [],
  422. sortInOrderTop: [],
  423. ranking1:'',
  424. ranking2:'',
  425. score1:'',
  426. score2:''
  427. }
  428. },
  429. created() {
  430. },
  431. mounted() {
  432. this.gradeByDaygData();
  433. this.gamonthlistByPage();
  434. this.gayearlistByPage();
  435. },
  436. methods: {
  437. handleOpen(key, keyPath) {
  438. console.log(key, keyPath);
  439. },
  440. handleClose(key, keyPath) {
  441. console.log(key, keyPath);
  442. },
  443. headStyle() {
  444. return "text-align:center"
  445. },
  446. currentSel(){
  447. this.gradeByDaygData();
  448. this.gamonthlistByPage();
  449. this.gayearlistByPage();
  450. },
  451. handleSelectionChange(val) {
  452. this.sortInOrder = [];
  453. this.sortInOrderTop = [];
  454. this.multipleSelection = val;
  455. if( this.multipleSelection.length==2)
  456. {
  457. this.fan1 = this.multipleSelection[0].windturbineid
  458. this.fanNumber1='风机编号:'+ this.fan1;
  459. this.fan2 = this.multipleSelection[1].windturbineid
  460. this.fanNumber2='风机编号:'+ this.fan2;
  461. this.ranking1 = '排名:' + this.fan1.slice(5);
  462. this.ranking2 = '排名:' + this.fan2.slice(5);
  463. this.score1 = '评分:' + this.fan1.slice(5);
  464. this.score2 = '评分:' + this.fan2.slice(5);
  465. this.sortInOrderTop.push({lhpj:'量化评级:' + this.multipleSelection[0].level,zhpm:'量化评级:' + this.multipleSelection[1].level});
  466. this.sortInOrderTop.push({lhpj:'综合排名:' + this.multipleSelection[0].rank,zhpm: '综合排名:' + this.multipleSelection[1].rank});
  467. this.sortInOrder.push({lx:'',index: '发电量',data1:this.multipleSelection[0].dayfdl,data2:this.multipleSelection[1].dayfdl,ranking1:this.multipleSelection[0].monthfdl,ranking2:this.multipleSelection[1].monthfdl,score1:this.multipleSelection[0].yearfdl,score2:this.multipleSelection[1].yearfdl});
  468. this.sortInOrder.push({lx:'',index: '理论发电量',data1:this.multipleSelection[0].dayllfdl,data2:this.multipleSelection[1].dayllfdl,ranking1:this.multipleSelection[0].monthllfdl,ranking2:this.multipleSelection[1].monthllfdl,score1:this.multipleSelection[0].yearllfdl,score2:this.multipleSelection[1].yearllfdl});
  469. this.sortInOrder.push({lx:'',index: '平均功率' ,data1:this.multipleSelection[0].daygl,data2:this.multipleSelection[1].daygl,ranking1:this.multipleSelection[0].monthgl,ranking2:this.multipleSelection[1].monthgl,score1:this.multipleSelection[0].yeargl,score2:this.multipleSelection[1].yeargl});
  470. this.sortInOrder.push({lx:'',index: '故障损失电量',data1:this.multipleSelection[0].daygzssdl,data2:this.multipleSelection[1].daygzssdl,ranking1:this.multipleSelection[0].monthgzssdl,ranking2:this.multipleSelection[1].monthgzssdl,score1:this.multipleSelection[0].yeargzssdl,score2:this.multipleSelection[1].yeargzssdl});
  471. this.sortInOrder.push({lx:'',index: '限电损失电量',data1:this.multipleSelection[0].dayxdssdl,data2:this.multipleSelection[1].dayxdssdl,ranking1:this.multipleSelection[0].monthxdssdl,ranking2:this.multipleSelection[1].monthxdssdl,score1:this.multipleSelection[0].yearxdssdl,score2:this.multipleSelection[1].yearxdssdl});
  472. this.sortInOrder.push({lx:'',index: '维护损失电量',data1:this.multipleSelection[0].daywhssdl,data2:this.multipleSelection[1].daywhssdl,ranking1:this.multipleSelection[0].monthwhssdl,ranking2:this.multipleSelection[1].monthwhssdl,score1:this.multipleSelection[0].yearwhssdl,score2:this.multipleSelection[1].yearwhssdl});
  473. this.sortInOrder.push({lx:'',index: '故障时间',data1:this.multipleSelection[0].daygzsj,data2:this.multipleSelection[1].daygzsj,ranking1:this.multipleSelection[0].monthgzsj,ranking2:this.multipleSelection[1].monthgzsj,score1:this.multipleSelection[0].yeargzsj,score2:this.multipleSelection[1].yeargzsj});
  474. this.sortInOrder.push({lx:'',index: '维护时间',data1:this.multipleSelection[0].daywhsj,data2:this.multipleSelection[1].daywhsj,ranking1:this.multipleSelection[0].monthwhsj,ranking2:this.multipleSelection[1].monthwhsj,score1:this.multipleSelection[0].yearwhsj,score2:this.multipleSelection[1].yearwhsj});
  475. this.sortInOrder.push({lx:'',index: '运行时间',data1:this.multipleSelection[0].dayyxsj,data2:this.multipleSelection[1].dayyxsj,ranking1:this.multipleSelection[0].monthyxsj,ranking2:this.multipleSelection[1].monthyxsj,score1:this.multipleSelection[0].yearyxsj,score2:this.multipleSelection[1].yearyxsj});
  476. this.sortInOrder.push({lx:'',index: '停机时间',data1:this.multipleSelection[0].daytjsj,data2:this.multipleSelection[1].daytjsj,ranking1:this.multipleSelection[0].monthtjsj,ranking2:this.multipleSelection[1].monthtjsj,score1:this.multipleSelection[0].yeartjsj,score2:this.multipleSelection[1].yeartjsj});
  477. this.sortInOrder.push({lx:'性能',index: '平均切入风速',data1:this.multipleSelection[0].dayxfqr,data2:this.multipleSelection[1].dayxfqr,ranking1:this.multipleSelection[0].monthxfqr,ranking2:this.multipleSelection[1].monthxfqr,score1:this.multipleSelection[0].yearxfqr,score2:this.multipleSelection[1].yearxfqr});
  478. this.sortInOrder.push({lx:'性能',index: '性能损失电量',data1:this.multipleSelection[0].dayxnssdl,data2:this.multipleSelection[1].dayxnssdl,ranking1:this.multipleSelection[0].monthxnssdl,ranking2:this.multipleSelection[1].monthxnssdl,score1:this.multipleSelection[0].yearxnssdl,score2:this.multipleSelection[1].yearxnssdl});
  479. this.sortInOrder.push({lx:'性能',index: '拟合优度',data1:this.multipleSelection[0].daynhyd,data2:this.multipleSelection[1].daynhyd,ranking1:this.multipleSelection[0].monthnhyd,ranking2:this.multipleSelection[1].monthnhyd,score1:this.multipleSelection[0].yearnhyd,score2:this.multipleSelection[1].yearnhyd});
  480. this.sortInOrder.push({lx:'性能',index: '功率一致性系数',data1:this.multipleSelection[0].dayglyzxxs,data2:this.multipleSelection[1].dayglyzxxs,ranking1:this.multipleSelection[0].monthglyzxxs,ranking2:this.multipleSelection[1].monthglyzxxs,score1:this.multipleSelection[0].yearglyzxxs,score2:this.multipleSelection[1].yearglyzxxs});
  481. this.sortInOrder.push({lx:'可靠性管理',index: '利用小时',data1:this.multipleSelection[0].daylyxs,data2:this.multipleSelection[1].daylyxs,ranking1:this.multipleSelection[0].monthlyxs,ranking2:this.multipleSelection[1].monthlyxs,score1:this.multipleSelection[0].yearlyxs,score2:this.multipleSelection[1].yearlyxs});
  482. this.sortInOrder.push({lx:'可靠性管理',index: '设备可利用率',data1:this.multipleSelection[0].daysbklyl,data2:this.multipleSelection[1].daysbklyl,ranking1:this.multipleSelection[0].monthsbklyl,ranking2:this.multipleSelection[1].monthsbklyl,score1:this.multipleSelection[0].yearsbklyl,score2:this.multipleSelection[1].yearsbklyl});
  483. this.sortInOrder.push({lx:'可靠性管理',index: '等效可利用系数',data1:this.multipleSelection[0].daydxkyxs,data2:this.multipleSelection[1].daydxkyxs,ranking1:this.multipleSelection[0].monthdxkyxs,ranking2:this.multipleSelection[1].monthdxkyxs,score1:this.multipleSelection[0].yeardxkyxs,score2:this.multipleSelection[1].yeardxkyxs});
  484. this.sortInOrder.push({lx:'可靠性管理',index: '有效风时速',data1:this.multipleSelection[0].dayyxfss,data2:this.multipleSelection[1].dayyxfss,ranking1:this.multipleSelection[0].monthyxfss,ranking2:this.multipleSelection[1].monthyxfss,score1:this.multipleSelection[0].yearyxfss,score2:this.multipleSelection[1].yearyxfss});
  485. this.sortInOrder.push({lx:'资源',index: '平均风速',data1:this.multipleSelection[0].dayfs,data2:this.multipleSelection[1].dayfs,ranking1:this.multipleSelection[0].monthfs,ranking2:this.multipleSelection[1].monthfs,score1:this.multipleSelection[0].yearfs,score2:this.multipleSelection[1].yearfs});
  486. this.sortInOrder.push({lx:'资源',index: '静风频率',data1:this.multipleSelection[0].daygl,data2:this.multipleSelection[1].daygl,ranking1:this.multipleSelection[0].monthgl,ranking2:this.multipleSelection[1].monthgl,score1:this.multipleSelection[0].yeargl,score2:this.multipleSelection[1].yeargl});
  487. this.radarChartData();
  488. }
  489. },
  490. handleSizeChange(val) {
  491. console.log(`每页 ${val} 条`);
  492. },
  493. handleCurrentChange(val) {
  494. // console.log(`当前页: ${val}`);
  495. this.gradeByDaygData();
  496. this.gamonthlistByPage();
  497. this.gayearlistByPage();
  498. },
  499. exportData() {
  500. excelHelper.exportExcel("test1","fileName",".xls",true);
  501. },
  502. dialogTableVisibleOpen() {
  503. this.dialogTableVisible = true;
  504. this.radatChartWindturbineid1 = this.multipleSelection[0].windturbineid;
  505. this.radatChartWindturbineid2 = this.multipleSelection[1].windturbineid;
  506. this.$nextTick(function() {
  507. this.drawPie('leiDaTu')
  508. })
  509. },
  510. dialogTableVisibleOpenMonth() {
  511. this.dialogTableVisibleMonth = true;
  512. this.radatChartWindturbineid1 = this.multipleSelection[0].windturbineid;
  513. this.radatChartWindturbineid2 = this.multipleSelection[1].windturbineid;
  514. this.$nextTick(function() {
  515. this.drawPie2('leiDaTu2')
  516. })
  517. },
  518. dialogTableVisibleOpenYear() {
  519. this.dialogTableVisibleYear = true;
  520. this.radatChartWindturbineid1 = this.multipleSelection[0].windturbineid;
  521. this.radatChartWindturbineid2 = this.multipleSelection[1].windturbineid;
  522. this.$nextTick(function() {
  523. this.drawPie3('leiDaTu2')
  524. })
  525. },
  526. handleClick(tab) {
  527. // this.sortInOrder = [];
  528. // this.sortInOrderTop = [];
  529. if (tab.name === 'first') {
  530. this.dailyInformation = true
  531. this.monthlyInformation = false
  532. this.annualInformation = false
  533. this.gradeByDaygData();
  534. this.gamonthlistByPage();
  535. this.gayearlistByPage();
  536. } else if (tab.name === 'second') {
  537. this.dailyInformation = false
  538. this.monthlyInformation = true
  539. this.annualInformation = false
  540. this.gradeByDaygData();
  541. this.gamonthlistByPage();
  542. this.gayearlistByPage();
  543. } else if (tab.name === 'cord') {
  544. this.dailyInformation = false
  545. this.monthlyInformation = false
  546. this.annualInformation = true
  547. this.gradeByDaygData();
  548. this.gamonthlistByPage();
  549. this.gayearlistByPage();
  550. }
  551. },
  552. gradeByDaygData() {
  553. let that = this;
  554. var page = new URLSearchParams();
  555. page.append('pageNum', this.currentPage2);
  556. page.append('pageSize', this.pagesize);
  557. page.append('wpId', this.value);
  558. page.append('recorddate', this.value1);
  559. this.$http.post("/benchmarking/gadaylistByPage", page).then((res) => {
  560. that.gridData = res.data.data.list;
  561. })
  562. },
  563. gamonthlistByPage(){
  564. let that = this;
  565. this.yearvalue = this.value1.slice(0,4);
  566. this.monthvalue = this.value1.slice(5,7);
  567. var pagemonth = new URLSearchParams();
  568. pagemonth.append('pageNum',this.currentPage2);
  569. pagemonth.append('pageSize',this.pagesize);
  570. pagemonth.append('wpId',this.value);
  571. pagemonth.append('year',this.yearvalue);
  572. pagemonth.append('month',this.monthvalue);
  573. this.$http.post("/benchmarking/gamonthlistByPage",pagemonth).then((res) => {
  574. that.gridDataMonth = res.data.data.list;
  575. })
  576. },
  577. gayearlistByPage(){
  578. let that = this;
  579. this.yearvalue = this.value1.slice(0,4);
  580. var pageyear = new URLSearchParams();
  581. pageyear.append('pageNum',this.currentPage2);
  582. pageyear.append('pageSize',this.pagesize);
  583. pageyear.append('wpId',this.value);
  584. pageyear.append('year',this.yearvalue);
  585. this.$http.post("/benchmarking/gayearlistByPage",pageyear).then((res) =>{
  586. that.gridDataYear = res.data.data.list;
  587. console.log(that.gridDataYear)
  588. })
  589. },
  590. radarChartData() {
  591. let that = this;
  592. this.$http.get("/benchmarking/wtchart?gaid1=" + this.multipleSelection[0].id +
  593. "&gaid2=" + this.multipleSelection[1].id).then((res) => {
  594. console.log(res)
  595. var arr1 = [];
  596. var name = [];
  597. res.data.data.gaid1.forEach(function(item) {
  598. arr1.push({
  599. data1: item.data1
  600. })
  601. name.push({
  602. name: item.name
  603. })
  604. })
  605. that.radarChartName = name
  606. var target = {
  607. max: 15
  608. }
  609. for (let v = 0; v < that.radarChartName.length; v++) {
  610. const returnedTarget = Object.assign(that.radarChartName[v], target);
  611. }
  612. for (let i = 0; i < arr1.length; i++) {
  613. that.radarChartData1.push(arr1[i].data1)
  614. }
  615. var arr2 = [];
  616. res.data.data.gaid2.forEach(function(item) {
  617. arr2.push({
  618. data1: item.data1
  619. })
  620. })
  621. for (let j = 0; j < arr2.length; j++) {
  622. that.radarChartData2.push(arr2[j].data1)
  623. }
  624. })
  625. },
  626. drawPie() {
  627. var charts;
  628. if (charts != null && charts != "" && charts != undefined){
  629. charts.dispose();
  630. }
  631. charts= this.$echarts.init(document.getElementById('leiDaTu'));
  632. let option = {
  633. tooltip: {},
  634. legend: {
  635. x: 'center', //可设定图例在左、右、居中
  636. y: 'bottom',
  637. data: [this.radatChartWindturbineid1, this.radatChartWindturbineid2]
  638. },
  639. radar: {
  640. // shape: 'circle',
  641. name: {
  642. textStyle: {
  643. color: '#fff',
  644. backgroundColor: '#999',
  645. borderRadius: 3,
  646. padding: [3, 5]
  647. }
  648. },
  649. indicator: this.radarChartName
  650. },
  651. series: [{
  652. name: '预算 vs 开销(Budget vs spending)',
  653. type: 'radar',
  654. // areaStyle: {normal: {}},
  655. data: [{
  656. value: this.radarChartData1,
  657. name: this.radatChartWindturbineid1
  658. },
  659. {
  660. value: this.radarChartData2,
  661. name: this.radatChartWindturbineid2
  662. }
  663. ]
  664. }]
  665. }
  666. charts.clear();
  667. charts.setOption(option);
  668. },drawPie2() {
  669. var charts2;
  670. if (charts2 != null && charts2 != "" && charts2 != undefined){
  671. charts2.dispose();
  672. }
  673. charts2= this.$echarts.init(document.getElementById('leiDaTu2'));
  674. let option2 = {
  675. tooltip: {},
  676. legend: {
  677. x: 'center', //可设定图例在左、右、居中
  678. y: 'bottom',
  679. data: [this.radatChartWindturbineid1, this.radatChartWindturbineid2]
  680. },
  681. radar: {
  682. // shape: 'circle',
  683. name: {
  684. textStyle: {
  685. color: '#fff',
  686. backgroundColor: '#999',
  687. borderRadius: 3,
  688. padding: [3, 5]
  689. }
  690. },
  691. indicator: this.radarChartName
  692. },
  693. series: [{
  694. name: '预算 vs 开销(Budget vs spending)',
  695. type: 'radar',
  696. // areaStyle: {normal: {}},
  697. data: [{
  698. value: this.radarChartData1,
  699. name: this.radatChartWindturbineid1
  700. },
  701. {
  702. value: this.radarChartData2,
  703. name: this.radatChartWindturbineid2
  704. }
  705. ]
  706. }]
  707. }
  708. charts2.clear();
  709. charts2.setOption(option2);
  710. },
  711. drawPie3() {
  712. var charts3;
  713. if (charts3 != null && charts3 != "" && charts3 != undefined){
  714. charts3.dispose();
  715. }
  716. charts3= this.$echarts.init(document.getElementById('leiDaTu3'));
  717. let option3 = {
  718. tooltip: {},
  719. legend: {
  720. x: 'center', //可设定图例在左、右、居中
  721. y: 'bottom',
  722. data: [this.radatChartWindturbineid1, this.radatChartWindturbineid2]
  723. },
  724. radar: {
  725. // shape: 'circle',
  726. name: {
  727. textStyle: {
  728. color: '#fff',
  729. backgroundColor: '#999',
  730. borderRadius: 3,
  731. padding: [3, 5]
  732. }
  733. },
  734. indicator: this.radarChartName
  735. },
  736. series: [{
  737. name: '预算 vs 开销(Budget vs spending)',
  738. type: 'radar',
  739. // areaStyle: {normal: {}},
  740. data: [{
  741. value: this.radarChartData1,
  742. name: this.radatChartWindturbineid1
  743. },
  744. {
  745. value: this.radarChartData2,
  746. name: this.radatChartWindturbineid2
  747. }
  748. ]
  749. }]
  750. }
  751. charts3.clear();
  752. charts3.setOption(option3);
  753. },
  754. }
  755. }
  756. </script>
  757. <style>
  758. .box{
  759. width: 100%;
  760. display: flex;
  761. justify-content: space-around;
  762. align-items: center;
  763. overflow: hidden;
  764. }
  765. .overallSituation{
  766. width: 100%;
  767. flex-grow: 1;
  768. }
  769. .leftNavigation {
  770. width: 15%;
  771. height: 790px;
  772. }
  773. #leiDaTu {
  774. margin-left: 5%;
  775. height: 480px;
  776. width: 450px;
  777. float: left;
  778. }
  779. #leiDaTu2 {
  780. margin-left: 5%;
  781. height: 480px;
  782. width: 450px;
  783. float: left;
  784. }
  785. #leiDaTu3 {
  786. margin-left: 5%;
  787. height: 480px;
  788. width: 450px;
  789. float: left;
  790. }
  791. .margin {
  792. width: 100%;
  793. height: 618px;
  794. border: #000000 1px solid;
  795. }
  796. .dialogLeftData {
  797. width: 42%;
  798. height: 120px;
  799. text-align: center;
  800. float: left;
  801. }
  802. .dialogRightData {
  803. width: 58%;
  804. height: 650px;
  805. text-align: center;
  806. float: left;
  807. }
  808. </style>