Browse Source

添加生成obj功能

bill 1 year ago
parent
commit
fbeb0d509e
4 changed files with 36 additions and 2 deletions
  1. 1 1
      src/request/config.ts
  2. 3 0
      src/request/urls.ts
  3. 17 0
      src/store/scene.ts
  4. 15 1
      src/view/vrmodel/sceneContent.vue

+ 1 - 1
src/request/config.ts

@@ -58,7 +58,7 @@ export const PostUrls = [
 
 // 未认证code
 export const unAuthCode = [3004, 4008];
-export const successCode = [0, "000000"];
+export const successCode = [0, "000000", 200];
 // baseURL
 export const baseURL = import.meta.env.DEV ? "/api" : "";
 

+ 3 - 0
src/request/urls.ts

@@ -65,6 +65,9 @@ export const getCompanyList = "/web/department/getAll";
 // 获取场景列表
 export const getSceneList = "/fusion/scene/list";
 export const delScene = "/fusion/scene/deleteNum";
+export const checkGenMeshScene = "/fusion/scene/sceneDetail";
+export const genMeshSceneByCloud = "/fusion/scene/buildSceneObj";
+
 // 获取模型场景列表
 export const getModelSceneList = `/fusion/model/list`;
 // 取消模型场景上传

+ 17 - 0
src/store/scene.ts

@@ -1,15 +1,19 @@
+import { confirm } from "@/helper/message";
 import {
   PaggingReq,
   PaggingRes,
   axios,
   cancelUModel,
+  checkGenMeshScene,
   delScene,
   deleteModel,
+  genMeshSceneByCloud,
   getModelRunProgress,
   getModelSceneList,
   getSceneList,
   uploadModel,
 } from "@/request";
+import { ElMessage } from "element-plus";
 
 interface BaseScene {
   title: string;
@@ -129,3 +133,16 @@ export const getScenePagging = async (params: ScenePaggingParams) => {
 
 export const delQuoteScene = (scene: QuoteScene) =>
   axios.get(delScene, { params: { num: scene.num } });
+
+export const genMeshScene = async (scene: QuoteScene) => {
+  const res = (await axios.post(checkGenMeshScene, { id: scene.id })).data;
+  if (res?.buildObjStatus === 2) {
+    ElMessage.error("当前场景正在生成obj中,请勿重复操作!");
+  } else if (
+    res?.buildObjStatus !== 1 ||
+    (await confirm("当前场景已生成mesh场景,确定要重新生成吗?"))
+  ) {
+    await axios.post(genMeshSceneByCloud, { id: scene.id });
+    ElMessage.success("操作成功,当前场景正在生成obj中");
+  }
+};

+ 15 - 1
src/view/vrmodel/sceneContent.vue

@@ -43,6 +43,14 @@
         编辑
       </span>
       <span
+        v-if="row.type === SceneType.SWSS"
+        class="oper-span"
+        @click="genMeshScene(row)"
+      >
+        生成mesh
+      </span>
+
+      <span
         v-if="row.type !== SceneType.SWSSMX && row.status !== QuoteSceneStatus.RUN"
         class="oper-span delBtn"
         v-pdscene="row"
@@ -64,7 +72,13 @@
 </template>
 
 <script setup lang="ts">
-import { QuoteScene, QuoteSceneStatus, delQuoteScene, SceneType } from "@/store/scene";
+import {
+  QuoteScene,
+  QuoteSceneStatus,
+  delQuoteScene,
+  SceneType,
+  genMeshScene,
+} from "@/store/scene";
 import { ScenePagging } from "./pagging";
 import { QuoteSceneStatusDesc } from "@/constant/scene";
 import { OpenType, openSceneUrl } from "../case/help";