From fb7b9408319f62a69b4cfe207ead859b181e0f1a Mon Sep 17 00:00:00 2001
From: qijq <624811160@qq.com>
Date: Fri, 27 Jun 2025 03:32:41 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=A1=8C?=
=?UTF-8?q?=E5=8D=A1=E6=8F=90=E7=A4=BA=E8=AF=AD=E5=8F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
java-mall-app-shop-admin/App.vue | 11 ++-
java-mall-app-shop-admin/api/audit.js | 17 ++++
.../pages/audit/checkAudit.vue | 87 +++++++++++++++----
.../pages/audit/contractSigning.vue | 12 ++-
.../pages/audit/formConfig.js | 50 +++++++++--
.../pages/audit/shop1.vue | 53 +++++++++++
.../pages/audit/shop2.vue | 31 ++++++-
.../pages/audit/shop3.vue | 72 ++++++++++++++-
java-mall-app-shop-admin/store/index.js | 12 +--
.../store/modules/audit.js | 29 +++++++
10 files changed, 324 insertions(+), 50 deletions(-)
create mode 100644 java-mall-app-shop-admin/store/modules/audit.js
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,
+};