Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
丽
丽人贷管理后台
Project
Project
Details
Activity
Releases
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
百灵美选
丽人贷管理后台
Commits
73545cd7
Commit
73545cd7
authored
Jun 09, 2022
by
caimeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
6月9号提交一下
parent
1128f67c
Changes
22
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1485 additions
and
524 deletions
+1485
-524
common.scss
src/assets/common.scss
+3
-0
approval-result.vue
src/components/approval-result.vue
+29
-12
approval.vue
src/components/approval.vue
+230
-0
pre-operation-log.vue
src/components/pre-operation-log.vue
+1
-4
user-base-info.vue
src/components/user-base-info.vue
+9
-6
user-other-info.vue
src/components/user-other-info.vue
+11
-9
user-project-info.vue
src/components/user-project-info.vue
+14
-3
index.js
src/minix/index.js
+16
-0
index.js
src/router/index.js
+22
-29
api.js
src/server/api.js
+117
-4
index.js
src/utils/index.js
+19
-0
user.vue
src/views/admin/user.vue
+223
-229
reassignment.vue
src/views/approval/components/reassignment.vue
+94
-29
detail.vue
src/views/approval/detail.vue
+47
-12
list.vue
src/views/approval/list.vue
+91
-50
approval-detail.vue
src/views/credit/approval-detail.vue
+62
-0
approval.vue
src/views/credit/approval.vue
+327
-0
detail.vue
src/views/credit/detail.vue
+1
-1
list.vue
src/views/credit/list.vue
+134
-129
pre-detail.vue
src/views/credit/pre-detail.vue
+13
-1
pre.vue
src/views/credit/pre.vue
+1
-1
list.vue
src/views/loan/list.vue
+21
-5
No files found.
src/assets/common.scss
View file @
73545cd7
...
@@ -22,3 +22,6 @@
...
@@ -22,3 +22,6 @@
.el-dialog__header
{
.el-dialog__header
{
border-bottom
:
1px
solid
#ebeef5
;
border-bottom
:
1px
solid
#ebeef5
;
}
}
.el-descriptions-row
.el-descriptions-item__cell
{
text-align
:
center
!
important
;
}
src/components/approval-result.vue
View file @
73545cd7
...
@@ -2,28 +2,45 @@
...
@@ -2,28 +2,45 @@
<
template
>
<
template
>
<div
class=
'com'
>
<div
class=
'com'
>
<block-header
title=
'审批结果'
/>
<block-header
title=
'审批结果'
/>
<el-descriptions
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3
'
>
<el-descriptions
style=
'margin-bottom: 20px;'
border
size=
'small'
direction=
"vertical"
:column=
'5
'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'用户申请金额'
>
{{
result
.
applyAmount
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'用户申请金额'
>
{{
applyAmount
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'剩余未还本金'
>
{{
result
.
creditAmount
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'剩余未还本金'
>
{{
creditAmount
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'机审建议额度'
>
{{
result
.
manualAmount
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'机审建议额度'
>
{{
manualAmount
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'人审额度'
>
{{
result
.
partnerGrade
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'人审额度'
>
{{
partnerGrade
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'合作商等级'
>
{{
result
.
surplusNoPrincipal
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'合作商等级'
>
{{
surplusNoPrincipal
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
_
from
'lodash'
import
{
money
}
from
'@/utils/index'
import
API
from
'@/server/api'
export
default
{
export
default
{
name
:
'ApprovalResult'
,
name
:
'ApprovalResult'
,
props
:{
props
:
{
//eslint-disable-next-line vue/require-default-prop
//eslint-disable-next-line vue/require-default-prop
result
:{
result
:
{
type
:
Object
,
type
:
Object
,
require
:
true
require
:
true
}
},
data
()
{
return
{
applyAmount
:
''
,
creditAmount
:
''
,
manualAmount
:
''
,
partnerGrade
:
''
,
surplusNoPrincipal
:
''
}
},
created
()
{
if
(
this
.
result
)
{
const
{
applyAmount
,
creditAmount
,
manualAmount
,
partnerGrade
}
=
this
.
result
this
.
applyAmount
=
money
(
applyAmount
)
this
.
creditAmount
=
money
(
creditAmount
)
this
.
manualAmount
=
money
(
manualAmount
)
this
.
partnerGrade
=
money
(
partnerGrade
)
}
}
}
}
}
}
...
...
src/components/approval.vue
0 → 100644
View file @
73545cd7
<!-- 预授信申述 -->
<
template
>
<el-dialog
:visible
.
sync=
'dialogVisible'
:before-close=
'handleClose'
:destroy-on-close=
'true'
width=
'45%'
title=
'审批'
>
<div
class=
'page'
>
<!--搜索-->
<el-form
ref=
'dForm'
label-suffix=
':'
label-width=
'120px'
:rules=
'rules'
:model=
'form'
class=
'form-inline'
>
<el-form-item
prop=
'perAllotAmount'
label=
'人审额度(元)'
>
<el-input
v-model=
'form.perAllotAmount'
clearable
placeholder=
'请输入人审额度'
/>
</el-form-item>
<template
v-if=
'searchData!==null'
>
<el-form-item
prop=
'capitalCode'
label=
'选择资方'
>
<el-row>
<el-col
:span=
'14'
>
<el-select
v-model=
'form.capitalCode'
style=
'width: 100%;'
clearable
>
<el-option
v-for=
'(item,index) in searchData.financierResponseList'
:key=
'index'
:value=
'item.capitalCode'
:label=
'item.message'
>
</el-option>
</el-select>
</el-col>
<template
v-if=
'form.capitalCode==="FENGSHENGBUSINESS"'
>
<el-col
:span=
'8'
>
<el-button
style=
'margin-left: 10px'
type=
'primary'
@
click=
'handleRisk'
>
风审查询
</el-button>
</el-col>
</
template
>
</el-row>
</el-form-item>
</template>
<el-form-item
prop=
'perAllotAmount'
label=
'风审查询结果'
>
</el-form-item>
<el-form-item
prop=
'memo'
label=
'备注'
>
<el-input
v-model=
'form.memo'
type=
'textarea'
clearable
placeholder=
'请输入备注'
/>
</el-form-item>
<el-form-item
prop=
'approveStatus'
label=
'审批意见'
>
<
template
v-if=
'searchData!==null'
>
<el-radio-group
v-model=
'form.approveOpinion'
>
<el-radio
v-for=
'(item,index) in searchData.allotOpinionEnumResponseList'
:key=
'index'
:label=
'item.code'
>
{{
item
.
desc
}}
</el-radio>
</el-radio-group>
</
template
>
</el-form-item>
</el-form>
</div>
<span
slot=
'footer'
class=
'dialog-footer'
>
<el-button
type=
'primary'
@
click=
'onSubmit("dForm")'
>
确 定
</el-button>
<el-button
@
click=
'handleClose'
>
取 消
</el-button>
</span>
</el-dialog>
</template>
<
script
>
import
API
from
'@/server/api'
import
_
from
'lodash'
import
{
mapGetters
}
from
'vuex'
export
default
{
name
:
'Approval'
,
props
:
{
dialogVisible
:
{
type
:
Boolean
,
require
:
true
},
item
:
{
type
:
Object
,
require
:
true
}
},
data
()
{
return
{
financeList
:
[],
rules
:
{
capitalCode
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请选择放款资方'
}
],
perAllotAmount
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入人审额度'
}
]
},
hasRisk
:
false
,
form
:
{
approveStatus
:
''
,
capitalCode
:
''
,
creditNo
:
''
,
memo
:
''
,
perAllotAmount
:
''
,
userId
:
''
}
}
},
computed
:
{
...
mapGetters
([
'searchData'
,
'user'
])
},
async
created
()
{
console
.
log
(
this
.
item
,
'nash '
)
if
(
this
.
item
!==
null
)
{
this
.
form
.
preCreditNo
=
this
.
item
.
preCreditNo
// 初始化丰盛查询结果
await
this
.
initRiskResult
()
}
},
methods
:
{
// 风审查询
async
handleRisk
()
{
if
(
!
this
.
hasRisk
)
{
const
{
creditNo
,
loanIntentionNum
}
=
this
.
item
console
.
log
(
loanIntentionNum
,
'那啥'
)
const
creditAmount
=
this
.
form
.
perAllotAmount
if
(
!
creditAmount
&&
/^
[
0-9
]
*$/
.
test
(
creditAmount
))
{
this
.
$message
({
type
:
'error'
,
message
:
'请输入正确的审批金额!'
})
return
}
const
result
=
await
API
.
capitalSubmit
({
loanIntentionNum
,
creditNo
,
creditAmount
})
if
(
result
.
success
)
{
this
.
hasRisk
=
true
await
this
.
initRiskResult
()
}
}
else
{
await
this
.
initRiskResult
()
}
},
// 风审查询结果
async
initRiskResult
()
{
const
{
creditNo
}
=
this
.
item
const
result
=
await
API
.
initCapitalResult
({
creditNo
})
if
(
result
.
success
)
{
console
.
log
(
result
,
'结果'
)
}
},
onSubmit
(
formName
)
{
console
.
log
(
this
.
item
,
this
.
form
,
'数据呢'
)
this
.
$refs
[
formName
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
$confirm
(
'是否确认提交?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
async
(
res
)
=>
{
console
.
log
(
res
,
'是啥'
)
const
form
=
this
.
form
form
.
userId
=
this
.
user
.
userId
console
.
log
(
form
,
'表单数据'
)
const
result
=
await
API
.
preCreditPlead
({
...
form
})
if
(
result
.
success
)
{
this
.
$message
({
type
:
'success'
,
message
:
'申述成功!'
})
this
.
$emit
(
'handleClose'
)
this
.
$emit
(
'callback'
)
}
}).
catch
((
e
)
=>
{
console
.
log
(
e
,
'取消申述了'
)
})
}
})
},
handleClose
()
{
this
.
$emit
(
'handleClose'
)
}
}
}
</
script
>
<
style
lang=
'scss'
scoped
>
.page-fence
{
::v-deep
{
i
{
cursor
:
pointer
;
}
}
box-sizing
:
border-box
;
padding
:
20px
;
}
</
style
>
<
style
lang=
'scss'
>
.custom-table-checkbox
{
.el-checkbox
{
display
:
block
!
important
;
margin
:
0
0
$base-padding
/
4
0
;
}
}
.action-bar
{
margin-bottom
:
15px
;
}
</
style
>
src/components/pre-operation-log.vue
View file @
73545cd7
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
<!--表格-->
<!--表格-->
<el-table
<el-table
ref=
"tableSort"
ref=
"tableSort"
v-loading=
"listLoading"
border
border
:data=
"list"
:data=
"list"
style=
"width: 100%"
style=
"width: 100%"
...
@@ -73,8 +72,7 @@
...
@@ -73,8 +72,7 @@
prop
:
"appealMemo"
prop
:
"appealMemo"
}
}
],
],
list
:
[],
list
:
[]
listLoading
:
true
,
}
}
},
},
computed
:
{
computed
:
{
...
@@ -91,7 +89,6 @@
...
@@ -91,7 +89,6 @@
created
()
{
created
()
{
if
(
this
.
logData
){
if
(
this
.
logData
){
this
.
list
=
this
.
logData
;
this
.
list
=
this
.
logData
;
this
.
listLoading
=
false
;
}
}
}
}
}
}
...
...
src/components/user-base-info.vue
View file @
73545cd7
...
@@ -12,10 +12,10 @@
...
@@ -12,10 +12,10 @@
<el-descriptions-item
label-class-name=
'labelCls'
label=
'学历'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'学历'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'婚姻状况'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'婚姻状况'
>
{{
baseInfo
.
marriageStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'年龄(周岁)'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'年龄(周岁)'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作行业'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作行业'
>
{{
baseInfo
.
workIndustryStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作城市'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作城市'
>
{{
baseInfo
.
companyAddress
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'公司全称'
>
{{
baseInfo
.
companyName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'公司全称'
>
{{
baseInfo
.
companyName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'居中城市'
>
{{
baseInfo
.
liveAddress
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'居中城市'
>
{{
baseInfo
.
liveAddress
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'居中地址'
>
{{
baseInfo
.
liveDetailAddress
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'居中地址'
>
{{
baseInfo
.
liveDetailAddress
}}
</el-descriptions-item>
...
@@ -24,10 +24,13 @@
...
@@ -24,10 +24,13 @@
<el-descriptions-item
label-class-name=
'labelCls'
label=
'BD经理'
>
{{
baseInfo
.
bdName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'BD经理'
>
{{
baseInfo
.
bdName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户区域'
>
{{
baseInfo
.
regionName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户区域'
>
{{
baseInfo
.
regionName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'紧急联系人姓名'
>
{{
baseInfo
.
firstName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'紧急联系人关系'
>
{{
baseInfo
.
firstRelationStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'紧急联系人电话'
>
{{
baseInfo
.
firstPhone
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作地址'
>
{{
baseInfo
.
companyAddress
}}{{
baseInfo
.
companyAddressDetail
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'工作地址'
>
{{
baseInfo
.
companyAddress
}}{{
baseInfo
.
companyAddressDetail
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'是否需要补交资料'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'合同展示地址'
>
{{
baseInfo
.
address
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'合同展示地址'
>
{{
baseInfo
.
contractAddress
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'月收入'
>
{{
baseInfo
.
selfMonthIncomeStr
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'收入'
>
{{
baseInfo
.
selfMonthIncome
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'客户GPS'
>
{{
baseInfo
.
clientGps
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'客户GPS'
>
{{
baseInfo
.
clientGps
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'首次授信'
>
{{
baseInfo
.
isFirstCredit
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'首次授信'
>
{{
baseInfo
.
isFirstCredit
}}
</el-descriptions-item>
...
...
src/components/user-other-info.vue
View file @
73545cd7
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
<div>
<div>
<template
v-if=
'clientIdCardInfoResponse.length'
>
<template
v-if=
'clientIdCardInfoResponse.length'
>
<block-header
title=
'客户身份证信息'
/>
<block-header
title=
'客户身份证信息'
/>
<el-row>
<el-row
:gutter=
'20'
>
<el-col
v-for=
'(o, index) in clientIdCardInfoResponse'
:key=
'index'
:span=
'4'
:offset=
'index > 0 ? 1 : 0'
>
<el-col
v-for=
'(o, index) in clientIdCardInfoResponse'
:key=
'index'
:span=
'4'
>
<el-card
:body-style=
"
{ padding: '10px' }">
<el-card
:body-style=
"
{ padding: '10px' }">
<el-image
class=
'el-card-image'
:src=
'o[1]'
<el-image
class=
'el-card-image'
:src=
'o[1]'
@
click
.
native=
'showImgViewer(clientIdCardInfoResponse,"idCard")'
></el-image>
@
click
.
native=
'showImgViewer(clientIdCardInfoResponse,"idCard")'
></el-image>
...
@@ -19,8 +19,8 @@
...
@@ -19,8 +19,8 @@
<
template
v-if=
'faceInfoResponse.length'
>
<
template
v-if=
'faceInfoResponse.length'
>
<block-header
title=
'人脸信息'
/>
<block-header
title=
'人脸信息'
/>
<el-row>
<el-row
:gutter=
'20'
>
<el-col
v-for=
'(o, index) in faceInfoResponse'
:key=
'index'
:span=
'4'
:offset=
'index > 0 ? 1 : 0'
>
<el-col
v-for=
'(o, index) in faceInfoResponse'
:key=
'index'
:span=
'4'
>
<el-card
:body-style=
"
{ padding: '10px' }">
<el-card
:body-style=
"
{ padding: '10px' }">
<el-image
class=
'el-card-image'
:src=
'o[1]'
<el-image
class=
'el-card-image'
:src=
'o[1]'
@
click
.
native=
'showImgViewer(faceInfoResponse,"face")'
></el-image>
@
click
.
native=
'showImgViewer(faceInfoResponse,"face")'
></el-image>
...
@@ -37,8 +37,8 @@
...
@@ -37,8 +37,8 @@
<
template
v-if=
'creditAttachInfo.length'
>
<
template
v-if=
'creditAttachInfo.length'
>
<block-header
title=
'授信附件信息'
/>
<block-header
title=
'授信附件信息'
/>
<el-row>
<el-row
:gutter=
'20'
>
<el-col
v-for=
'(o, index) in creditAttachInfo'
:key=
'index'
:span=
'4'
:offset=
'index > 0 ? 1 : 0'
>
<el-col
v-for=
'(o, index) in creditAttachInfo'
:key=
'index'
:span=
'4'
>
<el-card
:body-style=
"
{ padding: '10px' }">
<el-card
:body-style=
"
{ padding: '10px' }">
<el-image
class=
'el-card-image'
:src=
'o.screenList[0]'
<el-image
class=
'el-card-image'
:src=
'o.screenList[0]'
@
click
.
native=
'showImgViewer(o.screenList,"annex")'
></el-image>
@
click
.
native=
'showImgViewer(o.screenList,"annex")'
></el-image>
...
@@ -53,8 +53,8 @@
...
@@ -53,8 +53,8 @@
<
template
v-if=
'supplAttachInfo.length'
>
<
template
v-if=
'supplAttachInfo.length'
>
<block-header
title=
'客户附件信息'
/>
<block-header
title=
'客户附件信息'
/>
<el-row>
<el-row
:gutter=
'20'
>
<el-col
v-for=
'(o, index) in supplAttachInfo'
:key=
'index'
:span=
'4'
:offset=
'index > 0 ? 1 : 0'
>
<el-col
v-for=
'(o, index) in supplAttachInfo'
:key=
'index'
:span=
'4'
>
<el-card
:body-style=
"
{ padding: '10px' }">
<el-card
:body-style=
"
{ padding: '10px' }">
<el-image
class=
'el-card-image'
:src=
'o.screenList[0]'
<el-image
class=
'el-card-image'
:src=
'o.screenList[0]'
@
click
.
native=
'showImgViewer(o.screenList,"annex")'
></el-image>
@
click
.
native=
'showImgViewer(o.screenList,"annex")'
></el-image>
...
@@ -203,9 +203,11 @@
...
@@ -203,9 +203,11 @@
.el-card-intro
{
.el-card-intro
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
56px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
padding
:
20px
;
padding
:
20px
5px
;
overflow
:
hidden
;
}
}
</
style
>
</
style
>
src/components/user-project-info.vue
View file @
73545cd7
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
<block-header
title=
'项目信息'
/>
<block-header
title=
'项目信息'
/>
<el-descriptions
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3'
>
<el-descriptions
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'医院名称'
>
{{
projectInfo
.
regName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'医院名称'
>
{{
projectInfo
.
regName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'项目金额'
>
{{
projectInfo
.
projectAmount
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'项目金额'
>
{{
money
(
projectInfo
.
projectAmount
)
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请金额'
>
{{
projectInfo
.
loanIntentionAmount
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请金额'
>
{{
loanIntentionAmount
}}
元
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'借款期限'
>
{{
projectInfo
.
loanIntentionNum
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'借款期限'
>
{{
projectInfo
.
loanIntentionNum
}}
月
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请项目'
>
{{
projectInfo
.
projectName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请项目'
>
{{
projectInfo
.
projectName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商家等级'
>
{{
projectInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商家等级'
>
{{
projectInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户GPS'
>
{{
projectInfo
.
projectId
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户GPS'
>
{{
projectInfo
.
projectId
}}
</el-descriptions-item>
...
@@ -16,6 +16,8 @@
...
@@ -16,6 +16,8 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
money
}
from
'@/utils'
export
default
{
export
default
{
name
:
"UserProjectInfo"
,
name
:
"UserProjectInfo"
,
props
:{
props
:{
...
@@ -23,6 +25,15 @@
...
@@ -23,6 +25,15 @@
type
:
Object
,
type
:
Object
,
require
:
true
require
:
true
}
}
},
data
(){
return
{
loanIntentionAmount
:
''
}
},
created
()
{
const
{
loanIntentionAmount
}
=
this
.
projectInfo
;
this
.
loanIntentionAmount
=
money
(
loanIntentionAmount
);
}
}
};
};
</
script
>
</
script
>
...
...
src/minix/index.js
View file @
73545cd7
...
@@ -2,6 +2,7 @@ import BlockHeader from '@/components/blockHeader'
...
@@ -2,6 +2,7 @@ import BlockHeader from '@/components/blockHeader'
import
OperationLog
from
'@/components/pre-operation-log'
import
OperationLog
from
'@/components/pre-operation-log'
import
PrePlead
from
'@/components/pre-plead'
import
PrePlead
from
'@/components/pre-plead'
import
Plead
from
'@/components/plead'
import
Plead
from
'@/components/plead'
import
Approval
from
'@/components/approval'
import
UserOtherInfo
from
'@/components/user-other-info'
import
UserOtherInfo
from
'@/components/user-other-info'
import
ApprovalResult
from
'@/components/approval-result'
import
ApprovalResult
from
'@/components/approval-result'
import
AuditResult
from
'@/components/audit-result'
import
AuditResult
from
'@/components/audit-result'
...
@@ -21,6 +22,7 @@ export default {
...
@@ -21,6 +22,7 @@ export default {
AuditResult
,
AuditResult
,
UserBaseInfo
,
UserBaseInfo
,
UserProjectInfo
,
UserProjectInfo
,
Approval
,
'el-image-viewer'
:
()
=>
import
(
'element-ui/packages/image/src/image-viewer'
)
'el-image-viewer'
:
()
=>
import
(
'element-ui/packages/image/src/image-viewer'
)
},
},
data
(){
data
(){
...
@@ -75,6 +77,20 @@ export default {
...
@@ -75,6 +77,20 @@ export default {
if
(
formName
)
{
if
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
()
this
.
$refs
[
formName
].
resetFields
()
}
}
},
money
(
s
,
n
)
{
if
(
!
s
)
s
=
0
if
(
!
n
)
n
=
2
n
=
n
>
0
&&
n
<=
20
?
n
:
2
const
ns
=
(
s
+
''
).
replace
(
/
[^\d
.-
]
/g
,
''
)
s
=
parseFloat
(
ns
).
toFixed
(
n
)
+
''
const
l
=
s
.
split
(
'.'
)[
0
].
split
(
''
).
reverse
(),
r
=
s
.
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
}
}
}
}
}
}
src/router/index.js
View file @
73545cd7
...
@@ -103,12 +103,21 @@ export const asyncRoutes = [
...
@@ -103,12 +103,21 @@ export const asyncRoutes = [
}
}
},
},
{
{
path
:
'
order
'
,
path
:
'
approval
'
,
name
:
'Credit
Order
'
,
name
:
'Credit
Approval
'
,
component
:
()
=>
import
(
'@/views/credit/
order
'
),
component
:
()
=>
import
(
'@/views/credit/
approval
'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'我的审批'
title
:
'我的审批'
}
},
{
path
:
'approvalDetail'
,
name
:
'ApprovalDetail'
,
component
:
()
=>
import
(
'@/views/credit/approval-detail'
),
meta
:
{
noKeepAlive
:
true
,
title
:
'审批详情'
},
},
hidden
:
true
hidden
:
true
},
},
...
@@ -118,9 +127,7 @@ export const asyncRoutes = [
...
@@ -118,9 +127,7 @@ export const asyncRoutes = [
component
:
()
=>
import
(
'@/views/credit/detail'
),
component
:
()
=>
import
(
'@/views/credit/detail'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'授信详情'
,
title
:
'授信详情'
remixIcon
:
'building-line'
,
tagHidden
:
true
},
},
hidden
:
true
hidden
:
true
...
@@ -152,32 +159,21 @@ export const asyncRoutes = [
...
@@ -152,32 +159,21 @@ export const asyncRoutes = [
},
},
children
:
[
children
:
[
{
{
path
:
'
order
'
,
path
:
'
list
'
,
name
:
'ApprovalList'
,
name
:
'ApprovalList'
,
component
:
()
=>
import
(
'@/views/approval/
order
'
),
component
:
()
=>
import
(
'@/views/approval/
list
'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'我的订单'
,
title
:
'我的订单'
remixIcon
:
'product-hunt-line'
}
}
},
},
//{
// path: 'order1',
// name: 'ApprovalList',
// component: () => import('@/views/approval/order1'),
// meta: {
// title: '我的订单2',
// remixIcon: 'product-hunt-line',
// },
//},
{
{
path
:
'detail'
,
path
:
'detail'
,
name
:
'ApprovalDetail'
,
name
:
'ApprovalDetail'
,
component
:
()
=>
import
(
'@/views/approval/detail'
),
component
:
()
=>
import
(
'@/views/approval/detail'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'详情'
,
title
:
'审批订单详情'
remixIcon
:
'product-hunt-line'
},
},
hidden
:
true
hidden
:
true
}
}
...
@@ -200,8 +196,7 @@ export const asyncRoutes = [
...
@@ -200,8 +196,7 @@ export const asyncRoutes = [
component
:
()
=>
import
(
'@/views/loan/detail'
),
component
:
()
=>
import
(
'@/views/loan/detail'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'详情'
,
title
:
'借款详情'
remixIcon
:
'task-line'
},
},
hidden
:
true
hidden
:
true
},
},
...
@@ -211,8 +206,7 @@ export const asyncRoutes = [
...
@@ -211,8 +206,7 @@ export const asyncRoutes = [
component
:
()
=>
import
(
'@/views/loan/audit'
),
component
:
()
=>
import
(
'@/views/loan/audit'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'稽核审批'
,
title
:
'稽核审批'
remixIcon
:
'task-line'
}
}
},
},
{
{
...
@@ -221,8 +215,7 @@ export const asyncRoutes = [
...
@@ -221,8 +215,7 @@ export const asyncRoutes = [
component
:
()
=>
import
(
'@/views/loan/list'
),
component
:
()
=>
import
(
'@/views/loan/list'
),
meta
:
{
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'放款确认'
,
title
:
'放款确认'
remixIcon
:
'task-line'
}
}
}
}
]
]
...
@@ -243,8 +236,8 @@ export const asyncRoutes = [
...
@@ -243,8 +236,8 @@ export const asyncRoutes = [
name
:
'AdminUser'
,
name
:
'AdminUser'
,
component
:
()
=>
import
(
'@/views/admin/user'
),
component
:
()
=>
import
(
'@/views/admin/user'
),
meta
:
{
meta
:
{
title
:
'用户管理'
,
noKeepAlive
:
true
,
remixIcon
:
'notification-3-line
'
title
:
'用户管理
'
}
}
}
}
]
]
...
...
src/server/api.js
View file @
73545cd7
...
@@ -92,6 +92,25 @@ export default {
...
@@ -92,6 +92,25 @@ export default {
data
data
})
})
},
},
// 我的审批列表
auditList
(
data
)
{
return
request
({
url
:
'/credit/myApproveList'
,
method
:
'post'
,
data
})
},
// 我的审批详情
auditDetail
(
params
)
{
return
request
({
url
:
'/credit/myApproveDetail'
,
method
:
'get'
,
params
})
},
// 初始化过滤条件的基础数据
// 初始化过滤条件的基础数据
initSearchData
(
data
)
{
initSearchData
(
data
)
{
return
request
({
return
request
({
...
@@ -112,11 +131,19 @@ export default {
...
@@ -112,11 +131,19 @@ export default {
})
})
},
},
// 初始化审批订单详情
// 初始化审批订单详情
initApproveDetail
(
data
)
{
initApproveDetail
(
params
)
{
return
request
({
return
request
({
url
:
'/approve/myOrderDetail'
,
url
:
'/approve/myOrderDetail'
,
method
:
'post'
,
method
:
'get'
,
data
params
})
},
// 审批人员上下线
initApproveOnOff
(
params
)
{
return
request
({
url
:
'/approve/getManState'
,
method
:
'get'
,
params
})
})
},
},
// 审批人员上下线
// 审批人员上下线
...
@@ -135,6 +162,17 @@ export default {
...
@@ -135,6 +162,17 @@ export default {
data
data
})
})
},
},
// 初始化转派在线人员列表
initReassignmentUser
(
params
)
{
return
request
({
url
:
'/approve/getOnLinePerson'
,
method
:
'get'
,
params
})
},
// 审批订单审批提交
// 审批订单审批提交
approveSubmit
(
data
)
{
approveSubmit
(
data
)
{
return
request
({
return
request
({
...
@@ -143,6 +181,30 @@ export default {
...
@@ -143,6 +181,30 @@ export default {
data
data
})
})
},
},
// 订单审批 选择资金方
initFinanceList
(
params
)
{
return
request
({
url
:
'/approve/financierList'
,
method
:
'get'
,
params
})
},
// 风审查询
capitalSubmit
(
data
)
{
return
request
({
url
:
'/approve/fengshengCredit'
,
method
:
'post'
,
data
})
},
// 查询结果
initCapitalResult
(
params
)
{
return
request
({
url
:
'/approve/capitalResult'
,
method
:
'get'
,
params
})
},
// 借款管理接口
// 借款管理接口
...
@@ -194,6 +256,57 @@ export default {
...
@@ -194,6 +256,57 @@ export default {
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
},
// 用户管理
// 用户列表
userList
(
params
){
return
request
({
url
:
'/user/searchAll'
,
method
:
'get'
,
params
})
},
// 用户详情
userDetail
(
params
){
return
request
({
url
:
'/user/searchAll'
,
method
:
'get'
,
params
})
},
// 用户新增
userNew
(
data
){
return
request
({
url
:
'/user/insert'
,
method
:
'post'
,
data
})
},
// 用户编辑
userUpdate
(
data
){
return
request
({
url
:
'/user/update'
,
method
:
'post'
,
data
})
},
// 用户重置密码
userResetPwd
(
data
){
return
request
({
url
:
'/user/resetPassword'
,
method
:
'post'
,
data
})
},
// 用户修改密码
userUpdatePwd
(
data
){
return
request
({
url
:
'/user/updatePassword'
,
method
:
'post'
,
data
})
},
}
}
src/utils/index.js
View file @
73545cd7
// 格式化两位小数
export
const
money
=
function
(
s
,
n
)
{
if
(
!
s
)
s
=
0
if
(
!
n
)
n
=
2
n
=
n
>
0
&&
n
<=
20
?
n
:
2
const
ns
=
(
s
+
''
).
replace
(
/
[^\d
.-
]
/g
,
''
)
s
=
parseFloat
(
ns
).
toFixed
(
n
)
+
''
const
l
=
s
.
split
(
'.'
)[
0
].
split
(
''
).
reverse
(),
r
=
s
.
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
}
/**
/**
* @description 格式化时间
* @description 格式化时间
* @param time
* @param time
...
...
src/views/admin/user.vue
View file @
73545cd7
This diff is collapsed.
Click to expand it.
src/views/approval/components/reassignment.vue
View file @
73545cd7
...
@@ -2,59 +2,124 @@
...
@@ -2,59 +2,124 @@
<
template
>
<
template
>
<el-dialog
<el-dialog
v-drag
v-drag
title=
"转派"
title=
'转派'
:visible
.
sync=
"visible"
:visible
.
sync=
'visible'
:close-on-click-modal=
"false"
:close-on-click-modal=
'false'
:append-to-body=
"true"
:append-to-body=
'true'
width=
"30%"
width=
'30%'
:before-close=
"handleClose"
:before-close=
'handleClose'
>
>
<el-form
:model=
'form'
>
<el-form
ref=
'form'
label-suffix=
':'
label-width=
'120'
:rules=
'rules'
:model=
'form'
>
<el-form-item
label=
'选择转派人员'
>
<el-select
v-model=
'form.status'
clearable
placeholder=
'请选择'
>
<el-form-item
prop=
'user'
label=
'转派人员'
>
<el-option
label=
'启用'
value=
'1'
/>
<template
v-if=
'list.length'
>
<el-option
label=
'禁用'
value=
'0'
/>
<el-select
v-model=
'form.user'
clearable
placeholder=
'请选择'
>
<el-option
v-for=
'(u,index) in list'
:key=
'index'
:label=
'u.userName'
:value=
'u.userId'
></el-option>
</el-select>
</el-select>
</
template
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
'footer'
class=
'dialog-footer'
>
<el-button
type=
"default"
@
click=
"handleClose"
>
取 消
</el-button>
<el-button
type=
'default'
@
click=
'handleClose'
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
确 定
</el-button>
<el-button
type=
'primary'
@
click=
'onSubmit("form")'
>
确 定
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</template>
</template>
<
script
>
<
script
>
import
API
from
"@/server/api"
;
import
API
from
'@/server/api'
import
_
from
'lodash'
import
{
mapGetters
}
from
'vuex'
export
default
{
export
default
{
name
:
"Reassignment"
,
name
:
'Reassignment'
,
props
:{
props
:
{
visible
:{
visible
:
{
type
:
Boolean
,
type
:
Boolean
,
required
:
true
required
:
true
},
//eslint-disable-next-line vue/require-default-prop
item
:
{
type
:
Object
,
require
:
true
}
}
},
},
data
()
{
data
()
{
return
{
return
{
data
:
null
,
list
:
[],
rules
:
{
user
:
[
{
required
:
true
,
trigger
:
'change'
,
message
:
'请选择转派人员'
}
]
},
form
:
{
form
:
{
status
:
''
user
:
''
}
}
},
computed
:
{
...
mapGetters
([
'user'
])
},
async
created
()
{
if
(
this
.
item
!==
null
)
{
this
.
data
=
this
.
item
await
this
.
initUser
()
}
}
};
},
},
methods
:
{
methods
:
{
onSubmit
(){
// 初始化用户列表
async
initUser
()
{
const
result
=
await
API
.
initReassignmentUser
({})
console
.
log
(
result
,
'返回结果'
)
if
(
result
.
success
)
{
this
.
list
=
result
.
result
}
},
async
onSubmit
(
formName
)
{
this
.
$refs
[
formName
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
this
.
data
,
'数据'
)
const
{
creditNo
}
=
this
.
data
const
oldAllotId
=
this
.
user
.
userId
;
const
curAllotId
=
this
.
form
.
user
;
const
result
=
await
API
.
approveReassignment
({
creditNo
,
curAllotId
,
oldAllotId
});
if
(
result
.
success
){
this
.
$message
({
type
:
'success'
,
message
:
'转派成功'
})
this
.
$emit
(
'callback'
)
this
.
$emit
(
'handleClose'
)
}
}
})
},
},
handleClose
(){
handleClose
()
{
this
.
$emit
(
"handleClose"
);
this
.
$emit
(
'handleClose'
)
}
}
}
}
}
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
'scss'
scoped
>
.page-fence
{
.page-fence
{
::v-deep
{
::v-deep
{
i
{
i
{
...
@@ -66,7 +131,7 @@
...
@@ -66,7 +131,7 @@
padding
:
20px
;
padding
:
20px
;
}
}
</
style
>
</
style
>
<
style
lang=
"scss"
>
<
style
lang=
'scss'
>
.custom-table-checkbox
{
.custom-table-checkbox
{
.el-checkbox
{
.el-checkbox
{
display
:
block
!
important
;
display
:
block
!
important
;
...
...
src/views/approval/detail.vue
View file @
73545cd7
<
template
>
<
template
>
<div
class=
'page'
>
<div
v-if=
'detail!==null'
class=
'page'
>
<user-base-info
/>
<user-project-info
/>
<!--用户基础信息-->
<template
v-if=
'detail.clientDetail!==null'
>
<user-base-info
:base-info=
'detail.clientDetail'
/>
</
template
>
<user-other-info
/>
<!--用户项目信息-->
<
template
v-if=
'detail.projectInfoResponse!==null'
>
<user-project-info
:project-info=
'detail.projectInfoResponse'
/>
</
template
>
<operation-log
/>
<plead
/>
<!--其它信息-->
<user-other-info
:info=
'detail'
/>
<!--第三方报告-->
<
template
v-if=
'detail.thirdPartyReport!==null'
></
template
>
<!--路由结果报告-->
<
template
></
template
>
<!--操作日志-->
<
template
v-if=
'detail.operationLogResponse!==null'
>
<operation-log
:log-data=
'detail.operationLogResponse'
/>
</
template
>
<!--申述操作-->
<
template
v-if=
'false'
>
<pre-plead
/>
</
template
>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
API
from
'@/server/api'
import
API
from
'@/server/api'
export
default
{
export
default
{
name
:
'
Pre
Detail'
,
name
:
'
Approval
Detail'
,
data
()
{
data
()
{
return
{
return
{
tenantNo
:
''
creditNo
:
''
,
detail
:
null
}
}
},
},
created
()
{
async
created
()
{
const
{
query
}
=
this
.
$route
const
{
query
}
=
this
.
$route
if
(
query
&&
query
.
tenantNo
)
{
if
(
query
&&
query
.
creditNo
)
{
this
.
tenantNo
=
query
.
tenantNo
this
.
creditNo
=
query
.
creditNo
await
this
.
init
()
}
}
},
},
methods
:
{}
methods
:
{
async
init
()
{
const
creditNo
=
this
.
creditNo
const
result
=
await
API
.
initApproveDetail
({
creditNo
})
this
.
detail
=
result
.
result
}
}
}
}
</
script
>
</
script
>
...
...
src/views/approval/
order
.vue
→
src/views/approval/
list
.vue
View file @
73545cd7
...
@@ -19,30 +19,21 @@
...
@@ -19,30 +19,21 @@
placeholder=
'请输入客户姓名'
placeholder=
'请输入客户姓名'
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-form-item
label=
'授信类型'
>
<el-input
<el-select
clearable
v-model=
'queryForm.creditType'
placeholder=
'请选择授信类型'
>
v-model=
'queryForm.mobile'
<el-option
clearable
v-for=
'(item,index) in searchData.creditTypeResponseList'
placeholder=
'请输入手机号码'
:label=
'item.creditTypeStr'
/>
:key=
'index'
:value=
'item.creditType'
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
'审批状态'
>
<el-select
clearable
v-model=
'queryForm.creditStatus'
placeholder=
'请选择授信类型'
>
<el-option
v-for=
'(item,index) in searchData.creditStatusResponseList'
:label=
'item.creditStatusStr'
:key=
'index'
:value=
'item.creditStatus'
></el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
'time'
label=
'申请时间'
>
<el-form-item
prop=
'time'
label=
'申请时间'
>
<el-date-picker
<el-date-picker
v-model=
'queryForm.time'
v-model=
'queryForm.time'
type=
'datetimerange'
type=
'datetimerange'
:picker-options=
'pickerConfig'
:picker-options=
'pickerConfig'
:default-time=
"['00:00:00', '23:59:59']"
value-format=
'yyyy-MM-dd HH:mm:ss'
range-separator=
'至'
range-separator=
'至'
start-placeholder=
'开始时间'
start-placeholder=
'开始时间'
end-placeholder=
'结束时间'
end-placeholder=
'结束时间'
...
@@ -86,16 +77,27 @@
...
@@ -86,16 +77,27 @@
:show-overflow-tooltip=
'!!item.overflow'
:show-overflow-tooltip=
'!!item.overflow'
>
>
<template
#
default=
'
{ row }'>
<template
#
default=
'
{ row }'>
<span>
{{
row
[
item
.
prop
]
}}
</span>
<span
v-if=
'item.label==="申请金额(元)" || item.label==="审核金额(元)"'
>
{{
money
(
row
[
item
.
prop
])
}}
</span>
<span
v-else-if=
'item.label==="授信状态"'
>
<el-tag
v-if=
'row.creditStatus==="CREATED"'
size=
'mini'
>
{{
row
.
creditStatusStr
}}
</el-tag>
<el-tag
v-if=
'row.creditStatus==="CREDIT_ING"'
type=
'warning'
size=
'mini'
>
{{
row
.
creditStatusStr
}}
</el-tag>
<el-tag
v-if=
'row.creditStatus==="MANUAL_CREDIT_ING"'
type=
'warning'
size=
'mini'
>
{{
row
.
creditStatusStr
}}
</el-tag>
<el-tag
v-if=
'row.creditStatus==="MANUAL_BACK"'
type=
'danger'
size=
'mini'
>
{{
row
.
creditStatusStr
}}
</el-tag>
<el-tag
v-if=
'row.creditStatus==="FINISHED"'
type=
'success'
size=
'mini'
>
{{
row
.
creditStatusStr
}}
</el-tag>
</span>
<span
v-else
>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<
template
v-if=
'isOnLine'
>
<
template
v-if=
'isOnLine'
>
<el-table-column
width=
'210'
fixed=
'right'
align=
'center'
label=
'操作'
>
<el-table-column
width=
'210'
fixed=
'right'
align=
'center'
label=
'操作'
>
<template
#
default=
'
{ row }'>
<template
#
default=
'
{ row }'>
<el-button
size=
'mini'
type=
'danger'
@
click
=
'handleView
(row)'
>
审批
</el-button>
<el-button
size=
'mini'
type=
'danger'
@
click
.
native=
'handleApproval
(row)'
>
审批
</el-button>
<el-button
size=
'mini'
type=
'success'
@
click=
'handleView(row)'
>
详情
</el-button>
<el-button
size=
'mini'
type=
'success'
@
click=
'handleView(row)'
>
详情
</el-button>
<el-button
size=
'mini'
type=
'primary'
@
click=
'handle
Click
(row)'
>
转派
</el-button>
<el-button
size=
'mini'
type=
'primary'
@
click=
'handle
Reassignment
(row)'
>
转派
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</template>
</template>
...
@@ -112,9 +114,23 @@
...
@@ -112,9 +114,23 @@
/>
/>
<!--转派弹框-->
<!--转派弹框-->
<
template
v-if=
'visible'
>
<Reassignment
<Reassignment
:visible=
'visible'
:visible=
'visible'
@
handleClose=
'visible = false'
/>
:item=
'item'
@
handleClose=
'visible = false'
@
callback=
'fetchData'
/>
</
template
>
<!--审批-->
<
template
v-if=
'ApprovalVisible'
>
<Approval
:dialog-visible=
'ApprovalVisible'
:item=
'ApprovalItem'
@
handleClose=
'ApprovalVisible = false'
@
callback=
'fetchData'
/>
</
template
>
</div>
</div>
</template>
</template>
...
@@ -134,52 +150,58 @@
...
@@ -134,52 +150,58 @@
data
()
{
data
()
{
return
{
return
{
isOnLine
:
false
,
isOnLine
:
false
,
// 转派相关
visible
:
false
,
visible
:
false
,
item
:
null
,
checkList
:
[
'授信编号'
,
'客户姓名'
,
'对应BD'
,
'商户区域'
,
'审核金额'
,
'审核结果'
,
'审批状态'
,
'创建时间'
],
// 审批相关
ApprovalVisible
:
false
,
ApprovalItem
:
null
,
checkList
:
[
'授信编号'
,
'客户姓名'
,
'手机号码'
,
'对应BD'
,
'商户区域'
,
'申请金额(元)'
,
'授信状态'
,
'创建时间'
],
columns
:
[
columns
:
[
{
{
order
:
1
,
order
:
1
,
label
:
'授信编号'
,
label
:
'授信编号'
,
prop
:
'
gradeSort
'
prop
:
'
creditNo
'
},
},
{
{
order
:
2
,
order
:
2
,
label
:
'客户姓名'
,
label
:
'客户姓名'
,
prop
:
'appNo'
prop
:
'realName'
},
{
order
:
3
,
label
:
'手机号码'
,
prop
:
'mobile'
},
},
{
{
order
:
3
,
order
:
3
,
label
:
'对应BD'
,
label
:
'对应BD'
,
prop
:
'
app
Name'
prop
:
'
bd
Name'
},
},
{
{
order
:
4
,
order
:
4
,
label
:
'商户区域'
,
label
:
'商户区域'
,
prop
:
'appLogo'
,
prop
:
'regionName'
overflow
:
true
},
},
{
{
order
:
5
,
order
:
5
,
label
:
'审核金额'
,
label
:
'申请金额(元)'
,
prop
:
'tenantNo'
,
prop
:
'creditAmount'
overflow
:
true
},
{
order
:
6
,
label
:
'审核结果'
,
prop
:
'status'
},
},
{
{
order
:
7
,
order
:
7
,
label
:
'
审批
状态'
,
label
:
'
授信
状态'
,
prop
:
'
abutmentWay
'
prop
:
'
creditStatusStr
'
},
},
{
{
order
:
8
,
order
:
8
,
width
:
1
7
0
,
width
:
1
1
0
,
label
:
'创建时间'
,
label
:
'创建时间'
,
prop
:
'
gmtCreated
'
prop
:
'
applyDate
'
}
}
],
],
list
:
[],
list
:
[],
...
@@ -214,10 +236,22 @@
...
@@ -214,10 +236,22 @@
},
},
...
mapGetters
([
'searchData'
,
'user'
])
...
mapGetters
([
'searchData'
,
'user'
])
},
},
mounted
()
{
async
mounted
()
{
this
.
fetchData
()
await
this
.
fetchData
()
await
this
.
initOnOffStatus
()
},
},
methods
:
{
methods
:
{
// 初始化用户上下线状态
async
initOnOffStatus
()
{
const
userId
=
this
.
user
.
userId
const
result
=
await
API
.
initApproveOnOff
({
userId
})
if
(
result
.
success
)
{
console
.
log
(
result
,
'当前的用户状态'
)
const
{
userDutyState
}
=
result
.
result
this
.
isOnLine
=
userDutyState
===
'ONLINE'
;
}
},
onSearch
()
{
onSearch
()
{
const
{
time
}
=
this
.
queryForm
const
{
time
}
=
this
.
queryForm
this
.
queryForm
.
current
=
1
this
.
queryForm
.
current
=
1
...
@@ -231,16 +265,17 @@
...
@@ -231,16 +265,17 @@
this
.
fetchData
()
this
.
fetchData
()
},
},
handleView
(
row
)
{
handleView
(
row
)
{
const
{
app
No
}
=
row
const
{
credit
No
}
=
row
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/approval/detail'
,
path
:
'/approval/detail'
,
query
:
{
app
No
}
query
:
{
credit
No
}
})
})
},
},
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
this
.
queryForm
.
current
=
val
this
.
fetchData
()
this
.
fetchData
()
},
},
// 初始化列表数据
async
fetchData
()
{
async
fetchData
()
{
this
.
listLoading
=
true
this
.
listLoading
=
true
const
form
=
this
.
queryForm
const
form
=
this
.
queryForm
...
@@ -253,10 +288,6 @@
...
@@ -253,10 +288,6 @@
this
.
total
=
total
this
.
total
=
total
this
.
listLoading
=
false
this
.
listLoading
=
false
},
},
// 转派弹框
async
handleClick
(
row
)
{
this
.
visible
=
true
},
// 修改上下线状态
// 修改上下线状态
async
handleChangeOnLineStatus
(
e
)
{
async
handleChangeOnLineStatus
(
e
)
{
const
userId
=
this
.
user
.
userId
const
userId
=
this
.
user
.
userId
...
@@ -271,6 +302,16 @@
...
@@ -271,6 +302,16 @@
Vue
.
prototype
.
$baseMessage
(
msg
,
'success'
)
Vue
.
prototype
.
$baseMessage
(
msg
,
'success'
)
}
}
},
// 申述
handleApproval
(
row
)
{
this
.
ApprovalItem
=
row
this
.
ApprovalVisible
=
true
},
// 转派
handleReassignment
(
row
)
{
this
.
visible
=
true
this
.
item
=
row
}
}
}
}
}
}
...
...
src/views/credit/approval-detail.vue
0 → 100644
View file @
73545cd7
<
template
>
<div
v-if=
'detail!==null'
class=
'page'
>
<!--用户基础信息-->
<template
v-if=
'detail.clientDetail!==null'
>
<user-base-info
:base-info=
'detail.clientDetail'
/>
</
template
>
<!--用户项目信息-->
<
template
v-if=
'detail.projectInfoResponse!==null'
>
<user-project-info
:project-info=
'detail.projectInfoResponse'
/>
</
template
>
<!--其它信息-->
<user-other-info
:info=
'detail'
/>
<!--操作日志-->
<
template
v-if=
'detail.operationLogResponse!==null'
>
<operation-log
:log-data=
'detail.operationLogResponse'
/>
</
template
>
<!--申述操作-->
<
template
v-if=
'false'
>
<pre-plead
/>
</
template
>
</div>
</template>
<
script
>
import
API
from
'@/server/api'
export
default
{
name
:
'PreDetail'
,
data
()
{
return
{
creditNo
:
''
,
detail
:
null
}
},
async
created
()
{
const
{
query
}
=
this
.
$route
if
(
query
&&
query
.
creditNo
)
{
this
.
creditNo
=
query
.
creditNo
await
this
.
init
()
}
},
methods
:
{
async
init
()
{
const
creditNo
=
this
.
creditNo
const
result
=
await
API
.
creditDetail
({
creditNo
})
this
.
detail
=
result
.
result
}
}
}
</
script
>
<
style
lang=
'scss'
src=
'./index.scss'
></
style
>
src/views/credit/
order
.vue
→
src/views/credit/
approval
.vue
View file @
73545cd7
This diff is collapsed.
Click to expand it.
src/views/credit/detail.vue
View file @
73545cd7
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
<!--操作日志-->
<!--操作日志-->
<
template
v-if=
'detail.operationLogResponse!==null'
>
<
template
v-if=
'detail.operationLogResponse!==null'
>
<operation-log
:data=
'detail.operationLogResponse'
/>
<operation-log
:
log-
data=
'detail.operationLogResponse'
/>
</
template
>
</
template
>
<!--申述操作-->
<!--申述操作-->
...
...
src/views/credit/list.vue
View file @
73545cd7
This diff is collapsed.
Click to expand it.
src/views/credit/pre-detail.vue
View file @
73545cd7
...
@@ -17,7 +17,19 @@
...
@@ -17,7 +17,19 @@
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信类型'
>
{{
detail
.
preBasisInfoResponse
.
creditTypeStr
}}
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信类型'
>
{{
detail
.
preBasisInfoResponse
.
creditTypeStr
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信状态'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信状态'
>
<span
style=
'margin-right: 10px'
>
{{
detail
.
preBasisInfoResponse
.
preStateStr
}}
</span>
<el-tag
v-if=
'detail.preBasisInfoResponse.preStateStr==="授信中"'
type=
'warning'
>
{{
detail
.
preBasisInfoResponse
.
preStateStr
}}
</el-tag>
<el-tag
v-else-if=
'detail.preBasisInfoResponse.preStateStr==="授信通过"'
type=
'success'
>
{{
detail
.
preBasisInfoResponse
.
preStateStr
}}
</el-tag>
<el-tag
v-else-if=
'detail.preBasisInfoResponse.preStateStr==="授信拒绝"'
type=
'danger'
>
{{
detail
.
preBasisInfoResponse
.
preStateStr
}}
</el-tag>
<template
v-if=
'detail.preBasisInfoResponse.preState === "PRE_CREDIT_REFUSE"'
>
<template
v-if=
'detail.preBasisInfoResponse.preState === "PRE_CREDIT_REFUSE"'
>
<el-button
@
click=
'handlePlead'
size=
'mini'
type=
'primary'
>
申述
</el-button>
<el-button
@
click=
'handlePlead'
size=
'mini'
type=
'primary'
>
申述
</el-button>
</
template
>
</
template
>
...
...
src/views/credit/pre.vue
View file @
73545cd7
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
</el-form-item>
<el-form-item
prop=
'preStatus'
v-if=
'searchData!==null
'
label=
'授信状态'
>
<el-form-item
v-if=
'searchData!==null'
prop=
'preStatus
'
label=
'授信状态'
>
<el-select
v-model=
'queryForm.preStatus'
clearable
placeholder=
'请选择授信状态'
>
<el-select
v-model=
'queryForm.preStatus'
clearable
placeholder=
'请选择授信状态'
>
<el-option
<el-option
v-for=
'(item,index) in searchData.preStatusList'
v-for=
'(item,index) in searchData.preStatusList'
...
...
src/views/loan/list.vue
View file @
73545cd7
...
@@ -17,6 +17,19 @@
...
@@ -17,6 +17,19 @@
<el-input
v-model=
'queryForm.loanName'
clearable
placeholder=
'请输入客户手机号码'
/>
<el-input
v-model=
'queryForm.loanName'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
</el-form-item>
<template
v-if=
'searchData!==null'
>
<el-form-item
prop=
'capitalCode'
label=
'资金渠道'
>
<el-select
v-model=
'queryForm.capitalCode'
style=
'width: 100%;'
clearable
>
<el-option
v-for=
'(item,index) in searchData.financierResponseList'
:key=
'index'
:value=
'item.capitalCode'
:label=
'item.message'
>
</el-option>
</el-select>
</el-form-item>
</
template
>
<el-form-item
label=
'申请时间'
>
<el-form-item
label=
'申请时间'
>
<el-date-picker
<el-date-picker
...
@@ -125,6 +138,7 @@
...
@@ -125,6 +138,7 @@
<
script
>
<
script
>
import
_
from
'lodash'
import
_
from
'lodash'
import
API
from
'@/server/api'
import
API
from
'@/server/api'
import
{
mapGetters
}
from
'vuex'
export
default
{
export
default
{
name
:
'LoanAudit'
,
name
:
'LoanAudit'
,
...
@@ -217,7 +231,8 @@
...
@@ -217,7 +231,8 @@
time
:
''
,
time
:
''
,
startTime
:
''
,
startTime
:
''
,
endTime
:
''
,
endTime
:
''
,
userId
:
''
userId
:
''
,
capitalCode
:
''
}
}
}
}
},
},
...
@@ -231,7 +246,8 @@
...
@@ -231,7 +246,8 @@
})
})
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
)
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
)
//return finallyArray
//return finallyArray
}
},
...
mapGetters
([
'searchData'
,
'user'
])
},
},
mounted
()
{
mounted
()
{
this
.
fetchData
()
this
.
fetchData
()
...
@@ -250,9 +266,9 @@
...
@@ -250,9 +266,9 @@
this
.
fetchData
()
this
.
fetchData
()
},
},
handleDialog
(
row
)
{
handleDialog
(
row
)
{
const
{
realName
,
loanAmount
}
=
row
;
const
{
realName
,
loanAmount
}
=
row
console
.
log
(
row
,
'当前行信息'
);
console
.
log
(
row
,
'当前行信息'
)
this
.
DialogVisible
=
true
;
this
.
DialogVisible
=
true
},
},
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
...
...
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