Compare commits

...

4 Commits

Author SHA1 Message Date
赵毅
249c440d61 修复驳回后再次提交报错的bug 2025-10-30 16:22:25 +08:00
赵毅
6b229b8639 完善商家入驻逻辑,保存提交数据 2025-10-30 15:01:32 +08:00
赵毅
a3443ff129 修改商家入驻功能的逻辑 2025-10-29 14:37:41 +08:00
赵毅
49e4f844a4 商家入驻页面添加必填标识 2025-10-29 08:59:44 +08:00
9 changed files with 310 additions and 51 deletions

View File

@ -4,4 +4,6 @@ export const apiArr = {
getHomeBanner: "/api/v2/wechat/home-banner-region-crud/page", //获取首页banner及其广告 getHomeBanner: "/api/v2/wechat/home-banner-region-crud/page", //获取首页banner及其广告
getButtonNum:"/api/v2/wechat/nav-display-crud/info",//获取首页button的行数 数量 getButtonNum:"/api/v2/wechat/nav-display-crud/info",//获取首页button的行数 数量
getHomeButton:"/api/v2/wechat/home-button-region-crud/page", //获取首页button getHomeButton:"/api/v2/wechat/home-button-region-crud/page", //获取首页button
statusQuery:"/api/v2/wechat/store-info-crud/status-query", //门店审核状态查询
}; };

View File

@ -0,0 +1,67 @@
.container {
margin-top: 100rpx;
display: flex;
justify-content: center;
}
.auditStatus {
width: 100px;
height: 100px;
margin: 0 auto;
}
.title {
font-size: 40rpx;
font-weight: bold;
margin: 10rpx 0;
text-align: center;
}
.content{
font-size: 26rpx;
margin-top: 40rpx;
text-align: center;
color: #a9a9a9;
}
.info{
margin-top: 70rpx;
width: 500rpx;
background-color: #f6f6fa;
padding: 20rpx 30rpx;
border-radius: 20rpx;
}
.info view{
display: flex;
justify-content: space-between;
margin: 15rpx 0;
}
.info_text{
color: #999999;
}
.info_text2{
color: #faba5a;
}
.btn{
margin-top: 50rpx;
border: none;
background-color: #ff4218;
color: #ffffff;
border-radius: 50rpx;
}
.warning{
color: #ff4218;
font-size: 27rpx;
margin: 50rpx 0;
}
.warning_title{
font-size: 30rpx;
font-weight: bold;
margin-bottom: 20rpx;
}

View File

