预检测

This commit is contained in:
sjl
2025-08-12 20:17:37 +08:00
parent 919e81da8b
commit 4e8a6300dd
3 changed files with 392 additions and 244 deletions

View File

@@ -42,22 +42,18 @@
:cell-style="{ textAlign: 'center' }"
style="width: 100%"
:style="{ height: '400px',maxHeight: '400px',overflow:'hidden'}">
<el-table-column prop="monitorNum" label="数据时标" width="180"/>
<el-table-column :label="`${deviceName}-${selectedChannels[deviceName] || '通道1'}`">
<el-table-column prop="Ua1" label="A相(V)">
</el-table-column>
<el-table-column prop="Ub1" label="B相(V)">
</el-table-column>
<el-table-column prop="Uc1" label="C相(V)">
</el-table-column>
<el-table-column prop="timeDev" label="数据时标" width="200"/>
<el-table-column prop="uaDev" label="A相(V)"/>
<el-table-column prop="ubDev" label="B相(V)"/>
<el-table-column prop="ucDev" label="C相(V)"/>
</el-table-column>
<el-table-column :label="formatStandardChannelLabel(getMappedStandardChannel(deviceName, selectedChannels[deviceName]))">
<el-table-column prop="Ua2" label="A相(V)">
</el-table-column>
<el-table-column prop="Ub2" label="B相(V)">
</el-table-column>
<el-table-column prop="Uc2" label="C相(V)">
</el-table-column>
<el-table-column prop="timeStdDev" label="数据时标" width="200"/>
<el-table-column prop="uaStdDev" label="A相(V)"/>
<el-table-column prop="uaStdDev" label="B相(V)"/>
<el-table-column prop="uaStdDev" label="C相(V)"/>
</el-table-column>
</el-table>
</el-tab-pane>
@@ -74,178 +70,201 @@ import { CircleCheck, CircleClose } from '@element-plus/icons-vue';
const dialogVisible = ref(false);
const activeTab = ref('channel1');
// 在 script setup 中定义接口
interface ChannelData {
devNum: string;
standardDevInfo: string;
dataList: {
timeDev: string | null;
uaDev: number | null;
ubDev: number | null;
ucDev: number | null;
timeStdDev: string | null;
uaStdDev: number | null;
ubStdDev: number | null;
ucStdDev: number | null;
}[];
}
interface DeviceData {
devName: string;
channelDataList: ChannelData[];
}
// 修改 testDataStructure 的类型声明
const testDataStructure = ref<Record<string, DeviceData>>({});
// 重构后的 testDataStructure
const testDataStructure = ref({
"被检1": {
devName: "被检设备1",
channelDataList: [
{
devNum: "1",
standardDevInfo: "标准设备1通道1",
dataList: [
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.234",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: null,
uaStdDev: null,
ubStdDev: null,
ucStdDev: null
},
{
timeDev: null,
uaDev: null,
ubDev: null,
ucDev: null,
timeStdDev: "2025-09-02 14:00:02.237",
uaStdDev: 57.74,
ubStdDev: 57.74,
ucStdDev: 57.74
}
]
},
{
devNum: "2",
standardDevInfo: "标准设备2通道4",
dataList: [
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
}
]
}
]
},
"被检2": {
devName: "被检设备2",
channelDataList: [
{
devNum: "1",
standardDevInfo: "标准设备1通道1",
dataList: [
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.234",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.234",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.237",
uaStdDev: 57.74,
ubStdDev: 57.74,
ucStdDev: 57.74
}
]
},
{
devNum: "3",
standardDevInfo: "标准设备2通道4",
dataList: [
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
},
{
timeDev: "2025-09-02 14:00:02.231",
uaDev: 57.74,
ubDev: 57.74,
ucDev: 57.74,
timeStdDev: "2025-09-02 14:00:02.231",
uaStdDev: 57.73,
ubStdDev: 57.73,
ucStdDev: 57.74
}
]
}
]
}
});
// const testDataStructure = ref({
// "被检1": {
// devName: "被检设备1",
// channelDataList: [
// {
// devNum: "1",
// standardDevInfo: "标准设备1通道1",
// dataList: [
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.234",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: null,
// uaStdDev: null,
// ubStdDev: null,
// ucStdDev: null
// },
// {
// timeDev: null,
// uaDev: null,
// ubDev: null,
// ucDev: null,
// timeStdDev: "2025-09-02 14:00:02.237",
// uaStdDev: 57.74,
// ubStdDev: 57.74,
// ucStdDev: 57.74
// }
// ]
// },
// {
// devNum: "2",
// standardDevInfo: "标准设备2通道4",
// dataList: [
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// }
// ]
// }
// ]
// },
// "被检2": {
// devName: "被检设备2",
// channelDataList: [
// {
// devNum: "1",
// standardDevInfo: "标准设备1通道1",
// dataList: [
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.234",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.234",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.237",
// uaStdDev: 57.74,
// ubStdDev: 57.74,
// ucStdDev: 57.74
// }
// ]
// },
// {
// devNum: "3",
// standardDevInfo: "标准设备2通道4",
// dataList: [
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// },
// {
// timeDev: "2025-09-02 14:00:02.231",
// uaDev: 57.74,
// ubDev: 57.74,
// ucDev: 57.74,
// timeStdDev: "2025-09-02 14:00:02.231",
// uaStdDev: 57.73,
// ubStdDev: 57.73,
// ucStdDev: 57.74
// }
// ]
// }
// ]
// }
// });
// 每个设备选中的通道
const selectedChannels = ref<Record<string, string>>({});
// 通道映射关系:被检设备通道 -> 标准设备通道
const channelMapping = ref<Record<string, Record<string, string>>>({
'被检1': {
'通道1': '标准设备1通道2',
'通道2': '标准设备2通道4',
},
'被检2': {
'通道1': '标准设备1通道3',
'通道3': '标准设备2通道1'
}
// '被检1': {
// '通道1': '标准设备1通道2',
// '通道2': '标准设备2通道4',
// },
// '被检2': {
// '通道1': '标准设备1通道3',
// '通道3': '标准设备2通道1'
// }
});
// 每个设备的表格数据
@@ -301,13 +320,14 @@ const generateTableData = (deviceName: string, dutChannel: string) => {
// 生成表格数据
return channelData.dataList.map(dataItem => {
return {
monitorNum: dataItem.timeDev || dataItem.timeStdDev || '',
Ua1: dataItem.uaDev !== null ? dataItem.uaDev : '/',
Ub1: dataItem.ubDev !== null ? dataItem.ubDev : '/',
Uc1: dataItem.ucDev !== null ? dataItem.ucDev : '/',
Ua2: dataItem.uaStdDev !== null ? dataItem.uaStdDev : '/',
Ub2: dataItem.ubStdDev !== null ? dataItem.ubStdDev : '/',
Uc2: dataItem.ucStdDev !== null ? dataItem.ucStdDev : '/'
timeDev: dataItem.timeDev !== null ? dataItem.timeDev : '/',
uaDev: dataItem.uaDev !== null ? dataItem.uaDev : '/',
ubDev: dataItem.ubDev !== null ? dataItem.ubDev : '/',
ucDev: dataItem.ucDev !== null ? dataItem.ucDev : '/',
timeStdDev: dataItem.timeStdDev !== null ? dataItem.timeStdDev : '/',
uaStdDev: dataItem.uaStdDev !== null ? dataItem.uaStdDev : '/',
ubStdDev: dataItem.ubStdDev !== null ? dataItem.ubStdDev : '/',
ucStdDev: dataItem.ucStdDev !== null ? dataItem.ucStdDev : '/'
};
});
};
@@ -339,10 +359,49 @@ const initAllTableData = () => {
});
};
const open = async (mapping : Record<string, Record<string, string>>) => {
console.log('mapping11111111:', mapping);
console.log('mapping22222222:',channelMapping);
//channelMapping.value = mapping;
const open = async (mapping : Record<string, Record<string, string>>,data : any) => {
let parsedData = data;
// 如果 data 是字符串,先解析为对象
if (typeof data === 'string') {
try {
parsedData = JSON.parse(data);
} catch (error) {
console.error('数据解析失败:', error);
ElMessage.error('数据格式错误');
return;
}
}
// 转换数据格式以匹配组件期望的格式
const convertedData: Record<string, DeviceData> = {};
// 假设传入的数据是一个数组,需要转换为以设备名为键的对象
if (Array.isArray(parsedData)) {
parsedData.forEach((deviceItem: any) => {
const deviceName = deviceItem.devName;
convertedData[deviceName] = {
devName: deviceName,
channelDataList: deviceItem.channelDataList.map((channel: any) => ({
devNum: channel.devNum,
standardDevInfo: channel.standardDevInfo,
dataList: channel.dataList.map((dataItem: any) => ({
timeDev: dataItem.timeDev,
uaDev: dataItem.uaDev,
ubDev: dataItem.ubDev,
ucDev: dataItem.ucDev,
timeStdDev: dataItem.timeStdDev,
uaStdDev: dataItem.uaStdDev,
ubStdDev: dataItem.ubStdDev,
ucStdDev: dataItem.ucStdDev
}))
}))
};
});
} else if (parsedData && typeof parsedData === 'object') {
// 如果已经是期望的格式,直接使用
Object.assign(convertedData, parsedData);
}
testDataStructure.value = convertedData;
channelMapping.value = mapping;
dialogVisible.value = true;
// 初始化数据和状态
initAllTableData();