update: 开户银行输入框提示和开店搜不到提示修改文案及交互;驳回审核动态校验空数据、删除历史无用代码、并跟开店的开户银行一样支持提示。

This commit is contained in:
mixtan 2025-06-20 22:54:53 +08:00
parent eb5180ead8
commit 035ff65f4b
5 changed files with 306 additions and 497 deletions

3
package-lock.json generated
View File

@ -12,6 +12,7 @@
"axios": "^1.8.4", "axios": "^1.8.4",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"element-plus": "^2.9.8", "element-plus": "^2.9.8",
"lodash": "^4.17.21",
"pinia": "^3.0.1", "pinia": "^3.0.1",
"scss": "^0.2.4", "scss": "^0.2.4",
"sortablejs": "^1.15.6", "sortablejs": "^1.15.6",
@ -6296,7 +6297,7 @@
}, },
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"license": "MIT" "license": "MIT"
}, },

View File

@ -16,6 +16,7 @@
"axios": "^1.8.4", "axios": "^1.8.4",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"element-plus": "^2.9.8", "element-plus": "^2.9.8",
"lodash": "^4.17.21",
"pinia": "^3.0.1", "pinia": "^3.0.1",
"scss": "^0.2.4", "scss": "^0.2.4",
"sortablejs": "^1.15.6", "sortablejs": "^1.15.6",

View File

