index.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <div class="app-container">
  3. <div class="dark-el-input dark-el-button">
  4. <el-form ref="queryForm" size="small" :inline="true" popper-class="cpp-popper">
  5. <el-form-item label="调控日期">
  6. <el-date-picker
  7. :picker-options="expireDateOption"
  8. :clearable="false"
  9. v-model="dateTime"
  10. type="daterange"
  11. range-separator="至"
  12. start-placeholder="开始日期"
  13. end-placeholder="结束日期"
  14. popper-class="cpp-popper"
  15. />
  16. </el-form-item>
  17. <el-form-item label="场站名称">
  18. <el-select v-model="stationCode" placeholder="请选择" popper-class="cpp-popper">
  19. <el-option
  20. v-for="item in stationList"
  21. :key="item.value"
  22. :label="item.label"
  23. :value="item.value">
  24. </el-option>
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item>
  28. <el-button type="primary" style="margin-left: 5px" icon="el-icon-search" @click="beforeQuery">查询
  29. </el-button>
  30. </el-form-item>
  31. </el-form>
  32. </div>
  33. <div style="padding-top: 10px">
  34. <vxe-table
  35. ref="xTable"
  36. align="center"
  37. class="mytable-style"
  38. auto-resize
  39. border
  40. resizable
  41. export-config
  42. highlight-current-row
  43. show-overflow
  44. :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)">
  45. <vxe-table-column field="tkDate" title="调控日期"></vxe-table-column>
  46. <vxe-table-column field="stationCode" title="调控场站" :formatter="stationCodeFormat"></vxe-table-column>
  47. <vxe-table-column field="forecastDate" title="上报预测日期"></vxe-table-column>
  48. <vxe-table-column field="regulationStatusEnum" title="调控下发状态"></vxe-table-column>
  49. <vxe-table-column field="uploadStatusEnum" title="上报状态"></vxe-table-column>
  50. <vxe-table-column field="createBy" title="调控人"></vxe-table-column>
  51. <vxe-table-column field="voltage" title="策略查看">
  52. <template slot-scope="scope">
  53. <img src="@/assets/images/camera.png" style="width: 25px;cursor:pointer;" @click="jumpCamera(scope.row)">
  54. </template>
  55. </vxe-table-column>
  56. </vxe-table>
  57. <vxe-pager
  58. perfect
  59. :current-page.sync="currentPage"
  60. :page-size.sync="pageSize"
  61. :total="total"
  62. :page-sizes=[10,50,100]
  63. :layouts="['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
  64. @page-change="handlePageChange"
  65. >
  66. </vxe-pager>
  67. </div>
  68. </div>
  69. </template>
  70. <script>
  71. export default {
  72. name: 'inverterinfo',
  73. data() {
  74. return {
  75. expireDateOption: {
  76. disabledDate(time) {
  77. return time.getTime() > Date.now()
  78. }
  79. },
  80. dateTime: [new Date(new Date().toLocaleDateString()).getTime(), new Date(new Date().toLocaleDateString()).getTime()],
  81. total: 0,
  82. sortOrder: 'asc',
  83. pageSize: 10,
  84. currentPage: 1,
  85. stationList: [],
  86. stationCode: [],
  87. searchForm: {},
  88. tableData: [],
  89. nameList:[],
  90. loading: false,
  91. modId: '',//备用id
  92. }
  93. },
  94. created(){
  95. // 获取场站下拉列表
  96. this.getStationCode()
  97. },
  98. mounted() {
  99. },
  100. computed: {},
  101. methods: {
  102. jumpCamera(row){
  103. console.log(row)
  104. },
  105. beforeQuery(){
  106. // 判断日期间隔最多不能超出30天
  107. let startTime = Math.round(this.dateTime[0])
  108. let endTime = Math.round(this.dateTime[1])
  109. if(endTime-startTime> 60 * 60 * 24 * 1000*29){
  110. this.$message.error("最多只能查询30天的数据!")
  111. return
  112. }
  113. this.dataQuery()
  114. },
  115. nameFormat({cellValue, row, column}) {
  116. const item = this.nameList.find(item => item.value === cellValue)
  117. return item ? item.label : ''
  118. },
  119. stationCodeFormat({cellValue, row, column}) {
  120. const item = this.stationList.find(item => item.value === cellValue)
  121. return item ? item.label : ''
  122. },
  123. handlePageChange({currentPage, pageSize}) {
  124. this.currentPage = currentPage
  125. this.pageSize = pageSize
  126. },
  127. dataQuery() {
  128. let startTime = Math.round(this.dateTime[0])
  129. let endTime = Math.round(this.dateTime[1])
  130. if (startTime>endTime) {
  131. this.$message.error("开始时间不能大于结束时间")
  132. return
  133. }
  134. this.loading = true
  135. let queryParams = {
  136. "stationCode": this.stationCode,
  137. "startTime": startTime,
  138. "endTime": endTime,
  139. }
  140. this.$axios.get('/dqRegulationController/getDqRegulationRecordList', {params: queryParams}).then(response => {
  141. this.tableData = response.data
  142. console.log(this.tableData)
  143. this.total = response.data.length
  144. this.loading = false
  145. }).catch(() => {
  146. this.loading = false
  147. })
  148. },
  149. async getStationCode() {
  150. await this.$axios({url: '/electricfield/all', method: 'get'}).then(response => {
  151. this.stationList = response.data
  152. if (this.stationList.length > 0) {
  153. this.stationCode = this.stationList[0].value
  154. // this.dataQuery()
  155. }
  156. })
  157. },
  158. }
  159. }
  160. </script>