This commit is contained in:
yziiy
2026-01-23 14:23:24 +08:00
parent 2b609b9e03
commit 284386cb14

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import uploadImage from '@/components/UploadImage/index.vue';
import { queryClassifyList } from '@/api/modules/decorate';
import uploadImage from "@/components/UploadImage/index.vue";
import { queryClassifyList } from "@/api/modules/decorate";
const ruleFormRef = ref();
const formRules = ref({
title: [{ required: true, message: "请输入道具标题", trigger: "change" }],
@@ -10,10 +10,12 @@ const formRules = ref({
type: [{ required: true, message: "请选择道具类型", trigger: "change" }],
show_status: [{ required: true, message: "请选择状态", trigger: "change" }],
is_buy: [{ required: true, message: "请选择状态", trigger: "change" }],
base_image: [{ required: true, message: "请上传道具展示图片", trigger: "change" }],
file_type: [{ required: true, message: "请选择道具类型", trigger: "change" }],
base_image: [
{ required: true, message: "请上传道具展示图片", trigger: "change" }
],
file_type: [{ required: true, message: "请选择道具类型", trigger: "change" }]
});
const typeList = ref([])
const typeList = ref([]);
const props = defineProps(["formInline"]);
const newFormInline = ref(
props.formInline
@@ -32,43 +34,42 @@ const newFormInline = ref(
}
);
function handleFileSuccess(list) {
newFormInline.value.base_image = list.join(',')
newFormInline.value.base_image = list.join(",");
}
function getRef() {
return ruleFormRef.value;
}
const getTypeList = async () => {
const { data, code } = await queryClassifyList()
typeList.value = code ? data : []
}
const { data, code } = await queryClassifyList();
typeList.value = code ? data : [];
};
function handlePlayFile(list) {
newFormInline.value.play_image = list.join(',')
newFormInline.value.play_image = list.join(",");
}
function handlePlayFileSuccess(list) {
newFormInline.value.play_image = list.join(',')
newFormInline.value.play_image = list.join(",");
}
onMounted(() => {
getTypeList()
})
getTypeList();
});
defineExpose({ getRef });
</script>
<template>
<el-form ref="ruleFormRef" :model="newFormInline" :rules="formRules" label-width="120px">
<el-form-item label="道具标题" prop="title">
<el-input v-model="newFormInline.title" placeholder="请输入道具标题"></el-input>
<el-input v-model="newFormInline.title" placeholder="请输入道具标题" />
</el-form-item>
<el-form-item label="道具靓号" prop="special_num">
<el-input v-model="newFormInline.special_num" placeholder="请输入靓号"></el-input>
<el-input v-model="newFormInline.special_num" placeholder="请输入靓号" />
</el-form-item>
<el-form-item label="道具类型" prop="type">
<el-select v-model="newFormInline.type" placeholder="请选择道具类型">
<el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
<el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item v-if="newFormInline.type === 12" label="降身比例" prop="ext_value">
<el-input-number v-model="newFormInline.ext_value" :min="0"></el-input-number>
<el-input-number v-model="newFormInline.ext_value" :min="0" />
</el-form-item>
<el-form-item label="是否显示" prop="show_status">
<el-radio-group v-model="newFormInline.show_status">
@@ -82,11 +83,11 @@ defineExpose({ getRef });
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="newFormInline.is_buy === 1 && newFormInline.type === 12" label="购买价格" prop="price">
<el-input-number v-model="newFormInline.price" :min="0"></el-input-number>
<el-form-item v-if="newFormInline.is_buy === 1 && [12, 13].includes(newFormInline.type)" label="购买价格" prop="price">
<el-input-number v-model="newFormInline.price" :min="0" />
</el-form-item>
<el-form-item label="展示图片" prop="base_image">
<uploadImage @handleSuccess="handleFileSuccess" :limit="1" :echoUrl="newFormInline.base_image" />
<uploadImage :limit="1" :echoUrl="newFormInline.base_image" @handleSuccess="handleFileSuccess" />
</el-form-item>
<template v-if="[1, 2, 3].includes(newFormInline.type)">
<el-form-item label="上传类型" prop="file_type">
@@ -96,16 +97,19 @@ defineExpose({ getRef });
</el-radio-group>
</el-form-item>
<el-form-item label="播放图像" prop="play_image">
<uploadImage @handleSuccess="handlePlayFile"
:acceptType="newFormInline.file_type === 1 ? '.svg,.svga' : newFormInline.file_type === 2 ? '.mp4' : ''"
:limit="1" :echoUrl="newFormInline.play_image" />
<uploadImage :acceptType="newFormInline.file_type === 1
? '.svg,.svga'
: newFormInline.file_type === 2
? '.mp4'
: ''
" :limit="1" :echoUrl="newFormInline.play_image" @handleSuccess="handlePlayFile" />
</el-form-item>
</template>
<template v-if="[10, 11].includes(newFormInline.type)">
<el-form-item label="播放图像" prop="play_image">
<uploadImage @handleSuccess="handlePlayFileSuccess" :acceptType="'.mp4'" :limit="1"
:echoUrl="newFormInline.play_image" />
<uploadImage :acceptType="'.mp4'" :limit="1" :echoUrl="newFormInline.play_image"
@handleSuccess="handlePlayFileSuccess" />
</el-form-item>
</template>
</el-form>