diff --git a/frontend/src/api/check/interface/index.ts b/frontend/src/api/check/interface/index.ts index 9357b59..d6501f0 100644 --- a/frontend/src/api/check/interface/index.ts +++ b/frontend/src/api/check/interface/index.ts @@ -34,9 +34,9 @@ export namespace CheckData { // 第几次谐波 //num: number | null, //符合、不符合 - isData: number, + isData?: number, //最大误差值 - radius: string, + radius?: string, } /** @@ -45,16 +45,16 @@ export namespace CheckData { export interface CheckResult { aStd?: number, aData?: number, - aError?: number, + aError?: string, bStd?: number, bData?: number, - bError?: number, + bError?: string, cStd?: number, cData?: number, - cError?: number, + cError?: string, tStd?: number, tData?: number, - tError?: number, + tError?: string, //最大误差值 maxError?: string, diff --git a/frontend/src/api/check/test/index.ts b/frontend/src/api/check/test/index.ts index 7ba437c..aaaca9b 100644 --- a/frontend/src/api/check/test/index.ts +++ b/frontend/src/api/check/test/index.ts @@ -42,5 +42,5 @@ export const getTableData = (params: { chnNum: string, scriptType: string | null }) => { - return http.post("/result/tableData/", params, {loading: false}); + return http.post("/result/resultData/", params, {loading: false}); } \ No newline at end of file diff --git a/frontend/src/views/home/components/dataCheckResultTable.vue b/frontend/src/views/home/components/dataCheckResultTable.vue index 35b32ef..dcedfdb 100644 --- a/frontend/src/views/home/components/dataCheckResultTable.vue +++ b/frontend/src/views/home/components/dataCheckResultTable.vue @@ -1,7 +1,7 @@ @@ -42,32 +43,14 @@ - - - - - - - - - - - - - - - - + @@ -77,11 +60,9 @@ import {defineProps} from 'vue'; import {CheckData} from "@/api/check/interface"; const {tableData} = defineProps<{ - info: { title: string, name: string }[], tableData: CheckData.CheckResult[], }>(); -const activeNames = ref(["Voltage"]) const unit = computed(() => { return "V" diff --git a/frontend/src/views/home/components/dataCheckSingleChannelSingleTestPopup.vue b/frontend/src/views/home/components/dataCheckSingleChannelSingleTestPopup.vue index 0670211..127ae6f 100644 --- a/frontend/src/views/home/components/dataCheckSingleChannelSingleTestPopup.vue +++ b/frontend/src/views/home/components/dataCheckSingleChannelSingleTestPopup.vue @@ -22,12 +22,6 @@ :value="item.value"/> - - - - - - @@ -58,24 +52,32 @@
- 当前检测项目: - - - - - - - +
+ 当前检测项目: + + + + +
+ + + + + + + + + +
- + @@ -113,7 +115,7 @@ const checkStore = useCheckStore() const visible = ref(false) // 格式化数字 -const fixed = 4; +const fixed = 6; // 表单数据 const formContent = reactive({ @@ -126,7 +128,11 @@ const formContent = reactive({ // 当前选中的谐波次数 const currentHarmNum = ref("-1") // 谐波次数列表 -const harmNumList = reactive([]) +const harmNumList = reactive<{ value: string, label: string }[]>([]) +// 当前选中的检测项 +const currentCheckItem = ref("") +// 检测项列表 +const checkList = reactive<{ value: string, label: string }[]>([]) let deviceId: string = '' let scriptType: string | null = null @@ -141,7 +147,6 @@ let switchItem = 0 let treeDataUnqualified: CheckData.TreeItem[] = [] let treeDataAll: CheckData.TreeItem[] = [] - // 左侧树被选中的叶子节点id const checkIndex = ref('') @@ -153,12 +158,14 @@ const currentDesc = ref(''); const activeTab = ref('resultTab') //存放相应的表格数据 -let resTableData: { resultData: Map, rawData: Map } = {} +let resTableData: { resultData: Map, rawData: Map } = {resultData: new Map(), rawData: new Map()} // 检测结果表格数据 const checkResultData = reactive([]) -const infoMsg = reactive<{ title: string, name: string }[]>([]) +const popoverWidth: ComputedRef = computed(() => { + return `${680 - currentScriptTypeName.value.length * 16 - (harmNumList.length || checkList.length ? 120 : 0)}px` +}) // 原始数据表格数据 const rawTableData = reactive([]) @@ -192,101 +199,6 @@ watch(() => formContent.chnNum, async (newVal, oldVal) => { code: checkStore.planCode }) treeDataAll = resTreeDataTemp - // treeDataAll = [ - // { - // scriptTypeName: "频率准确度检测", - // sourceDesc: null, - // harmNum: null, - // index: null, - // fly: null, - // children: [ - // { - // scriptTypeName: "额定条件下频率准确度测试", - // sourceDesc: null, - // harmNum: null, - // index: null, - // fly: null, - // children: [ - // { - // scriptTypeName: "频率=42.5Hz", - // sourceDesc: "频率=42.5Hz", - // harmNum: null, - // index: 11, - // fly: 1, - // children: null - // }, - // { - // scriptTypeName: "频率=50Hz", - // sourceDesc: "频率=50Hz", - // harmNum: null, - // index: 12, - // fly: 1, - // children: null - // }, - // { - // scriptTypeName: "频率=50.05Hz", - // sourceDesc: "频率=50.05Hz", - // harmNum: null, - // index: 13, - // fly: 1, - // children: null - // }, - // { - // scriptTypeName: "频率=57.5Hz", - // sourceDesc: "频率=57.5Hz", - // harmNum: null, - // index: 14, - // fly: 1, - // children: null - // } - // ] - // }, - // { - // scriptTypeName: "单影响量下频率准确度测试", - // sourceDesc: null, - // harmNum: null, - // index: null, - // fly: null, - // children: [ - // { - // scriptTypeName: "电压幅值对频率测量的影响", - // sourceDesc: null, - // harmNum: null, - // index: null, - // fly: null, - // children: [ - // { - // scriptTypeName: "10%Un对频率=50.05Hz的影响", - // sourceDesc: "10%Un对频率=50.05Hz的影响", - // harmNum: null, - // index: 15, - // fly: 2, - // children: null - // } - // ] - // }, - // { - // scriptTypeName: "谐波对频率测量的影响", - // sourceDesc: null, - // harmNum: null, - // index: null, - // fly: null, - // children: [ - // { - // scriptTypeName: "叠加多次谐波对频率=50.05Hz的影响", - // sourceDesc: "叠加多次谐波对频率=50.05Hz的影响", - // harmNum: null, - // index: 16, - // fly: 1, - // children: null - // } - // ] - // } - // ] - // }, - // ] - // } - // ] let treeDataTemp = JSON.parse(JSON.stringify(treeDataAll)) filterTree(treeDataTemp, 2) @@ -297,14 +209,23 @@ watch(() => formContent.chnNum, async (newVal, oldVal) => { } }) + watch(currentHarmNum, (newVal, oldVal) => { console.log("谐波次数", newVal); - if(newVal !== '-1'){ + if (newVal !== '-1') { let resCheckResult: CheckData.ResCheckResult = resTableData.resultData.get(newVal.toString()) setCheckResultData(resCheckResult) } }) +watch(currentCheckItem, (newVal, oldVal) => { + console.log("当前检测项", newVal); + if (newVal) { + let resCheckResult: CheckData.ResCheckResult = resTableData.resultData.get(newVal.toString() === 'Voltage' ? '电压幅值' : '持续时间') + setCheckResultData(resCheckResult) + } +}) + const handleSwitchChange = async (data: any) => { console.log("切换不合格测试项、全部测试项", data); @@ -342,98 +263,97 @@ const updateTableData = async () => { // resTableData =data let resultData = new Map() - // resultData.set("频率", [{ + // resultData.set("频率", { // dataT: { - // data: 57.7401, - // resultData: 57.7301, + // data: 57.740001, + // resultData: 57.730001, // }, // dataB: { - // data: 57.7401, - // resultData: 57.7301, + // data: 57.740001, + // resultData: 57.730001, // }, // dataC: { - // data: 57.7401, - // resultData: 57.7301, + // data: 57.740001, + // resultData: 57.730001, // }, // radius: 0.05774, - // isData: '符合', - // }]) + // isData: 1, + // }) - // resultData.set('3', [{ - // dataA: { - // data: 57.7401, - // resultData: 57.7301, - // }, - // dataB: { - // data: 57.7401, - // resultData: 57.7301, - // }, - // dataC: { - // data: 57.7401, - // resultData: 57.7301, - // }, - // radius: 0.05774, - // isData: '符合', - // }]) - // resultData.set('5', [{ - // dataA: { - // data: 57.7402, - // resultData: 57.7301, - // }, - // dataB: { - // data: 57.7402, - // resultData: 57.7301, - // }, - // dataC: { - // data: 57.7402, - // resultData: 57.7301, - // }, - // radius: 0.05774, - // isData: '符合', - // }]) - // resultData.set('7', [{ - // dataA: { - // data: 57.7403, - // resultData: 57.7301, - // }, - // dataB: { - // data: 57.7403, - // resultData: 57.7301, - // }, - // dataC: { - // data: 57.7403, - // resultData: 57.7301, - // }, - // radius: 0.05774, - // isData: '符合', - // }]) - - resultData.set("电压幅值", [{ - dataT: { - data: 57.7401, - resultData: 57.7301, + resultData.set('3', { + dataA: { + data: 57.740001, + resultData: 57.730001, + }, + dataB: { + data: 57.740001, + resultData: 57.730001, + }, + dataC: { + data: 57.740001, + resultData: 57.730001, }, radius: 0.05774, - isData: '符合', - }]) - resultData.set("持续时间", [{ - dataT: { - data: 57.7402, - resultData: 57.7302, + isData: 1, + }) + resultData.set('5', { + dataA: { + data: 57.740002, + resultData: 57.730001, + }, + dataB: { + data: 57.740002, + resultData: 57.730001, + }, + dataC: { + data: 57.740002, + resultData: 57.730001, }, radius: 0.05774, - isData: '符合', - }]) + isData: 1, + }) + resultData.set('7', { + dataA: { + data: 57.740003, + resultData: 57.730001, + }, + dataB: { + data: 57.740003, + resultData: 57.730001, + }, + dataC: { + data: 57.740003, + resultData: 57.730001, + }, + radius: 0.05774, + isData: 4, + }) + + // resultData.set("电压幅值", { + // dataT: { + // data: 57.740001, + // resultData: 57.730001, + // }, + // radius: 0.05774, + // isData: 1, + // }) + // resultData.set("持续时间", { + // dataT: { + // data: 57.740002, + // resultData: 57.730002, + // }, + // radius: 0.05774, + // isData: 2, + // }) let rawData = new Map() resTableData = { - resultData: resultData, - rawData: rawData + resultData, + rawData } - let resCheckResult: CheckData.ResCheckResult = [] - let tempInfoMsg: { title: string, name: string } = [] + let resCheckResult: CheckData.ResCheckResult = {} if (resTableData.resultData.size === 1) { resCheckResult = resTableData.resultData.values().next().value @@ -443,35 +363,35 @@ const updateTableData = async () => { setCheckResultData(resCheckResult) } else { if (resTableData.resultData.get('电压幅值') || resTableData.resultData.get('持续时间')) { + let tempCheckList = [] if (resTableData.resultData.get('电压幅值')) { - tempInfoMsg.push({title: '电压幅值', name: 'Voltage'}) - resCheckResult.push(...resTableData.resultData.get('电压幅值')) + tempCheckList.push({value: 'Voltage', label: '电压幅值'}) + resCheckResult = resTableData.resultData.get('电压幅值') } if (resTableData.resultData.get('持续时间')) { - tempInfoMsg.push({title: '持续时间', name: 'Duration'}) - resCheckResult.push(...resTableData.resultData.get('持续时间')) + tempCheckList.push({value: 'Duration', label: '持续时间'}) + resCheckResult = resTableData.resultData.get('持续时间') } + + Object.assign(checkList, tempCheckList) + currentCheckItem.value = checkList[0].value + Object.assign(harmNumList, []) currentHarmNum.value = '-1' - Object.assign(infoMsg, tempInfoMsg) - - setCheckResultData(resCheckResult) + //setCheckResultData(resCheckResult) } else { - let tempHarmNumList = [] - resTableData.resultData.forEach((value, key) => { - tempHarmNumList.push({ - value: key, - label: key - }) - }) + let tempHarmNumList: { value: string, label: string }[] = [] + for (let [key, value] of resTableData.resultData) { + tempHarmNumList.push({value: key, label: key}) + } + Object.assign(harmNumList, tempHarmNumList) currentHarmNum.value = harmNumList[0].value } } // setCheckResultData(resCheckResult) - Object.assign(rawTableData, [ { updateTime: "2024-10-10 09:30:00", @@ -610,19 +530,6 @@ const open = async (_deviceId: string, chnNum: string, _scriptType: string | nul scriptType }) - // 数据处理 - // let resFormContent = { - // scriptName: 'Q/GDW 10650.4-2021 模拟式', - // errorSysName: 'Q/GDW 10650.2-2021', - // dataRule: '505f063f9f91ab108d895a9fe96b5dce', - // deviceName: '被检设备1', - // chnList: [ - // {value: '1', label: '1'}, - // {value: '2', label: '0'}, - // {value: '3', label: '1'}, - // {value: '4', label: '0'}], - // } - chnList = resFormContent.chnList.map((item: { value: string, label: string }) => ({ value: item.value, label: item.label == '1' ? `${item.value}` : `${item.value}(不符合)` @@ -656,7 +563,6 @@ const close = () => { Object.assign(harmNumList, []) currentHarmNum.value = '-1' Object.assign(checkResultData, []) - Object.assign(infoMsg, []) Object.assign(rawTableData, []) defaultExpandedKeys = [] checkIndex.value = '' @@ -668,34 +574,42 @@ const close = () => { visible.value = false; }; -const setCheckResultData = (data: CheckData.ResCheckResult[]) => { +const setCheckResultData = (data: CheckData.ResCheckResult) => { + // debugger let result: CheckData.CheckResult[] = [] - data.forEach((item: CheckData.ResCheckResult) => { - let temp: CheckData.CheckResult = { - aStd: item.dataA?.resultData, - aData: item.dataA?.data, - aError: Math.abs(item.dataA?.data - item.dataA?.resultData).toFixed(fixed), - bStd: item.dataB?.resultData, - bData: item.dataB?.data, - bError: Math.abs(item.dataB?.data - item.dataB?.resultData).toFixed(fixed), - cStd: item.dataC?.resultData, - cData: item.dataC?.data, - cError: Math.abs(item.dataC?.data - item.dataC?.resultData).toFixed(fixed), - tStd: item.dataT?.resultData, - tData: item.dataT?.data, - tError: Math.abs(item.dataT?.data - item.dataT?.resultData).toFixed(fixed), + if (data.dataA && data.dataB && data.dataC) { + result.push({ + aStd: data.dataA?.resultData, + aData: data.dataA?.data, + aError: getError(data.dataA?.resultData, data.dataA?.data), + bStd: data.dataB?.resultData, + bData: data.dataB?.data, + bError: getError(data.dataA?.resultData, data.dataA?.data), + cStd: data.dataC?.resultData, + cData: data.dataC?.data, + cError: getError(data.dataA?.resultData, data.dataA?.data), + + maxError: data.radius, + result: data.isData, + }) + } + + if (data.dataT) { + result.push({ + tStd: data.dataT?.resultData, + tData: data.dataT?.data, + tError: getError(data.dataT?.resultData, data.dataT?.data), + maxError: data.radius, + result: data.isData, + }) + } - maxError: item.radius, - result: item.isData, - } - result.push(temp) - }) Object.assign(checkResultData, result) } -// const toFixed = (num: number, pow: number): string => { -// return Math.floor(num * Math.pow(10, pow)) / Math.pow(10, pow) -// } +const getError = (num1: number, num2: number): string => { + return Math.abs(num1 - num2).toFixed(fixed) +} const findFirstLeafNode = (node: any): any => { if (!node.children || node.children.length === 0) { return node; @@ -801,6 +715,8 @@ defineExpose({ flex: 1; .content-right-title { + display: flex; + padding: 10px 0; margin-top: 10px; line-height: 1.5;