1
0

editModel.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <el-form ref="form" label-width="84px">
  3. <el-form-item label="模型名称">
  4. <el-input
  5. v-model="bindModel.modelTitle"
  6. maxlength="50"
  7. placeholder="请输入模型名称"
  8. />
  9. </el-form-item>
  10. <el-form-item label="渲染方式" v-if="bindModel.modelDateType === 'obj'">
  11. <el-select placeholder="请选择" v-model="bindModel.renderType">
  12. <el-option label="基础材质(无光照)" value="base" />
  13. <el-option label="标准材质(有光照,适用于无贴图模型)" value="normal" />
  14. </el-select>
  15. </el-form-item>
  16. </el-form>
  17. </template>
  18. <script setup lang="ts">
  19. import { ref } from "vue";
  20. import { ModelScene, setModelScene } from "@/store/scene";
  21. import { ElMessage } from "element-plus";
  22. import { QuiskExpose } from "@/helper/mount";
  23. const props = defineProps<{ model: ModelScene }>();
  24. const bindModel = ref<ModelScene>({
  25. ...props.model,
  26. renderType: props.model.renderType || "base",
  27. });
  28. defineExpose<QuiskExpose>({
  29. async submit() {
  30. if (!bindModel.value.modelTitle || !bindModel.value.modelTitle.trim()) {
  31. ElMessage.error("模型名称不能为空");
  32. throw "模型名称不能为空";
  33. }
  34. await setModelScene(bindModel.value);
  35. },
  36. });
  37. </script>