修改检测数据查询展示页面

This commit is contained in:
guanj
2025-08-26 10:37:13 +08:00
parent 5cf39e8aa8
commit 95b602e6d4
5 changed files with 73 additions and 53 deletions

View File

@@ -6,7 +6,7 @@ export namespace CheckData {
deviceName: string
chnNum: string
deviceId: string
num?: string | number
num?: string | number
}
export interface PhaseCheckResult {
@@ -44,6 +44,15 @@ export namespace CheckData {
dataC: DataItem
dataT: DataItem | null
unit: string
timeDev?: string
uaDev?: string | number
ubDev?: string | number
ucDev?: string | number
utDev?: string | number
uaStdDev?: string | number
ubStdDev?: string | number
ucStdDev?: string | number
utStdDev?: string | number
}
/**

View File

@@ -13,28 +13,43 @@
<el-table-column prop="dataA" :label="'被检设备'">
<el-table-column prop="timeDev" label="数据时间" width="200" />
<el-table-column prop="uaDev" :label="'A相'" />
<el-table-column prop="ubDev" :label="'B相'" />
<el-table-column prop="ucDev" :label="'C相'" />
<el-table-column prop="uaDev" :label="'A相'" v-if="prop.tableData[0]?.uaDev != null" />
<el-table-column prop="ubDev" :label="setB" v-if="prop.tableData[0]?.ubDev != null" />
<el-table-column prop="ucDev" :label="'C相'" v-if="prop.tableData[0]?.ucDev != null" />
<el-table-column prop="utDev" :label="'T相'" v-if="prop.tableData[0]?.utDev != null" />
</el-table-column>
<el-table-column prop="dataA" :label="'标准设备'">
<el-table-column prop="timeStdDev" label="数据时间" width="200" />
<el-table-column prop="uaStdDev" :label="'A相'" />
<el-table-column prop="ubStdDev" :label="'B相'" />
<el-table-column prop="ucStdDev" :label="'C相'" />
<el-table-column prop="uaStdDev" :label="'A相'" v-if="prop.tableData[0]?.uaStdDev != null" />
<el-table-column prop="ubStdDev" :label="setB" v-if="prop.tableData[0]?.ubStdDev != null" />
<el-table-column prop="ucStdDev" :label="'C相'" v-if="prop.tableData[0]?.ucStdDev != null" />
<el-table-column prop="utStdDev" :label="'T相'" v-if="prop.tableData[0]?.utStdDev != null" />
</el-table-column>
</el-table>
</div>
</template>
<script lang="tsx" setup>
import { computed } from 'vue'
import { CheckData } from '@/api/check/interface'
const prop = defineProps({
tableData: {
type: Array as () => CheckData.TableRow[],
default: []
},
currentCheckItem: {
type: String,
default: ''
}
})
const setB = computed(() => {
return prop.currentCheckItem == '三相电流不平衡度'
? '三相电流不平衡度'
: prop.currentCheckItem == '三相电压不平衡度'
? '三相电压不平衡度'
: 'B相'
})
</script>
<style scoped></style>

View File

@@ -6,7 +6,7 @@
:header-cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column label="A相" v-if="prop.tableData[0].dataA ">
<el-table-column label="A相" v-if="prop.tableData[0].dataA">
<el-table-column prop="stdA" :label="'被检值'">
<template #default="{ row }">
{{ row.dataA.data }}
@@ -21,17 +21,19 @@
<template #default="{ row }">
<el-tooltip effect="dark" placement="bottom">
<template #content>
误差范围{{ addPercentSigns(row.dataA.radius,row.dataA.unit) }}
误差范围{{ addPercentSigns(row.dataA.radius, row.dataA.unit) }}
<br />
误差值{{ row.dataA.errorData }}
</template>
<el-tag type="success" v-if="row.dataA.isData === 1">符合</el-tag>
<el-tag type="danger" v-if="row.dataA.isData === 2">不符合</el-tag>
<el-tag type="warning" v-if="row.dataA.isData === 4">/</el-tag>
<el-tag type="info" v-if="row.dataA.isData === 5">-</el-tag>
</el-tooltip>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="B" v-if="prop.tableData[0].dataB">
<el-table-column :label="setB" v-if="prop.tableData[0].dataB">
<el-table-column prop="stdB" :label="'被检值'">
<template #default="{ row }">
{{ row.dataB.data }}
@@ -46,18 +48,20 @@
<template #default="{ row }">
<el-tooltip effect="dark" placement="bottom">
<template #content>
误差范围{{ addPercentSigns(row.dataB.radius,row.dataB.unit) }}
误差范围{{ addPercentSigns(row.dataB.radius, row.dataB.unit) }}
<br />
误差值{{ row.dataB.errorData }}
</template>
<el-tag type="success" v-if="row.dataB.isData === 1">符合</el-tag>
<el-tag type="danger" v-if="row.dataB.isData === 2">不符合</el-tag>
<el-tag type="warning" v-if="row.dataB.isData === 4">/</el-tag>
<el-tag type="info" v-if="row.dataB.isData === 5">-</el-tag>
</el-tooltip>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="C相" v-if="prop.tableData[0].dataC">
<el-table-column prop="stdC" :label="'被检值'" >
<el-table-column prop="stdC" :label="'被检值'">
<template #default="{ row }">
{{ row.dataC.data }}
</template>
@@ -71,18 +75,20 @@
<template #default="{ row }">
<el-tooltip effect="dark" placement="bottom">
<template #content>
误差范围{{ addPercentSigns(row.dataC.radius,row.dataC.unit) }}
误差范围{{ addPercentSigns(row.dataC.radius, row.dataC.unit) }}
<br />
误差值{{ row.dataC.errorData }}
</template>
<el-tag type="success" v-if="row.dataC.isData === 1">符合</el-tag>
<el-tag type="danger" v-if="row.dataC.isData === 2">不符合</el-tag>
<el-tag type="warning" v-if="row.dataC.isData === 4">/</el-tag>
<el-tag type="info" v-if="row.dataC.isData === 5">-</el-tag>
</el-tooltip>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="T相" v-if="prop.tableData[0].dataT">
<el-table-column prop="stdT" :label="'被检值'" >
<el-table-column prop="stdT" :label="'被检值'">
<template #default="{ row }">
{{ row.dataT.data }}
</template>
@@ -96,12 +102,14 @@
<template #default="{ row }">
<el-tooltip effect="dark" placement="bottom">
<template #content>
误差范围{{ addPercentSigns(row.dataT.radius,row.dataT.unit) }}
误差范围{{ addPercentSigns(row.dataT.radius, row.dataT.unit) }}
<br />
误差值{{ row.dataT.errorData }}
</template>
<el-tag type="success" v-if="row.dataT.isData === 1">符合</el-tag>
<el-tag type="danger" v-if="row.dataT.isData === 2">不符合</el-tag>
<el-tag type="warning" v-if="row.dataT.isData === 4">/</el-tag>
<el-tag type="info" v-if="row.dataT.isData === 5">-</el-tag>
</el-tooltip>
</template>
</el-table-column>
@@ -111,52 +119,34 @@
</template>
<script lang="tsx" setup>
import {} from 'vue'
import { computed } from 'vue'
import { CheckData } from '@/api/check/interface'
const prop = defineProps({
tableData: {
type: Array as () => CheckData.TableRow[],
default: []
},
currentCheckItem: {
type: String,
default: ''
}
})
// 添加单位
const addPercentSigns = (text: string,unit: string) => {
const addPercentSigns = (text: string, unit: string) => {
return text
.split('~')
.map(part => `${part}${unit}`)
.join('~')
}
const mockTableData = [
{
stdA: '220.00',
dataA: '219.85',
isDataA: 1,
maxErrorA: '±0.5%',
errorA: '0.068%',
unitA: '%',
stdB: '220.00',
dataB: '220.12',
isDataB: 1,
maxErrorB: '±0.5%',
errorB: '0.055%',
unitB: '%',
stdC: '220.00',
dataC: '219.95',
isDataC: 1,
maxErrorC: '±0.5%',
errorC: '0.023%',
unitC: '%',
stdT: '0.15',
dataT: '0.12',
isDataT: 1,
maxErrorT: '±0.2',
errorT: '0.03',
unitT: '',
unit: 'V'
}
]
const setB = computed(() => {
return prop.currentCheckItem == '三相电流不平衡度'
? '三相电流不平衡度'
: prop.currentCheckItem == '三相电压不平衡度'
? '三相电压不平衡度'
: 'B相'
})
</script>
<style scoped>

View File

@@ -34,11 +34,11 @@
<el-input v-model="formContent.deviceName" :disabled="true" />
</el-form-item>
<el-form-item label="通道号">
<el-select v-model="formContent.chnNum" @change="getResults">
<el-select v-model="formContent.chnNum" @change="getResults" :disabled="sourceKey == 1">
<el-option v-for="item in chnList" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="检测次数">
<el-form-item label="检测次数" :disabled="sourceKey == 1">
<el-select v-model="formContent.num" clearable @change="getResults">
<el-option
v-for="item in chnMapList[formContent.chnNum]"
@@ -57,7 +57,7 @@
</el-form>
</div>
<div class="data-check-body">
<div class="content-left-tree">
<div class="content-left-tree" v-if="sourceKey == 2">
<el-tree
style="width: 200px"
:data="scriptData"
@@ -94,12 +94,16 @@
<el-tab-pane label="检测结果" name="resultTab">
<CompareDataCheckResultTable
:tableData="currentCheckResultData"
:currentCheckItem="currentCheckItem"
:currentScriptTypeName="currentScriptTypeName"
v-if="activeTab === 'resultTab'"
/>
</el-tab-pane>
<el-tab-pane label="原始数据" name="rawDataTab">
<CompareDataCheckRawDataTable
v-if="activeTab === 'rawDataTab'"
:tableData="currentRawTableData"
:currentCheckItem="currentCheckItem"
:currentScriptTypeName="currentScriptTypeName"
@exportRawDataHandler="exportRawDataHandler"
/>
@@ -160,7 +164,7 @@ const formContent = reactive<CheckData.DataCheck>({
deviceId: '',
num: ''
})
const source = ref('1') //1:正式检测进入页面 2:检测数据查询进入
const sourceKey = ref(1) //1:正式检测进入页面 2:检测数据查询进入
// 通道下拉列表
const chnList: any = ref([])
@@ -188,6 +192,7 @@ const open = async (row: any, chnNum: string, deviceId: string | null, source: n
rowList.value = {}
formContent.deviceId = deviceId || ''
formContent.chnNum = chnNum
sourceKey.value = source
if (source == 1) {
// 正式检测进入页面
rowList.value = row
@@ -206,8 +211,6 @@ const open = async (row: any, chnNum: string, deviceId: string | null, source: n
Object.assign(pqErrorList, resPqErrorList)
// 获取基本信息
await getBasicInformation()
}
// 查询大项树
const initScriptData = async (row: any) => {
@@ -246,6 +249,7 @@ const getBasicInformation = async () => {
formContent.deviceName = res.data.deviceName
formContent.errorSysId = res.data.errorSysId
chnMapList.value = res.data.chnMap
formContent.num = res.data.checkNum
let chnMap: string[] = []
for (let key in res.data.chnMap) {
chnMap.push(key)

View File

@@ -815,7 +815,9 @@ const updateCheckResult = (data: CheckData.ScriptChnItem) => {
// 滚动日志到底部
const scrollToBottom = () => {
if (scrollContainerRef.value) {
scrollContainerRef.value.scrollTop = scrollContainerRef.value.scrollHeight + 70
setTimeout(() => {
scrollContainerRef.value.scrollTop = scrollContainerRef.value.scrollHeight + 70
},10)
}
}