修改冀北问题

This commit is contained in:
GGJ
2025-12-16 13:38:12 +08:00
parent 7b9f5302d0
commit 264f33302f
54 changed files with 602 additions and 475 deletions

View File

@@ -68,6 +68,7 @@ export const useDictStore = defineStore('dict', {
} }
}, },
getDictByType(type: string) { getDictByType(type: string) {
console.log("🚀 ~ type:", type)
if (!this.isSetDict) { if (!this.isSetDict) {
this.setDictMap() this.setDictMap()
} }

View File

@@ -40,6 +40,7 @@ export const getIntDictOptions = (dictType: string): NumberDictDataType[] => {
value: parseInt(dict.value + '') value: parseInt(dict.value + '')
}) })
}) })
console.log("🚀 ~ getIntDictOptions ~ dictOption:", dictOption)
return dictOption return dictOption
} }

View File

@@ -146,7 +146,7 @@ const tableStore: any = new TableStore({
{ field: 'describe', title: '事件描述' }, { field: 'describe', title: '事件描述' },
{ field: 'type', title: '事件类型', sortable: true }, { field: 'type', title: '事件类型', sortable: true },
{ field: 'result', title: '操作结果', sortable: true }, { field: 'result', title: '操作结果', sortable: true },
{ field: 'ip', title: '操作IP' }, { field: 'ip', title: '操作IP' ,width:'120px'},
{ field: 'level', title: '事件等级', sortable: true } { field: 'level', title: '事件等级', sortable: true }
], ],
loadCallback: () => { loadCallback: () => {

View File

@@ -26,7 +26,7 @@ const tableStore: any = new TableStore({
method: 'POST', method: 'POST',
column: [ column: [
{ field: 'userName', title: '登录用户' }, { field: 'userName', title: '登录用户' },
{ field: 'ip', title: '登录ip' }, { field: 'ip', title: '登录ip' ,width:'120px'},
{ field: 'time', title: '登录时间' } { field: 'time', title: '登录时间' }
] ]
}) })

View File

