This commit is contained in:
2025-12-25 14:49:46 +08:00
parent 526370bb41
commit fd22ad2884
65 changed files with 13647 additions and 3166 deletions

View File

@@ -1,6 +1,4 @@
<script setup>
import CG11BJ06 from "@/ui/CG11BJ06.vue";
import CG29BJ05 from "@/ui/CG29BJ05.vue";
const featureMap = {
G09SC02: {
name: "婚姻状态",
@@ -17,7 +15,7 @@ const featureMap = {
remark: '查询结果为"未婚或尚未登记结婚"时,表示婚姻登记处暂无相关的登记记录。婚姻状态信息由婚姻登记处逐级上报,可能存在数据遗漏或更新滞后。当前可查询的婚姻状态包括:未婚或尚未登记结婚、已婚、离异。如您对查询结果有疑问,请联系客服反馈。',
},
G27BJ05: {
name: "借贷申请记录",
name: "本人需求推测",
component: defineAsyncComponent(() =>
import("@/ui/CBankLoanApplication.vue")
),
@@ -45,7 +43,7 @@ const featureMap = {
component: defineAsyncComponent(() => import("@/ui/CLawsuitPP.vue")),
},
G05HZ01: {
name: "股东人企关系",
name: "名下企业关联",
component: defineAsyncComponent(() =>
import("@/ui/CRelatedEnterprises.vue")
),
@@ -120,6 +118,10 @@ const featureMap = {
name: "名下车辆",
component: defineAsyncComponent(() => import("@/ui/CCAR061.vue")),
},
QCXG9P1C: {
name: "名下车辆",
component: defineAsyncComponent(() => import("@/ui/CQCXG9P1C.vue")),
},
COM187: {
name: "限制出境查询",
component: defineAsyncComponent(() => import("@/ui/CCOM187.vue")),
@@ -181,7 +183,7 @@ const featureMap = {
),
},
PersonEnterprisePro: {
name: "人企关系加强版",
name: "名下企业关联",
component: defineAsyncComponent(() =>
import("@/ui/CPersonEnterprisePro/index.vue")
),
@@ -195,6 +197,27 @@ const featureMap = {
component: defineAsyncComponent(() => import("@/ui/CG11BJ06.vue")),
remark: "暂无学历信息记录可能是因为学历信息不公开、暂无高等教育学历(大专及以上学历)或学历较早未被数字化收录。",
},
FLXGDEA9: {
name: "本人不良",
component: defineAsyncComponent(() => import("@/ui/CFLXGDEA9.vue")),
},
IVYZ6G7H: {
name: "婚姻状态(补证版)",
component: defineAsyncComponent(() => import("@/ui/CIVYZ6G7H.vue")),
},
IVYZ3A7F: {
name: "学历信息查询(含学校名称)",
component: defineAsyncComponent(() => import("@/ui/CIVYZ3A7F.vue")),
},
YYSY7D3E: {
name: "携号转网查询",
component: defineAsyncComponent(() => import("@/ui/CYYSY7D3E.vue")),
},
IVYZ3P9M: {
name: "学历信息",
component: defineAsyncComponent(() => import("@/ui/IVYZ3P9M.vue")),
remark: '学历信息展示学生姓名、身份证号、学校、专业、入学与毕业时间、学历层次以及学习形式等字段,可结合字典编码了解具体含义。',
},
};
import LEmpty from "@/components/LEmpty.vue";
@@ -215,6 +238,8 @@ const orderNo = ref("");
const isEmpty = ref(false);
const isPending = ref(false);
const reportScore = ref(0);
const queryState = ref("");
const pollingInterval = ref(null);
onMounted(() => {
const query = new URLSearchParams(window.location.search);
@@ -225,10 +250,15 @@ onMounted(() => {
orderNo.value = route.query.orderNo;
}
if (!orderId.value && !orderNo.value) return;
getReport();
});
onBeforeUnmount(() => {
if (pollingInterval.value) {
clearInterval(pollingInterval.value);
}
});
const getReport = async () => {
let queryUrl = "";
if (orderNo.value) {
@@ -242,20 +272,57 @@ const getReport = async () => {
if (data.value && !error.value) {
if (data.value.code === 200) {
reportData.value = data.value.data.query_data.sort((a, b) => {
return a.feature.sort - b.feature.sort;
});
productId.value = data.value.data.product_id;
reportParams.value = data.value.data.query_params;
reportName.value = data.value.data.product_name;
reportDateTime.value = data.value.data.create_time;
reportScore.value = calculateScore(reportData.value);
queryState.value = data.value.data.query_state;
if (queryState.value === "paid" || queryState.value === "success") {
reportData.value = data.value.data.query_data.sort((a, b) => {
return a.feature.sort - b.feature.sort;
});
productId.value = data.value.data.product_id;
reportParams.value = data.value.data.query_params;
reportName.value = data.value.data.product_name;
reportDateTime.value = data.value.data.create_time;
reportScore.value = calculateScore(reportData.value);
isDone.value = true;
console.log("reportData", reportData.value);
// 如果成功,清除轮询
if (pollingInterval.value) {
clearInterval(pollingInterval.value);
pollingInterval.value = null;
}
} else if (queryState.value === "pending") {
// 如果是pending状态且没有轮询启动轮询
if (!pollingInterval.value) {
pollingInterval.value = setInterval(() => {
getReport();
}, 1000); // 每1秒轮询一次
}
} else if (queryState.value === "failed") {
isEmpty.value = true;
isDone.value = true;
// 如果失败,清除轮询
if (pollingInterval.value) {
clearInterval(pollingInterval.value);
pollingInterval.value = null;
}
} else if (queryState.value === "refunded") {
isEmpty.value = true;
isDone.value = true;
// 如果已退款,清除轮询
if (pollingInterval.value) {
clearInterval(pollingInterval.value);
pollingInterval.value = null;
}
}
} else if (data.value.code === 200003) {
isEmpty.value = true;
isDone.value = true;
} else if (data.value.code === 200002) {
isPending.value = true;
isDone.value = true;
}
isDone.value = true;
}
};
// 对请求参数进行脱敏处理
@@ -364,14 +431,14 @@ const calculateScore = (reportData) => {
FIN019: 100, // 银行卡黑名单
// 高风险指标(中优先级)
G27BJ05: 40, // 借贷申请记录
G27BJ05: 40, // 本人需求推测
G28BJ05: 40, // 借贷行为记录
G03HZ01: 70, // 手机号码风险
// 中风险指标(低优先级)
G19BJ02: 50, // 手机二次卡
G02BJ02: 50, // 手机在网时长
G05HZ01: 50, // 人企关系
G05HZ01: 50, // 名下企业关联
// 验证指标(最低优先级)
G15BJ02: 25, // 手机三要素
@@ -418,7 +485,7 @@ const calculateScore = (reportData) => {
// 不计入风险
break;
case "G27BJ05": // 借贷申请记录
case "G27BJ05": // 本人需求推测
if (data) {
// 检查是否有申请记录(有则表示风险)
let hasRisk = false;
@@ -629,16 +696,18 @@ const calculateScore = (reportData) => {
</script>
<template>
<div class="min-h-full from-blue-100 to-white bg-gradient-to-b">
<div v-if="queryState === 'pending'" class="loading-container">
<div class="loading-spinner"></div>
<p>报告生成中请稍候...</p>
</div>
<div v-else-if="queryState === 'failed' || queryState === 'refunded'" class="p-4">
<LEmpty />
</div>
<div v-else-if="queryState === 'paid' || queryState === 'success'"
class="min-h-full from-blue-100 to-white bg-gradient-to-b">
<template v-if="isDone">
<!-- 当reportData.length > 1时使用van-tabs -->
<van-tabs
v-if="reportData.length > 1"
v-model:active="active"
scrollspy
sticky
:offset-top="46"
>
<van-tabs v-if="reportData.length > 1" v-model:active="active" scrollspy sticky :offset-top="46">
<div class="flex flex-col gap-y-4 p-4">
<LEmpty v-if="isEmpty" />
<LPendding v-if="isPending" />
@@ -655,54 +724,29 @@ const calculateScore = (reportData) => {
<div id="overdiv" class="title mb-4">基本信息</div>
<div class="card">
<div class="flex flex-col gap-y-2">
<LTitle
title="报告信息"
type="blue-green"
></LTitle>
<LTitle title="报告信息" type="blue-green"></LTitle>
<div class="flex flex-col gap-2 my-2">
<div
class="flex justify-between border-b pb-2 pl-2"
>
<span
class="text-gray-700 font-bold"
>报告时间</span
>
<div class="flex justify-between border-b pb-2 pl-2">
<span class="text-gray-700 font-bold">报告时间</span>
<span class="text-gray-600">{{
reportDateTime
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="!isEmpty"
>
<span
class="text-gray-700 font-bold"
>报告项目</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="!isEmpty">
<span class="text-gray-700 font-bold">报告项目</span>
<span class="text-gray-600">
{{ reportName }}</span
>
{{ reportName }}</span>
</div>
</div>
<template
v-if="
Object.keys(reportParams).length !=
0
"
>
<LTitle
title="报告对象"
type="blue-green"
></LTitle>
<template v-if="
Object.keys(reportParams).length !=
0
">
<LTitle title="报告对象" type="blue-green"></LTitle>
<div class="flex flex-col gap-2 my-2">
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.name"
>
<span
class="text-gray-700 font-bold"
>姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.name">
<span class="text-gray-700 font-bold">姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -710,31 +754,20 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.id_card"
>
<span
class="text-gray-700 font-bold"
>身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.id_card">
<span class="text-gray-700 font-bold">身份证号</span>
<span class="text-gray-600">
{{
maskValue(
"id_card",
reportParams?.id_card
)
}}</span
>
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameMan"
>
<span
class="text-gray-700 font-bold"
>男方姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameMan">
<span class="text-gray-700 font-bold">男方姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -742,14 +775,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardMan"
>
<span
class="text-gray-700 font-bold"
>男方身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardMan">
<span class="text-gray-700 font-bold">男方身份证号</span>
<span class="text-gray-600">{{
maskValue(
"id_card",
@@ -757,14 +785,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameWoman"
>
<span
class="text-gray-700 font-bold"
>女方姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameWoman">
<span class="text-gray-700 font-bold">女方姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -772,14 +795,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardWoman"
>
<span
class="text-gray-700 font-bold"
>女方身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardWoman">
<span class="text-gray-700 font-bold">女方身份证号</span>
<span class="text-gray-600">{{
maskValue(
"id_card",
@@ -787,14 +805,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.bank_card"
>
<span
class="text-gray-700 font-bold"
>银行卡号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.bank_card">
<span class="text-gray-700 font-bold">银行卡号</span>
<span class="text-gray-600">{{
maskValue(
"bank_card",
@@ -802,14 +815,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.mobile"
>
<span
class="text-gray-700 font-bold"
>手机号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.mobile">
<span class="text-gray-700 font-bold">手机号</span>
<span class="text-gray-600">{{
maskValue(
"mobile",
@@ -817,16 +825,10 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="
reportParams?.verification_code
"
>
<span
class="text-gray-700 font-bold"
>验证码</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="
reportParams?.verification_code
">
<span class="text-gray-700 font-bold">验证码</span>
<span class="text-gray-600">{{
maskValue(
"code",
@@ -834,14 +836,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.car_license"
>
<span
class="text-gray-700 font-bold"
>车牌号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.car_license">
<span class="text-gray-700 font-bold">车牌号</span>
<span class="text-gray-600">{{
maskValue(
"car_license",
@@ -849,14 +846,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_name"
>
<span
class="text-gray-700 font-bold"
>企业名称</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_name">
<span class="text-gray-700 font-bold">企业名称</span>
<span class="text-gray-600">{{
maskValue(
"ent_name",
@@ -864,14 +856,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_code"
>
<span
class="text-gray-700 font-bold"
>企业代码</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_code">
<span class="text-gray-700 font-bold">企业代码</span>
<span class="text-gray-600">{{
maskValue(
"ent_code",
@@ -880,23 +867,16 @@ const calculateScore = (reportData) => {
}}</span>
</div>
<div class="flex flex-col gap-4">
<div
class="flex items-center bg-blue-100 rounded-xl px-4 py-2 flex-1"
>
<div class="flex items-center bg-blue-100 rounded-xl px-4 py-2 flex-1">
<div
class="bg-green-500 w-12 h-12 text-white text-xl flex items-center justify-center rounded-full mr-4"
>
class="bg-green-500 w-12 h-12 text-white text-xl flex items-center justify-center rounded-full mr-4">
</div>
<div>
<div
class="font-bold text-lg"
>
<div class="font-bold text-lg">
身份证检查结果
</div>
<div
class="text-sm text-gray-600"
>
<div class="text-sm text-gray-600">
身份证信息核验通过
</div>
</div>
@@ -906,32 +886,20 @@ const calculateScore = (reportData) => {
</template>
</div>
</div>
<LRemark
content="如查询的姓名/身份证与运营商提供的不一致,可能会存在报告内容不匹配的情况"
/>
<LRemark content="如查询的姓名/身份证与运营商提供的不一致,可能会存在报告内容不匹配的情况" />
</van-tab>
<van-tab
v-for="(item, index) in reportData"
:key="index"
:title="featureMap[item.data.apiID]?.name"
>
<van-tab v-for="(item, index) in reportData" :key="index"
:title="featureMap[item.data.apiID]?.name">
<div id="lawsuit" class="title mb-4">
{{ featureMap[item.data.apiID]?.name }}
</div>
<component
:is="featureMap[item.data.apiID]?.component"
:data="item.data.data"
:params="reportParams"
:isMerriageProduct="
item.data.apiID === 'G09SC02' ||
<component :is="featureMap[item.data.apiID]?.component" :data="item.data.data"
:params="reportParams" :isMerriageProduct="item.data.apiID === 'G09SC02' ||
item.data.apiID === 'IDV044'
"
>
">
</component>
<LRemark
v-if="featureMap[item.data.apiID]?.remark"
:content="featureMap[item.data.apiID]?.remark"
/>
<LRemark v-if="featureMap[item.data.apiID]?.remark"
:content="featureMap[item.data.apiID]?.remark" />
</van-tab>
</template>
</div>
@@ -946,43 +914,23 @@ const calculateScore = (reportData) => {
<div class="flex flex-col gap-y-2">
<LTitle title="报告信息" type="blue-green"></LTitle>
<div class="flex flex-col gap-2 my-2">
<div
class="flex justify-between border-b pb-2 pl-2"
>
<span class="text-gray-700 font-bold"
>报告时间:</span
>
<div class="flex justify-between border-b pb-2 pl-2">
<span class="text-gray-700 font-bold">报告时间:</span>
<span class="text-gray-600">{{
reportDateTime
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="!isEmpty"
>
<span class="text-gray-700 font-bold"
>报告项目:</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="!isEmpty">
<span class="text-gray-700 font-bold">报告项目:</span>
<span class="text-gray-600">
{{ reportName }}</span
>
{{ reportName }}</span>
</div>
</div>
<template
v-if="Object.keys(reportParams).length != 0"
>
<LTitle
title="报告对象"
type="blue-green"
></LTitle>
<template v-if="Object.keys(reportParams).length != 0">
<LTitle title="报告对象" type="blue-green"></LTitle>
<div class="flex flex-col gap-2 my-2">
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.name"
>
<span class="text-gray-700 font-bold"
>姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.name">
<span class="text-gray-700 font-bold">姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -990,29 +938,18 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.id_card"
>
<span class="text-gray-700 font-bold"
>身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.id_card">
<span class="text-gray-700 font-bold">身份证号</span>
<span class="text-gray-600">
{{
maskValue(
"id_card",
reportParams?.id_card
)
}}</span
>
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameMan"
>
<span class="text-gray-700 font-bold"
>男方姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.nameMan">
<span class="text-gray-700 font-bold">男方姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -1020,13 +957,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardMan"
>
<span class="text-gray-700 font-bold"
>男方身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.idCardMan">
<span class="text-gray-700 font-bold">男方身份证号</span>
<span class="text-gray-600">{{
maskValue(
"id_card",
@@ -1034,13 +966,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.nameWoman"
>
<span class="text-gray-700 font-bold"
>女方姓名</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.nameWoman">
<span class="text-gray-700 font-bold">女方姓名</span>
<span class="text-gray-600">{{
maskValue(
"name",
@@ -1048,13 +975,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardWoman"
>
<span class="text-gray-700 font-bold"
>女方身份证号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.idCardWoman">
<span class="text-gray-700 font-bold">女方身份证号</span>
<span class="text-gray-600">{{
maskValue(
"id_card",
@@ -1062,13 +985,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.bank_card"
>
<span class="text-gray-700 font-bold"
>银行卡号</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.bank_card">
<span class="text-gray-700 font-bold">银行卡号</span>
<span class="text-gray-600">{{
maskValue(
"bank_card",
@@ -1076,13 +994,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.mobile"
>
<span class="text-gray-700 font-bold"
>手机号</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.mobile">
<span class="text-gray-700 font-bold">手机号</span>
<span class="text-gray-600">{{
maskValue(
"mobile",
@@ -1090,13 +1003,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.verification_code"
>
<span class="text-gray-700 font-bold"
>验证码</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.verification_code">
<span class="text-gray-700 font-bold">验证码</span>
<span class="text-gray-600">{{
maskValue(
"code",
@@ -1104,13 +1013,9 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.car_license"
>
<span class="text-gray-700 font-bold"
>车牌号</span
>
<div class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.car_license">
<span class="text-gray-700 font-bold">车牌号</span>
<span class="text-gray-600">{{
maskValue(
"car_license",
@@ -1118,13 +1023,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_name"
>
<span class="text-gray-700 font-bold"
>企业名称</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.ent_name">
<span class="text-gray-700 font-bold">企业名称</span>
<span class="text-gray-600">{{
maskValue(
"ent_name",
@@ -1132,13 +1032,8 @@ const calculateScore = (reportData) => {
)
}}</span>
</div>
<div
class="flex justify-between border-b pb-2 pl-2"
v-if="reportParams?.ent_code"
>
<span class="text-gray-700 font-bold"
>企业代码</span
>
<div class="flex justify-between border-b pb-2 pl-2" v-if="reportParams?.ent_code">
<span class="text-gray-700 font-bold">企业代码</span>
<span class="text-gray-600">{{
maskValue(
"ent_code",
@@ -1147,21 +1042,16 @@ const calculateScore = (reportData) => {
}}</span>
</div>
<div class="flex flex-col gap-4">
<div
class="flex items-center bg-blue-100 rounded-xl px-4 py-2 flex-1"
>
<div class="flex items-center bg-blue-100 rounded-xl px-4 py-2 flex-1">
<div
class="bg-green-500 w-12 h-12 text-white text-xl flex items-center justify-center rounded-full mr-4"
>
class="bg-green-500 w-12 h-12 text-white text-xl flex items-center justify-center rounded-full mr-4">
</div>
<div>
<div class="font-bold text-lg">
身份证检查结果
</div>
<div
class="text-sm text-gray-600"
>
<div class="text-sm text-gray-600">
身份证信息核验通过
</div>
</div>
@@ -1171,28 +1061,20 @@ const calculateScore = (reportData) => {
</template>
</div>
</div>
<LRemark
content="如查询的姓名/身份证与运营商提供的不一致,可能会存在报告内容不匹配的情况"
/>
<LRemark content="如查询的姓名/身份证与运营商提供的不一致,可能会存在报告内容不匹配的情况" />
<!-- 显示报告数据 -->
<template v-for="(item, index) in reportData" :key="index">
<div id="lawsuit" class="title">
{{ featureMap[item.data.apiID]?.name }}
</div>
<component
:is="featureMap[item.data.apiID]?.component"
:data="item.data.data"
:params="reportParams"
:isMerriageProduct="
item.data.apiID === 'G09SC02' ||
<component :is="featureMap[item.data.apiID]?.component" :data="item.data.data"
:params="reportParams" :isMerriageProduct="item.data.apiID === 'G09SC02' ||
item.data.apiID === 'IDV044'
"
>
">
</component>
<LRemark
v-if="featureMap[item.data.apiID]?.remark"
:content="featureMap[item.data.apiID]?.remark"
/>
<LRemark v-if="featureMap[item.data.apiID]?.remark"
:content="featureMap[item.data.apiID]?.remark" />
</template>
</template>
</div>
@@ -1207,9 +1089,7 @@ const calculateScore = (reportData) => {
&nbsp;本报告的数据由用户本人明确授权后,我们才向相关合法存有用户个人数据的机构调取本报告相关内容,本平台只做大数据的获取与分析,仅向用户个人展示参考。
</div>
<p>
&nbsp; &nbsp; 报告有效期<strong class="text-red-500"
>15天</strong
>,过期自动删除。
&nbsp; &nbsp; 报告有效期<strong class="text-red-500">15天</strong>,过期自动删除。
</p>
<p>
&nbsp; &nbsp;
@@ -1226,6 +1106,10 @@ const calculateScore = (reportData) => {
</div>
<div class="disclaimer">
<div class="flex flex-col items-center">
<div class="flex items-center">
<img class="w-4 h-4 mr-2" src="@/assets/images/public_security_record_icon.png" alt="公安备案" />
<text>桂公网安备45010002451084号</text>
</div>
<div>
<a class="text-blue-500" href="https://beian.miit.gov.cn">
桂ICP备2024038462号
@@ -1255,4 +1139,37 @@ const calculateScore = (reportData) => {
padding-bottom: 60px;
background: #ffffff;
}
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
.loading-spinner {
width: 50px;
height: 50px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 20px;
}
p {
color: #666;
font-size: 16px;
}
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>