修改冀北现场问题

This commit is contained in:
GGJ
2025-12-14 12:47:53 +08:00
parent ff2b9db7b8
commit 0b61c4b7ba
55 changed files with 2679 additions and 951 deletions

View File

@@ -2,7 +2,7 @@
<el-dialog draggable v-model="dialogVisible" :title="title" width="80%" :before-close="handleClose">
<div style="height: 45vh" v-loading="loading">
<vxe-table show-overflow v-bind="defaultAttribute" :data="List">
<vxe-column field="time" title="日期" width="230px"></vxe-column>
<vxe-column field="time" title="日期" width="140px"></vxe-column>
<vxe-column field="overLimitInfo" title="越限详情"></vxe-column>
</vxe-table>
</div>

View File

@@ -6,6 +6,9 @@
<el-form-item label="区域">
<Area ref="areaRef" v-model="tableStore.table.params.deptId" @changeValue="changeArea" />
</el-form-item>
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable maxlength="32" show-word-limit placeholder="请输入监测点名称" />
</el-form-item>
<el-form-item label="监测点性质">
<el-select v-model="tableStore.table.params.lineType" clearable placeholder="请选择监测点性质">
<el-option label="电网侧" value="0" />
@@ -34,8 +37,7 @@
inactive-text="无数据"
/>
</el-form-item>
<el-form-item label="预警阈值">
<!-- <el-input v-model="tableStore.table.params.alertThreshold" placeholder="请输入预警阈值" clearable></el-input> -->
<!-- <el-form-item label="预警阈值">
<el-input-number
v-model="tableStore.table.params.alertThreshold"
:min="0"
@@ -52,7 +54,7 @@
step-strictly
@change="changeAlarm"
/>
</el-form-item>
</el-form-item> -->
<!-- <el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
@@ -89,7 +91,9 @@ import detail from './form/detail.vue'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
const dictData = useDictData()
import { useRouter } from 'vue-router'
defineOptions({
name: 'supervision/electricitymanagement'
})
const router = useRouter() // 路由对象
//字典获取超标指标
const exceeded = dictData.getBasicData('Steady_Statis')
@@ -319,8 +323,9 @@ const tableStore = new TableStore({
// ]
}
})
tableStore.table.params.alertThreshold = 5
tableStore.table.params.alarmThreshold = 5
tableStore.table.params.alertThreshold = 1
tableStore.table.params.alarmThreshold = 1
tableStore.table.params.searchValue = ''
tableStore.table.params.targetList = exceeded.filter(item => item.code == 'Total_Indicator')[0].id
? [exceeded.filter(item => item.code == 'Total_Indicator')[0].id]
: []

View File