@ -0,0 +1,117 @@
<template>
<view class="container">
<view class="auditStatusContainer" v-if="itemObj.status == 1">
<view class="header">
<view class="statusIcon">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/enter_audit1.png" mode="aspectFill" class="auditStatus" />
</view>
<view class="title">
审核中
</view>
</view>
<view class="content">
<view>您的入驻申请正在审核中</view>
<view>请耐心等待工作人员处理</view>
</view>
<view class="info">
<view>
<view class="info_text">申请提交时间</view>
<view>{{ itemObj.create_time }}</view>
</view>
<view>
<view class="info_text">当前审核环节</view>
<view class="info_text2">资质验证中</view>
</view>
</view>
</view>
<view class="auditStatusContainer" v-if="itemObj.status == 2">
<view class="header">
<view class="statusIcon">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/af_√.png" mode="aspectFill"
class="auditStatus" />
</view>
<view class="title">
入驻成功
</view>
</view>
<view class="content">
<view>恭喜您您的店铺已成功入驻我们平台</view>
</view>
<view class="info">
<view>
<view class="info_text">店铺名称</view>
<view>{{ itemObj.merchant_name }}</view>
</view>
<view>
<view class="info_text">入住时间</view>
<view>{{ itemObj.handle_time || '' }}</view>
</view>
<view>
<view class="info_text">店铺ID</view>
<view>{{ itemObj.merchant_code }}</view>
</view>
</view>
<!-- <view>
<button class="btn" @click="goShopManage">进入店铺管理</button>
</view> -->
</view>
<view class="auditStatusContainer" v-if="itemObj.status == 3">
<view class="header">
<view class="statusIcon">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/enter_audit2.png" mode="aspectFill" class="auditStatus" />
</view>
<view class="title">
审核失败
</view>
</view>
<view class="content">
<view>很抱歉您的入驻申请未通过审核</view>
<view>请修改后重新提交</view>
</view>
<view class="info">
<view>
<view class="info_text">申请提交时间</view>
<view>{{ itemObj.create_time }}</view>
</view>
<view>
<view class="info_text">审核完成时间</view>
<view>{{ itemObj.handle_time || '' }}</view>
</view>
</view>
<view class="warning" v-if="itemObj.remark">
<view class="warning_title">审核未通过原因</view>
<view>
{{ itemObj.remark || '' }}
</view>
</view>
<view>
<button class="btn" @click="resubmit">修改并重新提交</button>
</view>
</view>
</view>
</template>
<script>
import { request, NavgateTo } from '../../../utils/index';
import { apiArr } from '../../../api/v2Home.js'
export default {
data() {
return {
itemObj: {}
}
},
onLoad(options) {
this.itemObj = JSON.parse(options.itemObj);
},
methods: {
goShopManage() {
NavgateTo('/packages/storeManagement/index/index');
},
resubmit() {
NavgateTo('/packages/shopEnter/index/index?itemObj=' + JSON.stringify(this.itemObj));
}
}
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -32,6 +32,11 @@ page {
width: 180rpx; width: 180rpx;
} }
.red {
color: #FF370B;
margin-left: 5rpx;
}
.row_con { .row_con {
flex: 1; flex: 1;
padding-bottom: 30rpx; padding-bottom: 30rpx;

View File

@ -2,52 +2,52 @@
<view class="container"> <view class="container">
<view class="Msg"> <view class="Msg">
<view class="row"> <view class="row">
<view class="row_label">门店名称</view> <view class="row_label">门店名称<text class="red">*</text></view>
<view class="row_con"> <view class="row_con">
<input type="text" v-model="store_name" placeholder="需与门牌照名称一致"> <input type="text" v-model="store_name" placeholder="需与门牌照名称一致">
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">所在省</view> <view class="row_label">所在省<text class="red">*</text></view>
<view class="row_con" @click="chooseCity"> <view class="row_con" @click="chooseCity">
<input type="text" disabled v-model="confirmProv.ad_name" placeholder="请选择所在省"> <input type="text" disabled v-model="confirmProv.ad_name" placeholder="请选择所在省">
<u-icon name="arrow-right" color="#999999" size="28"></u-icon> <u-icon name="arrow-right" color="#999999" size="28"></u-icon>
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">所在市</view> <view class="row_label">所在市<text class="red">*</text></view>
<view class="row_con" @click="chooseCity2"> <view class="row_con" @click="chooseCity2">
<input type="text" disabled v-model="confirmCity.short_name" placeholder="请选择所在市"> <input type="text" disabled v-model="confirmCity.short_name" placeholder="请选择所在市">
<u-icon name="arrow-right" color="#999999" size="28"></u-icon> <u-icon name="arrow-right" color="#999999" size="28"></u-icon>
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">所在区</view> <view class="row_label">所在区<text class="red">*</text></view>
<view class="row_con" @click="chooseCity3"> <view class="row_con" @click="chooseCity3">
<input type="text" disabled v-model="confirmBusiness.short_name" placeholder="请选择所在区"> <input type="text" disabled v-model="confirmBusiness.short_name" placeholder="请选择所在区">
<u-icon name="arrow-right" color="#999999" size="28"></u-icon> <u-icon name="arrow-right" color="#999999" size="28"></u-icon>
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">详细地址</view> <view class="row_label">详细地址<text class="red">*</text></view>
<view class="row_con"> <view class="row_con">
<input type="text" v-model="address" placeholder="请输入详细地址"> <input type="text" v-model="address" placeholder="请输入详细地址">
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">联系人</view> <view class="row_label">联系人<text class="red">*</text></view>
<view class="row_con"> <view class="row_con">
<input type="text" v-model="contact_name" placeholder="请输入联系人"> <input type="text" v-model="contact_name" placeholder="请输入联系人">
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">手机号</view> <view class="row_label">手机号<text class="red">*</text></view>
<view class="row_con"> <view class="row_con">
<input type="text" v-model="contact_phone" placeholder="请输入联系方式"> <input type="text" v-model="contact_phone" placeholder="请输入联系方式">
</view> </view>
</view> </view>
<view class="row"> <view class="row">
<view class="row_label">商家分类</view> <view class="row_label">商家分类<text class="red">*</text></view>
<view class="row_con" @click="chooseClassify"> <view class="row_con" @click="chooseClassify">
<input type="text" disabled v-model="confirmClassify.cate_name" placeholder="请选择商家分类"> <input type="text" disabled v-model="confirmClassify.cate_name" placeholder="请选择商家分类">
<u-icon name="arrow-right" color="#999999" size="28"></u-icon> <u-icon name="arrow-right" color="#999999" size="28"></u-icon>
@ -93,7 +93,7 @@
</view> </view>
<view class="row2 mt2"> <view class="row2 mt2">
<view class="row_label">营业执照</view> <view class="row_label">营业执照<text class="red">*</text></view>
<view class="row_con2"> <view class="row_con2">
<u-upload :fileList="imgList5" @afterRead="afterReadImg3" @delete="deletePic3" name="1" multiple <u-upload :fileList="imgList5" @afterRead="afterReadImg3" @delete="deletePic3" name="1" multiple
:maxCount="1"> :maxCount="1">
@ -167,10 +167,44 @@ export default {
show3: false, show3: false,
classify: [], classify: [],
show4: false, show4: false,
itemObj: {},
} }
}, },
methods: { methods: {
// ad_code
parseAdCode(adCode) {
if (!adCode) return;
// ad_code2
const provinceCode = adCode.toString().substring(0, 2) + '0000';
// ad_code4
const cityCode = adCode.toString().substring(0, 4) + '00';
// ad_code6
const districtCode = adCode.toString();
//
const province = this.pro.find(item => item.ad_code == provinceCode);
if (province) {
this.confirmProv = province;
//
this.getCity(provinceCode).then(() => {
const city = this.city.find(item => item.ad_code == cityCode);
if (city) {
this.confirmCity = city;
//
this.getBuss(cityCode).then(() => {
const district = this.buss.find(item => item.ad_code == districtCode);
if (district) {
this.confirmBusiness = district;
}
});
}
});
}
},
cancelBuss() { cancelBuss() {
this.show3 = false; this.show3 = false;
@ -194,7 +228,6 @@ export default {
this.show = false; this.show = false;
}, },
clickPro(e) { clickPro(e) {
console.log(e);
this.show = false; this.show = false;
this.getCity(e.value[0].ad_code) this.getCity(e.value[0].ad_code)
this.confirmProv = e.value[0] this.confirmProv = e.value[0]
@ -205,7 +238,6 @@ export default {
clickClassify(e) { clickClassify(e) {
this.show4 = false; this.show4 = false;
this.confirmClassify = e.value[0] this.confirmClassify = e.value[0]
console.log("🚀 ~ this.confirmClassify:", this.confirmClassify)
}, },
chooseCity() { chooseCity() {
this.show = true; this.show = true;
@ -222,7 +254,6 @@ export default {
afterReadImg(e) { afterReadImg(e) {
e.file.forEach(item => { e.file.forEach(item => {
upload(item.url, res => { upload(item.url, res => {
console.log(res.data.path);
this.imgList.push({ url: this.picUrl + res.data.path }) this.imgList.push({ url: this.picUrl + res.data.path })
this.imgList2.push(res.data.path) this.imgList2.push(res.data.path)
}) })
@ -259,30 +290,12 @@ export default {
}, },
submit() { submit() {
let that = this let that = this
if (!that.contact_name) {
return uni.showToast({
title: '请输入联系人姓名',
duration: 2000
});
}
if (!that.contact_phone) {
return uni.showToast({
title: '请输入联系人手机号',
duration: 2000
});
}
if (!that.store_name) { if (!that.store_name) {
return uni.showToast({ return uni.showToast({
title: '请输入门店名称', title: '请输入门店名称',
duration: 2000 duration: 2000
}); });
} }
if (!that.address) {
return uni.showToast({
title: '请输入address',
duration: 2000
});
}
if (!that.confirmProv.ad_code) { if (!that.confirmProv.ad_code) {
return uni.showToast({ return uni.showToast({
title: '请选择所在省', title: '请选择所在省',
@ -301,6 +314,24 @@ export default {
duration: 2000 duration: 2000
}); });
} }
if (!that.address) {
return uni.showToast({
title: '请输入详细地址',
duration: 2000
});
}
if (!that.contact_name) {
return uni.showToast({
title: '请输入联系人姓名',
duration: 2000
});
}
if (!that.contact_phone) {
return uni.showToast({
title: '请输入联系人手机号',
duration: 2000
});
}
if (!that.confirmClassify.id) { if (!that.confirmClassify.id) {
return uni.showToast({ return uni.showToast({
title: '请选择商家分类', title: '请选择商家分类',
@ -350,35 +381,55 @@ export default {
// //
getPro() { getPro() {
request(MapApi.getArea, "POST", {}).then(res => { return request(MapApi.getArea, "POST", {}).then(res => {
console.log(res);
this.pro = res.rows this.pro = res.rows
}) })
}, },
getCity(e) { getCity(e) {
request(MapApi.getArea, "POST", { return request(MapApi.getArea, "POST", {
parent_ad_code: e parent_ad_code: e
}).then(res => { }).then(res => {
this.city = res.rows this.city = res.rows
}) })
}, },
getBuss(e) { getBuss(e) {
request(MapApi.getArea, "POST", { return request(MapApi.getArea, "POST", {
parent_ad_code: e parent_ad_code: e
}).then(res => { }).then(res => {
this.buss = res.rows this.buss = res.rows
}) })
}, },
getClassify(e) { getClassify() {
request(apiArr.getMerChantCateList, "POST", {}).then(res => { return request(apiArr.getMerChantCateList, "POST", {}).then(res => {
this.classify = res.rows this.classify = res.rows
}) })
}, },
}, },
onLoad() { onLoad(options) {
this.getPro() //
this.getClassify() Promise.all([this.getPro(), this.getClassify()]).then(() => {
//
if(options.itemObj){
this.itemObj = JSON.parse(options.itemObj)
this.store_name = this.itemObj.merchant_name
this.address = this.itemObj.address
this.contact_name = this.itemObj.contact_name
this.contact_phone = this.itemObj.phone
this.confirmClassify = this.classify.find(item => item.id == this.itemObj.merchant_cate_id)
this.bank_card = this.itemObj.bank_card
// ad_code
if (this.itemObj.ad_code) {
this.parseAdCode(this.itemObj.ad_code);
}
this.imgList = this.itemObj.facade_photo.split(",").map(item => ({ url: this.picUrl + item }))
this.imgList2 = this.itemObj.facade_photo.split(",")
this.imgList3 = this.itemObj.interior_photo.split(",").map(item => ({ url: this.picUrl + item }))
this.imgList4 = this.itemObj.interior_photo.split(",")
this.imgList5 = this.itemObj.license_photo.split(",").map(item => ({ url: this.picUrl + item }))
this.imgList6 = this.itemObj.license_photo.split(",")
}
})
} }
} }
</script> </script>

View File

@ -1,5 +1,5 @@
page { page {
background-color: #f6f7fb; background-color: #ffffff;
min-height: 100vh; min-height: 100vh;
padding-bottom: 0; padding-bottom: 0;
} }

View File

@ -1,15 +1,14 @@
<template> <template>
<div class="container"> <div class="container">
<div class="sucessImg"> <div class="sucessImg">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_sucess.png" mode="aspectFill"></image> <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/enter_audit1.png" mode="aspectFill"></image>
</div> </div>
<div class="Msg1">提交成功</div> <div class="Msg1">提交成功</div>
<div class="Msg2"> <div class="Msg2">
<div>入驻申请提交成功!</div> <div>入驻申请提交成功!</div>
<div> <div>
<span>3个工作日内</span> 请耐心等待工作人员处理
将有专属顾问与您联系
</div> </div>
</div> </div>
</div> </div>

View File

@ -521,6 +521,13 @@
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationBarBackgroundColor": "#f6f7fb" "navigationBarBackgroundColor": "#f6f7fb"
} }
},
{
"path": "auditStatus/index",
"style": {
"navigationBarTitleText": "审核状态",
"navigationBarBackgroundColor": "#fff"
}
} }
] ]
}, },

View File

@ -94,12 +94,13 @@
<!-- 广告横幅 --> <!-- 广告横幅 -->
<view class="serverList1"> <view class="serverList1">
<view class="serverList1_left" v-if="serverLeftList.length > 0"> <view class="serverList1_left" v-if="serverLeftList.length > 0">
<image :src="serverLeft" mode="aspectFill" @tap="toAdvertisingView(serverLeftList)"/> <image :src="serverLeft" mode="aspectFill" @tap="toAdvertisingView(serverLeftList)" />
</view> </view>
<view class="serverList1_right" v-if="serverRightList.length > 0"> <view class="serverList1_right" v-if="serverRightList.length > 0">
<view :class="['serverItemRight', `serverItemRight${index + 1}`]" <view :class="['serverItemRight', `serverItemRight${index + 1}`]" v-for="(item, index) in serverRightList"
v-for="(item, index) in serverRightList" :key="index"> :key="index">
<image :src="item.pic_src" mode="" @tap="index === 0 ? toAdvertisingView(serverRightList) : goToPurify(item)"/> <image :src="item.pic_src" mode=""
@tap="index === 0 ? toAdvertisingView(serverRightList) : goToPurify(item)" />
</view> </view>
</view> </view>
</view> </view>
@ -325,7 +326,7 @@ export default {
}, },
methods: { methods: {
goSearchView(){ goSearchView() {
NavgateTo('/packages/shop/search/index'); NavgateTo('/packages/shop/search/index');
}, },
goToShop() { goToShop() {
@ -588,6 +589,11 @@ export default {
return return
} }
if (e.link_url) { if (e.link_url) {
if (e.link_url === '/packages/shopEnter/index/index') {
this.headershopEnterClick()
return
}
// #ifdef APP-PLUS // #ifdef APP-PLUS
uni.navigateTo({ uni.navigateTo({
url: '/pages/webview/webview?url=' + encodeURIComponent(e.link_url) url: '/pages/webview/webview?url=' + encodeURIComponent(e.link_url)
@ -659,8 +665,13 @@ export default {
NavgateTo('/kitchen/index/index'); NavgateTo('/kitchen/index/index');
}, },
headershopEnterClick() { async headershopEnterClick() {
const res = await request(apiArr2.statusQuery, "POST", {}, { silent: false });
if (res.status) {
NavgateTo('/packages/shopEnter/auditStatus/index?itemObj=' + JSON.stringify(res));
} else {
NavgateTo('/packages/shopEnter/index/index'); NavgateTo('/packages/shopEnter/index/index');
}
}, },