From d70a881bd3ebac1993db1acedbf293c6d5f918d9 Mon Sep 17 00:00:00 2001 From: sladro Date: Mon, 23 Feb 2026 17:22:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EPDMS=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=BD=BB=E9=87=8F=E5=8C=96=E5=A4=84=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=8A=E7=9B=B8=E5=85=B3=E5=88=86=E6=9E=90=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E9=A1=B5=E9=9D=A2=E5=92=8C=E9=85=8D=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/pages/AnalysisToolsPage.vue | 7 +- .../pages/PdmsAnalysisDashboard.vue | 327 ++++++++++ src/components/pages/PdmsShrinkwrapPage.vue | 565 ++++++++++++++++++ src/config/cad.js | 5 +- src/config/pages.js | 6 +- src/services/pdmsApi.js | 17 + src/views/DashboardView.vue | 4 +- 7 files changed, 925 insertions(+), 6 deletions(-) create mode 100644 src/components/pages/PdmsAnalysisDashboard.vue create mode 100644 src/components/pages/PdmsShrinkwrapPage.vue diff --git a/src/components/pages/AnalysisToolsPage.vue b/src/components/pages/AnalysisToolsPage.vue index 43ceed6..949c77f 100644 --- a/src/components/pages/AnalysisToolsPage.vue +++ b/src/components/pages/AnalysisToolsPage.vue @@ -12,7 +12,11 @@ :model-data="modelData" @page-change="(page) => $emit('page-change', page)" /> -
PDMS分析功能开发中
+
请先连接CAD软件
@@ -20,6 +24,7 @@ + + diff --git a/src/components/pages/PdmsShrinkwrapPage.vue b/src/components/pages/PdmsShrinkwrapPage.vue new file mode 100644 index 0000000..73242cc --- /dev/null +++ b/src/components/pages/PdmsShrinkwrapPage.vue @@ -0,0 +1,565 @@ + + + + + diff --git a/src/config/cad.js b/src/config/cad.js index c91a2ad..8b15bd1 100644 --- a/src/config/cad.js +++ b/src/config/cad.js @@ -127,11 +127,12 @@ const CAD_SOFTWARE_DEFINITIONS = { apiVersion: 'v1', priority: 3, description: '工厂设计管理', - features: ['status', 'piping'], + features: ['status', 'piping', 'shrinkwrap'], endpoints: { connect: '/test', status: '/api/status/model', - piping: '/api/v1/piping' + piping: '/api/v1/piping', + shrinkwrap: '/api/model/shrinkwrap' } }, AUTOCAD: { diff --git a/src/config/pages.js b/src/config/pages.js index dac574e..e634e7b 100644 --- a/src/config/pages.js +++ b/src/config/pages.js @@ -13,7 +13,8 @@ export const PAGE_TYPES = { GEOMETRY_OPTIMIZATION_PARAMS: 'geometry-optimization-params', GEOMETRY_OPTIMIZATION_RESULT: 'geometry-optimization-result', FILE_MANAGEMENT: 'file-management', - REVIT_ENVELOPE_OPTIMIZATION: 'revit-envelope-optimization' + REVIT_ENVELOPE_OPTIMIZATION: 'revit-envelope-optimization', + PDMS_SHRINKWRAP: 'pdms-shrinkwrap' } // 需要CAD连接的页面 @@ -21,5 +22,6 @@ export const CAD_REQUIRED_PAGES = [ PAGE_TYPES.MODEL_VIEWER, PAGE_TYPES.ANALYSIS_TOOLS, PAGE_TYPES.EXPORT_TOOLS, - PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION + PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION, + PAGE_TYPES.PDMS_SHRINKWRAP ] \ No newline at end of file diff --git a/src/services/pdmsApi.js b/src/services/pdmsApi.js index 54135a6..4d19b70 100644 --- a/src/services/pdmsApi.js +++ b/src/services/pdmsApi.js @@ -35,6 +35,23 @@ class PdmsApiService { } }) } + + /** + * 执行PDMS模型轻量化处理 + * @param {Object} params 轻量化参数 + * @returns {Promise<{success: boolean, data?: any, error?: string}>} + */ + async executeShrinkwrap(params) { + const url = buildApiUrl(this.softwareName, 'shrinkwrap') + + return await apiClient.post(url, params, { + timeout: 600000, // 超时600s + operationContext: { + software: 'PDMS', + operation: '模型轻量化处理' + } + }) + } } export const pdmsApi = new PdmsApiService() diff --git a/src/views/DashboardView.vue b/src/views/DashboardView.vue index 0a025e9..bdd53a8 100644 --- a/src/views/DashboardView.vue +++ b/src/views/DashboardView.vue @@ -66,6 +66,7 @@ import GeometryComplexityResult from '@/components/pages/GeometryComplexityResul import GeometryOptimizationParams from '@/components/pages/GeometryOptimizationParams.vue' import GeometryOptimizationResult from '@/components/pages/GeometryOptimizationResult.vue' import RevitEnvelopeOptimization from '@/components/pages/RevitEnvelopeOptimization.vue' +import PdmsShrinkwrapPage from '@/components/pages/PdmsShrinkwrapPage.vue' import FileManagementPage from '@/components/pages/FileManagementPage.vue' import InfoManagementPanel from '@/components/layout/InfoManagementPanel.vue' import { PAGE_TYPES } from '@/config/pages' @@ -112,7 +113,8 @@ const pageComponentMap = { [PAGE_TYPES.GEOMETRY_OPTIMIZATION_PARAMS]: GeometryOptimizationParams, [PAGE_TYPES.GEOMETRY_OPTIMIZATION_RESULT]: GeometryOptimizationResult, [PAGE_TYPES.FILE_MANAGEMENT]: FileManagementPage, - [PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION]: RevitEnvelopeOptimization + [PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION]: RevitEnvelopeOptimization, + [PAGE_TYPES.PDMS_SHRINKWRAP]: PdmsShrinkwrapPage } // 当前组件computed