262 lines
11 KiB
Vue
262 lines
11 KiB
Vue
<script setup>
|
||
import CBad from "@/ui/CBad.vue";
|
||
import CBankLoanApplication from "@/ui/CBankLoanApplication.vue";
|
||
import CBankLoanBehavior from "@/ui/CBankLoanBehavior.vue";
|
||
import CLawsuit from "@/ui/CLawsuit.vue";
|
||
import CRelatedEnterprises from "@/ui/CRelatedEnterprises.vue";
|
||
import CSpecialList from "@/ui/CSpecialList.vue";
|
||
import { useHttp } from "@/composables/useHttp";
|
||
|
||
// import CTabs from "@/ui/CTabs.vue";
|
||
// import { queryResultByOrder } from "@/api/apis";
|
||
import CMarriage from "@/ui/CMarriage.vue";
|
||
import { useFetch } from "@vueuse/core";
|
||
|
||
const productMap = {
|
||
1: "背景调查",
|
||
2: "企业报告",
|
||
3: "家政服务",
|
||
4: "婚姻状态",
|
||
5: "贷前背景调查",
|
||
6: "租赁服务",
|
||
7: "个人风险评估",
|
||
};
|
||
|
||
// 根据 product_id 获取产品名称
|
||
function getProductName(productId) {
|
||
return productMap[productId] || "未知类型";
|
||
}
|
||
const productId = ref(null);
|
||
const isDone = ref(true);
|
||
const entData = ref(null);
|
||
const lawsuitData = ref(null);
|
||
const badData = ref(null);
|
||
const specialData = ref(null);
|
||
const bankLoanApplicationData = ref(null);
|
||
const marriageData = ref(null);
|
||
const bankLoanBehavior = ref(null);
|
||
const feature = ref(null);
|
||
const token = ref(null);
|
||
const tabs = ref([{ label: "报告概述", value: "overdiv" }]);
|
||
const reportItems = ref([]);
|
||
const sortedReportItems = computed(() => {
|
||
return reportItems.value.slice().sort((a, b) => a.sort - b.sort);
|
||
});
|
||
const sortedTabs = computed(() => {
|
||
return tabs.value.slice().sort((a, b) => a.sort - b.sort);
|
||
});
|
||
|
||
onMounted(() => {
|
||
const query = new URLSearchParams(window.location.search);
|
||
feature.value = query.get("feature");
|
||
token.value = query.get("token") || "";
|
||
if (!feature.value) return;
|
||
|
||
const { data, isFetching, error, onFetchResponse } = useFetch(
|
||
`/api/v1/query/example?feature=${feature.value}`,
|
||
{
|
||
async beforeFetch({ url, options, cancel }) {
|
||
options.headers = {
|
||
...options.headers,
|
||
Authorization: token.value,
|
||
};
|
||
|
||
return {
|
||
options,
|
||
};
|
||
},
|
||
}
|
||
)
|
||
.get()
|
||
.json();
|
||
|
||
onFetchResponse(() => {
|
||
console.log("data", data.value);
|
||
if (data.value.code === 200) {
|
||
productId.value = data.value.data.product_id;
|
||
data.value.data.query_data.forEach((item) => {
|
||
if (item.success) {
|
||
switch (item.apiID) {
|
||
case "G09SC02":
|
||
marriageData.value = item.data;
|
||
tabs.value.push({
|
||
label: "婚姻状态",
|
||
value: "marriage",
|
||
sort: 1,
|
||
});
|
||
reportItems.value.push({
|
||
label: "婚姻状态",
|
||
value: "marriage",
|
||
sort: 1,
|
||
});
|
||
break;
|
||
case "G27BJ05":
|
||
bankLoanApplicationData.value = item.data;
|
||
tabs.value.push({
|
||
label: "借贷申请记录",
|
||
value: "netloan",
|
||
sort: 7,
|
||
});
|
||
reportItems.value.push({
|
||
label: "借贷申请记录",
|
||
value: "netloan",
|
||
sort: 7,
|
||
});
|
||
break;
|
||
case "G28BJ05":
|
||
bankLoanBehavior.value = item.data;
|
||
tabs.value.push({
|
||
label: "借贷记录",
|
||
value: "loan",
|
||
sort: 6,
|
||
});
|
||
reportItems.value.push({
|
||
label: "借贷记录",
|
||
value: "loan",
|
||
sort: 6,
|
||
});
|
||
break;
|
||
case "G26BJ05":
|
||
specialData.value = item.data;
|
||
tabs.value.push({
|
||
label: "异常名单",
|
||
value: "special",
|
||
sort: 5,
|
||
});
|
||
reportItems.value.push({
|
||
label: "异常名单",
|
||
value: "special",
|
||
sort: 5,
|
||
});
|
||
break;
|
||
case "G05HZ01":
|
||
entData.value = item.data;
|
||
tabs.value.push({
|
||
label: "关联企业",
|
||
value: "ent",
|
||
sort: 4,
|
||
});
|
||
reportItems.value.push({
|
||
label: "关联企业",
|
||
value: "ent",
|
||
sort: 4,
|
||
});
|
||
break;
|
||
case "G34BJ03":
|
||
badData.value = item.data;
|
||
tabs.value.push({
|
||
label: "不良风险评估",
|
||
value: "bad",
|
||
sort: 3,
|
||
});
|
||
reportItems.value.push({
|
||
label: "不良风险评估",
|
||
value: "bad",
|
||
sort: 3,
|
||
});
|
||
break;
|
||
case "G35SC01":
|
||
lawsuitData.value = item.data;
|
||
tabs.value.push({
|
||
label: "涉诉案件",
|
||
value: "lawsuit",
|
||
sort: 2,
|
||
});
|
||
reportItems.value.push({
|
||
label: "涉诉案件",
|
||
value: "lawsuit",
|
||
sort: 2,
|
||
});
|
||
break;
|
||
default:
|
||
console.log(`未知的apiID: ${item.apiID}`);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
|
||
<template>
|
||
<div class="min-h-full from-blue-100 to-white bg-gradient-to-b">
|
||
<template v-if="isDone">
|
||
<div class="flex flex-col gap-y-4 p-4 pt-12">
|
||
<div id="overdiv" class="title">报告概述</div>
|
||
<div class="card">
|
||
<div class="flex flex-col gap-y-2">
|
||
<div class="flex justify-between">
|
||
<span class="text-gray-700 font-bold">报告时间:</span>
|
||
<span class="text-gray-600">2024年11月18日 23:11:23</span>
|
||
</div>
|
||
<div class="flex justify-between">
|
||
<span class="text-gray-700 font-bold">报告项目:</span>
|
||
<span class="text-gray-600">{{
|
||
getProductName(productId)
|
||
}}</span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<LTitle class="my-4" title="报告内容" type="blue-green" />
|
||
<div class="flex flex-col gap-y-2">
|
||
<div v-for="item in sortedReportItems" :key="item.value" class="flex justify-between">
|
||
<span class="text-gray-700 font-bold">{{ item.label }}:</span>
|
||
<span class="text-green-500 font-bold">已解锁</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<template v-if="marriageData">
|
||
<div id="marriage" class="title">婚姻状态</div>
|
||
<CMarriage :data="marriageData" />
|
||
</template>
|
||
<template v-if="lawsuitData">
|
||
<div id="lawsuit" class="title">涉诉案件</div>
|
||
<CLawsuit :data="lawsuitData" />
|
||
</template>
|
||
<template v-if="badData">
|
||
<div id="bad" class="title">不良风险评估</div>
|
||
<CBad :data="badData" />
|
||
</template>
|
||
<template v-if="entData">
|
||
<div id="ent" class="title">关联企业</div>
|
||
<CRelatedEnterprises :data="entData" />
|
||
</template>
|
||
<template v-if="specialData">
|
||
<div id="special" class="title">异常名单</div>
|
||
<CSpecialList :data="specialData" />
|
||
</template>
|
||
<template v-if="bankLoanBehavior">
|
||
<div id="loan" class="title">借贷记录</div>
|
||
<CBankLoanBehavior :data="bankLoanBehavior" />
|
||
</template>
|
||
<template v-if="bankLoanApplicationData">
|
||
<div id="netloan" class="title">贷款申请记录</div>
|
||
<CBankLoanApplication :data="bankLoanApplicationData" />
|
||
</template>
|
||
<div class="card">
|
||
<div>
|
||
<div class="text-bold text-blue-500 mb-2">报告说明</div>
|
||
<div>
|
||
本报告的数据由用户本人明确授权后,我们才向相关合法存有用户个人数据的机构调取本报告相关内容,本平台只做大数据的获取与分析,仅向用户个人展示参考。
|
||
</div>
|
||
<p>
|
||
报告有效期<strong class="text-red-500">30天</strong>,过期自动删除。
|
||
</p>
|
||
<p>
|
||
|
||
若您的数据不全面,可能是数据具有延迟性或者合作信息机构未获取到您的数据。若数据有错误请联系客服
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</template>
|
||
|
||
<style lang="scss" scoped>
|
||
.title {
|
||
@apply mx-auto mt-2 w-64 border rounded-3xl bg-gradient-to-r from-blue-400 via-green-500 to-teal-500 py-2 text-center text-white font-bold;
|
||
}
|
||
</style>
|