index.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. <template>
  2. <div class="draught-fan-list">
  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="typeId" clearable placeholder="请选择"
  9. popper-class="select" @change="renderWprray">
  10. <el-option v-for="item in typeArray" :key="item.id" :value="item.id" :label="item.name" />
  11. </el-select>
  12. </div>
  13. </div>
  14. <div class="query-item">
  15. <div class="lable">场站:</div>
  16. <div class="search-input">
  17. <el-select v-model="wpId" clearable placeholder="请选择"
  18. popper-class="select">
  19. <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
  20. </el-select>
  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="beginDate" type="date"
  27. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  28. </el-date-picker>
  29. </div>
  30. </div>
  31. <div class="query-item">
  32. <div class="lable">结束日期:</div>
  33. <div class="search-input">
  34. <el-date-picker v-model="endDate" type="date"
  35. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  36. </el-date-picker>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="query-actions">
  41. <button class="btn green" @click="search()">搜索</button>
  42. </div>
  43. </div>
  44. <div class="df-table">
  45. <ComTable height="100vh" :data="tableData"></ComTable>
  46. </div>
  47. <el-dialog title="切入切出风速整合历史" v-model="dialogShow" width="85%" top="10vh" custom-class="modal" :close-on-click-modal="true" @closed="dialogType = ''">
  48. <ComTable height="100vh" :data="tableHistoryData"></ComTable>
  49. </el-dialog>
  50. </div>
  51. </template>
  52. <script>
  53. import ComTable from "@com/coms/table/table.vue";
  54. export default {
  55. // 名称
  56. name: "cutAnalyse",
  57. // 使用组件
  58. components: {
  59. ComTable
  60. },
  61. // 数据
  62. data() {
  63. const that = this;
  64. return {
  65. isAsc:"asc",
  66. typeArray:[{
  67. id:"-1",
  68. name:"风场"
  69. },{
  70. id:"-2",
  71. name:"光伏电站"
  72. }],
  73. typeId:"-1",
  74. wpArray:[],
  75. wpId:"",
  76. beginDate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
  77. endDate:new Date().formatDate("yyyy-MM-dd"),
  78. dialogShow:false,
  79. tableData: {
  80. column: [
  81. {
  82. name: "风场",
  83. field: "windfarm",
  84. is_num: false,
  85. is_light: false,
  86. sortable: true
  87. },
  88. {
  89. name: "风机",
  90. field: "windturbine",
  91. is_num: false,
  92. is_light: false,
  93. sortable: true
  94. },
  95. {
  96. name: "起始日期",
  97. field: "beginDate",
  98. is_num: false,
  99. is_light: false,
  100. sortable: true
  101. },
  102. {
  103. name: "截止日期",
  104. field: "endDate",
  105. is_num: false,
  106. is_light: false,
  107. sortable: true
  108. },
  109. {
  110. name: "平均风速",
  111. field: "speed",
  112. is_num: false,
  113. is_light: false,
  114. sortable: true
  115. },
  116. {
  117. name: "平均功率",
  118. field: "power",
  119. is_num: false,
  120. is_light: false,
  121. sortable: true
  122. },
  123. {
  124. name: "平均效率",
  125. field: "generatingCapacity",
  126. is_num: false,
  127. is_light: false,
  128. sortable: true
  129. }
  130. ],
  131. data: [],
  132. }
  133. };
  134. },
  135. // 函数
  136. methods: {
  137. // 请求服务
  138. requestData() {
  139. let that = this;
  140. that.API.requestData({
  141. method: "GET",
  142. subUrl: "powercompare/windfarmAllAjax",
  143. data:{
  144. type:that.typeId
  145. },
  146. success(res) {
  147. that.allWpArray = res.data;
  148. that.renderWprray();
  149. }
  150. });
  151. },
  152. renderWprray(){
  153. let wpArray = [];
  154. this.allWpArray.forEach(ele=>{
  155. if(this.typeId === "-1"){
  156. if(ele.id.indexOf("FDC") !== -1){
  157. wpArray.push(ele);
  158. }
  159. }else{
  160. if(ele.id.indexOf("GDC") !== -1){
  161. wpArray.push(ele);
  162. }
  163. }
  164. });
  165. this.wpId = wpArray[0].id;
  166. this.wpArray = wpArray;
  167. this.getOutputSpeedList();
  168. },
  169. getOutputSpeedList(){
  170. let that = this;
  171. if(!that.typeId || !that.beginDate || !that.endDate){
  172. that.BASE.showMsg({
  173. msg:"类型与日期不可为空"
  174. });
  175. }else{
  176. that.API.requestData({
  177. method: "POST",
  178. subUrl: "leaderboard/loadfactortoplist",
  179. data:{
  180. wpId:that.wpId,
  181. type:that.typeId,
  182. isAsc:that.isAsc,
  183. beginDate:that.beginDate,
  184. endDate:that.endDate,
  185. orderByColumn:"",
  186. },
  187. success(res) {
  188. res.data.forEach(ele=>{
  189. ele.beginDate=new Date(ele.beginDate).formatDate("yyyy-MM-dd");
  190. ele.endDate=new Date(ele.beginDate).formatDate("yyyy-MM-dd");
  191. })
  192. that.tableData.data = res.data;
  193. }
  194. });
  195. }
  196. },
  197. search(){
  198. this.getOutputSpeedList(this.wpId);
  199. }
  200. },
  201. created() {
  202. this.requestData();
  203. },
  204. mounted() {},
  205. unmounted() {},
  206. };
  207. </script>
  208. <style lang="less" scoped>
  209. .draught-fan-list {
  210. width: 100%;
  211. height: 100%;
  212. display: flex;
  213. flex-direction: column;
  214. .btn-group-tabs {
  215. display: flex;
  216. flex-direction: row;
  217. .photovoltaic {
  218. margin-left: 1.481vh;
  219. }
  220. }
  221. .df-table {
  222. border: 0.093vh solid fade(@darkgray, 50%);
  223. position: relative;
  224. overflow: hidden;
  225. flex-grow: 1;
  226. margin-top: 1.481vh;
  227. height:80vh;
  228. &:before {
  229. content: "";
  230. width: 0.37vh;
  231. height: 0.37vh;
  232. background: @write;
  233. position: absolute;
  234. left: 0.278vh;
  235. top: 0.278vh;
  236. }
  237. tbody {
  238. height: calc(100vh - 166px);
  239. }
  240. }
  241. }
  242. </style>