From 3cdb7298e63d7ab344b96de1f1aee771efd7c3be Mon Sep 17 00:00:00 2001 From: sladro Date: Sat, 28 Feb 2026 17:30:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EPDMS=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E7=AE=80=E5=8C=96=E3=80=81=E5=88=86=E6=9E=90=E4=BB=AA?= =?UTF-8?q?=E8=A1=A8=E7=9B=98=E5=92=8C=E6=94=B6=E7=BC=A9=E5=8C=85=E8=A3=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/PdmsAnalysisDashboard.vue | 26 +- src/components/pages/PdmsShrinkwrapPage.vue | 38 +- src/components/pages/PdmsSimplifyPage.vue | 581 ++++++++++++++++++ src/config/cad.js | 3 +- src/config/pages.js | 4 +- src/services/pdmsApi.js | 17 + src/views/DashboardView.vue | 2 + 7 files changed, 643 insertions(+), 28 deletions(-) create mode 100644 src/components/pages/PdmsSimplifyPage.vue diff --git a/src/components/pages/PdmsAnalysisDashboard.vue b/src/components/pages/PdmsAnalysisDashboard.vue index 972ff1d..902e3a5 100644 --- a/src/components/pages/PdmsAnalysisDashboard.vue +++ b/src/components/pages/PdmsAnalysisDashboard.vue @@ -55,16 +55,24 @@
新功能
- -
-
- +
+
+
-
管道专项分析 (开发中)
-

- 针对管道模型进行碰撞检测及流体路径复杂性评估。 +

模型简化 (Simplify)
+

+ 按设备类型规律地批量删除内部多余的构件元件,大幅度实现快速轻量化。

