修改测试问题

This commit is contained in:
guanj
2026-06-11 20:27:37 +08:00
parent bda7373133
commit 1a09c31669
61 changed files with 3393 additions and 2406 deletions

View File

@@ -1,137 +0,0 @@
<template>
<!-- 异常事件 -->
<TableHeader datePicker ref="refheader" showExport>
<!-- <template v-slot:select>
<el-form-item label="数据来源">
<el-cascader
placeholder="请选择数据来源"
@change="sourceChange"
:options="props.deviceTree"
:show-all-levels="false"
:props="{ checkStrictly: true }"
clearable
></el-cascader>
</el-form-item>
<el-form-item label="级别">
<el-select v-model.trim="tableStore.table.params.level" placeholder="请选择级别" clearable>
<el-option
v-for="item in rankOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</template> -->
<template #select>
<el-form-item label="关键字筛选">
<el-input maxlength="32" show-word-limit
clearable
v-model.trim="tableStore.table.params.searchValue"
placeholder="请输入设备名称"
/>
</el-form-item>
</template>
</TableHeader>
<!-- <div style="height: 300px;"> -->
<Table ref="tableRef" :isGroup="true" />
<!-- </div> -->
</template>
<script setup lang="ts">
import { ref, onMounted, provide } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { mainHeight } from '@/utils/layout'
const props = defineProps(['deviceTree'])
const refheader = ref()
const deviceTree = ref([])
const tabsList = ref([
{
label: '设备告警',
name: 3
},
{
label: '稳态越限告警',
name: 1
},
{
label: '暂态事件',
name: 0
}
])
const rankOptions = ref([
{
value: '1',
label: '1级'
},
{
value: '2',
label: '2级'
},
{
value: '3',
label: '3级'
}
])
const tableStore = new TableStore({
url: '/zl-event-boot/csDevErrEvt/list',
method: 'POST',
exportName: '异常事件',
publicHeight: 65,
column: [
{
title: '序号',
width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '异常时间', field: 'evtTime', align: 'center', sortable: true },
{ title: '设备名称', field: 'ndid', align: 'center' },
{
title: '告警代码',
field: 'code',
align: 'center',
sortable: true,
formatter: (row: any) => {
return row.cellValue ? '\u200B' + row.cellValue : '/'
}
}
]
})
provide('tableStore', tableStore)
// "target": [],
// "type": "",
// "userId": ""
// tableStore.table.params.engineeringid = ''
// tableStore.table.params.projectId = ''
// tableStore.table.params.deviceId = ''
tableStore.table.params.type = 3
// tableStore.table.params.eventIds = []
// tableStore.table.params.status = ''
// tableStore.table.params.target = []
// tableStore.table.params.userId = ''
tableStore.table.params.searchValue = ''
const sourceChange = (e: any) => {
tableStore.table.params.engineeringid = e[0] || ''
tableStore.table.params.projectId = e[1] || ''
tableStore.table.params.deviceId = e[2] || ''
}
onMounted(() => {
tableStore.index()
})
setTimeout(() => {
tableStore.table.height = mainHeight(200).height as any
}, 0)
const addMenu = () => {}
</script>
<style></style>

View File

@@ -60,16 +60,16 @@ const tabsList = ref([
])
const rankOptions = ref([
{
value: '1,7',
label: '1级(ERROR)'
value: '1',
label: '1级'
},
{
value: '2,6',
label: '2级(WARN)'
value: '2',
label: '2级'
},
{
value: '3,4,5',
label: '3级(DEBUG,NORMAL)'
value: '3',
label: '3级'
},
// {
// value: '4',

View File

@@ -37,16 +37,16 @@ const props = defineProps(['deviceTree'])
const refheader = ref()
const rankOptions = ref([
{
value: '1,7',
label: '1级(ERROR)'
value: '1',
label: '1级'
},
{
value: '2,6',
label: '2级(WARN)'
value: '2',
label: '2级'
},
{
value: '3,4,5',
label: '3级(DEBUG,NORMAL)'
value: '3',
label: '3级'
},
// {
// value: '4',
@@ -151,12 +151,12 @@ const tableStore = new TableStore({
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
tableStore.table.params.level = ''
const deviceTreeOptions = ref<any>(props.deviceTree)
deviceTreeOptions.value.map((item: any, index: any) => {
if (item?.children.length == 0) {
deviceTreeOptions.value.splice(index, 1)
}
})
// const deviceTreeOptions = ref<any>(props.deviceTree)
// deviceTreeOptions.value.map((item: any, index: any) => {
// if (item?.children.length == 0) {
// deviceTreeOptions.value.splice(index, 1)
// }
// })
onMounted(() => {
tableStore.index()

View File

@@ -50,12 +50,8 @@ const props = defineProps(['deviceTree'])
const refheader = ref()
const waveFormAnalysisRef = ref()
const view = ref(true)
const isWaveCharts = ref(false)
const view2 = ref(false)
const showBoxi = ref(true)
const loading = ref(false)
const bxactiveName = ref('ssbx')
const boxoList: any = ref({})
const analysisListRef = ref()
const wp = ref({})
@@ -103,9 +99,6 @@ const tableStore = new TableStore({
return EventTypeList.find((item: any) => item.id == row.cellValue)?.name || '未知'
}
},
{ title: '监测点名称', field: 'lineName', minWidth: 130, align: 'center' },
{ title: '电压等级(kV)', field: 'lineVoltage', minWidth: 120, align: 'center', sortable: true, },
{ title: '设备名称', field: 'equipmentName', minWidth: 130, align: 'center' },
@@ -116,8 +109,6 @@ const tableStore = new TableStore({
return row.cellValue == 1 ? '上游' : row.cellValue == 2 ? '下游' : '未知'
}
},
{
title: '操作',
fixed: 'right',
@@ -144,12 +135,15 @@ const tableStore = new TableStore({
if (res != undefined) {
loading.value = true
isWaveCharts.value = true
boxoList.value = row
boxoList.value.engineeringName = row.projectName
boxoList.value.persistTime = row.evtParamTm
boxoList.value.featureAmplitude =
row.evtParamVVaDepth != '-' ? (row.evtParamVVaDepth - 0) / 100 : null
boxoList.value.systemType = 'YPT'
boxoList.value = {
...row,
engineeringName: row.projectName,
persistTime: row.evtParamTm,
featureAmplitude:
row.evtParamVVaDepth != '-' ? (row.evtParamVVaDepth - 0) / 100 : null,
systemType: 'YPT',
}
wp.value = res.data
}
loading.value = false
@@ -164,27 +158,7 @@ const tableStore = new TableStore({
waveFormAnalysisRef.value.getWpData(wp.value, boxoList.value, true)
// waveFormAnalysisRef.value && waveFormAnalysisRef.value.setHeight(200, 190)
})
// row.loading1 = true
// view.value = false
// view2.value = true
// loading.value = true
// boxoList.value = row
// boxoList.value.systemType = 'WX'
// boxoList.value.persistTime = row.evtParamTm != '-' ? row.evtParamTm - 0 : null
// await analyseWave(row.id)
// .then(res => {
// row.loading1 = false
// if (res != undefined) {
// wp.value = res.data
// }
// loading.value = false
// })
// .catch(() => {
// row.loading1 = false
// loading.value = false
// })
}
},
{

View File

@@ -13,11 +13,9 @@
<el-tab-pane label="前置告警" name="2">
<Front v-if="activeName == '2'" :deviceTree="deviceTree" :key="key" />
</el-tab-pane>
<el-tab-pane label="异常事件" name="5">
<Abnormal v-if="activeName == '5'" :deviceTree="deviceTree" :key="key" />
</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -26,7 +24,6 @@ import { ref, onMounted, provide } from 'vue'
import Steady from './Steady.vue'
import Transient from './Transient.vue'
import Device from './Device.vue'
import Abnormal from './Abnormal.vue'
import Front from './Front.vue'
import { getDeviceTree } from '@/api/cs-device-boot/csLedger'
defineOptions({

View File

@@ -29,8 +29,8 @@
</div>
</el-form-item>
<el-form-item label="触发类型">
<el-select v-model="params.target" clearable placeholder="请选择触发类型" multiple collapse-tags
style="width: 317px">
<el-select v-model="params.target" :clearable="!hasFixedTarget" placeholder="请选择触发类型" multiple
collapse-tags style="width: 317px">
<el-option v-for="item in eventTypeList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
@@ -51,16 +51,36 @@
</template>
<script setup lang="ts">
import { computed, watch } from 'vue'
import { ElMessage } from 'element-plus'
const getDefaultFilterParams = () => ({
const ALL_EVENT_TYPES = [
{ label: '暂降', value: '暂降' },
{ label: '暂升', value: '暂升' },
{ label: '中断', value: '中断' },
{ label: '瞬态', value: '瞬态' },
{ label: '振荡', value: '振荡' },
]
const parseFixedTargets = (fixedTarget?: string | string[]) => {
if (!fixedTarget) return []
const values = Array.isArray(fixedTarget) ? fixedTarget : fixedTarget.split(/[,]/).map(item => item.trim())
return values.filter(Boolean)
}
const getInitialTarget = (fixedTarget?: string | string[]) => {
const fixed = parseFixedTargets(fixedTarget)
return fixed.length ? [...fixed] : []
}
const getDefaultFilterParams = (fixedTarget?: string | string[]) => ({
featureAmplitudeMin: undefined as number | undefined,
featureAmplitudeMax: undefined as number | undefined,
evtParamTmMin: undefined as number | undefined,
evtParamTmMax: undefined as number | undefined,
severityMin: undefined as number | undefined,
severityMax: undefined as number | undefined,
target: [] as string[],
target: getInitialTarget(fixedTarget),
fileFlag: '' as string | number
})
@@ -68,19 +88,33 @@ const visible = defineModel<boolean>('visible', { default: false })
const props = defineProps<{
params: Record<string, any>
fixedTarget?: string | string[]
}>()
const emit = defineEmits<{
confirm: []
}>()
const eventTypeList = [
{ label: '暂降', value: '暂降' },
{ label: '暂升', value: '暂升' },
{ label: '中断', value: '中断' },
{ label: '瞬态', value: '瞬态' },
{ label: '振荡', value: '振荡' },
]
const hasFixedTarget = computed(() => parseFixedTargets(props.fixedTarget).length > 0)
const eventTypeList = computed(() => {
const fixed = parseFixedTargets(props.fixedTarget)
if (!fixed.length) return ALL_EVENT_TYPES
return fixed.map(value => {
const matched = ALL_EVENT_TYPES.find(item => item.value === value)
return matched || { label: value, value }
})
})
const syncFixedTarget = () => {
const fixed = parseFixedTargets(props.fixedTarget)
if (fixed.length) {
props.params.target = [...fixed]
}
}
watch(() => props.fixedTarget, syncFixedTarget, { immediate: true })
const fileFlagOptions = [
{ label: '存在', value: 1 },
@@ -115,7 +149,8 @@ const validateRange = (
}
const reset = () => {
Object.assign(props.params, getDefaultFilterParams())
Object.assign(props.params, getDefaultFilterParams(props.fixedTarget))
syncFixedTarget()
}
const onConfirm = () => {