From c4a75976a440c7ed2e636fb133318ddbecf554c9 Mon Sep 17 00:00:00 2001 From: zhouyang Date: Wed, 28 Jan 2026 20:09:59 +0800 Subject: [PATCH] =?UTF-8?q?update:=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=88=86=E6=9E=90=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/taskDetail/taskCurve.vue | 2 +- .../components/analysisDataDialog.vue | 204 ++++++++++-------- .../data/analysis/components/cloudImage.vue | 139 +++++++++++- .../data/analysis/components/curveResult.vue | 15 +- .../analysis/components/reportComparison.vue | 199 ++++++++++------- src/views/data/analysis/index.vue | 2 +- 6 files changed, 391 insertions(+), 170 deletions(-) diff --git a/src/components/taskDetail/taskCurve.vue b/src/components/taskDetail/taskCurve.vue index 541d7692..d1039d9e 100644 --- a/src/components/taskDetail/taskCurve.vue +++ b/src/components/taskDetail/taskCurve.vue @@ -368,7 +368,7 @@ watch( fileName: '', startTime: '', endTime: '', - type: NODE_TYPE.TASK, + level: NODE_TYPE.TASK, }; } }, diff --git a/src/views/data/analysis/components/analysisDataDialog.vue b/src/views/data/analysis/components/analysisDataDialog.vue index 1c783daf..5b419f63 100644 --- a/src/views/data/analysis/components/analysisDataDialog.vue +++ b/src/views/data/analysis/components/analysisDataDialog.vue @@ -96,6 +96,7 @@ v-if="showComponents" :check-task-info="resultData" :cloumn-width="cloumnWidth" + :checkType="analysisTypes" > @@ -142,11 +143,12 @@ import dayjs from 'dayjs'; import { ElMessage } from 'element-plus'; import { getAllRunResultByTaskIdApi } from '@/api/project/analysis'; import { getSimulationTaskFileApi } from '@/api/data/dataAnalysis'; -import { getRunPerformanceApi } from '@/api/task/taskpool'; +import { getRunPerformanceApi, getTaskPerformanceApi } from '@/api/task/taskpool'; import { exportToPdf } from '@/utils/exportPdf'; import { statusMapFun5, statusMapFun6 } from '@/components/common/statusDot/statusMap'; import { useDict } from '@/utils/useDict'; import StatusDot from '@/components/common/statusDot/index.vue'; +import { FILE_TYPE } from '@/utils/enum/file'; const { RESULT_ACHIEVE_STATUS, TASK_ACHIEVE_STATUS, PERFORMANCE_TYPE, PERFORMANCE_UNIT } = useDict( 'RESULT_ACHIEVE_STATUS', @@ -203,6 +205,7 @@ const changeChceckFun = async () => { }, 50); }; +const analysisTypes = ref('仿真任务'); const getConvertData = async (flag: any, type: any) => { let data: any = []; // const tasklist = [ @@ -213,14 +216,14 @@ const getConvertData = async (flag: any, type: any) => { // id: 'simu_a308aaba-db9e-40fd-9870-062a177f6faf78765', // }, // ]; - + analysisTypes.value = type; const tasklist = checktableData.value; if (flag === 'numericalResult') { if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.performances; + const list = await getTaskPerformanceFun(tasklist[i]); data = data.concat(list); } } else { @@ -229,7 +232,6 @@ const getConvertData = async (flag: any, type: any) => { data = data.concat(list); } } - performanceData.value = data; } else { performanceData.value = checktableData.value; @@ -239,19 +241,18 @@ const getConvertData = async (flag: any, type: any) => { if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; - data = data.concat(list); + const datas = await getSimulationTaskFileFun(tasklist[i], 'task', FILE_TYPE.MODEL_3D_FILE); + modelData.value = modelData.value.concat(datas); } } else { data = checktableData.value; - } + const runs = data || []; - const runs = data || []; - - if (runs.length) { - for (let i = 0; i < runs.length; i++) { - const datas = await getFileInfo(runs[i], 1); - modelData.value = modelData.value.concat(datas); + if (runs.length) { + for (let i = 0; i < runs.length; i++) { + const datas = await getFileInfo(runs[i], FILE_TYPE.MODEL_3D_FILE); + modelData.value = modelData.value.concat(datas); + } } } } else { @@ -262,17 +263,20 @@ const getConvertData = async (flag: any, type: any) => { if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; - data = data.concat(list); + const datas = await getSimulationTaskFileFun( + tasklist[i], + 'task', + FILE_TYPE.CALCULATION_FILE + ); + calculationFileData.value = calculationFileData.value.concat(datas); } } else { - data = checktableData.value; - } - const runs = data || []; - if (runs.length) { - for (let i = 0; i < runs.length; i++) { - const datas = await getFileInfo(runs[i], 3); - calculationFileData.value = calculationFileData.value.concat(datas); + const runs = checktableData.value || []; + if (runs.length) { + for (let i = 0; i < runs.length; i++) { + const datas = await getFileInfo(runs[i], 3); + calculationFileData.value = calculationFileData.value.concat(datas); + } } } } else { @@ -280,29 +284,19 @@ const getConvertData = async (flag: any, type: any) => { } } else if (flag === 'result') { resultData.value = []; - if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; - data = data.concat(list); + const datas = await getSimulationTaskFileFun(tasklist[i], 'task', FILE_TYPE.PNG_FILE); + resultData.value = resultData.value.concat(datas); } } else { - data = checktableData.value; - } - const runs = data || []; - if (runs.length) { - for (let i = 0; i < runs.length; i++) { - const datas = await getFileInfo(runs[i], 5); - resultData.value = resultData.value.concat(datas); - - // const obj = { - // ...runs[i], - // runImgResult: datas, - // }; - - // resultData.value.push(obj); - // resultData.value = resultData.value.concat(datas); + const runs = checktableData.value || []; + if (runs.length) { + for (let i = 0; i < runs.length; i++) { + const datas = await getFileInfo(runs[i], 5); + resultData.value = resultData.value.concat(datas); + } } } } else { @@ -313,17 +307,18 @@ const getConvertData = async (flag: any, type: any) => { if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; - data = data.concat(list); + // const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; + // data = data.concat(list); + const datas = await getSimulationTaskFileFun(tasklist[i], 'task', FILE_TYPE.CANVAS_FILE); + curveData.value = curveData.value.concat(datas); } } else { - data = checktableData.value; - } - const runs = data || []; - if (runs.length) { - for (let i = 0; i < runs.length; i++) { - const datas = await getFileInfo(runs[i], 4); - curveData.value = curveData.value.concat(datas); + const runs = checktableData.value || []; + if (runs.length) { + for (let i = 0; i < runs.length; i++) { + const datas = await getFileInfo(runs[i], 4); + curveData.value = curveData.value.concat(datas); + } } } } else { @@ -334,17 +329,18 @@ const getConvertData = async (flag: any, type: any) => { if (type === '仿真任务' || type === '仿真算例') { if (type === '仿真任务') { for (let i = 0; i < tasklist.length; i++) { - const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; - data = data.concat(list); + // const list = (await getAllRunResultByTaskIdFun(tasklist[i].uuid))?.runs; + // data = data.concat(list); + const datas = await getSimulationTaskFileFun(tasklist[i], 'task', FILE_TYPE.CANVAS_FILE); + reportData.value = reportData.value.concat(datas); } } else { - data = checktableData.value; - } - const runs = data || []; - if (runs.length) { - for (let i = 0; i < runs.length; i++) { - const datas = await getFileInfo(runs[i], 2); - reportData.value = reportData.value.concat(datas); + const runs = checktableData.value || []; + if (runs.length) { + for (let i = 0; i < runs.length; i++) { + const datas = await getFileInfo(runs[i], 2); + reportData.value = reportData.value.concat(datas); + } } } } else { @@ -355,41 +351,41 @@ const getConvertData = async (flag: any, type: any) => { return data || []; }; -const getAllRunResultByTaskIdFun = async (id: any) => { - const param = { - taskId: id, - }; - try { - const res: any = await getAllRunResultByTaskIdApi(param); - if (res && res.code === 200) { - let performanceList: any = []; +// const getAllRunResultByTaskIdFun = async (id: any) => { +// const param = { +// taskId: id, +// }; +// try { +// const res: any = await getAllRunResultByTaskIdApi(param); +// if (res && res.code === 200) { +// let performanceList: any = []; - const runs: any = []; - if (res.data?.runResultResp?.length) { - for (let i = 0; i < res.data?.runResultResp.length; i++) { - performanceList = performanceList.concat(res.data.runResultResp[i].simulationPerformance); +// const runs: any = []; +// if (res.data?.runResultResp?.length) { +// for (let i = 0; i < res.data?.runResultResp.length; i++) { +// performanceList = performanceList.concat(res.data.runResultResp[i].simulationPerformance); - const obj: any = { - ...res.data.runResultResp[i].simulationRun, - taskName: res.data.runResultResp[i]?.simulationPerformance[0]?.taskName, - }; +// const obj: any = { +// ...res.data.runResultResp[i].simulationRun, +// taskName: res.data.runResultResp[i]?.simulationPerformance[0]?.taskName, +// }; - runs.push(obj); - } - } +// runs.push(obj); +// } +// } - return { - performances: performanceList, - runs, - }; - } - } catch {} -}; +// return { +// performances: performanceList, +// runs, +// }; +// } +// } catch {} +// }; const analysisTypeList = ref([ { value: 'model', - name: '模型文件', + name: '3D模型', includes: ['仿真任务', '仿真算例', '模型文件'], }, { @@ -477,6 +473,44 @@ const getRunPerformanceFn = async (data: any) => { } }; +const getSimulationTaskFileFun = async (data: any, level: any, fileBizType: any) => { + let result: any = []; + const param = { + current: 1, + size: 999, + uuid: data.uuid, + fileBizType: fileBizType, + fileName: '', + startTime: '', + endTime: '', + level: level, + }; + + try { + const res: any = await getSimulationTaskFileApi(param); + if (res && res.code === 200) { + result = res.data.data; + return result; + } else { + return result; + } + } catch { + return result; + } +}; + +const getTaskPerformanceFun = async (data: any) => { + const res: any = await getTaskPerformanceApi({ + taskId: data.uuid, + }); + + if (res && res.code === 200) { + const list = res.data; + + return list; + } +}; + watch( () => props.analysisData, async (newVal) => { diff --git a/src/views/data/analysis/components/cloudImage.vue b/src/views/data/analysis/components/cloudImage.vue index 7ddfd510..136ccdc3 100644 --- a/src/views/data/analysis/components/cloudImage.vue +++ b/src/views/data/analysis/components/cloudImage.vue @@ -1,5 +1,5 @@ diff --git a/src/views/data/analysis/index.vue b/src/views/data/analysis/index.vue index 15e94171..cf3cec1d 100644 --- a/src/views/data/analysis/index.vue +++ b/src/views/data/analysis/index.vue @@ -450,7 +450,7 @@ const modelData = ref({ 模型文件: { tableName: 'RESULT_MODEL', api: getSimulationTaskFileFun, - params: { model: '模型文件', fileBizType: 1 }, + params: { model: '模型文件', fileBizType: 13 }, exportApi: exportTaskFileByScriptApi, exportFileName: '模型文件', exportParams: createFileExportParams('模型文件', 1),