系数校准

This commit is contained in:
sjl
2024-12-30 14:43:13 +08:00
parent 6ce58e86ad
commit d76b055730
13 changed files with 1208 additions and 424 deletions

View File

@@ -1,5 +1,5 @@
<template>
<el-dialog v-model='dialogVisible' title="系数校准" v-bind="dialogBig" width="1400px" @close="handleCancel">
<el-dialog v-model='dialogVisible' title="系数校准" v-bind="dialogBig" width="1500px" @close="handleCancel">
<div class="test-dialog" >
<div class="dialog-content">
<div class="right-title">
@@ -19,20 +19,36 @@
<div class="dialog-left">
<el-steps direction="vertical" :active="active" :process-status="currentStepStatus" finish-status="success">
<el-step title="开始" />
<el-step title="大电压/电流下装"/>
<el-step>
<template #title>
<span>大电压/电流系数下装</span><br/>
<span>源输出为</span><br/>
<span>Ua=Ub=Uc=57.74V</span><br/>
<span>Ia=Ib=Ic=1A</span>
<span v-if="active > 0">Ua=Ub=Uc=57.74V</span><br/>
<span v-if="active > 0">Ia=Ib=Ic=10A</span>
</template>
</el-step>
<el-step title="小电压/电流下装"/>
<el-step>
<template #title>
<span>小电压/电流系数下装</span><br/>
<span>源输出为</span><br/>
<span>Ua=Ub=Uc=57.74V</span><br/>
<span>Ia=Ib=Ic=1A</span>
<span v-if="active > 1">Ua=Ub=Uc=5.774V</span><br/>
<span v-if="active > 1">Ia=Ib=Ic=1A</span>
</template>
</el-step>
<el-step>
<template #title>
<span>大电压/电流校准</span><br/>
<span>源输出为</span><br/>
<span v-if="active > 2">Ua=Ub=Uc=57.74V</span><br/>
<span v-if="active > 2">Ia=Ib=Ic=10A</span>
</template>
</el-step>
<el-step>
<template #title>
<span>小电压/电流校准</span><br/>
<span>源输出为</span><br/>
<span v-if="active > 3">Ua=Ub=Uc=5.774V</span><br/>
<span v-if="active > 3">Ia=Ib=Ic=1A</span>
</template>
</el-step>
<el-step title="结束"/>
@@ -41,8 +57,8 @@
<div class="right-content">
<el-tabs type="border-card">
<div v-if="activeIndex > 0">
<el-tab-pane v-for="(device, index) in name.slice(0, activeIndex )" :key="index" :label="device">
<div >
<el-tab-pane v-for="(device, index) in name" :key="index" :label="device">
<template #label>
<span class="custom-tabs-label">
<span>{{ device }}</span>
@@ -51,7 +67,7 @@
</el-icon>
</span>
</template>
<channelsTestTable :tableData="getTableDataForChannel(index)"></channelsTestTable>
<channelsTestTable :tableData="getTableDataForChannel(index)" :loading="loadingStates[index]"></channelsTestTable>
</el-tab-pane>
</div>
<el-empty description="暂无数据,等待检测开始" v-if="activeIndex === 0" />
@@ -106,6 +122,7 @@ import { SuccessFilled, Failed, Message, MessageBox } from '@element-plus/icons-
import { type Ref, ref, toRef, watch } from 'vue'
import {dialogBig} from '@/utils/elementBind'
import { ElMessage, ElMessageBox } from 'element-plus';
import { el } from 'element-plus/es/locale';
const activeIndex = ref(0)
const activeTotalNum = ref(4)
const qualified = ref(0)
@@ -118,6 +135,7 @@ let intervalId: NodeJS.Timeout | null = null;
const channel = ref<number[]>([])//系数校准所选设备通道数组
// 在 setup 函数中
const errorStates = ref(new Array(name.value.length).fill(false));
const loadingStates = ref(new Array(name.value.length).fill(false)); // 初始化 loading 状态
// 定义 TableDataItem 接口
@@ -142,130 +160,257 @@ interface TableDataItem {
}
// 定义每种状态的数据模板
const dataTemplates = [
const dataTemplates3 = [
{
deviceName: '大电压大电流1',
deviceName: '系数下装',
UaData: '—',
UaChannel:'—',
UbData: '—',
UbChannel: '—',
UcData: '—',
UcChannel: '—',
IaData: '—',
IaChannel: '—',
IbData: '—',
IbChannel: '—',
IcData: '—',
IcChannel: '—',
},
{
deviceName: '系数下装',
UaData: '—',
UaChannel:'—',
UbData: '—',
UbChannel: '—',
UcData: '—',
UcChannel: '—',
IaData: '—',
IaChannel: '—',
IbData: '—',
IbChannel: '—',
IcData: '—',
IcChannel: '—',
},
{
deviceName: '系数校准',
UaData: '—',
UaChannel:'—',
UbData: '—',
UbChannel: '—',
UcData: '—',
UcChannel: '—',
IaData: '—',
IaChannel: '—',
IbData: '—',
IbChannel: '—',
IcData: '—',
IcChannel: '—',
},
{
deviceName: '系数校准',
UaData: '—',
UaChannel:'—',
UbData: '—',
UbChannel: '—',
UcData: '—',
UcChannel: '—',
IaData: '—',
IaChannel: '—',
IbData: '—',
IbChannel: '—',
IcData: '—',
IcChannel: '—',
},
];
const dataTemplates4 = [
{
deviceName: '系数下装',
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaData: 10,
IaChannel: 1.0001,
IbData: 5,
IbData: 10,
IbChannel: 1.0001,
IcData: 5,
IcData: 10,
IcChannel: 1.0001,
},
{
deviceName: '小电压小电流1',
UaData: 57.74,
deviceName: '系数下装',
UaData: 5.774,
UaChannel: 1.0003,
UbData: 57.74,
UbData: 5.774,
UbChannel: 1.0003,
UcData: 57.74,
UcData: 5.774,
UcChannel: 1.0003,
IaData: 5,
IaData: 1,
IaChannel: 1.0001,
IbData: 5,
IbData: 1,
IbChannel: 1.0001,
IcData: 5,
IcData: 1,
IcChannel: 1.0001,
},
{
deviceName: '大电压大电流2',
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
deviceName: '系数校准',
UaData: '—',
UaChannel:'',
UbData: '—',
UbChannel: '',
UcData: '—',
UcChannel: '',
IaData: '—',
IaChannel: '',
IbData: '—',
IbChannel: '',
IcData: '—',
IcChannel: '',
},
{
deviceName: '小电压小电流2',
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
deviceName: '系数校准',
UaData: '—',
UaChannel:'',
UbData: '—',
UbChannel: '',
UcData: '—',
UcChannel: '',
IaData: '—',
IaChannel: '',
IbData: '—',
IbChannel: '',
IcData: '—',
IcChannel: '',
},
];
// 定义每种状态的数据模板
const dataTemplates2 = [
const dataTemplates5 = [
{
deviceName: '大电压大电流1',
deviceName: '系数下装',
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaData: 10,
IaChannel: 1.0001,
IbData: 5,
IbData: 10,
IbChannel: 1.0001,
IcData: 5,
IcData: 10,
IcChannel: 1.0001,
},
{
deviceName: '小电压小电流1',
UaData: 57.74,
deviceName: '系数下装',
UaData: 5.774,
UaChannel: 1.0003,
UbData: 57.74,
UbData: 5.774,
UbChannel: 1.0003,
UcData: 57.74,
UcData: 5.774,
UcChannel: 1.0003,
IaData: 5,
IaData: 1,
IaChannel: 1.0001,
IbData: 5,
IbData: 1,
IbChannel: 1.0001,
IcData: 5,
IcData: 1,
IcChannel: 1.0001,
},
{
deviceName: '大电压大电流2',
deviceName: '系数校准',
UaData: 57.74,
UaChannel: '不合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaData: 10,
IaChannel: '合格',
IbData: 5,
IbData: 10,
IbChannel: '合格',
IcData: 5,
IcData: 10,
IcChannel: '合格',
},
{
deviceName: '小电压小电流2',
deviceName: '系数校准',
UaData: 5.774,
UaChannel: '不合格',
UbData: 5.774,
UbChannel: '合格',
UcData: 5.774,
UcChannel: '合格',
IaData: 1,
IaChannel: '合格',
IbData: 1,
IbChannel: '合格',
IcData: 1,
IcChannel: '合格',
},
];
const dataTemplates6 = [
{
deviceName: '系数下装',
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 10,
IaChannel: 1.0001,
IbData: 10,
IbChannel: 1.0001,
IcData: 10,
IcChannel: 1.0001,
},
{
deviceName: '系数下装',
UaData: 5.774,
UaChannel: 1.0003,
UbData: 5.774,
UbChannel: 1.0003,
UcData: 5.774,
UcChannel: 1.0003,
IaData: 1,
IaChannel: 1.0001,
IbData: 1,
IbChannel: 1.0001,
IcData: 1,
IcChannel: 1.0001,
},
{
deviceName: '系数校准',
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IaData: 10,
IaChannel: '合格',
IbData: 10,
IbChannel: '合格',
IcData: 5,
IcData: 10,
IcChannel: '合格',
},
{
deviceName: '系数校准',
UaData: 5.774,
UaChannel: '合格',
UbData: 5.774,
UbChannel: '合格',
UcData: 5.774,
UcChannel: '合格',
IaData: 1,
IaChannel: '合格',
IbData: 1,
IbChannel: '合格',
IcData: 1,
IcChannel: '合格',
},
];
@@ -305,292 +450,6 @@ const activities = [
},
]
const tableData1 = ref<TableDataItem[]>([
{
id: '1',
deviceName: '大电压大电流1',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '1',
deviceName: '大电压大电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '1',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
},
{
id: '1',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: "合格",
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
},
{
id: '2',
deviceName: '240001',
MonitorIdx: 2,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '2',
deviceName: '240001',
MonitorIdx: 2,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '2',
deviceName: '240001',
MonitorIdx: 2,
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
},
{
id: '2',
deviceName: '240001',
MonitorIdx: 2,
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel:'合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
},
])
const tableData2 = ref<TableDataItem[]>([
{
id: '1',
deviceName: '大电压大电流2',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '1',
deviceName: '大电压大电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
},
{
id: '1',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '不合格',
IcData: 5,
IcChannel: '合格',
},
{
id: '1',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: "合格",
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
},
])
const tableData3 = ref<TableDataItem[]>([
{
id: '1',
updateTime: '2024-10-10 10:30:00',
deviceName: '大电压大电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
Result: '合格',
},
{
id: '1',
updateTime: '2024-10-10 10:30:00',
deviceName: '大电压大电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: 1.0003,
UbData: 57.74,
UbChannel: 1.0003,
UcData: 57.74,
UcChannel: 1.0003,
IaData: 5,
IaChannel: 1.0001,
IbData: 5,
IbChannel: 1.0001,
IcData: 5,
IcChannel: 1.0001,
Result: '合格',
},
{
id: '1',
updateTime: '2024-10-10 10:30:00',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: '合格',
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
Result: '合格',
},
{
id: '1',
updateTime: '2024-10-10 10:30:00',
deviceName: '小电压小电流',
MonitorIdx: 1,
UaData: 57.74,
UaChannel: "合格",
UbData: 57.74,
UbChannel: '合格',
UcData: 57.74,
UcChannel: '不合格',
IaData: 5,
IaChannel: '合格',
IbData: 5,
IbChannel: '合格',
IcData: 5,
IcChannel: '合格',
Result: '合格',
},
])
const tableDataMap = new Map<number, Ref<TableDataItem[]>>([
@@ -611,6 +470,7 @@ const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process
const checkStates = selection.map(item => item.checkState);
const allCheckStatesEqual = new Set(checkStates).size <= 1;
if (!allCheckStatesEqual) {
ElMessageBox.confirm(
'所勾选设备检测状态不一致,请重新选择',
@@ -630,13 +490,14 @@ const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process
total.value = name.value.length
// 循环生成数据
// 初始化 loadingStates 为 false
loadingStates.value = new Array(selection.length).fill(false);
errorStates.value = new Array(selection.length).fill(false);
for (let i = 0; i < channel.value.length; i++) {
const currentTableData = ref<TableDataItem[]>([]);
// 随机选择 dataTemplates 或 dataTemplates2
const selectedTemplates = Math.random() < 0.5 ? dataTemplates : dataTemplates2;
const selectedTemplates = dataTemplates3;
for(let j = 0; j < channel.value[i]; j++){
const id = (j + 1).toString();
@@ -651,6 +512,25 @@ const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process
tableDataMap.set(i,currentTableData)
}
// // 循环生成数据
// for (let i = 0; i < channel.value.length; i++) {
// const currentTableData = ref<TableDataItem[]>([]);
// // 随机选择 dataTemplates 或 dataTemplates2
// const selectedTemplates = Math.random() < 0.5 ? dataTemplates : dataTemplates2;
// for(let j = 0; j < channel.value[i]; j++){
// const id = (j + 1).toString();
// selectedTemplates.forEach((template) => {
// currentTableData.value.push({
// id: id,
// MonitorIdx: j + 1,
// ...template,
// });
// });
// }
// tableDataMap.set(i,currentTableData)
// }
}
const handleCancel=() => {
@@ -666,6 +546,8 @@ const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process
const getTableDataForChannel = (index: number): any[] => {
const data = tableDataMap.get(index);
// console.log('index',index)
// console.log('data',data)
return data ? data.value : [];
}
// const props = defineProps({
@@ -736,7 +618,119 @@ const checkForErrors = (data: TableDataItem[]): boolean => {
);
};
const handleSubmit = () => {
const handleSubmit = async () => {
if (intervalId !== null) {
clearInterval(intervalId);
}
// 初始化 currentTableData
let isTimer2Completed = false;
// 设置 loading 状态为 true
// 初始化 loadingStates 为 true
loadingStates.value = new Array(name.value.length).fill(true);
for (let i = 0; i < channel.value.length; i++) {
console.log('channel', channel.value[i]);
console.log('activeIndex', activeIndex.value);
const currentTableData = ref<TableDataItem[]>([]);
const selectedTemplates = dataTemplates4;
for (let j = 0; j < channel.value[i]; j++) {
const id = (j + 1).toString();
selectedTemplates.forEach((template) => {
currentTableData.value.push({
id: id,
MonitorIdx: j + 1,
...template,
});
});
}
tableDataMap.set(i, currentTableData);
console.log('tableDataMap after set', tableDataMap);
activeIndex.value++;
// 启动 timer2
let timer2 = setInterval(() => {
// 初始化 currentTableData
const currentTableData = ref<TableDataItem[]>([]);
if(i > 0){
const selectedTemplates = dataTemplates6;
for (let j = 0; j < channel.value[i]; j++) {
const id = (j + 1).toString();
selectedTemplates.forEach((template) => {
currentTableData.value.push({
id: id,
MonitorIdx: j + 1,
...template,
});
});
}
}else{
const selectedTemplates = dataTemplates5;
for (let j = 0; j < channel.value[i]; j++) {
const id = (j + 1).toString();
selectedTemplates.forEach((template) => {
currentTableData.value.push({
id: id,
MonitorIdx: j + 1,
...template,
});
});
}
}
tableDataMap.set(i, currentTableData);
clearInterval(timer2);
const currentDataRef = tableDataMap.get(activeIndex.value - 1);
console.log('activeIndex.value',activeIndex.value);
console.log('tableDataMap',tableDataMap);
console.log('currentDataRef',currentDataRef);
if (currentDataRef) {
const currentData = currentDataRef.value;
// 检查当前数据中有无不合格字段
const hasError = checkForErrors(currentData);
if (hasError) {
} else {
qualified.value++;
}
updateErrorState(activeIndex.value - 1, hasError);
}
activeIndex.value++;
// 设置标志变量为 true表示 timer2 已经完成
isTimer2Completed = true;
}, 3000);
// 等待 timer2 完成
while (!isTimer2Completed) {
// 这里可以添加一个短暂的等待,避免死循环
await new Promise(resolve => setTimeout(resolve, 100));
}
// 重置标志变量
isTimer2Completed = false;
}
// 启动 timer1
let timer1 = setInterval(() => {
active.value++;
if (active.value > 5) {
clearInterval(timer1);
}
}, 1000);
};
const handleSubmit2 = () => {
if (intervalId !== null) {
clearInterval(intervalId);
}
@@ -783,7 +777,7 @@ const handleSubmit = () => {
let timer2 = setInterval(() => {
active.value++
if (active.value++ > 4) {
if (active.value++ > 5) {
clearInterval(timer2)
}
}, 1000);
@@ -813,7 +807,7 @@ const handleSubmit = () => {
}
.dialog-content {
height: 500px;
height: 510px;
}
.el-tabs--border-card {

View File

@@ -6,57 +6,160 @@
style="width: 100%"
max-height="400px"
:span-method="objectSpanMethod">
<el-table-column prop="MonitorIdx" label="监测点序号"/>
<el-table-column prop="MonitorIdx" label="监测点序号" width="80"/>
<!-- <el-table-column prop="updateTime" label="上送时刻" width="180"/> -->
<!-- <el-table-column prop="deviceName" label="描述" /> -->
<el-table-column prop="deviceName" label="描述" width="90"/>
<el-table-column label="电压通道" >
<el-table-column prop="Ua" label="L1">
<el-table-column prop="UaData" label="数据(V)"/>
<el-table-column prop="UaData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UaData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UaData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UaChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.UaChannel === '不合格'">{{ scope.row.UaChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.UaChannel === '不合格'">
{{ scope.row.UaChannel }}
</el-tag>
<el-icon v-else-if="scope.row.UaChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UaChannel }}
</span>
<!-- <el-tag type="danger" v-if="scope.row.UaChannel === '不合格'">{{ scope.row.UaChannel }}</el-tag> -->
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ub" label="L2">
<el-table-column prop="UbData" label="数据(V)"/>
<el-table-column prop="UbData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UbData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UbData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UbChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.UbChannel === '不合格'">{{ scope.row.UbChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.UbChannel === '不合格'">
{{ scope.row.UbChannel }}
</el-tag>
<el-icon v-else-if="scope.row.UbChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UbChannel }}
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Uc" label="L3">
<el-table-column prop="UcData" label="数据(V)"/>
<el-table-column prop="UcData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UcData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UcData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UcChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.UcChannel === '不合格'">{{ scope.row.UcChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.UcChannel === '不合格'">
{{ scope.row.UcChannel }}
</el-tag>
<el-icon v-else-if="scope.row.UcChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UcChannel }}
</span>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column label="电流通道" >
<el-table-column prop="Ia" label="L1">
<el-table-column prop="IaData" label="数据(A)"/>
<el-table-column prop="IaData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IaData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IaData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IaChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.IaChannel === '不合格'">{{ scope.row.IaChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.IaChannel === '不合格'">
{{ scope.row.IaChannel }}
</el-tag>
<el-icon v-else-if="scope.row.IaChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IaChannel }}
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ib" label="L2">
<el-table-column prop="IbData" label="数据(A)"/>
<el-table-column prop="IbData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IbData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IbData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IbChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.IbChannel === '不合格'">{{ scope.row.IbChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.IbChannel === '不合格'">
{{ scope.row.IbChannel }}
</el-tag>
<el-icon v-else-if="scope.row.IbChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IbChannel }}
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ic" label="L3">
<el-table-column prop="IcData" label="数据(A)"/>
<el-table-column prop="IcData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IcData === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IcData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IcChannel" label="系数">
<template #default="scope">
<el-tag type="danger" v-if="scope.row.IcChannel === '不合格'">{{ scope.row.IcChannel }}</el-tag>
<el-tag type="danger" v-if="scope.row.IcChannel === '不合格'">
{{ scope.row.IcChannel }}
</el-tag>
<el-icon v-else-if="scope.row.IcChannel === '—'&& loading">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IcChannel }}
</span>
</template>
</el-table-column>
</el-table-column>
@@ -74,35 +177,35 @@
<script lang="ts" setup name="ErrorSystemDialog">
import { defineProps, defineEmits, reactive,watch,ref, Ref } from 'vue';
import { ElIcon, ElLoading, ElTag } from 'element-plus';
//import IndicatorTypeDialog from "@/views/machine/errorSystem/components/IndicatorTypeDialog.vue"; // 导入子组件
import {CirclePlus, Delete, EditPen,FolderOpened,CopyDocument} from '@element-plus/icons-vue'
import { useDictStore } from '@/stores/modules/dict'
const dictStore = useDictStore()
const props = defineProps<{
tableData: Array<{
id: string;
updateTime: string;
deviceName:string;
MonitorIdx:number;
UaData:number;
UaChannel:string;
UbData:number;
UbChannel:string;
UcData:number;
UcChannel:string;
IaData:number;
IaChannel:string;
IbData:number;
IbChannel:string;
IcData:number;
IcChannel:string;
Result: string;
deviceName?: string;
MonitorIdx: number;
UaData?: number | string;
UaChannel?: number | string;
UbData?: number | string;
UbChannel?: number | string;
UcData?: number | string;
UcChannel?: number | string;
IaData?: number | string;
IaChannel?: number | string;
IbData?: number | string;
IbChannel?: number | string;
IcData?: number | string;
IcChannel?: number | string;
Result?: string | string;
updateTime?: string;
}>
loading: boolean; // 定义 loading 属性
}>();
function objectSpanMethod({ row, column, rowIndex, columnIndex }: { row: any, column: any, rowIndex: number, columnIndex: number }) {
if (columnIndex === 0) {
if (rowIndex === 0 || rowIndex === 4 || rowIndex === 8 || rowIndex === 12) {
if (rowIndex % 4 === 0) {
return {
rowspan: 4,
colspan: 1,
@@ -114,6 +217,19 @@
};
}
}
if (columnIndex === 1) {
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1,
};
} else {
return {
rowspan: 0,
colspan: 0,
};
}
}
}
// const tableData = ref([
@@ -171,6 +287,11 @@
// },
// ])
// 监听 tableData 的变化
</script>
<style scoped>
@@ -205,4 +326,6 @@
overflow-y: auto; /* 允许垂直滚动 */
overflow-x: hidden; /* 隐藏水平滚动条 */
}
</style>