商户入驻修改

This commit is contained in:
DESKTOP-GMUNQ1B\k 2024-03-12 18:06:08 +08:00
parent dc68090d84
commit 86576cec0b
3 changed files with 385 additions and 335 deletions

View File

@ -7,6 +7,9 @@ import request from "@/utils/request.js";
*
*/
export const getCitys = (data) => request.get('city/get_city', data, {
noAuth: true
})
export const getArea = (data) => request.get('city/get_area', data, {
noAuth: true

View File

@ -794,6 +794,11 @@ export function systemFormData(id) {
})
}
//获取商户入驻所签署公司
export function merstreet(data) {
return request.get(`company/street_company`, data);
}
//填写邀请码
export function bindPromotionCode(data) {

View File

@ -39,7 +39,8 @@
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name">商户分类</text>
<picker @change="bindPickerChange" @columnchange="columnchange" mode="selector" :value="index" :range="array" range-key="category_name">
<picker @change="bindPickerChange" @columnchange="columnchange" mode="selector"
:value="index" :range="array" range-key="category_name">
<input placeholder="请选择商户分类" type="text" readonly disabled
v-model="mer_classification">
<view class='iconfont icon-jiantou'></view>
@ -78,38 +79,28 @@
<text class="item-name businessBox">店铺所在地</text>
<picker mode=multiSelector @change="bindPickerChange2" :value="index2"
:range="business" range-key="name" @columnchange="pickerColumnchange">
<input class="businessBox" placeholder="请选择商圈" type="text" readonly disabled
v-model="business_name">
<view class="businessBox"
:style="{'color':(business_name == '' || business_name.length == 5)?'#B2B2B2':''}"
style="width: 400rpx;word-break: keep-all;line-height: 40rpx;font-size: 16px;">
{{(business_name == '' || business_name.length == 5)?'请选择商圈':business_name}}
</view>
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
</view>
</view>
</view>
<!-- <view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">邀请码(选填)</text>
<input type="text" maxlength="30" placeholder="请输入邀请码"
v-model="merchantData.invitation_code" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
</view> -->
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name">公司性质</text>
<picker @change="natureBusinessChange" mode="selector" :value="index" :range="companyTypeList">
<input v-if="nature_business==1" placeholder="请选择公司性质" type="text" readonly disabled
value="对公户">
<input v-else-if="nature_business==2" placeholder="请选择公司性质" type="text" readonly disabled
value="个体户">
<input v-else placeholder="请选择公司性质" type="text" readonly disabled
value="">
<picker @change="natureBusinessChange" mode="selector" :value="index"
:range="companyTypeList">
<input placeholder="请选择公司性质" type="text" readonly disabled
:value="nature_business==''?'':nature_business==1?'对公户':'个体户'">
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
@ -124,7 +115,8 @@
<view v-if="business_license" class='pictrue' @click='uploadpicText'>
<image :src='business_license'></image>
</view>
<view v-else class='pictrue acea-row row-center-wrapper row-column' @click='uploadpicText'>
<view v-else class='pictrue acea-row row-center-wrapper row-column'
@click='uploadpicText'>
<text class='iconfont icon-icon25201'></text>
<view>上传图片</view>
</view>
@ -136,10 +128,9 @@
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">详细地址</text>
<input type="text" maxlength="30" placeholder="请输入详细地址"
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.address" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
@ -149,10 +140,9 @@
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">公司名称</text>
<input type="text" maxlength="30" placeholder="请输入公司名称"
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.company_name" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
@ -160,7 +150,7 @@
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">法人名称</text>
<input type="text" placeholder="请输入法人名称" v-model="merchantData.user_name"
<input type="text" placeholder="自动识别" v-model="merchantData.user_name"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
@ -169,21 +159,13 @@
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">社会信用代码</text>
<input type="text" maxlength="30" placeholder="请输入社会信用代码"
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.social_credit_code" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
</view>
<!-- <view class="item">
<view class="acea-row row-middle">
<text class="item-name">是否农贸市场</text>
<u-switch v-model="isnm" @change="change" activeColor="#42CA4C"></u-switch>
</view>
</view> -->
<view class="item no-border">
<view class='acea-row row-middle'>
<text class="item-title">请上传行业相关其他资质证明图片</text>
@ -202,6 +184,60 @@
</view>
</view>
</view>
<view class="item" v-if="nature_business==1">
<view class="acea-row row-middle">
<text class="item-name">对公账号</text>
<input type="number" placeholder="请输入对公账号" v-model="merchantData.bank_code"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item" v-else>
<view class="acea-row row-middle">
<text class="item-name">银行卡号</text>
<input type="number" placeholder="请输入银行卡号" v-model="merchantData.bank_code"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">开户银行</text>
<input type="text" maxlength="30" placeholder="请输入开户银行名称"
v-model="merchantData.bank_username" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">开户网点</text>
<input type="text" placeholder="请输入开户网点" v-model="merchantData.bank_opening"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item" v-if="nature_business==2">
<view class="acea-row row-middle">
<text class="item-name">持卡人</text>
<input type="text" placeholder="请输入持卡人姓名" v-model="merchantData.bank_card_username"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item no-border" v-if="nature_business==2">
<view class='acea-row row-middle'>
<text class="item-title" style="margin-right: 20rpx;">请上传银行卡正面照片</text>
<text class="item-desc">(支持JPGPNGJPEG)</text>
<view class="upload">
<view v-if="bank_front" class='pictrue' @click='uploadpicBack'>
<image :src='bank_front'></image>
</view>
<view v-else class='pictrue acea-row row-center-wrapper row-column'
@click='uploadpicBack'>
<text class='iconfont icon-icon25201'></text>
<view>上传图片</view>
</view>
</view>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">联系电话</text>
@ -246,11 +282,12 @@
</form>
<view class="settlementAgreement" v-if="showProtocol">
<view class="setAgCount" style="width: 656rpx;height: 458px;">
<i class="icon iconfont icon-cha" @click="showProtocol = false"></i>
<view class="close" @click="showProtocol = false">
<u-icon name="close-circle-fill" color="#B4B1B4" size="24"></u-icon>
</view>
<div class="title">{{isType ? '店铺类型说明' : '商户入驻协议'}}</div>
<view class="content">
<jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser>
<!-- <view v-html="protocol"></view> -->
</view>
</view>
</view>
@ -278,10 +315,8 @@
<view class="setAgCountbtn">
<view class="border"></view>
<!-- <button class="setAgCountbtna" @click="refuse">
拒绝
</button> -->
<button :class="num>0?'setAgCountbtnb':'setAgCountbtnc'" class="btn" :disabled="num!=0" @click="agree">
<button :class="num>0?'setAgCountbtnb':'setAgCountbtnc'" class="btn" :disabled="num!=0"
@click="agree">
<text v-if="num>0">请仔细阅读协议 {{num}}秒后可提交</text>
<text v-else>同意本协议</text>
</button>
@ -333,12 +368,12 @@
import {
getCaptcha,
getAgreementApi,
merstreet
} from "@/api/user";
import {
getStreet,
getArea,
getVillage
getVillage,
getCitys
} from "@/api/article.js"
import {
mapGetters
@ -355,7 +390,9 @@
import {
HTTP_REQUEST_URL
} from '@/config/app';
import { Toast } from '../../../libs/uniApi';
import {
Toast
} from '../../../libs/uniApi';
const app = getApp();
export default {
components: {
@ -392,6 +429,7 @@ import { Toast } from '../../../libs/uniApi';
invitation_code: '',
},
business_license: '', //
bank_front: '', //
validate: false,
successful: false,
keyCode: "",
@ -414,11 +452,13 @@ import { Toast } from '../../../libs/uniApi';
mer_type_id: ''
}],
StreetTyoeArr: [{
city_id: '',
area_id: '',
street_id: '',
village_id: ''
}],
mer_storeType: '',
city_id: '',
area_id: '',
street_id: '',
village_id: '',
@ -451,8 +491,8 @@ import { Toast } from '../../../libs/uniApi';
computed: configMap({
sys_intention_agree: ''
}, mapGetters(['isLogin', 'viewColor', 'keyColor'])),
onLoad(options) {
onLoad(options) {
if (this.isLogin) {
this.getClassfication();
this.getStoreType();
@ -468,14 +508,10 @@ import { Toast } from '../../../libs/uniApi';
this.$nextTick(function() {
this.getGoodsDetails(options.mer_i_id)
})
}
else this.getArea()
} else this.getCity();
this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 45;
},
onShow() {
},
onReady() {},
methods: {
//
codelist() {
@ -483,12 +519,14 @@ import { Toast } from '../../../libs/uniApi';
this.codenote = res.data.list
})
},
//退
logout() {
uni.switchTab({
url: '/pages/user/index'
})
},
//
recuo() {
if (this.num > 0) {
@ -499,25 +537,15 @@ import { Toast } from '../../../libs/uniApi';
this.isshow = false
}
},
//
refuse() {
uni.switchTab({
url: '/pages/user/index'
})
},
countDown() {
let {
num
} = this;
// if (num === 3) this.nums = true;
num = num > 0 ? num - 1 : "0";
setTimeout(() => {
this.num = num;
if (num == '0') {
// this.launchApp()
return
}
if (this.isshow == false && this.num > 0) {
@ -526,13 +554,10 @@ import { Toast } from '../../../libs/uniApi';
}
this.countDown();
}, 1000);
},
//
shoplist(val) {
agreeiness({
type: val
}).then(res => {
@ -540,68 +565,99 @@ import { Toast } from '../../../libs/uniApi';
})
},
//
// change(e) {
// this.isnum = (e === true ? 1 : 0)
// },
//
getVillage(e) {
getVillage(street = null) {
const self = this;
getVillage({
street_code: e
street_code: street
}).then(res => {
self.$set(self.business, 2, res.data);
self.$set(self.business, 3, res.data);
if (self.mer_i_id && !this.business_name) {
let area = self.business[0].find(item=>item.code==self.area_id)?.name;
let street = self.business[1].find(item=>item.code==self.street_id)?.name;
let village = self.business[2].find(item=>item.id==self.village_id)?.name;
this.business_name = `${area} ${street} ${village}`;
this.getArea();
let city = self.business[0].find(item => item.code == self.city_id)?.name;
const zero = self.business[0].findIndex(item => item.code == self.city_id);
this.index2[0] = zero;
let area = self.business[1].find(item => item.code == self.area_id)?.name;
const one = self.business[0].findIndex(item => item.code == self.area_id);
this.index2[1] = one;
let street = self.business[2].find(item => item.code == self.street_id)?.name;
const two = self.business[0].findIndex(item => item.code == self.street_id);
this.index2[2] = two;
let village = self.business[3].find(item => item.id == self.village_id)?.name;
const three = self.business[0].findIndex(item => item.code == self.village_id);
this.index2[3] = three;
this.business_name = `${city} ${area} ${street} ${village}`;
}
})
},
//
getStreet(e, street) {
getStreet(area = null, street = null) {
const self = this;
getStreet({
area_code: e
area_code: area
}).then(res => {
self.$set(self.business, 1, res.data)
self.getVillage(street?street:self.business[1][0].code)
this.business[2] = res.data;
street = street == null ? self.business[2][0].code : street;
self.getVillage(street)
})
},
//
getArea(code=null, street=null) {
getArea(city = null, area = null, street = null) {
getArea({
city_code: 510500
city_code: city
}).then(res => {
this.business[0] = res.data;
this.code1 = code ? code : this.business[0][0].code;
this.getStreet(this.code1, street)
this.business[1] = res.data;
area = area == null ? this.business[1][0].code : area;
this.getStreet(area, street)
})
},
//
getCity(city = null, area = null, street = null) {
getCitys().then(res => {
this.business[0] = res.data;
const code = this.business[0][0].code; //
city = city == null ? code : city;
this.getArea(city, area, street);
})
},
//
pickerColumnchange(e) {
if (e.detail.column === 0) {
this.getStreet(this.business[0][e.detail.value].code)
if (e.detail.column === 0) { //0
this.getArea(this.business[0][e.detail.value].code);
this.index2[0] = e.detail.value
this.index2[1] = 0
this.index2[2] = 0
this.index2[3] = 0
} else if (e.detail.column === 1) {
this.getVillage(this.business[1][e.detail.value].code)
this.getStreet(this.business[1][e.detail.value].code)
this.index2[1] = e.detail.value
this.index2[2] = 0
} else if (e.detail.column === 1) {
this.index2[3] = 0
} else if (e.detail.column === 2) {
this.getVillage(this.business[2][e.detail.value].code)
this.index2[2] = e.detail.value
this.index2[3] = 0
} else if (e.detail.column == 3) {
this.index2[3] = e.detail.value
}
},
getConfig() {
this.isType = false;
this.showProtocol = true;
//
this.protocol = this.sys_intention_agree
},
/*获取发票说明*/
getAgreement() {
let that = this
@ -609,16 +665,13 @@ import { Toast } from '../../../libs/uniApi';
that.isType = true
getAgreementApi('sys_merchant_type').then(res => {
that.protocol = res.data.sys_merchant_type
})
},
//
getGoodsDetails(id) {
getGoodsDetails(id).then(res => {
let arr = Object.keys(this.merchantData)
let resData = res.data
arr.map(item => {
this.merchantData.enterprise_name = resData.mer_name
this.merchantData.user_name = resData.name
this.merchantData.phone = resData.phone
@ -628,18 +681,29 @@ import { Toast } from '../../../libs/uniApi';
this.merchantData.invitation_code = resData.invitation_code
this.merchantData.classification = resData.merchant_category_id
this.merchantData.mer_type = resData.mer_type_id
this.city_id = resData.city_id;
this.area_id = resData.area_id
this.street_id = resData.street_id
this.mer_storeType = resData.mer_storeType
this.village_id = resData.village_id
})
this.village_id = resData.village_id;
const bankInfo = resData.financial_bank ? JSON.parse(resData.financial_bank) : '';
this.$set(this.merchantData, 'bank_code', bankInfo.bank_code);
this.$set(this.merchantData, 'bank_username', bankInfo.bank);
this.$set(this.merchantData, 'bank_opening', bankInfo.bank_branch);
this.$set(this.merchantData, 'bank_card_username', bankInfo.name);
this.bank_front = bankInfo.bank_front[0] ? bankInfo.bank_front[0] : '';
this.nature_business = resData.is_company == 1 ? 1 : 2;
this.business_license = resData.images[0];
resData.images.shift();
this.pics = resData.images;
this.mer_classification = this.getCategoryName(resData.merchant_category_id, this.array)
this.mer_storeType = this.getStoreTypeName(resData.mer_type_id, this.storeTypeArr)
this.business_name = '';
this.getArea(this.area_id, this.street_id);
this.getCity(this.city_id, this.area_id, this.street_id);
if (resData.mer_type_id != 12) {
this.shoplist('mer_services_agree')
} else {
@ -648,6 +712,7 @@ import { Toast } from '../../../libs/uniApi';
uni.hideLoading();
})
},
//
getCategoryName(id, arr) {
for (let i = 0; i < arr.length; i++) {
@ -656,6 +721,7 @@ import { Toast } from '../../../libs/uniApi';
}
}
},
//
getStoreTypeName(id, arr) {
for (let i = 0; i < arr.length; i++) {
@ -664,34 +730,30 @@ import { Toast } from '../../../libs/uniApi';
}
}
},
//
natureBusinessChange(e) {
this.nature_business = this.companyTypeList[e.detail.value] == '个体户' ? 2 : 1;
},
bindPickerChange: function(e) {
// console.log(e.detail);
// this.index = e.target.value[1];
let idx = e.target.value;
// let idx = e.target.value[1];
this.merchantData.classification = this.array[idx]['merchant_category_id']
this.mer_classification = this.array[idx]['category_name']
// this.merchantData.classification = this.bindPickerChangeidx[idx]['store_category_id']
// this.mer_classification = this.bindPickerChangeidx[idx]['cate_name']
this.validateBtn()
},
columnchange(e) {
// console.log(e.detail);
if (e.detail.column == 0) {
this.bindPickerChangeidx = this.array[e.detail.value].children;
}
},
bindPickerChange1: function(e) {
bindPickerChange1: function(e) {
this.index1 = e.target.value
let idx = e.target.value
this.merchantData.mer_type = this.storeTypeArr[idx]['mer_type_id']
this.mer_storeType = this.storeTypeArr[idx]['type_name']
// console.log(this.merchantData.mer_type)
if (this.storeTypeArr[idx]['type_code'] == 'TypeStore' && this.merchantData.mer_type) {
this.shoplist('mer_services_agree')
} else {
@ -701,61 +763,26 @@ import { Toast } from '../../../libs/uniApi';
},
bindPickerChange2: function(e) {
// console.log(e.detail.value)
this.index2 = e.detail.value
this.business_name =
`${this.business[0][this.index2[0]].name} ${this.business[1][this.index2[1]].name} ${this.business[2][this.index2[2]].name}`
this.area_id = this.business[0][this.index2[0]].code
this.street_id = this.business[1][this.index2[1]].code
this.village_id = this.business[2][this.index2[2]].id
if(this.merchantData.mer_type==12) return ; //
merstreet({
street_code: this.street_id
}).then((res) => {
if (res.code == 0) {
this.company = ''
this.organization_code = ''
this.$util.Tips({
title: res.msg
});
return false;
} else {
this.company = res.data.title
this.organization_code = res.data.organization_code
}
}).catch(res => {
console.log(res)
})
`${this.business[0][this.index2[0]].name} ${this.business[1][this.index2[1]].name} ${this.business[2][this.index2[2]].name} ${this.business[3][this.index2[3]].name}`
this.city_id = this.business[0][this.index2[0]].code;
this.area_id = this.business[1][this.index2[1]].code;
this.street_id = this.business[2][this.index2[2]].code
this.village_id = this.business[3][this.index2[3]].id
},
//
getClassfication: function() {
merClassifly()
.then(res => {
merClassifly().then(res => {
this.array = res.data
})
.catch(res => {
}).catch(res => {
this.$util.Tips({
title: res
});
});
// getCategoryList()
// .then(res => {
// // console.log(res);
// res.data.list.forEach(item=>{
// item.category_name = item.cate_name;
// item.merchant_category_id = item.store_category_id;
// })
// this.array = res.data.list;
// this.bindPickerChangeidx = this.array[0].children;
// })
// .catch(res => {
// this.$util.Tips({
// title: res
// });
// });
},
//
getStoreType: function() {
getStoreTypeApi()
@ -817,6 +844,12 @@ import { Toast } from '../../../libs/uniApi';
that.$set(that, 'pics', that.pics);
});
},
uploadpicBack: function() {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
that.bank_front = res.data.path;
});
},
/**
* 上传图片识别文字
*
@ -855,11 +888,9 @@ import { Toast } from '../../../libs/uniApi';
},
getCode() {
let that = this
getCodeApi()
.then(res => {
getCodeApi().then(res => {
that.keyCode = res.data.key;
})
.catch(res => {
}).catch(res => {
that.$util.Tips({
title: res
});
@ -896,6 +927,7 @@ import { Toast } from '../../../libs/uniApi';
}
});
},
getcaptcha() {
let that = this
getCaptcha().then(data => {
@ -905,6 +937,7 @@ import { Toast } from '../../../libs/uniApi';
})
that.isShowCode = true;
},
sendCode() {
if (this.disabled) return;
this.disabled = true;
@ -922,20 +955,16 @@ import { Toast } from '../../../libs/uniApi';
}
}, 1000);
},
onConfirm(val) {
this.region = val.checkArr[0] + '-' + val.checkArr[1] + '-' + val.checkArr[2];
},
ChangeIsAgree: function(e) {
this.isAgree = !this.isAgree;
this.validateBtn();
},
//
//
showxy() {
this.isshow = true
},
//
agree() {
let that = this;
@ -953,12 +982,23 @@ import { Toast } from '../../../libs/uniApi';
is_company: that.nature_business == 1 ? 1 : 0, // , 1, 0
mer_type_id: that.merchantData.mer_type,
mer_storeType: this.mer_storeType,
city_id: this.city_id,
area_id: this.area_id,
street_id: this.street_id,
village_id: this.village_id,
is_nmsc: this.isnum,
images: [this.business_license, ...that.pics]
images: [this.business_license, ...that.pics],
financial_bank: {
//
bank_code: this.merchantData.bank_code,
bank: this.merchantData.bank_username,
bank_branch: this.merchantData.bank_opening,
name: this.nature_business == 1 ? that.merchantData.company_name : this.merchantData
.bank_card_username,
bank_front: [this.bank_front]
}
}
that.validate = false;
if (that.mer_i_id) {
updateGoodsRecord(that.mer_i_id, requestData).then(res => {
@ -1231,7 +1271,7 @@ import { Toast } from '../../../libs/uniApi';
.merchantsSettled {
background-image: linear-gradient(var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
min-height: 2600rpx;
min-height: 3200rpx;
position: relative;
}
@ -1566,6 +1606,12 @@ import { Toast } from '../../../libs/uniApi';
}
}
.settlementAgreement .setAgCount .close {
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .icon {
font-size: 42rpx;
color: #b4b1b4;
@ -1582,19 +1628,16 @@ import { Toast } from '../../../libs/uniApi';
}
.settlementAgreement .setAgCount .content {
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
overflow-y: scroll;
padding-bottom: 20rpx;
}
.settlementAgreement .setAgCount .contenta {
color: #333;
font-size: 26rpx;
line-height: 22px;
@ -1602,8 +1645,6 @@ import { Toast } from '../../../libs/uniApi';
text-justify: distribute-all-lines;
height: 75%;
overflow-y: scroll;
}
.setAgCountbtn {
@ -1668,7 +1709,8 @@ import { Toast } from '../../../libs/uniApi';
width: 100vw;
height: 100%;
border-radius: 40rpx 40rpx 0 0;
box-shadow: 0px -5px 5px -2px rgba(0, 0, 0, 0.2); /* 在上边框添加阴影 */
box-shadow: 0px -5px 5px -2px rgba(0, 0, 0, 0.2);
/* 在上边框添加阴影 */
}
.btn {