merchapp/java-mall-app-shop-admin/pages/audit/checkAudit.vue
2025-05-22 16:51:36 +08:00

519 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="checkAudit-container">
<u-navbar :autoBack="true" :safeAreaInsetTop="true" title="商户入驻申请">
<template slot="right">
<view class="btn-login-out" @click="loginOut">退出登录</view>
</template>
</u-navbar>
<favorite-loading
class="checkAudit-loading"
v-show="showLoading"
:color="'#4b71ff'"
text=""
animation="spinner15"
></favorite-loading>
<view v-show="!showLoading">
<view class="" v-if="auditInfo.approval_status == 1">
<view class="img-pass"></view>
<view class="tips"
>{{ auditInfo.approval_remark }}<br />请留意手机短信!</view
>
</view>
<view class="" v-if="auditInfo.approval_status == 2">
<view class="img"></view>
<view class="tips">很遗憾,您无法入驻我们的商城</view>
<view class="refusal-cause"
>拒绝原因:{{ auditInfo.approval_remark }}</view
>
</view>
<view class="" v-if="auditInfo.approval_status == 3">
<view class="img-await"></view>
<view class="tips">审核中1-7个工作日内答复请耐心等待</view>
</view>
<view class="" v-if="auditInfo.approval_status == 4">
<view class="img-no-audit"></view>
<view class="tips">暂无申请记录!</view>
</view>
<view class="time" v-if="auditInfo.approval_status != 4"
>申请时间:{{ auditInfo.created_at }}</view
>
<u-form :model="form" class="form" ref="uForm" label-width="70">
<u-form-item
:label="item.label"
:prop="item.key"
required
v-for="(item, index) of auditInfo.approval_invalid_col"
:key="index"
@click="handerItemSkipu(item)"
>
<u-input
v-if="item.type != 'upload'"
:style="item.style"
class="form-input"
v-model="form[item.key]"
:placeholder="item.placeholder"
:readonly="item.isReadonly"
/>
<u-icon
v-if="item.type == 'select'"
slot="right"
style="display: inline-block; margin-left: 8rpx"
name="arrow-right"
size="12"
color="#aaaaaa"
></u-icon>
<u-upload
v-if="item.type == 'upload'"
:class="item.imgUrlArr.length == 0 ? item.class : ''"
:uploadIcon="item.imgUrlArr.length == 0 ? '' : 'camera-fill'"
@afterRead="afterRead($event, item)"
@delete="deletePic($event, item)"
accept="image"
:fileList="item.imgUrlArr"
:max-count="item.imgUpMaxCount || 1"
:width="item.imgWidth"
:height="item.imgHeight"
:upload-text="''"
>
</u-upload>
</u-form-item>
</u-form>
<view class="btn-content" v-if="auditInfo.approval_status == 2">
<u-button class="btn-submit" @click="getRestartMerchApply"
>重新提交</u-button
>
</view>
<u-picker
:show="showPicker"
:columns="columns"
:safe-area-inset-bottom="true"
:default-selector="[0]"
:keyName="'name'"
@cancel="handleCancel"
@confirm="handleConfirm"
></u-picker>
<u-toast ref="uToast" />
<u-picker
v-if="showActionSheet"
mode="selector"
:show="showActionSheet"
:safe-area-inset-bottom="true"
:default-selector="[0]"
:columns="bankList"
keyName="bank_name"
@cancel="handleBankCancel"
@confirm="handleBankConfirm"
>
</u-picker>
</view>
</view>
</template>
<script>
import config from "./formConfig";
import {
GetAuditInfo,
GetBankList,
GetRestartMerchApply,
} from "../../api/audit";
import { GetAccountDashboard } from "../../api/user";
import { UploadFilePromise } from "../../api/upload";
import { mapState } from "vuex";
import favoriteLoading from "@/components/favorite-loading/favorite-loading.vue";
export default {
name: "checkAudit",
components: {
favoriteLoading,
},
data() {
return {
showLoading: true,
formConfig: JSON.parse(JSON.stringify(config.formConfig)),
form: {},
auditInfo: {
approval_status: 3,
created_at: "2099-02-17 09:25:53",
approval_remark: "",
approval_invalid_col: [],
},
manageTypeItem: {},
columns: [
[
{
id: 1,
name: "许可证",
},
{
id: 2,
name: "特许证件",
},
{
id: 3,
name: "其他证件",
},
],
],
showPicker: false,
showActionSheet: false,
bankList: [[]],
};
},
onShow() {
this.getAuditInfo();
this.getBankList();
},
computed: {
...mapState("user", ["userInfo"]),
},
methods: {
async getAuditInfo() {
var params = {};
let isContain = this.userInfo.user_mobile.indexOf("86");
if (isContain != -1 && this.userInfo.user_mobile.length > 11) {
params.mobile = this.userInfo.user_mobile.slice(2);
} else {
params.mobile = this.userInfo.user_mobile;
}
let res = await GetAuditInfo(params);
if (res && res.status == 200) {
this.auditInfo = res.data || {
approval_status: 4,
created_at: "2099-02-17 09:25:53",
approval_remark: "",
approval_invalid_col: [],
};
if (!res.data) {
this.showLoading = false;
return;
}
if (this.auditInfo.contract_download_url) {
uni.setStorageSync(
"contractDownloadUrl",
this.auditInfo.contract_download_url
);
}
if (this.auditInfo.approval_invalid_col.includes("all")) {
uni.setStorageSync("auditId", res.data.id);
uni.navigateTo({
url: "/pages/audit/shop1",
});
return;
}
if (
this.auditInfo.approval_status == 1 &&
this.auditInfo.signed_status == 2 &&
this.auditInfo.store_status == 1
) {
let result = await GetAccountDashboard();
if (result && result.status == 200) {
debugger;
uni.setStorageSync("accountDashboard", result.data);
uni.setStorageSync("auditInfo", res.data);
uni.switchTab({
url: "/pages/order/order",
});
}
}
let arr = JSON.parse(res.data.approval_invalid_col);
const arr2 = this.formConfig.reduce((acc, item) => {
if (arr.includes(item.key)) {
this.form[item.key] = "";
acc.push(item);
}
return acc;
}, []);
this.auditInfo.approval_invalid_col = arr2;
let typeItem = uni.getStorageSync("typeItem");
if (typeItem) {
this.manageTypeItem = typeItem;
this.form.biz_category = typeItem.bizSecondCategory.name;
}
let locationItem = uni.getStorageSync("locationItem");
if (locationItem) {
this.form.mapAddress =
locationItem.administrativeRegion.label[0] +
locationItem.administrativeRegion.label[1] +
locationItem.administrativeRegion.label[2];
this.form.store_address = locationItem.selectAddress.name;
}
}
this.showLoading = false;
},
async getBankList() {
let res = await GetBankList();
if (res && res.status == 200) {
this.bankList[0] = res.data;
}
},
async getRestartMerchApply() {
console.log(this.auditInfo);
this.form.id = this.auditInfo.id;
if (this.form.mapAddress) {
let locationItem = uni.getStorageSync("locationItem");
this.form.store_longitude = locationItem.selectAddress.location.lng;
this.form.store_latitude = locationItem.selectAddress.location.lat;
this.form.province_id = locationItem.administrativeRegion.value[0];
this.form.city_id = locationItem.administrativeRegion.value[1];
this.form.county_id = locationItem.administrativeRegion.value[2];
this.form.store_address =
locationItem.administrativeRegion.label[0] +
locationItem.administrativeRegion.label[1] +
locationItem.administrativeRegion.label[2] +
this.form.store_address;
}
if (this.form.biz_category) {
this.form.biz_category = this.manageTypeItem.bizCategory.id;
this.form.biz_second_category =
this.manageTypeItem.bizSecondCategory.id;
}
if (this.form.storefrontImg) {
this.form.front_facade_image = this.form.storefrontImg;
}
if (this.form.surroundingsImg) {
this.form.environment_image = this.form.surroundingsImg;
}
let res = await GetRestartMerchApply(this.form);
if (res && res.status == 200) {
uni.removeStorageSync("locationItem");
uni.removeStorageSync("auditItem");
uni.removeStorageSync("typeItem");
await this.getAuditInfo();
}
},
handerItemSkipu(item) {
if (!item.type == "select") return;
switch (item.key) {
case "mapAddress":
uni.navigateTo({
url: "/pages/audit/mapAddress",
});
break;
case "biz_category":
uni.navigateTo({
url: "/pages/audit/businessType",
});
break;
case "license_type":
this.showPicker = true;
break;
case "bank_name":
this.showActionSheet = true;
break;
}
},
async afterRead(e, item) {
const imgUrl = e.file.url;
const group = {
url: imgUrl,
};
item.imgUrlArr.push(group);
let res = await UploadFilePromise(imgUrl);
if (res && res.status == 200) {
if (item.key == "license_image") {
if (this.form[item.key] == "") {
this.form[item.key] = String(res.data.url);
} else {
this.form[item.key] += "," + String(res.data.url);
}
} else {
this.form[item.key] = res.data.url;
}
}
},
deletePic(e, item) {
if (item.key == "license_image") {
item.imgUrlArr.splice(e.index, 1);
let arr = this.form[item.key].split(",");
arr.splice(e.index, 1);
this.form[item.key] = arr.join(",");
} else {
item.imgUrlArr.splice(0, 1);
}
},
handleCancel() {
this.showPicker = false;
},
handleConfirm(e) {
this.form.license_type = e.value[0].name;
this.licenseType = e.value[0];
this.showPicker = false;
},
handleBankCancel() {
this.showActionSheet = false;
},
handleBankConfirm(e) {
this.form.bank_name = e.value[0].bank_name;
this.showActionSheet = false;
},
loginOut() {
this.$store.dispatch("user/LoginOut");
},
},
};
</script>
<style lang="scss">
.checkAudit-container {
.checkAudit-loading {
margin: 70% auto;
display: flex;
}
.form {
padding: 48rpx 16rpx;
background: #fff;
}
padding: 0 24rpx;
.img {
margin: 0 auto;
margin-top: 16%;
width: 320rpx;
height: 220rpx;
background-image: url("../../static/no-audit.png");
background-size: 100% 100%;
}
.img-await {
margin: 0 auto;
margin-top: 17%;
margin-bottom: 20%;
width: 320rpx;
height: 240rpx;
background-image: url("../../static/await.png");
background-size: 100% 100%;
}
.img-pass {
margin: 0 auto;
margin-top: 17%;
margin-bottom: 20%;
width: 320rpx;
height: 320rpx;
background-image: url("../../static/pass.png");
background-size: 100% 100%;
}
.img-no-audit {
margin: 0 auto;
margin-top: 17%;
margin-bottom: 20%;
width: 600rpx;
height: 600rpx;
background-image: url("../../static/no-data.png");
background-size: 100% 100%;
}
.tips {
margin-bottom: 24rpx;
text-align: center;
color: #040404;
font-weight: 500;
font-size: 36rpx;
}
.refusal-cause {
margin: 48rpx 0;
}
/deep/.upload-1 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/shenhe-bg1.png");
background-size: 100%;
}
}
/deep/.upload-2 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/shenhe-bg2.png");
background-size: 100%;
}
}
/deep/.upload-3 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/business-license-bg.png");
background-size: 100% 100%;
}
}
/deep/.upload-4 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/permit-bg.png");
background-size: 100% 100%;
}
}
/deep/.upload-5 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/id-bg-1.png");
background-size: 100% 100%;
}
}
/deep/.upload-6 {
.u-upload__button {
// background: url("../../static/shenhe-bg1.png");
background-image: url("../../static/id-bg-2.png");
background-size: 100% 100%;
}
}
.time {
text-align: center;
}
.btn-content {
position: relative;
bottom: 24rpx;
width: 94%;
padding: 48rpx 24rpx;
}
.btn-submit {
border-radius: 16rpx;
background: #4b71ff;
color: #fff;
}
.btn-login-out {
font-size: 28rpx;
color: #4b71ff;
}
}
</style>