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
93d0ed80
Commit
93d0ed80
authored
Jun 07, 2022
by
caimeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
预授信基本联调完成
parent
1df60a86
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
223 additions
and
168 deletions
+223
-168
common.scss
src/assets/common.scss
+4
-0
pre-operation-log.vue
src/components/pre-operation-log.vue
+18
-66
pre-plead.vue
src/components/pre-plead.vue
+112
-32
api.js
src/server/api.js
+1
-1
pre-detail.vue
src/views/credit/pre-detail.vue
+42
-16
pre.vue
src/views/credit/pre.vue
+46
-53
No files found.
src/assets/common.scss
View file @
93d0ed80
...
...
@@ -18,3 +18,7 @@
.com
{
padding-bottom
:
20px
;
}
.el-dialog__header
{
border-bottom
:
1px
solid
#ebeef5
;
}
src/components/pre-operation-log.vue
View file @
93d0ed80
...
...
@@ -21,32 +21,12 @@
:show-overflow-tooltip=
"!!item.overflow"
>
<template
#
default=
"
{ row }">
<div
v-if=
"item.label==='营业执照' || item.label==='小贷拍照' || item.label==='金融办批文'"
>
<el-image
style=
"width: 100px; height: 75px"
:src=
"row[item.prop]"
fit=
"fit"
/>
</div>
<div
v-else-if=
"item.label==='机构状态'"
>
<span>
{{
row
[
item
.
prop
]
===
"1"
?
'启用'
:
'禁用'
}}
</span>
</div>
<span
v-else
>
{{
row
[
item
.
prop
]
}}
</span>
<span
>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
</el-table-column>
</el-table>
<el-pagination
style=
'margin-bottom: 20px'
:current-page=
"queryForm.current"
:layout=
"layout"
:page-size=
"queryForm.size"
:total=
"total"
background
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</template>
...
...
@@ -55,54 +35,46 @@
import
API
from
'@/server/api'
export
default
{
name
:
'TableEdit'
,
name
:
'PreOperationLog'
,
props
:{
logData
:{
type
:
Array
,
require
:
true
}
},
data
()
{
return
{
checkList
:
[
"操作人员"
,
"操作类型"
,
"操作结果"
,
"
审批结果"
,
"
操作时间"
,
"备注"
],
checkList
:
[
"操作人员"
,
"操作类型"
,
"操作结果"
,
"操作时间"
,
"备注"
],
columns
:
[
{
order
:
1
,
label
:
"操作人员"
,
prop
:
"
tenantNo
"
prop
:
"
operationName
"
},
{
order
:
2
,
label
:
"操作类型"
,
prop
:
"
tenantFullName
"
prop
:
"
operationTypeStr
"
},
{
order
:
3
,
label
:
"操作结果"
,
prop
:
"tenantName"
},
{
order
:
4
,
label
:
"审批结果"
,
prop
:
"status"
prop
:
"operationResult"
},
{
order
:
5
,
label
:
"操作时间"
,
prop
:
"
businessLicenseUrl
"
,
prop
:
"
operationDate
"
,
overflow
:
true
},
{
order
:
6
,
label
:
"备注"
,
prop
:
"
status
"
prop
:
"
appealMemo
"
}
],
list
:
[],
listLoading
:
true
,
layout
:
"total, sizes, prev, pager, next, jumper"
,
total
:
1
,
queryForm
:
{
current
:
1
,
size
:
9
,
status
:
""
,
tenantName
:
""
,
tenantNo
:
""
}
}
},
computed
:
{
...
...
@@ -114,33 +86,13 @@
);
});
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
);
//return finallyArray;
}
},
created
()
{
//防止三级以上路由时多次走created
if
(
this
.
$route
.
name
===
this
.
$options
.
name
)
this
.
fetchData
();
},
mounted
()
{
this
.
fetchData
();
},
methods
:
{
handleSizeChange
(
val
)
{
this
.
queryForm
.
size
=
val
;
this
.
fetchData
();
},
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
;
this
.
fetchData
();
},
async
fetchData
()
{
//this.listLoading = true;
//const result = await API.merchant_list(this.queryForm);
//const { records, total } = result.result;
//this.list = records;
//this.total = total;
//this.listLoading = false;
if
(
this
.
logData
){
this
.
list
=
this
.
logData
;
this
.
listLoading
=
false
;
}
}
},
}
</
script
>
src/components/pre-plead.vue
View file @
93d0ed80
<!-- 预授信申述 -->
<
template
>
<div>
<!--图钉-->
<el-button
class=
'btn-fixed'
>
审核
</el-button>
<el-dialog
:visible
.
sync=
'dialogVisible'
:before-close=
'handleClose'
:destroy-on-close=
'true'
width=
'38%'
title=
'预授信申述'
>
<div
class=
'page'
>
<!--搜索-->
<block-header
title=
"申述"
/>
<el-form
label-suffix=
":"
label-width=
'120px'
:model=
"form"
class=
"form-inline"
>
<el-form-item
label=
"申述备注"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
clearable
placeholder=
"请输入申述备注"
/>
<el-form
ref=
'dForm'
label-suffix=
':'
label-width=
'90px'
:rules=
'rules'
:model=
'form'
class=
'form-inline'
>
<el-form-item
prop=
'appealMemo'
label=
'申述原因'
>
<el-input
v-model=
'form.appealMemo'
type=
'textarea'
clearable
placeholder=
'请输入申述备注'
/>
</el-form-item>
<el-form-item
label=
"审批意见"
>
<el-radio-group
v-model=
"form.opinion"
>
<el-radio
:label=
"3"
>
备选项
</el-radio>
<el-radio
:label=
"6"
>
备选项
</el-radio>
<el-radio
:label=
"9"
>
备选项
</el-radio>
<el-form-item
prop=
'approveOpinion'
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>
</el-form-item>
<el-form-item>
<el-button
icon=
"el-icon-search"
type=
"primary"
@
click=
"onSubmit"
>
提 交
</el-button>
</
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
API
from
'@/server/api'
import
_
from
'lodash'
import
{
mapGetters
}
from
'vuex'
export
default
{
name
:
"PrePlead"
,
name
:
'PrePlead'
,
props
:
{
dialogVisible
:
{
type
:
Boolean
,
require
:
true
},
//eslint-disable-next-line vue/require-default-prop
item
:
{
type
:
Object
,
require
:
true
}
},
data
()
{
return
{
rules
:
{
appealMemo
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入申述原因'
}
],
approveOpinion
:
[
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请选择审批意见'
}
]
},
form
:
{
remarks
:
1
,
opinion
:
9
appealMemo
:
''
,
approveOpinion
:
''
,
preCreditNo
:
''
,
userId
:
''
}
}
},
computed
:
{
...
mapGetters
([
'searchData'
,
'user'
])
},
mounted
()
{
if
(
this
.
item
!==
null
)
{
this
.
form
.
preCreditNo
=
this
.
item
.
preCreditNo
}
};
},
methods
:
{
onSubmit
(){}
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
>
<
style
lang=
'scss'
scoped
>
.page-fence
{
::v-deep
{
i
{
...
...
@@ -55,7 +135,7 @@
padding
:
20px
;
}
</
style
>
<
style
lang=
"scss"
>
<
style
lang=
'scss'
>
.custom-table-checkbox
{
.el-checkbox
{
display
:
block
!
important
;
...
...
src/server/api.js
View file @
93d0ed80
...
...
@@ -61,7 +61,7 @@ export default {
})
},
// 预授信申述
preCreditPlead
(
params
)
{
preCreditPlead
(
data
)
{
return
request
({
url
:
'/credit/preSubmit'
,
method
:
'post'
,
...
...
src/views/credit/pre-detail.vue
View file @
93d0ed80
...
...
@@ -2,16 +2,30 @@
<div
v-if=
'detail!==null'
class=
'page'
>
<block-header
title=
'基础信息'
/>
<el-descriptions
v-if=
'detail.preBasisInfoResponse!==null'
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'客户姓名'
>
{{
detail
.
preBasisInfoResponse
.
realName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'手机号码'
>
{{
detail
.
preBasisInfoResponse
.
mobile
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'身份证号'
>
{{
detail
.
preBasisInfoResponse
.
idCard
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'户籍地址'
>
{{
detail
.
preBasisInfoResponse
.
address
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请时间'
>
{{
detail
.
preBasisInfoResponse
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信类型'
>
{{
detail
.
preBasisInfoResponse
.
creditType
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信状态'
>
{{
detail
.
preBasisInfoResponse
.
preState
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户区域'
>
{{
detail
.
preBasisInfoResponse
.
regionName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'首次授信'
>
{{
detail
.
preBasisInfoResponse
.
realName
}}
</el-descriptions-item>
<el-descriptions
v-if=
'detail.preBasisInfoResponse!==null'
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'客户姓名'
>
{{
detail
.
preBasisInfoResponse
.
realName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'手机号码'
>
{{
detail
.
preBasisInfoResponse
.
mobile
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'身份证号'
>
{{
detail
.
preBasisInfoResponse
.
idCard
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'户籍地址'
>
{{
detail
.
preBasisInfoResponse
.
address
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'申请时间'
>
{{
detail
.
preBasisInfoResponse
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信类型'
>
{{
detail
.
preBasisInfoResponse
.
creditTypeStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'授信状态'
>
<span
style=
'margin-right: 10px'
>
{{
detail
.
preBasisInfoResponse
.
preStateStr
}}
</span>
<template
v-if=
'detail.preBasisInfoResponse.preState === "PRE_CREDIT_REFUSE"'
>
<el-button
@
click=
'handlePlead'
size=
'mini'
type=
'primary'
>
申述
</el-button>
</
template
>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'商户区域'
>
{{ detail.preBasisInfoResponse.regionName }}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'首次授信'
>
{{ detail.preBasisInfoResponse.realName }}
</el-descriptions-item>
</el-descriptions>
...
...
@@ -26,13 +40,16 @@
<!--操作日志-->
<div
v-if=
'detail.operationLogResponse && detail.operationLogResponse.length'
>
<operation-log
:
d
ata=
'detail.operationLogResponse'
/>
<operation-log
:
logD
ata=
'detail.operationLogResponse'
/>
</div>
<!--申述操作-->
<pre-plead
/>
<!--申述弹框-->
<pre-plead
:dialog-visible=
'visible'
:item=
'item'
@
handleClose=
'visible = false'
@
callback=
'init'
/>
</div>
</template>
...
...
@@ -43,6 +60,9 @@
name
:
'PreDetail'
,
data
()
{
return
{
visible
:
false
,
item
:
null
,
preCreditNo
:
''
,
detail
:
null
}
...
...
@@ -61,6 +81,12 @@
preCreditNo
})
this
.
detail
=
result
.
result
},
// 申述
handlePlead
()
{
this
.
item
=
this
.
detail
this
.
item
.
preCreditNo
=
this
.
preCreditNo
;
this
.
visible
=
true
}
}
}
...
...
src/views/credit/pre.vue
View file @
93d0ed80
...
...
@@ -3,30 +3,18 @@
<!--搜索-->
<block-header
title=
'搜索'
/>
<div
class=
'search'
>
<el-form
label-suffix=
':'
:inline=
'true'
:model=
'queryForm'
class=
'form-inline'
>
<el-form-item
label=
'授信编号'
>
<el-input
v-model=
'queryForm.creditNo'
clearable
placeholder=
'请输入授信编号'
/>
<el-form
ref=
'form'
label-suffix=
':'
:inline=
'true'
:model=
'queryForm'
class=
'form-inline'
>
<el-form-item
prop=
'preCreditNo'
label=
'授信编号'
>
<el-input
v-model=
'queryForm.preCreditNo'
clearable
placeholder=
'请输入授信编号'
/>
</el-form-item>
<el-form-item
label=
'客户姓名'
>
<el-input
v-model=
'queryForm.realName'
clearable
placeholder=
'请输入客户姓名'
/>
<el-form-item
prop=
'realName'
label=
'客户姓名'
>
<el-input
v-model=
'queryForm.realName'
clearable
placeholder=
'请输入客户姓名'
/>
</el-form-item>
<el-form-item
label=
'手机号码'
>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
<el-form-item
label=
'授信状态'
>
<el-select
clearable
v-model=
'queryForm.preStatus'
placeholder=
'请选择授信状态'
>
<el-form-item
prop=
'preStatus'
v-if=
'searchData!==null'
label=
'授信状态'
>
<el-select
v-model=
'queryForm.preStatus'
clearable
placeholder=
'请选择授信状态'
>
<el-option
v-for=
'(item,index) in searchData.preStatusList'
:label=
'item.preStatusStr'
...
...
@@ -34,9 +22,7 @@
:value=
'item.preStatus'
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
'申请时间'
>
<el-form-item
prop=
'time'
label=
'申请时间'
>
<el-date-picker
v-model=
'queryForm.time'
type=
'datetimerange'
...
...
@@ -51,14 +37,8 @@
</el-form-item>
<el-form-item>
<el-button
icon=
'el-icon-search'
type=
'primary'
@
click=
'onSubmit'
>
搜 索
</el-button>
<!--
<el-button
type=
"default"
@
click=
"onReset"
>
重置
</el-button>
-->
<el-button
icon=
'el-icon-search'
type=
'primary'
@
click=
'onSubmit'
>
搜 索
</el-button>
<el-button
icon=
'el-icon-delete'
type=
"default"
@
click=
"onReset('form')"
>
重置
</el-button>
</el-form-item>
</el-form>
</div>
...
...
@@ -83,15 +63,10 @@
:show-overflow-tooltip=
'!!item.overflow'
>
<template
#
default=
'
{ row }'>
<div
v-if=
"item.label==='营业执照' || item.label==='小贷拍照' || item.label==='金融办批文'"
>
<el-image
style=
'width: 100px; height: 75px'
:src=
'row[item.prop]'
fit=
'fit'
/>
</div>
<div
v-else-if=
"item.label==='机构状态'"
>
<span>
{{
row
[
item
.
prop
]
===
'1'
?
'启用'
:
'禁用'
}}
</span>
<div
v-if=
"item.prop==='preStatusStr'"
>
<el-tag
v-if=
'row[item.prop]==="授信中"'
type=
'warning'
>
{{
row
[
item
.
prop
]
}}
</el-tag>
<el-tag
v-else-if=
'row[item.prop]==="授信通过"'
type=
'success'
>
{{
row
[
item
.
prop
]
}}
</el-tag>
<el-tag
v-else-if=
'row[item.prop]==="授信拒绝"'
type=
'danger'
>
{{
row
[
item
.
prop
]
}}
</el-tag>
</div>
<span
v-else
>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
...
...
@@ -104,10 +79,15 @@
>
<
template
#
default=
'{ row }'
>
<el-button
type=
'text'
@
click=
'handleDetail(row)'
>
详情
</el-button>
<template
v-if=
'row.preStatusStr === "授信拒绝"'
>
<el-button
type=
'text'
@
click=
'handlePlead(row)'
>
申述
</el-button>
</
template
>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
:current-page=
'queryForm.current'
layout=
'total, prev, pager, next'
...
...
@@ -116,6 +96,16 @@
background
@
current-change=
'handleCurrentChange'
/>
<!-- 申述 -->
<!--申述弹框-->
<pre-plead
:dialog-visible=
'visible'
:item=
'item'
@
handleClose=
'visible = false'
@
callback=
'fetchData'
/>
</div>
</template>
...
...
@@ -129,7 +119,11 @@
name
:
'CreditPre'
,
data
()
{
return
{
checkList
:
[
'授信编号'
,
'客户姓名'
,
'手机号码'
,
'对应BD'
,
'商户区域'
,
'授信额度'
,
'申请时间'
,
'授信状态'
],
visible
:
false
,
item
:
null
,
checkList
:
[
'授信编号'
,
'客户姓名'
,
'手机号码'
,
'对应BD'
,
'商户区域'
,
'申请时间'
,
'授信状态'
],
columns
:
[
{
order
:
1
,
...
...
@@ -156,15 +150,11 @@
label
:
'商户区域'
,
prop
:
'regionName'
},
{
order
:
6
,
label
:
'授信额度'
,
prop
:
'creditLimit'
},
{
order
:
7
,
label
:
'申请时间'
,
prop
:
'applyDate'
prop
:
'applyDate'
,
width
:
110
,
},
{
order
:
8
,
...
...
@@ -187,8 +177,7 @@
realName
:
''
,
time
:
''
,
startTime
:
''
,
endTime
:
''
,
userId
:
''
endTime
:
''
}
}
...
...
@@ -202,16 +191,20 @@
)
})
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
)
//return finallyArray;
},
...
mapGetters
([
'searchData'
])
},
mounted
()
{
this
.
fetchData
()
console
.
log
(
this
.
searchData
,
'手上'
)
},
methods
:
{
// 申述弹框
handlePlead
(
row
){
this
.
item
=
row
;
this
.
visible
=
true
;
},
// 搜索
onSubmit
()
{
const
{
time
}
=
this
.
queryForm
;
this
.
queryForm
.
current
=
1
;
...
...
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