Explorar el Código

修改1.5需求

bill hace 1 año
padre
commit
42f26b1ea2

+ 1 - 0
src/request/urls.ts

@@ -70,6 +70,7 @@ export const genMeshSceneByCloud = "/fusion/scene/buildSceneObj";
 
 // 获取模型场景列表
 export const getModelSceneList = `/fusion/model/list`;
+export const updateModelScene = `/fusion/model/updateTitle`;
 // 取消模型场景上传
 export const cancelUModel = `/fusion/model/cancelUpload`;
 export const deleteModel = `/fusion/model/delete`;

+ 8 - 0
src/store/scene.ts

@@ -11,6 +11,7 @@ import {
   getModelRunProgress,
   getModelSceneList,
   getSceneList,
+  updateModelScene,
   uploadModel,
 } from "@/request";
 import { ElMessage } from "element-plus";
@@ -45,6 +46,7 @@ export enum QuoteSceneStatus {
 }
 
 export interface ModelScene extends BaseScene {
+  modelTitle: string;
   modelId: number;
   createStatus: ModelSceneStatus;
   modelSize: string;
@@ -74,6 +76,12 @@ export enum ModelSceneStatus {
   CANCEL = -2,
 }
 
+export const setModelScene = (scene: ModelScene) =>
+  axios.post(updateModelScene, {
+    modelId: scene.modelId,
+    modelTitle: scene.modelTitle,
+  });
+
 export const cancelUploadModelScene = (scene: ModelScene) =>
   axios.get(cancelUModel, { params: { modelId: scene.modelId } });
 

+ 31 - 0
src/view/vrmodel/editModel.vue

@@ -0,0 +1,31 @@
+<template>
+  <el-form ref="form" label-width="84px">
+    <el-form-item label="模型名称">
+      <el-input
+        v-model="bindModel.modelTitle"
+        maxlength="50"
+        placeholder="请输入模型名称"
+      />
+    </el-form-item>
+  </el-form>
+</template>
+
+<script setup lang="ts">
+import { ref } from "vue";
+import { ModelScene, setModelScene } from "@/store/scene";
+import { ElMessage } from "element-plus";
+import { QuiskExpose } from "@/helper/mount";
+
+const props = defineProps<{ model: ModelScene }>();
+const bindModel = ref<ModelScene>({ ...props.model });
+
+defineExpose<QuiskExpose>({
+  async submit() {
+    if (!bindModel.value.modelTitle || !bindModel.value.modelTitle.trim()) {
+      ElMessage.error("模型名称不能为空");
+      throw "模型名称不能为空";
+    }
+    await setModelScene(bindModel.value);
+  },
+});
+</script>

+ 8 - 1
src/view/vrmodel/modelContent.vue

@@ -47,7 +47,7 @@
       <span
         class="oper-span"
         v-pdpath="['edit']"
-        @click="openSceneUrl(row, OpenType.edit)"
+        @click="editHanlder(row)"
         v-if="row.createStatus === ModelSceneStatus.SUCCESS"
       >
         修改
@@ -102,6 +102,7 @@ import { ScenePagging } from "./pagging";
 import { watchPolling } from "@/hook/watchPolling";
 import { OpenType, openSceneUrl } from "../case/help";
 import { operateIsPermissionByPath } from "@/directive/permission";
+import { editModelScene } from "./quisk";
 
 const props = defineProps<{ pagging: ScenePagging }>();
 
@@ -125,6 +126,12 @@ const delOrCancel = async (scene: ModelScene) => {
   }
 };
 
+const editHanlder = async (scene: ModelScene) => {
+  if (await editModelScene({ model: scene })) {
+    props.pagging.refresh();
+  }
+};
+
 const {
   percentage,
   upload: uploadCheck,

+ 7 - 0
src/view/vrmodel/quisk.ts

@@ -0,0 +1,7 @@
+import EditModel from "./editModel.vue";
+import { quiskMountFactory } from "@/helper/mount";
+
+export const editModelScene = quiskMountFactory(EditModel, {
+  title: "编辑模型",
+  width: 500,
+});