|
|
@@ -1,236 +1,191 @@
|
|
|
<!-- 网站信息 -->
|
|
|
<template>
|
|
|
- <div class="website-information">
|
|
|
+ <div class="website-information">
|
|
|
+ <div style="display: flex">
|
|
|
+ <div style="width: 50%;">
|
|
|
<el-form ref="formRef" :model="formData" label-width="120px">
|
|
|
- <el-card shadow="never" class="!border-none">
|
|
|
- <div class="text-xl font-medium mb-[20px]">店铺设置</div>
|
|
|
- <el-form-item label="店铺名称" prop="name">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model="formData.name"
|
|
|
- placeholder="请输入店铺名称"
|
|
|
- maxlength="20"
|
|
|
- show-word-limit
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="店铺简介" prop="intro">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model="formData.intro"
|
|
|
- :rows="5"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入店铺介绍"
|
|
|
- maxlength="90"
|
|
|
- show-word-limit
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="店铺公告" prop="notice">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model="formData.notice"
|
|
|
- :rows="5"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入店铺公告"
|
|
|
- maxlength="100"
|
|
|
- show-word-limit
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="店铺图片" prop="image">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.image" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:100*100像素,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="预支付" prop="prePay">
|
|
|
- <el-switch v-model="formData.prePay" :active-value="1" :inactive-value="0" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="店铺状态" prop="status">
|
|
|
- <el-switch v-model="formData.status" :active-value="1" :inactive-value="0" />
|
|
|
- </el-form-item>
|
|
|
- <!-- <el-form-item label="网站logo" prop="logo">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.logo" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:200*200像素,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="登录页广告图" prop="backdrop">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.backdrop" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:400*400像素,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item> -->
|
|
|
- </el-card>
|
|
|
- <!-- <el-card shadow="never" class="!border-none mt-4">
|
|
|
- <div class="text-xl font-medium mb-[20px]">前台设置</div>
|
|
|
- <el-form-item label="商城名称" prop="shopName">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model="formData.shopName"
|
|
|
- placeholder="请输入店铺/商城名称"
|
|
|
- maxlength="30"
|
|
|
- show-word-limit
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="商城LOGO" prop="shopLogo">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.shopLogo" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:100*100px,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </el-card>
|
|
|
- <el-card shadow="never" class="!border-none mt-4">
|
|
|
- <div class="text-xl font-medium mb-[20px]">PC端设置</div>
|
|
|
- <el-form-item label="PC端LOGO" prop="pcLogo">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.pcLogo" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:120*28px,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站标题" prop="pcTitle">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model.trim="formData.pcTitle"
|
|
|
- placeholder="请输入PC端网站标题"
|
|
|
- maxlength="30"
|
|
|
- show-word-limit
|
|
|
- />
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站图标" prop="pcIco">
|
|
|
- <div>
|
|
|
- <material-picker v-model="formData.pcIco" :limit="1" />
|
|
|
- <div class="form-tips">建议尺寸:100*100像素,支持jpg,jpeg,png格式</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站描述" prop="pcDesc">
|
|
|
- <div class="w-80">
|
|
|
- <el-input v-model.trim="formData.pcDesc" placeholder="请输入PC端网站描述" />
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="网站关键词" prop="pcKeywords">
|
|
|
- <div class="w-80">
|
|
|
- <el-input
|
|
|
- v-model.trim="formData.pcKeywords"
|
|
|
- placeholder="请输入PC端网站关键词"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </el-card> -->
|
|
|
+ <el-card shadow="never" class="!border-none">
|
|
|
+ <div class="text-xl font-medium mb-[20px]">店铺信息</div>
|
|
|
+ <el-form-item label="店铺名称" prop="name">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.name"
|
|
|
+ placeholder="请输入店铺名称"
|
|
|
+ maxlength="20"
|
|
|
+ show-word-limit
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="店铺简介" prop="intro">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.intro"
|
|
|
+ :rows="5"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入店铺介绍"
|
|
|
+ maxlength="90"
|
|
|
+ show-word-limit
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="店铺公告" prop="notice">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.notice"
|
|
|
+ :rows="5"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入店铺公告"
|
|
|
+ maxlength="100"
|
|
|
+ show-word-limit
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="店铺图片" prop="image">
|
|
|
+ <div>
|
|
|
+ <material-picker v-model="formData.image" :limit="1"/>
|
|
|
+ <div class="form-tips">建议尺寸:100*100像素,支持jpg,jpeg,png格式</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="banner图片" prop="banner">
|
|
|
+ <div>
|
|
|
+ <material-picker v-model="formData.banner" :limit="3"/>
|
|
|
+ <div class="form-tips">建议尺寸:100*100像素,支持jpg,jpeg,png格式</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+<!-- <el-form-item label="预支付" prop="prePay">
|
|
|
+ <el-switch v-model="formData.prePay" :active-value="1" :inactive-value="0"/>
|
|
|
+ </el-form-item>-->
|
|
|
+ </el-card>
|
|
|
</el-form>
|
|
|
- <footer-btns v-perms="['setting:website:save']">
|
|
|
- <el-button type="primary" @click="handleSubmit">保存</el-button>
|
|
|
- </footer-btns>
|
|
|
+ </div>
|
|
|
+ <div style="width: 50%;">
|
|
|
+ <el-form label-width="120px">
|
|
|
+ <el-card shadow="never" class="!border-none">
|
|
|
+ <div class="text-xl font-medium mb-[20px]"> </div>
|
|
|
+ <el-form-item label="联系人" prop="contactPsn">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.contactPsn"
|
|
|
+ placeholder="请输入联系人"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系方式" prop="contactTel">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.contactTel"
|
|
|
+ placeholder="请输入联系方式"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="身份证照">
|
|
|
+ <div style="display: flex">
|
|
|
+ <material-picker v-model="formData.idCardFront" :limit="1"/>
|
|
|
+ <material-picker v-model="formData.idCardBack" :limit="1"/>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="资质证件">
|
|
|
+ <div style="display: flex">
|
|
|
+ <material-picker v-model="formData.businessLicense" :limit="1"/>
|
|
|
+ <material-picker v-model="formData.operatingLicense" :limit="1"/>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="地址" prop="address">
|
|
|
+ <div class="w-80">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.address"
|
|
|
+ placeholder="请输入地址"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="店铺状态" prop="status">
|
|
|
+ <el-switch v-model="formData.status" :active-value="1" :inactive-value="0"
|
|
|
+ active-text="开始营业" inactive-text="暂停营业"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-card>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <footer-btns v-perms="['setting:website:save']">
|
|
|
+ <el-button type="primary" @click="handleSubmit">保存</el-button>
|
|
|
+ </footer-btns>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup name="webInformation">
|
|
|
-import { getShopConfig, saveShopConfig } from '@/api/shop'
|
|
|
+import {getShopConfig, saveShopConfig} from '@/api/shop'
|
|
|
import feedback from '@/utils/feedback'
|
|
|
-import type { FormInstance } from 'element-plus'
|
|
|
+import type {FormInstance} from 'element-plus'
|
|
|
+
|
|
|
const formRef = ref<FormInstance>()
|
|
|
// 表单数据
|
|
|
const formData = reactive({
|
|
|
- id: '',
|
|
|
- name: '', // 店铺名称
|
|
|
- intro: '',
|
|
|
- notice: '',
|
|
|
- image: '',
|
|
|
- status: '',
|
|
|
- prePay: ''
|
|
|
+ id: null,
|
|
|
+ name: '', // 店铺名称
|
|
|
+ intro: '',
|
|
|
+ notice: '',
|
|
|
+ image: '',
|
|
|
+ status: '',
|
|
|
+ prePay: '',
|
|
|
+ banner: '',
|
|
|
+ contactPsn: '',
|
|
|
+ contactTel: '',
|
|
|
+ address: '',
|
|
|
+ idCardFront: '',
|
|
|
+ idCardBack: '',
|
|
|
+ businessLicense: '',
|
|
|
+ operatingLicense: ''
|
|
|
})
|
|
|
|
|
|
-// 表单验证
|
|
|
-// const rules = {
|
|
|
-// name: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请输入网站名称',
|
|
|
-// trigger: ['blur']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// favicon: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择网站图标',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// logo: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择网站logo',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// backdrop: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择登录页广告图',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// shopName: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请输入店铺/商城名称',
|
|
|
-// trigger: ['blur']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// shopLogo: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择商城LOGO',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// pcLogo: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择PC端LOGO',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// pcTitle: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请输入PC端网站标题',
|
|
|
-// trigger: ['blur']
|
|
|
-// }
|
|
|
-// ],
|
|
|
-// pcIco: [
|
|
|
-// {
|
|
|
-// required: true,
|
|
|
-// message: '请选择PC端网站图标',
|
|
|
-// trigger: ['change']
|
|
|
-// }
|
|
|
-// ]
|
|
|
-// }
|
|
|
-
|
|
|
// 获取店铺信息
|
|
|
const getData = async () => {
|
|
|
- const data = await getShopConfig()
|
|
|
- for (const key in formData) {
|
|
|
- //@ts-ignore
|
|
|
- formData[key] = data[key]
|
|
|
- }
|
|
|
- if(!formData.image){//不能是null,会报错
|
|
|
- formData.image = '';
|
|
|
- }
|
|
|
+ const data = await getShopConfig()
|
|
|
+ for (const key in formData) {
|
|
|
+ //@ts-ignore
|
|
|
+ formData[key] = data[key]
|
|
|
+ }
|
|
|
+ if (formData.banner) {
|
|
|
+ formData.banner = formData.banner.split(',')
|
|
|
+ }
|
|
|
+ if (!formData.image) {//不能是null,会报错
|
|
|
+ formData.image = '';
|
|
|
+ }
|
|
|
+ if (!formData.banner) {//不能是null,会报错
|
|
|
+ formData.banner = '';
|
|
|
+ }
|
|
|
+ if (!formData.idCardFront) {//不能是null,会报错
|
|
|
+ formData.idCardFront = '';
|
|
|
+ }
|
|
|
+ if (!formData.idCardBack) {//不能是null,会报错
|
|
|
+ formData.idCardBack = '';
|
|
|
+ }
|
|
|
+ if (!formData.businessLicense) {//不能是null,会报错
|
|
|
+ formData.businessLicense = '';
|
|
|
+ }
|
|
|
+ if (!formData.operatingLicense) {//不能是null,会报错
|
|
|
+ formData.operatingLicense = '';
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 保存店铺信息
|
|
|
const handleSubmit = async () => {
|
|
|
- // await formRef.value?.validate()
|
|
|
- await saveShopConfig(formData)
|
|
|
- feedback.msgSuccess('操作成功')
|
|
|
- getData()
|
|
|
+ console.log(formData)
|
|
|
+ if(formData.banner){
|
|
|
+ formData.banner = formData.banner.join(',')
|
|
|
+ }
|
|
|
+ await saveShopConfig(formData)
|
|
|
+ feedback.msgSuccess('操作成功')
|
|
|
+ getData()
|
|
|
}
|
|
|
|
|
|
getData()
|
|
|
</script>
|
|
|
|
|
|
-<style lang="scss" scoped></style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.website-information{
|
|
|
+ background: #fff;
|
|
|
+}
|
|
|
+</style>
|