@@ -270,7 +270,7 @@ const tableStore = new TableStore({
method: 'POST', method: 'POST',
column: [ column: [
{ title: '名称', field: 'name' }, { title: '名称', field: 'name' },
{ title: 'IP', field: 'ip' }, { title: 'IP', field: 'ip' ,width:'120px' },
{ {
title: '等级', title: '等级',
field: 'nodeGrade', field: 'nodeGrade',
@@ -332,29 +332,29 @@ const tableStore = new TableStore({
formData.value = JSON.parse(JSON.stringify(row)) formData.value = JSON.parse(JSON.stringify(row))
} }
}, },
{ // {
name: 'edit', // name: 'edit',
title: '重启', // title: '重启',
type: 'warning', // type: 'warning',
icon: 'el-icon-Delete', // icon: 'el-icon-Delete',
render: 'confirmButton', // render: 'confirmButton',
popconfirm: { // popconfirm: {
confirmButtonText: '确认', // confirmButtonText: '确认',
cancelButtonText: '取消', // cancelButtonText: '取消',
confirmButtonType: 'warning', // confirmButtonType: 'warning',
title: '确定重启吗?' // title: '确定重启吗?'
}, // },
click: row => { // click: row => {
askRestartProcess({ // askRestartProcess({
deviceRebootType: null, // deviceRebootType: null,
nodeId: row.id, // nodeId: row.id,
processNo: 1 // processNo: 1
}).then(res => { // }).then(res => {
ElMessage.success('重启成功') // ElMessage.success('重启成功')
tableStore.index() // tableStore.index()
}) // })
} // }
}, // },
{ {
name: 'del', name: 'del',

View File

@@ -25,7 +25,7 @@
:checkbox-config="{ labelField: 'name' }" :checkbox-config="{ labelField: 'name' }"
> >
<vxe-column field="name" align="left" title="电网拓扑" min-width="200" tree-node></vxe-column> <vxe-column field="name" align="left" title="电网拓扑" min-width="200" tree-node></vxe-column>
<vxe-column field="ip" title="网络参数"></vxe-column> <vxe-column field="ip" title="网络参数" width="120px"></vxe-column>
<vxe-column field="runFlag" title="终端状态" v-if="key == 0"> <vxe-column field="runFlag" title="终端状态" v-if="key == 0">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.runFlag === 0" type="success" size="small">投运</el-tag> <el-tag v-if="row.runFlag === 0" type="success" size="small">投运</el-tag>

View File

@@ -88,7 +88,7 @@
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="version" title="版本信息"></vxe-column> <vxe-column field="version" title="版本信息"></vxe-column>
<vxe-column field="ip" title="网络参数"></vxe-column> <vxe-column field="ip" title="网络参数" width="120px"></vxe-column>
<vxe-column field="runFlag" title="终端状态"> <vxe-column field="runFlag" title="终端状态">
<template #default="{ row }"> <template #default="{ row }">

View File

@@ -39,7 +39,7 @@ const tableStore = new TableStore({
{ title: '事件描述', field: 'describe', align: 'center', showOverflow: true,minWidth: 200 }, { title: '事件描述', field: 'describe', align: 'center', showOverflow: true,minWidth: 200 },
{ title: '事件类型', field: 'type', align: 'center', width: 160 }, { title: '事件类型', field: 'type', align: 'center', width: 160 },
{ title: '操作结果', field: 'type', align: 'center', width: 100 }, { title: '操作结果', field: 'type', align: 'center', width: 100 },
{ title: '操作IP', field: 'ip', align: 'center', width: 160 }, { title: '操作IP', field: 'ip', align: 'center', width: 120 },
{ title: '事件等级', field: 'level', align: 'center', width: 100 } { title: '事件等级', field: 'level', align: 'center', width: 100 }
] ]
}) })

View File

@@ -127,7 +127,7 @@ const tableStore = new TableStore({
{ field: 'lineName', title: '监测点名称', minWidth: '180' }, { field: 'lineName', title: '监测点名称', minWidth: '180' },
{ field: 'gdName', title: '供电公司', minWidth: '120' }, { field: 'gdName', title: '供电公司', minWidth: '120' },
{ field: 'subName', title: '变电站', minWidth: '150' }, { field: 'subName', title: '变电站', minWidth: '150' },
{ field: 'ip', title: '网络参数', minWidth: '110' }, { field: 'ip', title: '网络参数' ,width:'120px' },
{ field: 'scale', title: '电压等级', minWidth: '110' }, { field: 'scale', title: '电压等级', minWidth: '110' },
// { // {
// field: 'advanceType', // field: 'advanceType',

View File

@@ -194,7 +194,7 @@ const tableStore = new TableStore({
{ {
title: '网络参数', title: '网络参数',
field: 'ip', field: 'ip',
align: 'center', align: 'center',width:'120px',
formatter: function (row) { formatter: function (row) {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }

View File

@@ -199,7 +199,7 @@ const tableStore = new TableStore({
{ {
title: '网络参数', title: '网络参数',
field: 'ip', field: 'ip',
align: 'center', align: 'center' ,width:'120px',
formatter: function (row) { formatter: function (row) {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }

View File

@@ -41,7 +41,7 @@ const tableStore = new TableStore({
{ title: '供电公司', field: 'gdName' }, { title: '供电公司', field: 'gdName' },
{ title: '变电站', field: 'subName' }, { title: '变电站', field: 'subName' },
{ title: '终端名称', field: 'devName' }, { title: '终端名称', field: 'devName' },
{ title: 'IP', field: 'ip' }, { title: 'IP', field: 'ip' ,width:'120px' },
{ title: '监测点名称', field: 'lineName' }, { title: '监测点名称', field: 'lineName' },
{ title: '类型', field: 'dataType' }, { title: '类型', field: 'dataType' },
{ title: '谐波次数', field: 'dataTimes' }, { title: '谐波次数', field: 'dataTimes' },

View File

@@ -123,7 +123,7 @@ const tableStore = new TableStore({
{ field: 'name', title: '电网拓扑', width: 350, type: 'radio', align: 'left', treeNode: true }, { field: 'name', title: '电网拓扑', width: 350, type: 'radio', align: 'left', treeNode: true },
{ {
field: 'ip', field: 'ip',
title: '网络参数', title: '网络参数' ,width:'120px',
formatter: ({ row }: any) => { formatter: ({ row }: any) => {
return row.ip || '/' return row.ip || '/'
} }

View File

@@ -123,7 +123,7 @@ const tableStore = new TableStore({
{ field: 'name', title: '电网拓扑', width: 350, type: 'radio', align: 'left', treeNode: true }, { field: 'name', title: '电网拓扑', width: 350, type: 'radio', align: 'left', treeNode: true },
{ {
field: 'ip', field: 'ip',
title: '网络参数', title: '网络参数' ,width:'120px',
formatter: ({ row }: any) => { formatter: ({ row }: any) => {
return row.ip || '/' return row.ip || '/'
} }

View File

@@ -163,7 +163,7 @@
<vxe-column field="subStation" title="变电站" minWidth="110px"></vxe-column> <vxe-column field="subStation" title="变电站" minWidth="110px"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column> <vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column>
<vxe-column field="deviceName" title="终端名称" minWidth="110px"></vxe-column> <vxe-column field="deviceName" title="终端名称" minWidth="110px"></vxe-column>
<vxe-column field="ip" title="终端IP" :formatter="formatter" width="130px"></vxe-column> <vxe-column field="ip" title="终端IP" :formatter="formatter" width="120px"></vxe-column>
<vxe-column <vxe-column
field="lineName" field="lineName"
title="监测点名称" title="监测点名称"

View File

@@ -65,7 +65,7 @@ const tableStore = new TableStore({
{ field: 'name', title: '电网拓扑', width: 350, align: 'left', treeNode: true }, { field: 'name', title: '电网拓扑', width: 350, align: 'left', treeNode: true },
{ {
field: 'ip', field: 'ip',
title: '网络参数', title: '网络参数' ,width:'120px',
formatter: ({ row }: any) => { formatter: ({ row }: any) => {
return row.ip || '/' return row.ip || '/'
} }

View File

@@ -161,7 +161,7 @@
<vxe-column field="subStation" title="变电站" minWidth="110px"></vxe-column> <vxe-column field="subStation" title="变电站" minWidth="110px"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column> <vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column>
<vxe-column field="deviceName" title="终端名称" minWidth="110px"></vxe-column> <vxe-column field="deviceName" title="终端名称" minWidth="110px"></vxe-column>
<vxe-column field="ip" title="终端IP" :formatter="formatter" width="130px"></vxe-column> <vxe-column field="ip" title="终端IP" :formatter="formatter" width="120px"></vxe-column>
<vxe-column field="runFlag" title="运行状态" width="90px"> <vxe-column field="runFlag" title="运行状态" width="90px">
<template #default="{ row }"> <template #default="{ row }">
<el-tag <el-tag

View File

@@ -41,9 +41,7 @@
<el-tab-pane label="监测点运行状态" name="6" lazy v-if="!isReload"> <el-tab-pane label="监测点运行状态" name="6" lazy v-if="!isReload">
<Yunxingzhuangtai v-if="activeName == '6'" /> <Yunxingzhuangtai v-if="activeName == '6'" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实时数据" name="7" lazy v-if="!isReload && !VITE_FLAG"> <!-- -->
<Shishishuju v-if="activeName == '7'" />
</el-tab-pane>
<el-tab-pane label="统计报表" name="8" lazy v-if="!isReload && VITE_FLAG"> <el-tab-pane label="统计报表" name="8" lazy v-if="!isReload && VITE_FLAG">
<StatisticalReport v-if="activeName == '8'" /> <StatisticalReport v-if="activeName == '8'" />
</el-tab-pane> </el-tab-pane>

View File

@@ -113,7 +113,7 @@ const tableStore = new TableStore({
{ field: 'businessType', title: '行业类型' , minWidth: 100}, { field: 'businessType', title: '行业类型' , minWidth: 100},
{ field: 'devName', title: '终端名称', minWidth: 80 }, { field: 'devName', title: '终端名称', minWidth: 80 },
{ field: 'ip', title: '网络参数' , minWidth: 100}, { field: 'ip', title: '网络参数' ,width:'120px'},
// { field: 'comFlag', title: '通讯状态' , minWidth: 100}, // { field: 'comFlag', title: '通讯状态' , minWidth: 100},
{ {

View File

@@ -154,7 +154,7 @@ const tableStore = new TableStore({
{ field: 'manufacturer', title: '厂家', minWidth: 100 }, { field: 'manufacturer', title: '厂家', minWidth: 100 },
{ field: 'devName', title: '终端名称', minWidth: 80 }, { field: 'devName', title: '终端名称', minWidth: 80 },
{ field: 'ip', title: '网络参数', minWidth: 100 }, { field: 'ip', title: '网络参数' ,width:'120px' },
{ field: 'loginTime', title: '投运时间', minWidth: 100 }, { field: 'loginTime', title: '投运时间', minWidth: 100 },
{ field: 'devType', title: '终端型号', minWidth: 100 }, { field: 'devType', title: '终端型号', minWidth: 100 },
{ field: 'port', title: '端口', minWidth: 100 }, { field: 'port', title: '端口', minWidth: 100 },

View File

@@ -1,6 +1,7 @@
<!-- 暂态 --> <!-- 暂态 -->
<template> <template>
<el-dialog draggable title="暂态电能质量水平评估统计" v-model="dialogVisible" width="1400px"> <el-dialog draggable title="暂态电能质量水平评估统计" v-model="dialogVisible" width="1400px">
<div v-loading="loading">
<div> <div>
<vxe-table v-bind="defaultAttribute" ref="vxeRef" height="360px" :data="tableData"> <vxe-table v-bind="defaultAttribute" ref="vxeRef" height="360px" :data="tableData">
<vxe-column field="name" title="区域" /> <vxe-column field="name" title="区域" />
@@ -21,7 +22,10 @@
</vxe-column> </vxe-column>
<vxe-column sortable field="interruptTimes" title="短时中断次数"> <vxe-column sortable field="interruptTimes" title="短时中断次数">
<template #default="{ row }"> <template #default="{ row }">
<span class="text-style" @click="transientOpen(row.interruptTimesIds, row.name, '短时中断')"> <span
class="text-style"
@click="transientOpen(row.interruptTimesIds, row.name, '短时中断')"
>
{{ row.interruptTimes }} {{ row.interruptTimes }}
</span> </span>
</template> </template>
@@ -55,6 +59,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</el-dialog> </el-dialog>
<!-- 暂态详情 --> <!-- 暂态详情 -->
<transientDetails ref="transientRef" /> <transientDetails ref="transientRef" />
@@ -73,11 +78,20 @@ const descentData = ref([])
const resembleData = ref([]) const resembleData = ref([])
const picEChart = ref({}) const picEChart = ref({})
const picEChart1 = ref({}) const picEChart1 = ref({})
const loading = ref(false)
const open = async (row: any) => { const open = async (row: any) => {
getEventDetailByList({ ...row, deviceInfoParam: row }).then((res: any) => { const [year, , day] = row.startTime.split('-')
dialogVisible.value = true
loading.value = true
getEventDetailByList({
...row,
deviceInfoParam: row,
searchBeginTime: `${year}-01-${day}`,
startTime: `${year}-01-${day}`
}).then((res: any) => {
tableData.value = res.data tableData.value = res.data
}) })
getEventReason(row).then(res => { await getEventReason({ ...row, searchBeginTime: `${year}-01-${day}`, startTime: `${year}-01-${day}` }).then(res => {
descentData.value = res.data.reason descentData.value = res.data.reason
resembleData.value = res.data.type resembleData.value = res.data.type
picEChart.value = { picEChart.value = {
@@ -147,7 +161,7 @@ const open = async (row: any) => {
} }
} }
}) })
dialogVisible.value = true loading.value = false
} }
// 查看详情 // 查看详情
const transientOpen = (row: any, name: string, type: string) => { const transientOpen = (row: any, name: string, type: string) => {

View File

@@ -438,7 +438,13 @@ const harmonicChange = () => {
}) })
} }
const transientChange = () => { const transientChange = () => {
getEventLevelEvaluation({ ...formRow.value, ids: [value.value] }).then(res => { const [year, , day] = formRow.value.startTime.split('-') //`${year}-01-${day}`
getEventLevelEvaluation({
...formRow.value,
ids: [value.value],
searchBeginTime: `${year}-01-${day}`,
startTime: `${year}-01-${day}`
}).then(res => {
let data = [] let data = []
transientNum.value = [0, 0] transientNum.value = [0, 0]
if (formRow.value.isUpToGrid == 0) { if (formRow.value.isUpToGrid == 0) {

View File

@@ -167,7 +167,7 @@
<vxe-column field="monitorName" title="监测点名称"></vxe-column> <vxe-column field="monitorName" title="监测点名称"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家"></vxe-column> <vxe-column field="manufacturer" title="终端厂家"></vxe-column>
<vxe-column field="devName" title="所属终端名称"></vxe-column> <vxe-column field="devName" title="所属终端名称"></vxe-column>
<vxe-column field="ip" title="IP"> <vxe-column field="ip" title="IP" width="120px">
<template #default="{ row }"> <template #default="{ row }">
{{ decryptFromBase64(row.ip) }} {{ decryptFromBase64(row.ip) }}
</template> </template>
@@ -243,7 +243,7 @@ const tableStore = new TableStore({
method: 'POST', method: 'POST',
showPage: false, showPage: false,
filename: '稳态告警统计', filename: '稳态告警统计',
publicHeight: 470, publicHeight: 480,
column: [], column: [],
beforeSearchFun: () => { beforeSearchFun: () => {
loading.value = true loading.value = true

View File

@@ -186,7 +186,7 @@
<vxe-column field="monitorName" title="监测点名称" minWidth="110px"></vxe-column> <vxe-column field="monitorName" title="监测点名称" minWidth="110px"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column> <vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column>
<vxe-column field="devName" title="所属终端名称" minWidth="110px"></vxe-column> <vxe-column field="devName" title="所属终端名称" minWidth="110px"></vxe-column>
<vxe-column field="ip" title="IP"> <vxe-column field="ip" title="IP" width="120px">
<template #default="{ row }"> <template #default="{ row }">
{{ decryptFromBase64(row.ip) }} {{ decryptFromBase64(row.ip) }}
</template> </template>
@@ -279,7 +279,7 @@ const tableStore = new TableStore({
method: 'POST', method: 'POST',
showPage: false, showPage: false,
filename: '异常数据统计', filename: '异常数据统计',
publicHeight: 470, publicHeight: 480,
column: [], column: [],
beforeSearchFun: () => { beforeSearchFun: () => {
loading.value = true loading.value = true

View File

@@ -4,7 +4,7 @@
<vxe-column type="seq" width="70px" title="序号"></vxe-column> <vxe-column type="seq" width="70px" title="序号"></vxe-column>
<vxe-column field="name" title="终端名称" min-width="100"></vxe-column> <vxe-column field="name" title="终端名称" min-width="100"></vxe-column>
<vxe-column field="subName" title="所属电站" min-width="100"></vxe-column> <vxe-column field="subName" title="所属电站" min-width="100"></vxe-column>
<vxe-column field="ip" title="网络参数" min-width="100"></vxe-column> <vxe-column field="ip" title="网络参数" width="120px"></vxe-column>
<vxe-colgroup title="运行评价"> <vxe-colgroup title="运行评价">
<vxe-column field="integrityRate" title="完整率(%)" min-width="90"></vxe-column> <vxe-column field="integrityRate" title="完整率(%)" min-width="90"></vxe-column>
<vxe-column field="onLineRate" title="在线率(%)" min-width="90"></vxe-column> <vxe-column field="onLineRate" title="在线率(%)" min-width="90"></vxe-column>

View File

@@ -143,7 +143,7 @@
<vxe-column field="subName" title="变电站" minWidth="110px"></vxe-column> <vxe-column field="subName" title="变电站" minWidth="110px"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column> <vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column>
<vxe-column field="name" title="终端名称" minWidth="110px"></vxe-column> <vxe-column field="name" title="终端名称" minWidth="110px"></vxe-column>
<vxe-column field="ip" title="终端IP" :formatter="formatter" width="130px"></vxe-column> <vxe-column field="ip" title="终端IP" :formatter="formatter" width="120px"></vxe-column>
<vxe-column field="runFlag" title="运行状态" width="100px"> <vxe-column field="runFlag" title="运行状态" width="100px">
<template #default="{ row }"> <template #default="{ row }">
<el-tag <el-tag

View File

@@ -42,7 +42,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="1" label="处理成效报告"> <el-descriptions-item :span="1" label="处理成效报告">
<el-icon class="elView " v-if="list?.reportName" > <el-icon class="elView " v-if="list?.reportName" >
<View @click="openFile(list?.reportName)" /> <View @click="openFile(list?.reportPath)" />
</el-icon> </el-icon>
<a :href="list.reportPath" target="_blank">{{ list.reportName }}</a> <a :href="list.reportPath" target="_blank">{{ list.reportName }}</a>
</el-descriptions-item> </el-descriptions-item>
@@ -73,7 +73,7 @@ const open = (row: any) => {
}) })
} }
const openFile = (name: any) => { const openFile = (name: any) => {
window.open(window.location.origin + '/#/previewFile?/supervision/' + name) window.open(window.location.origin + '/#/previewFile?' + name)
} }
defineExpose({ open }) defineExpose({ open })

View File

@@ -45,7 +45,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2" label="处理成效报告"> <el-descriptions-item :span="2" label="处理成效报告">
<el-icon class="elView " v-if="list?.reportName"> <el-icon class="elView " v-if="list?.reportName">
<View @click="openFile(list?.reportName)" /> <View @click="openFile(list?.reportPath)" />
</el-icon> </el-icon>
<a :href="list.reportPath" target="_blank">{{ list.reportName }}</a> <a :href="list.reportPath" target="_blank">{{ list.reportName }}</a>
</el-descriptions-item> </el-descriptions-item>

View File

@@ -36,7 +36,7 @@ const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
import { mainHeight } from '@/utils/layout' import { mainHeight } from '@/utils/layout'
defineOptions({ defineOptions({
name: 'supervision/electricitymanagement' name: 'supervision/electricitymanagement1'
}) })
const tabList = ref(['1', '2', '3', '4']) const tabList = ref(['1', '2', '3', '4'])
const activeName = ref('1') const activeName = ref('1')

View File

@@ -1,7 +1,14 @@
<template> <template>
<el-dialog draggable :title="title" v-model="planAddition" width="500px" :before-close="cancelFn"> <el-dialog draggable :title="title" v-model="planAddition" width="500px" :before-close="cancelFn">
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto" scroll-to-error <el-form
:validate-on-rule-change="false" class="form-one"> :model="form"
ref="formRef"
:rules="rules"
label-width="auto"
scroll-to-error
:validate-on-rule-change="false"
class="form-one"
>
<el-form-item for="-" label="计划负责单位:"> <el-form-item for="-" label="计划负责单位:">
<Area v-model="form.deptId" @change="changeArea" /> <Area v-model="form.deptId" @change="changeArea" />
</el-form-item> </el-form-item>
@@ -10,20 +17,34 @@
</el-form-item> </el-form-item>
<el-form-item label="监督类型:" prop="supvType"> <el-form-item label="监督类型:" prop="supvType">
<el-select v-model="form.supvType" placeholder="请选择监督类型" style="width: 100%" @change="++key"> <el-select v-model="form.supvType" placeholder="请选择监督类型" style="width: 100%" @change="++key">
<el-option v-for="item in supvTypeOptionList" :key="item.id" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in supvTypeOptionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item for="-" label="监督对象名称:" prop="supvObjectName"> <el-form-item for="-" label="监督对象名称:" prop="supvObjectName">
<el-input v-model="form.supvObjectName" placeholder="请输入监督对象名称"></el-input> <el-input v-model="form.supvObjectName" placeholder="请输入监督对象名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item for="-" label="计划开始时间:" prop="planStartTime"> <el-form-item for="-" label="计划开始时间:" prop="planStartTime">
<el-date-picker v-model="form.planStartTime" type="date" placeholder="选择计划开始时间" <el-date-picker
value-format="YYYY-MM-DD" :disabled-date="disableStartDate"></el-date-picker> v-model="form.planStartTime"
type="date"
placeholder="选择计划开始时间"
value-format="YYYY-MM-DD"
:disabled-date="disableStartDate"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item for="-" label="计划结束时间:" prop="planEndTime"> <el-form-item for="-" label="计划结束时间:" prop="planEndTime">
<el-date-picker v-model="form.planEndTime" type="date" placeholder="选择计划结束时间" <el-date-picker
:disabled-date="disableEndDate" value-format="YYYY-MM-DD"></el-date-picker> v-model="form.planEndTime"
type="date"
placeholder="选择计划结束时间"
:disabled-date="disableEndDate"
value-format="YYYY-MM-DD"
></el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item for="-" label="实际完成时间:" prop="planComplateTime"> <!-- <el-form-item for="-" label="实际完成时间:" prop="planComplateTime">
<el-date-picker <el-date-picker
@@ -43,10 +64,23 @@
<el-radio :value="1"></el-radio> <el-radio :value="1"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item :key="key" label="关联电站:" v-if="form.customSubstationFlag == 0" :prop="dynamicProp" <el-form-item
style="display: flex; align-items: center"> :key="key"
<el-cascader v-model="form.substation" :options="treeData" :props="defaultProps" clearable filterable label="关联电站:"
collapse-tags collapse-tags-tooltip placeholder="请选择关联电站" /> v-if="form.customSubstationFlag == 0"
:prop="dynamicProp"
style="display: flex; align-items: center"
>
<el-cascader
v-model="form.substation"
:options="treeData"
:props="defaultProps"
clearable
filterable
collapse-tags
collapse-tags-tooltip
placeholder="请选择关联电站"
/>
<!-- <el-tree-select <!-- <el-tree-select
accordion accordion
ref="treeRef" ref="treeRef"
@@ -63,7 +97,13 @@
/> --> /> -->
</el-form-item> </el-form-item>
<el-form-item for="-" label="关联电站:" :key="key" v-if="form.customSubstationFlag == 1" :prop="dynamicProp"> <el-form-item
for="-"
label="关联电站:"
:key="key"
v-if="form.customSubstationFlag == 1"
:prop="dynamicProp"
>
<el-input v-model="form.substation" placeholder="名称格式220kV某某电站"></el-input> <el-input v-model="form.substation" placeholder="名称格式220kV某某电站"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form :model="form" label-width="auto"> --> <!-- <el-form :model="form" label-width="auto"> -->
@@ -124,7 +164,7 @@ import Area from '@/components/form/area/index.vue'
import { ElMessage, UploadProps } from 'element-plus' import { ElMessage, UploadProps } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
const emit = defineEmits(['onsubmit']) const emit = defineEmits(['onsubmit'])
const loading = ref(false) const loading = ref(false)
const dictData = useDictData() const dictData = useDictData()
@@ -242,11 +282,15 @@ const submitFn = async (flag: boolean) => {
} }
addForm.saveOrCheckflag = '1' addForm.saveOrCheckflag = '1'
await addSurveyPlan(addForm).then(res => { await addSurveyPlan(addForm)
.then(res => {
cancelFn() cancelFn()
ElMessage.success('保存成功!') ElMessage.success('保存成功!')
emit('onsubmit') emit('onsubmit')
}).catch(() => { loading.value = false}) })
.catch(() => {
loading.value = false
})
} else { } else {
formRef.value.validate(async (valid: any) => { formRef.value.validate(async (valid: any) => {
if (valid) { if (valid) {
@@ -257,17 +301,25 @@ const submitFn = async (flag: boolean) => {
} }
addForm.saveOrCheckflag = '2' addForm.saveOrCheckflag = '2'
if (title.value == '计划新增') { if (title.value == '计划新增') {
await addSurveyPlan(addForm).then(res => { await addSurveyPlan(addForm)
.then(res => {
cancelFn() cancelFn()
ElMessage.success('计划新增成功!') ElMessage.success('计划新增成功!')
emit('onsubmit') emit('onsubmit')
}).catch(() => { loading.value = false}) })
.catch(() => {
loading.value = false
})
} else { } else {
await updateSurveyPlan(addForm).then(res => { await updateSurveyPlan(addForm)
.then(res => {
cancelFn() cancelFn()
ElMessage.success('重新发起成功!') ElMessage.success('重新发起成功!')
emit('onsubmit') emit('onsubmit')
}).catch(() => { loading.value = false}) })
.catch(() => {
loading.value = false
})
} }
} }
}) })
@@ -283,7 +335,11 @@ const changeArea = () => {
treeList.value.forEach((item: any) => { treeList.value.forEach((item: any) => {
if (item.id == form.value.deptId) { if (item.id == form.value.deptId) {
list.push(item) list.push(item)
if (item.id != treeListCgy.value[0].id && item.name != '冀北电力有限公司' && item.name != '超高压') { if (
item.id != treeListCgy.value[0].id && VITE_FLAG
? item.name != '冀北电力有限公司' && item.name != '超高压'
: true
) {
list.push(...treeListCgy.value) list.push(...treeListCgy.value)
} }
} else { } else {
@@ -332,4 +388,5 @@ defineExpose({ open })
<style lang="scss" scoped> <style lang="scss" scoped>
// :deep(.el-upload-list__item-info) { // :deep(.el-upload-list__item-info) {
// width: 250px; // width: 250px;
// }</style> // }
</style>

View File

@@ -25,8 +25,8 @@
<template #operation> <template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="add">新增计划</el-button> <el-button icon="el-icon-Plus" type="primary" @click="add">新增计划</el-button>
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button> <el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate" :loading="loading">模板下载</el-button> <!-- <el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate" :loading="loading">模板下载</el-button>
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button> <el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button> -->
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" :checkbox-config="checkboxConfig" /> <Table ref="tableRef" :checkbox-config="checkboxConfig" />

View File

@@ -314,7 +314,7 @@
</a> </a>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理评估报告"> <el-descriptions-item label="治理验收报告">
<div v-for="item in governReportList"> <div v-for="item in governReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />

View File

@@ -55,25 +55,31 @@
<el-descriptions-item label="预测评估结论" :span="2"> <el-descriptions-item label="预测评估结论" :span="2">
{{ detailData.evaluationConclusion }} {{ detailData.evaluationConclusion }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:' <el-descriptions-item
" v-if=" :label="
detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'
"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.nonlinearLoadType }} {{ proviteData.nonlinearLoadType }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否需要治理"> <el-descriptions-item label="是否需要治理">
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span> <span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span>
@@ -82,12 +88,14 @@
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
@@ -112,39 +120,54 @@
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }} {{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户协议容量MVA" v-if="detailData.userType == 0 || detailData.userType == 1"> <el-descriptions-item
label="用户协议容量MVA"
v-if="detailData.userType == 0 || detailData.userType == 1"
>
{{ proviteData.agreementCapacity }} {{ proviteData.agreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC供电设备容量MVA" v-if=" <el-descriptions-item
label="PCC供电设备容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.pccEquipmentCapacity }} {{ proviteData.pccEquipmentCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="基准短路容量MVA" v-if=" <el-descriptions-item
label="基准短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.baseShortCircuitCapacity }} {{ proviteData.baseShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="系统最小短路容量MVA" v-if=" <el-descriptions-item
label="系统最小短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.minShortCircuitCapacity }} {{ proviteData?.minShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户用电协议容量MVA" v-if=" <el-descriptions-item
label="用户用电协议容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.userAgreementCapacity }} {{ proviteData?.userAgreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1">
@@ -206,12 +229,14 @@
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </a>
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
@@ -253,7 +278,10 @@
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item
label="用户接入变电站主接线示意图"
v-if="detailData.userType != 0 && detailData.userType != 1"
>
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
@@ -285,8 +313,10 @@
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件" <el-descriptions-item
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"> label="其他附件"
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"
>
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
@@ -295,7 +325,7 @@
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网评估报告"> <el-descriptions-item label="入网方案报告">
<div v-for="item in netInReportList"> <div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
@@ -305,7 +335,7 @@
</a> </a>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理评估报告"> <el-descriptions-item label="治理验收报告">
<div v-for="item in governReportList"> <div v-for="item in governReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />

View File

@@ -69,7 +69,7 @@ const tableStore = new TableStore({
}, },
{ field: 'devType', title: '终端型号', minWidth: 100 }, { field: 'devType', title: '终端型号', minWidth: 100 },
{ field: 'ip', title: '终端网络参数', minWidth: 100 }, { field: 'ip', title: '终端网络参数' ,width:'120px'},
{ field: 'port', title: '端口号', minWidth: 40 }, { field: 'port', title: '端口号', minWidth: 40 },
{ {
field: 'runFlag', field: 'runFlag',

View File

@@ -1,8 +1,8 @@
<template> <template>
<div> <div>
<TableHeader area ref="TableHeaderRef" showExport> <TableHeader ref="TableHeaderRef" showExport>
<template #select> <template #select>
<el-form-item label="数据类型"> <!-- <el-form-item label="数据类型">
<el-select v-model="tableStore.table.params.dataType" clearable placeholder="请选择运行状态"> <el-select v-model="tableStore.table.params.dataType" clearable placeholder="请选择运行状态">
<el-option label="主网" value="0"></el-option> <el-option label="主网" value="0"></el-option>
<el-option label="配网" value="1"></el-option> <el-option label="配网" value="1"></el-option>
@@ -17,11 +17,11 @@
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="筛选数据"> <el-form-item label="筛选数据">
<el-input <el-input
style="width: 240px" style="width: 240px"
placeholder="" placeholder="请输入台区名称/组织机构名称/监测线路名称"
v-model="tableStore.table.params.searchValue" v-model="tableStore.table.params.searchValue"
clearable clearable
></el-input> ></el-input>
@@ -47,13 +47,15 @@ import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity
const dictData = useDictData() const dictData = useDictData()
const lineList = dictData.getBasicData('Line_Type') const lineList = dictData.getBasicData('Line_Type')
const AreaList = dictData.getBasicData('Area')
const UseNatureList = dictData.getBasicData('Device_UseNature')
const StateList = dictData.getBasicData('Line_State')
const tableStore = new TableStore({ const tableStore = new TableStore({
url: '/device-boot/distributionArea/getPowerDistributionAreaList', url: '/device-boot/distributionArea/getPowerDistributionAreaList',
publicHeight: 65, publicHeight: 65,
isWebPaging: true,
method: 'POST', method: 'POST',
filename: '监测点台账', filename: '分布式光伏台区台账',
column: [ column: [
{ {
title: '序号', title: '序号',
@@ -63,91 +65,53 @@ const tableStore = new TableStore({
} }
}, },
{ field: 'id', title: '台区编号', minWidth: 150 },
{ field: 'name', title: '台区名称', minWidth: 180 },
{ {
field: 'areaName', field: 'orgName',
title: '省公司', title: '组织机构名称',
minWidth: 100
},
{ field: 'gdName', title: '市公司', minWidth: 150 },
{
field: 'bdName',
title: '所属变电站',
minWidth: 150 minWidth: 150
}, },
{ field: 'lineName', title: '监测点名称', minWidth: 130 }, { field: 'operationName', title: '运维单位', minWidth: 150 },
{ field: 'scale', title: '监测点电压等级', minWidth: 120 }, { field: 'powerrName', title: '变电站名称', minWidth: 150 },
{ field: 'lineName', title: '监测线路名称', minWidth: 190 },
{ field: 'loadType', title: '干扰源类型', minWidth: 120 }, { field: 'pcapacity', title: '配变容量(KVA)', minWidth: 80 },
{ {
field: 'objName', field: 'regionalism',
title: '监测对象名称', title: '地区特征',
minWidth: 180, minWidth: 80,
formatter: (row: any) => { formatter: (row: any) => {
return row.cellValue ? row.cellValue : '/' return AreaList.filter(item => item.id == row.cellValue)[0]?.name || '/'
} }
}, },
{ {
field: 'shortCapacity', field: 'ifRuralPowerGrid',
title: '最小短路容量(MVA)', title: '是否农网',
minWidth: 150 minWidth: 80,
formatter: (row: any) => {
return row.row.ifRuralPowerGrid == 1 ? '是' : '否'
}
}, },
{ {
field: 'devCapacity', field: 'natureOfUse',
title: '供电终端容量(MVA )', title: '使用性质',
minWidth: 160 minWidth: 80,
formatter: (row: any) => {
return UseNatureList.filter(item => item.id == row.cellValue)[0]?.name || '/'
}
}, },
{ field: 'lineLength', title: '供电线路总长度(km)', minWidth: 100 },
{ {
field: 'dealCapacity', field: 'state',
title: '用户协议容量(MVA)',
minWidth: 150
},
/* { field: 'comFlag', title: '通讯状态 ', minWidth: 120 },*/
{ field: 'id', title: '监测点序号', minWidth: 90 },
{
field: 'runFlag',
title: '运行状态', title: '运行状态',
minWidth: 80, minWidth: 80,
render: 'tag', formatter: (row: any) => {
custom: { return StateList.filter(item => item.id == row.cellValue)[0]?.name || '/'
投运: 'success',
停运: 'danger',
检修: 'warning',
调试: 'warning',
退运: 'danger'
} }
}, },
{ field: 'devName', title: '监测终端编号 ', minWidth: 140 }, { field: 'distributedPhotovoltaicNum', title: '用户数', minWidth: 90 },
{ field: 'ptType', title: '监测终端接线方式', minWidth: 140 }, { field: 'photovoltaicCapacity', title: '总装机容量(MW)', minWidth: 100 },
{ { field: 'apLoadType', title: '接入负荷类型', minWidth: 130 }
field: 'voltageDev',
title: '电压偏差上限(%)',
minWidth: 140
},
{
field: 'uvoltageDev',
title: '电压偏差下限(%)',
minWidth: 140
}
/* {
title: '操作',
minWidth: 150,
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'productSetting',
title: '流程详情',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
}
}
]
}*/
], ],
beforeSearchFun: () => { beforeSearchFun: () => {
@@ -159,8 +123,6 @@ tableStore.table.params.searchValue = ''
tableStore.table.params.dataType = '' tableStore.table.params.dataType = ''
tableStore.table.params.lineType = '' tableStore.table.params.lineType = ''
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
tableStore.index() tableStore.index()

View File

@@ -5,7 +5,7 @@
<el-form-item label="筛选数据"> <el-form-item label="筛选数据">
<el-input <el-input
style="width: 240px" style="width: 240px"
placeholder="请输入用户名称" placeholder="请输入用户名称/组织机构名称"
v-model="tableStore.table.params.searchValue" v-model="tableStore.table.params.searchValue"
clearable clearable
></el-input> ></el-input>
@@ -31,13 +31,18 @@ import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity
const dictData = useDictData() const dictData = useDictData()
const lineList = dictData.getBasicData('Line_Type') const lineList = dictData.getBasicData('Line_Type')
const categoryList = dictData.getBasicData('Power_Category')
const stationTypeList = dictData.getBasicData('Power_Station_Type')
const generationList = dictData.getBasicData('Power_Generation')
const voltageList = dictData.getBasicData('Dev_Voltage')
const modeList = dictData.getBasicData('Connection_Mode')
const statList = dictData.getBasicData('Ecc_Stat')
const tableStore = new TableStore({ const tableStore = new TableStore({
url: '/device-boot/generationUser/getPowerGenerationUserPageList', url: '/device-boot/generationUser/getPowerGenerationUserPageList',
publicHeight: 65, publicHeight: 65,
isWebPaging: true,
method: 'POST', method: 'POST',
filename: '监测点台账', filename: '分布式光伏用户台账',
column: [ column: [
{ {
title: '序号', title: '序号',
@@ -47,91 +52,73 @@ const tableStore = new TableStore({
} }
}, },
// {
// field: 'areaName',
// title: '省公司',
// minWidth: 100
// },
{ field: 'id', title: '用户编号', minWidth: 150 },
{ field: 'name', title: '用户名称', minWidth: 180 },
{ field: 'orgName', title: '组织机构名称', minWidth: 150 },
{ field: 'operationName', title: '运维单位名称', minWidth: 150 },
{ {
field: 'areaName', field: 'powerCategory',
title: '省公司', title: '电源类别',
minWidth: 100 minWidth: 120,
},
{ field: 'gdName', title: '市公司', minWidth: 150 },
{
field: 'bdName',
title: '所属变电站',
minWidth: 150
},
{ field: 'lineName', title: '监测点名称', minWidth: 130 },
{ field: 'scale', title: '监测点电压等级', minWidth: 120 },
{ field: 'loadType', title: '干扰源类型', minWidth: 120 },
{
field: 'objName',
title: '监测对象名称',
minWidth: 180,
formatter: (row: any) => { formatter: (row: any) => {
return row.cellValue ? row.cellValue : '/' return categoryList.filter(item => item.id == row.cellValue)[0]?.name || '/'
} }
}, },
{ {
field: 'shortCapacity', field: 'powerStationType',
title: '最小短路容量(MVA)', title: '电站类型',
minWidth: 150 minWidth: 120,
}, formatter: (row: any) => {
{ return stationTypeList.filter(item => item.id == row.cellValue)[0]?.name || '/'
field: 'devCapacity',
title: '供电终端容量(MVA )',
minWidth: 160
},
{
field: 'dealCapacity',
title: '用户协议容量(MVA)',
minWidth: 150
},
/* { field: 'comFlag', title: '通讯状态 ', minWidth: 120 },*/
{ field: 'id', title: '监测点序号', minWidth: 90 },
{
field: 'runFlag',
title: '运行状态',
minWidth: 80,
render: 'tag',
custom: {
投运: 'success',
停运: 'danger',
检修: 'warning',
调试: 'warning',
退运: 'danger'
} }
}, },
{ field: 'devName', title: '监测终端编号 ', minWidth: 140 },
{ field: 'ptType', title: '监测终端接线方式', minWidth: 140 },
{ {
field: 'voltageDev', field: 'powerGenerationMode',
title: '电压偏差上限(%)', title: '发电方式',
minWidth: 140 minWidth: 100,
formatter: (row: any) => {
return generationList.filter(item => item.id == row.cellValue)[0]?.name || '/'
}
}, },
{ {
field: 'uvoltageDev', field: 'voltageLevel',
title: '电压偏差下限(%)', title: '并网电压等级',
minWidth: 140 minWidth: 90,
formatter: (row: any) => {
return voltageList.filter(item => item.id == row.cellValue)[0]?.name || '/'
} }
},
/* { { field: 'sourceCapacity', title: '总装机容量(KVA)', minWidth: 100 },
title: '操作', { field: 'connectionDate', title: '并网日期', minWidth: 120 },
minWidth: 150,
fixed: 'right',
render: 'buttons',
buttons: [
{ {
name: 'productSetting', field: 'connectionMode',
title: '流程详情', title: '能源消纳方式',
type: 'primary', minWidth: 130,
icon: 'el-icon-EditPen', formatter: (row: any) => {
render: 'basicButton', return modeList.filter(item => item.id == row.cellValue)[0]?.name || '/'
click: row => { }
},
{
field: 'gcStat',
title: '客户状态',
minWidth: 120,
formatter: (row: any) => {
return statList.filter(item => item.id == row.cellValue)[0]?.name || '/'
}
},
{
field: 'isUpToGrid',
title: '是否上送网公司监测点',
minWidth: 110,
formatter: (row: any) => {
return row.cellValue==1?'是':'否'
} }
} }
]
}*/
], ],
beforeSearchFun: () => { beforeSearchFun: () => {

View File

@@ -16,12 +16,12 @@
<el-tab-pane label="监测点台账" name="5" v-if="tabList.includes('5')"> <el-tab-pane label="监测点台账" name="5" v-if="tabList.includes('5')">
<monitorLedgerTable ref="monitorLedgerRef" v-if="activeName == '5'" /> <monitorLedgerTable ref="monitorLedgerRef" v-if="activeName == '5'" />
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="布式光伏台区台账" name="6" v-if="tabList.includes('6')"> <el-tab-pane label="布式光伏台区台账" name="6" v-if="tabList.includes('6') && VITE_FLAG">
<transformerStationLedger ref="monitorLedgerRef" v-if="activeName == '6'" /> <transformerStationLedger ref="monitorLedgerRef" v-if="activeName == '6'" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="布式光伏用户台账" name="7" v-if="tabList.includes('7')"> <el-tab-pane label="布式光伏用户台账" name="7" v-if="tabList.includes('7') && VITE_FLAG">
<userLedger ref="monitorLedgerRef" v-if="activeName == '7'" /> <userLedger ref="monitorLedgerRef" v-if="activeName == '7'" />
</el-tab-pane> --> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
@@ -39,10 +39,10 @@ import { mainHeight } from '@/utils/layout'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const id = ref('') const id = ref('')
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
// defineOptions({ defineOptions({
// name: 'Supervision/Terminaldetection' name: 'Supervision/Terminaldetection'
// }) })
const activeName = ref('1') const activeName = ref('1')
const tabList = ref(['1', '2', '3', '4', '5', '6', '7']) const tabList = ref(['1', '2', '3', '4', '5', '6', '7'])

View File

@@ -55,25 +55,31 @@
<el-descriptions-item label="预测评估结论" :span="2"> <el-descriptions-item label="预测评估结论" :span="2">
{{ detailData.evaluationConclusion }} {{ detailData.evaluationConclusion }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:' <el-descriptions-item
" v-if=" :label="
detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'
"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.nonlinearLoadType }} {{ proviteData.nonlinearLoadType }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否需要治理"> <el-descriptions-item label="是否需要治理">
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span> <span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span>
@@ -82,12 +88,14 @@
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
@@ -112,39 +120,54 @@
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }} {{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户协议容量MVA" v-if="detailData.userType == 0 || detailData.userType == 1"> <el-descriptions-item
label="用户协议容量MVA"
v-if="detailData.userType == 0 || detailData.userType == 1"
>
{{ proviteData.agreementCapacity }} {{ proviteData.agreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC供电设备容量MVA" v-if=" <el-descriptions-item
label="PCC供电设备容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.pccEquipmentCapacity }} {{ proviteData.pccEquipmentCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="基准短路容量MVA" v-if=" <el-descriptions-item
label="基准短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.baseShortCircuitCapacity }} {{ proviteData.baseShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="系统最小短路容量MVA" v-if=" <el-descriptions-item
label="系统最小短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.minShortCircuitCapacity }} {{ proviteData?.minShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户用电协议容量MVA" v-if=" <el-descriptions-item
label="用户用电协议容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.userAgreementCapacity }} {{ proviteData?.userAgreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1">
@@ -206,12 +229,14 @@
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </a>
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
@@ -253,7 +278,10 @@
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item
label="用户接入变电站主接线示意图"
v-if="detailData.userType != 0 && detailData.userType != 1"
>
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
@@ -285,8 +313,10 @@
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件" <el-descriptions-item
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"> label="其他附件"
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"
>
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
@@ -295,7 +325,7 @@
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网评估报告"> <el-descriptions-item label="入网方案报告">
<div v-for="item in netInReportList"> <div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
@@ -305,7 +335,7 @@
</a> </a>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理评估报告"> <el-descriptions-item label="治理验收报告">
<div v-for="item in governReportList"> <div v-for="item in governReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />

View File

@@ -55,25 +55,31 @@
<el-descriptions-item label="预测评估结论" :span="2"> <el-descriptions-item label="预测评估结论" :span="2">
{{ detailData.evaluationConclusion }} {{ detailData.evaluationConclusion }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:' <el-descriptions-item
" v-if=" :label="
detailData.userType == '4' || detailData.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'
"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.nonlinearLoadType }} {{ proviteData.nonlinearLoadType }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否需要治理"> <el-descriptions-item label="是否需要治理">
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span> <span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span>
@@ -82,12 +88,14 @@
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
@@ -112,39 +120,54 @@
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }} {{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户协议容量MVA" v-if="detailData.userType == 0 || detailData.userType == 1"> <el-descriptions-item
label="用户协议容量MVA"
v-if="detailData.userType == 0 || detailData.userType == 1"
>
{{ proviteData.agreementCapacity }} {{ proviteData.agreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC供电设备容量MVA" v-if=" <el-descriptions-item
label="PCC供电设备容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.pccEquipmentCapacity }} {{ proviteData.pccEquipmentCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="基准短路容量MVA" v-if=" <el-descriptions-item
label="基准短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData.baseShortCircuitCapacity }} {{ proviteData.baseShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="系统最小短路容量MVA" v-if=" <el-descriptions-item
label="系统最小短路容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.minShortCircuitCapacity }} {{ proviteData?.minShortCircuitCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户用电协议容量MVA" v-if=" <el-descriptions-item
label="用户用电协议容量MVA"
v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
detailData.userType == '4' || detailData.userType == '4' ||
detailData.userType == '5' detailData.userType == '5'
"> "
>
{{ proviteData?.userAgreementCapacity }} {{ proviteData?.userAgreementCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1">
@@ -206,12 +229,14 @@
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </a>
</span> </span>
<span v-if=" <span
v-if="
detailData.userType == 2 || detailData.userType == 2 ||
detailData.userType == 3 || detailData.userType == 3 ||
detailData.userType == 4 || detailData.userType == 4 ||
detailData.userType == 5 detailData.userType == 5
"> "
>
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
@@ -253,7 +278,10 @@
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item
label="用户接入变电站主接线示意图"
v-if="detailData.userType != 0 && detailData.userType != 1"
>
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
@@ -285,8 +313,10 @@
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件" <el-descriptions-item
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"> label="其他附件"
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"
>
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
@@ -295,7 +325,7 @@
</a> </a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网评估报告"> <el-descriptions-item label="入网方案报告">
<div v-for="item in netInReportList"> <div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
@@ -305,7 +335,7 @@
</a> </a>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理评估报告"> <el-descriptions-item label="治理验收报告">
<div v-for="item in governReportList"> <div v-for="item in governReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />

View File

@@ -148,7 +148,7 @@ const tableStore = new TableStore({
{ field: 'startTime', title: '暂降发生时刻', minWidth: '200' }, { field: 'startTime', title: '暂降发生时刻', minWidth: '200' },
{ field: 'gdName', title: '供电公司', minWidth: '100' }, { field: 'gdName', title: '供电公司', minWidth: '100' },
{ field: 'subName', title: '变电站', minWidth: '200' }, { field: 'subName', title: '变电站', minWidth: '200' },
{ field: 'ip', title: '网络参数', minWidth: '200' }, { field: 'ip', title: '网络参数' ,width:'120px' },
{ field: 'lineName', title: '监测点', minWidth: '100' }, { field: 'lineName', title: '监测点', minWidth: '100' },
{ field: 'scale', title: '电压等级(kV)', minWidth: '120', }, { field: 'scale', title: '电压等级(kV)', minWidth: '120', },
// { // {

View File

@@ -326,6 +326,7 @@ function gongfunction(arr: any) {
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })
</script> </script>

View File

@@ -314,6 +314,7 @@ function gongfunction(arr: any) {
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })
</script> </script>

View File

@@ -165,6 +165,7 @@ const init = () => {
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })
</script> </script>

View File

@@ -247,6 +247,7 @@ const init = () => {
}) })
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })
</script> </script>

View File

@@ -311,6 +311,7 @@ const initThird = () => {
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })

View File

@@ -166,6 +166,7 @@ const init = () => {
} }
onMounted(() => { onMounted(() => {
datePickerRef.value.setTheDate(1)
init() init()
}) })
</script> </script>

View File

@@ -57,7 +57,7 @@ const tableStore = new TableStore({
}, },
{ title: '变电站名称', field: 'subName', minWidth: '140' }, { title: '变电站名称', field: 'subName', minWidth: '140' },
{ title: '监测点名称', field: 'lineName', minWidth: '130' }, { title: '监测点名称', field: 'lineName', minWidth: '130' },
{ title: '网络参数', field: 'ip', minWidth: '130' }, { title: '网络参数', field: 'ip' ,width:'120px' },
{ title: '电压等级(kV)', field: 'voltageScale', width: '120' }, { title: '电压等级(kV)', field: 'voltageScale', width: '120' },
{ title: '暂降发生时刻', field: 'startTime', width: '200' }, { title: '暂降发生时刻', field: 'startTime', width: '200' },
// { title: '暂降类型', field: 'advanceType', minWidth: '130' }, // { title: '暂降类型', field: 'advanceType', minWidth: '130' },

View File

@@ -90,16 +90,16 @@ const handleCheckChange = (data: any, node: any) => {
const handleTabChange = () => { const handleTabChange = () => {
monitoringPoint.setShowCheckBox(false) monitoringPoint.setShowCheckBox(false)
} }
watch( // watch(
() => router.currentRoute.value.query.lineId, // () => router.currentRoute.value.query.lineId,
(newLineId, oldLineId) => { // (newLineId, oldLineId) => {
if (!newLineId) return // if (!newLineId) return
// 在这里处理 lineId 的变化 // // 在这里处理 lineId 的变化
monitoringPoint.setValue('lineId', router.currentRoute.value.query.lineId) // monitoringPoint.setValue('lineId', router.currentRoute.value.query.lineId)
monitoringPoint.setValue('lineName', router.currentRoute.value.query.lineName) // monitoringPoint.setValue('lineName', router.currentRoute.value.query.lineName)
}, // },
{ immediate: true } // { immediate: true }
) // )
watch( watch(
() => monitoringPoint.state.lineId, () => monitoringPoint.state.lineId,
() => { () => {

View File

@@ -174,6 +174,7 @@ const tableStore = new TableStore({
}) })
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
TableHeaderRef.value.setTheDate(1)
const dom = document.getElementById('navigation-splitpanes') const dom = document.getElementById('navigation-splitpanes')
if (dom) { if (dom) {
size.value = Math.round((180 / dom.offsetHeight) * 120) size.value = Math.round((180 / dom.offsetHeight) * 120)
@@ -236,7 +237,6 @@ const preview = () => {
link.click() //执行下载 link.click() //执行下载
document.body.removeChild(link) document.body.removeChild(link)
}) })
} }
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@@ -31,7 +31,7 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, provide } from 'vue' import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore' import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue' import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue' import TableHeader from '@/components/table/header/index.vue'
@@ -45,6 +45,7 @@ const pageHeight = mainHeight(20)
defineOptions({ defineOptions({
name: 'Descentsystem/transientList' name: 'Descentsystem/transientList'
}) })
const TableHeaderRef = ref()
const { push } = useRouter() const { push } = useRouter()
const dictData = useDictData() const dictData = useDictData()
@@ -187,6 +188,10 @@ const backbxlb = () => {
view2.value = false view2.value = false
} }
onMounted(() => { onMounted(() => {
tableStore.index() // tableStore.index()
TableHeaderRef.value.setTheDate(1)
nextTick(() => {
TableHeaderRef.value.onComSearch()
})
}) })
</script> </script>

View File

@@ -85,7 +85,7 @@ const tableStore = new TableStore({
{ title: '投运时间', field: 'loginTime', align: 'center', width: 200 }, { title: '投运时间', field: 'loginTime', align: 'center', width: 200 },
{ title: '厂家', field: 'manufacturer', align: 'center', width: 160 }, { title: '厂家', field: 'manufacturer', align: 'center', width: 160 },
{ title: '型号', field: 'devType', align: 'center', width: 200 }, { title: '型号', field: 'devType', align: 'center', width: 200 },
{ title: '网络参数', field: 'ip', align: 'center', width: 200 }, { title: '网络参数', field: 'ip', align: 'center' ,width:'120px'},
{ title: '端口', field: 'port', align: 'center', width: 100 }, { title: '端口', field: 'port', align: 'center', width: 100 },
{ title: '终端状态', field: 'runFlag', align: 'center', width: 100 }, { title: '终端状态', field: 'runFlag', align: 'center', width: 100 },
{ title: '通讯状态', field: 'comFlag', align: 'center', width: 100 }, { title: '通讯状态', field: 'comFlag', align: 'center', width: 100 },

View File

@@ -11,7 +11,7 @@
<vxe-column field="subName" title="变电站(场站)"></vxe-column> <vxe-column field="subName" title="变电站(场站)"></vxe-column>
<vxe-column field="devName" title="终端名称"></vxe-column> <vxe-column field="devName" title="终端名称"></vxe-column>
<!-- <vxe-column field="devType" title="终端型号"></vxe-column> --> <!-- <vxe-column field="devType" title="终端型号"></vxe-column> -->
<vxe-column field="ip" title="网络参数"></vxe-column> <vxe-column field="ip" title="网络参数" width="120px"></vxe-column>
</vxe-table> </vxe-table>
</div> </div>
</div> </div>

View File

@@ -77,7 +77,7 @@ const tableStore = new TableStore({
}, },
{ field: 'gdName', title: '供电公司' }, { field: 'gdName', title: '供电公司' },
{ field: 'subName', title: '变电站' }, { field: 'subName', title: '变电站' },
{ field: 'ip', title: '网络参数' }, { field: 'ip', title: '网络参数' ,width:'120px' },
{ field: 'lineName', title: '监测点' }, { field: 'lineName', title: '监测点' },
{ {
field: 'eventType', field: 'eventType',