<template>
|
<div class="ownerList">
|
<div class="list-content">
|
<FormList
|
:info="formInfo"
|
:isShowDetail="false"
|
@updateValue="updateValue"
|
:buttonsList="[1, 2,4]"
|
@onSubmit="onSubmit"
|
@reSubmit="onSubmit('3')"
|
@setValueInfo="setValueInfo"
|
:isChangeArray="false"
|
></FormList>
|
<div class="queryDate">
|
<b>查询时间:</b> {{personRiskInfo.queryDate}}
|
</div>
|
<div
|
class="tabContent"
|
v-loading.fullscreen.lock="fullscreenLoading"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
element-loading-text="拼命加载中"
|
>
|
<el-tabs v-model="activeName" type="card">
|
<el-tab-pane label="个人反欺诈分析" name="first">
|
<el-form ref="creditForm" label-width="165px" inline size="small">
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
个人风险指数信息
|
</p>
|
<p>
|
<!-- {{ personRiskInfo.personAntiSpoofingDesc }} -->
|
风险指数 :<span style="color: red">{{
|
personRiskInfo.riskIndex
|
}}</span>
|
( 指数范围:[0,1000])
|
</p>
|
<p>
|
<!-- {{ personRiskInfo.personAntiSpoofingDesc }} -->
|
命中风险类型 : <span v-if="!personRiskInfo.personAntiSpoofingDesc">未命中风险</span>{{personRiskInfo.personAntiSpoofingDesc}}
|
</p>
|
</div>
|
<div v-for="(item, index) in [0]" :key="index">
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
{{ creditKey[item].title }}
|
</p>
|
<div class="form">
|
<template v-for="(data, i) in creditKey[item].data" >
|
<el-form-item
|
:label="data.label"
|
:class="{ isLong: data.isLong }"
|
>
|
<el-input
|
v-model="personRiskInfo[data.field]"
|
:type="data.type || 'input'"
|
:disabled="true"
|
>
|
</el-input>
|
</el-form-item>
|
</template>
|
</div>
|
</div>
|
</div>
|
<div class="py-table-container" style="width: 100%">
|
<div
|
class="_block"
|
v-for="(item, index) in tableKeys"
|
:key="index"
|
>
|
<p class="title">
|
<span></span>
|
{{ item.title }}
|
</p>
|
<el-table
|
empty-text="根据已提供的查询条件,未能在系统中查得相关信息"
|
:header-cell-style="{
|
background: '#f5f5f5',
|
color: '#222222',
|
}"
|
highlight-current-row
|
:data="riskInfo[item.modal]"
|
stripe
|
style="width: 100%"
|
>
|
<el-table-column
|
:type="data.type ? 'index' : ''"
|
:property="data.field"
|
:label="data.label"
|
v-for="(data, i) of item.data"
|
:key="i"
|
>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
</el-form>
|
</el-tab-pane>
|
<el-tab-pane label="手机号码核查" name="second">
|
<div v-for="(item, index) in [1, 2]" :key="index">
|
<el-form ref="creditForm" label-width="165px" inline size="small">
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
{{ creditKey[item].title }}
|
</p>
|
<div class="form">
|
<template v-for="(data, i) in creditKey[item].data">
|
<el-form-item
|
:label="data.label"
|
:class="{ isLong: data.isLong }"
|
>
|
<el-input
|
v-model="phoneInfos[data.field]"
|
:type="data.type || 'input'"
|
:disabled="true"
|
>
|
</el-input>
|
</el-form-item>
|
</template>
|
</div>
|
</div>
|
</el-form>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
</div>
|
</div>
|
</div>
|
</template>
|
<script>
|
/**
|
* 贷款合同发送
|
*/
|
import FormList from "./components/FormList";
|
import { queryRiskInfos, queryPhoneInfos } from "@/api/product";
|
|
const tabelHeaderKeys = [
|
[
|
{ label: "序号", type: "index", field: "index" },
|
{ label: "标题", field: "bt" },
|
{ label: "案号", field: "ah" },
|
{ label: "立案日期", field: "larq" },
|
],
|
[
|
{ label: "序号", type: "index", field: "index" },
|
{ label: "标题", field: "bt" },
|
{ label: "案号", field: "ah" },
|
{ label: "案件类型", field: "ajlx" },
|
{ label: "审结日期", field: "sjrq" },
|
{ label: "当事人类型", field: "dsrlx" },
|
],
|
[
|
{ label: "序号", type: "index", field: "index" },
|
{ label: "标题", field: "bt" },
|
{ label: "处罚决定书文号", field: "wsh" },
|
{ label: "公告日期", field: "ggrq" },
|
],
|
[
|
{ label: "序号", type: "index", field: "index" },
|
{ label: "标题", field: "bt" },
|
{ label: "案号", field: "ah" },
|
{ label: "公告日期", field: "ggrq" },
|
],
|
[
|
{ label: "序号", type: "index", field: "index" },
|
{ label: "标题", field: "bt" },
|
{ label: "处罚决定书文号", field: "wsh" },
|
{ label: "处罚决定/公告日期", field: "cfrq" },
|
],
|
];
|
export default {
|
components: {
|
FormList,
|
},
|
data() {
|
return {
|
// 搜索表单字段及描述
|
formInfo: [
|
{
|
type: "input",
|
label: "客户姓名",
|
value: "",
|
name: "custName",
|
},
|
{
|
type: "input",
|
label: "身份证号",
|
value: "",
|
name: "certId",
|
},
|
{
|
type: "input",
|
label: "手机号",
|
value: "",
|
name: "phone",
|
},
|
],
|
initialArr: [], //初始数据
|
// 表单结果数据
|
fullscreenLoading: false,
|
valueInfo: {},
|
isShowDetail: false,
|
operatOnce:0,
|
ownerlForm: [],
|
ownerlArr: [],
|
isClick:0,
|
objectType: "ContractSendApply",
|
// 是否显示所有表单项
|
riskInfo: {},
|
personRiskInfo: {},
|
activeName: "first",
|
phoneInfos: {},
|
creditKey: [
|
{
|
modal: "personRiskInfo",
|
title: "个人风险信息汇总",
|
data: [
|
{ field: "zxCount", label: "司法执行信息" },
|
{ field: "swCount", label: "税务行政执法信息" },
|
{ field: "sxCount", label: "司法失信信息" },
|
{ field: "alCount", label: "裁判文书信息条数" },
|
{ field: "sdCount", label: "公告送达信息条数" },
|
{ field: "ktCount", label: "开庭公告信息条数" },
|
{ field: "spCount", label: "审判流程信息条数" },
|
{ field: "zbCount", label: "终本案件信息条数" },
|
{ field: "scCount", label: "市场监管信息条数" },
|
{ field: "hgCount", label: "海关信息条数" },
|
{ field: "hbCount", label: "环保信息条数" },
|
{ field: "qtCount", label: "其他行政处罚信息条数" },
|
],
|
},
|
{
|
modal: "riskInfo",
|
title: "个人风险信息汇总",
|
data: [
|
{ field: "operatorDesc", label: "运营商名称" },
|
{ field: "areaInfo", label: "手机号码归属地" },
|
{ field: "phoneCheckResult", label: "手机号码核查结果" },
|
{ field: "nameCheckResult", label: "姓名核查结果" },
|
{ field: "documentNoCheckResult", label: "证件号码核查结果" },
|
],
|
},
|
{
|
modal: "riskInfo",
|
title: "手机号码状态及在网时长查询结果",
|
data: [
|
{ field: "phone", label: "手机号码" },
|
{ field: "operatorDesc", label: "运营商名称" },
|
{ field: "areaInfo", label: "手机号码归属地" },
|
{ field: "phoneStatusDesc", label: "手机号码状态" },
|
{ field: "timeLength", label: "在网时长" },
|
{ field: "cancelTime", label: "最近一次销号时间" },
|
],
|
},
|
],
|
tableKeys: [
|
{
|
modal: "zxsInfos",
|
title: "执行信息",
|
data: tabelHeaderKeys[0],
|
},
|
{
|
modal: "sxsInfos",
|
title: "失信信息",
|
data: tabelHeaderKeys[0],
|
},
|
{
|
modal: "alsInfos",
|
title: "裁判文书概要信息",
|
data: tabelHeaderKeys[1],
|
},
|
{
|
modal: "swsInfos",
|
title: "税务行政执法信息",
|
data: tabelHeaderKeys[2],
|
},
|
{
|
modal: "sdsInfos",
|
title: "公告送达概要信息",
|
data: tabelHeaderKeys[3],
|
},
|
{
|
modal: "ktsInfos",
|
title: "开庭公告概要信息",
|
data: tabelHeaderKeys[3],
|
},
|
{
|
modal: "spsInfos",
|
title: "审判流程概要信息",
|
data: tabelHeaderKeys[0],
|
},
|
{
|
modal: "zbsInfos",
|
title: "终本案件概要信息",
|
data: tabelHeaderKeys[0],
|
},
|
{
|
modal: "scsInfos",
|
title: "市场监管概要信息",
|
data: tabelHeaderKeys[4],
|
},
|
{
|
modal: "hgsInfos",
|
title: "海关信息概要信息",
|
data: tabelHeaderKeys[4],
|
},
|
{
|
modal: "hbsInfos",
|
title: "环保信息概要信息",
|
data: tabelHeaderKeys[4],
|
},
|
{
|
modal: "qtsInfos",
|
title: "其他行政处罚概要信息",
|
data: tabelHeaderKeys[4],
|
},
|
],
|
};
|
},
|
created() {
|
},
|
methods: {
|
// 页面初始化处理
|
async init(queryType) {
|
const phoneInfos = await this.queryPhoneInfos();
|
this.phoneInfos = phoneInfos;
|
if (phoneInfos.operator) {
|
switch (phoneInfos.operator) {
|
case "1":
|
phoneInfos.operatorDesc = "中国电信";
|
break;
|
case "2":
|
phoneInfos.operatorDesc = "中国移动";
|
break;
|
case "3":
|
phoneInfos.operatorDesc = "中国联通";
|
break;
|
}
|
}
|
|
if (phoneInfos.phoneStatus) {
|
switch (phoneInfos.phoneStatus) {
|
case "1":
|
phoneInfos.phoneStatusDesc = "正常在用";
|
break;
|
case "2":
|
phoneInfos.phoneStatusDesc = "停机";
|
break;
|
case "3":
|
phoneInfos.phoneStatusDesc = "未启用";
|
break;
|
case "4":
|
phoneInfos.phoneStatusDesc = "已销号";
|
break;
|
case "5":
|
phoneInfos.phoneStatusDesc = "其他";
|
break;
|
case "6":
|
phoneInfos.phoneStatusDesc = "预销号";
|
break;
|
}
|
}
|
|
const riskInfo = await this.queryRiskInfos(queryType);
|
this.riskInfo = riskInfo;
|
this.personRiskInfo = riskInfo.personRiskInfo;
|
this.fullscreenLoading = false;
|
},
|
// 设置表单结果数据
|
setValueInfo(info = {}) {
|
this.valueInfo = info;
|
},
|
//查询征信信息
|
queryRiskInfos(queryType) {
|
return new Promise((resolve) => {
|
queryRiskInfos({
|
certId: this.valueInfo.certId || '',
|
queryType,
|
custName: this.valueInfo.custName || '',
|
phone: this.valueInfo.phone || '',
|
}).then((res) => {
|
resolve(res.result);
|
});
|
});
|
},
|
queryPhoneInfos() {
|
return new Promise((resolve) => {
|
queryPhoneInfos({
|
certId: this.valueInfo.certId || '',
|
custName: this.valueInfo.custName || '',
|
phone: this.valueInfo.phone || '',
|
}).then((res) => {
|
resolve(res.result);
|
}).catch(()=>{
|
this.$message({
|
type: 'error',
|
message: '查询失败!'
|
})
|
this.fullscreenLoading = false
|
});
|
});
|
},
|
// 更新数据
|
updateValue(value, item) {
|
let { name } = item;
|
this.setOrGetFormInfo(name, { value });
|
},
|
|
// 金额格式化
|
formatMoney(value) {
|
if (value) {
|
value =
|
parseFloat((value + "").replace(/[^\d\.-]/g, "")).toFixed(2) + "";
|
if (value == "NaN") return;
|
let l = value.split(".")[0].split("").reverse();
|
let r = value.split(".")[1];
|
let t = "";
|
for (let i = 0; i < l.length; i++) {
|
t += l[i] + ((i + 1) % 3 === 0 && i + 1 !== l.length ? "," : "");
|
}
|
return t.split("").reverse().join("") + "." + r;
|
}
|
},
|
// 更新表单数据或查找某项数据
|
setOrGetFormInfo(nameKey, newInfo) {
|
let { formInfo } = this;
|
let index = formInfo.findIndex(({ name }) => name === nameKey);
|
let result = {};
|
if (!isNaN(index)) {
|
this.$set(this.formInfo, index, { ...formInfo[index], ...newInfo });
|
result = this.formInfo[index];
|
}
|
if (typeof newInfo === "undefined") {
|
return result;
|
}
|
},
|
// 查询操作
|
onSubmit(queryType) {
|
if (this.valueInfo.certId && this.valueInfo.custName && this.valueInfo.phone) {
|
this.fullscreenLoading = true;
|
this.init(queryType);
|
return;
|
}else{
|
this.operatOnce +=1
|
if(this.operatOnce > 1){
|
this.$message({
|
type: 'info',
|
message: '请输入完整信息!'
|
})
|
}
|
this.riskInfo = {}
|
this.phoneInfos = {}
|
this.personRiskInfo = {}
|
}
|
},
|
},
|
};
|
</script>
|
<style lang="postcss" scoped>
|
.list-content {
|
font-size: 14px;
|
}
|
.export-excle {
|
margin: 20px 0;
|
}
|
.queryDate{
|
margin: 0px 0 20px;
|
font-size: 15px;
|
}
|
.ownerList {
|
& >>> .form {
|
width: 100%;
|
display: -webkit-box;
|
display: -ms-flexbox;
|
display: flex;
|
-webkit-box-pack: start;
|
-ms-flex-pack: start;
|
justify-content: flex-start;
|
-ms-flex-wrap: wrap;
|
flex-wrap: wrap;
|
}
|
& >>> .el-form {
|
width: 100%;
|
display: -webkit-box;
|
display: -ms-flexbox;
|
display: flex;
|
-webkit-box-pack: start;
|
-ms-flex-pack: start;
|
justify-content: flex-start;
|
-ms-flex-wrap: wrap;
|
flex-wrap: wrap;
|
}
|
|
& >>> .form .el-form-item .el-form-item__label {
|
line-height: 16px;
|
}
|
& >>> .form .el-form-item .el-form-item__content {
|
/* width: 100%; */
|
line-height: 22px;
|
vertical-align: middle;
|
}
|
|
& >>> ._block {
|
width: 100%;
|
margin: 0;
|
}
|
|
& >>> .el-form-item {
|
align-items: center;
|
display: flex;
|
width: 33.33%;
|
margin: 0 0 24px 0;
|
padding-right: 60px;
|
box-sizing: border-box;
|
}
|
& >>> .el-table {
|
padding-right: 40px;
|
}
|
|
& >>> .form-right {
|
margin-left: auto !important;
|
}
|
|
& >>> .title {
|
margin: 30px 0 20px 0;
|
padding: 0 0 0 10px;
|
border-left: solid 2px #0081f0;
|
line-height: 16px;
|
font-size: 14px;
|
color: #222222;
|
}
|
|
& >>> .btn,
|
& >>> .fixedBtn {
|
display: none;
|
}
|
|
& >>> .el-input.is-disabled .el-input__inner {
|
border: none;
|
background: none;
|
}
|
}
|
</style>
|