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