123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <template>
- <div class="p-8px bg-white">
- <div class="px-4">
- <BasicForm @register="registerForm">
- <template #title1>
- <TypographyTitle :level="4">基础信息</TypographyTitle>
- <Divider></Divider>
- </template>
- <template #address="{ model }">
- <JAreaSelect v-model:province="model['province']" v-model:city="model['city']" v-model:area="model['area']"> </JAreaSelect>
- </template>
- <template #phone="{ model, field }">
- <Input v-model:value="model[field]"></Input>
- <span class="text-gray">用户拨打商家电话时,拨打的号码为该号码。</span>
- </template>
- <template #title3>
- <TypographyTitle :level="4">视频/图片</TypographyTitle>
- <Divider></Divider>
- </template>
- <template #VideoUpload="{ model, field }">
- <uploadVideo v-model:model-value="model[field]"></uploadVideo>
- <span class="text-gray">单个视频;时长10s ~ 5分钟以内;宽高比为5:4。单个文件不超过100M;</span>
- </template>
- <template #title4>
- <div class="flex items-center">
- <TypographyTitle :level="4">VR实景 </TypographyTitle>
- <span class="ml-8 text-gray">找一个能呈现体育馆特点的站点,拍摄前、后,左、右,上、下6张图片。 </span>
- </div>
- <Divider></Divider>
- </template>
- <template #formFooter>
- <div style="margin: 0 auto">
- <a-button type="primary" @click="save" class="mr-2" :loading="isLoading"> 保存 </a-button>
- <a-button type="error" @click="back" class="mr-2"> 关闭 </a-button>
- </div>
- </template>
- </BasicForm>
- <div class="h-20px"></div>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- import { TypographyTitle, Divider, FormItem, Textarea, Input, message } from 'ant-design-vue';
- import { BasicForm, useForm, JAreaSelect } from '/@/components/Form/index';
- import uploadVideo from '@/components/uploadVideo/index.vue';
- import { onUnmounted, ref, watch } from 'vue';
- import { useUserStore } from '/@/store/modules/user';
- const { userInfo } = storeToRefs(useUserStore());
- import { formSchema } from './shopInfo.data';
- import { isCertified, queryById, saveOrUpdate } from './shopInfo.api';
- import { router } from '/@/router';
- import { storeToRefs } from 'pinia';
- const [registerForm, { setProps, resetFields, setFieldsValue, updateSchema, validate, clearValidate, getSchemaByField, getFieldsValue }] = useForm({
- schemas: formSchema,
- showActionButtonGroup: false,
- labelWidth: 200,
- labelCol: { span: 4 },
- wrapperCol: { span: 18 },
- });
- const isEdit = ref(false);
- const isLoading = ref(false);
- function back() {
- router.back();
- }
- async function getisCertified() {
- const res = await isCertified(userInfo.value?.orgCode);
- console.log(res, 'rens ');
- if (res) {
- setFieldsValue({ isCertified: true });
- updateSchema({ field: 'isCertified', componentProps: { disabled: true } });
- }
- }
- getisCertified();
- async function getData(id) {
- const res = await queryById(id);
- console.log(res, 'asdsad');
- if (!res.id) return;
- const vr = res.vr ? res.vr.split(',') : null;
- isEdit.value = true;
- setFieldsValue({
- ...res,
- categoryId: res.categoryId ? res.categoryId.split(',') : null,
- Time: res.startTime ? [res.startTime, res.endTime].join(',') : null,
- down: vr ? vr[vr.length - 1] : null,
- up: vr ? vr[4] : null,
- before: vr ? vr[0] : null,
- after: vr ? vr[1] : null,
- left: vr ? vr[2] : null,
- right: vr ? vr[3] : null,
- });
- }
- getData(userInfo.value?.orgCode);
- async function save() {
- const res = await isCertified(userInfo.value?.orgCode);
- if (!res) return message.error('请完成企业认证!');
- await validate();
- isLoading.value = true;
- const form = await getFieldsValue();
- console.log(form, 'av');
- const obj = {
- ...form,
- startTime: form.Time ? form.Time.split(',')[0] : '',
- endTime: form.Time ? form.Time.split(',')[1] : '',
- vr: '',
- };
- if (form.before || form.after || form.left || form.right || form.up || form.down) {
- if (!form.before || !form.after || !form.left || !form.right || !form.up || !form.down) return message.error('请上传完整VR实景');
- obj.vr = [form.before, form.after, form.left, form.right, form.up, form.down].join(',');
- }
- try {
- await saveOrUpdate(obj, isEdit.value);
- getData(userInfo.value?.orgCode);
- isLoading.value = false;
- } catch (error) {
- isLoading.value = false;
- }
- }
- </script>
|