From 7785b1f1e40269b2e66d97134eeec2e9ca88d401 Mon Sep 17 00:00:00 2001 From: sladro Date: Thu, 18 Sep 2025 18:42:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0Revit=20IFC=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BF=AE=E5=A4=8D=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=A1=B5=E9=9D=A2=E8=B7=AF=E7=94=B1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增RevitExportTools组件,支持完整IFC导出参数配置 - 在revitApi.js中添加exportIFC方法,调用/api/export/ifc端点 - 修复DashboardView导出页面路由,根据连接软件显示对应导出工具 - 修复组件样式问题,正确显示Revit绿色主题而非黑白灰 - 添加未连接CAD时的友好提示信息 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/components/pages/RevitExportTools.vue | 492 ++++++++++++++++++++++ src/services/revitApi.js | 16 + src/views/DashboardView.vue | 14 +- 3 files changed, 521 insertions(+), 1 deletion(-) create mode 100644 src/components/pages/RevitExportTools.vue diff --git a/src/components/pages/RevitExportTools.vue b/src/components/pages/RevitExportTools.vue new file mode 100644 index 0000000..73bf732 --- /dev/null +++ b/src/components/pages/RevitExportTools.vue @@ -0,0 +1,492 @@ + + + + + \ No newline at end of file diff --git a/src/services/revitApi.js b/src/services/revitApi.js index e65a7c9..0ba7619 100644 --- a/src/services/revitApi.js +++ b/src/services/revitApi.js @@ -62,6 +62,22 @@ class RevitApiService { } }) } + + /** + * 导出IFC文件 + * @param {Object} exportOptions - 导出选项 + * @returns {Promise<{success: boolean, data?: any, error?: string}>} + */ + async exportIFC(exportOptions) { + const url = buildApiUrl(this.softwareName, 'exportIfc') + + return await apiClient.post(url, exportOptions, { + operationContext: { + software: 'Revit', + operation: 'IFC导出' + } + }) + } } // 导出单例实例 diff --git a/src/views/DashboardView.vue b/src/views/DashboardView.vue index c880044..48875ae 100644 --- a/src/views/DashboardView.vue +++ b/src/views/DashboardView.vue @@ -125,7 +125,8 @@
- + +
请先连接CAD软件
@@ -273,6 +274,7 @@ import RevitModelViewer from '@/components/model/RevitModelViewer.vue' import RevitAnalysisDashboard from '@/components/pages/RevitAnalysisDashboard.vue' import CreoModelAnalysis from '@/components/pages/CreoModelAnalysis.vue' import CreoExportTools from '@/components/pages/CreoExportTools.vue' +import RevitExportTools from '@/components/pages/RevitExportTools.vue' import UniversalConverter from '@/components/pages/UniversalConverter.vue' import ShellAnalysisResult from '@/components/pages/ShellAnalysisResult.vue' import HierarchyAnalysisResult from '@/components/pages/HierarchyAnalysisResult.vue' @@ -401,6 +403,16 @@ const closeInfoPanel = () => { width: 100%; } +.no-connection { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + color: var(--color-text-secondary); + font-size: 16px; + text-align: center; +} + /* 连接页面样式 */ .connection-page { display: flex;