fix: 验证字段

This commit is contained in:
wam
2022-12-22 04:59:36 +08:00
parent 9c20266aab
commit d2bc62e4cc
6 changed files with 64 additions and 12 deletions

View File

@@ -45,7 +45,7 @@
<template #overlay> <template #overlay>
<a-menu> <a-menu>
<a-menu-item> <a-menu-item>
<a href="javascript:;" @click="previewerRef.show()">预览</a> <a href="javascript:;" @click="previewerCreationRef.show()">预览</a>
</a-menu-item> </a-menu-item>
<a-menu-item> <a-menu-item>
<a href="javascript:;" @click="renameMeterialRef.show(row)">重命名</a> <a href="javascript:;" @click="renameMeterialRef.show(row)">重命名</a>
@@ -62,7 +62,7 @@
</div> </div>
</div> </div>
</div> </div>
<Previewer ref="previewerRef" /> <PreviewerCreation ref="previewerCreationRef" />
<RenameMeterial ref="renameMeterialRef" @complete="query" /> <RenameMeterial ref="renameMeterialRef" @complete="query" />
<CreateMaterial ref="createMaterialRef" @complete="query" /> <CreateMaterial ref="createMaterialRef" @complete="query" />
</div> </div>
@@ -74,13 +74,13 @@
import { SearchOutlined, PlusOutlined } from "@ant-design/icons-vue" import { SearchOutlined, PlusOutlined } from "@ant-design/icons-vue"
import { computed, ref, watch } from "@vue/runtime-core"; import { computed, ref, watch } from "@vue/runtime-core";
import { Modal } from "ant-design-vue"; import { Modal } from "ant-design-vue";
import Previewer from "./components/Previewer.vue"; import PreviewerCreation from "./components/PreviewerCreation/Index.vue";
import RenameMeterial from "./components/RenameMeterial.vue"; import RenameMeterial from "./components/RenameMeterial.vue";
import CreateMaterial from "./components/CreateMaterial.vue"; import CreateMaterial from "./components/CreateMaterial.vue";
import { THREE_D_TYPE, THREE_D_TYPE_S } from "./components/CreateMaterial.constant"; import { THREE_D_TYPE, THREE_D_TYPE_S } from "./components/CreateMaterial.constant";
import { getMaterialLibrary, delMaterialLibrary } from "./api"; import { getMaterialLibrary, delMaterialLibrary } from "./api";
const previewerRef = ref(); const previewerCreationRef = ref();
const renameMeterialRef = ref(); const renameMeterialRef = ref();
const createMaterialRef = ref(); const createMaterialRef = ref();

View File

@@ -2,7 +2,7 @@
<div class="choose-marerial"> <div class="choose-marerial">
<div class="item" v-for="(item, index) in list" :key="index" :class="current.includes(item) ? 'selected' : ''" @click="toggle(item)"> <div class="item" v-for="(item, index) in list" :key="index" :class="current.includes(item) ? 'selected' : ''" @click="toggle(item)">
<div class="cover"> <div class="cover">
<img :src="item.material_json?.urlThumb" alt=""> <img v-if="item.cover" :src="item.cover" alt="">
</div> </div>
<div class="title"> <div class="title">
{{item.title}} {{item.title}}
@@ -59,8 +59,10 @@ onMounted(async () => {
.cover{ .cover{
width: 100%; width: 100%;
height: 120px; height: 120px;
overflow: hidden;
img{ img{
max-width: 100%; width: 100%;
height: 100%;
} }
} }
.title{ .title{
@@ -69,7 +71,7 @@ onMounted(async () => {
} }
} }
.selected{ .selected{
outline: solid 1px green; border: solid 1px green;
} }
} }
</style> </style>

View File

@@ -99,10 +99,12 @@ const factorys = [
const data = origin.data; const data = origin.data;
var key = new Date().getTime(); var key = new Date().getTime();
origin = { origin.data = {
imgs: data.data.fileList.map(x => ({name: x.name, url: x.response.url})) imgs: data.fileList.map(x => ({name: x.name, url: x.response.url}))
}; };
origin.cover = data.fileList[0].response.url;
return origin; return origin;
} }
}, },

View File

@@ -64,6 +64,7 @@ import ChooseMarerial from "./ChooseMarerial.vue"
const { ref, reactive }=require("@vue/reactivity"); const { ref, reactive }=require("@vue/reactivity");
import common from "@/api/common.js"; import common from "@/api/common.js";
import { createMaterialCenter } from "../api"; import { createMaterialCenter } from "../api";
import { message } from 'ant-design-vue';
const emit = defineEmits(["complete"]); const emit = defineEmits(["complete"]);
@@ -113,7 +114,35 @@ const show = (type) => {
} }
const ok = async () => { const ok = async () => {
if(step.value == 0) {
if(!formData.value.title) {
message.warning("请输入素材名称")
return;
}
}
if(formData.value.type == CREATIVE_TYPE.THREE_D) { if(formData.value.type == CREATIVE_TYPE.THREE_D) {
if(step.value == 1) {
if(formData.value.data.panorama.length <= 0) {
message.warning("请请选择一个场景")
return;
}
if(formData.value.data.panorama.length > 1) {
message.warning("请请选择一个场景")
return;
}
}
if(step.value == 2) {
if(formData.value.data.shelves.length <= 0) {
message.warning("请请选择货架")
return;
}
}
if(step.value == 3) {
if(formData.value.data.wares.length <= 0) {
message.warning("请请选择商品")
return;
}
}
if(step.value >= 3) { if(step.value >= 3) {
const data = JSON.parse(JSON.stringify(formData.value)); const data = JSON.parse(JSON.stringify(formData.value));
await createMaterialCenter(buildData(data)); await createMaterialCenter(buildData(data));
@@ -121,8 +150,12 @@ const ok = async () => {
emit("complete"); emit("complete");
} }
} }
else { if(formData.value.type == CREATIVE_TYPE.RING_360) {
if(step.value >= 1) { if(step.value >= 1) {
if(formData.value.data.fileList.length <= 0) {
message.warning("请上传3D环物资源")
return;
}
const data = JSON.parse(JSON.stringify(formData.value)); const data = JSON.parse(JSON.stringify(formData.value));
await createMaterialCenter(buildData(data)); await createMaterialCenter(buildData(data));
visible.value = false; visible.value = false;
@@ -156,8 +189,8 @@ defineExpose({
position: relative; position: relative;
font-size: 40px; font-size: 40px;
img{ img{
max-width: 100%; width: 100%;
max-height: 100%; height: 100%;
} }
.del{ .del{
color: red; color: red;

View File

@@ -145,6 +145,21 @@ const onCustomRequest = async (upload) => {
} }
const ok = async () => { const ok = async () => {
if(step.value == 0) {
if(!formData.value.title) {
message.warning("请输入素材名称")
return;
}
}
if(step.value == 1) {
if(formData.value.fileList.length <= 0) {
message.warning("请上传资源文件")
return;
}
}
if(step.value >= 1) { if(step.value >= 1) {
if([THREE_D_TYPE.ENV_3D, THREE_D_TYPE.SHELF, THREE_D_TYPE.EXHIBITION_BOOTH, THREE_D_TYPE.WARE].includes(formData.value.type)){ if([THREE_D_TYPE.ENV_3D, THREE_D_TYPE.SHELF, THREE_D_TYPE.EXHIBITION_BOOTH, THREE_D_TYPE.WARE].includes(formData.value.type)){