791 lines
34 KiB
Vue
791 lines
34 KiB
Vue
<template>
|
||
<div class="pd10">
|
||
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
|
||
<el-tab-pane :label="item.label" :name="index + ''" v-for="(item, index) in storeList" :key="index"></el-tab-pane>
|
||
<div id="select-form" v-if="activeName != '4'">
|
||
<el-form ref="form" inline>
|
||
<el-row>
|
||
<el-col :span="4">
|
||
<el-form-item class="box">
|
||
<Area @click="handleNodeClick" ref="area"></Area>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="5">
|
||
<el-form-item label="日期">
|
||
<div style="display: flex">
|
||
<el-select v-model="store.params.dataType" style="width: 80px; margin-right: 5px"
|
||
@change="timeChange">
|
||
<el-option label="年" value="01"></el-option>
|
||
<el-option label="月" value="02"></el-option>
|
||
<el-option label="日" value="03" v-if="activeName !== '2'"></el-option>
|
||
</el-select>
|
||
<el-date-picker style="width: 180px" v-model="store.params.searchBeginTime"
|
||
v-if="store.params.dataType == '01'" type="year" value-format="yyyy-MM-dd" @change="yearChange"
|
||
placeholder="选择年"></el-date-picker>
|
||
<el-date-picker style="width:180px" v-if="store.params.dataType == '02'" value-format="yyyy-MM-dd"
|
||
v-model="store.params.searchBeginTime" @change="monthChange" type="month"
|
||
placeholder="选择日期"></el-date-picker>
|
||
<el-date-picker style="width:180px" v-if="store.params.dataType == '03'" value-format="yyyy-MM-dd"
|
||
v-model="store.params.searchBeginTime" @change="dateChange" type="date"
|
||
placeholder="选择日期"></el-date-picker>
|
||
</div>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="状态">
|
||
<el-select v-model="store.params.searchState" placeholder="请选择">
|
||
<el-option label="全部" value=""></el-option>
|
||
<el-option label="已上送" value="1"></el-option>
|
||
<el-option label="未上送" value="0"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="11">
|
||
<el-form-item>
|
||
<el-button size="small" type="primary" icon="el-icon-search" @click="
|
||
store.params.pageNum = 1
|
||
store.loading = true
|
||
store.search()
|
||
">
|
||
查询
|
||
</el-button>
|
||
</el-form-item>
|
||
|
||
<el-form-item>
|
||
<el-button type="primary" icon="el-icon-download" @click="exportEvent">导出</el-button>
|
||
</el-form-item>
|
||
<el-form-item v-if="storeList[activeName].canDataFeed">
|
||
<el-button size="small" type="primary" icon="el-icon-upload2" :disabled="uploadButton" @click="feed">
|
||
PMS数据上送
|
||
</el-button>
|
||
</el-form-item>
|
||
|
||
|
||
<el-form-item style="float: right">
|
||
<el-button :disabled="store.params.dataType !== '03'" type="primary" @click="reCalUpload('')">
|
||
重新计算四个算法
|
||
</el-button>
|
||
</el-form-item>
|
||
|
||
<el-form-item style="float: right;margin-right: 50px">
|
||
<el-button :disabled="store.params.dataType === '01'" type="primary" @click="reCalUpload('1')">
|
||
{{ storeList[activeName].label + '重新计算' }}
|
||
</el-button>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="4">
|
||
<el-form-item label="电压等级" v-if="activeName == '0'">
|
||
<el-select clearable v-model="store.params.voltageLevel" placeholder="请选择">
|
||
<el-option v-for="item in voltageLevelList" :key="item.id" :label="item.name"
|
||
:value="item.id"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="5">
|
||
<el-form-item label="指标类型" v-if="activeName == '0'">
|
||
<el-select clearable v-model="store.params.targetType" placeholder="请选择" @change="targetChange">
|
||
<el-option v-for="item in targetList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="4">
|
||
<el-form-item label="谐波次数" v-if="activeName == '0' && harmShowFlag">
|
||
<el-select clearable v-model="store.params.harmCount" placeholder="请选择">
|
||
<el-option v-for="item in harmNum" :key="item" :label="item + '次'" :value="item"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12"></el-col>
|
||
|
||
|
||
</el-row>
|
||
|
||
|
||
<!-- <el-form-item style="float: right">
|
||
<i class="el-icon-warning" style="color: rgb(241, 158, 60)"></i>
|
||
未选中数据则上送列表所有数据
|
||
</el-form-item> -->
|
||
</el-form>
|
||
</div>
|
||
<div id="select-form" v-if="activeName == '4'">
|
||
<el-form ref="aform" inline>
|
||
<el-form-item label="日期">
|
||
|
||
<el-date-picker style="width:180px" value-format="yyyy-MM-dd" v-model="store.params.searchBeginTime"
|
||
@change="monthChange" type="month" placeholder="选择日期"></el-date-picker>
|
||
|
||
|
||
|
||
|
||
</el-form-item>
|
||
|
||
<el-form-item label="功能类型">
|
||
<el-select clearable v-model="store.params.searchValue" style="width: 180px; margin-right: 5px">
|
||
<el-option label="母线基准水平评估" value="0"></el-option>
|
||
<el-option label="主网监测点统计" value="1"></el-option>
|
||
<el-option label="变电站监测统计" value="2"></el-option>
|
||
<el-option label="典型源荷指标统计" value="3"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item label="执行结果">
|
||
<el-select clearable v-model="store.params.sortBy" style="width: 180px; margin-right: 5px">
|
||
<el-option label="成功" value="1"></el-option>
|
||
<el-option label="失败" value="0"></el-option>
|
||
|
||
</el-select>
|
||
</el-form-item>
|
||
|
||
<el-button size="small" type="primary" icon="el-icon-search" @click="
|
||
store.params.pageNum = 1
|
||
store.loading = true
|
||
store.search()
|
||
">
|
||
查询
|
||
</el-button>
|
||
|
||
</el-form>
|
||
|
||
</div>
|
||
<div v-loading="store.loading">
|
||
|
||
<vxe-table ref="table" stripe :height="tableHeight" :data="store.data" size="mini" highlight-current-row
|
||
header-cell-class-name="table_header" style="width: 100%" border @checkbox-all="handleSelectionChange"
|
||
@checkbox-change="handleSelectionChange" :checkbox-config="{ checkMethod: checCheckboxkMethod }">
|
||
|
||
<vxe-table-column key="uploadStatus" v-if="activeName != '4'" fixed="right" align="center" field="uploadStatus"
|
||
show-overflow-tooltip title="上送状态" :min-width="130">
|
||
<template slot-scope="scope">
|
||
<el-tag type="primary" size="small" style="color: #409eff; background: #ecf5ff"
|
||
v-if="scope.row.uploadStatus == 0 || scope.row.isUploadHead == 0">
|
||
未上送
|
||
</el-tag>
|
||
<el-tag type="primary" size="small" style="color: #67c23a; background: #f0f9eb"
|
||
v-if="scope.row.uploadStatus == 1 || scope.row.isUploadHead == 1">
|
||
已上送
|
||
</el-tag>
|
||
</template>
|
||
</vxe-table-column>
|
||
|
||
<vxe-table-column v-if="activeName == '4'" key="result" fixed="right" align="center" field="result"
|
||
show-overflow-tooltip title="运行结果 " :min-width="130">
|
||
<template slot-scope="scope">
|
||
<el-tag type="primary" size="small" style="color: #fc0303; background: #ecf5ff"
|
||
v-if="scope.row.result == 0">
|
||
失败
|
||
</el-tag>
|
||
<el-tag type="primary" size="small" style="color: #67c23a; background: #f0f9eb"
|
||
v-if="scope.row.result == 1">
|
||
成功
|
||
</el-tag>
|
||
</template>
|
||
</vxe-table-column>
|
||
|
||
|
||
|
||
|
||
<vxe-table-column :sortable="item.sortable" align="center" v-for="(item, index) in store.tableColumn"
|
||
:field="item.prop" :title="item.label" :min-width="item.width" :show-overflow="true" :key="index"
|
||
:formatter="formFilter"></vxe-table-column>
|
||
</vxe-table>
|
||
<el-pagination background align="right" @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||
:current-page="store.params.pageNum" :page-sizes="[20, 30, 40, 50, 130]" :page-size="store.params.pageSize"
|
||
layout="total, sizes, prev, pager, next, jumper" :total="store.total" class="mt10"></el-pagination>
|
||
</div>
|
||
|
||
</el-tabs>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
// import Timeinterval from '@/views/components/TimePicker/index6.vue'
|
||
import Timeinterval from '@/views/components/Timeinterval.vue'
|
||
import Area from '@/views/components/Area/Area.vue'
|
||
import list from '@/mixins/list'
|
||
import request from '@/utils/request'
|
||
import { dicData } from '@/assets/commjs/dictypeData'
|
||
import Monitoringpoint from '@/views/Account-management/components/Monitoringpoint.vue'
|
||
import { listRoleMenu } from '@/api/admin/role'
|
||
|
||
export default {
|
||
mixins: [list],
|
||
name: 'AlgorithmTemplate',
|
||
components: { Area, Timeinterval, Monitoringpoint },
|
||
data() {
|
||
return {
|
||
activeName: '0',
|
||
canDataFeed: false,
|
||
time: '02',
|
||
voltageLevelList: [],
|
||
targetList: [],
|
||
harmNum: [],
|
||
harmShowFlag: false,
|
||
storeList: [
|
||
// {
|
||
// label: '换流站指标汇总统计',
|
||
// url: '/harmonic-boot/ConverterIndex/queryPage',
|
||
// feedUrl: '/harmonic-boot/ConverterIndex/send',
|
||
// tableColumn: [
|
||
// { label: '发生超标或暂态母线日均占比(%)', prop: 'abnormalBusAvgRate', width: 130 },
|
||
// { label: '发生超标或暂态母线数量(条)', prop: 'abnormalBusNum', width: 130 },
|
||
// { label: '发生超标或暂态母线占比(%)', prop: 'abnormalBusRate', width: 130 },
|
||
// { label: '发生超标或暂态换流站日均占比(%)', prop: 'abnormalConverterAvgRate', width: 130 },
|
||
// { label: '发生超标或暂态换流站数量(条)', prop: 'abnormalConverterNum', width: 130 },
|
||
// { label: '发生超标或暂态换流站占比(%)', prop: 'abnormalConverterRate', width: 130 },
|
||
// { label: '市级单位id', prop: 'cityId', width: 200 },
|
||
// { label: '市级单位名称', prop: 'cityName', width: 200 },
|
||
// { label: '监测交流母线数量(条)', prop: 'monitorAlternatingBusNum', width: 130 },
|
||
// { label: '交流母线监测率(%)', prop: 'monitorAlternatingBusRate', width: 130 },
|
||
// { label: '监测换流站数量(座)', prop: 'monitorConverterNum', width: 130 },
|
||
// { label: '换流站监测率(%)', prop: 'monitorConverterRate', width: 130 },
|
||
// { label: '在运交流母线数量(条)', prop: 'onlineAlternatingBusNum', width: 130 },
|
||
// { label: '在运换流站数量(座)', prop: 'onlineConverterNum', width: 130 },
|
||
// { label: '省级单位名称', prop: 'provinceName', width: 200 },
|
||
// { label: '省级单位id', prop: 'provinceId', width: 200 },
|
||
// { label: '统计日期', prop: 'statisticalDate', width: 130 },
|
||
// { label: '统计类型', prop: 'statisticalType', width: 130 },
|
||
// { label: '统计层级', prop: 'statisticalLevel', width: 130 },
|
||
// { label: '累计发生超标或暂态换流站数量(座)', prop: 'abnormalConverterCount', width: 130 },
|
||
// { label: '累计监测换流站数量(座)', prop: 'monitorConverterCount', width: 130 },
|
||
// { label: '累计发生超标或暂态母线数量(座)', prop: 'abnormalBusCount', width: 130 },
|
||
// { label: '累计监测交流母线数量(座)', prop: 'monitorAlternatingBusCount', width: 130 }
|
||
// ]
|
||
// },
|
||
// {
|
||
// label: '换流站指标统计明细',
|
||
// url: '/harmonic-boot/ConverterDetail/queryPage',
|
||
// feedUrl: '/harmonic-boot/ConverterDetail/send',
|
||
// tableColumn: [
|
||
// { label: '市级单位id', prop: 'cityId', width: 130 },
|
||
// { label: '市级单位名称', prop: 'cityName', width: 130 },
|
||
// { label: '换流站id', prop: 'converterId', width: 130 },
|
||
// { label: '县级单位id', prop: 'countyId', width: 130 },
|
||
// { label: '县级单位名称', prop: 'countyName', width: 130 },
|
||
// { label: '站内有效监测点数量(个)', prop: 'effectiveMonitorNum', width: 130 },
|
||
// { label: '月均超标天数', prop: 'monthOvDays', width: 130 },
|
||
// { label: '奇次谐波电压限值(%)', prop: 'oddVoltLimit', width: 130 },
|
||
// { label: '省级单位id', prop: 'provinceId', width: 130 },
|
||
// { label: '省级单位名称', prop: 'provinceName', width: 130 },
|
||
// { label: '统计日期', prop: 'statisticalDate', width: 130 },
|
||
// { label: '统计类型', prop: 'statisticalType', width: 130 },
|
||
// { label: '累计超标天数', prop: 'totalOvDays', width: 130 },
|
||
// { label: '11次谐波电压95%概率值(%)', prop: 'v11', width: 130 },
|
||
// { label: '13次谐波电压95%概率值(%)', prop: 'v13', width: 130 },
|
||
// { label: '23次谐波电压95%概率值(%)', prop: 'v23', width: 130 },
|
||
// { label: '25次谐波电压95%概率值(%)', prop: 'v25', width: 130 },
|
||
// { label: '3次谐波电压95%概率值(%)', prop: 'v3', width: 130 },
|
||
// { label: '5次谐波电压95%概率值(%)', prop: 'v5', width: 130 },
|
||
// { label: '7次谐波电压95%概率值(%)', prop: 'v7', width: 130 },
|
||
// { label: '电压等级', prop: 'voltageLevel', width: 130 },
|
||
// { label: '电压总谐波畸变率95%概率值统计值(%)', prop: 'vthd', width: 130 },
|
||
// { label: '电压总谐波畸变率95%概率值限值(%)', prop: 'vthdLimit', width: 130 },
|
||
// { label: '换流站名称', prop: 'converterName', width: 130 },
|
||
// { label: '谐波电压超标天数', prop: 'harmvOvDay', width: 130 },
|
||
// { label: '母线id', prop: 'busId', width: 130 },
|
||
// { label: '母线名称', prop: 'busName', width: 130 },
|
||
// { label: '母线电压等级', prop: 'busVoltageLevel', width: 130 },
|
||
// { label: '当年累计月数', prop: 'monthsCount', width: 130 },
|
||
// { label: '监测点id', prop: 'monitorId', width: 130 }
|
||
// ]
|
||
// },
|
||
{
|
||
label: '主网监测点统计',
|
||
url: '/harmonic-boot/upload/getPointStatisticalData',
|
||
feedUrl: '/harmonic-boot/upload/uploadPointStatisticalData',
|
||
canDataFeed: false,
|
||
tableColumn: [
|
||
{ label: '省级单位名称', prop: 'provinceName', width: 200 },
|
||
{ label: '市级单位名称', prop: 'cityName', width: 200 },
|
||
{ label: '县级单位名称', prop: 'countyName', width: 200 },
|
||
{ label: '统计日期', prop: 'statisticalDate', width: 130 },
|
||
{ label: '所属站别', prop: 'stationType', width: 130 },
|
||
{ label: '在运监测终端数量', prop: 'runTerminalNum', width: 130 },
|
||
{ label: '所属站别下的监测点数', prop: 'stationMonitorNum', width: 160 },
|
||
{ label: '在运监测点个数', prop: 'runMonitorNum', width: 130 },
|
||
{ label: '在线监测点个数', prop: 'onlineMonitorNum', width: 130 },
|
||
{ label: '监测点在线率%', prop: 'onlineMonitorRate', width: 130 },
|
||
{ label: '数据应收数', prop: 'expectCollectNum', width: 130 },
|
||
{ label: '数据实收数', prop: 'actualCollectNum', width: 130 },
|
||
{ label: '数据完整率%', prop: 'dataFullRate', width: 130, sortable: true }
|
||
]
|
||
},
|
||
{
|
||
label: '母线基准水平评估',
|
||
url: '/harmonic-boot/upload/getEvaluationData',
|
||
feedUrl: '/harmonic-boot/upload/uploadEvaluationData',
|
||
canDataFeed: false,
|
||
tableColumn: [
|
||
{ label: '省级单位', prop: 'provinceName', width: 200 },
|
||
{ label: '市级单位', prop: 'cityName', width: 200 },
|
||
{ label: '县级单位', prop: 'countyName', width: 200 },
|
||
{ label: '统计日期', prop: 'statisticalDate', width: 130 },
|
||
{ label: '电压等级', prop: 'voltageLevel', width: 130 },
|
||
{ label: '指标类型', prop: 'indexType', width: 130 },
|
||
{ label: '谐波次数', prop: 'harmonicNum', width: 130 },
|
||
{ label: '监测母线数量', prop: 'monitorBusNum', width: 130 },
|
||
{ label: '在运母线数量', prop: 'onlineBusNum', width: 130 },
|
||
{ label: '母线监测率(%)', prop: 'monitorBusRate', width: 130 },
|
||
{ label: '均值', prop: 'avgValue', width: 130 },
|
||
{ label: '标准差', prop: 'standardDeviation', width: 130 }
|
||
]
|
||
},
|
||
|
||
{
|
||
label: '变电站监测统计',
|
||
url: '/harmonic-boot/upload/getSubstationStatisticalData',
|
||
feedUrl: '/harmonic-boot/upload/uploadSubstationStatisticalData',
|
||
canDataFeed: false,
|
||
tableColumn: [
|
||
{ label: '省级单位名称', prop: 'provinceName', width: 200 },
|
||
{ label: '市级单位名称', prop: 'cityName', width: 200 },
|
||
{ label: '县级单位名称', prop: 'countyName', width: 200 },
|
||
{ label: '统计日期', prop: 'statisticalDate', width: 130 },
|
||
{ label: '变电站总数量', prop: 'substationCount', width: 130 },
|
||
{ label: '在运变电站数量', prop: 'runSubstationNum', width: 130 },
|
||
{ label: '监测变电站数量', prop: 'monitorSubstaionNum', width: 130 },
|
||
{ label: '监测率%', prop: 'monitoringRate', width: 130 },
|
||
{ label: '覆盖率%', prop: 'coverageRate', width: 130 },
|
||
{ label: '测试变电站数量', prop: 'testSubstaionNum', width: 130 },
|
||
{ label: '在线监测点数', prop: 'onlineMonitorNum', width: 130 }
|
||
]
|
||
},
|
||
{
|
||
label: '典型源荷指标统计',
|
||
url: '/harmonic-boot/pqTypicalSourceCreate/queryPage',
|
||
feedUrl: '/harmonic-boot/pqTypicalSourceCreate/send',
|
||
tableColumn: [
|
||
{ label: '所属网省名称', prop: 'provinceName', width: 200 },
|
||
{ label: '所属地市名称', prop: 'cityName', width: 200 },
|
||
{ label: '所属区县名称', prop: 'countyName', width: 200 },
|
||
{ label: '统计日期', prop: 'statisticalDate', width: 150 },
|
||
|
||
{ label: '统计类型', prop: 'statisticalType', width: 150 },
|
||
{ label: '典型源荷用户类型', prop: 'indexType', width: 150 },
|
||
{ label: '干扰源数量', prop: 'interferenceSourceNum', width: 150 },
|
||
{ label: '实现监测数量', prop: 'monitorNum', width: 150 },
|
||
{ label: '监测率', prop: 'monitoringRate', width: 150 },
|
||
{ label: '行业分类', prop: 'industryType', width: 150 },
|
||
{ label: '平均超标天数', prop: 'averageOvDays', width: 150 },
|
||
{ label: '总超标数量', prop: 'ovNum', width: 150 },
|
||
{ label: '超标占比', prop: 'ovRate', width: 150 },
|
||
|
||
{ label: '闪变超标数', prop: 'flickerOvNum', width: 150 },
|
||
{ label: '闪变平均超占比', prop: 'flickerAvgOvRate', width: 150 },
|
||
{ label: '闪变超标占比', prop: 'flickerOvRate', width: 150 },
|
||
|
||
{ label: '谐波电流超标数', prop: 'iovNum', width: 150 },
|
||
{ label: '谐波电流平均超标占比', prop: 'iavgOvRate', width: 180 },
|
||
{ label: '谐波电流超标占比', prop: 'iovRate', width: 180 },
|
||
|
||
{ label: '负序电流超标数', prop: 'inseqOvNum', width: 150 },
|
||
{ label: '负序电流平均超标占比', prop: 'inseqAvgOvRate', width: 180 },
|
||
{ label: '负序电流超标占比', prop: 'inseqOvRate', width: 150 },
|
||
|
||
|
||
{ label: '三相不平衡超标数', prop: 'unbanOvNum', width: 150 },
|
||
{ label: '三相不平衡超标占比', prop: 'unbanOvRate', width: 180 },
|
||
{ label: '谐波电压平均超标占比', prop: 'vavgOvRate', width: 180 },
|
||
{ label: '谐波电压超标数', prop: 'vovNum', width: 160 },
|
||
{ label: '谐波电压超标占比', prop: 'vovRate', width: 160 },
|
||
{ label: '三相不平衡平均超标占比', prop: 'unbanAvgOvRate', width: 180 },
|
||
{ label: '累计超标天数合计', prop: 'ovDayCount', width: 160 }
|
||
]
|
||
},
|
||
{
|
||
label: '网公司上送统计',
|
||
url: '/harmonic-boot/rUploadDataLog/getList',
|
||
tableColumn: [
|
||
{ label: '统计时间', prop: 'statisticDate', width: 200 },
|
||
{ label: '功能', prop: 'smallType', width: 200 },
|
||
{ label: '描述', prop: 'resultMsg', width: 1000, showOverflow: true },
|
||
]
|
||
}
|
||
],
|
||
|
||
uploadButton: false,
|
||
voltageLevelOptions: [],
|
||
multipleSelection: [],
|
||
|
||
stationType: [],
|
||
industryType: []
|
||
}
|
||
},
|
||
created() {
|
||
this.init()
|
||
this.voltageLevelOptions = dicData('Dev_Voltage', [])
|
||
|
||
this.stationType = dicData('Station_Type', [])
|
||
this.industryType = dicData('industry_type', [])
|
||
listRoleMenu({
|
||
id: JSON.parse(window.sessionStorage.getItem('Info')).roleList[0]
|
||
}).then(response => {
|
||
this.storeList.forEach(item => {
|
||
item.canDataFeed = response.data.some(item2 => item2.routePath === item.feedUrl)
|
||
})
|
||
})
|
||
|
||
this.voltageLevelList = dicData('Dev_Voltage', [])
|
||
this.targetList = [{ name: '电压', id: '01' }, { name: '长时闪变', id: '02' }, {
|
||
name: '三相电压不平衡',
|
||
id: '03'
|
||
}, { name: '电压总谐波畸变率', id: '04' }, { name: '各次谐波电压', id: '05' }, { name: '负序电流', id: '06' }]
|
||
|
||
this.harmNum = []
|
||
for (let i = 2; i < 51; i++) {
|
||
this.harmNum.push(i)
|
||
}
|
||
|
||
},
|
||
mounted() {
|
||
this.setHeight()
|
||
window.addEventListener('resize', this.setHeight)
|
||
},
|
||
|
||
beforeDestroy() {
|
||
window.removeEventListener('resize', this.setHeight)
|
||
},
|
||
methods: {
|
||
|
||
|
||
targetChange(val) {
|
||
|
||
|
||
if (val == '05') {
|
||
this.harmShowFlag = true
|
||
} else {
|
||
this.harmShowFlag = false
|
||
store.params.harmCount = null
|
||
}
|
||
|
||
},
|
||
|
||
setHeight() {
|
||
this.tableHeight = window.sessionStorage.getItem('appheight') - 200
|
||
},
|
||
checCheckboxkMethod({ row }) {
|
||
// return row.cityId == '/' && row.countyId == '/'
|
||
return row.countyId == '/'
|
||
},
|
||
//导出
|
||
exportEvent() {
|
||
if (this.store.data.length === 0) {
|
||
this.$message({
|
||
type: 'warning',
|
||
message: '暂无数据'
|
||
})
|
||
return
|
||
}
|
||
this.store.export(data => {
|
||
this.$refs.table.exportData({
|
||
filename: 'export', // 文件名字
|
||
sheetName: 'Sheet1',
|
||
type: 'xlsx', //导出文件类型 xlsx 和 csv
|
||
useStyle: true,
|
||
data, // 数据源
|
||
columnFilterMethod: function (column, $columnIndex) {
|
||
return !(column.$columnIndex === 0)
|
||
}
|
||
})
|
||
})
|
||
},
|
||
timeChange() {
|
||
let day = new Date()
|
||
day.setDate(day.getDate() - 1)
|
||
if (this.store.params.dataType == '01') {
|
||
this.uploadButton = true;
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 5) + '01-01'
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime.substring(0, 5) + '12-30'
|
||
} else if (this.store.params.dataType == '02') {
|
||
|
||
this.uploadButton = true;
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 8) + '01'
|
||
this.store.params.searchEndTime =
|
||
this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 8) +
|
||
this.getDaysInMonth(
|
||
this.store.params.searchBeginTime.substring(5, 7) - 0,
|
||
this.store.params.searchBeginTime.substring(0, 4) - 0
|
||
)
|
||
} else {
|
||
this.uploadButton = false;
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd')
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime
|
||
}
|
||
},
|
||
dateChange(e) {
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime
|
||
},
|
||
monthChange(e) {
|
||
// this.store.params.searchEndTime = this.store.params.searchBeginTime
|
||
this.store.params.searchEndTime =
|
||
this.store.params.searchBeginTime.substring(0, 8) +
|
||
this.getDaysInMonth(e.substring(5, 7), e.substring(0, 4))
|
||
},
|
||
yearChange(e) {
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime.substring(0, 5) + '12-30'
|
||
},
|
||
getDaysInMonth(month, year) {
|
||
return new Date(year, month, 0).getDate()
|
||
},
|
||
feed() {
|
||
if (this.multipleSelection.length === 0) {
|
||
this.$confirm('是否上送全部监测点?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.store.loading = true
|
||
request
|
||
.post(this.storeList[this.activeName].feedUrl, {
|
||
list: [],
|
||
time:
|
||
this.store.params.dataType == '01'
|
||
? this.store.params.searchBeginTime.substring(0, 4)
|
||
: this.store.params.dataType == '02'
|
||
? this.store.params.searchBeginTime.substring(0, 7)
|
||
: this.store.params.searchBeginTime
|
||
})
|
||
.then(res => {
|
||
if (res && res.code === 'A0000') {
|
||
this.$message({
|
||
message: '上送成功!',
|
||
type: 'success'
|
||
})
|
||
this.multipleSelection = []
|
||
this.store.search()
|
||
}
|
||
this.store.loading = false
|
||
})
|
||
.catch(err => {
|
||
this.store.loading = false
|
||
})
|
||
})
|
||
} else {
|
||
this.store.loading = true
|
||
request
|
||
.post(this.storeList[this.activeName].feedUrl, {
|
||
list: this.multipleSelection,
|
||
time:
|
||
this.store.params.dataType == '01'
|
||
? this.store.params.searchBeginTime.substring(0, 4)
|
||
: this.store.params.dataType == '02'
|
||
? this.store.params.searchBeginTime.substring(0, 7)
|
||
: this.store.params.searchBeginTime
|
||
})
|
||
.then(res => {
|
||
if (res && res.code === 'A0000') {
|
||
this.$message({
|
||
message: '上送成功!',
|
||
type: 'success'
|
||
})
|
||
this.multipleSelection = []
|
||
this.store.search()
|
||
}
|
||
this.store.loading = false
|
||
})
|
||
.catch(err => {
|
||
this.store.loading = false
|
||
})
|
||
}
|
||
},
|
||
|
||
//重新计算四个算法
|
||
reCalUpload(type) {
|
||
if (this.store.params.dataType === '02') {
|
||
if (type == null || type === '') {
|
||
this.$message({
|
||
message: '请选择类型',
|
||
type: 'warning'
|
||
})
|
||
return false;
|
||
}
|
||
let dateMonth = this.store.params.searchBeginTime.substring(0, 7)
|
||
//月
|
||
request
|
||
.get('/prepare-boot/dimGlobal/reCalMonthUploadAlgorithm?statisticDate=' + dateMonth + '&type=1')
|
||
.then(res => {
|
||
if (res && res.code === 'A0000') {
|
||
this.$message({
|
||
message: '请求重新计算指令成功!请等待大约20s后刷新页面',
|
||
type: 'success'
|
||
})
|
||
}
|
||
}).catch(err => {
|
||
})
|
||
} else {
|
||
request
|
||
.get('/prepare-boot/dimGlobal/reCalUploadAlgorithm?statisticDate=' + this.store.params.searchBeginTime + '&type=1')
|
||
.then(res => {
|
||
if (res && res.code === 'A0000') {
|
||
this.$message({
|
||
message: '请求重新计算指令成功!请等待大约20s后刷新页面',
|
||
type: 'success'
|
||
})
|
||
}
|
||
}).catch(err => {
|
||
})
|
||
}
|
||
|
||
},
|
||
init(data = {}) {
|
||
this.store = this.dataSource(this.storeList[this.activeName].url)
|
||
console.log("🚀 ~ init ~ this.store:", this.store)
|
||
let day = new Date()
|
||
day.setDate(day.getDate() - 1)
|
||
this.store.params.dataType = '03'
|
||
if (this.activeName === '2' || this.activeName === '4') {
|
||
//电站只有月和年
|
||
this.store.params.dataType = '02'
|
||
|
||
}
|
||
if (this.store.params.dataType == '01') {
|
||
if (this.activeName == '2') {
|
||
this.uploadButton = false;
|
||
} else {
|
||
this.uploadButton = true;
|
||
}
|
||
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 5) + '01-01'
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime.substring(0, 5) + '12-30'
|
||
} else if (this.store.params.dataType == '02') {
|
||
if (this.activeName == '2') {
|
||
this.uploadButton = false;
|
||
} else {
|
||
this.uploadButton = true;
|
||
}
|
||
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 8) + '01'
|
||
this.store.params.searchEndTime =
|
||
this.$tools.formatDate(day, 'yyyy-MM-dd').substring(0, 8) +
|
||
this.getDaysInMonth(
|
||
this.store.params.searchBeginTime.substring(5, 7) - 0,
|
||
this.store.params.searchBeginTime.substring(0, 4) - 0
|
||
)
|
||
} else {
|
||
this.uploadButton = false;
|
||
this.store.params.searchBeginTime = this.$tools.formatDate(day, 'yyyy-MM-dd')
|
||
this.store.params.searchEndTime = this.store.params.searchBeginTime
|
||
}
|
||
|
||
this.store.tableColumn = this.storeList[this.activeName].tableColumn
|
||
this.store.params.deptIndex = ''
|
||
this.store.params.orgId = ''
|
||
this.store.params.searchState = ''
|
||
this.multipleSelection = []
|
||
this.store.loadCallback = () => {
|
||
this.store.data.forEach(item => {
|
||
for (let key in item) {
|
||
if (item[key] === null || item[key] === '') {
|
||
item[key] = '/'
|
||
} else if (item[key] === 3.1415926) {
|
||
item[key] = '暂无数据'
|
||
}
|
||
// if (key === 'uploadStatus' || key === 'isUploadHead') {
|
||
// item['uploadStatus'] = item[key] === 0 ? '未上送' : '已上送'
|
||
// }
|
||
else if (key === 'indexType') {
|
||
let arr =
|
||
this.store.url === '/harmonic-boot/upload/getEvaluationData'
|
||
? [
|
||
{ label: '电压', value: '01' },
|
||
{ label: '长时间闪变', value: '02' },
|
||
{ label: '三相电压不平衡', value: '03' },
|
||
{ label: '电压总谐波畸变率', value: '04' },
|
||
{ label: '各次谐波电压', value: '05' },
|
||
{ label: '负序电流', value: '06' }
|
||
]
|
||
: [
|
||
{ label: '牵引站', value: '01' },
|
||
{ label: '风电场用户', value: '02' },
|
||
{ label: '光伏场站用户', value: '03' },
|
||
{ label: '其他干扰源用户', value: '04' }
|
||
]
|
||
item[key] =
|
||
arr.find(item2 => item2.value === item[key]) &&
|
||
arr.find(item2 => item2.value === item[key]).label
|
||
} else if (key === 'voltageLevel') {
|
||
item[key] =
|
||
this.voltageLevelOptions.find(item2 => item2.value === item[key]) &&
|
||
this.voltageLevelOptions.find(item2 => item2.value === item[key]).label
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
handleNodeClick(data) {
|
||
console.log(data)
|
||
if (!this.store.params.deptIndex && !this.store.params.orgId) {
|
||
this.store.params.deptIndex = data.code
|
||
this.store.params.orgId = data.code
|
||
this.store.reload()
|
||
} else {
|
||
this.store.params.deptIndex = data.code
|
||
this.store.params.orgId = data.code
|
||
}
|
||
},
|
||
handleClick(tab, event) {
|
||
this.init()
|
||
this.$refs.area.init()
|
||
},
|
||
handleSelectionChange({ records }) {
|
||
console.log(records)
|
||
this.multipleSelection = records.map(item => item.id)
|
||
},
|
||
|
||
|
||
|
||
// 数据过滤
|
||
formFilter(row, column) {
|
||
// console.log(row)
|
||
if (row.column.property == 'statisticalType') {
|
||
return row.row.statisticalType == '01'
|
||
? '年数据'
|
||
: row.row.statisticalType == '02'
|
||
? '月数据'
|
||
: '日数据'
|
||
} else if (row.column.property == 'stationType') {
|
||
let name
|
||
this.stationType.forEach(item => {
|
||
if (item.value == row.row.stationType) {
|
||
name = item.name
|
||
}
|
||
})
|
||
return name
|
||
} else if (row.column.property == 'industryType') {
|
||
let name
|
||
this.industryType.forEach(item => {
|
||
if (item.gvalue == row.row.industryType) {
|
||
name = item.name
|
||
}
|
||
})
|
||
return name
|
||
} else if (row.column.property == 'smallType') {
|
||
if (row.row.smallType == 0) {
|
||
return '母线基准水平评估'
|
||
} else if (row.row.smallType == 1) {
|
||
return '主网监测点统计'
|
||
} else if (row.row.smallType == 2) {
|
||
return '变电站监测统计'
|
||
} else if (row.row.smallType == 3) {
|
||
return '典型源荷指标统计'
|
||
}
|
||
|
||
} else if (row.column.property == 'result') {
|
||
if (row.row.result == 0) {
|
||
return '失败'
|
||
} else if (row.row.result == 1) {
|
||
return '成功'
|
||
}
|
||
|
||
} else {
|
||
return row.row[row.column.property]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style lang="sass"></style>
|