2023-05-09 11:05:40 +08:00

187 lines
6.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="layout">
<Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate">
<FormItem label="站点名称" prop="siteName">
<Input style="width:200px;" v-model="formValidate.siteName" />
<span class="desc">配置买家端站点名称</span>
</FormItem>
<FormItem label="icp" prop="icp">
<Input v-model="formValidate.icp" />
</FormItem>
<FormItem label="后台Logo" prop="domainLogo">
<div class="label-item-upload">
<img v-if="formValidate.domainLogo" class="img" :src="formValidate.domainLogo" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('domainLogo')">选择图片</Button>
<span class="desc">后台管理左上角logo展示 176</span>
</div>
</FormItem>
<FormItem label="后台Icon" prop="domainIcon">
<div class="label-item-upload">
<img v-if="formValidate.domainIcon" class="img" :src="formValidate.domainIcon" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('domainIcon')">选择图片</Button>
<span class="desc">后台管理网站icon展示 11</span>
</div>
</FormItem>
<FormItem label="买家端Logo" prop="buyerSideLogo">
<div class="label-item-upload">
<img v-if="formValidate.buyerSideLogo" class="img" :src="formValidate.buyerSideLogo" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('buyerSideLogo')">选择图片</Button>
<span class="desc">买家端logo展示 176</span>
</div>
</FormItem>
<FormItem label="买家端Icon" prop="buyerSideIcon">
<div class="label-item-upload">
<img v-if="formValidate.buyerSideIcon" class="img" :src="formValidate.buyerSideIcon" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('buyerSideIcon')">选择图片</Button>
<span class="desc">买家端网站icon展示 11</span>
</div>
</FormItem>
<FormItem label="商家端Logo" prop="storeSideLogo">
<div class="label-item-upload">
<img v-if="formValidate.storeSideLogo" class="img" :src="formValidate.storeSideLogo" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('storeSideLogo')">选择图片</Button>
<span class="desc">商家端logo展示 176</span>
</div>
</FormItem>
<FormItem label="商家端Icon" prop="storeSideIcon">
<div class="label-item-upload">
<img v-if="formValidate.storeSideIcon" class="img" :src="formValidate.storeSideIcon" />
<img v-else class="img" src="../../../../assets/emptyImg.png" alt="">
<Button @click="onClickImg('storeSideIcon')">选择图片</Button>
<span class="desc">商家端icon展示 11</span>
</div>
</FormItem>
<FormItem label="站点地址" prop="staticPageAddress">
<Input style="width:200px;" v-model="formValidate.staticPageAddress" />
</FormItem>
<FormItem label="wap站点地址" prop="staticPageWapAddress">
<Input v-model="formValidate.staticPageWapAddress" />
</FormItem>
<div class="label-btns">
<Button type="primary" @click="submit('formValidate')">保存</Button>
</div>
</Form>
<Modal width="1200px" v-model="picModelFlag">
<ossManage @callback="callbackSelected" ref="ossManage" />
</Modal>
</div>
</template>
<script>
import { setSetting } from "@/api/index";
import { handleSubmit } from "./validate";
import ossManage from "@/views/sys/oss-manage/ossManage";
export default {
title: "基础设置",
props: {
res:{
type:null,
default:""
},
type:''
},
components: {
ossManage,
},
data() {
return {
handleSubmit, // 验证规则
picModelFlag: false, // 预览图片显隐
formValidate: { // 表单数据
buyerSideLogo: "",
domainLogo: "",
icp: "",
storeSideLogo: "",
siteName: "",
staticPageAddress: "",
staticPageWapAddress: "",
},
selected: "", // 已选数据
ruleValidate: {}, // 验证规则
result:""
};
},
created() {
this.init();
},
methods: {
// 点击图片
onClickImg(item) {
this.selected = item;
this.$refs.ossManage.selectImage = true;
this.picModelFlag = true;
},
submit(name) {
let that = this;
if (handleSubmit(that, name)) {
this.setupSetting();
}
},
// 选择回显
callbackSelected(val) {
this.picModelFlag = false;
this.formValidate[this.selected] = val.url;
},
// 保存设置
setupSetting() {
setSetting(this.type, this.formValidate).then((res) => {
if (res.success) {
this.$Message.success("保存成功!");
localStorage.setItem("icon", this.formValidate.domainLogo);
window.document.title = this.formValidate.siteName + " - 运营后台";
} else {
this.$Message.error("保存失败!");
}
});
},
/**添加必填项 */
init() {
this.result = JSON.parse(this.res);
this.$set(this, "formValidate", { ...this.result });
Object.keys(this.result).forEach((item) => {
this.ruleValidate[item] = [
{
required: true,
message: "请填写必填项",
trigger: "blur",
},
];
});
},
},
};
</script>
<style scoped lang="scss">
@import "./style.scss";
.label-item {
display: flex;
> .ivu-input {
width: 200px;
margin: 0 10px;
}
}
.label-item-upload {
display: flex;
align-items: flex-end;
img {
margin-right: 10px;
width: 100px;
height: 100px;
}
}
</style>