Files
hb_pqs_web/src/views/Account-management/components/Monitoringpoint.vue
2025-03-21 16:20:25 +08:00

1665 lines
71 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<el-form :inline="true" :model="ruleForm" class="demo-form-inline">
<el-form-item label="信息查询:">
<el-input v-model.trim="ruleForm.searchValue" placeholder="请输入查询信息" style="width: 160px"
clearable></el-input>
</el-form-item>
<el-form-item label="对象标签:">
<el-select v-model="ruleForm.monitorTag" placeholder="请选择装置类别" clearable style="width: 160px">
<el-option v-for="item in monitorTagList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="对象类型:">
<el-cascader filterable clearable ref="SubObjType" placeholder="请选择对象类型" v-model="objTypes"
:show-all-levels="false" :options="flag == 1 ? MonitoringPointTypes : MonitoringPointType" :props="{
checkStrictly: true,
expandTrigger: 'hover',
value: 'id',
label: 'name',
children: 'children'
}"></el-cascader>
</el-form-item>
<el-form-item label="监测点状态:">
<el-select v-model="ruleForm.monitorState" placeholder="请选择" clearable class="select">
<el-option clearable v-for="item in monitorStateList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="上送网公司监测点:">
<el-select v-model="ruleForm.isUpToGrid" placeholder="请选择" clearable class="select">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="上送标识:" v-if="flag == 1">
<el-select v-model="ruleForm.isUploadHead" placeholder="请选择" clearable style="width: 120px">
<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="上送标识:" v-if="flag == 0">
<el-select v-model="ruleForm.monitorUploadStatus" placeholder="请选择" clearable style="width: 120px">
<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>
<!-- <el-button type="primary" icon="el-icon-download" class="pms">PMS获取数据</el-button>
<el-button type="primary" icon="el-icon-upload2" class="ml10" @click="upload">PMS数据上传</el-button> -->
<el-button type="primary" class="ml10" icon="el-icon-search" @click="pagMonitoring">查询</el-button>
<!-- <el-button type="primary" icon="el-icon-refresh-right" @click="Reset"
>重置</el-button
> -->
<el-button type="primary" icon="el-icon-download" @click="exportEvent">导出</el-button>
<el-button v-if="flag == 1" type="primary" icon="el-icon-upload2" @click="Submission">
网公司上送
</el-button>
<el-button v-if="flag == 0" type="primary" icon="el-icon-upload2" @click="LedgerSubmission">
网公司上送
</el-button>
</el-form-item>
</el-form>
<template>
<span>
<el-button type="primary" size="mini" class="ml10" icon="el-icon-plus" @click="addFn">新增</el-button>
<el-button type="primary" size="mini" class="ml10" icon="el-icon-edit" @click="modifyFn">
修改
</el-button>
<el-button type="primary" size="mini" class="ml10" icon="el-icon-delete" @click="deleteFn">
删除
</el-button>
</span>
<vxe-table stripe :data="UserData" :height="height" border :row-config="{ isCurrent: true, isHover: true }"
size="mini" ref="Monitoringpoint" style="width: 100%" v-loading="isLoading"
header-cell-class-name="table_header" @checkbox-change="handleSelectionChange" class="mt10"
:cell-style="cellStyle">
<vxe-table-column align="center" type="checkbox" width="55"></vxe-table-column>
<vxe-table-column v-for="(item, index) in tableHeaderMonitoring" align="center" :field="item.prop"
:title="item.label" :min-width="item.width" :key="index" :formatter="formFilter"
:show-overflow="true"></vxe-table-column>
<vxe-table-column v-if="flag == 1" align="center" field="isUploadHead" fixed="right" title="上送标识"
min-width="150" :show-overflow="true">
<template slot-scope="scope">
<el-tag type="primary" size="small" style="color: #409eff; background: #ecf5ff"
v-if="scope.row.isUploadHead == 0">
未上送
</el-tag>
<el-tag type="primary" size="small" style="color: #67c23a; background: #f0f9eb"
v-if="scope.row.isUploadHead == 1">
已上送
</el-tag>
<el-tag type="primary" size="small" style="color: #909399; background: #f4f4f5"
v-if="scope.row.isUploadHead == 2">
取消上送
</el-tag>
<el-tag type="primary" size="small" style="color: orange; background: #f4f4f5"
v-if="scope.row.isUploadHead == 3">
待重新上送
</el-tag>
</template>
</vxe-table-column>
<vxe-table-column v-else align="center" field="monitorUploadStatus" fixed="right" title="上送标识"
min-width="150" :show-overflow="true">
<template slot-scope="scope">
<el-tag type="primary" size="small" style="color: #409eff; background: #ecf5ff"
v-if="scope.row.monitorUploadStatus == 0">
未上送
</el-tag>
<el-tag type="primary" size="small" style="color: #67c23a; background: #f0f9eb"
v-if="scope.row.monitorUploadStatus == 1">
已上送
</el-tag>
<el-tag type="primary" size="small" style="color: #909399; background: #f4f4f5"
v-if="scope.row.monitorUploadStatus == 2">
取消上送
</el-tag>
<el-tag type="primary" size="small" style="color: orange; background: #f4f4f5"
v-if="scope.row.monitorUploadStatus == 3">
待重新上送
</el-tag>
</template>
</vxe-table-column>
</vxe-table>
<el-pagination background align="right" @size-change="handleSizeChange"
@current-change="handleCurrentChange" :current-page="ruleForm.pageNum"
:page-sizes="[20, 30, 40, 50, 100]" :page-size="ruleForm.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total" class="mt10"></el-pagination>
</template>
<!-- <PMS_Data
:PMSobtain="PMSobtain"
:title="title"
@Close="Close"
:Data="UserData"
:Name="tableHeaderMonitoring"
></PMS_Data> -->
<!-- 新增/修改 -->
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="addinformation"
:before-close="handleClose" width="50%" height="80%">
<el-form :inline="true" :model="form" ref="rulesform" label-width="170px" :rules="rules" class="form">
<el-form-item label="监测点编号:" class="mt10">
<el-input v-model="form.id" placeholder="不填写默认生成自动编号" clearable :disabled="disabled"></el-input>
</el-form-item>
<el-form-item label="监测点名称:" prop="name" class="mt10">
<el-input v-model="form.name" clearable placeholder="请输入监测点名称"></el-input>
</el-form-item>
<el-form-item prop="orgName" class="mt10" label="组织机构名称:" :rules="{
required: true,
message: '请输入组织机构名称',
trigger: 'change'
}">
<Organization @click="handleNodeClick" ref="Organization" :valueTitle="valueTitle"
:editCheckCode="editCheckCode"></Organization>
</el-form-item>
<el-form-item prop="operationName" class="mt10" label="运维单位名称:" :rules="{
required: true,
message: '请输入运维单位名称',
trigger: 'change'
}">
<Operation @click="handleNodeClick1" ref="Operation" :valueTitle="valueTitle1"
:editCheckCode="editCheckCode1"></Operation>
</el-form-item>
<el-form-item label="变电站名称:" prop="powerrId" class="mt10">
<el-select v-model="form.powerrId" clearable placeholder="请选择变电站名称" @change="changeFn1" filterable>
<el-option v-for="item in statationName" :key="item.powerId"
:label="item.orgName + '_' + item.powerName" :value="item.powerId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="关联的监测终端编号:" prop="terminalId" class="mt10">
<el-select v-model="form.terminalId" clearable placeholder="请选择关联的监测终端编号" filterable
@change="changeTerminal">
<el-option v-for="item in TerminalNo" :key="item.id" :label="item.orgName + '_' + item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测线路名称:" prop="lineId" class="mt10">
<el-select v-model="form.lineId" clearable placeholder="请选择监测线路名称" @change="changeFn3" filterable>
<el-option v-for="item in MonitoringLine" :key="item.id"
:label="item.stationName + '_' + item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:" prop="voltageLevel" class="mt10">
<el-select v-model="form.voltageLevel" clearable 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-form-item label="监测点状态:" prop="monitorState" class="mt10">
<el-select v-model="form.monitorState" clearable placeholder="请选择监测点状态">
<el-option v-for="item in monitorStateList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测点类型:" prop="monitorType" class="mt10">
<el-select v-model="form.monitorType" clearable placeholder="请选择监测点类型">
<el-option v-for="item in monitorTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="PT变比:" required class="mt10">
<div style="display: flex">
<!-- <el-form-item prop="pt1" style="flex: 1"> -->
<el-input v-model="form.pt1" clearable style="width: 100%" placeholder="请输入pt1"></el-input>
<!-- </el-form-item>
<el-form-item prop="pt2" style="flex: 1"> -->
<el-input v-model="form.pt2" clearable style="width: 100%" placeholder="请输入pt1"></el-input>
<!-- </el-form-item> -->
</div>
</el-form-item>
<el-form-item label="CT变比:" required class="mt10">
<div style="display: flex">
<!-- <el-form-item prop="ct1"> -->
<el-input v-model="form.ct1" clearable style="width: 100%" placeholder="请输入ct1"></el-input>
<!-- </el-form-item>
<el-form-item prop="ct2"> -->
<el-input v-model="form.ct2" clearable style="width: 100%" placeholder="请输入ct2"></el-input>
<!-- </el-form-item> -->
</div>
</el-form-item>
<el-form-item label="电压偏差限值(上):" prop="voltageDeviationUpperLimit" class="mt10">
<el-input v-model="form.voltageDeviationUpperLimit" maxlength="10" clearable
placeholder="请输入电压偏差限值(上)"></el-input>
</el-form-item>
<el-form-item label="电压偏差限值(下):" prop="voltageDeviationLowerLimit" class="mt10">
<el-input v-model="form.voltageDeviationLowerLimit" maxlength="10" clearable
placeholder="请输入电压偏差限值(下)"></el-input>
</el-form-item>
<el-form-item label="最小短路容量:" prop="minShortCircuitCapacity" class="mt10">
<el-input v-model="form.minShortCircuitCapacity" maxlength="10" clearable
placeholder="请输入最小短路容量"></el-input>
</el-form-item>
<el-form-item label="供电设备容量:" prop="powerSupplyEqCapacity" class="mt10">
<el-input v-model="form.powerSupplyEqCapacity" maxlength="10" clearable
placeholder="请输入供电设备容量"></el-input>
</el-form-item>
<el-form-item label="用户协议容量:" prop="userAgreementCapacity" class="mt10">
<el-input v-model="form.userAgreementCapacity" maxlength="10" clearable
placeholder="请输入用户协议容量"></el-input>
</el-form-item>
<el-form-item label="电压互感器类型:" prop="potentialTransFormerType" class="mt10">
<el-select v-model="form.potentialTransFormerType" clearable placeholder="请选择电压互感器类型">
<el-option v-for="item in potentialTransFormerTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="中性点接地方式:" prop="neutralGroundingMode" class="mt10">
<el-select v-model="form.neutralGroundingMode" clearable placeholder="请选择中性点接地方式">
<el-option v-for="item in neutralGroundingModeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="行业分类:" prop="MonitoringData" class="mt10">
<el-select v-model="form.tradeCode" clearable placeholder="请选择监测对象">
<el-option v-for="item in industryType" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测对象标签:" prop="monitorTag" class="mt10">
<el-select v-model="form.monitorTag" clearable placeholder="请选择监测对象标签">
<el-option v-for="item in monitorTagList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="对象类型:" prop="objType" class="mt10">
<el-cascader placeholder="请选择对象类型" v-model="form.objType" filterable ref="cascader"
style="width: 100%" :show-all-levels="false" :options="MonitoringPointType" :props="{
checkStrictly: true,
expandTrigger: 'hover',
value: 'id',
label: 'name',
children: 'children'
}" @change="changeCascader"></el-cascader>
</el-form-item>
<el-form-item label="新能源场:" v-if="objTypeCode == '1402' || objTypeCode == '1401'" prop="fieldStation"
class="mt10">
<el-select v-model="form.fieldStation" placeholder="请选择新能源场">
<el-option label="在运站" value="01"></el-option>
<el-option label="新(改、扩)建站" value="02"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="监测对象:" prop="MonitoringData" class="mt10">
<el-select
v-model="form.MonitoringData"
clearable
placeholder="请选择监测对象"
@change="ToggleObjects"
>
<el-option
v-for="item in MonitoringObjectData"
:key="item.value"
:label="item.label"
:value="item.label"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="是否用户专线:" prop="isSpecialSupplyElectricity" class="mt10">
<el-select v-model="form.isSpecialSupplyElectricity" clearable placeholder="请选择是否用户专线">
<el-option v-for="item in whether1" :key="item.id" :label="item.label"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测对象名称:" prop="monitorObjectId" class="mt10">
<el-input v-model="form.monitorObjectName" clearable placeholder="请输入监测对象名称"></el-input>
<!-- <el-select
v-model="form.monitorObjectId"
clearable
multiple
collapse-tags
placeholder="请选择监测对象名称"
>
<el-option
v-for="item in MonitoringObject"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="统计间隔(分钟):" prop="statisticalInterval" class="mt10">
<el-select v-model="form.statisticalInterval" clearable placeholder="请选择统计间隔">
<el-option v-for="item in timeInterval" :key="item.id" :label="item.label"
:value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测终端接线方式:" prop="terminalWiringMethod" class="mt10">
<el-select v-model="form.terminalWiringMethod" clearable placeholder="请选择监测终端接线方式">
<el-option v-for="item in terminalWiringMethodList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否是上送网公司监测点:" prop="isUpToGrid" class="mt10">
<el-select v-model="form.isUpToGrid" clearable placeholder="请选择是否是上送网公司监测点">
<el-option v-for="item in whether" :key="item.id" :label="item.label"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否专项分析:" prop="isSpecialMonitor" class="mt10">
<el-select v-model="form.isSpecialMonitor" placeholder="请选择是否专项分析">
<el-option v-for="item in whether" :key="item.id" :label="item.label"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="关联牵引站:" v-if="objTypeCode == '1300'" class="mt10">
<el-select v-model="form.tractionId" filterable clearable placeholder="请选择关联牵引站">
<el-option v-for="item in TractionStation" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleClose"> </el-button>
<el-button v-if="add" type="primary" @click="addinformationFn"> </el-button>
<el-button v-if="modify" type="primary" @click="modifyinformationFn"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import PMS_Data from '@/views/components/Accountinformation/PMS_Data'
import Organization from './Area/Organization.vue'
import Operation from './Area/Operation.vue'
import {
getstatationStatList,
getGeneratrixWireList,
getTerminalSelectList,
getPowerClientList,
getPowerGenerationUserList,
getAllMonitorPageList,
addMonitor,
updateMonitor,
delMonitor,
importMonitor,
queryTree,
exportSend,
sendType,
pushMonitor,
getTractionStationList
} from '@/api/hbaccountoperation/Monitoringpoint'
// import {deptTree} from '@/api/admin/dept'
import { dicData } from '@/assets/commjs/dictypeData'
export default {
props: {
flag: {
type: Number,
default: 0
}
},
components: { PMS_Data, Organization, Operation },
data() {
return {
fileList: [],
vh: '',
title: '',
add: false,
modify: false,
disabled: false,
objTypes: [],
// 查询数据
ruleForm: {
searchValue: '',
monitorTag: '',
monitorState: '',
objType: '',
pageNum: 1,
pageSize: 20
},
objTypeCode: '',
total: 0,
monitorObjectName: [],
monitorObjectId: [],
form: {
id: '',
isSpecialSupplyElectricity: '',
isUpToGrid: '',
lineId: '',
lineName: '',
minShortCircuitCapacity: '',
// monitorObjectId: [],
MonitoringData: '',
monitorObjectType: '',
monitorState: '',
objType: '',
monitorTag: '',
monitorType: '',
name: '',
neutralGroundingMode: '',
operationId: '',
operationName: '',
orgId: '',
fieldStation: '',
orgName: '',
potentialTransFormerType: '',
powerSupplyEqCapacity: '',
powerrId: '',
powerrName: '',
statisticalInterval: '',
terminalId: '',
terminalWiringMethod: '',
userAgreementCapacity: undefined,
voltageDeviationLowerLimit: '',
voltageDeviationUpperLimit: '',
voltageLevel: '',
ct1: '',
ct2: '',
pt1: '',
pt2: '',
stationName: '',
isSpecialMonitor: 0,
tractionId: ''
},
rules: {
voltageDeviationUpperLimit: [
{
required: true,
message: '请输入电压偏差限值(上)',
trigger: 'blur'
},
{
pattern: /^-?[0-9]\d*$/,
message: '只可以输入整数',
trigger: 'blur'
}
],
voltageDeviationLowerLimit: [
{
required: true,
message: '请输入电压偏差限值(下)',
trigger: 'blur'
},
{
pattern: /^-?[0-9]\d*$/,
message: '只可以输入整数',
trigger: 'blur'
}
],
name: [{ required: true, message: '请输入监测点名称', trigger: 'blur' }],
fieldStation: [{ required: true, message: '请输入新能源场', trigger: 'blur' }],
// valueTitle: [
// { required: true, message: "请输入组织机构名称", trigger:["blur",'change']},
// ],
powerrId: [
{
required: true,
message: '请选择变电站名称',
trigger: ['blur', 'change']
}
],
terminalId: [
{
required: true,
message: '请选择关联的监测终端编号',
trigger: ['blur', 'change']
}
],
lineId: [
{
required: true,
message: '请选择监测线路名称',
trigger: ['blur', 'change']
}
],
voltageLevel: [{ required: true, message: '请选择电压等级', trigger: 'change' }],
monitorState: [{ required: true, message: '请选择监测点状态', trigger: 'change' }],
monitorType: [{ required: true, message: '请选择监测点类型', trigger: 'change' }],
pt1: [
{ required: true, message: '请输入pt1', trigger: 'blur' },
{ pattern: /^[0-9]*$/, message: '只可以输入数字', trigger: 'blur' }
],
pt2: [
{ required: true, message: '请输入pt2', trigger: 'blur' },
{ pattern: /^[0-9]*$/, message: '只可以输入数字', trigger: 'blur' }
],
ct1: [
{ required: true, message: '请输入ct1', trigger: 'blur' },
{ pattern: /^[0-9]*$/, message: '只可以输入数字', trigger: 'blur' }
],
ct2: [
{ required: true, message: '请输入ct2', trigger: 'blur' },
{ pattern: /^[0-9]*$/, message: '只可以输入数字', trigger: 'blur' }
],
minShortCircuitCapacity: [
{ required: true, message: '请输入最小短路容量', trigger: 'blur' },
{
pattern: /^[0-9.]*$/,
message: '只可以输入数字和小数',
trigger: 'blur'
}
],
powerSupplyEqCapacity: [
{ required: true, message: '请输入供电设备容量', trigger: 'blur' },
{
pattern: /^[0-9.]*$/,
message: '只可以输入数字和小数',
trigger: 'blur'
}
],
userAgreementCapacity: [
{ required: true, message: '请输入用户协议容量', trigger: 'blur' },
{
pattern: /^[0-9.]*$/,
message: '只可以输入数字和小数',
trigger: 'blur'
}
],
potentialTransFormerType: [
{
required: true,
message: '请选择电压互感器类型',
trigger: 'change'
}
],
neutralGroundingMode: [
{
required: true,
message: '请选择中性点接地方式',
trigger: 'change'
}
],
isSpecialSupplyElectricity: [{ required: true, message: '请选择是否用户专线', trigger: 'change' }],
monitorTag: [{ required: true, message: '请选择监测对象标签', trigger: 'change' }],
objType: [{ required: true, message: '对象类型', trigger: 'change' }],
// MonitoringData: [
// { required: true, message: "请选择监测对象", trigger: "change" },
// ],
// monitorObjectId: [
// {
// required: true,
// message: "请选择监测对象名称",
// trigger: ["blur", "change"],
// },
// ],
statisticalInterval: [{ required: true, message: '请选择统计间隔', trigger: 'change' }],
terminalWiringMethod: [
{
required: true,
message: '请选择监测终端接线方式',
trigger: 'change'
}
],
isUpToGrid: [
{
required: true,
message: '请选择是否是上送网公司监测点',
trigger: 'change'
}
],
isSpecialMonitor: [{ required: true, message: '请选择是否专项分析', trigger: 'change' }]
},
MonitoringData: '',
height: null,
height1: null,
isLoading: false,
multipleSelection: [],
monitorTagList: [],
//台区台账表头
tableHeaderMonitoring: [
// { prop: 'id', label: '监测点编号', width: 120 },
{ prop: 'name', label: '测点名称', width: 220 },
{ prop: 'monitorId', label: '测点编号', width: 220 },
{ prop: 'orgName', label: '组织机构名称', width: 170 },
{ prop: 'operationName', label: '运维单位名称', width: 170 },
{ prop: 'midStation', label: '变电站编号', width: 150 },
{ prop: 'powerrName', label: '变电站名称', width: 120 },
{ prop: 'busId', label: '母线编号', width: 180 },
{ prop: 'lineName', label: '母线名称', width: 180 },
{ prop: "lineNum", label: "装置接线序号", width: 180 },
{ prop: 'voltageLevel', label: '电压等级', width: 100 },
{ prop: 'monitorState', label: '监测点状态', width: 120 },
{ prop: 'monitorObjectName', label: '监测对象名称', width: 250 },
{ prop: 'monitorType', label: '监测点类型', width: 120 },
{ prop: 'minShortCircuitCapacity', label: '最小短路容量', width: 120 },
{ prop: 'powerSupplyEqCapacity', label: '供电设备容量', width: 120 },
{ prop: 'userAgreementCapacity', label: '用户协议容量', width: 120 },
{ prop: 'putDate', label: '投运日期', width: 120 },
{
prop: 'voltageDeviationUpperLimit',
label: '电压偏差限值(上)',
width: 170
},
{
prop: 'voltageDeviationLowerLimit',
label: '电压偏差限值(下)',
width: 170
},
{
prop: 'potentialTransFormerType',
label: '电压互感器类型',
width: 170
},
{ prop: 'neutralGroundingMode', label: '中性点接地方式', width: 170 },
{
prop: 'isSpecialSupplyElectricity',
label: '是否用户专线',
width: 130
},
{ prop: 'monitorTag', label: '监测对象标签', width: 170 },
{ prop: 'objType', label: '对象类型', width: 170 },
// { prop: "monitorObjectId", label: "监测对象编号", width:170 },
{ prop: 'tradeCode', label: '行业分类', width: 170 },
{ prop: 'statisticalInterval', label: '统计间隔(min)', width: 140 },
{ prop: 'terminalCode', label: '关联的监测终端编号', width: 190 },
{ prop: 'devIp', label: '监测终端IP', width: 150 },
{ prop: 'terminalWiringMethod', label: '监测终端接线方式', width: 160 },
{ prop: 'fieldStation', label: '新能源场', width: 120 },
{ prop: 'tractionId', label: '关联牵引站编号', width: 190 },
{ prop: 'isUpToGrid', label: '是否是上送网公司', width: 160 }
// { prop: "status", label: "数据状态", width:100 },
],
whether: [
{
id: 0,
value: '选项1',
label: '否'
},
{
id: 1,
value: '选项2',
label: '是'
}
],
whether1: [
{
id: 0,
value: '选项1',
label: '否'
},
{
id: 1,
value: '选项2',
label: '是'
}
],
timeInterval: [
{
id: 0,
value: '选项1',
label: 1
},
{
id: 1,
value: '选项2',
label: 3
},
{
id: 3,
value: '选项2',
label: 5
},
{
id: 4,
value: '选项2',
label: 10
}
],
MonitoringObjectData: [
{
value: '选项1',
label: '用电用户信息'
},
{
value: '选项2',
label: '发电用户信息'
}
],
UserData: [],
device: '',
editCheckCode: '',
valueTitle: '',
editCheckCode1: '',
valueTitle1: '',
// organization: [],//组织机构名称
// operation : [],//运维单位名称
statationName: [], //变电站名称
BusbarName: [], //母线名称
MonitoringLine: [], //监测线路名称
MonitoringObject: [], //监测对象名称
TerminalNo: [], //关联的监测终端编号
voltageLevelList: [], //电压等级
industryType: [], //行业分类
monitorStateList: [], //监测点状态
monitorTypeList: [], //监测点标签
MonitoringPointType: [], //监测点类型
MonitoringPointTypes: [], //监测点类型
potentialTransFormerTypeList: [], //电压互感器类型
neutralGroundingModeList: [], //中性点接地方式
terminalWiringMethodList: [], //监测终端接线方式
PMSobtain: false,
information: false, //修改台区信息
addinformation: false, //新增台区信息
TractionStation: [] //关联牵引站
}
},
created() {
this.getclassificationData()
},
mounted() {
this.setHeight()
window.addEventListener('resize', this.setHeight)
this.Monitoring()
},
beforeDestroy() {
window.removeEventListener('resize', this.setHeight)
},
computed: {},
methods: {
setHeight() {
this.device = window.devicePixelRatio
this.height = window.sessionStorage.getItem('appheight') - 208
this.height1 = window.sessionStorage.getItem('appheight') - 285
},
// 切换选项
handleNodeClick(data) {
if (data.code != null) {
this.form.powerrId = ''
this.form.terminalId = ''
this.form.lineId = ''
let form = {
deptId: data.id
}
// 变电站名称
getstatationStatList(form).then(res => {
this.statationName = res.data
})
}
this.form.orgId = data.code
this.form.orgName = data.name
// this.rules['powerrId'] = []
},
handleNodeClick1(data) {
// console.log(data);
this.form.operationId = data.code
this.form.operationName = data.name
},
//变电站change事件
changeFn1(val) {
this.form.terminalId = ''
this.form.lineId = ''
let form = {
stationId: val
}
// 线路名称
getGeneratrixWireList(form).then(res => {
this.MonitoringLine = res.data
})
this.statationName.forEach(item => {
if (item.powerId == val) {
this.form.powerrName = item.powerName
}
})
//关联的监测终端编号
getTerminalSelectList(form).then(res => {
this.TerminalNo = res.data
// console.log(this.TerminalNo);
})
},
changeFn3(val) {
this.MonitoringLine.forEach(item => {
if (item.id == val) {
this.form.lineName = item.name
}
})
this.$forceUpdate()
},
ToggleObjects(val) {
// console.log(val, "++++++++++++");
if (val == '用电用户信息') {
let obj = {}
getPowerClientList(obj).then(res => {
this.MonitoringObject = res.data
})
} else if (val == '发电用户信息') {
let obj = {}
getPowerGenerationUserList(obj).then(res => {
this.MonitoringObject = res.data
})
}
},
//获取类型
getclassificationData() {
//电压等级
this.voltageLevelList = dicData('Dev_Voltage', [])
//监测点状态
this.monitorStateList = dicData('Line_State', [])
//监测点标签
this.monitorTypeList = dicData('Line_Type', [])
//电压互感器类型
this.potentialTransFormerTypeList = dicData('Voltage_Transformer', [])
//中性点接地方式
this.neutralGroundingModeList = dicData('Neutral_Point', [])
//监测点标签
this.monitorTagList = dicData('Monitoring_Labels', [])
//监测终端接线方式
this.terminalWiringMethodList = dicData('Dev_Connect', [])
//行业分类
this.industryType = dicData('industry_type', [])
// 监测点类型
queryTree({}).then(res => {
if (res && res.code == `A0000`) {
this.MonitoringPointType = this.getTreeData(res.data)
if (this.flag == 1) {
this.MonitoringPointTypes = []
this.MonitoringPointType.forEach(item => {
if (
item.code == '1401' ||
item.code == '1402' ||
item.code == '2400' ||
item.code == '1300'
) {
this.MonitoringPointTypes.push(item)
}
})
console.log(this.MonitoringPointTypes)
//特殊处理
this.MonitoringPointTypes.push({ name: '其他干扰用户', id: '987654321' })
}
}
})
getTractionStationList().then(res => {
this.TractionStation = res.data
})
},
getTreeData(data) {
for (var i = 0; i < data.length; i++) {
if (data[i].children.length < 1) {
// children若为空数组则将children设为undefined
data[i].children = undefined
} else {
this.getTreeData(data[i].children)
}
}
return data
},
//PMS获取数据
// PMSobtainFn() {
// this.PMSobtain = true;
// this.title = "线路表";
// },
// 查询分页置1
pagMonitoring() {
this.ruleForm.pageSize = 20
this.ruleForm.pageNum = 1
this.Monitoring()
},
//查询用户用电信息
Monitoring() {
this.isLoading = true
if (this.objTypes.length > 0) {
this.ruleForm.objType = this.objTypes[this.objTypes.length - 1]
} else {
this.ruleForm.objType = ''
}
getAllMonitorPageList(this.ruleForm).then(res => {
this.isLoading = false
this.UserData = res.data.records
this.total = res.data.total
})
},
// 数据过滤
formFilter(row, column) {
if (row.column.property == 'voltageLevel') {
let title = ''
this.voltageLevelList.forEach(item => {
if (item.value == row.row.voltageLevel) {
title = item.label
}
})
return title
} else if (row.column.property == 'monitorState') {
let title = ''
this.monitorStateList.forEach(item => {
if (item.value == row.row.monitorState) {
title = item.label
}
})
return title
} else if (row.column.property == 'monitorType') {
let title = ''
this.monitorTypeList.forEach(item => {
if (item.value == row.row.monitorType) {
title = item.label
}
})
return title
} else if (row.column.property == 'potentialTransFormerType') {
let title = ''
this.potentialTransFormerTypeList.forEach(item => {
if (item.value == row.row.potentialTransFormerType) {
title = item.label
}
})
return title
} else if (row.column.property == 'tradeCode') {
let title = '/'
this.industryType.forEach(item => {
if (item.value == row.row.tradeCode) {
title = item.label
}
})
return title
} else if (row.column.property == 'neutralGroundingMode') {
let title = ''
this.neutralGroundingModeList.forEach(item => {
if (item.value == row.row.neutralGroundingMode) {
title = item.label
}
})
return title
} else if (row.column.property == 'terminalWiringMethod') {
let title = ''
this.terminalWiringMethodList.forEach(item => {
if (item.value == row.row.terminalWiringMethod) {
title = item.label
}
})
return title
} else if (row.column.property == 'monitorTag') {
let title = ''
this.monitorTagList.forEach(item => {
if (item.value == row.row.monitorTag) {
title = item.label
}
})
return title
} else if (row.column.property == 'objType') {
let title = ''
this.MonitoringPointType.forEach(item => {
if (item.id == row.row.objType) {
return (title = item.name)
} else {
if (item.children != undefined) {
item.children.forEach(val => {
if (val.id == row.row.objType) {
return (title = val.name)
}
})
}
}
})
return title //this.getTreeName(this.MonitoringPointType, row.row.objType)
} else if (row.column.property == 'isSpecialSupplyElectricity') {
if (row.row.monitorTag == 1) {
return '是'
} else {
return '否'
}
} else if (row.column.property == 'isUpToGrid') {
if (row.row.isUpToGrid == 1) {
return '是'
} else {
return '否'
}
} else if (row.column.property == 'isUploadHead') {
return row.row.isUploadHead == 0
? '未上送 '
: row.row.isUploadHead == 1
? '已上送 '
: row.row.isUploadHead == 2
? '取消上送 '
: row.row.isUploadHead == 3
? '待重新上送 '
: ''
} else if (row.column.property == 'monitorUploadStatus') {
return row.row.monitorUploadStatus == 0
? '未上送 '
: row.row.monitorUploadStatus == 1
? '已上送 '
: row.row.monitorUploadStatus == 2
? '取消上送 '
: row.row.monitorUploadStatus == 3
? '待重新上送 '
: ''
} else if (row.column.property == 'fieldStation') {
return row.row.fieldStation == '01'
? '在运站'
: row.row.fieldStation == '02'
? ' 新(改、扩)建站 '
: '/'
} else {
return row.row[row.column.property]
}
},
getTreeName(data, id) {
for (var i = 0; i < data.length; i++) {
if (data[i].id == id) {
// children若为空数组则将children设为undefined
return data[i].name
} else {
if (data[i].children != undefined) {
this.getTreeName(data[i].children, id)
}
}
}
},
changeCascader(e) {
this.objTypeCode = this.$refs['cascader'].getCheckedNodes()[0].data.code //标签上定义的 ref值
},
//数据上传
upload(params) {
// 获取文件 通过FormData将文件转化为二进制流的形式传给后端
let form = new FormData()
form.append('file', params.file)
importMonitor(form).then(res => {
if (res.type == 'application/json') {
this.$message({
message: '上传成功,无错误数据!',
type: 'success'
})
} else {
this.$message({
message: '上传成功,有错误数据 自动下载 请查看',
type: 'warning'
})
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.download = '模板错误信息' // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
document.bodyNaNpxoveChild(link)
}
this.fileList = []
})
},
// 重置
Reset() {
// 查询数据
this.ruleForm.searchValue = ''
},
//监测线路名称
getGeneratrixWireList() {
getGeneratrixWireList({}).then(res => {
this.MonitoringLine = res.data
})
},
//新增
addFn() {
this.form = {
id: '',
isSpecialSupplyElectricity: '',
isUpToGrid: '',
lineId: '',
lineName: '',
minShortCircuitCapacity: '',
// monitorObjectId: [],
MonitoringData: '',
monitorObjectType: '',
monitorState: '',
monitorTag: '',
monitorType: '',
name: '',
neutralGroundingMode: '',
operationId: '',
operationName: '',
orgId: '',
orgName: '',
potentialTransFormerType: '',
powerSupplyEqCapacity: '',
powerrId: '',
powerrName: '',
statisticalInterval: '',
terminalId: '',
terminalWiringMethod: '',
userAgreementCapacity: undefined,
voltageDeviationLowerLimit: '',
voltageDeviationUpperLimit: '',
voltageLevel: '',
ct1: '',
ct2: '',
pt1: '',
pt2: '',
stationName: '',
isSpecialMonitor: 0,
tractionId: ''
}
this.form.isSpecialMonitor = 0
this.disabled = false
this.modify = false
this.add = true
this.title = '新增主网监测点台帐'
this.addinformation = true
// this.getData();
},
//新增台区确定
addinformationFn() {
// this.MonitoringObject.forEach(item => {
// this.form.monitorObjectId.forEach(i => {
// if (i == item.id) {
// this.monitorObjectName.push(item.name)
// }
// })
// })
// this.form.monitorObjectName = this.monitorObjectName.toString()
// this.form.monitorObjectId = this.form.monitorObjectId.toString()
// // console.log(
// this.form.monitorObjectName,
// this.form.monitorObjectId,
// "this.form"
// );
this.$refs.rulesform.validate(value => {
// console.log(value);
if (value == true) {
this.$confirm('是否确认新增?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.form.objType = this.$refs['cascader'].getCheckedNodes()[0].data.id //标签上定义的 ref值
addMonitor(this.form).then(res => {
if (res.code == 'A0000') {
this.$message({
message: res.message,
type: 'success'
})
}
this.addinformation = false
this.Monitoring()
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消新增'
})
})
}
})
},
handleClose() {
this.addinformation = false
if (this.title == '新增主网监测点台帐') {
this.$refs.Operation.form.valueTitle = ''
this.$refs.Organization.form.valueTitle = ''
}
},
//修改数据
modifyFn() {
// this.getData();
this.disabled = true
this.modify = true
this.add = false
this.title = '修改主网监测点台帐'
if (this.$refs.Monitoringpoint.getCheckboxRecords().length != 1) {
this.$message({
showClose: true,
message: '请选择台账!!!',
type: 'warning'
})
return
}
this.addinformation = true
// console.log(this.$refs.Monitoringpoint.getCheckboxRecords()[0], "===============");
// debugger
this.form = this.$refs.Monitoringpoint.getCheckboxRecords()[0]
this.valueTitle = this.$refs.Monitoringpoint.getCheckboxRecords()[0].orgName
this.editCheckCode = this.$refs.Monitoringpoint.getCheckboxRecords()[0].orgId
this.valueTitle1 = this.$refs.Monitoringpoint.getCheckboxRecords()[0].operationName
this.editCheckCode1 = this.$refs.Monitoringpoint.getCheckboxRecords()[0].operationId
// console.log(this.form);
//处理下拉框回显数据
let form = {
deptCode: this.$refs.Monitoringpoint.getCheckboxRecords()[0].orgId
}
// 变电站名称
getstatationStatList(form).then(res => {
this.statationName = res.data
})
//关联的监测终端编号
let formDev = {
stationId: this.$refs.Monitoringpoint.getCheckboxRecords()[0].powerrId
}
getTerminalSelectList(formDev).then(res => {
// console.log(res);
this.TerminalNo = res.data
})
// 线路名称
getGeneratrixWireList(formDev).then(res => {
this.MonitoringLine = res.data
})
let list = []
this.MonitoringPointType.forEach(item => {
if (item.id == this.$refs.Monitoringpoint.getCheckboxRecords()[0].objType) {
list = [item.id]
this.objTypeCode = item.code
} else {
if (item.children != undefined) {
item.children.forEach(val => {
if (val.id == this.$refs.Monitoringpoint.getCheckboxRecords()[0].objType) {
list = [item.id, val.id]
this.objTypeCode = val.code
}
})
}
}
})
this.form.objType = list
},
//修改台区信息确定
modifyinformationFn() {
this.$refs.rulesform.validate(value => {
// console.log(value);
if (value == true) {
this.$confirm('是否确认修改?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.form.objType = this.$refs['cascader'].getCheckedNodes()[0].data.id //标签上定义的 ref值
updateMonitor(this.form).then(res => {
if (res.code == 'A0000') {
this.$message({
message: res.message,
type: 'success'
})
}
this.addinformation = false
this.Monitoring()
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消修改'
})
})
}
})
},
// 删除
deleteFn() {
if (this.$refs.Monitoringpoint.getCheckboxRecords().length == 0) {
this.$message({
showClose: true,
message: '请选择台账!!!',
type: 'warning'
})
return
}
this.$confirm('是否确认删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
let id = []
this.$refs.Monitoringpoint.getCheckboxRecords().forEach(item => {
id.push(item.id)
})
delMonitor(id).then(res => {
if ((res.code == 'A0000')) {
this.$message({
type: 'success',
message: res.message
})
}
this.Monitoring()
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
//关闭PMS数据弹框
// Close() {
// this.PMSobtain = false;
// },
//checkbox选择事件
handleSelectionChange(row) {
// this.$refs.Monitoringpoint.getCheckboxRecords() = row.records
// console.log(this.$refs.Monitoringpoint.getCheckboxRecords());
},
//每页条数改变时触发 选择一页显示多少行
handleSizeChange(val) {
this.ruleForm.pageSize = val
this.Monitoring()
},
//当前页改变时触发 跳转其他页
handleCurrentChange(val) {
this.ruleForm.pageNum = val
this.Monitoring()
},
cellStyle(row) { },
//导出
exportEvent() {
if (this.flag == 0) {
let form = JSON.parse(JSON.stringify(this.ruleForm))
form.pageNum = 1
form.pageSize = this.total
getAllMonitorPageList(form).then(res => {
this.$refs.Monitoringpoint.exportData({
filename: '监测点台账'+new Date().getTime(), // 文件名字
sheetName: 'Sheet1',
type: 'xlsx', //导出文件类型 xlsx 和 csv
useStyle: true,
data: res.data.records, // 数据源 // 过滤那个字段导出
columnFilterMethod: function (column, $columnIndex) {
return !(column.$columnIndex === 0)
}
})
})
} else {
exportSend().then(res => {
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url // link.download = "电压暂降事件分析报告"; // 设置下载的文件名
link.download = '典型台账.xls' // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
document.body.removeChild(link)
})
}
},
Submission() {
let flag = true
let isUpToGrid = true
let flagState = true
if (this.$refs.Monitoringpoint.getCheckboxRecords().length == 0) {
return this.$message({
message: '请选择监测点!',
type: 'warning'
})
}
if (this.objTypes.length == 0) {
return this.$message({
message: '请选择监测对象,进行上送!',
type: 'warning'
})
}
let state = this.monitorStateList.filter(item => item.code == 'Run')
let ids = []
this.$refs.Monitoringpoint.getCheckboxRecords().forEach(item => {
ids.push(item.id)
if (this.$refs['SubObjType'].getCheckedNodes()[0].children.length > 0) {
this.$refs['SubObjType'].getCheckedNodes()[0].children.forEach(val => {
if (item.objType == val.data.id) {
return (flag = true)
}
})
} else if (item.objType != this.objTypes[this.objTypes.length - 1]) {
flag = false
}
if (item.isUpToGrid != 1) {
isUpToGrid = false
}
// if (item.monitorState != state[0].id) {
// flagState = false
// }
})
if (this.$refs['SubObjType'].getCheckedNodes()[0].data.id == '987654321') {
flag = true
}
if (flag && isUpToGrid && flagState) {
this.isLoading = true
sendType({
ids: ids,
objType: this.objTypes[0] //this.$refs['SubObjType'].getCheckedNodes()[0].value
})
.then(res => {
if (res && res.code == 'A0000') {
this.$message({
message: '上送成功!',
type: 'success'
})
this.Monitoring()
}
this.isLoading = false
})
.catch(err => {
this.isLoading = false
})
} else if (flag == false) {
return this.$message({
message: '所选监测点与监测对象不符合,请重新选择!',
type: 'warning'
})
} else if (isUpToGrid == false) {
return this.$message({
message: '所选监测点存在非上送网公司监测点!',
type: 'warning'
})
} else if (flagState == false) {
return this.$message({
type: 'warning',
message: '请选择运行状态的监测点进行上送!'
})
}
// this.objTypeVisible = true
},
// 台账上送
LedgerSubmission() {
let flag = true
let isUpToGrid = true
let flagState = true
let ids = []
let state = this.monitorStateList.filter(item => item.code == 'Run')
this.$refs.Monitoringpoint.getCheckboxRecords().forEach(item => {
ids.push(item.id)
if (item.isUpToGrid != 1) {
isUpToGrid = false
}
// if (item.monitorState != state[0].id) {
// flagState = false
// }
})
if (isUpToGrid && flagState) {
if (this.$refs.Monitoringpoint.getCheckboxRecords().length == 0) {
this.$confirm('是否上送全部监测点?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.isLoading = true
pushMonitor([])
.then(res => {
if (res && res.code == 'A0000') {
this.isLoading = false
this.$message({
message: '上送成功!',
type: 'success'
})
this.Monitoring()
}
this.isLoading = false
})
.catch(err => {
this.isLoading = false
})
})
} else {
this.isLoading = true
pushMonitor(ids)
.then(res => {
if (res && res.code == 'A0000') {
this.isLoading = false
this.$message({
message: '上送成功!',
type: 'success'
})
this.Monitoring()
}
this.isLoading = false
})
.catch(err => {
this.isLoading = false
})
}
} else if (isUpToGrid == false) {
return this.$message({
message: '所选监测点存在非上送网公司监测点!',
type: 'warning'
})
} else if (flagState == false) {
return this.$message({
type: 'warning',
message: '请选择运行状态的监测点进行上送!'
})
}
},
SubmitToState() {
if (this.SubObjType.length == 0) {
return this.$message({
message: '请选择监测对象!',
type: 'warning'
})
}
},
//导入台账
importLedger() { },
changeTerminal() {
this.$forceUpdate()
},
handleRemove(file, fileList) {
// console.log(file, fileList);
},
handlePreview(file) {
// console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
} 个文件`
)
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`)
}
},
watch: {
objTypeCode: {
handler(newVal, oldVal) {
if (this.objTypeCode != '1402' || this.objTypeCode != '1401') {
this.form.fieldStation = ''
}
if (this.objTypeCode != '1300') {
this.form.tractionId = ''
}
}
}
}
}
</script>
<style lang="less" scoped>
@import url('../../../styles/comStyle.less');
::v-deep .vxe-table .cell {
text-align: center;
}
::v-deep .el-tabs--border-card>.el-tabs__content {
padding: 0;
}
::v-deep .form {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.el-form-item {
display: flex;
width: 48%;
.el-form-item__content {
width: calc(100% - 170px) !important;
// flex: 1 !important;
.el-select {
width: 100%;
}
.el-input__inner {
width: 100% !important;
}
.el-date-editor {
width: 100%;
}
}
}
}
.pms {
margin-left: 10px;
}
.obtain {
margin-left: 1220px;
}
::v-deep .select {
width: 100px;
}
</style>