<template>
|
<!--
|
作者 luoyiming
|
时间:2019-10-26
|
描述:设置-商城设置
|
-->
|
<div class="product-add">
|
<!--form表单-->
|
<el-form size="small" ref="form" :model="form" label-width="150px">
|
<!--添加门店-->
|
<div class="common-form">商城设置</div>
|
<el-form-item label="商城名称" :rules="[{required: true,message: ' '}]" prop="name">
|
<el-input v-model="form.name" placeholder="商城名称" class="max-w460"></el-input>
|
</el-form-item>
|
<el-form-item label="配送方式">
|
<el-checkbox-group v-model="form.checkedCities">
|
<el-checkbox v-for="(item,index) in all_type" :label="item.value" :key="index">{{item.name}}</el-checkbox>
|
</el-checkbox-group>
|
<div class="tips">注:配送方式至少选择一个</div>
|
</el-form-item>
|
<el-form-item label="开启站点切换功能">
|
<div>
|
<el-radio v-model="form.index_open_city" label="1">开启</el-radio>
|
<el-radio v-model="form.index_open_city" label="0">关闭</el-radio>
|
</div>
|
</el-form-item>
|
<el-form-item label="站点设置">
|
<div>
|
<div class="area-list">
|
<span v-if="form.citys.length == cityCount">全国</span>
|
<span v-else v-for="(province, index) in form.citysData" :key="index" class="pr16">
|
{{ province.name }}
|
<template v-if="!province.isAllCitys">
|
(
|
<span class="am-link-muted gray9">
|
<em v-for="(city, city_index) in province.citys" :key="city_index">
|
<span>{{ city.name }}</span>
|
<span v-if="city_index + 1 < province.citys.length">、</span>
|
</em>
|
</span>
|
)
|
</template>
|
</span>
|
</div>
|
<a href="javascript:void(0);" @click="el = editAreaClick(0)">编辑</a>
|
</div>
|
</el-form-item>
|
<el-form-item label="是否显示店铺信息">
|
<div>
|
<el-radio v-model="form.store_open" label="1">显示</el-radio>
|
<el-radio v-model="form.store_open" label="0">关闭</el-radio>
|
</div>
|
<div class="tips">主要用于微信小程序过审隐藏</div>
|
</el-form-item>
|
<el-form-item label="店铺显示类型" v-if="form.store_open == 1">
|
<div>
|
<el-radio v-model="form.store_type" :label="0">商户信息</el-radio>
|
<el-radio v-model="form.store_type" :label="1">门店信息</el-radio>
|
</div>
|
</el-form-item>
|
<el-form-item label="是否产品下划线价">
|
<div>
|
<el-radio v-model="form.underline_price_show" label="0">显示</el-radio>
|
<el-radio v-model="form.underline_price_show" label="1">隐藏</el-radio>
|
</div>
|
</el-form-item>
|
<div class="common-form">小程序发货</div>
|
<el-form-item label="小程序发货" prop="is_send_wx">
|
<el-checkbox v-model="form.is_send_wx">向小程序发货</el-checkbox>
|
<div class="tips">后台发货后自动向小程序发货</div>
|
</el-form-item>
|
|
<div class="common-form">日志记录</div>
|
<el-form-item label="是否记录查询日志" prop="customer">
|
<el-checkbox v-model="form.is_get_log">是否记录查询日志</el-checkbox>
|
<div class="tips">如果记录,日志量会有点大</div>
|
</el-form-item>
|
<div class="common-form">物流查询api</div>
|
<el-form-item label="快递100 Customer" :rules="[{required: true,message: ' '}]" prop="customer">
|
<el-input v-model="form.customer" placeholder="" class="max-w460"></el-input>
|
<div class="tips">用于查询物流信息,<el-link :underline="false" href="https://www.kuaidi100.com/openapi/" target="_blank"
|
type="primary">快递100申请</el-link>
|
</div>
|
</el-form-item>
|
<el-form-item label="快递100 Key" :rules="[{required: true,message: ' '}]" prop="key">
|
<el-input v-model="form.key" placeholder="" class="max-w460"></el-input>
|
</el-form-item>
|
<div class="common-form">商户入驻设置</div>
|
<el-form-item label="是否开启短信验证">
|
<div>
|
<el-radio v-model="form.sms_open" label="1">开启</el-radio>
|
<el-radio v-model="form.sms_open" label="0">关闭</el-radio>
|
</div>
|
</el-form-item>
|
<div class="common-form">平台运营设置</div>
|
<el-form-item label="抽成百分比(%)" :rules="[{required: true,message: ' '}]" prop="commission_rate">
|
<el-input v-model="form.commission_rate" placeholder="抽查比例" class="max-w460" type="number" @keyup.native="renumber($event)"></el-input>
|
</el-form-item>
|
<el-form-item label="商品新增是否审核">
|
<div>
|
<el-radio v-model="form.add_audit" label="1">是</el-radio>
|
<el-radio v-model="form.add_audit" label="0">否</el-radio>
|
</div>
|
</el-form-item>
|
<el-form-item label="商品修改是否审核">
|
<div>
|
<el-radio v-model="form.edit_audit" label="1">是</el-radio>
|
<el-radio v-model="form.edit_audit" label="0">否</el-radio>
|
</div>
|
</el-form-item>
|
<el-form-item label="所有商户独立收款" style="display: none;">
|
<div>
|
<el-radio v-model="form.is_independent" :label="1">是</el-radio>
|
<el-radio v-model="form.is_independent" :label="0">否</el-radio>
|
</div>
|
<div class="tips">这里设置了是,则在商户里面的单独设置无效</div>
|
</el-form-item>
|
<div class="common-form">商户图片背景</div>
|
<el-form-item label="商户入住背景" :rules="[{required: true,message: '请选择商户入住图片'}]">
|
<el-button @click="chooseImg('image')">选择图片</el-button>
|
<img class="mt10" v-img-url="form.supplier_image" width="200">
|
</el-form-item>
|
<div class="common-form">企业微信图片背景</div>
|
<el-form-item label="企业微信图片背景" :rules="[{required: true,message: '请选择企业微信图片背景'}]">
|
<el-button @click="chooseImg('qy_qrcode_image')">选择图片</el-button>
|
<img class="mt10" v-img-url="form.qy_qrcode_image" width="200">
|
</el-form-item>
|
<div class="common-form">优惠券领取设置</div>
|
<el-form-item label="仅会员卡会员可领取">
|
<div>
|
<el-radio v-model="form.coupon_card_user" label="1">是</el-radio>
|
<el-radio v-model="form.coupon_card_user" label="0">否</el-radio>
|
</div>
|
</el-form-item>
|
<div class="common-form">注册设置</div>
|
<el-form-item label="注册蹭送会员卡">
|
<div>
|
<el-radio v-model="form.open_card" :label="1">是</el-radio>
|
<el-radio v-model="form.open_card" :label="0">否</el-radio>
|
</div>
|
</el-form-item>
|
<el-form-item label="选择会员卡:" :rules="[{ required: true, message: '请选择会员卡' }]" prop="open_card"
|
v-if="form.open_card">
|
<div class="d-s-c">
|
<el-input v-model="form.card_name" placeholder="" class="max-w460"></el-input>
|
<el-button type="primary" @click="selectCard()">选择会员卡</el-button>
|
</div>
|
</el-form-item>
|
|
<div class="common-form">政策协议</div>
|
<el-form-item label="服务协议" :rules="[{required: true,message: ' '}]" prop="service">
|
<el-input v-model="form.service" placeholder="" class="max-w460"></el-input>
|
<div class="tips">进入app和登录、注册页面显示</el-link>
|
</div>
|
</el-form-item>
|
<el-form-item label="隐私政策" :rules="[{required: true,message: ' '}]" prop="privacy">
|
<el-input v-model="form.privacy" placeholder="" class="max-w460"></el-input>
|
</el-form-item>
|
<!--提交-->
|
<div class="common-button-wrapper">
|
<el-button type="primary" @click="onSubmit" :loading="loading">提交</el-button>
|
</div>
|
</el-form>
|
<!--上传图片-->
|
<Upload v-if="isupload" :isupload="isupload" :type="type" :config="{ total: 3 }" @returnImgs="returnImgsFunc"></Upload>
|
<!--区域 -->
|
<Areas v-if="show_area" :show_area="show_area" :areaModel="areaModel" :areas="options" @closeArea="closeAreaFunc"></Areas>
|
<!--选择会员卡-->
|
<GetCard v-if="open_add" :open_add="open_add" @closeDialog="closeCardDialogFunc($event)">选择会员卡弹出层</GetCard>
|
</div>
|
|
</template>
|
|
<script>
|
import SettingApi from '@/api/setting.js';
|
import Upload from '@/components/file/Upload';
|
import { formatModel } from '@/utils/base.js';
|
import Areas from './dialog/Area';
|
import GetCard from '@/components/card/GetCard';
|
export default {
|
components:{
|
Upload,
|
Areas,
|
GetCard
|
},
|
data() {
|
return {
|
/*是否正在加载*/
|
loading: false,
|
/*form表单数据*/
|
form: {
|
name: '',
|
index_open_city:0,
|
customer: '',
|
key: '',
|
supplier_cash:'',
|
operate_type:'',
|
commission_rate:'',
|
supplier_image:'',
|
qy_qrcode_image:'',
|
sms_open:'',
|
supplier_logo:'',
|
checkedCities: [],
|
edit_audit: 1,
|
add_audit: 1,
|
is_get_log: 0,
|
is_send_wx:0,
|
service: '',
|
privacy: '',
|
store_open: '',
|
citysData:[],
|
province:'',
|
citys:'',
|
regions:'',
|
coupon_card_user: 0,
|
underline_price_show: 0,
|
open_card: 0,
|
card_id: '',
|
card_name: '',
|
store_type:0,
|
is_independent:0
|
},
|
all_type: [],
|
type: [],
|
/*是否打开图片选择*/
|
isupload:false,
|
/*区域数据源*/
|
options: [],
|
/*区域数据源*/
|
optionsMap: {},
|
/*区域选中的model*/
|
areaModel: {
|
index:0
|
},
|
/*显示区域选中*/
|
show_area: false,
|
cityCount:0,
|
regionCount:0,
|
open_add: false
|
};
|
},
|
created() {
|
this.getParams()
|
},
|
|
methods: {
|
|
/*获取配置数据*/
|
getParams() {
|
let self = this;
|
SettingApi.storeDetail({}, true).then(res => {
|
let vars = res.data.vars.values;
|
self.form = formatModel(self.form, vars);
|
|
self.form.checkedCities = res.data.vars.values.delivery_type;
|
// 转成整数,兼容组件
|
for(let i=0;i<self.form.checkedCities.length;i++){
|
self.$set(self.form.checkedCities, i, parseInt(self.form.checkedCities[i]));
|
}
|
self.type = vars.delivery_type;
|
self.form.customer = vars.kuaidi100.customer;
|
self.form.key = vars.kuaidi100.key;
|
self.form.service = vars.policy.service;
|
self.form.privacy = vars.policy.privacy;
|
self.all_type = res.data.all_type;
|
|
if(vars.open_card){
|
self.form.open_card = parseInt(vars.open_card);
|
}
|
|
if(vars.store_type){
|
self.form.store_type = parseInt(vars.store_type);
|
}
|
|
if(vars.is_independent){
|
self.form.is_independent = parseInt(vars.is_independent);
|
}
|
|
self.options = res.data.arr;
|
self.cityCount = res.data.cityCount;
|
//区域转数组
|
self.options.forEach(function(area) {
|
self.optionsMap[area.value] = area;
|
});
|
self.loading=false;
|
|
if (self.form.citys.length==0) return false;
|
var form=self.form;
|
// 转换为整数型
|
for (var key in form.citys) {
|
if (form.citys.hasOwnProperty(key)) {
|
form.citys[key] = parseInt(form.citys[key]);
|
}
|
}
|
form['citysData'] = self.getShowData({
|
province: form.province,
|
citys: form.citys,
|
regions: form.regions,
|
});
|
self.form=form;
|
})
|
.catch(error => {
|
|
});
|
},
|
|
/*选择会员卡*/
|
selectCard() {
|
this.open_add = true;
|
},
|
/*关闭会员卡*/
|
closeCardDialogFunc(e) {
|
let self = this;
|
self.open_add = e.openDialog;
|
if (e.type == 'success') {
|
self.form.card_id = e.params.card_id;
|
self.form.card_name = e.params.card_name;
|
}
|
},
|
|
/*提交*/
|
onSubmit() {
|
let self = this;
|
let params = this.form;
|
if (params.checkedCities.length < 1) {
|
self.$message({
|
message: '配送方式至少选择一种!',
|
type: 'warning'
|
});
|
return;
|
}
|
|
self.$refs.form.validate((valid) => {
|
if (valid) {
|
self.loading = true;
|
// params=JSON.stringify(params);
|
SettingApi.editStore(params, true)
|
.then(data => {
|
self.loading = false;
|
self.$message({
|
message: '恭喜你,商城设置成功',
|
type: 'success'
|
});
|
self.$router.push('/setting/store/index');
|
})
|
.catch(error => {
|
self.loading = false;
|
});
|
}
|
});
|
|
},
|
renumber(e){
|
/* var keynum=window.event ? e.keyCode :e.which;
|
var keycar=String.fromCharCode(keynum);
|
if(keynum==189||keynum==190||keynum==110||keynum==109){
|
this.$message.warning("禁止输入小数和负数")
|
e.target.value=''
|
} */
|
},
|
/*选择图片*/
|
chooseImg(e){
|
this.type = e;
|
this.isupload=true;
|
},
|
|
/*关闭选择图片*/
|
returnImgsFunc(e){
|
this.isupload=false;
|
if (e != null && e.length > 0) {
|
if(this.type == 'logo'){
|
this.form.supplier_logo=e[0].file_path;
|
}else if(this.type == 'image'){
|
this.form.supplier_image=e[0].file_path;
|
}else if(this.type == 'qy_qrcode_image'){
|
this.form.qy_qrcode_image=e[0].file_path;
|
}
|
}
|
},
|
// 格式化选中的区域id
|
getShowData: function(checkedData) {
|
var self = this;
|
var formData = {};
|
|
checkedData.province.forEach(function(provinceId) {
|
var province = self.optionsMap[provinceId],
|
citys = [],
|
cityCount = 0;
|
for (var cityIndex in province.children) {
|
if (province.children.hasOwnProperty(cityIndex)) {
|
var cityItem = province.children[cityIndex];
|
if (self.inArray(cityItem.value, checkedData.citys)) {
|
|
var regions = [],
|
regionsCount = 0;
|
for(var regionIndex in cityItem.children){
|
if (cityItem.children.hasOwnProperty(regionIndex)) {
|
var regionItem = cityItem.children[regionIndex];
|
if (self.inArray(regionItem.value, checkedData.regions)) {
|
regions.push({
|
id: regionItem.value,
|
name: regionItem.label,
|
first: regionItem.first,
|
pinyin: regionItem.pinyin,
|
level: regionItem.level,
|
});
|
}
|
regionsCount++;
|
}
|
}
|
|
citys.push({
|
id: cityItem.value,
|
name: cityItem.label,
|
first: cityItem.first,
|
pinyin: cityItem.pinyin,
|
level: cityItem.level,
|
regions: regions,
|
isAllRegions: regions.length === regionsCount,
|
});
|
}
|
cityCount++;
|
}
|
}
|
formData[province.value] = {
|
id: province.value,
|
name: province.label,
|
citys: citys,
|
isAllCitys: citys.length === cityCount
|
};
|
});
|
return formData;
|
},
|
// 数组中是否存在指定的值
|
inArray: function(val, array) {
|
return array.indexOf(val) > -1;
|
},
|
/*编辑区域*/
|
editAreaClick(e) {
|
this.areaModel.index = e;
|
this.areaModel.type = 'edit';
|
this.show_area = true;
|
},
|
|
/*关闭区域选中弹窗*/
|
closeAreaFunc(e) {
|
let self=this;
|
this.show_area = e.statu;
|
if (e.type != 'confirm') {
|
return;
|
}
|
this.options=e.this_area;
|
|
let provinces = [];
|
let citys = [];
|
let regions = [];
|
e.this_area.forEach(function(province,index) {
|
if (province.checked == true|| province.indeterminate == true) {
|
provinces.push(province['value']);
|
if(province.children.length>0){
|
province.children.forEach(function(city) {
|
if (city.checked == true) {
|
citys.push(city['value']);
|
|
if(city.children.length>0){
|
city.children.forEach(function(region) {
|
if (region.checked == true) {
|
regions.push(region['value']);
|
}
|
});
|
}
|
|
}
|
});
|
}
|
|
}
|
});
|
|
this.form['citysData'] = this.getShowData({
|
province: provinces,
|
citys: citys,
|
regions: regions
|
});
|
//console.log(citys);return;
|
//设置rule的region
|
this.form.province = provinces;
|
this.form.citys = citys;
|
this.form.regions = regions;
|
}
|
}
|
|
};
|
</script>
|
<style>
|
.tips {
|
color: #ccc;
|
}
|
input::-webkit-outer-spin-button,
|
input::-webkit-inner-spin-button {
|
-webkit-appearance: none;
|
}
|
input[type="number"]{
|
-moz-appearance: textfield;
|
}
|
</style>
|