@@ -1,13 +1,13 @@
<template>
<div class="default-main">
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane label="在线监测问题" name="1" v-if="tabList.includes('1')">
<el-tab-pane :label="VITE_FLAG ? '在线监测评估' : '在线监测问题'" name="1" v-if="tabList.includes('1')">
<online v-if="activeName == '1'" />
</el-tab-pane>
<el-tab-pane label="用户投诉问题" name="2" v-if="tabList.includes('2')">
<complaints v-if="activeName == '2'" />
</el-tab-pane>
<el-tab-pane label="计划实施问题" name="3" v-if="tabList.includes('3')">
<el-tab-pane :label="VITE_FLAG ? '现场测试' : '计划实施问题'" name="3" v-if="tabList.includes('3')">
<testQuestions v-if="activeName == '3'" />
</el-tab-pane>
<el-tab-pane label="试运行评估" name="4" v-if="tabList.includes('4')">
@@ -33,6 +33,7 @@ import testRun from './components1/testRun.vue'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
// import maintenance from './components/maintenance.vue'
// import audit from './components/audit.vue'
import { mainHeight } from '@/utils/layout'
defineOptions({
name: 'supervision/electricitymanagement'

View File

@@ -1,7 +1,7 @@
<template>
<div class="default-main">
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane :label="VITE_FLAG ? '工作计划定' : '技术监督计划管理'" name="1" v-if="tabList.includes('1')">
<el-tab-pane :label="VITE_FLAG ? '工作计划定' : '技术监督计划管理'" name="1" v-if="tabList.includes('1')">
<plan-manage :id="id" v-if="activeName == '1'" />
</el-tab-pane>
<el-tab-pane :label="VITE_FLAG ? '工作计划实施' : '技术监督测试管理'" name="2" v-if="tabList.includes('2')">

View File

@@ -122,7 +122,7 @@ const tableStore = new TableStore({
}
})
tableStore.table.params.runF=null
tableStore.table.params.runF=0
tableStore.table.params.runFlag=[]
tableStore.table.params.searchValue=''

View File

@@ -2,7 +2,7 @@
<div>
<TableHeader area ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label='运行状态'>
<el-form-item label="运行状态">
<el-select v-model="tableStore.table.params.runF" clearable placeholder="请选择运行状态">
<el-option
v-for="item in runFlagList"
@@ -13,9 +13,13 @@
</el-select>
</el-form-item>
<el-form-item label="信息查询">
<el-input style="width:240px;" placeholder="电站名称,终端编号,监测点名称" v-model="tableStore.table.params.searchValue" clearable></el-input>
<el-input
style="width: 240px"
placeholder="电站名称,终端编号,监测点名称"
v-model="tableStore.table.params.searchValue"
clearable
></el-input>
</el-form-item>
</template>
<template #operation>
@@ -26,7 +30,7 @@
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import { ref, onMounted, provide, nextTick, watch } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
@@ -40,16 +44,21 @@ const interferenceType = dictData.getBasicData('Interference_Source')
const istatusList = dictData.getBasicData('On-network_Status')
const TableHeaderRef = ref()
const areaOptionList = dictData.getBasicData('jibei_area')
const tableStore = new TableStore({
url: '/device-boot/runManage/getLineLedger',
publicHeight: 65,
isWebPaging: true,
method: 'POST',
filename:'监测点台账',
filename: '监测点台账',
column: [
{ title: '序号', width: 80,formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} },
{
title: '序号',
width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{
field: 'areaName',
@@ -67,10 +76,13 @@ const tableStore = new TableStore({
{ field: 'scale', title: '监测点电压等级', minWidth: 120 },
{ field: 'loadType', title: '干扰源类型', minWidth: 120 },
{ field: 'objName', title: '监测对象名称', minWidth: 180 ,
{
field: 'objName',
title: '监测对象名称',
minWidth: 180,
formatter: (row: any) => {
return row.objName ? row.objName : '/'
}
return row.cellValue ? row.cellValue : '/'
}
},
{
field: 'shortCapacity',
@@ -95,13 +107,12 @@ const tableStore = new TableStore({
minWidth: 80,
render: 'tag',
custom: {
'投运': 'success',
'停运': 'danger',
'检修': 'warning',
'调试': 'warning',
'退运': 'danger',
},
投运: 'success',
停运: 'danger',
检修: 'warning',
调试: 'warning',
退运: 'danger'
}
},
{ field: 'devName', title: '监测终端编号 ', minWidth: 140 },
{ field: 'ptType', title: '监测终端接线方式', minWidth: 140 },
@@ -114,8 +125,7 @@ const tableStore = new TableStore({
field: 'uvoltageDev',
title: '电压偏差下限(%)',
minWidth: 140
},
}
/* {
title: '操作',
@@ -141,7 +151,7 @@ const tableStore = new TableStore({
tableStore.table.params.serverName = 'harmonic-boot'
tableStore.table.params.runFlag = []
if(tableStore.table.params.runF!=null){
if (tableStore.table.params.runF != null) {
tableStore.table.params.runFlag = [tableStore.table.params.runF]
}
tableStore.table.params.comFlag = [0, 1]
@@ -152,15 +162,28 @@ const tableStore = new TableStore({
}
})
tableStore.table.params.runF=null
tableStore.table.params.runFlag=[]
tableStore.table.params.searchValue=''
tableStore.table.params.runF = 0
tableStore.table.params.runFlag = []
tableStore.table.params.searchValue = ''
const runFlagList = [{id:0,name:'运行'},{id:1,name:'检修'},{id:2,name:'停运'},{id:3,name:'调试'},{id:4,name:'退运'}]
const runFlagList = [
{ id: 0, name: '运行' },
{ id: 1, name: '检修' },
{ id: 2, name: '停运' },
{ id: 3, name: '调试' },
{ id: 4, name: '退运' }
]
provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
const setSearchValue = (val:string) => {
tableStore.table.params.searchValue = val
tableStore.index()
}
defineExpose({
setSearchValue
})
</script>

View File

@@ -0,0 +1,176 @@
<template>
<div>
<TableHeader area ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="数据类型">
<el-select v-model="tableStore.table.params.dataType" clearable placeholder="请选择运行状态">
<el-option label="主网" value="0"></el-option>
<el-option label="配网" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="监测点类别">
<el-select v-model="tableStore.table.params.lineType" clearable placeholder="请选择运行状态">
<el-option
v-for="item in lineList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="筛选数据">
<el-input
style="width: 240px"
placeholder=""
v-model="tableStore.table.params.searchValue"
clearable
></el-input>
</el-form-item>
</template>
<template #operation>
<!-- <el-button icon="el-icon-Download" type="primary">导出</el-button> -->
</template>
</TableHeader>
<Table ref="tableRef" />
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick, watch } 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'
import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity'
const dictData = useDictData()
const lineList = dictData.getBasicData('Line_Type')
const tableStore = new TableStore({
url: '/device-boot/distributionArea/getPowerDistributionAreaList',
publicHeight: 65,
isWebPaging: true,
method: 'POST',
filename: '监测点台账',
column: [
{
title: '序号',
width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{
field: 'areaName',
title: '省公司',
minWidth: 100
},
{ 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) => {
return row.cellValue ? row.cellValue : '/'
}
},
{
field: 'shortCapacity',
title: '最小短路容量(MVA)',
minWidth: 150
},
{
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',
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: () => {
tableStore.table.params.orgId = tableStore.table.params.deptIndex
}
})
tableStore.table.params.searchValue = ''
tableStore.table.params.dataType = ''
tableStore.table.params.lineType = ''
provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
const setSearchValue = (val: string) => {
tableStore.table.params.searchValue = val
tableStore.index()
}
defineExpose({
setSearchValue
})
</script>

View File

@@ -0,0 +1,156 @@
<template>
<div>
<TableHeader ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="筛选数据">
<el-input
style="width: 240px"
placeholder="请输入用户名称"
v-model="tableStore.table.params.searchValue"
clearable
></el-input>
</el-form-item>
</template>
<template #operation>
<!-- <el-button icon="el-icon-Download" type="primary">导出</el-button> -->
</template>
</TableHeader>
<Table ref="tableRef" />
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick, watch } 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'
import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity'
const dictData = useDictData()
const lineList = dictData.getBasicData('Line_Type')
const tableStore = new TableStore({
url: '/device-boot/generationUser/getPowerGenerationUserPageList',
publicHeight: 65,
isWebPaging: true,
method: 'POST',
filename: '监测点台账',
column: [
{
title: '序号',
width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{
field: 'areaName',
title: '省公司',
minWidth: 100
},
{ 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) => {
return row.cellValue ? row.cellValue : '/'
}
},
{
field: 'shortCapacity',
title: '最小短路容量(MVA)',
minWidth: 150
},
{
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',
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: () => {
tableStore.table.params.orgId = tableStore.table.params.deptIndex
}
})
tableStore.table.params.searchValue = ''
provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
const setSearchValue = (val: string) => {
tableStore.table.params.searchValue = val
tableStore.index()
}
defineExpose({
setSearchValue
})
</script>

View File

@@ -14,19 +14,27 @@
<deviceLedgerTable v-if="activeName == '4'" />
</el-tab-pane>
<el-tab-pane label="监测点台账" name="5" v-if="tabList.includes('5')">
<monitorLedgerTable v-if="activeName == '5'" />
<monitorLedgerTable ref="monitorLedgerRef" v-if="activeName == '5'" />
</el-tab-pane>
<!-- <el-tab-pane label="布式光伏台区台账" name="6" v-if="tabList.includes('6')">
<transformerStationLedger ref="monitorLedgerRef" v-if="activeName == '6'" />
</el-tab-pane>
<el-tab-pane label="布式光伏用户台账" name="7" v-if="tabList.includes('7')">
<userLedger ref="monitorLedgerRef" v-if="activeName == '7'" />
</el-tab-pane> -->
</el-tabs>
</div>
</template>
<script setup lang="ts">
import { onMounted, reactive, ref, provide } from 'vue'
import { onMounted, reactive, ref, provide, nextTick } 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 transformerStationLedger from './components/transformerStationLedger.vue'
import userLedger from './components/userLedger.vue'
import { mainHeight } from '@/utils/layout'
import { useRoute } from 'vue-router'
const route = useRoute()
@@ -35,9 +43,10 @@ const id = ref('')
defineOptions({
name: 'Supervision/Terminaldetection'
})
const activeName = ref('1')
const tabList = ref(['1', '2', '3', '4', '5'])
const activeName = ref('1')
const tabList = ref(['1', '2', '3', '4', '5', '6', '7'])
const monitorLedgerRef = ref()
onMounted(() => {
let key = window.location.href.split('?')[0].slice(-1)
const isNumber = /^\d$/.test(key)
@@ -54,8 +63,13 @@ watch(
if (type == 'null') {
} else if (type == '1') {
activeName.value = '1'
} else if (type == '5') {
activeName.value = '5'
setTimeout(() => {
monitorLedgerRef.value.setSearchValue((route.query.name as string) || '')
}, 500)
}
id.value = (route.query.id as string) || 'null'
id.value = (route.query.name as string) || ''
id.value = id.value + '@' + route.query.t
}
},

View File

@@ -23,6 +23,9 @@
</TableHeader>
<Table ref="tableRef" :checkbox-config="checkboxConfig" />
</el-tab-pane>
<el-tab-pane label="试运行评估问题" name="2">
<testRun v-if="activeName == '2'" />
</el-tab-pane>
</el-tabs>
<!-- <el-dialog
@@ -61,6 +64,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { addRunTest, update, cancel } from '@/api/supervision-boot/lineRunTest'
import { formatDate } from '@/utils/formatTime'
import { VxeTablePropTypes } from 'vxe-table'
import testRun from '@/views/pqs/supervise/electricalEnergy/components1/testRun.vue';
import { useAdminInfo } from '@/stores/adminInfo'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { deleteTempLineRunTestReport } from '@/api/supervision-boot/delete/index'