|
@@ -1,197 +1,190 @@
|
|
|
-<!--
|
|
|
- - Copyright (c) 2018-2025, lengleng All rights reserved.
|
|
|
- -
|
|
|
- - Redistribution and use in source and binary forms, with or without
|
|
|
- - modification, are permitted provided that the following conditions are met:
|
|
|
- -
|
|
|
- - Redistributions of source code must retain the above copyright notice,
|
|
|
- - this list of conditions and the following disclaimer.
|
|
|
- - Redistributions in binary form must reproduce the above copyright
|
|
|
- - notice, this list of conditions and the following disclaimer in the
|
|
|
- - documentation and/or other materials provided with the distribution.
|
|
|
- - Neither the name of the pig4cloud.com developer nor the names of its
|
|
|
- - contributors may be used to endorse or promote products derived from
|
|
|
- - this software without specific prior written permission.
|
|
|
- - Author: lengleng (wangiegie@gmail.com)
|
|
|
- -->
|
|
|
<template>
|
|
|
- <div class="execution">
|
|
|
- <div style="display: inline-block">
|
|
|
- <div class="startTime" style="display: inline-block">
|
|
|
- <span class="timeText" style="font-weight: bold;font-size: 14px"> 起始时间:</span>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-form ref="queryForm" size="small" :inline="true">
|
|
|
+ <el-form-item label="时间">
|
|
|
<el-date-picker
|
|
|
- v-model="startTime"
|
|
|
+ size="mini"
|
|
|
:clearable="false"
|
|
|
- type="datetime"
|
|
|
- value-format="timestamp"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
- </div>
|
|
|
- <div class="endTime" style="display: inline-block">
|
|
|
- <span class="timeText" style="font-weight: bold;font-size: 14px"> 截止时间:</span>
|
|
|
- <el-date-picker
|
|
|
- v-model="endTime"
|
|
|
- :clearable="false"
|
|
|
- type="datetime"
|
|
|
- value-format="timestamp"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
- </div>
|
|
|
- <span style="font-weight: bold;font-size: 14px"> 场站名称:</span>
|
|
|
- <el-select style="width:250px" v-model="stationCode" @change="getAllInverterInfo" size="small">
|
|
|
- <el-option
|
|
|
- v-for="item in stationList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value">
|
|
|
- <span style="float: left">{{ item.label }}</span>
|
|
|
- <span style="float: right; color: #8492a6;font-size: 13px">{{ item.value }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <span style="font-weight: bold;font-size: 14px"> 所属设备:</span>
|
|
|
- <el-select style="width:250px" v-model="equipmentId" filterable size="small">
|
|
|
- <el-option
|
|
|
- v-for="item in inverterInfoList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value">
|
|
|
- <span style="float: left">{{ item.label }}</span>
|
|
|
- <span style="float: right; color: #8492a6;font-size: 13px">{{ item.value }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <div class="timeQuery" style="display: inline-block">
|
|
|
- <el-button size="small" :loading="loading" @click="dateQuery">查询</el-button>
|
|
|
- </div>
|
|
|
+ v-model="dateTime"
|
|
|
+ type="datetimerange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :default-time="['00:00:00', '23:45:00']"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="场站名称">
|
|
|
+ <el-select v-model="stationCode" placeholder="请选择" @change="stationChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in stationList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="逆变器设备">
|
|
|
+ <el-select size="mini" v-model="equipmentId" multiple filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in equipmentOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" size="mini" style="margin-left: 5px" icon="el-icon-search" @click="dataQuery">查询
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="padding-top: 10px">
|
|
|
+ <vxe-table
|
|
|
+ ref="xTable"
|
|
|
+ align="center"
|
|
|
+ class="mytable-style"
|
|
|
+ auto-resize
|
|
|
+ border
|
|
|
+ resizable
|
|
|
+ export-config
|
|
|
+ highlight-current-row
|
|
|
+ show-overflow
|
|
|
+ max-height="700"
|
|
|
+ :data="tableData"
|
|
|
+ :radio-config="{trigger: 'row'}">
|
|
|
+ <vxe-column type="radio" width="60"/>
|
|
|
+ <vxe-table-column field="stationCode" title="所属场站" :formatter="stationCodeFormat"></vxe-table-column>
|
|
|
+ <vxe-table-column field="equipmentId" title="设备名称" :formatter="nameFormat"></vxe-table-column>
|
|
|
+ <vxe-table-column field="status" title="状态" :formatter="statusFormat"></vxe-table-column>
|
|
|
+ <vxe-table-column field="time" title="时间"></vxe-table-column>
|
|
|
+ <vxe-table-column field="activePower" title="有功(KW)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="reactivePower" title="无功(KVar)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="voltage" title="电压(V)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="electricalCurrent" title="电流(A)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="dayElectricQuantity" title="当日发电量(kW·h)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="cumulativeGeneratedEnergy" title="累积发电量(MW·h)"></vxe-table-column>
|
|
|
+ <vxe-table-column field="dayGridConnectedHours" title="当日并网小时数"></vxe-table-column>
|
|
|
+ </vxe-table>
|
|
|
+ <vxe-pager
|
|
|
+ background
|
|
|
+ :loading="loading"
|
|
|
+ :current-page.sync="currentPage"
|
|
|
+ :page-size.sync="pageSize"
|
|
|
+ :total="total"
|
|
|
+ @page-change="handlePageChange"
|
|
|
+ :layouts="['PrevJump', 'PrevPage', 'JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']">
|
|
|
+ </vxe-pager>
|
|
|
</div>
|
|
|
- <basic-container>
|
|
|
- <avue-crud ref="crud"
|
|
|
- :page.sync="page"
|
|
|
- :data="tableData"
|
|
|
- :table-loading="tableLoading"
|
|
|
- :option="tableOption"
|
|
|
- @on-load="getGridOnloadData">
|
|
|
- </avue-crud>
|
|
|
- </basic-container>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
export default {
|
|
|
- name: 'inverterstatusdata',
|
|
|
+ name: 'inverterinfo',
|
|
|
data() {
|
|
|
return {
|
|
|
- startTime: new Date(new Date().toLocaleDateString()).getTime(),
|
|
|
- endTime: new Date(new Date().toLocaleDateString()).getTime() + 60 * 60 * 24 * 1000 - 1,
|
|
|
+ equipmentId: [],
|
|
|
+ equipmentOptions:[],
|
|
|
+ dateTime: [new Date(new Date().toLocaleDateString()).getTime(), new Date(new Date().toLocaleDateString()).getTime() + 60 * 60 * 24 * 1000-5*1000*60],
|
|
|
+ total: 0,
|
|
|
+ sortOrder: 'asc',
|
|
|
+ pageSize: 10,
|
|
|
+ currentPage: 1,
|
|
|
stationList: [],
|
|
|
stationCode: [],
|
|
|
- loading: false,
|
|
|
- inverterInfoList: [],
|
|
|
- equipmentId: '',
|
|
|
searchForm: {},
|
|
|
tableData: [],
|
|
|
- page: {
|
|
|
- total: 0, // 总页数
|
|
|
- currentPage: 1, // 当前页数
|
|
|
- pageSize: 20 // 每页显示多少条
|
|
|
- },
|
|
|
- tableLoading: false,
|
|
|
- tableOption: tableOption
|
|
|
+ nameList:[],
|
|
|
+ loading: false,
|
|
|
+ modId: '',//备用id
|
|
|
}
|
|
|
},
|
|
|
- computed: {
|
|
|
- ...mapGetters(['permissions']),
|
|
|
- permissionList() {
|
|
|
- return {
|
|
|
- addBtn: this.vaildData(this.permissions.idp_inverterstatusdata_add, false),
|
|
|
- delBtn: this.vaildData(this.permissions.idp_inverterstatusdata_del, false),
|
|
|
- editBtn: this.vaildData(this.permissions.idp_inverterstatusdata_edit, false)
|
|
|
- };
|
|
|
- }
|
|
|
+ created(){
|
|
|
+ // 获取所有逆变器名称
|
|
|
+ this.$axios.get('/inverterinfo/findAll').then((res) => {
|
|
|
+ this.nameList = res.data
|
|
|
+ }).catch((error) => {
|
|
|
+ this.$message.error('获取逆变器转义名称出错' + error)
|
|
|
+ })
|
|
|
},
|
|
|
- created() {
|
|
|
- this.getStationCode();
|
|
|
- this.getAllInverterInfo()
|
|
|
+ mounted() {
|
|
|
+ this.getStationCode()
|
|
|
},
|
|
|
+ computed: {},
|
|
|
methods: {
|
|
|
- getGridOnloadData() {
|
|
|
- const param = new URLSearchParams()
|
|
|
- param.append('currentPage', this.page.currentPage)
|
|
|
- param.append('pageSize', this.page.pageSize)
|
|
|
- param.append('stationCode', this.stationCode)
|
|
|
- param.append("equipmentId", this.equipmentId)
|
|
|
- param.append('startTime', this.startTime)
|
|
|
- param.append('endTime', this.endTime)
|
|
|
- getByStationCodeAndEquipmentIdAndTimeBetween(param).then(response => {
|
|
|
- this.tableData = response.data.data.records
|
|
|
- this.page.total = response.data.data.total
|
|
|
- this.page.pageSize = response.data.data.size
|
|
|
- this.tableLoading = false
|
|
|
- }).catch(() => {
|
|
|
- this.tableLoading = false
|
|
|
+ stationChange() {
|
|
|
+ this.currentPage = 1
|
|
|
+ this.pageSize = 10
|
|
|
+
|
|
|
+ const param = {
|
|
|
+ "stationCode": this.stationCode,
|
|
|
+ }
|
|
|
+ // 获取场站下风机设备
|
|
|
+ this.$axios.get('/inverterinfo/findByStationCode', {params: param}).then((res) => {
|
|
|
+ this.equipmentOptions = res.data
|
|
|
+ }).catch((error) => {
|
|
|
+ this.$message.error('获取逆变器设备出错' + error)
|
|
|
})
|
|
|
},
|
|
|
- dateQuery() {
|
|
|
- if (this.equipmentId === '' || this.equipmentId == null) {
|
|
|
- return alert("请选择所属设备")
|
|
|
+ nameFormat({cellValue, row, column}) {
|
|
|
+ const item = this.nameList.find(item => item.value === cellValue)
|
|
|
+ return item ? item.label : ''
|
|
|
+ },
|
|
|
+ stationCodeFormat({cellValue, row, column}) {
|
|
|
+ const item = this.stationList.find(item => item.value === cellValue)
|
|
|
+ return item ? item.label : ''
|
|
|
+ },
|
|
|
+ statusFormat({cellValue, row, column}) {
|
|
|
+ if (cellValue == 1) {
|
|
|
+ return '运行'
|
|
|
+ } else if (cellValue == 2) {
|
|
|
+ return '待机'
|
|
|
+ } else if (cellValue == 3) {
|
|
|
+ return '停用'
|
|
|
+ } else if (cellValue == 4) {
|
|
|
+ return '故障'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handlePageChange({currentPage, pageSize}) {
|
|
|
+ this.currentPage = currentPage
|
|
|
+ this.pageSize = pageSize
|
|
|
+ this.dataQuery();
|
|
|
+ },
|
|
|
+ dataQuery() {
|
|
|
+ let startTime = Math.round(this.dateTime[0])
|
|
|
+ let endTime = Math.round(this.dateTime[1])
|
|
|
+ if (endTime <= startTime) {
|
|
|
+ this.$message.error("开始时间不能大于结束时间")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.loading = true
|
|
|
+ let queryParams = {
|
|
|
+ "currentPage": this.currentPage,
|
|
|
+ "pageSize": this.pageSize,
|
|
|
+ "stationCode": this.stationCode,
|
|
|
+ "equipmentId": this.equipmentId.join(','),
|
|
|
+ "startTime": startTime,
|
|
|
+ "endTime": endTime,
|
|
|
}
|
|
|
- this.tableLoading = true
|
|
|
- const param = new URLSearchParams()
|
|
|
- param.append('currentPage', this.page.currentPage)
|
|
|
- param.append('pageSize', this.page.pageSize)
|
|
|
- param.append('stationCode', this.stationCode)
|
|
|
- param.append("equipmentId", this.equipmentId)
|
|
|
- param.append('startTime', this.startTime)
|
|
|
- param.append('endTime', this.endTime)
|
|
|
|
|
|
- getByStationCodeAndEquipmentIdAndTimeBetween(param).then(response => {
|
|
|
- this.tableData = response.data.data.records
|
|
|
- this.page.total = response.data.data.total
|
|
|
- this.tableLoading = false
|
|
|
+ this.$axios.get('/inverterstatusdata/getByStationCodeAndEquipmentIdAndTimeBetween', {params: queryParams}).then(response => {
|
|
|
+ this.tableData = response.data.records
|
|
|
+ this.page.total = response.data.total
|
|
|
+ this.loading = false
|
|
|
}).catch(() => {
|
|
|
- this.tableLoading = false
|
|
|
+ this.loading = false
|
|
|
})
|
|
|
},
|
|
|
getStationCode() {
|
|
|
- this.tableLoading = true
|
|
|
- getStation().then(response => {
|
|
|
- this.stationList = response.data.data
|
|
|
+ this.$axios({url: '/electricfield/all', method: 'get'}).then(response => {
|
|
|
+ this.stationList = response.data
|
|
|
if (this.stationList.length > 0) {
|
|
|
this.stationCode = this.stationList[0].value
|
|
|
+ this.stationChange()
|
|
|
}
|
|
|
- this.tableLoading = false
|
|
|
})
|
|
|
},
|
|
|
- getAllInverterInfo() {
|
|
|
- this.inverterInfoList = []
|
|
|
- this.equipmentId = ''
|
|
|
- this.tableLoading = true
|
|
|
- const param = new URLSearchParams()
|
|
|
- param.append('stationCode', this.stationCode)
|
|
|
- getAllInverterInfo(param).then(response => {
|
|
|
- this.inverterInfoList = response.data.data
|
|
|
- if (this.inverterInfoList.length > 0) {
|
|
|
- this.equipmentId = this.inverterInfoList[0].value
|
|
|
- }
|
|
|
- this.tableLoading = false
|
|
|
- })
|
|
|
- },
|
|
|
- sizeChange(pageSize) {
|
|
|
- this.page.pageSize = pageSize
|
|
|
- },
|
|
|
- currentChange(current) {
|
|
|
- this.page.currentPage = current
|
|
|
- },
|
|
|
- searchChange(form, done) {
|
|
|
- this.searchForm = form
|
|
|
- this.page.currentPage = 1
|
|
|
- this.getList(this.page, form)
|
|
|
- done()
|
|
|
- },
|
|
|
- refreshChange() {
|
|
|
- this.getList(this.page)
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
</script>
|