From 9f7047fbb9f23eefb17afa25e7d208e855993f60 Mon Sep 17 00:00:00 2001 From: 13121765685 Date: Mon, 8 Dec 2025 14:59:11 +0800 Subject: [PATCH] 222 --- .../src/components/modelCom/index.vue | 19 +- .../AdminDisassemblyDetail.vue | 20 +- apps/frontend/package.json | 1 + apps/frontend/src/App.vue | 114 +++++++++- apps/frontend/src/components/IPCard/index.vue | 2 +- .../src/components/iPandCardLeft/index.vue | 2 +- .../src/components/layout/AppHeader.vue | 4 +- .../src/components/layout/AppSidebar.vue | 2 +- .../src/components/layout/MainLayout.vue | 211 ++++++++---------- .../src/components/modelCard/index.vue | 23 +- apps/frontend/src/main.js | 19 +- apps/frontend/src/router/index.js | 20 +- apps/frontend/src/stores/auth.js | 1 - apps/frontend/src/views/CreationWorkspace.vue | 73 ------ apps/frontend/src/views/Login/Login.vue | 3 +- apps/frontend/src/views/Login/login.js | 3 + .../src/views/Project/CreateProject.vue | 92 +------- package-lock.json | 7 + packages/utils/src/api/frontend/login.js | 2 +- packages/utils/src/api/frontend/order.js | 2 +- packages/utils/src/api/frontend/project.js | 4 +- packages/utils/src/servers/giminiserver.js | 56 ++--- packages/utils/src/servers/meshyserver.js | 43 +++- packages/utils/src/utils/request.js | 8 +- pnpm-lock.yaml | 57 +---- 25 files changed, 345 insertions(+), 443 deletions(-) diff --git a/apps/FrontendDesigner/src/components/modelCom/index.vue b/apps/FrontendDesigner/src/components/modelCom/index.vue index 8f569d5..2c20a78 100644 --- a/apps/FrontendDesigner/src/components/modelCom/index.vue +++ b/apps/FrontendDesigner/src/components/modelCom/index.vue @@ -70,6 +70,10 @@ import { MeshyServer } from '@deotaland/utils' const meshServer = new MeshyServer() const isLoading = ref(false); const props = defineProps({ + resultTask: { + type: String, + required: true + }, taskId: { type: String, required: true @@ -150,24 +154,27 @@ watch(() => initializationProgress.value, (newVal) => { }) const loadmodelUrl = ()=>{ if(props.taskId){ - startModelTask(props.taskId) + startModelTask(props.taskId,props.resultTask) } else if(props.imgUrl){ meshServer.createModelTask({ image_url:props.imgUrl, project_id:props.projectId - },(result)=>{ - emit('save',result) - startModelTask(result) + },(result,resultTask)=>{ + emit('save',result,resultTask) + startModelTask(result,resultTask) },()=>{ emit('delete') },{ }) } } -const startModelTask = (result) => { +const startModelTask = (result,resultTask) => { showInitializationOverlay.value = true; - meshServer.getModelTaskStatus(result,(modelurl)=>{ + meshServer.getModelTaskStatus({ + result:result, + resultTask:resultTask, + },(modelurl)=>{ setInitializationProgress(100) modelUrl.value = modelurl; },(error)=>{ diff --git a/apps/FrontendDesigner/src/views/admin/AdminDisassemblyDetail/AdminDisassemblyDetail.vue b/apps/FrontendDesigner/src/views/admin/AdminDisassemblyDetail/AdminDisassemblyDetail.vue index 83ae8a9..d888f1d 100644 --- a/apps/FrontendDesigner/src/views/admin/AdminDisassemblyDetail/AdminDisassemblyDetail.vue +++ b/apps/FrontendDesigner/src/views/admin/AdminDisassemblyDetail/AdminDisassemblyDetail.vue @@ -160,10 +160,11 @@ @preview="previewModel" :img-url="item.image" :task-id="item.taskId" + :result-task="item.resultTask" width="100%" height="150px" :project-id="orderDetail.projectId" - @save="(result)=>saveModel(index,result)" + @save="(result,resultTask)=>saveModel(index,result,resultTask)" :show-delete="true" @delete="deleteModel(index)" /> @@ -312,9 +313,9 @@ const orderDetail = ref({ status: 'pending', processingCompleteTime: null }) -const saveModel = (index,result)=>{ - console.log(index,result,'currentStepcurrentStep'); +const saveModel = (index,result,resultTask)=>{ generatedModels.value[index].taskId = result; + generatedModels.value[index].resultTask = resultTask; } // 当前步骤 @@ -485,20 +486,7 @@ const handleDisassembly = () => { const deleteModel = (index) => { - ElMessageBox.confirm( - '确定要删除这个模型吗?', - '删除确认', - { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - } - ).then(() => { generatedModels.value.splice(index, 1) - ElMessage.success('模型已删除') - }).catch(() => { - // 用户取消删除 - }) } // 加工完成方法 const handleProcessingComplete = () => { diff --git a/apps/frontend/package.json b/apps/frontend/package.json index fbb22da..d90dfec 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -26,6 +26,7 @@ "element-plus": "^2.11.7", "jose": "^6.1.1", "normalize.css": "^8.0.1", + "nprogress": "^0.2.0", "pinia": "^3.0.4", "pinia-plugin-persistedstate": "^4.7.1", "three": "^0.180.0", diff --git a/apps/frontend/src/App.vue b/apps/frontend/src/App.vue index e86549a..505d3ba 100644 --- a/apps/frontend/src/App.vue +++ b/apps/frontend/src/App.vue @@ -18,7 +18,6 @@ function initializeTheme() { if (typeof window !== 'undefined') { const savedTheme = localStorage.getItem('theme') const hasDarkClass = document.documentElement.classList.contains('dark') - if (savedTheme === 'dark') { document.documentElement.classList.add('dark') themeState.value = true @@ -31,7 +30,22 @@ function initializeTheme() { } } } - +const loading = ref(false); +const qmLoading = ref(false); +const closeMethods = { + close: ()=>{ + loading.value = false + qmLoading.value = false; + } +} +window.setElLoading = (qp=false)=>{ + if(qp){ + qmLoading.value = true + }else{ + loading.value = true + } + return closeMethods +} // Initialize on component mount onMounted(() => { initializeTheme() @@ -44,41 +58,119 @@ onMounted(() => { 'fullscreen-mode': isFullScreenPage, 'homepage-mode': isHomePage }"> + -
+
+
- - -
+
- - +
+ - - +
+