Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Y
yishuju-ui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
yishuju-ui
Commits
524a0269
Commit
524a0269
authored
Mar 14, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
风控报告
parent
98fcf58a
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
152 additions
and
379 deletions
+152
-379
customer.js
src/api/customer.js
+12
-0
Customer.vue
src/views/infoGather/customerGather/components/Customer.vue
+4
-4
index.vue
src/views/infoGather/customerGather/index.vue
+3
-3
dangerReportDetail.vue
...infoGather/dangerReport/components/dangerReportDetail.vue
+97
-326
index.vue
src/views/infoGather/dangerReport/index.vue
+36
-46
No files found.
src/api/customer.js
View file @
524a0269
...
...
@@ -35,3 +35,15 @@ export const sendReport = (id) => {
export
const
getByIdcustomerReport
=
(
id
)
=>
{
return
request
.
get
(
'/customerReport/getById?id='
+
id
);
};
// 客户报告风控审核列表
export
const
getriskPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/riskPage'
,
params
);
};
// 客户报告列表
export
const
getcustomerReportPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/page'
,
params
);
};
// 客户报告风控审核列表
export
const
getlegalPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/legalPage'
,
params
);
};
\ No newline at end of file
src/views/infoGather/customerGather/components/Customer.vue
View file @
524a0269
...
...
@@ -21,15 +21,15 @@
<tbody>
<tr>
<td
class=
"label"
>
录入人
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputUserName"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputUserName"
placeholder=
""
disabled
/></td>
<td
class=
"label"
>
推荐人
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.referee"
placeholder=
""
/></td>
</tr>
<tr>
<td
class=
"label"
>
部门
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputOrg"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputOrg"
placeholder=
""
disabled
/></td>
<td
class=
"label"
>
角色
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputRole"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.inputRole"
placeholder=
""
disabled
/></td>
</tr>
<tr>
<td
class=
"label"
>
姓名
</td>
...
...
@@ -386,7 +386,7 @@ const form = ref({
"remark"
:
""
,
"creditCard"
:
[],
lending
:
[],
inputUserName
:
''
,
inputUserName
:
userStore
.
userInfo
.
username
,
inputUser
:
userStore
.
userInfo
,
"inputOrg"
:
""
,
"inputRole"
:
""
,
...
...
src/views/infoGather/customerGather/index.vue
View file @
524a0269
<
template
>
<div
class=
"table-box"
>
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"getCustomerPage"
:paramCallback=
"paramCallback"
:selectdList=
"selectdList"
>
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"getCustomerPage"
:paramCallback=
"paramCallback"
>
<template
#
left_buttons
>
<!--
<el-button
type=
"primary"
:disabled=
"!selectdList || selectdList.length
<
1
"
@
click=
"pushCreditcard"
>
新建信用卡
</el-button>
-->
<!--
<el-button
type=
"primary"
@
click=
"pushCredit"
>
新建信用卡
</el-button>
...
...
@@ -69,7 +69,7 @@
sendReport
(
row
.
id
).
then
(
res
=>
{
if
(
res
.
success
)
{
router
.
push
({
path
:
'/infoGather/dangerReport/
dangerReportDetail'
,
name
:
'
dangerReportDetail'
,
query
:
res
.
result
?
{
id
:
res
.
result
.
id
}:
{},
//这里不能直接写成 query: JSON.stringify(item)
});
}
...
...
@@ -95,7 +95,7 @@
},
},
{
field
:
'
createBy
'
,
field
:
'
inputUserName
'
,
title
:
'创建人'
,
search
:
{
el
:
'input'
,
labelWidth
:
85
,
props
:
{
clearable
:
true
}
},
},
...
...
src/views/infoGather/dangerReport/components/dangerReportDetail.vue
View file @
524a0269
...
...
@@ -2,18 +2,12 @@
<div
class=
"card table-box"
style=
"padding: 0 40px"
>
<div
class=
"flex justify-end mt-2"
>
<el-button
type=
"warning"
@
click=
"cancel()"
v-if=
"route.query.id"
>
取消
</el-button>
<
el-button
type=
"primary"
@
click=
"submit()"
v-if=
"route.query.id"
>
保存
</el-button
>
<el-button
type=
"success"
@
click=
"submit('pass')"
v-if=
"ro
ute.query.id
"
>
通过
</el-button>
<el-button
type=
"danger"
@
click=
"submit('reject')"
v-if=
"ro
ute.query.id
"
>
拒绝
</el-button>
<
!--
<el-button
type=
"primary"
@
click=
"submit()"
v-if=
"route.query.id"
>
保存
</el-button>
--
>
<el-button
type=
"success"
@
click=
"submit('pass')"
v-if=
"ro
leType !== 'view'
"
>
通过
</el-button>
<el-button
type=
"danger"
@
click=
"submit('reject')"
v-if=
"ro
leType !== 'view'
"
>
拒绝
</el-button>
</div>
<p
class=
"text-lg text-center mb-5"
>
审核报告
</p>
<table>
<tr>
<td
colspan=
"4"
class=
"label"
>
收单单位
</td>
<td
colspan=
"3"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"2"
class=
"label"
>
推荐人
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
</tr>
<tr>
<td
colspan=
"4"
class=
"label"
>
姓名
</td>
<td
colspan=
"2"
class=
"label"
>
年龄
</td>
...
...
@@ -22,11 +16,12 @@
<td
class=
"label"
>
电话
</td>
</tr>
<tr>
<td
colspan=
"4"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"4"
class=
"text-center"
>
{{
form
?.
customer
?.
name
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
form
?.
customer
?.
age
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
form
?.
customer
?.
idCard
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
form
?.
customer
?.
marriage
?
Marriage
?.
find
((
v
)
=>
v
.
value
===
form
?.
customer
?.
marriage
)?.
label
:
''
}}
</td>
<td
class=
"text-center"
>
{{
form
?.
customer
?.
phone
}}
</td>
</tr>
<tr>
<td
class=
"header"
>
序号
</td>
...
...
@@ -36,133 +31,26 @@
<td
class=
"header"
>
风控复核
</td>
<td
class=
"header"
colspan=
"3"
>
风控复核意见
</td>
</tr>
<tr>
<td
class=
"label"
>
1
</td>
<td
class=
"label"
>
贷款类型
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
是否为抵押类贷款,人保贷款,公积金贷款,经营贷,担保、联名担保、保证类贷款,保险类贷款(保单贷),对应名下有理财保险,分红保险,现金分期,装修贷,网贷/信用贷/信用卡与资产相关联的(如与房、车、营业执照(法人/个体)、商铺、公积金等),先息后本、按期结息自由还本
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
2
</td>
<td
class=
"label"
>
结清总额
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
信用卡、网贷当前结清总额合计≥10万元
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
3
</td>
<td
class=
"label"
>
房产
</td>
<td>
数量:
<br
/>
<el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/>
市值:
<br
/>
<el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/>
</td>
<td
colspan=
"3"
>
夫妻名下允许有一套全款房产(房产现金价值小于处置总额5倍,且建议过户或做其他措施)
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
4
</td>
<td
class=
"label"
>
车辆
</td>
<tr
v-for=
"(item, index) in form?.reportItems"
:key=
"index"
>
<td
class=
"label"
>
{{
index
+
1
}}
</td>
<td
class=
"label"
>
{{
item
.
riskType
}}
</td>
<td>
数量:
<br
/>
<el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/>
市值:
<br
/>
<el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/>
</td>
<td
colspan=
"3"
>
夫妻名下允许有一辆全款车(车辆现金价值小于处置总额50%)
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
5
</td>
<td
class=
"label"
>
职业
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
1.客户是否为公检法系统人员、教师、医生、律师、企业法人人员
<br
/>
<el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/>
2.如客户为企事业单位的,需客户本人同意纪委联系与谈话、去单位或者给单位打电话催收(建议最好不接)
<br
/>
<div
class=
"flex"
>
<div>
客户是否同意:
</div>
<el-input
class=
"line-input flex-1"
v-model=
"form.roleDesc"
placeholder=
""
/>
<template
v-if=
"item.jsonObject"
>
<div
v-for=
"(item1, name1, index1) in item.jsonObject"
:key=
"index1"
>
{{
name1
}}
:
{{
item1
}}
</div>
</
template
>
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
6
</td>
<td
class=
"label"
>
打卡收入
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
本人打卡收入小于3000(具体看处置总额或能否做其他措施)
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
7
</td>
<td
class=
"label"
>
打卡银行
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
打卡银行与借款银行是否为同一家:
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
8
</td>
<td
class=
"label"
>
营业执照
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
不能有营业执照
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"form.roleDesc"
placeholder=
""
type=
"textarea"
/></td>
</tr>
<tr>
<td
class=
"label"
>
9
</td>
<td
class=
"label"
>
子女工作政审
</td>
<td><el-input
class=
"line-input"
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td
colspan=
"3"
>
子女需要考取公检法、公职政审的不接
</td>
<td><el-input
v-model=
"form.roleDesc"
placeholder=
""
/></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
<td
colspan=
"3"
v-html=
"item.riskType ? RiskType?.find((v) => v.value === item.riskType)?.label
: ''"
>
</td>
<td>
{{item.sysJudge == 'Y' ? '通过' : '不通过'}}
</td>
<td><el-radio-group
v-model=
"item.review"
:disabled=
"roleType !== 'risk'"
>
<el-radio
value=
"Y"
>
通过
</el-radio>
<el-radio
value=
"N"
>
未通过
</el-radio>
</el-radio-group></td>
<td
colspan=
"3"
><el-input
v-model=
"
form.roleDesc"
placeholder=
""
type=
"textarea
"
/></td>
<td
colspan=
"3"
><el-input
v-model=
"
item.remark"
placeholder=
""
type=
"textarea"
:disabled=
"roleType !== 'risk'
"
/></td>
</tr>
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
10
</td>
...
...
@@ -171,7 +59,7 @@
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
信用卡数量
</td>
<td
colspan=
"10"
><div
class=
"flex items-center"
>
<el-input
v-model=
"form.roleDesc"
placeholder=
""
style=
"width: 200px"
/>
{{form?.customer?.creditCard.length}}
张
</div></td>
</tr>
...
...
@@ -185,22 +73,22 @@
<td
class=
"text-center"
>
风控审核
</td>
<td
colspan=
"2"
class=
"text-center"
>
风控审核意见
</td>
</tr>
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
1
</td>
<td
class=
"text-center"
>
中行
</td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
colspan=
"2"
></td>
<td
class=
"text-center"
colspan=
"2"
></td>
<td><el-radio-group
v-model=
"
form.status
"
>
<el-radio
value=
"
enable
"
>
通过
</el-radio>
<el-radio
value=
"
disable
"
>
未通过
</el-radio>
<tr
class=
"yellow"
v-for=
"(item, index) in form?.customer?.creditCard"
:key=
"index"
>
<td
class=
"text-center"
>
{{index + 1}}
</td>
<td
class=
"text-center"
>
{{item.bank}}
</td>
<td
class=
"text-center"
>
{{item.debt}}
</td>
<td
class=
"text-center"
>
{{item.beOverduePeriod}}
</td>
<td
class=
"text-center"
colspan=
"2"
>
{{item.sixDevUsedQuota}}
</td>
<td
class=
"text-center"
colspan=
"2"
>
{{item.hasNegotiate == 'Y' ? '是' : '否'}}
</td>
<td><el-radio-group
v-model=
"
item.review"
:disabled=
"roleType !== 'risk'
"
>
<el-radio
value=
"
Y
"
>
通过
</el-radio>
<el-radio
value=
"
N
"
>
未通过
</el-radio>
</el-radio-group></td>
<td
class=
"text-center"
colspan=
"2"
><el-input
v-model=
"
form.roleDesc"
placeholder=
""
type=
"textarea
"
/></td>
<td
class=
"text-center"
colspan=
"2"
><el-input
v-model=
"
item.remark"
placeholder=
""
type=
"textarea"
:disabled=
"roleType !== 'risk'
"
/></td>
</tr>
<tr
class=
"yellow"
>
<td>
信用卡欠款合计
</td>
<td
colspan=
"10"
>
<el-input
v-model=
"form.roleDesc"
placeholder=
""
style=
"width: 200px"
/>
</td>
<td
colspan=
"10"
>
{{cardSUM}}
</td>
</tr>
<tr
class=
"green"
>
<td
class=
"text-center"
>
11
</td>
...
...
@@ -208,7 +96,7 @@
</tr>
<tr
class=
"green"
>
<td
class=
"text-center"
>
信用贷、网贷机构数量
</td>
<td
colspan=
"10"
><div
class=
"flex items-center"
>
<el-input
v-model=
"form.roleDesc"
placeholder=
""
style=
"width: 200px"
/>
<td
colspan=
"10"
><div
class=
"flex items-center"
>
{{form?.customer?.lending.length}}
家
</div></td>
</tr>
<tr
class=
"green"
>
...
...
@@ -224,39 +112,45 @@
<td
class=
"text-center"
>
风控审核
</td>
<td
class=
"text-center"
>
风控审核意见
</td>
</tr>
<tr
class=
"green"
>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td
class=
"text-center"
></td>
<td><el-radio-group
v-model=
"form.status"
>
<el-radio
value=
"enable"
>
通过
</el-radio>
<el-radio
value=
"disable"
>
未通过
</el-radio>
<tr
class=
"green"
v-for=
"(item, index) in form?.customer?.lending"
:key=
"index"
>
<td
class=
"text-center"
>
{{index + 1}}
</td>
<td
class=
"text-center"
>
{{item.loanPlatform}}
</td>
<td
class=
"text-center"
>
{{item.quota}}
</td>
<td
class=
"text-center"
>
{{item.lendingNum}}
</td>
<td
class=
"text-center"
>
{{item.period}}
</td>
<td
class=
"text-center"
>
{{item.repayPeriod}}
</td>
<td
class=
"text-center"
>
{{item.debt}}
</td>
<td
class=
"text-center"
>
{{item.loanStatus
? LoanStatus.value?.find((v) => v.value === item.loanStatus)?.label
: ''}}
</td>
<td
class=
"text-center"
>
{{item.hasContinuousRepay == 'Y' ? '是' : '否'}}
</td>
<td><el-radio-group
v-model=
"form.review"
:disabled=
"roleType !== 'risk'"
>
<el-radio
value=
"Y"
>
通过
</el-radio>
<el-radio
value=
"N"
>
未通过
</el-radio>
</el-radio-group></td>
<td><el-input
v-model=
"form.r
oleDesc"
placeholder=
""
type=
"textarea
"
/></td>
<td><el-input
v-model=
"form.r
emark"
placeholder=
""
type=
"textarea"
:disabled=
"roleType !== 'risk'
"
/></td>
</tr>
<tr
class=
"green"
>
<td>
信用贷、网贷欠款合计
</td>
<td
colspan=
"10"
>
<el-input
v-model=
"form.roleDesc"
placeholder=
""
style=
"width: 200px"
/>
</td>
<td
colspan=
"10"
>
{{creditSUM}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
合计欠款总额
</td>
<td
colspan=
"9"
>
5555
</td>
<td
colspan=
"9"
>
{{cardSUM + creditSUM}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
风控终审意见
</td>
<td
colspan=
"9"
>
风控人工填写
</td>
<td
colspan=
"9"
><el-input
v-model=
"form.riskControlRemark"
placeholder=
""
type=
"textarea"
:disabled=
"roleType !== 'risk'"
/></td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
法务终审意见
</td>
<td
colspan=
"9"
><el-input
v-model=
"form.legalAffairRemark"
placeholder=
""
type=
"textarea"
:disabled=
"roleType !== 'legal'"
/></td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
法务分配
</td>
<td
colspan=
"4"
>
由风控人工分配;如果能有机制自动分配最好;平均分配机制
</td>
<td
colspan=
"4"
>
{{form?.riskControlUser?.username}}
</td>
<td
colspan=
"2"
>
客户信息录入人
</td>
<td
colspan=
"3"
></td>
<td
colspan=
"3"
>
{{form?.customer?.inputUserName}}
</td>
</tr>
</table>
</div>
...
...
@@ -264,54 +158,60 @@
<
script
setup
name=
"Customer"
lang=
"jsx"
>
import
{
useTabsStore
}
from
'@/stores/modules/tabs'
;
import
{
ElButton
,
ElTag
,
ElMessage
}
from
'element-plus'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
import
{
useRoute
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
getByIdcustomerReport
}
from
'@/api/customer'
;
import
{
ref
,
reactive
,
onBeforeMount
}
from
'vue'
;
import
{
ref
,
reactive
,
onBeforeMount
,
computed
}
from
'vue'
;
const
{
LoanStatus
,
Marriage
,
RiskType
}
=
useDict
(
"LoanStatus"
,
"Marriage"
,
"RiskType"
);
const
form
=
ref
({
status
:
''
});
const
router
=
useRouter
();
const
tabStore
=
useTabsStore
();
const
route
=
useRoute
();
const
CreditRef
=
ref
();
const
CreditcardRef
=
ref
();
const
card
=
ref
({
number
:
3
});
const
credit
=
ref
({
number
:
3
const
cardSUM
=
computed
(()
=>
form
.
value
?.
customer
?.
creditCard
.
reduce
((
pre
,
cur
)
=>
pre
+
Number
(
cur
.
debt
),
0
));
const
creditSUM
=
computed
(()
=>
form
.
value
?.
customer
?.
lending
.
reduce
((
pre
,
cur
)
=>
pre
+
Number
(
cur
.
debt
),
0
));
const
roleType
=
computed
(()
=>
{
if
(
route
.
fullPath
.
includes
(
'dangerReport/dangerReportDetail'
))
{
return
'view'
}
else
if
(
route
.
fullPath
.
includes
(
'business-approval/riskReportDetail'
))
{
return
'risk'
}
else
if
(
route
.
fullPath
.
includes
(
'business-approval/legalReportDetail'
))
{
return
'legal'
}
});
const
cardData
=
ref
([]);
const
creditData
=
ref
([]);
const
pushCreditcard
=
(
row
,
index
)
=>
{
CreditcardRef
.
value
.
openModal
(
row
,
index
);
};
const
pushCredit
=
(
row
,
index
)
=>
{
CreditRef
.
value
.
openModal
(
row
,
index
);
};
const
changeCredit
=
(
row
)
=>
{
}
const
changeCreditcard
=
(
row
,
index
)
=>
{
console
.
log
(
'sss'
,
row
,
index
)
}
const
submit
=
(
type
)
=>
{
console
.
log
(
'route'
,
route
)
tabStore
.
removeTabs
(
route
.
fullPath
).
then
(
res
=>
{
router
.
push
({
path
:
'infoGather/dangerReport'
path
:
'
/
infoGather/dangerReport'
});
});
}
const
cancel
=
()
=>
{
console
.
log
(
'roleType'
,
roleType
)
if
(
roleType
.
value
===
'view'
)
{
tabStore
.
removeTabs
(
route
.
fullPath
).
then
(
res
=>
{
router
.
push
({
path
:
'/infoGather/dangerReport'
});
});
}
else
if
(
roleType
.
value
===
'risk'
)
{
tabStore
.
removeTabs
(
route
.
fullPath
).
then
(
res
=>
{
router
.
push
({
path
:
'/business-approval/riskManager'
});
});
}
else
if
(
roleType
.
value
===
'legal'
)
{
tabStore
.
removeTabs
(
route
.
fullPath
).
then
(
res
=>
{
router
.
push
({
path
:
'
infoGather/dangerReport
'
path
:
'
/business-approval/legalManager
'
});
});
}
}
const
query
=
async
(
type
)
=>
{
getByIdcustomerReport
(
route
.
query
.
id
).
then
(
res
=>
{
...
...
@@ -325,135 +225,6 @@ onBeforeMount(async () => {
query
()
}
})
const
cardConfig
=
reactive
({
minHeight
:
200
,
columns
:
[
{
type
:
'seq'
,
width
:
60
,
title
:
'序号'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
<>
<
div
onClick
=
{()
=>
pushCreditcard
(
row
,
rowIndex
)}
className
=
" text-blue-400 cursor-pointer inline-block"
>
{
rowIndex
}
<
/div
>
<
/
>
);
},
}
},
{
field
:
'name'
,
width
:
100
,
title
:
'发卡银行'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
width
:
110
,
title
:
'授信额度'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
width
:
110
,
title
:
'已用额度'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'合计欠款金额'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'大额专项欠款金额'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'逾期期数'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'近6个月平均使用额度'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
width
:
110
,
title
:
'有无协商方案'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
title
:
'卡片状态(逾期/正常)'
,
showOverflow
:
'tooltip'
,
}
],
toolbarConfig
:
{
enabled
:
false
},
});
const
creditConfig
=
reactive
({
minHeight
:
200
,
columns
:
[
{
type
:
'seq'
,
width
:
60
,
title
:
'序号'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
<>
<
div
onClick
=
{()
=>
pushCredit
(
row
,
rowIndex
)}
className
=
" text-blue-400 cursor-pointer inline-block"
>
{
rowIndex
}
<
/div
>
<
/
>
);
},
}
},
{
field
:
'name'
,
width
:
100
,
title
:
'贷款机构'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
width
:
110
,
title
:
'审批额度'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
width
:
110
,
title
:
'贷款笔数'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'贷款期数'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'已还期数'
,
showOverflow
:
'tooltip'
,
},{
field
:
'kinship'
,
width
:
110
,
title
:
'未还金额'
,
showOverflow
:
'tooltip'
,
},
{
field
:
'kinship'
,
title
:
'状态(逾期/正常)'
,
showOverflow
:
'tooltip'
,
}
],
toolbarConfig
:
{
enabled
:
false
},
});
</
script
>
<
style
lang=
"scss"
scoped
>
table
{
...
...
src/views/infoGather/dangerReport/index.vue
View file @
524a0269
<
template
>
<div
class=
"table-box"
>
<div
class=
" bg-white pt-2 pl-2"
>
<
!--
<
div
class=
" bg-white pt-2 pl-2"
>
<el-tabs
v-model=
"activeName"
class=
"demo-tabs"
@
tab-click=
"handleClick"
>
<el-tab-pane
:label=
"item.label"
...
...
@@ -16,8 +16,8 @@
</
template
>
</el-tab-pane>
</el-tabs>
</div>
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"
getPlatformPage
"
:paramCallback=
"paramCallback"
>
</div>
-->
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"
func
"
:paramCallback=
"paramCallback"
>
</ProTable>
</div>
</template>
...
...
@@ -25,13 +25,15 @@
<
script
setup
lang=
"jsx"
name=
"platformManage"
>
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
;
import
{
Plus
,
Delete
,
Edit
,
Setting
}
from
'@element-plus/icons-vue'
;
import
{
getPlatformPage
,
deletePlatforms
}
from
'@/api/platform'
;
import
{
getByStagesTotal
}
from
'@/api/property'
;
import
{
getcustomerReportPage
,
getriskPage
,
getlegalPage
}
from
'@/api/customer'
;
import
{
ElMessageBox
,
ElMessage
,
ElButton
,
ElTag
}
from
'element-plus'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRoute
}
from
'vue-router'
;
const
tabs
=
ref
([]);
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
route
=
useRoute
();
const
proTable
=
ref
(
null
);
const
selectdList
=
ref
([]);
...
...
@@ -39,6 +41,15 @@
selectdList
.
value
=
row
.
records
;
};
const
router
=
useRouter
();
const
func
=
()
=>
{
if
(
route
.
fullPath
.
includes
(
'infoGather/dangerReport'
))
{
return
getcustomerReportPage
}
else
if
(
route
.
fullPath
.
includes
(
'/business-approval/riskManager'
))
{
return
getriskPage
}
else
if
(
route
.
fullPath
.
includes
(
'/business-approval/legalManager'
))
{
return
getlegalPage
}
}
const
activeName
=
ref
(
'pending'
);
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
...
...
@@ -47,26 +58,6 @@
if
(
obj
[
'createTime'
][
1
])
obj
[
'createTimeEnd'
]
=
obj
[
'createTime'
][
1
];
delete
obj
[
'createTime'
];
}
setTimeout
(()
=>
{
const
arr
=
JSON
.
parse
(
JSON
.
stringify
(
FlowStatus
.
value
))
getByStagesTotal
({...
obj
,
flowStatus
:
null
}).
then
(
res
=>
{
if
(
res
.
success
)
{
arr
.
forEach
(
item
=>
{
const
tt
=
res
.
result
.
find
(
v
=>
v
.
flowStatus
===
item
.
value
)
if
(
tt
)
{
item
[
'msg'
]
=
tt
.
number
}
else
{
item
[
'msg'
]
=
0
}
})
tabs
.
value
=
arr
}
else
{
tabs
.
value
=
arr
}
}).
catch
(
e
=>
{
tabs
.
value
=
arr
})
},
(
FlowStatus
.
value
&&
FlowStatus
.
value
.
length
)
?
100
:
1000
)
return
obj
;
};
const
onCheckboxAll
=
(
flag
)
=>
{
...
...
@@ -82,31 +73,30 @@
query
:
row
?
{
id
:
row
.
id
}:
{},
//这里不能直接写成 query: JSON.stringify(item)
});
};
const
pushCredit
=
()
=>
{
const
onCellClick
=
({
row
,
rowIndex
})
=>
{
if
(
route
.
fullPath
.
includes
(
'infoGather/dangerReport'
))
{
router
.
push
({
path
:
'/infoGather/customerGather/Credit
'
,
query
:
{
id
:
44
},
//这里不能直接写成 query: JSON.stringify(item)
name
:
'dangerReportDetail
'
,
query
:
row
?
{
id
:
row
.
id
}:
{}
});
};
}
else
if
(
route
.
fullPath
.
includes
(
'/business-approval/riskManager'
))
{
router
.
push
({
name
:
'riskReportDetail'
,
query
:
row
?
{
id
:
row
.
id
}:
{}
});
}
else
if
(
route
.
fullPath
.
includes
(
'/business-approval/legalManager'
))
{
router
.
push
({
name
:
'legalReportDetail'
,
query
:
row
?
{
id
:
row
.
id
}:
{}
});
}
}
const
config
=
reactive
({
onCheckboxChange
:
onCheckboxChange
,
onCheckboxAll
:
onCheckboxAll
,
onCellClick
:
onCellClick
,
columns
:
[
{
field
:
'id'
,
title
:
'客户ID'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
<>
<
div
onClick
=
{()
=>
pushCustomer
(
row
)}
className
=
" text-blue-400 cursor-pointer inline-block"
>
{
row
.
id
}
<
/div
>
<
/
>
);
},
}
},
{
field
:
'createTime'
,
title
:
'创建日期'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment