修改 冀北 现场运维人提出问题

This commit is contained in:
GGJ
2024-07-31 15:54:35 +08:00
parent 1aba898baa
commit 9dc9799365
15 changed files with 181 additions and 67 deletions

View File

@@ -8,6 +8,7 @@
v-bind="Object.assign({}, defaultAttribute, $attrs)"
@checkbox-all="selectChangeEvent"
@checkbox-change="selectChangeEvent"
:showOverflow='showOverflow'
>
<!-- Column 组件内部是 el-table-column -->
<template v-if="isGroup">
@@ -75,10 +76,12 @@ const tableStore = inject('tableStore') as TableStoreClass
interface Props extends /* @vue-ignore */ Partial<InstanceType<typeof ElTable>> {
isGroup?: boolean
showOverflow?: boolean
}
const props = withDefaults(defineProps<Props>(), {
isGroup: false
isGroup: false,
showOverflow: true
})
onMounted(() => {
tableStore.table.ref = tableRef.value as VxeTableInstance
@@ -93,7 +96,7 @@ const onTableCurrentChange = (val: number) => {
}
const pageSizes = computed(() => {
let defaultSizes = [10, 20, 50, 100,200]
let defaultSizes = [10, 20, 50, 100, 200]
if (tableStore.table.params!.pageSize) {
if (!defaultSizes.includes(tableStore.table.params!.pageSize)) {
defaultSizes.push(tableStore.table.params!.pageSize)

View File

@@ -51,7 +51,9 @@
{{ detailData.evaluationConclusion }}
</el-descriptions-item>
<el-descriptions-item
:label=" detailData.userType == '4'?'非线性设备类型: ':'非线性负荷类型:'"
:label="
detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'
"
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -267,7 +269,7 @@
{{ proviteData?.powerQualityReport.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="入网评估报告" v-if="applyTitle=='干扰源用户治理工程验收'">
<el-descriptions-item label="入网评估报告" v-if="applyTitle == '干扰源用户治理工程验收'">
<div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" />

View File

@@ -60,7 +60,7 @@
{{ detailData.evaluationConclusion }}
</el-descriptions-item>
<el-descriptions-item
:label="detailData.userType == '4' ? '非线性设备类型: ' : '非线性负荷类型:'"
:label="detailData.userType == '4'||detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'"
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -376,7 +376,7 @@
{{ detailData1.evaluationConclusion }}
</el-descriptions-item>
<el-descriptions-item
:label="detailData1.userType == '4' ? '非线性设备类型: ' : '非线性负荷类型:'"
:label="detailData1.userType == '4'||detailData1.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'"
v-if="
detailData1.userType == '2' ||
detailData1.userType == '3' ||

View File

@@ -277,7 +277,7 @@
<el-form-item
for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
:label="form.userType == '4' ? '非线性设备类型: ' : '非线性负荷类型:'"
:label="form.userType == '4' || form.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'"
prop="nonlinearLoadType"
>
<el-tree-select
@@ -294,7 +294,7 @@
v-model="form.nonlinearLoadType"
:data="nonlinearDeviceTypeList"
:render-after-expand="false"
placeholder="请选择非线性负荷类型"
placeholder="请选择"
/>
</el-form-item>
<el-form-item for="-" v-if="form.userType == '6'" label="是否开展抗扰度测试:" prop="antiInterferenceTest">

View File

@@ -56,7 +56,9 @@
{{ detailData.evaluationConclusion }}
</el-descriptions-item>
<el-descriptions-item
:label="detailData.userType == '4'?'非线性设备类型: ':'非线性负荷类型:'"
:label="
detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'
"
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||

View File

@@ -0,0 +1,52 @@
<template>
<div>
<TableHeader datePicker area ref="TableHeaderRef">
<template #select>
<el-form-item label="信息查询">
<el-input
style="width: 200px"
placeholder="电站名称,终端编号,型号"
v-model="tableStore.table.params.searchValue"
clearable
></el-input>
</el-form-item>
</template>
<template #operation></template>
</TableHeader>
<Table ref="tableRef" :showOverflow="false" />
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { mainHeight } from '@/utils/layout'
import { useDictData } from '@/stores/dictData'
const TableHeaderRef = ref()
const tableStore = new TableStore({
url: '/harmonic-boot/PollutionSubstation/substationInfo',
publicHeight: 65,
method: 'POST',
isWebPaging: true,
column: [
{ field: 'substationName', title: '变电站名称', minWidth: 100 },
{ field: 'dwLineList', title: '电网侧监测点名称', minWidth: 150 },
{ field: 'yhLineList', title: '非电网侧监测点名称', minWidth: 150 },
{ field: 'alarmFreq', title: '告警频次', minWidth: 80 },
{ field: 'vpollutionData', title: '谐波电压污染值', minWidth: 80 },
{ field: 'ipollutionData', title: '谐波电流污染值', minWidth: 80 }
],
beforeSearchFun: () => {}
})
tableStore.table.params.searchValue = ''
provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
</script>

View File

@@ -7,11 +7,14 @@
<el-tab-pane label='敏感及重要用户台账' name='2' >
<sensitiveUserTable v-if="activeName == '2'" />
</el-tab-pane>
<el-tab-pane label='终端台账' name='3'>
<deviceLedgerTable v-if="activeName == '3'" />
<el-tab-pane label='变电站台账' name='3' >
<substationLedger v-if="activeName == '3'" />
</el-tab-pane>
<el-tab-pane label='监测点台账' name='4'>
<monitorLedgerTable v-if="activeName == '4'" />
<el-tab-pane label='终端台账' name='4'>
<deviceLedgerTable v-if="activeName == '4'" />
</el-tab-pane>
<el-tab-pane label='监测点台账' name='5'>
<monitorLedgerTable v-if="activeName == '5'" />
</el-tab-pane>
</el-tabs>
</div>
@@ -21,6 +24,7 @@
import { onMounted, reactive, ref, provide } from 'vue'
import interferenceUserTable from './components/interferenceUserTable.vue'
import sensitiveUserTable from './components/sensitiveUserTable.vue'
import substationLedger from './components/substationLedger.vue'
import deviceLedgerTable from './components/deviceLedgerTable.vue'
import monitorLedgerTable from './components/monitorLedgerTable.vue'
import { mainHeight } from '@/utils/layout'

View File

@@ -9,10 +9,10 @@
<el-descriptions-item label="监测点编号">
{{ detailData.lineId }}
</el-descriptions-item>
<el-descriptions-item label="监测终端编码">
<el-descriptions-item label="终端编码">
{{ detailData.monitoringTerminalCode }}
</el-descriptions-item>
<el-descriptions-item label="监测终端名称">
<el-descriptions-item label="终端名称">
{{ detailData.monitoringTerminalName }}
</el-descriptions-item>
<el-descriptions-item label="电网侧变电站">

View File

@@ -75,8 +75,8 @@ const tableStore = new TableStore({
}
},
{ field: 'lineId', title: '监测点编号', minWidth: 170 },
// { field: 'monitoringTerminalCode', title: '监测终端编码', minWidth: 170 },
{ field: 'monitoringTerminalName', title: '监测终端名称', minWidth: 170 },
// { field: 'monitoringTerminalCode', title: '终端编码', minWidth: 170 },
{ field: 'monitoringTerminalName', title: '终端名称', minWidth: 170 },
{
field: 'createBy',
title: '填报人',

View File

@@ -123,13 +123,13 @@
<el-option
v-for="(item, index) in monitoringTerminalList"
:key="index"
:label="item.monitoringTerminalName"
:label="item.monitoringTerminalCode"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="接入母线:" prop="connectedBus">
<el-input v-model="form.connectedBus" autocomplete="off" placeholder="请输入接入母线" />
<el-input v-model="form.connectedBus" autocomplete="off" placeholder="请输入接入母线110kV4母线" />
</el-form-item>
<el-form-item for="-" label="监测点运行状态:" prop="operationStatus">
<el-select v-model="form.operationStatus" placeholder="请选择运行状态">
@@ -299,8 +299,8 @@
/>
</el-select>
</el-form-item>
<el-form-item for="-" label="监测点编码:">
<el-input v-model="form.lineId" autocomplete="off" placeholder="请输入监测点编码" />
<el-form-item for="-" label="上送国网编码:">
<el-input v-model="form.lineId" autocomplete="off" placeholder="请输入上送国网编码" />
</el-form-item>
<el-form-item for="-" label="监测点性质:" prop="pointNature">
<el-select v-model="form.pointNature" placeholder="请选择监测点性质">
@@ -520,7 +520,7 @@ const userNameList = ref([])
//查询干扰源列表获取可选数据
const projectList = ref([])
const monitoringTerminalList = ref([])
const monitoringTerminalList:any = ref([])
//获取关联终端
const findAllMonitoringTerminalList = () => {
getDeviceList().then(res => {
@@ -889,7 +889,7 @@ const rules = ref({
lineId: [
{
required: true,
message: '请输入监测点编码',
message: '请输入上送国网编码',
trigger: 'blur'
}
],

View File

@@ -67,7 +67,7 @@
<el-descriptions-item label="PT变比">
{{ detailData.pt1 }}{{ detailData.pt2 ? '/' + detailData.pt2 : '' }}
</el-descriptions-item>
<el-descriptions-item label="监测点编码">
<el-descriptions-item label="上送国网编码">
{{ detailData.lineId }}
</el-descriptions-item>
<el-descriptions-item label="测量间隔">

View File

@@ -175,6 +175,22 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="经度:" prop="longitude">
<el-input
v-model="form.longitude"
:disabled="form.customSubstationFlag == 0"
type="text"
placeholder="请输入经度"
/>
</el-form-item>
<el-form-item for="-" label="纬度:" prop="latitude">
<el-input
v-model="form.latitude"
:disabled="form.customSubstationFlag == 0"
type="text"
placeholder="请输入纬度"
/>
</el-form-item>
<el-form-item for="-" label="终端型号:" prop="terminalType">
<el-select
v-model="form.terminalType"
@@ -192,7 +208,7 @@
</el-select>
</el-form-item>
<el-form-item for="-" label="监测终端名称:" prop="monitoringTerminalName">
<el-form-item for="-" label="终端名称:" prop="monitoringTerminalName">
<el-input v-model="form.monitoringTerminalName" autocomplete="off" placeholder="请输入终端名称" />
</el-form-item>
<el-form-item for="-" label="通讯类型:">
@@ -205,6 +221,14 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端编码:" prop="monitoringTerminalCode">
<el-input
v-model="form.monitoringTerminalCode"
autocomplete="off"
placeholder="请输入终端编码"
@change="encode"
/>
</el-form-item>
<el-form-item v-if="false" for="-" label="通讯状态:" prop="communicationStatus">
<el-select
v-model="form.communicationStatus"
@@ -362,9 +386,7 @@
:disabled-date="disableEndDate"
/>
</el-form-item>
<el-form-item for="-" label="监测终端编码:" prop="monitoringTerminalCode">
<el-input v-model="form.monitoringTerminalCode" autocomplete="off" placeholder="请输入监测终端编码" />
</el-form-item>
<el-form-item for="-" label="电压互感器类型:" prop="voltageTransformerType">
<el-select
v-model="form.voltageTransformerType"
@@ -399,13 +421,6 @@
<el-input v-model="form.manufacturerDeviceNumber" autocomplete="off" placeholder="请输入厂家终端编号" />
</el-form-item>
<!-- <el-form-item for="-" label="经度:" prop="longitude">
<el-input v-model="form.longitude" autocomplete="off" placeholder="请输入经度" />
</el-form-item>
<el-form-item for="-" label="纬度:" prop="latitude">
<el-input v-model="form.latitude" autocomplete="off" placeholder="请输入纬度" />
</el-form-item> -->
<el-form-item for="-" label="SIM卡号" prop="simCardNumber">
<el-input v-model="form.simCardNumber" autocomplete="off" placeholder="请输入SIM卡号" />
</el-form-item>
@@ -686,7 +701,7 @@ const terminalModelList = [
]
const substationList: any = ref([])
//字典获取通讯类型
const frontTypeList = dictData.getBasicData('Front_Type')
const frontTypeList = dictData.getBasicData('Front_Type', ['CLD', '61850'])
//定义通讯状态下拉框数据
const communicationStatusList = [
{
@@ -754,6 +769,7 @@ const frontEndMachineList: any = ref([])
const getFrontEndMachineList = () => {
nodeAllList().then(res => {
frontEndMachineList.value = res.data
form.value.frontEndMachine = res.data[0].id
})
}
const changeSubstationFlag = () => {
@@ -790,11 +806,6 @@ const getPowerCompanyList = async (flag: any) => {
getAllDeptList().then(res => {
powerCompanyList.value = res.data[0].children[0].children
if (flag) {
console.log(
`123`,
powerCompanyList.value.find(item => item.name == form.value.supervisionTempDeviceReport.powerCompany)
)
getSubstationVoltageLevel({
orgIds: [
powerCompanyList.value.find(
@@ -807,7 +818,9 @@ const getPowerCompanyList = async (flag: any) => {
} else {
form.value.powerCompany = powerCompanyList.value[0]?.id
findSubstationVoltageLevel()
changeSubstation()
setTimeout(() => {
changeSubstation()
}, 100)
}
})
}
@@ -824,6 +837,9 @@ const findSubstationVoltageLevel = async () => {
//变电站选择的时候切换变电站电压等级
const changeSubstation = async () => {
let obj = substationList.value.find((item: any) => item.id == form.value.substation)
form.value.latitude = obj?.lat
form.value.longitude = obj?.lng
form.value.substationVoltageLevel = obj?.voltageLevel
}
const resetForm: any = async () => {
@@ -848,20 +864,20 @@ const resetForm: any = async () => {
alarmFunction: '0', //告警功能
commissioningTime: '', //投运时间
communicationStatus: communicationStatusList[0].id, // 通讯状态
frontType: frontTypeList[0].id, ///通讯类型
frontType: frontTypeList[1].id, ///通讯类型
contractNumber: '', //合同号
dataType: dataTypeList[0].id, //数据类型
dataType: dataTypeList[2].id, //数据类型
dataUpdateTime: new Date(), // 数据更新时间
electroplatingFunction: electroplatingFunctionList[0].id, //电镀功能
frontEndMachine: frontEndMachineList.value[0]?.id, //所属前置机
identificationCode: '', // 识别码
// latitude: '0', //纬度
// longitude: '0', //经度
latitude: '', //纬度
longitude: '', //经度
manufacturer: manufacturerList[0].id, //厂家
manufacturerDeviceNumber: '', // 厂家终端编号
monitoringDeviceInstallationPosition: monitoringDeviceInstallationPositionList[0].id, //监测终端安装位置
monitoringTerminalCode: '', //监测终端编码
monitoringTerminalName: '', //监测终端名称
monitoringTerminalCode: '', //终端编码
monitoringTerminalName: '', //终端名称
neutralPointWiringMethod: neutralPointWiringMethodList[0].id, // 中性点接线方式
currentTerminalDetectionTime: new Date(), //本次终端检测时间
nextTerminalInspectionTime: new Date().getTime() + 365 * 5 * 24 * 3600 * 1000, // 下次终端定检时间
@@ -871,7 +887,7 @@ const resetForm: any = async () => {
substationVoltageLevel: voltageLevelList[0].id, // 变电站电压等级
summonFlag: summonFlagList[0].id, // 召唤标志
terminalIp: '', //终端IP
terminalModel: terminalModelList[0].id, //终端模型
terminalModel: terminalModelList[1].id, //终端模型
terminalPort: '102', //端口
terminalSecretKey: '', //终端秘钥
terminalType: terminalTypeList[0].id, // 终端型号
@@ -910,21 +926,21 @@ const devReportForm: any = ref({
alarmFunction: '0', //告警功能
commissioningTime: '', //投运时间
communicationStatus: communicationStatusList[0].id, // 通讯状态
frontType: frontTypeList[0].id, ///通讯类型
frontType: frontTypeList[1].id, ///通讯类型
contractNumber: '', //合同号
currentTerminalDetectionTime: '', //本次终端检测时间
dataType: dataTypeList[0].id, //数据类型
dataType: dataTypeList[2].id, //数据类型
dataUpdateTime: new Date(), // 数据更新时间
electroplatingFunction: electroplatingFunctionList[0].id, //电镀功能
frontEndMachine: frontEndMachineList.value[0]?.id, //所属前置机
identificationCode: '', // 识别码
// latitude: '0', //纬度
// longitude: '0', //经度
latitude: '', //纬度
longitude: '', //经度
manufacturer: manufacturerList[0].id, //厂家
manufacturerDeviceNumber: '', // 厂家终端编号
monitoringDeviceInstallationPosition: monitoringDeviceInstallationPositionList[0].id, //监测终端安装位置
monitoringTerminalCode: '', //监测终端编码
monitoringTerminalName: '', //监测终端名称
monitoringTerminalCode: '', //终端编码
monitoringTerminalName: '', //终端名称
neutralPointWiringMethod: neutralPointWiringMethodList[0].id, // 中性点接线方式
nextTerminalInspectionTime: '', // 下次终端定检时间
powerCompany: powerCompanyList.value[0]?.id, //所属供电公司
@@ -933,7 +949,7 @@ const devReportForm: any = ref({
substationVoltageLevel: voltageLevelList[0].id, // 变电站电压等级
summonFlag: summonFlagList[0].id, // 召唤标志
terminalIp: '', //终端IP
terminalModel: terminalModelList[0].id, //终端模型
terminalModel: terminalModelList[1].id, //终端模型
terminalPort: '', //端口
terminalSecretKey: '', //终端秘钥
terminalType: terminalTypeList[0].id, // 终端型号
@@ -942,6 +958,11 @@ const devReportForm: any = ref({
voltageTransformerType: voltageTransformerTypeList[0].id //电压互感器类型
}
})
// 经度正则表达式
const longitudeReg = /^[-+]?((180(\.0{1,10})?)|(1[0-7][0-9](\.\d{1,10})?)|([1-9]?\d(\.\d{1,10})?)|(0(\.\d{1,10})?))$/
// 纬度正则表达式
const latitudeReg = /^[-+]?((90(\.0{1,10})?)|([1-8]?\d(\.\d{1,10})?)|(0(\.\d{1,10})?))$/
//定义校验规则
const rules = ref({
//基础信息
@@ -1033,7 +1054,7 @@ const rules = ref({
monitoringTerminalCode: [
{
required: true,
message: '请输入监测终端编码',
message: '请输入终端编码',
trigger: 'blur'
}
],
@@ -1140,6 +1161,16 @@ const rules = ref({
required: true,
message: '请输入经度',
trigger: 'blur'
},
{
validator: (rule, value, callback) => {
if (!longitudeReg.test(value)) {
callback(new Error('请输入有效的经度'))
} else {
callback()
}
},
trigger: 'change'
}
],
latitude: [
@@ -1147,6 +1178,16 @@ const rules = ref({
required: true,
message: '请输入纬度',
trigger: 'blur'
},
{
validator: (rule, value, callback) => {
if (!latitudeReg.test(value)) {
callback(new Error('请输入有效的纬度'))
} else {
callback()
}
},
trigger: 'change'
}
],
terminalModel: [
@@ -1552,6 +1593,10 @@ const confirmForm = async (flag: boolean) => {
})
}
}
// 编码改动
const encode = (e: string) => {
form.value.monitoringTerminalName = e.replace(/:/g, '')
}
defineExpose({ open })
</script>
<style lang="scss" scoped>

View File

@@ -36,6 +36,12 @@
})?.name
}}
</el-descriptions-item>
<el-descriptions-item label="经度">
{{ detailData.supervisionTempDeviceReport?.longitude }}
</el-descriptions-item>
<el-descriptions-item label="纬度">
{{ detailData.supervisionTempDeviceReport?.latitude }}
</el-descriptions-item>
<el-descriptions-item label="检测终端编码">
{{ detailData.supervisionTempDeviceReport?.monitoringTerminalCode }}
</el-descriptions-item>

View File

@@ -239,8 +239,8 @@ const exportEvent = () => {
formd.value.lineId = dotList.value.id
formd.value.lineName = dotList.value.name
formd.value.searchBeginTime = tableStore.table.params.searchBeginTime
formd.value.searchEndTime = tableStore.table.params.searchEndTime
formd.value.searchBeginTime = TableHeaderRef.value.datePickerRef.timeValue[0]
formd.value.searchEndTime = TableHeaderRef.value.datePickerRef.timeValue[1]
formd.value.flag = TableHeaderRef.value.datePickerRef.interval
ElMessage('生成报告中,请稍等!')
getLineExport(formd.value).then((res: any) => {

View File

@@ -1,6 +1,6 @@
<template>
<div class="default-main">
<TableHeader date-picker area :show-search="false">
<TableHeader ref="TableHeaderRef" date-picker area :show-search="false">
<template v-slot:select>
<el-form-item label="报告类型">
<el-select v-model="tableStore.table.params.waveType" placeholder="请选择" clearable>
@@ -187,6 +187,7 @@ provide('tableStore', tableStore)
onMounted(() => {
// tableStore.index()
})
const TableHeaderRef = ref()
getList({
pageNum: 1,
pageSize: 100,
@@ -195,7 +196,7 @@ getList({
templatePolicy.value = res.data.records
})
// 模板策略变化
const changeFn = (val:any) => {
const changeFn = (val: any) => {
formInline.value = {
monitorDistributeChart: false,
eventCountTable: false,
@@ -218,7 +219,7 @@ const changeFn = (val:any) => {
}
selectReleation(data).then(res => {
res.data.forEach((item:any) => {
res.data.forEach((item: any) => {
for (let k in formInline.value) {
if (item.name == k) {
formInline.value[k] = true
@@ -237,20 +238,19 @@ const exportEvent = () => {
])[0]
formInline.value.monitorFlag = 2
formInline.value.powerFlag = 2
formInline.value.searchBeginTime = tableStore.table.params.searchBeginTime
formInline.value.searchEndTime = tableStore.table.params.searchEndTime
formInline.value.searchBeginTime = TableHeaderRef.value.datePickerRef.timeValue[0]
formInline.value.searchEndTime = TableHeaderRef.value.datePickerRef.timeValue[1]
formInline.value.deptIndex = tableStore.table.params.deptIndex
formInline.value.monitorFlag = 2
formInline.value.powerFlag = 2
formInline.value.waveType = tableStore.table.params.waveType
formInline.value.interval = tableStore.table.params.timeFlag
ElMessage('生成报告中,请稍等!')
getAreaReport(formInline.value).then((res:any) => {
getAreaReport(formInline.value).then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url