+
+ 类型过滤 + 结构精简 +
+
@@ -98,6 +106,10 @@ const openShrinkwrapPage = () => { emit('page-change', 'pdms-shrinkwrap') } +const openSimplifyPage = () => { + emit('page-change', 'pdms-simplify') +} + const refreshConnection = () => { ElNotification({ title: '刷新连接', diff --git a/src/components/pages/PdmsShrinkwrapPage.vue b/src/components/pages/PdmsShrinkwrapPage.vue index 4a30aa4..c6da1d1 100644 --- a/src/components/pages/PdmsShrinkwrapPage.vue +++ b/src/components/pages/PdmsShrinkwrapPage.vue @@ -91,35 +91,35 @@

模型轻量化完成

-

(本次为模拟运行模式,未真实删除模型)

+

(本次为模拟运行模式,未真实删除模型)

-
{{ taskResult.removedCount || 0 }}
+
{{ taskResult.RemovedCount || 0 }}
移除内部构件数
-
{{ taskResult.keptCount || 0 }}
+
{{ taskResult.KeptCount || 0 }}
保留构件总数
-
{{ taskResult.totalVisited || 0 }}
+
{{ taskResult.TotalVisited || 0 }}
扫描构件总数
-
+
-
{{ taskResult.shellKeptCount }}
+
{{ taskResult.ShellKeptCount }}
壳体保留数
@@ -127,27 +127,27 @@

处理信息

-

{{ taskResult.message }}

-

- 执行时间: {{ formatTime(taskResult.startedAt) }} - {{ formatTime(taskResult.completedAt) }} +

{{ taskResult.Message }}

+

+ 执行时间: {{ formatTime(taskResult.StartedAt) }} - {{ formatTime(taskResult.CompletedAt) }}

-
+
Zone 处理汇总
    -
  • +
  • {{ zone }} : {{ count }} 个移除
-
+

部分处理出错:

    -
  • {{ err }}
  • -
  • ...以及其他 {{ taskResult.errors.length - 5 }} 个错误
  • +
  • {{ err }}
  • +
  • ...以及其他 {{ taskResult.Errors.length - 5 }} 个错误
@@ -222,11 +222,11 @@ const startTask = async () => { try { const payload = { - dryRun: formData.dryRun, - padding: formData.padding, - touchTolerance: formData.touchTolerance, - zoneFilters: zoneFiltersInput.value ? zoneFiltersInput.value.split(',').map(s => s.trim()).filter(s => s) : [], - keepTypes: formData.keepTypes + DryRun: formData.dryRun, + Padding: formData.padding, + TouchTolerance: formData.touchTolerance, + ZoneFilters: zoneFiltersInput.value ? zoneFiltersInput.value.split(',').map(s => s.trim()).filter(s => s) : [], + KeepTypes: formData.keepTypes } const res = await pdmsApi.executeShrinkwrap(payload) diff --git a/src/components/pages/PdmsSimplifyPage.vue b/src/components/pages/PdmsSimplifyPage.vue new file mode 100644 index 0000000..2ea9ecf --- /dev/null +++ b/src/components/pages/PdmsSimplifyPage.vue @@ -0,0 +1,581 @@ + + + + + diff --git a/src/config/cad.js b/src/config/cad.js index a7509b8..c77aba5 100644 --- a/src/config/cad.js +++ b/src/config/cad.js @@ -129,12 +129,13 @@ const CAD_SOFTWARE_DEFINITIONS = { apiVersion: 'v1', priority: 3, description: '工厂设计管理', - features: ['status', 'piping', 'shrinkwrap', 'openProject', 'openMdb', 'exportIfc'], + features: ['status', 'piping', 'shrinkwrap', 'simplify', 'openProject', 'openMdb', 'exportIfc'], endpoints: { connect: '/test', status: '/api/status/model', piping: '/api/v1/piping', shrinkwrap: '/api/model/shrinkwrap', + simplify: '/api/model/simplify', openProject: '/api/project/open', openMdb: '/api/mdb/open', exportIfc: '/api/export/ifc' diff --git a/src/config/pages.js b/src/config/pages.js index d2eb511..5a6f8b4 100644 --- a/src/config/pages.js +++ b/src/config/pages.js @@ -15,6 +15,7 @@ export const PAGE_TYPES = { FILE_MANAGEMENT: 'file-management', REVIT_ENVELOPE_OPTIMIZATION: 'revit-envelope-optimization', PDMS_SHRINKWRAP: 'pdms-shrinkwrap', + PDMS_SIMPLIFY: 'pdms-simplify', BATCH_JOB_MANAGER: 'batch-job-manager', REPORT_LOG_VIEWER: 'report-log-viewer', MULTI_ALGORITHM_FUSION: 'multi-algorithm-fusion' @@ -26,5 +27,6 @@ export const CAD_REQUIRED_PAGES = [ PAGE_TYPES.ANALYSIS_TOOLS, PAGE_TYPES.EXPORT_TOOLS, PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION, - PAGE_TYPES.PDMS_SHRINKWRAP + PAGE_TYPES.PDMS_SHRINKWRAP, + PAGE_TYPES.PDMS_SIMPLIFY ] \ No newline at end of file diff --git a/src/services/pdmsApi.js b/src/services/pdmsApi.js index a70af32..cfa0c62 100644 --- a/src/services/pdmsApi.js +++ b/src/services/pdmsApi.js @@ -53,6 +53,23 @@ class PdmsApiService { }) } + /** + * 执行PDMS模型简化处理 + * @param {Object} params 简化参数 + * @returns {Promise<{success: boolean, data?: any, error?: string}>} + */ + async executeSimplify(params) { + const url = buildApiUrl(this.softwareName, 'simplify') + + return await apiClient.post(url, params, { + timeout: 600000, // 超时600s + operationContext: { + software: 'PDMS', + operation: '模型简化处理' + } + }) + } + /** * 打开 PDMS 项目 * @param {Object} params - 项目参数 { ProjectName, UserName, Password } diff --git a/src/views/DashboardView.vue b/src/views/DashboardView.vue index 558a8cd..482f749 100644 --- a/src/views/DashboardView.vue +++ b/src/views/DashboardView.vue @@ -67,6 +67,7 @@ import GeometryOptimizationParams from '@/components/pages/GeometryOptimizationP import GeometryOptimizationResult from '@/components/pages/GeometryOptimizationResult.vue' import RevitEnvelopeOptimization from '@/components/pages/RevitEnvelopeOptimization.vue' import PdmsShrinkwrapPage from '@/components/pages/PdmsShrinkwrapPage.vue' +import PdmsSimplifyPage from '@/components/pages/PdmsSimplifyPage.vue' import FileManagementPage from '@/components/pages/FileManagementPage.vue' import BatchJobManager from '@/components/pages/BatchJobManager.vue' import ReportLogViewer from '@/components/pages/ReportLogViewer.vue' @@ -118,6 +119,7 @@ const pageComponentMap = { [PAGE_TYPES.FILE_MANAGEMENT]: FileManagementPage, [PAGE_TYPES.REVIT_ENVELOPE_OPTIMIZATION]: RevitEnvelopeOptimization, [PAGE_TYPES.PDMS_SHRINKWRAP]: PdmsShrinkwrapPage, + [PAGE_TYPES.PDMS_SIMPLIFY]: PdmsSimplifyPage, [PAGE_TYPES.BATCH_JOB_MANAGER]: BatchJobManager, [PAGE_TYPES.REPORT_LOG_VIEWER]: ReportLogViewer, [PAGE_TYPES.MULTI_ALGORITHM_FUSION]: MultiAlgorithmFusion