修改省市区

This commit is contained in:
1154079537 2024-04-30 17:57:27 +08:00
parent bef3fb22e9
commit 5ffd91762a
3 changed files with 118 additions and 75 deletions

View File

@ -1,18 +1,22 @@
import request from './request_area' import request from './request_area'
/* /*
获取第一级商圈 获取第一级商圈
*/ */
export const get_area = (data) => request.get('api/city/get_area', data) export const get_area = (data) => request.get('api/city/get_area', data)
/* /*
获取第二级商圈 获取第二级商圈
*/ */
export const get_stree = (data) => request.get('api/city/get_street', data) export const get_stree = (data) => request.get('api/city/get_street', data)
/* /*
获取第三级级商圈 获取第三级级商圈
*/ */
export const get_village = (data) => request.get('api/city/get_village', data) export const get_village = (data) => request.get('api/city/get_village', data)
// 城市
export const get_city = (data) => request.get('api/city/get_city', data) export const get_city = (data) => request.get('api/city/get_city', data)
// 省份
export const get_province = (data) => request.get('api/city/get_province', data)

View File

@ -172,8 +172,6 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="资质:"> <el-form-item label="资质:">
<div class="demo-image__preview"> <div class="demo-image__preview">
@ -186,7 +184,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注:"> <el-form-item label="备注:">
<el-input readony :value="statusAuditForm.mark" /> <el-input v-mode ="statusAuditForm.mark" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -266,8 +264,6 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="资质:"> <el-form-item label="资质:">
<div class="demo-image__preview"> <div class="demo-image__preview">
@ -278,8 +274,6 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注:"> <el-form-item label="备注:">
<el-input readony :value="statusAuditForm.mark" /> <el-input readony :value="statusAuditForm.mark" />
@ -390,11 +384,11 @@ export default {
this.$refs.searchForm.resetFields() this.$refs.searchForm.resetFields()
this.getList(1) this.getList(1)
}, },
statusChange(tab) { // statusChange(tab) {
this.tableFrom.status = tab; // this.tableFrom.status = tab;
this.tableFrom.page = 1; // this.tableFrom.page = 1;
this.getList(""); // this.getList("");
}, // },
// //
onchangeTime(e) { onchangeTime(e) {
this.timeVal = e; this.timeVal = e;
@ -445,7 +439,7 @@ export default {
// //
onchangeIsShow(item) { onchangeIsShow(item) {
this.statusAuditVisible = true; this.statusAuditVisible = true;
this.statusAuditForm = item; this.statusAuditForm = Object.assign(this.statusAuditForm,item)
this.$set(this.statusAuditForm, 'state', 1); this.$set(this.statusAuditForm, 'state', 1);
this.$set(this.statusAuditForm, 'create_mer', 1); this.$set(this.statusAuditForm, 'create_mer', 1);
}, },

View File

@ -1,6 +1,6 @@
<template> <template>
<el-form ref="merDataField" size="small" :rules="ruleValidate" :model="merData" label-width="120px" <el-form ref="merDataField" size="small" :rules="ruleValidate" :model="merData" label-width="120px"
@submit.native.prevent> @submit.native.prevent>
<el-tabs v-loading="loading" type="border-card" v-model="activeName"> <el-tabs v-loading="loading" type="border-card" v-model="activeName">
<el-tab-pane label="基本信息" name="detail"> <el-tab-pane label="基本信息" name="detail">
<div class="section"> <div class="section">
@ -8,12 +8,12 @@
<el-row :gutter="24" class="mt20"> <el-row :gutter="24" class="mt20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户名称:" prop="mer_name"> <el-form-item label="商户名称:" prop="mer_name">
<el-input size="small" v-model="merData.mer_name" placeholder="请填写商户名称" class="selWidth" /> <el-input size="small" v-model="merData.mer_name" placeholder="请填写商户名称" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户地址:" prop="mer_address"> <el-form-item label="商户地址:" prop="mer_address">
<el-input size="small" v-model="merData.mer_address" placeholder="请填写详细地址" class="selWidth" /> <el-input size="small" v-model="merData.mer_address" placeholder="请填写详细地址" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -21,7 +21,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户分类:" prop="category_id"> <el-form-item label="商户分类:" prop="category_id">
<el-select size="small" v-model="merData.category_id" placeholder="请选择" class="selWidth"> <el-select size="small" v-model="merData.category_id" placeholder="请选择" class="selWidth">
<el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -38,27 +38,28 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="店铺类型:" prop="type_id"> <el-form-item label="店铺类型:" prop="type_id">
<el-select size="small" v-model="merData.type_id" placeholder="请选择" class="selWidth"> <el-select size="small" v-model="merData.type_id" placeholder="请选择" class="selWidth">
<el-option v-for="item in storeType" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in storeType" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="推荐商户:" prop="is_best"> <el-form-item label="推荐商户:" prop="is_best">
<el-switch v-model="merData.is_best" :active-value="1" :inactive-value="0" :width="50" active-text="" <el-switch v-model="merData.is_best" :active-value="1" :inactive-value="0" :width="50" active-text=""
inactive-text="否" /> inactive-text="否"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="排序:" prop="sort"> <el-form-item label="排序:" prop="sort">
<el-input-number size="small" v-model="merData.sort" controls-position="right" placeholder="请输入排序" /> <el-input-number size="small" v-model="merData.sort" controls-position="right"
placeholder="请输入排序"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户状态:" prop="status"> <el-form-item label="商户状态:" prop="status">
<el-switch v-model="merData.status" :active-value="1" :inactive-value="0" :width="55" active-text="开启" <el-switch v-model="merData.status" :active-value="1" :inactive-value="0" :width="55" active-text="开启"
inactive-text="关闭" /> inactive-text="关闭"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -66,28 +67,37 @@
<el-row> <el-row>
<el-col> <el-col>
<el-form-item label="店铺商圈:"> <el-form-item label="店铺商圈:">
<el-select v-model="merData.province_id" placeholder="请选择省份" class="selWidth"
@change="cityChange($event, 5)" style="width:150px;"
v-if="provinceList && provinceList.length > 0">
<el-option v-for="(item, indx) in provinceList" :key="indx" :value="Number(item.code)"
:label="item.name"/>
</el-select>
<el-select v-model="merData.city_id" placeholder="请选择城市" class="selWidth" <el-select v-model="merData.city_id" placeholder="请选择城市" class="selWidth"
@change="cityChange($event, 1)" style="width:150px;" v-if="cityList && cityList.length > 0"> @change="cityChange($event, 1)" style="width:150px;" v-if="cityList && cityList.length > 0">
<el-option v-for="(item, indx) in cityList" :key="indx" :value="Number(item.code)" <el-option v-for="(item, indx) in cityList" :key="indx" :value="Number(item.code)"
:label="item.name" /> :label="item.name"/>
</el-select> </el-select>
<el-select v-model="merData.area_id" placeholder="请选择区县" class="selWidth" <el-select v-model="merData.area_id" placeholder="请选择区县" class="selWidth"
@change="cityChange($event, 2)" style="width:150px;" v-if="areaList && areaList.length > 0"> @change="cityChange($event, 2)" style="width:150px;" v-if="areaList && areaList.length > 0">
<el-option v-for="(item, indx) in areaList" :key="indx" :value="Number(item.code)" <el-option v-for="(item, indx) in areaList" :key="indx" :value="Number(item.code)"
:label="item.name" /> :label="item.name"/>
</el-select> </el-select>
<el-select v-model="merData.street_id" placeholder="请选择街道" class="selWidth" <el-select v-model="merData.street_id" placeholder="请选择街道" class="selWidth"
@change="cityChange($event, 3)" style="width:150px;" v-if="streetList && streetList.length > 0"> @change="cityChange($event, 3)" style="width:150px;"
v-if="streetList && streetList.length > 0">
<el-option v-for="(item, indx) in streetList" :key="indx" :value="Number(item.code)" <el-option v-for="(item, indx) in streetList" :key="indx" :value="Number(item.code)"
:label="item.name" /> :label="item.name"/>
</el-select> </el-select>
<el-select v-model="merData.village_id" placeholder="请选择社区" class="selWidth" <el-select v-model="merData.village_id" placeholder="请选择社区" class="selWidth"
@change="cityChange($event, 4)" style="width:150px;" v-if="villageList && villageList.length > 0"> @change="cityChange($event, 4)" style="width:150px;"
v-if="villageList && villageList.length > 0">
<el-option v-for="(item, indx) in villageList" :key="indx" :value="Number(item.id)" <el-option v-for="(item, indx) in villageList" :key="indx" :value="Number(item.id)"
:label="item.name" /> :label="item.name"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -105,7 +115,8 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注:" prop="mark"> <el-form-item label="备注:" prop="mark">
<el-input type="textarea" size="small" v-model="merData.mark" placeholder="请填写备注" class="selWidth" /> <el-input type="textarea" size="small" v-model="merData.mark" placeholder="请填写备注"
class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -133,12 +144,14 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="手续费设置:" prop="commission_rate"> <el-form-item label="手续费设置:" prop="commission_rate">
<el-switch v-model="merData.commission_switch" :active-value="1" :inactive-value="0" :width="55" <el-switch v-model="merData.commission_switch" :active-value="1" :inactive-value="0" :width="55"
active-text="开启" inactive-text="关闭" /> active-text="开启" inactive-text="关闭"/>
<span v-if="merData.commission_switch"> <span v-if="merData.commission_switch">
<el-input-number :min="0" v-model="merData.commission_rate" size="small" controls-position="right" <el-input-number :min="0" v-model="merData.commission_rate" size="small" controls-position="right"
placeholder="请输入手续费" />% placeholder="请输入手续费"/>%
</span> </span>
<div class="info info-red">(此处如未设置手续费系统会自动读取商户分类下对应手续费此处已设置则优先以此处设置为准)</div> <div class="info info-red">
(此处如未设置手续费系统会自动读取商户分类下对应手续费此处已设置则优先以此处设置为准)
</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -149,19 +162,19 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="商品审核:" prop="is_audit"> <el-form-item label="商品审核:" prop="is_audit">
<el-switch v-model="merData.is_audit" :active-value="1" :inactive-value="0" :width="50" active-text="" <el-switch v-model="merData.is_audit" :active-value="1" :inactive-value="0" :width="50" active-text=""
inactive-text="否" /> inactive-text="否"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="直播间审核:" prop="is_bro_room"> <el-form-item label="直播间审核:" prop="is_bro_room">
<el-switch v-model="merData.is_bro_room" :active-value="1" :inactive-value="0" :width="50" <el-switch v-model="merData.is_bro_room" :active-value="1" :inactive-value="0" :width="50"
active-text="是" inactive-text="否" /> active-text="是" inactive-text="否"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="直播商品:" prop="is_bro_goods"> <el-form-item label="直播商品:" prop="is_bro_goods">
<el-switch v-model="merData.is_bro_goods" :active-value="1" :inactive-value="0" :width="50" <el-switch v-model="merData.is_bro_goods" :active-value="1" :inactive-value="0" :width="50"
active-text="是" inactive-text="否" /> active-text="是" inactive-text="否"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -172,7 +185,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户关键字:" prop="mer_keyword"> <el-form-item label="商户关键字:" prop="mer_keyword">
<el-input size="small" v-model="merData.mer_keyword" placeholder="请填写商户关键字" class="selWidth" /> <el-input size="small" v-model="merData.mer_keyword" placeholder="请填写商户关键字" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -181,7 +194,8 @@
<el-form-item label="商品采集数:"> <el-form-item label="商品采集数:">
<el-input v-model="merData.copy_product_num" size="small" disabled></el-input> <el-input v-model="merData.copy_product_num" size="small" disabled></el-input>
<el-button type="text" @click="modifyCopy" <el-button type="text" @click="modifyCopy"
style="margin-left: 10px;position:absolute;right: -30px;">修改</el-button> style="margin-left: 10px;position:absolute;right: -30px;">修改
</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -194,23 +208,24 @@
<el-row :gutter="24" class="mt20"> <el-row :gutter="24" class="mt20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商户账号:" prop="mer_account"> <el-form-item label="商户账号:" prop="mer_account">
<el-input type="text" size="small" v-model="merData.mer_account" :disabled="!isAdd" class="selWidth" /> <el-input type="text" size="small" v-model="merData.mer_account" :disabled="!isAdd" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="登陆密码:" prop="mer_password"> <el-form-item label="登陆密码:" prop="mer_password">
<el-input type="password" size="small" v-model="merData.mer_password" :disabled="!isAdd" <el-input type="password" size="small" v-model="merData.mer_password" :disabled="!isAdd"
class="selWidth" /> class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="!isAdd" :span="12"> <el-col v-if="!isAdd" :span="12">
<el-form-item label="联系人:" prop="real_name"> <el-form-item label="联系人:" prop="real_name">
<el-input type="text" size="small" placeholder="请填写联系人" v-model="merData.real_name" class="selWidth" /> <el-input type="text" size="small" placeholder="请填写联系人" v-model="merData.real_name"
class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="联系电话:" prop="mer_phone"> <el-form-item label="联系电话:" prop="mer_phone">
<el-input size="small" placeholder="请填写联系电话" v-model="merData.mer_phone" class="selWidth" /> <el-input size="small" placeholder="请填写联系电话" v-model="merData.mer_phone" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -220,11 +235,13 @@
<el-row :gutter="24" class="mt20"> <el-row :gutter="24" class="mt20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="分账商户号:" prop="sub_mchid"> <el-form-item label="分账商户号:" prop="sub_mchid">
<el-input placeholder="请填写分账商户号" size="small" v-model="merData.sub_mchid" class="selWidth" /> <el-input placeholder="请填写分账商户号" size="small" v-model="merData.sub_mchid" class="selWidth"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<div class="info-red" style="margin-left: 120px;">当开启自动分账时每个子商户在微信后台的分账商户号即特约子商户号</div> <div class="info-red" style="margin-left: 120px;">
当开启自动分账时每个子商户在微信后台的分账商户号即特约子商户号
</div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -242,13 +259,15 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { merchantUpdate, merchantCreate } from "@/api/merchant"; import {merchantUpdate, merchantCreate} from "@/api/merchant";
import { import {
get_area, get_area,
get_stree, get_stree,
get_village, get_village,
get_city get_city,
get_province
} from "@/api/shoplist"; } from "@/api/shoplist";
export default { export default {
props: { props: {
merData: { merData: {
@ -285,19 +304,20 @@ export default {
activeName: 'detail', activeName: 'detail',
ruleValidate: { ruleValidate: {
mer_name: [ mer_name: [
{ required: true, message: '请输入商户名称', trigger: 'blur' } {required: true, message: '请输入商户名称', trigger: 'blur'}
], ],
mer_account: [ mer_account: [
{ required: true, message: '请输入商户账号', trigger: 'blur' } {required: true, message: '请输入商户账号', trigger: 'blur'}
], ],
category_id: [ category_id: [
{ required: true, message: '请选择商户分类', trigger: 'change' } {required: true, message: '请选择商户分类', trigger: 'change'}
], ],
type_id: [ type_id: [
{ required: true, message: '请选择店铺类型', trigger: 'change' } {required: true, message: '请选择店铺类型', trigger: 'change'}
], ],
mer_phone: [{ required: true, validator: validatePhone, trigger: 'blur' }], mer_phone: [{required: true, validator: validatePhone, trigger: 'blur'}],
}, },
provinceList: [],
cityList: [], cityList: [],
areaList: [], areaList: [],
streetList: [], streetList: [],
@ -316,44 +336,72 @@ export default {
}, },
mounted() { mounted() {
setTimeout(() => { setTimeout(() => {
this.getCity(this.merData.city_id, this.merData.area_id, this.merData.street_id); this.getProvince(this.merData.province_id, this.merData.city_id, this.merData.area_id, this.merData.street_id);
this.$forceUpdate(); this.$forceUpdate();
}, 200); }, 200);
}, },
methods: { methods: {
// //
getCity(cityCode, areaCode, streetCode) { getProvince(provinceCode, cityCode, areaCode, streetCode) {
get_city().then(res => { get_province().then(res => {
this.cityList = res.data; this.provinceList = res.data;
this.getArea(cityCode, areaCode, streetCode); this.getCity(provinceCode, cityCode, areaCode, streetCode);
}); });
}, },
//
getCity(provinceCode, cityCode, areaCode, streetCode) {
if (provinceCode) {
get_city({province_code: provinceCode}).then(res => {
this.cityList = res.data;
this.getArea(cityCode, areaCode, streetCode);
});
}
},
// //
getArea(cityCode, areaCode, streetCode) { getArea(cityCode, areaCode, streetCode) {
get_area({ city_code: cityCode }).then(res => { if (cityCode) {
this.areaList = res.data; get_area({city_code: cityCode}).then(res => {
this.getStreet(areaCode, streetCode); this.areaList = res.data;
}) this.getStreet(areaCode, streetCode);
})
}
}, },
// //
getStreet(areaCode, streetCode) { getStreet(areaCode, streetCode) {
get_stree({ area_code: areaCode }).then(res => { if (areaCode) {
this.streetList = res.data; get_stree({area_code: areaCode}).then(res => {
this.getVillage(streetCode); this.streetList = res.data;
}) this.getVillage(streetCode);
})
}
}, },
// //
getVillage(street_code) { getVillage(street_code) {
get_village({ street_code }).then(res => { if (street_code) {
this.villageList = res.data; get_village({street_code}).then(res => {
}) this.villageList = res.data;
})
}
}, },
// 1 2 3 4 // 1 2 3 4
cityChange(code, type) { cityChange(code, type) {
if (type == 5) {
this.getCity(code);
this.merData.city_id = "";
this.merData.area_id = "";
this.merData.street_id = "";
this.merData.village_id = "";
this.cityList = [];
this.areaList = [];
this.streetList = [];
this.villageList = [];
}
if (type == 1) { if (type == 1) {
this.getArea(code); this.getArea(code);
this.merData.area_id = ""; this.merData.area_id = "";
@ -389,9 +437,6 @@ export default {
}, },
/*提交信息*/ /*提交信息*/
onSubmit(id) { onSubmit(id) {
console.log(1)
this.$refs['merDataField'].validate(valid => { this.$refs['merDataField'].validate(valid => {
if (valid) { if (valid) {
this.loading = true; this.loading = true;
@ -520,4 +565,4 @@ export default {
.gary { .gary {
color: #aaa; color: #aaa;
} }
</style> </style>