diff --git a/java-mall-app-shop-admin/App.vue b/java-mall-app-shop-admin/App.vue index fb1b355..b84415d 100644 --- a/java-mall-app-shop-admin/App.vue +++ b/java-mall-app-shop-admin/App.vue @@ -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; //监听系统通知栏消息点击事件 diff --git a/java-mall-app-shop-admin/api/audit.js b/java-mall-app-shop-admin/api/audit.js index 4e1db99..a4ee0e9 100644 --- a/java-mall-app-shop-admin/api/audit.js +++ b/java-mall-app-shop-admin/api/audit.js @@ -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, + }); +} diff --git a/java-mall-app-shop-admin/pages/audit/checkAudit.vue b/java-mall-app-shop-admin/pages/audit/checkAudit.vue index 8c99d34..9cf2805 100644 --- a/java-mall-app-shop-admin/pages/audit/checkAudit.vue +++ b/java-mall-app-shop-admin/pages/audit/checkAudit.vue @@ -36,7 +36,7 @@ text="" animation="spinner15" > - + @@ -70,18 +70,6 @@ 暂无申请记录! - - - 您还没有签署,请签署 - 立即签署 - + + + 您还没有签署,请签署 + 立即签署 + + + + + + 合同签署完成,商家信息正在提交审核,请耐心等待。 + + + @@ -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; diff --git a/java-mall-app-shop-admin/pages/audit/contractSigning.vue b/java-mall-app-shop-admin/pages/audit/contractSigning.vue index 8dd403b..6f422fe 100644 --- a/java-mall-app-shop-admin/pages/audit/contractSigning.vue +++ b/java-mall-app-shop-admin/pages/audit/contractSigning.vue @@ -9,6 +9,7 @@ diff --git a/java-mall-app-shop-admin/pages/audit/formConfig.js b/java-mall-app-shop-admin/pages/audit/formConfig.js index ca46714..edb6c73 100644 --- a/java-mall-app-shop-admin/pages/audit/formConfig.js +++ b/java-mall-app-shop-admin/pages/audit/formConfig.js @@ -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, }, diff --git a/java-mall-app-shop-admin/pages/audit/shop1.vue b/java-mall-app-shop-admin/pages/audit/shop1.vue index 2b562a4..556dfab 100644 --- a/java-mall-app-shop-admin/pages/audit/shop1.vue +++ b/java-mall-app-shop-admin/pages/audit/shop1.vue @@ -63,6 +63,13 @@ v-model="form.store_name" placeholder="请输入门店名称" /> + + 检查名字 + 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; + } } diff --git a/java-mall-app-shop-admin/pages/audit/shop2.vue b/java-mall-app-shop-admin/pages/audit/shop2.vue index 6a2dea3..0c0608e 100644 --- a/java-mall-app-shop-admin/pages/audit/shop2.vue +++ b/java-mall-app-shop-admin/pages/audit/shop2.vue @@ -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; } }, diff --git a/java-mall-app-shop-admin/pages/audit/shop3.vue b/java-mall-app-shop-admin/pages/audit/shop3.vue index b32f628..caeb1fd 100644 --- a/java-mall-app-shop-admin/pages/audit/shop3.vue +++ b/java-mall-app-shop-admin/pages/audit/shop3.vue @@ -94,6 +94,15 @@ color="aaaaaa" > + + 搜不到我的开户银行,怎么处理 + + @@ -159,6 +168,25 @@ > + + + 提示 + + 如开户地为县级市或乡镇区无法搜索到,可选择相同银行的市级支行网点 + + + 例如:中国工商银行后加(所在地的县级市/乡镇名称) 中国工商银行桂平市 + + + @@ -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; + } + } } diff --git a/java-mall-app-shop-admin/store/index.js b/java-mall-app-shop-admin/store/index.js index 3250f62..87ac695 100644 --- a/java-mall-app-shop-admin/store/index.js +++ b/java-mall-app-shop-admin/store/index.js @@ -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, }, }); diff --git a/java-mall-app-shop-admin/store/modules/audit.js b/java-mall-app-shop-admin/store/modules/audit.js new file mode 100644 index 0000000..fac9541 --- /dev/null +++ b/java-mall-app-shop-admin/store/modules/audit.js @@ -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, +};