From 707a673b5b89f940b3850b75f1ca4bac60c2fa9f Mon Sep 17 00:00:00 2001 From: sladro Date: Thu, 18 Sep 2025 19:21:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0PDMS=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=BD=93=E5=89=8D=E6=A8=A1=E5=9E=8B=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E7=BB=9F=E4=B8=80=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 扩展PDMS API服务添加getCurrentModel方法,调用真实API接口 - 修改PDMS模型查看器使用props接收真实API数据 - 统一CAD状态管理,所有软件使用setCurrentProjectName方法 - 修复DashboardView中PdmsModelViewer缺失modelData传递问题 - 确保数据传递层级正确,避免undefined访问错误 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/components/layout/CadSidebar.vue | 18 ++++--- src/components/model/PdmsModelViewer.vue | 60 +++++++++--------------- src/services/pdmsApi.js | 17 ++++++- src/stores/cad.js | 8 +++- src/views/DashboardView.vue | 2 +- 5 files changed, 52 insertions(+), 53 deletions(-) diff --git a/src/components/layout/CadSidebar.vue b/src/components/layout/CadSidebar.vue index 6d657bf..0aa07fb 100644 --- a/src/components/layout/CadSidebar.vue +++ b/src/components/layout/CadSidebar.vue @@ -143,23 +143,21 @@ const handleOpenModel = async () => { if (connectedCAD.id === 'creo') { const result = await creoApi.getCurrentModel() if (result.success) { - cadStore.currentProjectName = result.data.data.fileName + cadStore.setCurrentProjectName(result.data.data.fileName) emit('show-model-viewer', result.data) } } else if (connectedCAD.id === 'revit') { const result = await revitApi.getCurrentModel() if (result.success) { - cadStore.currentProjectName = result.data.data.project.name + cadStore.setCurrentProjectName(result.data.data.project.name) emit('show-model-viewer', result.data.data) } } else if (connectedCAD.id === 'pdms') { - // PDMS模拟数据,直接显示工厂设计分析界面 - emit('show-model-viewer', { - data: { - software: 'pdms', - connected: true - } - }) + const result = await pdmsApi.getCurrentModel() + if (result.success) { + cadStore.setCurrentProjectName(result.data.data.ProjectInfo.ProjectName) + emit('show-model-viewer', result.data.data) + } } } else { // 打开文件 - 使用ElementPlus输入框 @@ -180,7 +178,7 @@ const handleOpenModel = async () => { // 第二步:获取当前模型详细信息 const modelResult = await creoApi.getCurrentModel() if (modelResult.success) { - cadStore.currentProjectName = modelResult.data.data.fileName + cadStore.setCurrentProjectName(modelResult.data.data.fileName) emit('show-model-viewer', modelResult.data) } } diff --git a/src/components/model/PdmsModelViewer.vue b/src/components/model/PdmsModelViewer.vue index 3a19df3..f17f2a4 100644 --- a/src/components/model/PdmsModelViewer.vue +++ b/src/components/model/PdmsModelViewer.vue @@ -11,7 +11,7 @@

PDMS 工厂设计分析中心

当前项目:{{ projectData.ProjectName }}

- {{ projectData.ModelLoaded ? '模型已加载' : '模型未加载' }} + {{ modelLoaded ? '模型已加载' : '模型未加载' }} @@ -39,22 +39,22 @@

总元素数

-
{{ modelStats.TotalElements.toLocaleString() }}
+
{{ (modelStats.TotalElements || 0).toLocaleString() }}
工厂模型总元素

区域数量

-
{{ modelStats.ZoneCount }}
+
{{ modelStats.ZoneCount || 0 }}
设计区域总数

活跃区域

-
{{ modelStats.ActiveZones.length }}
+
{{ (modelStats.ActiveZones || []).length }}
当前活跃区域

元素类型

-
{{ Object.keys(modelStats.ElementCounts).length }}
+
{{ Object.keys(modelStats.ElementCounts || {}).length }}
不同元素类型
@@ -64,7 +64,7 @@

元素类型分布

-
+
@@ -80,11 +80,11 @@

区域管理

总区域: - {{ modelStats.ZoneCount }} + {{ modelStats.ZoneCount || 0 }} 活跃区域: - {{ modelStats.ActiveZones.length }} + {{ (modelStats.ActiveZones || []).length }}
-
+
{{ zone }}
@@ -135,40 +135,22 @@