Grossgeneration_Rank.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <template>
  2. <el-container>
  3. <el-header>
  4. <el-card style="margin-top: -10px">
  5. <el-row :gutter="1">
  6. <el-form :inline="true" class="demo-form-inline">
  7. <el-form-item label="类型">
  8. <el-select
  9. v-model="lx"
  10. @change="check_lx"
  11. clearable
  12. placeholder="请选择"
  13. >
  14. <el-option
  15. v-for="item in lxlist"
  16. :key="item.id"
  17. :label="item.name"
  18. :value="item.id"
  19. >
  20. </el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item label="风场">
  24. <el-select v-model="fc" clearable placeholder="请选择">
  25. <el-option
  26. v-for="item in list"
  27. :key="item.id"
  28. :label="item.name"
  29. :value="item.id"
  30. >
  31. </el-option>
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="开始时间">
  35. <el-date-picker
  36. v-model="beginDate"
  37. value-format="yyyy-MM-dd"
  38. type="date"
  39. placeholder="选择日期"
  40. >
  41. </el-date-picker>
  42. </el-form-item>
  43. <el-form-item label="结束时间">
  44. <el-date-picker
  45. v-model="endDate"
  46. value-format="yyyy-MM-dd"
  47. type="date"
  48. placeholder="选择日期"
  49. >
  50. </el-date-picker>
  51. </el-form-item>
  52. <el-form-item>
  53. <el-button type="primary" @click="query_table" :plain="true"
  54. >查询</el-button
  55. >
  56. </el-form-item>
  57. <el-form-item>
  58. <el-button type="primary" @click="toExcel" :plain="true"
  59. >导出</el-button
  60. >
  61. </el-form-item>
  62. </el-form>
  63. </el-row>
  64. </el-card>
  65. </el-header>
  66. <el-main>
  67. <el-card style=" height: 759px">
  68. <el-table
  69. v-loading="loading"
  70. id="tableData"
  71. :data="tableData"
  72. style="width: 100%"
  73. :cell-style="{ textAlign: 'center' }"
  74. :header-cell-style="headStyle"
  75. max-height="739px"
  76. @selection-change="changeFun"
  77. >
  78. >
  79. <el-table-column label="总发电量排行榜">
  80. <el-table-column type="index" width="80"> </el-table-column>
  81. <el-table-column
  82. type="selection"
  83. class="selection"
  84. @selection-change="changeFun"
  85. width="60"
  86. >
  87. </el-table-column>
  88. <el-table-column sortable prop="windfarm" label="风场" width="310">
  89. </el-table-column>
  90. <el-table-column
  91. sortable
  92. prop="windturbine"
  93. label="风机"
  94. width="310"
  95. >
  96. </el-table-column>
  97. <el-table-column
  98. sortable
  99. prop="beginDate"
  100. :formatter="filter_bdate"
  101. value-format="yyyy-MM-dd"
  102. label="起始时间"
  103. width="310"
  104. >
  105. </el-table-column>
  106. <el-table-column
  107. sortable
  108. prop="endDate"
  109. :formatter="filter_edate"
  110. value-format="yyyy-MM-dd"
  111. label="截至日期"
  112. width="210"
  113. >
  114. </el-table-column>
  115. <el-table-column
  116. sortable
  117. prop="speed"
  118. :formatter="filter_speed"
  119. label="平均风速"
  120. width="290"
  121. >
  122. </el-table-column>
  123. <el-table-column
  124. sortable
  125. prop="power"
  126. :formatter="filter_power"
  127. label="发电量"
  128. width="280"
  129. >
  130. </el-table-column>
  131. </el-table-column>
  132. </el-table>
  133. </el-card>
  134. </el-main>
  135. </el-container>
  136. </template>
  137. <script>
  138. import formateDate from "@/utils/date";
  139. import formateDate1 from "@/utils/date_1";
  140. import excelHelper from "@/utils/excelHelper";
  141. export default {
  142. data() {
  143. return {
  144. list:[],
  145. FClist: [],
  146. GFlist: [
  147. ],
  148. loading:true,
  149. QBlist: [
  150. ],
  151. lxlist: [
  152. {
  153. name: "全部",
  154. id: "qb",
  155. },
  156. {
  157. name: "风场",
  158. id: "fc",
  159. },
  160. {
  161. name: "光伏",
  162. id: "gf",
  163. },
  164. ],
  165. tableData: [],
  166. beginDate: "2021-01-01",
  167. endDate: "2021-01-01",
  168. lx: "qb",
  169. fc: "",
  170. selectrowdate: {},
  171. };
  172. },
  173. methods: {
  174. check_lx() {
  175. this.fc = "";
  176. if (this.lx == "fc") {
  177. this.list={};
  178. this.list = this.FClist;
  179. } else if (this.lx == "gf") {
  180. this.list = {};
  181. this.list = this.GFlist;
  182. } else if (this.lx == "qb") {
  183. this.list = {};
  184. this.list = this.QBlist;
  185. }
  186. },
  187. query_fc() {
  188. var newData = new Date();
  189. this.beginDate = formateDate1(newData.getTime()/1000);
  190. this.endDate = formateDate(newData.getTime()/1000);
  191. let that = this;
  192. let fjj="";
  193. this.$http.get("powercompare/windfarmAllAjax?").then((res) => {
  194. this.QBlist = res.data.data;
  195. for (let i = 0; i < Object.keys(this.QBlist).length; i++) {
  196. fjj = "";
  197. fjj = this.QBlist[i].id;
  198. if (fjj.endsWith("FDC")) {
  199. that.FClist.push(this.QBlist[i]);
  200. } else {
  201. that.GFlist.push(this.QBlist[i]);
  202. }
  203. }
  204. this.list = this.QBlist;
  205. });
  206. },
  207. query_table() {
  208. this.loading=true;
  209. this.tableData=[];
  210. this.$http
  211. .get(
  212. "leaderboard/totalPowerCapacityTopList?wpIps=" +
  213. this.fc +
  214. "&pageNum=" +
  215. 1 +
  216. "&pageSize=" +
  217. 10 +
  218. "&orderByColumn=" +
  219. "" +
  220. "&isAsc=" +
  221. "asc" +
  222. "&beginDate=" +
  223. this.beginDate +
  224. "&endDate=" +
  225. this.endDate
  226. )
  227. .then((res) => {
  228. this.tableData = res.data.data;
  229. this.loading=false;
  230. });
  231. },
  232. toExcel() {
  233. let that = this;
  234. excelHelper.exportExcel("tableData", "总发电量排行", ".xls", true);
  235. },
  236. headStyle() {
  237. return "text-align:center";
  238. },
  239. changeFun(val) {
  240. this.selectrowdate = val;
  241. },
  242. filter_bdate(cellValue) {
  243. let date = new Date(cellValue.beginDate);
  244. return formateDate(date / 1000);
  245. },
  246. filter_edate(cellValue) {
  247. let date = new Date(cellValue.endDate);
  248. return formateDate(date / 1000);
  249. },
  250. filter_power(cellValue) {
  251. return parseFloat(cellValue.power).toFixed(2);
  252. },
  253. filter_speed(cellValue) {
  254. return parseFloat(cellValue.speed).toFixed(2);
  255. },
  256. },
  257. mounted() {
  258. this.query_fc();
  259. this.query_table();
  260. },
  261. };
  262. </script>
  263. <style scoped>
  264. </style>