通用台账查询页面调整

This commit is contained in:
cdf
2026-03-23 09:19:43 +08:00
parent 7d2ce51510
commit 93ee7e4034
2 changed files with 317 additions and 205 deletions

View File

@@ -1,156 +1,276 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader area ref="TableHeaderRef" showExport>
<TableHeader area showExport>
<template #select> <template #select>
<!-- <el-form-item label="统计类型:"> <el-form-item label="运行状态">
<el-select v-model="tableStore.table.params.statisticalType" placeholder="请选择统计类型" value-key="id"> <el-select
<el-option v-for="item in classificationData" :key="item.id" :label="item.name" :value="item"> filterable
</el-option> multiple
collapse-tags
v-model="tableStore.table.params.runFlag" clearable placeholder="请选择运行状态">
<el-option
v-for="item in runFlagList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item>
<el-form-item label="数据筛选">
<el-input
style="width: 240px"
placeholder="电站名称,终端编号,监测点名称、电压等级、终端厂家、干扰源类型"
v-model="tableStore.table.params.searchValue"
clearable
maxlength="32"
show-word-limit
></el-input>
</el-form-item>
<el-form-item label="通讯状态:">
<el-select
v-model="tableStore.table.params.comFlag"
filterable
multiple
collapse-tags
clearable
placeholder="请选择通讯状态"
>
<el-option
v-for="item in communicationstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:"> <el-form-item label="电压等级:">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable <el-select
placeholder="请选择电压等级" value-key="id"> v-model="tableStore.table.params.scale"
<el-option v-for="item in voltageleveloption" :key="item.id" :label="item.name" :value="item"> filterable
</el-option> multiple
collapse-tags
clearable
placeholder="请选择电压等级"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="终端厂家:"> <el-form-item label="终端厂家:">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags <el-select
clearable placeholder="请选择终端厂家" value-key="id"> v-model="tableStore.table.params.manufacturer"
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name" :value="item"> filterable
</el-option> multiple
collapse-tags
clearable
placeholder="请选择终端厂家"
value-key="id"
>
<el-option
v-for="item in terminaloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="干扰源类型:"> <el-form-item label="干扰源类型:">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable <el-select
placeholder="请选择干扰源类型" value-key="id"> v-model="tableStore.table.params.loadType"
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name" :value="item"> filterable
</el-option> multiple
collapse-tags
clearable
placeholder="请选择干扰源类型"
value-key="id"
>
<el-option
v-for="item in interfereoption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="通讯状态:">
<el-select v-model="tableStore.table.params.comFlag" filterable multiple collapse-tags clearable
placeholder="请选择通讯状态">
<el-option v-for="item in communicationstatus" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="终端状态:">
<el-select v-model="tableStore.table.params.runFlag" filterable multiple collapse-tags clearable
placeholder="请选择终端状态">
<el-option v-for="item in terminalstatus" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="评价筛选">
<el-input v-model="tableStore.table.params.evaluate" clearable placeholder="输入关键字筛选" maxlength="32" show-word-limit />
</el-form-item>
</template> </template>
<template #operation>
<!-- <el-button icon="el-icon-Download" type="primary">导出</el-button> -->
</template>
</TableHeader> </TableHeader>
<Table ref="tableRef" /> <Table ref="tableRef" />
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, provide } from 'vue' import { ref, onMounted, provide, nextTick, watch } 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 { useDictData } from '@/stores/dictData'
import TableHeader from '@/components/table/header/index.vue' import TableHeader from '@/components/table/header/index.vue'
const dictData = useDictData() import { useDictData } from '@/stores/dictData'
defineOptions({
name: 'harmonic-boot/run/devicemessage'
})
const view = ref(true)
const classificationData = dictData.getBasicData('Statistical_Type', ["Report_Type"])
const voltageleveloption = dictData.getBasicData('Dev_Voltage_Stand')
const terminaloption = dictData.getBasicData('Dev_Manufacturers')
const interfereoption = dictData.getBasicData('Interference_Source')
const communicationstatus = [ const dictData = useDictData()
{ value: 0, label: "中断" }, const TableHeaderRef = ref()
{ value: 1, label: "正常" }, const areaOptionList = dictData.getBasicData('jibei_area')
] const interfereoption = dictData.getBasicData('Interference_Source')
const terminalstatus = [ const terminaloption = dictData.getBasicData('Dev_Manufacturers')
{ value: 0, label: "投运" }, const voltageleveloption = dictData.getBasicData('Dev_Voltage_Stand')
{ value: 1, label: "检修" },
{ value: 2, label: "停运" },
]
const tableStore = new TableStore({ const tableStore = new TableStore({
url: '/device-boot/runManage/getLineLedger', url: '/device-boot/runManage/getLineLedgerComm',
method: 'POST', method: 'POST',
isWebPaging: true, filename: '监测点台账',
column: [ column: [
{ {
field: 'index',
title: '序号', title: '序号',
width: '80', width: 80,
formatter: (row: any) => { formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1 return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} }
}, },
{ field: 'areaName', title: '区域',minWidth: 100 },
{ field: 'gdName', title: '供电公司' ,minWidth: 100}, {
field: 'areaName',
title: '省公司',
minWidth: 100
},
{ field: 'gdName', title: '市公司', minWidth: 150 },
{ {
field: 'bdName', field: 'bdName',
title: '站', title: '所属变电站',
minWidth: 100 minWidth: 150
}, },
{ field: 'objName', title: '对象名称' , minWidth: 240}, {
{ field: 'lineName', title: '监测点名称' , minWidth: 100}, field: 'objName',
{ field: 'manufacturer', title: '厂家' , minWidth: 100}, title: '监测对象名称',
{ field: 'scale', title: '电压等级' , minWidth: 100}, minWidth: 150,
{ field: 'businessType', title: '行业类型' , minWidth: 100}, formatter: (row: any) => {
return row.cellValue ? row.cellValue : '/'
}
},
{ field: 'lineName', title: '监测点名称', minWidth: 130 },
{ field: 'scale', title: '监测点电压等级', minWidth: 120 },
{ field: 'devName', title: '终端名称', minWidth: 80 }, { field: 'loadType', title: '干扰源类型', minWidth: 120 },
{ field: 'ip', title: '网络参数' ,width:'120px'},
// { field: 'comFlag', title: '通讯状态' , minWidth: 100}, {
field: 'manufacturer',
title: '终端厂家',
minWidth: 100,
formatter: (row: any) => {
return row.cellValue ? row.cellValue : '/'
}
},
{
field: 'runFlag',
title: '运行状态',
minWidth: 80,
render: 'tag',
custom: {
投运: 'success',
停运: 'danger',
检修: 'warning',
调试: 'warning',
退运: 'danger'
}
},
{ {
field: 'comFlag', field: 'comFlag',
title: '通讯状态', title: '通讯状态',
render: 'tag', render: 'tag',
minWidth: 100,
// effect: 'dark', // effect: 'dark',
minWidth: 70,
custom: { custom: {
'正常': 'success', 正常: 'success',
'中断': 'danger', 中断: 'danger'
}
},
}, },
{ field: 'loadType', title: '干扰源类型' , minWidth: 100}, {
field: 'shortCapacity',
title: '最小短路容量(MVA)',
minWidth: 150
},
{
field: 'devCapacity',
title: '供电设备容量(MVA )',
minWidth: 160
},
{
field: 'dealCapacity',
title: '用户协议容量(MVA)',
minWidth: 150
},
{ field: 'id', title: '监测点序号', minWidth: 90 },
{ field: 'devName', title: '监测终端编号 ', minWidth: 140 },
{ field: 'ptType', title: '监测终端接线方式', minWidth: 140 },
{
field: 'voltageDev',
title: '电压偏差上限(%)',
minWidth: 140
},
{
field: 'uvoltageDev',
title: '电压偏差下限(%)',
minWidth: 140
}
/* {
title: '操作',fixed: 'right',
minWidth: 150,
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'productSetting',
title: '流程详情',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
}
}
]
}*/
], ],
loadCallback: () => { beforeSearchFun: () => {
tableStore.table.data.map((item: any) => { tableStore.table.params.serverName = 'harmonic-boot'
item.onlineEvaluate == 3.14159 ? item.onlineEvaluate = '/' : item.onlineEvaluate <= 0.6 ? item.onlineEvaluate = '差' : item.onlineEvaluate <= 0.9 ? item.onlineEvaluate = '良' : item.onlineEvaluate <= 1 ? item.onlineEvaluate = '优' : '/' tableStore.table.params.statisticalType = {
}) name: '电网拓扑',
code: 'Power_Network'
}
} }
}) })
tableStore.table.params.statisticalType = classificationData[0]
tableStore.table.params.serverName = "harmonic-boot"
tableStore.table.params.comFlag = []
tableStore.table.params.runFlag = [] tableStore.table.params.runFlag = []
tableStore.table.params.evaluate = '' tableStore.table.params.comFlag = []
tableStore.table.params.powerFlag = 2 tableStore.table.params.powerFlag = 2
tableStore.table.params.monitorFlag = 2 tableStore.table.params.monitorFlag = 2
tableStore.table.params.searchValue = ''
tableStore.table.params.scale = [] tableStore.table.params.scale = []
tableStore.table.params.manufacturer = [] tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = [] tableStore.table.params.loadType = []
const wp = ref({}) const runFlagList = [
{ id: 0, name: '投运' },
{ id: 1, name: '检修' },
{ id: 2, name: '停运' },
]
const communicationstatus = [
{ value: 0, label: '中断' },
{ value: 1, label: '正常' }
]
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
@@ -159,6 +279,4 @@ onMounted(() => {
</script> </script>

View File

@@ -1,32 +1,15 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader area showExport> <TableHeader area ref="TableHeaderRef" showExport>
<template #select> <template #select>
<!-- <el-form-item label="统计类型:"> <!-- <el-form-item label="统计类型:">
<el-select v-model="tableStore.table.params.statisticalType" placeholder="请选择统计类型" value-key="id"> <el-select v-model="tableStore.table.params.statisticalType" placeholder="请选择统计类型" value-key="id">
<el-option v-for="item in classificationData" :key="item.id" :label="item.name" :value="item"> <el-option v-for="item in classificationData" :key="item.id" :label="item.name" :value="item">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="电压等级:">
<el-select
v-model="tableStore.table.params.scale"
filterable
multiple
collapse-tags
clearable
placeholder="请选择电压等级"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:"> <el-form-item label="终端厂家:">
<el-select <el-select
v-model="tableStore.table.params.manufacturer" v-model="tableStore.table.params.manufacturer"
@@ -45,6 +28,44 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据筛选">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入市公司、变电站、用户" />
</el-form-item>
<el-form-item label="通讯状态:">
<el-select
v-model="tableStore.table.params.comF"
filterable
multiple
collapse-tags
clearable
placeholder="请选择通讯状态"
>
<el-option
v-for="item in communicationstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端状态:">
<el-select
v-model="tableStore.table.params.runF"
filterable
multiple
collapse-tags
clearable
placeholder="请选择终端状态"
>
<el-option
v-for="item in terminalstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:"> <el-form-item label="干扰源类型:">
<el-select <el-select
v-model="tableStore.table.params.loadType" v-model="tableStore.table.params.loadType"
@@ -63,59 +84,39 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="电压等级:">
<el-select
v-model="tableStore.table.params.scale"
filterable
multiple
collapse-tags
clearable
placeholder="请选择电压等级"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="通讯状态:">
<el-select
v-model="tableStore.table.params.comFlag"
filterable
multiple
collapse-tags
clearable
placeholder="请选择通讯状态"
>
<el-option
v-for="item in communicationstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端状态:">
<el-select
v-model="tableStore.table.params.runFlag"
filterable
multiple
collapse-tags
clearable
placeholder="请选择终端状态"
>
<el-option
v-for="item in terminalstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="评价筛选">
<el-input v-model="tableStore.table.params.evaluate" clearable placeholder="输入关键字筛选" />
</el-form-item> -->
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" /> <Table ref="tableRef" />
</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 { useDictData } from '@/stores/dictData'
import TableHeader from '@/components/table/header/index.vue' import TableHeader from '@/components/table/header/index.vue'
import { useDictData } from '@/stores/dictData'
const dictData = useDictData() const dictData = useDictData()
defineOptions({
name: 'harmonic-boot/run/terminalmessage'
})
const view = ref(true) const view = ref(true)
const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Type', 'Voltage_Level', 'Load_Type']) const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Type', 'Voltage_Level', 'Load_Type'])
const voltageleveloption = dictData.getBasicData('Dev_Voltage_Stand') const voltageleveloption = dictData.getBasicData('Dev_Voltage_Stand')
@@ -134,37 +135,41 @@ const terminalstatus = [
const tableStore = new TableStore({ const tableStore = new TableStore({
url: '/device-boot/runManage/getRuntimeData', url: '/device-boot/runManage/getRuntimeData',
method: 'POST', method: 'POST',
isWebPaging: true,
column: [ column: [
{ {
field: 'index', field: 'index',
title: '序号', title: '序号',
width: '80', width: '70',
formatter: (row: any) => { formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1 return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} }
}, },
{ field: 'areaName', title: '区域', minWidth: 100 }, { field: 'areaName', title: '区域', minWidth: 90 },
{ field: 'gdName', title: '供电公司', minWidth: 100 }, { field: 'gdName', title: '公司', minWidth: 110 },
{ {
field: 'bdName', field: 'bdName',
title: '站', title: '变电站',
minWidth: 100 minWidth: 110
},
{
field: 'objName',
title: '用户对象',
minWidth: 110
}, },
{ field: 'manufacturer', title: '厂家', minWidth: 100 }, { field: 'manufacturer', title: '厂家', minWidth: 100 },
{ field: 'devName', title: '终端名称', minWidth: 80 }, { field: 'devName', title: '终端名称', minWidth: 100 },
{ field: 'ip', title: '网络参数' ,width:'120px' }, { field: 'ip', title: '网络参数' ,width:110 },
{ field: 'loginTime', title: '投运时间', minWidth: 100 }, { field: 'loginTime', title: '投运时间', minWidth: 90 },
{ field: 'devType', title: '终端型号', minWidth: 100 }, { field: 'devType', title: '终端型号', minWidth: 100 },
{ field: 'port', title: '端口', minWidth: 100 }, { field: 'port', title: '端口', minWidth: 60 },
{ field: 'updateTime', title: '最新数据', minWidth: 100 }, { field: 'updateTime', title: '最新数据', minWidth: 110 },
{ {
field: 'runFlag', field: 'runFlag',
title: '终端状态', title: '终端状态',
// effect: 'dark', // effect: 'dark',
render: 'tag', render: 'tag',
minWidth: 100, minWidth: 70,
custom: { custom: {
投运: 'success', 投运: 'success',
检修: 'warning', 检修: 'warning',
@@ -176,56 +181,45 @@ const tableStore = new TableStore({
title: '通讯状态', title: '通讯状态',
render: 'tag', render: 'tag',
// effect: 'dark', // effect: 'dark',
minWidth: 100, minWidth: 70,
custom: { custom: {
正常: 'success', 正常: 'success',
中断: 'danger' 中断: 'danger'
} }
}, },
{
field: 'onlineEvaluate',
title: '在线率评价',
render: 'tag',
// effect: 'dark',
minWidth: 100,
custom: {
'/': 'info',
: 'success',
: 'warning',
: 'danger'
}
}
], ],
loadCallback: () => { beforeSearchFun: () => {
tableStore.table.webPagingData.map((item1: any) => { tableStore.table.params.serverName = 'harmonic-boot'
item1.map((item: any) => { tableStore.table.params.statisticalType = {
item.onlineEvaluate == 3.14159 name: '电网拓扑',
? (item.onlineEvaluate = '/') code: 'Power_Network'
: item.onlineEvaluate <= 0.6 }
? (item.onlineEvaluate = '差')
: item.onlineEvaluate <= 0.9
? (item.onlineEvaluate = '良')
: item.onlineEvaluate <= 1
? (item.onlineEvaluate = '优')
: '/'
})
})
tableStore.table.params.runFlag = []
if (tableStore.table.params.runF != null && tableStore.table.params.runF != '') {
tableStore.table.params.runFlag = [tableStore.table.params.runF]
}
tableStore.table.params.comFlag = []
if (tableStore.table.params.comF != null&&tableStore.table.params.comF != '') {
tableStore.table.params.comFlag = [tableStore.table.params.comF]
}
} }
}) })
tableStore.table.params.runF = ''
tableStore.table.params.comF = ''
tableStore.table.params.statisticalType = classificationData[0] tableStore.table.params.statisticalType = classificationData[0]
tableStore.table.params.serverName = 'harmonic-boot' tableStore.table.params.serverName = 'harmonic-boot'
tableStore.table.params.comFlag = [] tableStore.table.params.comFlag = []
tableStore.table.params.runFlag = [] tableStore.table.params.runFlag = []
// tableStore.table.params.evaluate = '' tableStore.table.params.searchValue = ''
tableStore.table.params.powerFlag = 2 tableStore.table.params.powerFlag = 2
tableStore.table.params.monitorFlag = 2 tableStore.table.params.monitorFlag = 2
tableStore.table.params.scale = [] tableStore.table.params.scale = []
tableStore.table.params.manufacturer = [] tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = [] tableStore.table.params.loadType = []
const wp = ref({})
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {