修改测试问题
This commit is contained in:
@@ -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>
|
||||
@@ -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',
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
// })
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
Reference in New Issue
Block a user