@ -1,25 +1,42 @@
<template> <template>
<div class="signUp-container"> <div class="signUp-container">
<div
<div :class="['steps-container', { nodata: ![2,21].includes(auditInfo.approval_status) }]"> :class="[
'steps-container',
{ nodata: ![2, 21].includes(auditInfo.approval_status) },
]"
>
<div class="tit"> <div class="tit">
<el-result <el-result
:icon="auditInfo.approval_status==1 ? 'success' : [3,5].includes(auditInfo.approval_status) ? 'warning' : 'error' " :icon="
:title="auditInfo?.approval_remark" auditInfo.approval_status == 1
:sub-title="auditInfo.approval_status==1 ? '现在去商家端看看吧~' : [3,5].includes(auditInfo.approval_status) ? '预计3-5个工作日哦~' : '请填写以下资料重新提交审核' " ? 'success'
> : [3, 5].includes(auditInfo.approval_status)
</el-result> ? 'warning'
: 'error'
"
:title="auditInfo?.approval_remark"
:sub-title="
auditInfo.approval_status == 1
? '现在去商家端看看吧~'
: [3, 5].includes(auditInfo.approval_status)
? '预计1-7个工作日哦~'
: '请填写以下资料重新提交审核'
"
>
</el-result>
</div> </div>
</div> </div>
<div class="form-submit" v-if="[2,21].includes(auditInfo.approval_status)"> <div class="form-submit" v-if="[2, 21].includes(auditInfo.approval_status)">
<el-form <el-form
:model="applyFormData" :model="applyFormData"
ref="formRef" :rules="rules"
label-width="160px" ref="formRef"
v-loading.fullscreen.lock="loading" label-width="160px"
element-loading-text="数据加载中..." v-loading.fullscreen.lock="loading"
element-loading-background="rgba(0,0,0,.75)" element-loading-text="数据加载中..."
element-loading-background="rgba(0,0,0,.75)"
> >
<el-form-item <el-form-item
:label="item.label" :label="item.label"
@ -27,79 +44,106 @@
v-for="(item, index) in formItemData" v-for="(item, index) in formItemData"
:key="item.key" :key="item.key"
> >
<el-input
<el-input
v-if="item.type == 'input'" v-if="item.type == 'input'"
v-model="applyFormData[item.key!]" v-model="applyFormData[item.key!]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
/> />
<el-input <el-input
:rows="5" :rows="5"
type="textarea" type="textarea"
v-if="item.type == 'textarea'" v-if="item.type == 'textarea'"
v-model="applyFormData[item.key!]" v-model="applyFormData[item.key!]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
/> />
<el-date-picker <el-date-picker
v-if="item.type == 'datepicker'" v-if="item.type == 'datepicker'"
v-model="applyFormData[item.key!]" v-model="applyFormData[item.key!]"
type="date" type="date"
:placeholder="item.placeholder" :placeholder="item.placeholder"
/>
<template v-if="item.type == 'select' && item.key=='mapAddress'">
<el-cascader
style="marginright: 5px"
v-model="applyFormData.map_address"
:options="cascaderOptions2"
@change="handleChange"
/> />
<el-autocomplete
v-if="applyFormData.map_address"
style="width: 180px"
v-model="applyFormData.position"
placeholder="试试搜索,快速填写地址"
:fetch-suggestions="querySearch"
value-key="value"
:options="autocompleteOptions"
@select="handleSelect"
>
<template #default="{ item }">
<div class="auto-item" v-if="item">
<div>
<p>{{ item.name }}</p>
</div>
<div>
<span>{{ item.address }}</span>
</div>
</div>
</template>
</el-autocomplete>
</template>
<el-select-v2 <template v-if="item.type == 'select' && item.key == 'mapAddress'">
v-if="(item.type == 'select' && item.key=='bank_name') || item.key=='bank_branch_name'" <el-cascader
clearable style="marginright: 5px"
filterable v-model="applyFormData.map_address"
remote :options="cascaderOptions2"
:remote-method="bankListRemoteMethod" @change="handleChange"
@change="bankListChange" :placeholder="item.placeholder"
v-model="applyFormData[item.key]" />
placeholder="搜索银行名称" <el-autocomplete
placement="top-start" v-if="applyFormData.map_address"
:options="bankList2" style="width: 180px"
v-model="applyFormData.position"
placeholder="试试搜索,快速填写地址"
:fetch-suggestions="querySearch"
value-key="value"
:options="autocompleteOptions"
@select="handleSelect"
> >
<template #default="{ item }">
<div class="auto-item" v-if="item">
<div>
<p>{{ item.name }}</p>
</div>
<div>
<span>{{ item.address }}</span>
</div>
</div>
</template>
</el-autocomplete>
</template>
<el-select-v2
v-if="
(item.type == 'select' && item.key == 'bank_name') ||
item.key == 'bank_branch_name'
"
clearable
filterable
remote
:remote-method="bankListRemoteMethod"
@change="bankListChange"
v-model="applyFormData[item.key]"
placeholder="搜索银行名称"
placement="top-start"
style="width: 350px"
:options="bankList2"
>
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<Search /> <Search />
</el-icon> </el-icon>
</template> </template>
</el-select-v2> </el-select-v2>
<div
class="bank_name_tip"
v-if="
(item.type == 'select' && item.key == 'bank_name') ||
item.key == 'bank_branch_name'
"
>
<el-tooltip placement="top" effect="light">
<template #content>
<div class="bank_name_cont">
<p>
如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级支行网点
</p>
</div>
</template>
<el-button type="info" link>
<el-icon color="#e6a23c" size="14" style="margin-right: 5px"
><WarningFilled /></el-icon
>搜不到我的开户银行怎么处理</el-button
>
</el-tooltip>
</div>
<el-cascader <el-cascader
v-if="item.type == 'select' && item.key=='biz_category'" v-if="item.type == 'select' && item.key == 'biz_category'"
v-model="applyFormData[item.key]" v-model="applyFormData[item.key]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
:options="cascaderOptions" :options="cascaderOptions"
@ -109,58 +153,53 @@
/> />
<el-select <el-select
v-if="item.type == 'select' && item.key=='license_type'" v-if="item.type == 'select' && item.key == 'license_type'"
v-model="applyFormData[item.key]" v-model="applyFormData[item.key]"
placeholder="请选择类型" placeholder="请选择类型"
clearable clearable
>
<el-option
v-for="item in optionsPermitType"
:key="item.value"
:label="item.label"
:value="item.value"
> >
<el-option </el-option>
v-for="item in optionsPermitType" </el-select>
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-upload <el-upload
v-if="item.type == 'upload'" v-if="item.type == 'upload'"
ref="uploadRef" ref="uploadRef"
:limit="1" :limit="1"
list-type="picture-card" list-type="picture-card"
:auto-upload="true" :auto-upload="true"
:on-preview="handlePictureCardPreview" :on-preview="handlePictureCardPreview"
v-model="applyFormData[item.key!]" v-model="applyFormData[item.key!]"
:on-remove=" :on-remove="
(file, fileList) => (file, fileList) => handleRemove(file, fileList, item.key)
handleRemove(file, fileList, item.key) "
" :on-success="
:on-success=" (response, file, fileList) =>
(response, file, fileList) => handleUploadSuccess(response, file, fileList, item.key)
handleUploadSuccess( "
response, :on-error="handleUploadError"
file, :before-upload="beforeUpload"
fileList, :action="uploadUrl"
item.key name="upfile"
) :class="{
"
:on-error="handleUploadError"
:before-upload="beforeUpload"
:action="uploadUrl"
name="upfile"
:class="{
'upload-hidden': isUploadHidden(item.key!), 'upload-hidden': isUploadHidden(item.key!),
}" }"
> >
<el-icon class="avatar-uploader-icon"> <el-icon class="avatar-uploader-icon">
<Plus /> <Plus />
</el-icon> </el-icon>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="form-button" v-if="[2,21].includes(auditInfo.approval_status)"> <div class="form-button" v-if="[2, 21].includes(auditInfo.approval_status)">
<div class="myui_check_text">检查并确认店铺信息和证件信息无误</div>
<el-button type="primary" @click="merchToApply" class="custom-button" <el-button type="primary" @click="merchToApply" class="custom-button"
>重新审核</el-button >重新审核</el-button
> >
@ -176,7 +215,8 @@
import { ref, reactive, onMounted, watch } from "vue"; import { ref, reactive, onMounted, watch } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { Plus,Search } from "@element-plus/icons-vue"; import { Plus, Search, WarningFilled } from "@element-plus/icons-vue";
import { uniq, difference } from "lodash";
import cityData from "../../stores/cityData"; import cityData from "../../stores/cityData";
import type { CityDataStructure } from "../../stores/cityData"; import type { CityDataStructure } from "../../stores/cityData";
@ -191,23 +231,18 @@ import {
merchApply, merchApply,
re_apply, re_apply,
GetAppDistrict, GetAppDistrict,
GetAuditInfo GetAuditInfo,
} from "@/api/login"; } from "@/api/login";
import { batchNoApi, imgOcrResultApi } from "@/api/upload"; import { batchNoApi, imgOcrResultApi } from "@/api/upload";
import config from "./formConfig"; import config from "./formConfig";
interface Bank {
id: number;
bank_name: string;
}
interface FormItemType { interface FormItemType {
type?: string, type?: string;
key?: string|undefined, key?: string | undefined;
hide?: boolean, hide?: boolean;
label?: string, label?: string;
placeholder?: string, placeholder?: string;
sort?: number, sort?: number;
} }
const orcImgTypeConf = { const orcImgTypeConf = {
@ -241,30 +276,19 @@ const processData = () => {
}); });
}; };
const active = ref(1);
const loading = ref(false); const loading = ref(false);
const formRef = ref(null); const formRef = ref(null);
const dialogVisible = ref(false); const dialogVisible = ref(false);
const dialogImageUrl = ref(""); const dialogImageUrl = ref("");
const bankNameSearchText = ref("");
const selectedValue = ref([]);
const value = ref([]);
const cascaderOptions = ref([]); const cascaderOptions = ref([]);
const cascaderOptions2 = ref(processData()); const cascaderOptions2 = ref(processData());
const cityData2 = ref<CityDataStructure>(); const cityData2 = ref<CityDataStructure>();
const cascaderOptions3 = ref(); const cascaderOptions3 = ref();
//hover
const cascaderProps = ref({
value: "value",
label: "label",
children: "children",
expandTrigger: "hover" as const,
});
const bankList2 = ref([]); const bankList2 = ref([]);
let orcTimeout = 0; let orcTimeout = 0;
let currentFile = ref(null); let currentFile = ref(null);
let currentBbatchNo = ref(''); let currentBbatchNo = ref("");
const handleChangeBizCategory = (value) => { const handleChangeBizCategory = (value) => {
if (value && value.length === 2) { if (value && value.length === 2) {
@ -273,62 +297,8 @@ const handleChangeBizCategory = (value) => {
applyFormData.biz_second_category = bizSecondCategoryId; applyFormData.biz_second_category = bizSecondCategoryId;
} }
}; };
const applyFormData = reactive({ const applyFormData = reactive({});
bank_name: "",
bank_district: "",
bank_area: "",
openning_bank_code: "",
clearing_bank_code: "",
bank_branch_name: "",
account_number: "",
account_holder_name: "",
biz_category: null,
biz_license_company: "",
biz_license_image: "",
biz_license_number: "",
biz_second_category: null,
biz_license_content: "",
city_id: null,
contact_name: "",
county_id: null,
entity_type: 1,
environment_image: "",
front_facade_image: "",
individual_id_images: "",
individual_id_images2: "",
individual_id_number: "",
individual_id_name: "",
individual_id_addr: "",
individual_id_period_begin: "",
individual_id_period_end: "",
legal_person_id_images: "",
legal_person_id_images2: "",
legal_person_id_number: "",
legal_person_mobile: "",
legal_person_name: "",
legal_person_id_addr: "",
legal_person_id_period_begin: "",
legal_person_id_period_end: "",
license_image: [],
license_number: "",
license_type: "",
login_mobile: localStorage.getItem("mobilePhone"),
province_id: null,
store_address: "",
map_address: "",
position: "",
store_latitude: null,
store_longitude: null,
store_name: "",
mapAddressLabel: "",
license_imageToString: "",
store_area: "",
user_status: "",
bank_image: "",
email: "",
});
const isLoggedIn = ref(!!userStore.token); const isLoggedIn = ref(!!userStore.token);
const license_type = ref(1)
const optionsPermitType = [ const optionsPermitType = [
{ {
value: 1, value: 1,
@ -343,78 +313,7 @@ const optionsPermitType = [
label: "需特许证件资质", label: "需特许证件资质",
}, },
]; ];
const rules = reactive({ const rules = reactive({});
contact_name: [
{ required: true, message: "请输入联系人姓名", trigger: "blur" },
],
biz_category: [
{ required: true, message: "请选择经营品类", trigger: "change" },
],
store_name: [{ required: true, message: "请输入门店名称", trigger: "blur" }],
map_address: [
{ required: true, message: "请选择地图地址", trigger: "change" },
],
// position: [{ required: true, message: "", trigger: "change" }],
store_address: [
{ required: true, message: "请输入详细地址", trigger: "blur" },
],
front_facade_image: [
{ required: true, message: "请上传门脸图", trigger: ["change", "blur"] },
],
environment_image: [
{ required: true, message: "请上传环境图", trigger: ["change", "blur"] },
],
entity_type: [{ required: true, message: "请主体类型", trigger: "change" }],
// license_type: [{ required: true, message: "", trigger: "change" }],
// license_number: [{ required: true, message: "", trigger: "blur" }],
biz_license_number: [
{ required: true, message: "请输入注册号", trigger: "blur" },
],
biz_license_company: [
{ required: true, message: "请输入公司名称", trigger: "blur" },
],
legal_person_name: [
{ required: true, message: "请输入法人姓名", trigger: "blur" },
],
legal_person_mobile: [
{ required: true, message: "请输入法人手机号", trigger: "blur" },
],
legal_person_id_number: [
{ required: true, message: "请输入法人身份证号", trigger: "blur" },
],
biz_license_image: [
{ required: true, message: "请上传营业执照", trigger: "change" },
],
// license_image: [{ required: true, message: '', trigger: 'change' }],
legal_person_id_images: [
{ required: true, message: "请上传法人身份证正面", trigger: "change" },
],
legal_person_id_images2: [
{ required: true, message: "请上传法人身份证反面", trigger: "change" },
],
individual_id_name: [
{ required: true, message: "请输入个人身份证姓名", trigger: "blur" },
],
individual_id_number: [
{ required: true, message: "请输入个人身份证号", trigger: "blur" },
],
individual_id_images: [
{ required: true, message: "请上传个人身份证正面", trigger: "change" },
],
individual_id_images2: [
{ required: true, message: "请上传个人身份证反面", trigger: "change" },
],
bank_branch_name: [
{ required: true, message: "请选择银行", trigger: "change" },
],
// bank_branch_name: [{ required: true, message: '', trigger: 'blur' }],
account_number: [
{ required: true, message: "请输入银行卡号", trigger: "blur" },
],
account_holder_name: [
{ required: true, message: "请输入开户名称", trigger: "blur" },
],
});
const formItemData = ref<FormItemType[]>([]); const formItemData = ref<FormItemType[]>([]);
let auditInfo = ref({ let auditInfo = ref({
id: 0, id: 0,
@ -430,132 +329,50 @@ const handleGetAuditInfo = async () => {
mobile: localStorage.getItem("mobilePhone"), mobile: localStorage.getItem("mobilePhone"),
})) as any; })) as any;
if(res.data==null||res.data.approval_status==4){ if (res.data == null || res.data.approval_status == 4) {
router.push({ name: "start" }); router.push({ name: "start" });
return return;
} }
let arr = JSON.parse(res.data.approval_invalid_col); let arr = JSON.parse(res.data.approval_invalid_col);
let legal_person_card = ['legal_person_id_addr','legal_person_id_period_begin','legal_person_id_period_end'] arr = uniq(arr);
let individual_id_card = ['individual_id_addr','individual_id_period_begin','individual_id_period_end']
// arr = arr.concat(legal_person_card).concat(individual_id_card).concat(['biz_license_content'])
if(res.data.entity_type==1){
arr = arr.filter(item=>(!individual_id_card.includes(item)))
} else if(res.data.entity_type==2){
arr = arr.filter(item=>(!legal_person_card.includes(item)))
}
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") {
applyFormData[item.key] = [];
} else {
applyFormData[item.key] = "";
}
acc.push(item); acc.push(item);
} }
return acc; return acc;
}, []); }, []);
auditInfo.value = { ...res.data, approval_invalid_col: arr }; auditInfo.value = { ...res.data, approval_invalid_col: arr };
formItemData.value = arr2.sort((a,b)=>(a.sort-b.sort));
formItemData.value = arr2.sort((a, b) => a.sort - b.sort);
arr2.forEach((element) => {
if (element.required) {
rules[element.key] = {
required: true,
message: element.placeholder,
trigger: "blur",
};
}
});
}; };
const handleMerchApply = async () => { const handleMerchApply = async () => {
const {
bank_name,
bank_district,
bank_area,
openning_bank_code,
clearing_bank_code,
account_number,
account_holder_name,
biz_category,
biz_license_company,
biz_license_image,
biz_license_number,
biz_second_category,
city_id,
contact_name,
county_id,
entity_type,
environment_image,
front_facade_image,
individual_id_images,
individual_id_images2,
individual_id_number,
individual_id_name,
legal_person_id_images,
legal_person_id_images2,
legal_person_id_number,
legal_person_mobile,
legal_person_name,
license_image,
license_number,
license_type,
login_mobile,
province_id,
store_address,
store_latitude,
store_longitude,
store_name,
store_area,
biz_license_content,
legal_person_id_addr,
legal_person_id_period_begin,
legal_person_id_period_end,
individual_id_addr,
individual_id_period_begin,
individual_id_period_end,
email,
} = applyFormData;
const res = await re_apply({ const res = await re_apply({
id: auditInfo.value.id, id: auditInfo.value.id,
bank_name, ...applyFormData,
bank_district, email: `${applyFormData.login_mobile}@qq.com`,
bank_area,
openning_bank_code,
clearing_bank_code,
account_number,
account_holder_name,
biz_category,
biz_license_company,
biz_license_image,
biz_license_number,
biz_second_category,
city_id,
contact_name,
county_id,
entity_type,
environment_image,
front_facade_image,
individual_id_images,
individual_id_images2,
individual_id_number,
individual_id_name,
legal_person_id_images,
legal_person_id_images2,
legal_person_id_number,
legal_person_mobile,
legal_person_name,
license_image,
license_number,
license_type,
login_mobile,
province_id,
store_address: store_area.replace(/\//g, "") + store_address,
store_latitude,
store_longitude,
store_name,
store_area,
biz_license_content,
legal_person_id_addr,
legal_person_id_period_begin,
legal_person_id_period_end,
individual_id_addr,
individual_id_period_begin,
individual_id_period_end,
email: `${login_mobile}@qq.com`,
}); });
if(res.status==200&&res.code==0){ if (res.status == 200 && res.code == 0) {
ElMessage.success("资料已提交~") ElMessage.success("资料已提交~");
formItemData.value = [];
handleGetAuditInfo(); handleGetAuditInfo();
} }
}; };
@ -565,71 +382,28 @@ const checkForm = async () => {
return valid; return valid;
}); });
if(applyFormData.entity_type==2 && !applyFormData.bank_image){ if (applyFormData.license_type != 1) {
ElMessage.error("请上传银行卡") if (!applyFormData.license_image.length) {
return ElMessage.error("请上传许可证图片");
return;
}
if (!applyFormData.license_number) {
ElMessage.error("请输入许可证编号");
return;
}
} }
if (isValid) { if (isValid) {
handleMerchApply() handleMerchApply();
} }
}; };
const next = () => {
if (active.value < 3) {
active.value++;
window.scrollTo({
top: 0, //
left: 0,
behavior: "smooth",
});
}
};
const pre = () => {
if (active.value > 1) {
active.value--;
window.scrollTo({
top: 0, //
left: 0,
behavior: "smooth",
});
}
};
const getLabel = (field: string, limit: number) => {
const labels = {
front_facade_image: "门脸图",
environment_image: "环境图",
biz_license_image: "营业执照",
license_image: "许可证",
legal_person_id_images: "法人身份证正面",
legal_person_id_images2: "法人身份证反面",
individual_id_images: "个人身份证正面",
individual_id_images2: "个人身份证反面",
};
if (field === "license_image") {
return `${labels[field]}(${applyFormData[field].length}/${limit})`;
} else {
const count = applyFormData[field] ? 1 : 0;
return `${labels[field]}(${count}/${limit})`;
}
};
const showAll = () => {
applyFormData.license_imageToString = applyFormData.license_image
.map((url) => `${url}`)
.join(",");
};
const merchToApply = async () => { const merchToApply = async () => {
console.log("formdata", applyFormData);
// showAll();
checkForm(); checkForm();
}; };
const bankListChange = (val) => { const bankListChange = (val) => {
const item:any = bankList2.value.find((item:any) => item.value == val); const item: any = bankList2.value.find((item: any) => item.value == val);
if (item) { if (item) {
applyFormData.bank_name = item.label; applyFormData.bank_name = item.label;
applyFormData.bank_district = item.district; applyFormData.bank_district = item.district;
@ -646,9 +420,9 @@ const bankListRemoteMethod = (val) => {
} }
GetBank({ GetBank({
keyword: val, // , keyword: val,
pageNum: 1, pageNum: 1,
pageSize: 2000, pageSize: 5000,
}).then((res) => { }).then((res) => {
if (res.status == 200) { if (res.status == 200) {
bankList2.value = res.data.items.map((item) => { bankList2.value = res.data.items.map((item) => {
@ -710,7 +484,9 @@ const querySearch = async (queryString, cb) => {
try { try {
const params = { const params = {
query: queryString, query: queryString,
region: applyFormData.mapAddressLabel, region:
applyFormData.mapAddressLabel.indexOf("/") &&
applyFormData.mapAddressLabel?.split("/")[1],
city_limit: true, city_limit: true,
ret_coordtype: "gcj02ll", ret_coordtype: "gcj02ll",
}; };
@ -846,7 +622,10 @@ const handleOcrText = async (batchNo, imgType) => {
switch (imgType) { switch (imgType) {
case "biz_license_image": case "biz_license_image":
var res = (await getOcrText(batchNo, orcImgTypeConf.BUSINESS_LICENCE)) as any; var res = (await getOcrText(
batchNo,
orcImgTypeConf.BUSINESS_LICENCE
)) as any;
console.log("biz_license_image", res); console.log("biz_license_image", res);
applyFormData.biz_license_company = res.bizLicenseCompanyName; applyFormData.biz_license_company = res.bizLicenseCompanyName;
@ -856,26 +635,29 @@ const handleOcrText = async (batchNo, imgType) => {
applyFormData.biz_license_content = res.bizLicenseScope; applyFormData.biz_license_content = res.bizLicenseScope;
break; break;
case "legal_person_id_images": case "legal_person_id_images":
var res = (await getOcrText(batchNo, orcImgTypeConf.FR_ID_CARD_FRONT)) as any; var res = (await getOcrText(
batchNo,
orcImgTypeConf.FR_ID_CARD_FRONT
)) as any;
console.log("legal_person_id_images", res); console.log("legal_person_id_images", res);
applyFormData.legal_person_id_number = res.idNumber; applyFormData.legal_person_id_number = res.idNumber;
applyFormData.legal_person_id_addr = res.address; applyFormData.legal_person_id_addr = res.address;
break; break;
case "legal_person_id_images2": case "legal_person_id_images2":
var res = (await getOcrText( var res = (await getOcrText(
batchNo, batchNo,
orcImgTypeConf.FR_ID_CARD_BEHIND orcImgTypeConf.FR_ID_CARD_BEHIND
)) as any; )) as any;
var validity = res.validity.split('-') var validity = res.validity.split("-");
console.log("legal_person_id_images2", res); console.log("legal_person_id_images2", res);
applyFormData.legal_person_id_period_begin = validity[0]; applyFormData.legal_person_id_period_begin = validity[0];
if(validity[1]!='长期'){ if (validity[1] != "长期") {
applyFormData.legal_person_id_period_end = validity[1]; applyFormData.legal_person_id_period_end = validity[1];
} else { } else {
applyFormData.legal_person_id_period_end = "9999-12-31" applyFormData.legal_person_id_period_end = "9999-12-31";
} }
break; break;
case "individual_id_images": case "individual_id_images":
@ -896,15 +678,15 @@ const handleOcrText = async (batchNo, imgType) => {
orcImgTypeConf.ID_CARD_BEHIND orcImgTypeConf.ID_CARD_BEHIND
)) as any; )) as any;
var validity = res.validity.split('-') var validity = res.validity.split("-");
console.log("individual_id_images2", res); console.log("individual_id_images2", res);
applyFormData.individual_id_period_begin = validity[0]; applyFormData.individual_id_period_begin = validity[0];
if(validity[1]!='长期'){ if (validity[1] != "长期") {
applyFormData.individual_id_period_end = validity[1]; applyFormData.individual_id_period_end = validity[1];
} else { } else {
applyFormData.individual_id_period_end = "9999-12-31" applyFormData.individual_id_period_end = "9999-12-31";
} }
break; break;
case "bank_image": case "bank_image":
@ -915,7 +697,7 @@ const handleOcrText = async (batchNo, imgType) => {
} }
loading.value = false; loading.value = false;
(formRef.value as any).validate() (formRef.value as any).validate();
}; };
const handleUploadSuccess = async (response, file, fileList, field) => { const handleUploadSuccess = async (response, file, fileList, field) => {
@ -934,16 +716,19 @@ const handleUploadSuccess = async (response, file, fileList, field) => {
switch (field) { switch (field) {
case "biz_license_image": case "biz_license_image":
var res = await getBatchNo(file.raw, orcImgTypeConf.BUSINESS_LICENCE); var res = await getBatchNo(file.raw, orcImgTypeConf.BUSINESS_LICENCE);
currentBbatchNo.value = res.batchNo currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field) handleOcrText(res.batchNo, field);
break; break;
case "legal_person_id_images": case "legal_person_id_images":
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_FRONT); var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_FRONT);
currentBbatchNo.value = res.batchNo currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field) handleOcrText(res.batchNo, field);
break; break;
case "legal_person_id_images2": case "legal_person_id_images2":
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_BEHIND); var res = await getBatchNo(
file.raw,
orcImgTypeConf.FR_ID_CARD_BEHIND
);
currentBbatchNo.value = res.batchNo; currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field); handleOcrText(res.batchNo, field);
break; break;
@ -959,8 +744,8 @@ const handleUploadSuccess = async (response, file, fileList, field) => {
break; break;
case "bank_image": case "bank_image":
var res = await getBatchNo(file.raw, orcImgTypeConf.BANK_CARD); var res = await getBatchNo(file.raw, orcImgTypeConf.BANK_CARD);
currentBbatchNo.value = res.batchNo currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field) handleOcrText(res.batchNo, field);
break; break;
} }
} else { } else {
@ -972,41 +757,20 @@ const handleUploadSuccess = async (response, file, fileList, field) => {
loading.value = false; loading.value = false;
} }
(formRef.value as any).validate() (formRef.value as any).validate();
}; };
const handleUploadError = (error, file) => { const handleUploadError = (error, file) => {
loading.value = false; loading.value = false;
ElMessage.error("文件上传失败"); ElMessage.error("文件上传失败");
}; };
const clearOtherFields = () => {
// if (applyFormData.entity_type === 1) {
// //
// applyFormData.individual_id_number = "";
// applyFormData.individual_id_images = "";
// applyFormData.individual_id_images2 = "";
// } else if (applyFormData.entity_type === 2) {
// //
// applyFormData.license_type = "1";
// applyFormData.license_number = "";
// applyFormData.biz_license_number = "";
// applyFormData.biz_license_company = "";
// applyFormData.legal_person_name = "";
// applyFormData.legal_person_mobile = "";
// applyFormData.legal_person_id_number = "";
// applyFormData.biz_license_image = "";
// applyFormData.license_image = [];
// applyFormData.legal_person_id_images = "";
// applyFormData.legal_person_id_images2 = "";
// }
};
onMounted(() => { onMounted(() => {
// bankListRemoteMethod(); // bankListRemoteMethod();
if(!isLoggedIn.value){ if (!isLoggedIn.value) {
router.push({ name: "index" }); router.push({ name: "index" });
return return;
} }
handleGetAuditInfo(); handleGetAuditInfo();
@ -1059,7 +823,7 @@ onMounted(() => {
.tit { .tit {
font-size: 16px; font-size: 16px;
margin-bottom: 15px; margin-bottom: 15px;
:deep(.el-result){ :deep(.el-result) {
padding: 0; padding: 0;
} }
} }
@ -1070,7 +834,7 @@ onMounted(() => {
border-radius: 5px; border-radius: 5px;
background: #fff; background: #fff;
margin-bottom: 12px; margin-bottom: 12px;
&.nodata{ &.nodata {
min-height: 900px; min-height: 900px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -1110,6 +874,29 @@ onMounted(() => {
} }
} }
.bank_name_tip {
display: flex;
align-items: center;
margin-left: 10px;
}
.bank_name_cont {
width: 300px;
h3{
margin-bottom: 12px;
}
p {
font-size: 14px;
margin-bottom: 12px;
}
}
.myui_check_text {
color: #999;
padding-bottom: 10px;
text-align: center;
font-size: 14px;
}
.auto-item { .auto-item {
p { p {
font-size: 15px; font-size: 15px;

View File

@ -6,6 +6,7 @@ export default {
label: "联系人", label: "联系人",
placeholder: "请输入联系人", placeholder: "请输入联系人",
sort: 1, sort: 1,
required: true,
}, },
{ {
type: "select", type: "select",
@ -15,6 +16,7 @@ export default {
style: "pointer-events: none", style: "pointer-events: none",
placeholder: "请选择经营品类", placeholder: "请选择经营品类",
sort: 2, sort: 2,
required: true,
}, },
{ {
type: "input", type: "input",
@ -22,6 +24,7 @@ export default {
label: "门店名称", label: "门店名称",
placeholder: "请输入门店名称", placeholder: "请输入门店名称",
sort: 3, sort: 3,
required: true,
}, },
{ {
type: "select", type: "select",
@ -29,8 +32,9 @@ export default {
label: "所在地区", label: "所在地区",
isReadonly: true, isReadonly: true,
style: "pointer-events: none", style: "pointer-events: none",
placeholder: "请在地图上选择门店地址", placeholder: "请选择店铺所在地区",
sort: 4, sort: 4,
required: false,
}, },
{ {
type: "input", type: "input",
@ -38,6 +42,7 @@ export default {
label: "详细地址", label: "详细地址",
placeholder: "请输入店铺详细地址", placeholder: "请输入店铺详细地址",
sort: 5, sort: 5,
required: true,
}, },
{ {
type: "upload", type: "upload",
@ -45,6 +50,7 @@ export default {
label: "门脸图片", label: "门脸图片",
placeholder: "请上传门脸图片", placeholder: "请上传门脸图片",
sort: 6, sort: 6,
required: true,
}, },
{ {
type: "upload", type: "upload",
@ -52,13 +58,15 @@ export default {
label: "环境图片", label: "环境图片",
placeholder: "请上传门脸图片", placeholder: "请上传门脸图片",
sort: 7, sort: 7,
required: true,
}, },
{ {
type: "upload", type: "upload",
key: "biz_license_image", key: "biz_license_image",
label: "营业执照", label: "营业执照",
placeholder: "", placeholder: "请上传营业执照",
sort: 8, sort: 8,
required: true,
}, },
{ {
type: "input", type: "input",
@ -66,6 +74,7 @@ export default {
label: "公司名称", label: "公司名称",
placeholder: "请输入公司名称", placeholder: "请输入公司名称",
sort: 9, sort: 9,
required: true,
}, },
{ {
type: "input", type: "input",
@ -73,6 +82,7 @@ export default {
label: "法人姓名", label: "法人姓名",
placeholder: "请输入法人姓名", placeholder: "请输入法人姓名",
sort: 10, sort: 10,
required: true,
}, },
{ {
type: "input", type: "input",
@ -80,6 +90,7 @@ export default {
label: "法人手机号", label: "法人手机号",
placeholder: "请输入法人手机号", placeholder: "请输入法人手机号",
sort: 10, sort: 10,
required: true,
}, },
{ {
type: "input", type: "input",
@ -87,6 +98,7 @@ export default {
label: "注册号", label: "注册号",
placeholder: "请输入注册号", placeholder: "请输入注册号",
sort: 11, sort: 11,
required: true,
}, },
{ {
type: "textarea", type: "textarea",
@ -94,6 +106,7 @@ export default {
label: "经营范围", label: "经营范围",
placeholder: "请输入经营范围", placeholder: "请输入经营范围",
sort: 11, sort: 11,
required: true,
}, },
{ {
type: "select", type: "select",
@ -103,18 +116,20 @@ export default {
style: "pointer-events: none", style: "pointer-events: none",
placeholder: "请选择许可证类型", placeholder: "请选择许可证类型",
sort: 12, sort: 12,
required: true,
}, },
{ {
type: "upload", type: "upload",
key: "license_image", key: "license_image",
label: "许可证图片", label: "许可证图片",
class: "upload-4", class: "upload-4",
placeholder: "", placeholder: "请上传许可证图片",
imgUrlArr: [], imgUrlArr: [],
imgWidth: 125, imgWidth: 125,
imgHeight: 88, imgHeight: 88,
imgUpMaxCount: 5, imgUpMaxCount: 5,
sort: 13, sort: 13,
required: false,
}, },
{ {
type: "input", type: "input",
@ -122,24 +137,27 @@ export default {
label: "许可证编号", label: "许可证编号",
placeholder: "请输入许可证编号", placeholder: "请输入许可证编号",
sort: 14, sort: 14,
required: false,
}, },
{ {
type: "upload", type: "upload",
key: "individual_id_images", key: "individual_id_images",
label: "个人身份证正面图片", label: "个人身份证正面图片",
class: "upload-5", class: "upload-5",
placeholder: "", placeholder: "请上传个人身份证正面图片",
imgUrlArr: [], imgUrlArr: [],
sort: 15, sort: 15,
required: true,
}, },
{ {
type: "upload", type: "upload",
key: "individual_id_images2", key: "individual_id_images2",
label: "个人身份证反面图片", label: "个人身份证反面图片",
class: "upload-5", class: "upload-5",
placeholder: "", placeholder: "请上传个人身份证反面图片",
imgUrlArr: [], imgUrlArr: [],
sort: 15, sort: 15,
required: true,
}, },
{ {
type: "input", type: "input",
@ -148,6 +166,7 @@ export default {
label: "个人身份证姓名", label: "个人身份证姓名",
placeholder: "请输入个人身份证姓名", placeholder: "请输入个人身份证姓名",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "input", type: "input",
@ -156,6 +175,7 @@ export default {
label: "个人身份证号码", label: "个人身份证号码",
placeholder: "请输入个人身份证号码", placeholder: "请输入个人身份证号码",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "input", type: "input",
@ -164,6 +184,7 @@ export default {
label: "个人身份证地址", label: "个人身份证地址",
placeholder: "请输入个人身份证地址", placeholder: "请输入个人身份证地址",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "datepicker", type: "datepicker",
@ -172,6 +193,7 @@ export default {
label: "个人身份证生效日期", label: "个人身份证生效日期",
placeholder: "请输入个人身份证生效日期", placeholder: "请输入个人身份证生效日期",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "datepicker", type: "datepicker",
@ -180,6 +202,7 @@ export default {
label: "个人身份证截止日期", label: "个人身份证截止日期",
placeholder: "请输入个人身份证截止日期", placeholder: "请输入个人身份证截止日期",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "upload", type: "upload",
@ -187,22 +210,24 @@ export default {
hide: true, hide: true,
label: "法人身份证正面图片", label: "法人身份证正面图片",
class: "upload-5", class: "upload-5",
placeholder: "", placeholder: "请上传法人身份证正面图片",
imgUrlArr: [], imgUrlArr: [],
imgWidth: 180, imgWidth: 180,
imgHeight: 110, imgHeight: 110,
sort: 15, sort: 15,
required: true,
}, },
{ {
type: "upload", type: "upload",
key: "legal_person_id_images2", key: "legal_person_id_images2",
label: "法人身份证反面图片", label: "法人身份证反面图片",
class: "upload-6", class: "upload-6",
placeholder: "", placeholder: "请上传法人身份证反面图片",
imgUrlArr: [], imgUrlArr: [],
imgWidth: 180, imgWidth: 180,
imgHeight: 110, imgHeight: 110,
sort: 15, sort: 15,
required: true,
}, },
{ {
type: "input", type: "input",
@ -211,6 +236,7 @@ export default {
label: "法人身份证号码", label: "法人身份证号码",
placeholder: "请输入法人身份证号码", placeholder: "请输入法人身份证号码",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "input", type: "input",
@ -219,6 +245,7 @@ export default {
label: "法人身份证地址", label: "法人身份证地址",
placeholder: "请输入法人身份证地址", placeholder: "请输入法人身份证地址",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "datepicker", type: "datepicker",
@ -227,6 +254,7 @@ export default {
label: "法人身份证生效日期", label: "法人身份证生效日期",
placeholder: "请输入法人身份证生效日期", placeholder: "请输入法人身份证生效日期",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "datepicker", type: "datepicker",
@ -235,6 +263,7 @@ export default {
label: "法人身份证截止日期", label: "法人身份证截止日期",
placeholder: "请输入法人身份证截止日期", placeholder: "请输入法人身份证截止日期",
sort: 16, sort: 16,
required: true,
}, },
{ {
type: "input", type: "input",
@ -242,6 +271,7 @@ export default {
label: "开户名称", label: "开户名称",
placeholder: "请输入开户名称", placeholder: "请输入开户名称",
sort: 17, sort: 17,
required: true,
}, },
{ {
type: "input", type: "input",
@ -249,6 +279,7 @@ export default {
label: "银行卡号", label: "银行卡号",
placeholder: "请输入银行卡号", placeholder: "请输入银行卡号",
sort: 18, sort: 18,
required: true,
}, },
{ {
type: "select", type: "select",
@ -256,8 +287,9 @@ export default {
label: "开户银行", label: "开户银行",
isReadonly: true, isReadonly: true,
style: "pointer-events: none", style: "pointer-events: none",
placeholder: "请选择开户银行", placeholder: "请输入开户银行",
sort: 19, sort: 19,
required: true,
}, },
], ],
}; };

View File

@ -727,7 +727,7 @@
@change="bankListChange" @change="bankListChange"
:remote-method="bankListRemoteMethod" :remote-method="bankListRemoteMethod"
v-model="applyFormData.bank_branch_name" v-model="applyFormData.bank_branch_name"
placeholder="搜索银行名称" placeholder="中国工商银行桂平"
placement="top-start" placement="top-start"
style="width: 350px" style="width: 350px"
:options="bankList2" :options="bankList2"
@ -743,24 +743,12 @@
<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">
<h3>开店时搜不到我的开户银行怎么处理?</h3> <p>如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级支行网点</p>
<p>
1.
目前小店的结算账户仅支持下拉框中包含的银行无法搜索到的银行在后续经营中可能无法正常结算提现等功能因此暂不支持
</p>
<p>
2.
若遇到这类问题请商户使用下拉框选项中包含的银行账户进行入驻如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级网点否则将无法进行身份验证
</p>
<p>
3.
为了顺利注册开店与保障账号资产安全推荐优先使用四大国有银行开户注册
</p>
</div> </div>
</template> </template>
<el-button type="info" link> <el-button type="info" link>
<el-icon color="#e6a23c" size="14" <el-icon color="#e6a23c" size="14" style="margin-right:5px"
><WarningFilled /></el-icon ><WarningFilled /></el-icon
>搜不到我的开户银行怎么处理</el-button >搜不到我的开户银行怎么处理</el-button
> >