update 增加银行卡提示语句

This commit is contained in:
qijq 2025-06-27 03:32:41 +08:00
parent 8e3faaa09e
commit fb7b940831
10 changed files with 324 additions and 50 deletions

View File

@ -107,7 +107,6 @@ export default {
},
onPushMsg: (res) => {
console.log("onPushMsg = " + res.message);
debugger;
_this.messages += "onPushMsg: " + res.message + "\n";
},
onError: (res) => {
@ -149,11 +148,11 @@ export default {
},
});
uni.showToast({
title: cid,
icon: "success",
duration: 20000,
});
// uni.showToast({
// title: cid,
// icon: "success",
// duration: 20000,
// });
const _self = this;
//

View File

@ -257,3 +257,20 @@ export function branchBankSearchApi(params) {
data: params,
});
}
/** 使?
*
* @author Seven
* @data 2025-5-13
* @returns { storeName }
* @see https://mall.gpxscs.cn/mobile/shop/lakala/tk/bank/search
*/
export function CheckShopName(params) {
return http({
url: "/shop/store/check-store-name-exists",
method: "post",
data: params,
baseURL: config.apiMobile,
});
}

View File

@ -36,7 +36,7 @@
text=""
animation="spinner15"
></favorite-loading>
<view v-show="!showLoading">
<view v-show="!showLoading && !isContractSigningaPageTo">
<!--平台审核和拉卡全部通过-->
<view class="" v-if="isPassAudit">
<view class="img-pass"></view>
@ -70,18 +70,6 @@
<view class="img-no-audit"></view>
<view class="tips">暂无申请记录</view>
</view>
<!--签署合同-->
<view
class="contract-content"
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_ec_signed == 2 &&
auditInfo.lkl_ec_result_url
"
>
<view class="contract-tips">您还没有签署请签署</view>
<u-button class="btn-submit" @click="skipuContract">立即签署</u-button>
</view>
<!--初步审核通过签署合同成功-->
<view
class=""
@ -96,6 +84,31 @@
"恭喜您通过初步审核请于24小时内完成合同签署以便我们继续推进后续流程。温馨提示本邀请将于24小时后失效"
</view>
</view>
<!--签署合同-->
<view
class="contract-content"
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_ec_signed == 2 &&
auditInfo.lkl_ec_result_url
"
>
<view class="contract-tips">您还没有签署请签署</view>
<u-button class="btn-submit" @click="skipuContract">立即签署</u-button>
</view>
<!--签署合同成功-->
<view
class=""
v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1
"
>
<view class="img-pass-audit"></view>
<view class="tips">
合同签署完成商家信息正在提交审核请耐心等待
</view>
</view>
<!--签署合同失败-->
<view
class=""
@ -401,6 +414,7 @@
loadingText="数据正在加载中..."
></u-loading-page>
</view>
<u-toast ref="uToast" />
</view>
</template>
@ -503,6 +517,7 @@ export default {
},
computed: {
...mapState("user", ["userInfo"]),
...mapState("audit", ["isContractSigningaPageTo"]),
isPassAudit() {
let info = this.auditInfo;
@ -517,6 +532,26 @@ export default {
);
},
},
watch: {
isContractSigningaPageTo: {
handler: function (val, oldVal) {
if (val) {
uni.showLoading({
title: "数据加载中...",
mask: true,
});
setTimeout(() => {
uni.hideLoading();
this.$store.commit("audit/BACK_PAGE", false);
this.getAuditInfo();
}, 4000);
}
},
// immediate: true,
// deep: true, //
},
},
onShow() {
this.getAuditInfo();
this.getBankList();
@ -543,6 +578,8 @@ export default {
uni.navigateBack();
},
async getAuditInfo() {
if (this.isContractSigningaPageTo) return;
var params = {};
let isContain = this.userInfo.user_mobile.indexOf("86");
@ -1006,10 +1043,9 @@ export default {
//#ifdef H5
filePath = await H5compressImg(filePath, 0.75);
//#endif
let size = getBase64Size(filePath);
console.log("OCR上图图片压缩后为", size);
//#endif
const batchNoRes = await batchNoApi(filePath, file, type);
const batchNo = batchNoRes.batchNo;
@ -1058,11 +1094,10 @@ export default {
//#ifdef H5
filePath = await H5compressImg(filePath, 0.75);
//#endif
let size = getBase64Size(filePath);
console.log("压缩后的大小为:", size);
//#endif
const batchNoRes = await batchNoApi(filePath, file, type);
const batchNo = batchNoRes.batchNo;
@ -1216,6 +1251,23 @@ export default {
this.form.id = this.auditInfo.id;
let approval_invalid_col = this.auditInfo.approval_invalid_col;
let isValidata = true;
approval_invalid_col.forEach((item) => {
if (this.form[item.key] == "") {
this.$refs.uToast.show({
message: item.ruleMessage,
type: "error",
duration: 1000,
});
isValidata = false;
}
});
if (!isValidata) return;
if (this.form.mapAddress) {
let locationItem = uni.getStorageSync("locationItem");
this.form.store_longitude = locationItem.selectAddress.location.lng;
@ -1547,6 +1599,7 @@ export default {
.contract-content {
padding: 0 15%;
text-align: center;
margin-bottom: 60rpx;
.contract-tips {
margin-bottom: 60rpx;

View File

@ -9,6 +9,7 @@
</template>
<script>
import favoriteLoading from "@/components/favorite-loading/favorite-loading.vue";
import { mapActions } from "vuex";
export default {
data() {
return {
@ -17,7 +18,9 @@ export default {
time: null,
};
},
onUnload() {
this.backPage();
},
onLoad(options) {
if (options) {
clearTimeout(this.time);
@ -37,12 +40,7 @@ export default {
}
},
methods: {
onPageStarted() {
debugger;
},
onPageFinished() {
debugger;
},
...mapActions("audit", ["backPage"]),
},
};
</script>

View File

@ -3,6 +3,7 @@ const formConfig = [
key: "contact_name",
label: "联系人",
placeholder: "请输入联系人",
ruleMessage: "请输入联系人",
show: true,
},
{
@ -12,12 +13,14 @@ const formConfig = [
isReadonly: true,
style: "pointer-events: none",
placeholder: "请选择经营品类",
ruleMessage: "请选择经营品类",
show: true,
},
{
key: "store_name",
label: "门店名称",
placeholder: "请输入门店名称",
ruleMessage: "请输入门店名称",
show: true,
},
{
@ -27,12 +30,14 @@ const formConfig = [
isReadonly: true,
style: "pointer-events: none",
placeholder: "请在地图上选择门店地址",
ruleMessage: "请在地图上选择门店地址",
show: true,
},
{
key: "store_address",
label: "详细地址",
placeholder: "详细地址:如:人民大道205号2楼213",
ruleMessage: "请输入详细地址",
show: true,
},
{
@ -40,7 +45,8 @@ const formConfig = [
key: "front_facade_image",
label: "门脸图",
class: "upload-1",
placeholder: "",
placeholder: "请上传门脸图",
ruleMessage: "请上传门脸图",
imgUrlArr: [],
imgWidth: 270,
imgHeight: 150,
@ -51,7 +57,8 @@ const formConfig = [
key: "environment_image",
class: "upload-2",
label: "环境图",
placeholder: "",
placeholder: "请上传环境图",
ruleMessage: "请上传环境图",
imgUrlArr: [],
imgWidth: 270,
imgHeight: 150,
@ -62,7 +69,8 @@ const formConfig = [
key: "biz_license_image",
class: "upload-3",
label: "营业执照",
placeholder: "",
placeholder: "请上传营业执照",
ruleMessage: "请上传营业执照",
imgUrlArr: [],
imgWidth: 125,
imgHeight: 88,
@ -72,24 +80,28 @@ const formConfig = [
key: "biz_license_company",
label: "公司名称",
placeholder: "请输入营业执照公司名或真实的公司名",
ruleMessage: "请输入营业执照公司名或真实的公司名",
show: false,
},
{
key: "legal_person_name",
label: "法人姓名",
placeholder: "请输入法人姓名",
ruleMessage: "请输入法人姓名",
show: false,
},
{
key: "biz_license_number",
label: "注册号",
placeholder: "请输入营业执照编号",
ruleMessage: "请输入营业执照编号",
show: false,
},
{
key: "legal_person_mobile",
label: "法人手机号",
placeholder: "请输入法人手机号",
ruleMessage: "请输入法人手机号",
show: false,
maxLength: 11,
},
@ -97,6 +109,7 @@ const formConfig = [
key: "biz_license_content",
label: "经营范围",
placeholder: "请输入经营范围",
ruleMessage: "请输入经营范围",
show: false,
},
{
@ -106,6 +119,7 @@ const formConfig = [
isReadonly: true,
style: "pointer-events: none",
placeholder: "请选择所属行业",
ruleMessage: "请选择所属行业",
show: true,
},
{
@ -113,7 +127,8 @@ const formConfig = [
key: "license_image",
label: "许可证图片",
class: "upload-4",
placeholder: "",
placeholder: "请上传许可证图片",
ruleMessage: "请上传许可证图片",
imgUrlArr: [],
imgWidth: 125,
imgHeight: 88,
@ -124,6 +139,7 @@ const formConfig = [
key: "license_number",
label: "许可证编号",
placeholder: "请输入许可证编号",
ruleMessage: "请输入许可证编号",
show: false,
},
{
@ -131,7 +147,8 @@ const formConfig = [
key: "legal_person_id_images",
label: "法人身份证正面图片",
class: "upload-5",
placeholder: "",
placeholder: "请上传许法人身份证正面图片",
ruleMessage: "请上传许法人身份证正面图片",
imgUrlArr: [],
imgWidth: 180,
imgHeight: 110,
@ -142,7 +159,8 @@ const formConfig = [
key: "legal_person_id_images2",
label: "法人身份证反面图片",
class: "upload-6",
placeholder: "",
placeholder: "请上传许反面图片",
ruleMessage: "请上传许反面图片",
imgUrlArr: [],
imgWidth: 180,
imgHeight: 110,
@ -152,12 +170,14 @@ const formConfig = [
key: "legal_person_id_number",
label: "法人身份证号码",
placeholder: "请输入法人身份证号",
ruleMessage: "请输入法人身份证号",
show: false,
},
{
key: "legal_person_id_addr",
label: "法人身份证地址",
placeholder: "请输入法人身份证地址",
ruleMessage: "请输入法人身份证地址",
show: false,
},
{
@ -165,6 +185,7 @@ const formConfig = [
key: "legal_person_id_period_begin",
label: "身份证开始有效日期",
placeholder: "请选择身份证开始有效日期",
ruleMessage: "请选择身份证开始有效日期",
style: "pointer-events: none",
show: false,
},
@ -173,6 +194,7 @@ const formConfig = [
key: "legal_person_id_period_end",
label: "身份证截止有效日期",
placeholder: "请选择身份证截止有效日期",
ruleMessage: "请选择身份证截止有效日期",
style: "pointer-events: none",
show: false,
},
@ -182,6 +204,7 @@ const formConfig = [
label: "身份证正面图片",
class: "upload-5",
placeholder: "请上传身份证正面图片",
ruleMessage: "请上传身份证正面图片",
imgUrlArr: [],
imgWidth: 180,
imgHeight: 110,
@ -192,7 +215,8 @@ const formConfig = [
key: "individual_id_images2",
label: "身份证反面图片",
class: "upload-5",
placeholder: "",
placeholder: "请上传身份证身份证反面图片",
ruleMessage: "请上传身份证身份证反面图片",
imgUrlArr: [],
imgWidth: 180,
imgHeight: 110,
@ -202,18 +226,21 @@ const formConfig = [
key: "individual_id_number",
label: "身份证号码",
placeholder: "请输入身份证号码",
ruleMessage: "请输入身份证号码",
show: false,
},
{
key: "individual_id_name",
label: "身份证姓名",
placeholder: "请输入身份证姓名",
ruleMessage: "请输入身份证姓名",
show: false,
},
{
key: "individual_id_addr",
label: "身份证地址",
placeholder: "请输入身份证地址",
ruleMessage: "请输入身份证地址",
show: false,
},
{
@ -221,6 +248,7 @@ const formConfig = [
key: "individual_id_period_begin",
label: "身份证开始有效日期",
placeholder: "请选择身份证有效日期",
ruleMessage: "请选择身份证有效日期",
style: "pointer-events: none",
show: false,
},
@ -229,6 +257,7 @@ const formConfig = [
key: "individual_id_period_end",
label: "身份证截止有效日期",
placeholder: "请选择身份证截止有效日期",
ruleMessage: "请选择身份证截止有效日期",
style: "pointer-events: none",
show: false,
},
@ -237,7 +266,8 @@ const formConfig = [
key: "bankcard_item",
label: "银行卡正面",
class: "bankcard_upload",
placeholder: "请选择银行卡正面",
placeholder: "请上传银行卡正面图片",
ruleMessage: "请上传银行卡正面图片",
imgUrlArr: [],
imgWidth: 268,
imgHeight: 125,
@ -245,11 +275,12 @@ const formConfig = [
uploadIconColor: "#fe4119",
uploadText: "点击上传银行卡正面",
},
{
key: "account_number",
label: "银行卡号",
placeholder: "请输入银行卡号",
ruleMessage: "请输入银行卡号",
show: false,
},
{
@ -257,6 +288,7 @@ const formConfig = [
key: "bank_name",
label: "开户银行",
placeholder: "请选择开户银行",
ruleMessage: "请选择开户银行",
style: "pointer-events: none",
show: false,
},

View File

@ -63,6 +63,13 @@
v-model="form.store_name"
placeholder="请输入门店名称"
/>
<u-button
slot="right"
class="btn-check-shop-name"
@click="handleBtnCheckShopName"
>
检查名字
</u-button>
</u-form-item>
<u-form-item
label="所在地区"
@ -135,6 +142,7 @@
<script>
import { UploadFilePromise } from "../../api/upload";
import navBar from "@/components/uni-nav-bar/uni-nav-bar";
import { CheckShopName } from "@/api/audit";
export default {
components: {
navBar,
@ -188,6 +196,7 @@ export default {
trigger: ["change", "blur"],
},
],
isNamePsss: false,
},
};
},
@ -283,6 +292,15 @@ export default {
}, 600);
},
handleNext() {
if (!this.isNamePsss) {
this.$refs.uToast.show({
message: "请先检查店铺名字是否可用",
type: "error",
duration: 1000,
});
return;
}
this.$refs.uForm.validate().then((valid) => {
if (valid) {
if (!this.form.front_facade_image) {
@ -351,6 +369,33 @@ export default {
}
});
},
async handleBtnCheckShopName() {
if (!this.form.store_name) {
this.$refs.uToast.show({
message: "请输入门店名称",
type: "error",
duration: 1000,
});
return;
}
let params = {
storeName: this.form.store_name,
};
let res = await CheckShopName(params);
if (res && res.status == 200) {
if (res.data.flag == 1) {
this.isNamePsss = true;
}
this.$refs.uToast.show({
message: res.msg,
type: res.data.flag == 1 ? "success" : "error",
duration: 1000,
});
}
},
loginOut() {
this.$store.dispatch("user/LoginOut");
},
@ -420,5 +465,13 @@ export default {
font-size: 28rpx;
color: $base-color;
}
.btn-check-shop-name {
width: 160rpx;
height: 60rpx;
border: none;
background: $base-color;
color: #fff;
}
}
</style>

View File

@ -728,6 +728,7 @@ export default {
compressImage(url) {
return new Promise((reslove, reject) => {
const tempFilePath = url; //url
uni.compressImage({
src: tempFilePath,
quality: 75, //
@ -736,6 +737,7 @@ export default {
},
fail: (error) => {
console.log("压缩失败", error);
this.loading = false;
},
});
});
@ -744,26 +746,34 @@ export default {
return new Promise(async (resolve, reject) => {
this.loading = true;
//#ifdef APP-PLUS
filePath = await this.compressImage(filePath);
try {
filePath = await this.compressImage(filePath);
console.log("路径", filePath);
} catch (error) {
console.log(error);
}
//#endif
// base64
//#ifdef H5
filePath = await H5compressImg(filePath, 0.75);
//#endif
let size = getBase64Size(filePath);
console.log("OCR上图图片压缩后为", size);
//#endif
const batchNoRes = await batchNoApi(filePath, file, type);
const batchNo = batchNoRes.batchNo;
if (!batchNoRes) {
this.loading = false;
reject(batchNoRes);
}
const batchNo = batchNoRes.batchNo;
const formData = new FormData();
let formDataStr = "";
@ -872,12 +882,13 @@ export default {
this.fileList6.push(group);
break;
}
//#ifdef H5
imgUrl = await H5compressImg(imgUrl, 0.75);
let size = getBase64Size(imgUrl);
console.log("上传图片压缩后的大小为:", size);
//#endif
let res = await UploadFilePromise(imgUrl);
@ -1003,15 +1014,27 @@ export default {
break;
case "idFront":
this.fileList3.splice(0, 1);
this.form.legal_person_id_number = "";
this.form.legal_person_id_images = "";
this.form.legal_person_id_addr = "";
break;
case "idReverse":
this.fileList4.splice(0, 1);
this.form.legal_person_id_images2 = "";
this.form.legal_person_id_period_begin = "";
this.form.legal_person_id_period_end = "";
break;
case "personIdFront":
this.fileList5.splice(0, 1);
this.form2.individual_id_number = "";
this.form2.individual_id_images = "";
this.form2.individual_id_name = "";
this.form2.individual_id_addr = "";
break;
case "personIdReverse":
this.fileList6.splice(0, 1);
this.form2.individual_id_period_begin = "";
this.form2.individual_id_period_end = "";
break;
}
},

View File

@ -94,6 +94,15 @@
color="aaaaaa"
></u-icon>
</u-form-item>
<view class="tips" @click="showTips = true">
搜不到我的开户银行怎么处理
<u-icon
class="icon-tips"
name="question-circle-fill"
color="#fe4119"
size="18"
></u-icon>
</view>
</template>
</u-form>
</view>
@ -159,6 +168,25 @@
></u-loading-page>
<u-toast ref="uToast" />
<u-popup
:show="showTips"
:round="10"
:closeable="true"
:closeIconPos="'top-right'"
mode="bottom"
@close="closeTips"
@open="openTips"
>
<view class="popup-tips">
<view class="popip-tips-title">提示</view>
<view class="popip-tips-item">
如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级支行网点
</view>
<view class="popip-tips-item popip-tips-item-2">
例如中国工商银行后加所在地的县级市/乡镇名称 中国工商银行桂平市
</view>
</view>
</u-popup>
</view>
</template>
@ -235,6 +263,7 @@ export default {
fileMaxSize: 1 * 1024 * 1024, // 1M
maxSize: 5 * 1024 * 1024, //20M
fileMinSize: 5 * 1024, // 5KB
showTips: false,
};
},
computed: {
@ -288,11 +317,11 @@ export default {
//#ifdef H5
filePath = await H5compressImg(filePath, 0.75);
//#endif
let size = getBase64Size(filePath);
console.log("压缩后的大小为:", size);
//#endif
const batchNoRes = await batchNoApi(filePath, file, type);
const batchNo = batchNoRes.batchNo;
@ -475,7 +504,12 @@ export default {
async onBranchBankChange() {
this.branchBankDebounceFn(this.branchSearchText);
},
closeTips() {
this.showTips = false;
},
openTips() {
this.showTips = true;
},
loginOut() {
this.$store.dispatch("user/LoginOut");
},
@ -608,5 +642,39 @@ export default {
font-size: 24rpx;
line-height: 24rpx;
}
.tips {
display: flex;
justify-content: center;
margin: 40rpx;
font-size: 28rpx;
color: #909399;
.icon-tips {
margin-left: 14rpx;
}
}
.popup-tips {
padding: 40rpx;
height: 400rpx;
.popip-tips-title {
margin: 0 20rpx 20rpx;
font-size: 40rpx;
font-weight: bold;
text-align: center;
color: #000;
}
.popip-tips-item {
margin-bottom: 40rpx;
}
.popip-tips-item-2 {
color: #909399;
font-size: 28rpx;
}
}
}
</style>

View File

@ -1,8 +1,9 @@
import Vue from 'vue';
import Vuex from 'vuex';
import user from './modules/user';
import account from './modules/account';
import order from './modules/order';
import Vue from "vue";
import Vuex from "vuex";
import user from "./modules/user";
import account from "./modules/account";
import order from "./modules/order";
import audit from "./modules/audit";
Vue.use(Vuex);
@ -11,6 +12,7 @@ const store = new Vuex.Store({
user,
account,
order,
audit,
},
});

View File

@ -0,0 +1,29 @@
const defaultState = () => {
return {
isContractSigningaPageTo: false,
};
};
const state = defaultState();
const getters = {};
const mutations = {
BACK_PAGE(state, isContractSigningaPageTo) {
state.isContractSigningaPageTo = isContractSigningaPageTo;
},
};
const actions = {
backPage({ commit }) {
commit("BACK_PAGE", true);
},
};
export default {
namespaced: true,
state,
getters,
mutations,
actions,
};