feat: 同步APP端审核详情联调;优化当全部驳回时跳到开店入驻页面,同时携带id到url

This commit is contained in:
mixtan 2025-06-27 14:13:11 +08:00
parent 4ddff1ee60
commit 936fd83d70
2 changed files with 253 additions and 65 deletions

View File

@ -6,32 +6,35 @@
{ nodata: ![2, 21].includes(auditInfo.approval_status) }, { nodata: ![2, 21].includes(auditInfo.approval_status) },
]" ]"
> >
<div class="tit"> <div class="myresult">
<el-result <el-result
:icon=" v-if="[2].includes(auditInfo.approval_status)"
auditInfo.approval_status == 1 icon="error"
? 'success' title="很遗憾,您无法入驻我们的商城"
: [3, 5].includes(auditInfo.approval_status) :sub-title="`拒绝原因:${auditInfo.approval_remark}`"
? 'warning'
: 'error'
"
:title="auditInfo?.approval_remark"
:sub-title="
auditInfo.approval_status == 1
? '你的店铺已开通立即前往小发同城商家端APP开始营业吧~'
: [3, 5].includes(auditInfo.approval_status)
? '审核中1-7个工作日内答复请耐心等待'
: '请正确填写以下店铺资料'
"
> >
</el-result> </el-result>
<el-result <el-result
v-if="auditInfo.has_ec_signed == 2 && auditInfo.lkl_ec_result_url" v-if="
[3].includes(auditInfo.approval_status) &&
!auditInfo.lkl_ec_result_url
"
icon="warning"
title="审核中1-7个工作日内答复请耐心等待"
>
</el-result>
<el-result
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_ec_signed == 2 &&
auditInfo.lkl_ec_result_url
"
class="result" class="result"
icon="warning" icon="warning"
title="申请通过请在24小时内签署合同过期会失效" title="开店申请资料已通过!请尽快签署合同!"
sub-title="您还没有签署,请签署" sub-title="签署合同链接24小时内有效过期需重新申请"
> >
<template #extra> <template #extra>
<el-button type="danger" @click="toSign">立即签署</el-button> <el-button type="danger" @click="toSign">立即签署</el-button>
@ -39,24 +42,136 @@
</el-result> </el-result>
<el-result <el-result
v-if="auditInfo.has_apply_mer == 1 && auditInfo.has_ec_signed == 1" v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1
"
class="result" class="result"
icon="info" icon="warning"
title="店铺初始化中,请耐心等待" title="合同签署完成,商家信息正在提交审核,请耐心等待。"
> >
</el-result> </el-result>
<el-result <el-result
v-if=" v-if="
(auditInfo.has_ec_signed == 1 && auditInfo.has_apply_mer == 2) || [21].includes(auditInfo.approval_status) &&
auditInfo.approval_status == 21 auditInfo.has_ec_signed == 2
" "
class="result" class="result"
icon="error" icon="error"
title="进件失败,需要管理员处理" title="抱歉,系统未能完成处理,请联系客服进一步审核后重试。"
> >
</el-result> </el-result>
<el-result
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 2
"
class="result"
icon="error"
title="系统正在初始化店铺,预计很快完成,请您稍后再来探索。"
>
</el-result>
<el-result
v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1 &&
auditInfo.has_apply_mer == 2
"
class="result"
icon="error"
title=" 抱歉,系统未能完成处理,请联系客服进一步审核后重试。"
>
</el-result>
<el-result
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.has_apply_split == 2 &&
auditInfo.store_status == 1
"
class="result"
icon="success"
title=" 店铺创建成功,系统正在处理分账业务申请"
>
</el-result>
<el-result
v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 2
"
class="result"
icon="error"
title=" 店铺创建未成功,请联系客服协助处理,我们将尽快为您解决。"
>
</el-result>
<el-result
v-if="
auditInfo.approval_status == 5 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 1 &&
auditInfo.has_apply_split == 1 &&
auditInfo.has_bind_receiver == 2
"
class="result"
icon="success"
title="分账业务申请已通过,系统正在处理接收方绑定"
>
</el-result>
<el-result
v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 1 &&
auditInfo.has_apply_split == 2
"
class="result"
icon="error"
title="分账业务处理遇到小问题,需要客服再次确认哦~请稍后联系他们完成审核后重试。"
>
</el-result>
<el-result
v-if="
[21].includes(auditInfo.approval_status) &&
auditInfo.has_ec_signed == 1 &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 1 &&
auditInfo.has_apply_split == 1 &&
auditInfo.has_bind_receiver == 2
"
class="result"
icon="success"
title="分账接收方绑定成功,入驻流程即将完成"
>
</el-result>
<el-result
v-if="
[1, 5].includes(auditInfo.approval_status) &&
auditInfo.has_apply_mer == 1 &&
auditInfo.store_status == 1 &&
auditInfo.has_apply_split == 1 &&
auditInfo.has_bind_receiver == 1
"
class="result"
icon="error"
title="很抱歉,您的分账请求未能通过审核,请联系我们的客服人员获取帮助。"
>
</el-result>
<view class="time" v-if="auditInfo.approval_status != 4">
申请时间{{ auditInfo.created_at }}
</view>
</div> </div>
</div> </div>
@ -238,7 +353,12 @@
</div> </div>
<el-dialog v-model="dialogSigned" width="100%"> <el-dialog v-model="dialogSigned" width="100%">
<iframe :src="auditInfo?.lkl_ec_result_url" class="signed_iframe" border="0" frameborder="0"></iframe> <iframe
:src="auditInfo?.lkl_ec_result_url"
class="signed_iframe"
border="0"
frameborder="0"
></iframe>
</el-dialog> </el-dialog>
<el-dialog v-model="dialogVisible" width="max-content"> <el-dialog v-model="dialogVisible" width="max-content">
@ -367,8 +487,8 @@ let auditInfo = ref<{ [key: string]: any }>({
const formConfig = reactive(JSON.parse(JSON.stringify(config.formConfig))); const formConfig = reactive(JSON.parse(JSON.stringify(config.formConfig)));
const toSign = () => { const toSign = () => {
dialogSigned.value = true dialogSigned.value = true;
} };
const handleGetAuditInfo = async () => { const handleGetAuditInfo = async () => {
const res = (await GetAuditInfo({ const res = (await GetAuditInfo({
@ -383,6 +503,11 @@ const handleGetAuditInfo = async () => {
let arr = JSON.parse(res.data.approval_invalid_col); let arr = JSON.parse(res.data.approval_invalid_col);
arr = uniq(arr); arr = uniq(arr);
if (arr.includes("all")) {
router.push({ name: "start", query: { id: res.auditInfo.id } });
return;
}
const arr2 = formConfig.reduce((acc, item) => { const arr2 = formConfig.reduce((acc, item) => {
if (arr.includes(item.key)) { if (arr.includes(item.key)) {
if (item.key == "license_image") { if (item.key == "license_image") {
@ -428,7 +553,13 @@ const checkForm = async () => {
}); });
if (isValid) { if (isValid) {
if ( difference(['license_type','license_image','license_number'], auditInfo.value.approval_invalid_col).length==0 && applyFormData?.license_type != 1) { if (
difference(
["license_type", "license_image", "license_number"],
auditInfo.value.approval_invalid_col
).length == 0 &&
applyFormData?.license_type != 1
) {
if (!applyFormData?.license_image?.length) { if (!applyFormData?.license_image?.length) {
ElMessage.error("请上传许可证图片"); ElMessage.error("请上传许可证图片");
return; return;
@ -810,7 +941,6 @@ const handleUploadError = (error, file) => {
}; };
onMounted(() => { onMounted(() => {
// bankListRemoteMethod();
if (!isLoggedIn.value) { if (!isLoggedIn.value) {
router.push({ name: "index" }); router.push({ name: "index" });
@ -873,12 +1003,41 @@ onMounted(() => {
justify-content: center; justify-content: center;
background: #eee; background: #eee;
.tit { .myresult {
font-size: 16px; display: flex;
margin-bottom: 15px; flex-direction: column;
gap: 40px;
:deep(.el-result) { :deep(.el-result) {
padding: 0; padding: 0;
} }
:deep(.el-result) {
.el-result__icon {
position: relative;
&::after {
content: "";
width: 0px;
height: 35px;
position: absolute;
top: -36px;
left: 50%;
border-right: 1px #ccc dashed;
}
}
&:first-of-type {
.el-result__icon {
position: relative;
&::after {
display: none;
height: 0;
}
}
}
}
.time {
font-size: 14px;
text-align: center;
}
} }
.steps-container { .steps-container {

View File

@ -743,13 +743,19 @@
<el-tooltip placement="top" effect="light"> <el-tooltip placement="top" effect="light">
<template #content> <template #content>
<div class="bank_name_cont"> <div class="bank_name_cont">
<p>如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级支行网点</p> <p>
如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级支行网点
</p>
</div> </div>
</template> </template>
<el-button type="info" link> <el-button type="info" link>
<el-icon color="#e6a23c" size="14" style="margin-right:5px" <el-icon
><WarningFilled /></el-icon color="#e6a23c"
size="14"
style="margin-right: 5px"
>
<WarningFilled /> </el-icon
>搜不到我的开户银行怎么处理</el-button >搜不到我的开户银行怎么处理</el-button
> >
</el-tooltip> </el-tooltip>
@ -773,7 +779,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onMounted, watch } from "vue"; import { ref, reactive, onMounted, watch } from "vue";
import { useRouter } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { Plus, Search, WarningFilled } from "@element-plus/icons-vue"; import { Plus, Search, WarningFilled } from "@element-plus/icons-vue";
@ -791,6 +797,7 @@ import {
} from "@/api/login"; } from "@/api/login";
import { batchNoApi, imgOcrResultApi } from "@/api/upload"; import { batchNoApi, imgOcrResultApi } from "@/api/upload";
import { compressImage } from "@/utils/file"; import { compressImage } from "@/utils/file";
import { isNumber } from "lodash";
interface Bank { interface Bank {
id: number; id: number;
@ -808,6 +815,7 @@ const orcImgTypeConf = {
const userStore = useUserStore(); const userStore = useUserStore();
const router = useRouter(); const router = useRouter();
const route = useRoute();
const processData = () => { const processData = () => {
const { provinceData, cityData: cityList, areaData } = cityData; const { provinceData, cityData: cityList, areaData } = cityData;
@ -858,6 +866,7 @@ const uploadFiles = reactive({
let orcTimeout = 0; let orcTimeout = 0;
let currentFile = ref(null); let currentFile = ref(null);
let pid = ref("");
let currentBbatchNo = ref(""); let currentBbatchNo = ref("");
let legal_person_date_type = ref(2); let legal_person_date_type = ref(2);
let individual_date_type = ref(2); let individual_date_type = ref(2);
@ -1113,9 +1122,18 @@ const handleMerchApply = async () => {
individual_id_addr, individual_id_addr,
individual_id_period_begin, individual_id_period_begin,
individual_id_period_end, individual_id_period_end,
email,
} = applyFormData; } = applyFormData;
let ext = {};
if (pid.value) {
ext = {
id: pid.value,
};
}
const res = await merchApply({ const res = await merchApply({
...ext,
bank_name, bank_name,
bank_district, bank_district,
bank_area, bank_area,
@ -1679,10 +1697,18 @@ const clearOtherFields = () => {
}; };
onMounted(() => { onMounted(() => {
console.log(id);
if (!isLoggedIn.value) { if (!isLoggedIn.value) {
router.push({ name: "index" }); router.push({ name: "index" });
return; return;
} }
const id = route.query?.id;
if (isNumber(id)) {
pid.value = id;
}
GetStoreCategories() GetStoreCategories()
.then((res) => { .then((res) => {
if (res.code === 0 && res.status === 200) { if (res.code === 0 && res.status === 200) {
@ -1775,11 +1801,14 @@ onMounted(() => {
align-items: center; align-items: center;
margin-left: 10px; margin-left: 10px;
} }
.bank_name_cont { .bank_name_cont {
width: 360px; width: 360px;
h3 { h3 {
margin-bottom: 12px; margin-bottom: 12px;
} }
p { p {
font-size: 14px; font-size: 14px;
margin-bottom: 12px; margin-bottom: 12px;