监测点台账信息

This commit is contained in:
仲么了
2023-12-29 15:45:07 +08:00
parent 526d541cc2
commit 1a826fb0fa
6 changed files with 273 additions and 156 deletions

View File

@@ -6,20 +6,23 @@
<Area v-model='tableStore.table.params.deptIndex' />
</el-form-item>
<el-form-item label='终端状态'>
<el-select v-model='form.runFlag' placeholder='请选择' @change='onRunFlagChange'>
<el-select multiple clearable collapse-tags v-model='tableStore.table.params.runFlag'
placeholder='请选择'>
<el-option label='投运' value='0' />
<el-option label='热备用' value='1' />
<el-option label='停运' value='2' />
</el-select>
</el-form-item>
<el-form-item label='通讯状态'>
<el-select v-model='form.comFlag' placeholder='请选择' @change='onComFlagChange'>
<el-select multiple clearable collapse-tags v-model='tableStore.table.params.comFlag'
placeholder='请选择'>
<el-option label='正常' value='1' />
<el-option label='中断' value='0' />
</el-select>
</el-form-item>
<el-form-item label='厂家'>
<el-select v-model='form.manufacturer' placeholder='请选择' @change='onManufacturerChange'>
<el-select multiple clearable collapse-tags v-model='manufacturerForm' placeholder='请选择'
@change='onManufacturerChange'>
<el-option
v-for='item in manufacturer'
:key='item.id'
@@ -50,6 +53,7 @@ defineOptions({
})
const dictData = useDictData()
const manufacturer = dictData.getBasicData('Dev_Manufacturers')
const manufacturerForm = ref<string[]>([])
const tableStore = new TableStore({
isWebPaging: true,
url: '/device-boot/runManage/getRuntimeData',
@@ -100,16 +104,9 @@ const tableStore = new TableStore({
}
],
resetCallback: () => {
form.runFlag = ''
form.comFlag = ''
form.manufacturer = ''
manufacturerForm.value = []
}
})
const form = reactive({
runFlag: '',
comFlag: '',
manufacturer: ''
})
tableStore.table.params.deptIndex = dictData.state.area[0].id
tableStore.table.params.runFlag = []
tableStore.table.params.comFlag = []
@@ -123,19 +120,15 @@ onMounted(() => {
tableStore.index()
})
const onRunFlagChange = (val: any) => {
tableStore.table.params.runFlag = [val]
}
const onComFlagChange = (val: any) => {
tableStore.table.params.comFlag = [val]
}
const onManufacturerChange = (val: any) => {
let obj = manufacturer.find(item => item.id === val) as any
obj.label = obj.name
obj.value = obj.id
tableStore.table.params.manufacturer = [obj]
}
const addMenu = () => {
const onManufacturerChange = () => {
tableStore.table.params.manufacturer = manufacturer.filter(item => {
return manufacturerForm.value.includes(item.id)
}).map(item => {
return {
...item,
label: item.name,
value: item.id
}
})
}
</script>

View File

@@ -5,36 +5,43 @@
<el-form-item label='区域'>
<Area v-model='tableStore.table.params.deptIndex' />
</el-form-item>
<el-form-item label='终端状态'>
<el-select v-model='form.runFlag' placeholder='请选择' @change='onRunFlagChange'>
<el-option label='投运' value='0' />
<el-option label='热备用' value='1' />
<el-option label='停运' value='2' />
</el-select>
</el-form-item>
<el-form-item label='通讯状态'>
<el-select v-model='form.comFlag' placeholder='请选择' @change='onComFlagChange'>
<el-option label='正常' value='1' />
<el-option label='中断' value='0' />
</el-select>
</el-form-item>
<el-form-item label='厂家'>
<el-select v-model='form.manufacturer' placeholder='请选择' @change='onManufacturerChange'>
<el-form-item label='干扰源类型'>
<el-select multiple clearable collapse-tags v-model='interferenceSourceForm' placeholder='请选择'
@change='onLoadTypeChange'>
<el-option
v-for='item in manufacturer'
v-for='item in interferenceSource'
:key='item.id'
:label='item.name'
:value='item.id'
/>
</el-select>
</el-form-item>
<el-form-item label='电压等级'>
<el-select multiple clearable collapse-tags v-model='scaleForm' placeholder='请选择'
@change='onScaleChange'
>
<el-option
v-for='item in level'
:key='item.id'
:label='item.name'
:value='item.id'
/>
</el-select>
</el-form-item>
<el-form-item label='通讯状态'>
<el-select multiple clearable collapse-tags v-model='tableStore.table.params.comFlag'
placeholder='请选择'>
<el-option label='正常' value='1' />
<el-option label='中断' value='0' />
</el-select>
</el-form-item>
<el-form-item label='筛选数据'>
<el-input v-model='tableStore.table.params.searchValue'
placeholder='根据变电站,终端编号,型号或网络参数查询' style='width:300px' />
</el-form-item>
</template>
</TableHeader>
<Table ref='tableRef' />
<Table isGroup ref='tableRef' />
</div>
</template>
<script setup lang='tsx'>
@@ -49,71 +56,148 @@ defineOptions({
name: 'comptroller/list'
})
const dictData = useDictData()
const manufacturer = dictData.getBasicData('Dev_Manufacturers')
const interferenceSource = dictData.getBasicData('Interference_Source')
const level = dictData.getBasicData('Dev_Voltage_Stand')
const interferenceSourceForm = ref<string[]>([])
const scaleForm = ref<string[]>([])
const tableStore = new TableStore({
isWebPaging: true,
url: '/device-boot/runManage/getRuntimeData',
url: '/device-boot/runManage/getLineLedger',
method: 'POST',
column: [
{ title: '序号', type: 'seq', align: 'center', width: 60 },
{ title: '区域', field: 'areaName', align: 'center', width: 120 },
{ title: '供电公司', field: 'gdName', align: 'center', width: 120 },
{ title: '变电站', field: 'bdName', align: 'center', showOverflow: true, minWidth: 100 },
{ title: '终端编号', field: 'devName', align: 'center', width: 160 },
{ title: '投运时间', field: 'loginTime', align: 'center', width: 200 },
{ title: '厂家', field: 'manufacturer', align: 'center', width: 160 },
{ title: '型号', field: 'devType', align: 'center', width: 200 },
{ title: '网络参数', field: 'ip', align: 'center', width: 200 },
{ title: '端口', field: 'port', align: 'center', width: 100 },
{ title: '终端状态', field: 'runFlag', align: 'center', width: 100 },
{ title: '通讯状态', field: 'comFlag', align: 'center', width: 100 },
{ title: '最新数据', field: 'updateTime', align: 'center', width: 200 },
{ field: 'areaName', title: '省公司', width: 120 },
{ field: 'gdName', title: '市公司', width: 120 },
{ field: 'scale', title: '监测点电压等级', width: 150 },
{ field: 'lineName', title: '监测点名称', width: 120 },
{ field: 'bdName', title: '所属变电站', width: 120 },
{ field: 'loadType', title: '干扰源类型', width: 120 },
{ field: 'objName', title: '监测对象名称', width: 180 },
{
title: '评价',
field: 'onlineEvaluate',
align: 'center',
width: 100,
render: 'customRender',
customRender: props => {
if (props.renderValue == null) {
return <span></span>
} else if (props.renderValue * 100 > 90) {
return (
<el-tag effect='dark' type='success'>
</el-tag>
)
} else if (props.renderValue * 100 > 60) {
return (
<el-tag effect='dark' type='warning'>
</el-tag>
)
} else {
return (
<el-tag effect='dark' type='danger'>
</el-tag>
)
field: 'shortCapacity', title: '最小短路容量(MVA)', width: 190
},
{
field: 'devCapacity', title: '供电设备容量(MVA )', width: 190
},
{
field: 'dealCapacity', title: '用户协议容量(MVA)', width: 190
},
{ field: 'comFlag', title: '通讯状态 ', width: 120 },
{ field: 'id', title: '监测点序号', width: 120 },
{ field: 'devName', title: '监测终端编号 ', width: 140 },
{ field: 'ptType', title: '监测终端接线方式', width: 160 },
{
field: 'voltageDev', title: '电压偏差上限(%)', width: 160
},
{
field: 'uvoltageDev', title: '电压偏差下限(%)', width: 160
},
{
field: 'limitValue',
title: '限值',
children: [{ field: 'freqDev', title: '频率(Hz)', width: 120 }, {
field: 'ubalance',
title: '三相电压不平衡度(%)',
width: 190
}, { field: 'ineg', title: '负序电流(A)', width: 120 }, {
field: 'flicker',
title: '长时间闪变',
width: 120
}, {
field: 'uaberrance', title: '电压总谐波畸变率(%)', width: 190
},
{
field: 'oddHarm',
title: '奇数次谐波电压(%)',
width: 180
},
{
field: 'evenHarm',
title: '偶数次谐波电压(%)',
width: 180
}
}
]
},
{
field: 'evaluate',
title: '电流限值',
children: [
{ field: 'iharm2', title: '2次谐波(A)', width: 120 },
{ field: 'iharm3', title: '3次谐波(A)', width: 120 },
{ field: 'iharm4', title: '4次谐波(A)', width: 120 },
{ field: 'iharm5', title: '5次谐波(A)', width: 120 },
{ field: 'iharm6', title: '6次谐波(A)', width: 120 },
{ field: 'iharm7', title: '7次谐波(A)', width: 120 },
{ field: 'iharm8', title: '8次谐波(A)', width: 120 },
{ field: 'iharm9', title: '9次谐波(A)', width: 120 },
{ field: 'iharm10', title: '10次谐波(A)', width: 140 },
{
field: 'iharm11', title: '11次谐波(A)', width: 140
},
{
field: 'iharm12', title: '12次谐波(A)', width: 140
},
{
field: 'iharm13', title: '13次谐波(A)', width: 140
},
{
field: 'iharm14', title: '14次谐波(A)', width: 140
},
{
field: 'iharm15', title: '15次谐波(A)', width: 140
},
{
field: 'iharm16', title: '16次谐波(A)', width: 140
},
{
field: 'iharm17', title: '17次谐波(A)', width: 140
},
{
field: 'iharm18', title: '18次谐波(A)', width: 140
},
{
field: 'iharm19', title: '19次谐波(A)', width: 140
},
{
field: 'iharm10', title: '20次谐波(A)', width: 140
},
{
field: 'iharm21', title: '21次谐波(A)', width: 140
},
{
field: 'iharm22', title: '22次谐波(A)', width: 140
},
{
field: 'iharm23', title: '23次谐波(A)', width: 140
},
{
field: 'iharm24', title: '24次谐波(A)', width: 140
},
{
field: 'iharm25', title: '25次谐波(A)', width: 140
},
{
field: 'inUharm', title: '0.5-1.5次间谐波(A)', width: 180
},
{
field: 'inUharm16', title: '2.5-15.5次间谐波(A)', width: 190
}
]
}
],
resetCallback: () => {
form.runFlag = ''
form.comFlag = ''
form.manufacturer = ''
interferenceSourceForm.value = []
scaleForm.value = []
}
})
const form = reactive({
runFlag: '',
comFlag: '',
manufacturer: ''
})
tableStore.table.params.deptIndex = dictData.state.area[0].id
tableStore.table.params.runFlag = []
tableStore.table.params.scale = []
tableStore.table.params.comFlag = []
tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = []
tableStore.table.params.statisticalType = {}
tableStore.table.params.serverName = 'event-boot'
tableStore.table.params.searchValue = ''
@@ -123,19 +207,26 @@ onMounted(() => {
tableStore.index()
})
const onRunFlagChange = (val: any) => {
tableStore.table.params.runFlag = [val]
const onLoadTypeChange = () => {
tableStore.table.params.loadType = interferenceSource.filter(item => {
return interferenceSourceForm.value.includes(item.id)
}).map(item => {
return {
...item,
label: item.name,
value: item.id
}
})
}
const onComFlagChange = (val: any) => {
tableStore.table.params.comFlag = [val]
}
const onManufacturerChange = (val: any) => {
let obj = manufacturer.find(item => item.id === val) as any
obj.label = obj.name
obj.value = obj.id
tableStore.table.params.manufacturer = [obj]
}
const addMenu = () => {
const onScaleChange = () => {
tableStore.table.params.scale = level.filter(item => {
return scaleForm.value.includes(item.id)
}).map(item => {
return {
...item,
label: item.name,
value: item.id
}
})
}
</script>