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
4cb1372c
Commit
4cb1372c
authored
Mar 15, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
风控报告
parent
b34fa970
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
310 additions
and
66 deletions
+310
-66
customer.js
src/api/customer.js
+8
-0
Customer.vue
src/views/infoGather/customerGather/components/Customer.vue
+17
-20
customerPrint.vue
...ws/infoGather/customerGather/components/customerPrint.vue
+13
-9
dangerReportDetail.vue
...infoGather/dangerReport/components/dangerReportDetail.vue
+26
-4
reportPrint.vue
src/views/infoGather/dangerReport/components/reportPrint.vue
+209
-0
index.vue
src/views/infoGather/dangerReport/index.vue
+37
-33
No files found.
src/api/customer.js
View file @
4cb1372c
...
...
@@ -39,6 +39,10 @@ export const getByIdcustomerReport = (id) => {
export
const
getriskPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/riskPage'
,
params
);
};
// 客户报告风控审核统计
export
const
riskFlowStatusTotal
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/riskFlowStatusTotal'
,
params
);
};
// 客户报告列表
export
const
getcustomerReportPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/page'
,
params
);
...
...
@@ -47,6 +51,10 @@ export const getcustomerReportPage = (params) => {
export
const
getlegalPage
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/legalPage'
,
params
);
};
// 客户报告法务审核统计
export
const
legalFlowStatusTotal
=
(
params
)
=>
{
return
request
.
get
(
'/customerReport/legalFlowStatusTotal'
,
params
);
};
// 审核风控
export
const
savecustomerReport
=
(
flowType
,
data
)
=>
{
return
request
.
post
(
'/customerReport/save?flowType='
+
flowType
,
data
);
...
...
src/views/infoGather/customerGather/components/Customer.vue
View file @
4cb1372c
<
template
>
<div
class=
"card table-box"
style=
"padding: 0 40px"
>
<div
class=
"flex justify-end mt-2"
>
<
!--
<template>
--
>
<
template
v-if=
"route.query.id"
>
<el-button
type=
"warning"
plain
size=
"mini"
v-print=
"printContent"
>
打印客户信息
</el-button>
...
...
@@ -11,7 +11,7 @@
<el-button
type=
"warning"
plain
size=
"mini"
v-print=
"printContentXyk"
:disabled=
"!form.creditCard.length"
>
打印信用卡信息
</el-button>
<
!--
</
template
>
--
>
<
/
template
>
<el-button
type=
"primary"
@
click=
"submit()"
>
保存
</el-button>
<!-- <template v-if="route.query.id"> -->
</div>
...
...
@@ -87,7 +87,13 @@
<td
class=
"label"
>
电子邮箱
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.email"
placeholder=
""
/></td>
<td
class=
"label"
>
性别
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.email"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-select
v-model=
"form.sex"
class=
"line-input"
placeholder=
""
>
<el-option
:label=
"item.label"
v-for=
"(item, index) in Sex"
:key=
"index"
:value=
"item.value"
/>
</el-select></td>
</tr>
<tr>
<td
class=
"label"
>
预留工作单位
</td>
...
...
@@ -98,13 +104,13 @@
<tr>
<td
class=
"label"
>
是否有起诉案件
</td>
<td
colspan=
"2"
>
<el-radio-group
v-model=
"form.
sueCaseId
"
>
<el-radio-group
v-model=
"form.
hasSueCase
"
>
<el-radio
value=
"Y"
>
是
</el-radio>
<el-radio
value=
"N"
>
否
</el-radio>
</el-radio-group>
</td>
<td
class=
"label"
>
案件描述
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.case
Type
"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.case
Desc
"
placeholder=
""
/></td>
</tr>
<tr>
<td
class=
"label"
>
打卡收入
</td>
...
...
@@ -150,7 +156,7 @@
</el-radio-group>
</td>
<td
class=
"label"
>
具体描述
</td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.
insurance
"
placeholder=
""
/></td>
<td
colspan=
"2"
><el-input
class=
"line-input"
v-model=
"form.
bigQuotaDesc
"
placeholder=
""
/></td>
</tr>
<tr>
<td
class=
"label"
>
是否有营业执照
</td>
...
...
@@ -320,7 +326,7 @@
import
{
ref
,
computed
,
reactive
,
onBeforeMount
}
from
'vue'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
userStore
=
useUserStore
();
const
{
LoanStatus
,
Marriage
}
=
useDict
(
"LoanStatus"
,
"Marriage
"
);
const
{
LoanStatus
,
Marriage
,
Sex
}
=
useDict
(
"LoanStatus"
,
"Marriage"
,
"Sex
"
);
const
idCardModelRef
=
ref
()
const
printContent
=
ref
({
id
:
'customerStatic'
,
...
...
@@ -364,6 +370,7 @@ const form = ref({
"age"
:
0
,
"idCard"
:
""
,
"zodiac"
:
""
,
"sex"
:
""
,
"marriage"
:
""
,
"phone"
:
""
,
"qualification"
:
""
,
...
...
@@ -374,8 +381,8 @@ const form = ref({
"email"
:
""
,
"monthlyIncome"
:
0
,
"reserveAddress"
:
""
,
"
sueCaseId
"
:
"N"
,
"case
Type
"
:
""
,
"
hasSueCase
"
:
"N"
,
"case
Desc
"
:
""
,
"checkInIncome"
:
0
,
"checkInBank"
:
""
,
"borrowCheckInBank"
:
"N"
,
...
...
@@ -384,7 +391,7 @@ const form = ref({
"houseNum"
:
0
,
"housePrice"
:
0
,
"providentFund"
:
0
,
"
insurance
"
:
0
,
"
bigQuotaDesc
"
:
0
,
"hasBusinessLicense"
:
"N"
,
"needPoliticalReview"
:
"N"
,
"hasLoan"
:
"N"
,
...
...
@@ -726,14 +733,4 @@ td {
// background: #e1f1d9;
}
}
</
style
>
<
style
>
@media
print
{
.label
{
text-align
:
center
;
background
:
#dfeaf5
;
color
:
#000
;
}
}
</
style
>
\ No newline at end of file
src/views/infoGather/customerGather/components/customerPrint.vue
View file @
4cb1372c
...
...
@@ -16,7 +16,8 @@
<td
class=
"label"
>
年龄
</td>
<td
colspan=
"2"
class=
"label"
>
身份证号
</td>
<td
class=
"label"
>
属相
</td>
<td
class=
"label"
colspan=
"2"
>
婚姻状况
</td>
<td
class=
"label"
>
性别
</td>
<td
class=
"label"
>
婚姻状况
</td>
<td
colspan=
"2"
class=
"label"
>
电话
</td>
</tr>
<tr>
...
...
@@ -24,7 +25,10 @@
<td>
{{
props
.
data
.
age
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
idCard
}}
</td>
<td>
{{
props
.
data
.
zodiac
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
marriage
<td>
{{
props
.
data
.
sex
?
Sex
?.
find
((
v
)
=>
v
.
value
===
props
.
data
.
sex
)?.
label
:
''
}}
</td>
<td>
{{
props
.
data
.
marriage
?
Marriage
?.
find
((
v
)
=>
v
.
value
===
props
.
data
.
marriage
)?.
label
:
''
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
phone
}}
</td>
...
...
@@ -60,8 +64,8 @@
<td
class=
"label"
>
总价值
</td>
</tr>
<tr>
<td
colspan=
"2"
>
{{
props
.
data
.
sueCaseId
==
'Y'
?
'是'
:
'否'
}}
</td>
<td>
{{
props
.
data
.
case
Type
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
hasSueCase
==
'Y'
?
'是'
:
'否'
}}
</td>
<td>
{{
props
.
data
.
case
Desc
}}
</td>
<td>
{{
props
.
data
.
checkInIncome
}}
</td>
<td>
{{
props
.
data
.
checkInBank
}}
</td>
<td>
{{
props
.
data
.
carNum
}}
</td>
...
...
@@ -71,8 +75,8 @@
</tr>
<tr>
<td
class=
"label"
colspan=
"2"
>
公积金及金额
</td>
<td
c
olspan=
"2"
c
lass=
"label"
>
是否有理财型保单 、股票 、基金 、大额存款
</td>
<td
c
olspan=
"2"
c
lass=
"label"
>
具体描述
</td>
<td
class=
"label"
>
是否有理财型保单 、股票 、基金 、大额存款
</td>
<td
class=
"label"
>
具体描述
</td>
<td
class=
"label"
>
是否有营业执照
</td>
<td
class=
"label"
>
子女工作是否需要政审
</td>
<td
class=
"label"
colspan=
"2"
>
贷款类型
</td>
...
...
@@ -80,8 +84,8 @@
</tr>
<tr>
<td
colspan=
"2"
>
{{
props
.
data
.
providentFund
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
hasBigQuota
==
'Y'
?
'是'
:
'否'
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
insurance
}}
</td>
<td
>
{{
props
.
data
.
hasBigQuota
==
'Y'
?
'是'
:
'否'
}}
</td>
<td
>
{{
props
.
data
.
bigQuotaDesc
}}
</td>
<td>
{{
props
.
data
.
hasBusinessLicense
==
'Y'
?
'是'
:
'否'
}}
</td>
<td>
{{
props
.
data
.
needPoliticalReview
==
'Y'
?
'是'
:
'否'
}}
</td>
<td
colspan=
"2"
>
{{
props
.
data
.
hasLoan
==
'Y'
?
'是'
:
'不是'
}}
抵押类贷款,人保贷款,公积金贷款,经营贷,担保、联名担保、保证类贷款,保险类贷款(保单贷),对应名下有理财保险,分红保险,现金分期,装修贷,网贷/信用贷/信用卡与资产相关联的(如与房、车、营业执照(法人/个体)、商铺、公积金等),先息后本、按期结息自由还本
</td>
...
...
@@ -90,7 +94,7 @@
</
template
>
<
script
setup
lang=
"jsx"
name=
"caseDetail"
>
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
Marriage
}
=
useDict
(
"Marriage
"
);
const
{
Marriage
,
Sex
}
=
useDict
(
"Marriage"
,
"Sex
"
);
const
props
=
defineProps
({
data
:
Object
})
...
...
src/views/infoGather/dangerReport/components/dangerReportDetail.vue
View file @
4cb1372c
<
template
>
<div
class=
"card table-box"
style=
"padding: 0 40px"
>
<div
class=
"flex justify-end mt-2"
>
<el-button
type=
"warning"
plain
size=
"mini"
v-print=
"printContent"
>
打印审核报告
</el-button>
<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=
"roleType !== 'view'"
>
通过
</el-button>
<el-button
type=
"danger"
@
click=
"submit('
reject
')"
v-if=
"roleType !== 'view'"
>
拒绝
</el-button>
<el-button
type=
"danger"
@
click=
"submit('
fail
')"
v-if=
"roleType !== 'view'"
>
拒绝
</el-button>
</div>
<p
class=
"text-lg text-center mb-5"
>
审核报告
</p>
<table>
...
...
@@ -153,9 +156,16 @@
<td
colspan=
"3"
>
{{form?.customer?.inputUserName}}
</td>
</tr>
</table>
<div
style=
"overflow: hidden;width: 0;height: 0;"
>
<div
id=
"reportStatic"
style=
"padding: 0;margin:0;"
>
<h1
style=
"text-align: center;font-size: 20px"
>
风控审核报告
</h1>
<reportPrint
:data=
"form"
></reportPrint>
</div>
</div>
</div>
</template>
<
script
setup
name=
"Customer"
lang=
"jsx"
>
import
reportPrint
from
'./reportPrint.vue'
;
import
{
useTabsStore
}
from
'@/stores/modules/tabs'
;
import
{
ElButton
,
ElTag
,
ElMessage
}
from
'element-plus'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
...
...
@@ -167,7 +177,18 @@ const { LoanStatus, Marriage, RiskType } = useDict("LoanStatus", "Marriage", "Ri
const
form
=
ref
({
status
:
''
});
const
printContent
=
ref
({
id
:
'reportStatic'
,
// preview: true, // 预览工具是否启用
// previewTitle: '储能服务费结算单', // 预览页面的标题
popTitle
:
''
,
extraHead
:
``
,
isRetainOriginData
:
true
,
// 是否保留原始数据
preview
:
false
,
// 是否开启预览
beforeOpenCallback
:
()
=>
{
console
.
log
(
'开始打印之前的callback'
)
}
})
const
router
=
useRouter
();
const
tabStore
=
useTabsStore
();
const
route
=
useRoute
();
...
...
@@ -234,8 +255,9 @@ onBeforeMount(async () => {
</
script
>
<
style
lang=
"scss"
scoped
>
table
{
width
:
calc
(
100%
)
;
width
:
100%
;
border-collapse
:
collapse
;
border
:
1px
solid
rgba
(
5
,
5
,
5
,
0
.06
);
}
td
{
border
:
1px
solid
rgba
(
5
,
5
,
5
,
0
.06
);
...
...
@@ -278,4 +300,4 @@ tr {
// background: #e1f1d9;
}
}
</
style
>
\ No newline at end of file
</
style
>
src/views/infoGather/dangerReport/components/reportPrint.vue
0 → 100644
View file @
4cb1372c
<
template
>
<table
style=
"table-layout:fixed; page-break-after:always"
>
<tr>
<td
colspan=
"4"
class=
"label"
>
姓名
</td>
<td
colspan=
"2"
class=
"label"
>
年龄
</td>
<td
colspan=
"2"
class=
"label"
>
身份证号
</td>
<td
colspan=
"2"
class=
"label"
>
婚姻状况
</td>
<td
class=
"label"
>
电话
</td>
</tr>
<tr>
<td
colspan=
"4"
class=
"text-center"
>
{{
props
.
data
?.
customer
?.
name
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
props
.
data
?.
customer
?.
age
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
props
.
data
?.
customer
?.
idCard
}}
</td>
<td
colspan=
"2"
class=
"text-center"
>
{{
props
.
data
?.
customer
?.
marriage
?
Marriage
?.
find
((
v
)
=>
v
.
value
===
props
.
data
?.
customer
?.
marriage
)?.
label
:
''
}}
</td>
<td
class=
"text-center"
>
{{
props
.
data
?.
customer
?.
phone
}}
</td>
</tr>
<tr>
<td
class=
"header"
>
序号
</td>
<td
colspan=
"4"
class=
"header"
>
客户信息
</td>
<td
colspan=
"3"
class=
"header"
>
判定标准
</td>
<td
class=
"header"
>
判定结果
</td>
<td
class=
"header"
>
风控复核
</td>
<td
class=
"header"
>
风控复核意见
</td>
</tr>
<tr
v-for=
"(item, index) in props.data?.reportItems"
:key=
"index"
>
<td
class=
"label"
>
{{
index
+
1
}}
</td>
<td
class=
"label"
colspan=
"2"
>
{{
item
.
riskType
}}
</td>
<td
colspan=
"2"
>
<template
v-if=
"item.jsonObject"
>
<div
v-for=
"(item1, name1, index1) in item.jsonObject"
:key=
"index1"
>
{{
name1
}}
:
{{
item1
}}
</div>
</
template
>
</td>
<td
colspan=
"3"
v-html=
"item.riskType ? RiskType?.find((v) => v.value === item.riskType)?.label
: ''"
>
</td>
<td>
{{item.sysJudge == 'Y' ? '通过' : '不通过'}}
</td>
<td>
{{item.review == 'Y' ? '通过' : '不通过'}}
</td>
<td>
{{item.remark}}
</td>
</tr>
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
10
</td>
<td
colspan=
"10"
class=
"text-center"
>
信用卡*
<span
class=
" text-red-500"
>
(涉及金额部分单位为:元)
</span></td>
</tr>
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
信用卡数量
</td>
<td
colspan=
"10"
><div
class=
"flex items-center"
>
{{props.data?.customer?.creditCard.length}}
张
</div></td>
</tr>
<tr
class=
"yellow"
>
<td
class=
"text-center"
>
序号
</td>
<td
class=
"text-center"
>
发卡银行
</td>
<td
class=
"text-center"
>
当前欠款金额
</td>
<td
class=
"text-center"
>
逾期期数
</td>
<td
colspan=
"2"
class=
"text-center"
>
近6个月平均使用额度
</td>
<td
colspan=
"2"
class=
"text-center"
>
有无协商方案
</td>
<td
class=
"text-center"
>
风控审核
</td>
<td
colspan=
"2"
class=
"text-center"
>
风控审核意见
</td>
</tr>
<tr
class=
"yellow"
v-for=
"(item, index) in props.data?.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>
{{item.review == 'Y' ? '通过' : '不通过'}}
</td>
<td
colspan=
"2"
>
{{item.remark}}
</td>
</tr>
<tr
class=
"yellow"
>
<td>
信用卡欠款合计
</td>
<td
colspan=
"10"
>
{{cardSUM}}
</td>
</tr>
<tr
class=
"green"
>
<td
class=
"text-center"
>
11
</td>
<td
colspan=
"10"
class=
"text-center"
>
网贷*
<span
class=
" text-red-500"
>
(涉及金额部分单位为:元)
</span></td>
</tr>
<tr
class=
"green"
>
<td
class=
"text-center"
>
信用贷、网贷机构数量
</td>
<td
colspan=
"10"
><div
class=
"flex items-center"
>
{{props.data?.customer?.lending.length}}
家
</div></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"
>
状态
<br
/>
逾期/正常
</td>
<td
class=
"text-center"
>
是否连续还款
</td>
<td
class=
"text-center"
>
风控审核
</td>
<td
class=
"text-center"
>
风控审核意见
</td>
</tr>
<tr
class=
"green"
v-for=
"(item, index) in props.data?.customer?.lending"
:key=
"index"
>
<td
class=
"text-center"
>
{{index + 1}}
</td>
<td
class=
"text-center"
>
{{item.loanPlatprops.data}}
</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>
{{item.review == 'Y' ? '通过' : '不通过'}}
</td>
<td
>
{{item.remark}}
</td>
</tr>
<tr
class=
"green"
>
<td>
信用贷、网贷欠款合计
</td>
<td
colspan=
"10"
>
{{creditSUM}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
合计欠款总额
</td>
<td
colspan=
"9"
>
{{cardSUM + creditSUM}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
风控终审意见
</td>
<td
colspan=
"9"
>
{{props.data.riskControlRemark}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
法务终审意见
</td>
<td
colspan=
"9"
>
{{props.data.legalAffairRemark}}
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"label"
>
法务分配
</td>
<td
colspan=
"4"
>
{{props.data?.riskControlUser?.username}}
</td>
<td
colspan=
"2"
>
客户信息录入人
</td>
<td
colspan=
"3"
>
{{props.data?.customer?.inputUserName}}
</td>
</tr>
</table>
</template>
<
script
setup
lang=
"jsx"
name=
"caseDetail"
>
import
{
useDict
}
from
'@/hooks/useDict'
;
import
{
computed
}
from
'vue'
;
const
{
LoanStatus
,
Marriage
,
RiskType
}
=
useDict
(
"LoanStatus"
,
"Marriage"
,
"RiskType"
);
const
props
=
defineProps
({
data
:
Object
})
const
cardSUM
=
computed
(()
=>
props
.
data
?.
customer
?.
creditCard
.
reduce
((
pre
,
cur
)
=>
pre
+
Number
(
cur
.
debt
),
0
));
const
creditSUM
=
computed
(()
=>
props
.
data
?.
customer
?.
lending
.
reduce
((
pre
,
cur
)
=>
pre
+
Number
(
cur
.
debt
),
0
));
</
script
>
<
style
lang=
"scss"
scoped
>
table
{
width
:
100%
;
border-collapse
:
collapse
;
}
tr
{
width
:
100%
;
}
td
{
border
:
1px
solid
rgb
(
5
,
5
,
5
);
background
:
#fff
;
color
:
#000000
;
width
:
180px
!
important
;
line-height
:
11px
;
height
:
40px
;
font-size
:
14px
;
word-wrap
:break-word
;
word-break
:break-all
;
-webkit-print-color-adjust
:
exact
;
&
.label
{
text-align
:
center
;
background
:
#dfeaf5
;
-webkit-print-color-adjust
:
exact
;
color
:
#000
;
}
&
.header
{
background
:
#bdd6ec
;
-webkit-print-color-adjust
:
exact
;
text-align
:
center
;
}
}
tr
{
&
.yellow
{
td
{
background
:
#fff3cc
7d
;
-webkit-print-color-adjust
:
exact
;
}
}
&
.green
{
td
{
background
:
#e1f1d9
85
;
-webkit-print-color-adjust
:
exact
;
}
}
}
@media
print
{
#reportStatic
{
table
{
border
:
1px
solid
#000
;
width
:
90%
;
}
}
@page
{
margin
:
10px
;
size
:
auto
;
// padding: 0;
}
}
</
style
>
\ No newline at end of file
src/views/infoGather/dangerReport/index.vue
View file @
4cb1372c
...
...
@@ -25,7 +25,7 @@
<
script
setup
lang=
"jsx"
name=
"platformManage"
>
import
{
ref
,
reactive
,
onMounted
,
computed
}
from
'vue'
;
import
{
Plus
,
Delete
,
Edit
,
Setting
}
from
'@element-plus/icons-vue'
;
import
{
getcustomerReportPage
,
getriskPage
,
getlegalPage
}
from
'@/api/customer'
;
import
{
getcustomerReportPage
,
getriskPage
,
getlegalPage
,
riskFlowStatusTotal
,
legalFlowStatusTotal
}
from
'@/api/customer'
;
import
{
ElMessageBox
,
ElMessage
,
ElButton
,
ElTag
}
from
'element-plus'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRoute
}
from
'vue-router'
;
...
...
@@ -73,27 +73,29 @@
}
else
if
(
roleType
.
value
===
'legal'
)
{
obj
[
'legalAffairStatus'
]
=
activeName
.
value
;
}
setTimeout
(()
=>
{
const
arr
=
JSON
.
parse
(
JSON
.
stringify
(
FlowStatus
.
value
))
// getRepairApplyTotal({...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
// })
tabs
.
value
=
arr
},
(
FlowStatus
.
value
&&
FlowStatus
.
value
.
length
)
?
100
:
1000
)
if
(
roleType
.
value
===
'risk'
||
roleType
.
value
===
'legal'
)
{
let
totalFunc
=
roleType
.
value
===
'risk'
?
riskFlowStatusTotal
:
legalFlowStatusTotal
setTimeout
(()
=>
{
const
arr
=
JSON
.
parse
(
JSON
.
stringify
(
FlowStatus
.
value
))
totalFunc
({...
obj
}).
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
)
}
paramObj
.
value
=
obj
return
obj
;
};
...
...
@@ -133,24 +135,26 @@
onCheckboxAll
:
onCheckboxAll
,
onCellClick
:
onCellClick
,
columns
:
[
{
field
:
'customer.name'
,
title
:
'客户名称'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
},
{
field
:
'customer.name'
,
title
:
'客户名称'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
,
key
:
'customer'
},
{
field
:
'customer.createTime'
,
title
:
'创建日期'
,
search
:
{
el
:
'date-picker'
,
labelWidth
:
85
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
},
//
search: {
//
el: 'date-picker',
//
labelWidth: 85,
//
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
//
},
},
{
field
:
'customer.inputUserName'
,
title
:
'创建人'
,
search
:
{
el
:
'input'
,
labelWidth
:
85
,
props
:
{
clearable
:
true
}
},
//
search: { el: 'input',labelWidth: 85, props: { clearable: true } },
},
{
field
:
'customer.idCard'
,
title
:
'身份证号'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
},
{
field
:
'customer.phone'
,
title
:
'手机'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
},
{
field
:
'customer.email'
,
title
:
'电子邮箱'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
},
{
field
:
'customer.idCard'
,
title
:
'身份证号'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
,
key
:
'idCard'
}
},
{
field
:
'customer.phone'
,
title
:
'手机'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
,
key
:
'phone'
}
},
{
field
:
'legalAffairsUser.username'
,
title
:
'法务人员'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
,
key
:
'legalAffairsUserName'
}
},
{
field
:
'riskControlUser.username'
,
title
:
'风控人员'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
,
key
:
'riskControlUserName'
}
},
{
field
:
'customer.email'
,
title
:
'电子邮箱'
},
{
field
:
'maxStagesNum'
,
title
:
'信用卡数量'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
...
...
@@ -178,7 +182,7 @@
);
},
},
},
{
field
:
'legalAffairRemark'
,
title
:
'备注'
,
search
:
{
labelWidth
:
85
,
el
:
'input'
}
},
{
field
:
'legalAffairRemark'
,
title
:
'备注'
},
{
field
:
'riskControlStatus'
,
slots
:
{
default
:
({
row
})
=>
{
return
(
...
...
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