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
1df60a86
Commit
1df60a86
authored
Jun 07, 2022
by
caimeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
6.7日上午提交
parent
e0b54889
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
660 additions
and
944 deletions
+660
-944
theme.config.js
src/config/default/theme.config.js
+1
-1
index.js
src/router/index.js
+26
-25
api.js
src/server/api.js
+52
-153
index.vue
src/vab/components/Avatar/index.vue
+3
-3
index.vue
src/vab/components/TabsBar/index.vue
+1
-1
order.vue
src/views/approval/order.vue
+14
-60
index.vue
src/views/index/index.vue
+16
-16
audit.vue
src/views/loan/audit.vue
+252
-0
detail.vue
src/views/loan/detail.vue
+49
-286
list.vue
src/views/loan/list.vue
+246
-173
order.vue
src/views/loan/order.vue
+0
-226
No files found.
src/config/default/theme.config.js
View file @
1df60a86
...
...
@@ -23,6 +23,6 @@ const theme = {
//是否显示通知组件
showNotice
:
false
,
//是否显示全屏组件
showFullScreen
:
fals
e
,
showFullScreen
:
tru
e
,
}
module
.
exports
=
theme
src/router/index.js
View file @
1df60a86
...
...
@@ -81,7 +81,7 @@ export const asyncRoutes = [
meta
:
{
title
:
'授信管理'
,
remixIcon
:
'home-4-line'
,
noKeepAlive
:
true
noKeepAlive
:
true
},
children
:
[
{
...
...
@@ -89,7 +89,7 @@ export const asyncRoutes = [
name
:
'CreditPre'
,
component
:
()
=>
import
(
'@/views/credit/pre'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'预授信审核'
}
},
...
...
@@ -98,7 +98,7 @@ export const asyncRoutes = [
name
:
'CreditList'
,
component
:
()
=>
import
(
'@/views/credit/list'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'授信审核'
}
},
...
...
@@ -107,16 +107,17 @@ export const asyncRoutes = [
name
:
'CreditOrder'
,
component
:
()
=>
import
(
'@/views/credit/order'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'我的审批'
}
},
hidden
:
true
},
{
path
:
'detail'
,
name
:
'CreditDetail'
,
component
:
()
=>
import
(
'@/views/credit/detail'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'授信详情'
,
remixIcon
:
'building-line'
,
tagHidden
:
true
...
...
@@ -129,7 +130,7 @@ export const asyncRoutes = [
name
:
'CreditPreDetail'
,
component
:
()
=>
import
(
'@/views/credit/pre-detail'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'预授信详情'
,
remixIcon
:
'building-line'
,
tagHidden
:
true
...
...
@@ -145,7 +146,7 @@ export const asyncRoutes = [
redirect
:
'/approval/order'
,
alwaysShow
:
true
,
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'审批管理'
,
remixIcon
:
'home-4-line'
},
...
...
@@ -155,7 +156,7 @@ export const asyncRoutes = [
name
:
'ApprovalList'
,
component
:
()
=>
import
(
'@/views/approval/order'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'我的订单'
,
remixIcon
:
'product-hunt-line'
}
...
...
@@ -174,7 +175,7 @@ export const asyncRoutes = [
name
:
'ApprovalDetail'
,
component
:
()
=>
import
(
'@/views/approval/detail'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'详情'
,
remixIcon
:
'product-hunt-line'
},
...
...
@@ -188,38 +189,38 @@ export const asyncRoutes = [
component
:
Layout
,
redirect
:
'/loan/list'
,
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'借款管理'
,
remixIcon
:
'home-4-line'
},
children
:
[
{
path
:
'list'
,
name
:
'loanList'
,
component
:
()
=>
import
(
'@/views/loan/list'
),
meta
:
{
noKeepAlive
:
true
,
title
:
'稽核审批'
,
remixIcon
:
'task-line'
}
},
{
path
:
'detail'
,
name
:
'loanDetail'
,
component
:
()
=>
import
(
'@/views/loan/detail'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'详情'
,
remixIcon
:
'task-line'
},
hidden
:
true
},
{
path
:
'
order
'
,
path
:
'
audit
'
,
name
:
'loanOrder'
,
component
:
()
=>
import
(
'@/views/loan/order'
),
component
:
()
=>
import
(
'@/views/loan/audit'
),
meta
:
{
noKeepAlive
:
true
,
title
:
'稽核审批'
,
remixIcon
:
'task-line'
}
},
{
path
:
'list'
,
name
:
'loanList'
,
component
:
()
=>
import
(
'@/views/loan/list'
),
meta
:
{
noKeepAlive
:
true
,
noKeepAlive
:
true
,
title
:
'放款确认'
,
remixIcon
:
'task-line'
}
...
...
src/server/api.js
View file @
1df60a86
...
...
@@ -42,159 +42,6 @@ export default {
params
})
},
// 商户列表
merchant_list
(
data
)
{
return
request
({
url
:
'/macy/selectMacyList'
,
method
:
'post'
,
data
})
},
// 商户新增
merchant_add
(
data
)
{
return
request
({
url
:
'/macy/createdMacy'
,
method
:
'post'
,
data
})
},
// 商户更新
merchant_update
(
data
)
{
return
request
({
url
:
'/macy/editMacy'
,
method
:
'post'
,
data
})
},
// 商户详情
merchant_view
(
params
)
{
return
request
({
url
:
'/macy/selectMacyByTenantNo'
,
method
:
'get'
,
params
})
},
// 产品列表
merchant_select
(
params
)
{
return
request
({
url
:
'/macy/selectList'
,
method
:
'get'
,
params
})
},
// 产品列表
prod_list
(
data
)
{
return
request
({
url
:
'/macy/selectProductPageList'
,
method
:
'post'
,
data
})
},
// 产品新增
prod_add
(
data
)
{
return
request
({
url
:
'/macy/createdProductInfo'
,
method
:
'post'
,
data
})
},
// 产品编辑
prod_update
(
data
)
{
return
request
({
url
:
'/macy/editProductInfo'
,
method
:
'post'
,
data
})
},
// 产品上下架
prod_switch_upDown
(
params
)
{
return
request
({
url
:
'/macy/editProductInfoByStatus'
,
method
:
'get'
,
params
})
},
// 产品查看
prod_view
(
params
)
{
return
request
({
url
:
'/macy/selectProductInfoByappNo'
,
method
:
'get'
,
params
})
},
// 申请列表
apply_list
(
data
)
{
return
request
({
url
:
'/zeus/pageQueryApply'
,
method
:
'post'
,
data
})
},
// 推送
apply_push
(
params
)
{
return
request
({
url
:
'/zeus/applyRetryPush'
,
method
:
'get'
,
params
})
},
// 公告列表
notice_list
(
data
)
{
return
request
({
url
:
'/smgw/getBackPageList'
,
method
:
'post'
,
data
})
},
// 公告发送
notice_add
(
data
)
{
return
request
({
url
:
'/smgw/sendZnx'
,
method
:
'post'
,
data
})
},
// 公告编辑
notice_detail
(
data
)
{
return
request
({
url
:
'/smgw/getNotice'
,
method
:
'post'
,
data
})
},
// 公告编辑
notice_edit
(
data
)
{
return
request
({
url
:
'/smgw/updateNotice'
,
method
:
'post'
,
data
})
},
// 回现APP设置
app_setting
(
params
)
{
return
request
({
url
:
'/manage/getList'
,
method
:
'get'
,
params
})
},
// 变更状态
app_setting_update
(
data
)
{
return
request
({
url
:
'/manage/update'
,
method
:
'post'
,
data
})
},
// 变更状态
dict
(
params
)
{
return
request
({
url
:
'/dictData/selectBydictType'
,
method
:
'get'
,
params
})
},
/** 授信管理接口 **/
// 预授信列表
...
...
@@ -295,6 +142,58 @@ export default {
method
:
'post'
,
data
})
},
// 借款管理接口
// 借款审批列表
loanAuditList
(
data
)
{
return
request
({
url
:
'/loan/auditAllotList'
,
method
:
'post'
,
data
})
},
// 借款详情
loanDetail
(
params
)
{
return
request
({
url
:
'/loan/auditDetail'
,
method
:
'get'
,
params
})
},
// 借款审核提交
loanAuditSubmit
(
data
)
{
return
request
({
url
:
'/loan/auditAllot'
,
method
:
'post'
,
data
})
},
// 放款确认列表
loanConfirmList
(
data
)
{
return
request
({
url
:
'/loan/loanConfirmList'
,
method
:
'post'
,
data
})
},
// 确认放款
loanConfirm
(
data
)
{
return
request
({
url
:
'/loan/confirmLoan'
,
method
:
'post'
,
data
})
},
// 取消放款
loanCancel
(
data
)
{
return
request
({
url
:
'/loan/cancelLoan'
,
method
:
'post'
,
data
})
}
}
src/vab/components/Avatar/index.vue
View file @
1df60a86
<
template
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"avatar-dropdown"
>
<
!--
<img
:src=
"avatar"
alt=
""
class=
"user-avatar"
/>
--
>
<
img
:src=
"avatar"
alt=
""
class=
"user-avatar"
/
>
<div
class=
"user-name"
>
{{
username
}}
<vab-remix-icon
icon-class=
"arrow-down-s-line"
/>
...
...
@@ -72,8 +72,8 @@
justify-items
:
center
;
.user-avatar
{
width
:
40
px
;
height
:
40
px
;
width
:
26
px
;
height
:
26
px
;
margin-left
:
15px
;
cursor
:
pointer
;
border-radius
:
50%
;
...
...
src/vab/components/TabsBar/index.vue
View file @
1df60a86
...
...
@@ -17,7 +17,7 @@
></el-tab-pane>
</el-tabs>
<el-dropdown
@
command=
"handleCommand"
>
<el-dropdown
v-if=
'false'
@
command=
"handleCommand"
>
<span
class=
"more"
>
{{
translateTitle
(
'更多'
)
}}
<vab-remix-icon
icon-class=
"arrow-down-s-line"
></vab-remix-icon>
...
...
src/views/approval/order.vue
View file @
1df60a86
...
...
@@ -86,63 +86,19 @@
:show-overflow-tooltip=
'!!item.overflow'
>
<template
#
default=
'
{ row }'>
<div
v-if=
"item.label==='LOGO'"
>
<el-image
style=
'width: 50px; height: 35px'
:src=
'row[item.prop]'
fit=
'fit'
/>
</div>
<div
v-else-if=
"item.label==='产品状态'"
>
<el-tag
v-if=
"row[item.prop] === '1'"
type=
'success'
size=
'mini'
>
启用
</el-tag>
<el-tag
v-else
type=
'info'
size=
'mini'
>
禁用
</el-tag>
</div>
<span
v-else
>
{{
row
[
item
.
prop
]
}}
</span>
<span>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
'210'
fixed=
'right'
align=
'center'
label=
'操作'
>
<
template
#
default=
'{ row }'
>
<el-button
size=
'mini'
type=
'danger'
@
click=
'handleView(row)'
>
审批
</el-button>
<el-button
size=
'mini'
type=
'success'
@
click=
'handleView(row)'
>
详情
</el-button>
<el-button
size=
'mini'
type=
'primary'
@
click=
'handleClick(row)'
>
转派
</el-button>
</
template
>
</el-table-column>
<
template
v-if=
'isOnLine'
>
<el-table-column
width=
'210'
fixed=
'right'
align=
'center'
label=
'操作'
>
<template
#
default=
'
{ row }'>
<el-button
size=
'mini'
type=
'danger'
@
click=
'handleView(row)'
>
审批
</el-button>
<el-button
size=
'mini'
type=
'success'
@
click=
'handleView(row)'
>
详情
</el-button>
<el-button
size=
'mini'
type=
'primary'
@
click=
'handleClick(row)'
>
转派
</el-button>
</
template
>
</el-table-column>
</template>
</el-table>
<!--分页-->
...
...
@@ -308,13 +264,11 @@
const
result
=
await
API
.
approveOnOff
({
userId
,
userDutyState
})
;
})
if
(
result
.
success
){
Vue
.
prototype
.
$baseMessage
(
'操作成功'
,
'success'
)
if
(
result
.
success
)
{
const
msg
=
userDutyState
===
'ONLINE'
?
'已上线'
:
'已下线'
Vue
.
prototype
.
$baseMessage
(
msg
,
'success'
)
}
}
...
...
src/views/index/index.vue
View file @
1df60a86
...
...
@@ -2,22 +2,22 @@
<div
class=
"index-container"
>
<el-row
:gutter=
"20"
>
<page-header></page-header>
<
el-col
:lg=
"6"
:md=
"12"
:sm=
"24"
:xl=
"6"
:xs=
"24"
>
<chart1></chart1
>
<
/el-col
>
<
el-col
:lg=
"6"
:md=
"12"
:sm=
"24"
:xl=
"6"
:xs=
"24"
>
<chart2></chart2
>
<
/el-col
>
<
el-col
:lg=
"12"
:md=
"24"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
<version-information></version-information
>
<
/el-col
>
<
icon-list></icon-list
>
<
el-col
:lg=
"12"
:md=
"12"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
<chart3></chart3
>
<
/el-col
>
<
el-col
:lg=
"12"
:md=
"12"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
<my-project></my-project
>
<
/el-col
>
<
!--
<el-col
:lg=
"6"
:md=
"12"
:sm=
"24"
:xl=
"6"
:xs=
"24"
>
--
>
<!--
<chart1></chart1>
--
>
<
!--
</el-col>
--
>
<
!--
<el-col
:lg=
"6"
:md=
"12"
:sm=
"24"
:xl=
"6"
:xs=
"24"
>
--
>
<!--
<chart2></chart2>
--
>
<
!--
</el-col>
--
>
<
!--
<el-col
:lg=
"12"
:md=
"24"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
--
>
<!--
<version-information></version-information>
--
>
<
!--
</el-col>
--
>
<
!--
<icon-list></icon-list>
--
>
<
!--
<el-col
:lg=
"12"
:md=
"12"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
--
>
<!--
<chart3></chart3>
--
>
<
!--
</el-col>
--
>
<
!--
<el-col
:lg=
"12"
:md=
"12"
:sm=
"24"
:xl=
"12"
:xs=
"24"
>
--
>
<!--
<my-project></my-project>
--
>
<
!--
</el-col>
--
>
</el-row>
</div>
</
template
>
...
...
src/views/loan/audit.vue
0 → 100644
View file @
1df60a86
<
template
>
<div
class=
'page-fence'
>
<!--搜索-->
<block-header
title=
'搜索'
/>
<div
class=
'search'
>
<el-form
ref=
'form'
label-suffix=
':'
:inline=
'true'
:model=
'queryForm'
class=
'form-inline'
>
<el-form-item
prop=
'loanNo'
label=
'借款编号'
>
<el-input
v-model=
'queryForm.loanNo'
clearable
placeholder=
'请输入借款编号'
/>
</el-form-item>
<el-form-item
prop=
'clientName'
label=
'客户姓名'
>
<el-input
v-model=
'queryForm.clientName'
clearable
placeholder=
'请输入客户姓名'
/>
</el-form-item>
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
<el-form-item
prop=
'loanName'
label=
'项目名称'
>
<el-input
v-model=
'queryForm.loanName'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
<el-form-item
label=
'申请时间'
>
<el-date-picker
v-model=
'queryForm.time'
type=
'datetimerange'
:picker-options=
'pickerConfig'
:default-time=
"['00:00:00', '23:59:59']"
value-format=
'yyyy-MM-dd HH:mm:ss'
range-separator=
'至'
start-placeholder=
'开始时间'
end-placeholder=
'结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
icon=
'el-icon-search'
type=
'primary'
@
click=
'onSearch'
>
搜 索
</el-button>
<el-button
icon=
'el-icon-delete'
type=
'default'
@
click=
"onReset('form')"
>
重 置
</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<block-header
title=
'借款列表'
/>
<el-table
ref=
'tableSort'
v-loading=
'listLoading'
border
:data=
'list'
style=
'width: 100%'
>
<el-table-column
v-for=
'(item, index) in finallyColumns'
:key=
'index'
align=
'center'
:label=
'item.label'
:sortable=
'item.sortable'
:width=
'item.width'
:fixed=
'!!item.fixed'
:show-overflow-tooltip=
'!!item.overflow'
>
<template
#
default=
'
{ row }'>
<span>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
</el-table-column>
<el-table-column
fixed=
'right'
align=
'center'
label=
'操作'
>
<
template
#
default=
'{ row }'
>
<el-button
type=
"text"
@
click=
"handleDetail(row)"
>
详情
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-pagination
:current-page=
'queryForm.current'
layout=
'total, prev, pager, next'
:page-size=
'queryForm.size'
:total=
'total'
background
@
current-change=
'handleCurrentChange'
/>
</div>
</template>
<
script
>
import
_
from
'lodash'
import
{
doDelete
,
getList
}
from
'@/api/table'
import
API
from
'@/server/api'
export
default
{
name
:
'LoanAudit'
,
data
()
{
return
{
checkList
:
[
'借款编号'
,
'项目名称'
,
'客户姓名'
,
'手机号码'
,
'借款金额'
,
'借款期数'
,
'BD姓名'
,
'商户区域'
,
'创建时间'
,
'借款状态'
,
'资金渠道'
],
columns
:
[
{
order
:
1
,
label
:
'借款编号'
,
prop
:
'loanNo'
},
{
order
:
2
,
label
:
'项目名称'
,
prop
:
'loanName'
},
{
order
:
3
,
label
:
'客户姓名'
,
prop
:
'realName'
},
{
order
:
4
,
label
:
'手机号码'
,
prop
:
'mobile'
},
{
order
:
5
,
label
:
'借款金额'
,
prop
:
'loanAmount'
},
{
order
:
6
,
label
:
'借款期数'
,
prop
:
'loanNum'
},
{
order
:
7
,
label
:
'BD姓名'
,
prop
:
'bdName'
},
{
order
:
8
,
label
:
'商户区域'
,
prop
:
'regionName'
},
{
order
:
9
,
label
:
'创建时间'
,
prop
:
'gmtCreated'
},
{
order
:
10
,
label
:
'借款状态'
,
prop
:
'loanStatus'
},
{
order
:
11
,
label
:
'资金渠道'
,
prop
:
'loanSign'
}
],
list
:
[],
listLoading
:
true
,
pickerConfig
:
this
.
datePickerOptions
,
total
:
1
,
queryForm
:
{
current
:
1
,
size
:
10
,
mobile
:
''
,
loanNo
:
''
,
loanName
:
''
,
clientName
:
''
,
time
:
''
,
startTime
:
''
,
endTime
:
''
,
userId
:
''
}
}
},
computed
:
{
finallyColumns
()
{
let
finallyArray
=
[]
this
.
checkList
.
forEach
((
checkItem
)
=>
{
finallyArray
.
push
(
this
.
columns
.
filter
((
item
)
=>
item
.
label
===
checkItem
)[
0
]
)
})
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
)
//return finallyArray
}
},
mounted
()
{
this
.
fetchData
()
},
methods
:
{
onSearch
()
{
const
{
time
}
=
this
.
queryForm
this
.
queryForm
.
current
=
1
if
(
time
)
{
this
.
queryForm
.
startTime
=
time
[
0
]
this
.
queryForm
.
endTime
=
time
[
1
]
}
else
{
this
.
queryForm
.
startTime
=
''
this
.
queryForm
.
endTime
=
''
}
this
.
fetchData
()
},
handleDetail
(
row
)
{
const
{
loanNo
}
=
row
this
.
$router
.
push
({
path
:
'/loan/detail'
,
query
:
{
loanNo
}
})
},
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
this
.
fetchData
()
},
async
fetchData
()
{
this
.
listLoading
=
true
const
form
=
this
.
queryForm
const
params
=
Object
.
assign
({},
form
)
delete
params
.
time
const
result
=
await
API
.
loanAuditList
({
...
params
})
const
{
records
,
total
}
=
result
.
result
this
.
list
=
records
this
.
total
=
total
this
.
listLoading
=
false
}
}
}
</
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/views/loan/detail.vue
View file @
1df60a86
<
template
>
<div
class=
"merchant-new"
>
<el-form
ref=
"h5form"
label-suffix=
":"
:rules=
"rules"
:model=
"form"
label-width=
"120px"
>
<block-header
title=
"对接信息"
/>
<el-form-item
class=
"form-item"
label=
"对接机构"
>
<el-select
v-model=
"form.tenantNo"
:disabled=
"!!appNo"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in merchant"
:key=
"index"
:label=
"item.tenantName"
:value=
"item.tenantNo"
/>
</el-select>
</el-form-item>
<el-form-item
class=
"form-item"
label=
"对接方式"
>
<el-select
v-model=
"form.abutmentWay"
:disabled=
"!!appNo"
placeholder=
"请选择"
>
<el-option
label=
"API"
value=
"API"
/>
<el-option
label=
"H5"
value=
"H5"
/>
</el-select>
</el-form-item>
</el-form>
<div
v-if=
'detail!==null'
class=
'page'
>
<block-header
title=
'项目信息'
/>
<el-descriptions
style=
'margin-bottom: 20px;'
border
size=
'small'
:column=
'3'
>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'借款编号'
>
{{
baseInfo
.
applyDate
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'项目名称'
>
{{
baseInfo
.
creditTypeStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'借款申请时间'
>
{{
baseInfo
.
creditStatusStr
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'借款状态'
>
{{
baseInfo
.
realName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'医院名称'
>
{{
baseInfo
.
mobile
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'项目金额(元)'
>
{{
baseInfo
.
idCard
}}
</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
.
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
.
companyName
}}
</el-descriptions-item>
<el-descriptions-item
label-class-name=
'labelCls'
label=
'手术时间'
>
{{
baseInfo
.
liveAddress
}}
</el-descriptions-item>
</el-descriptions>
<block-header
title=
'客户信息'
/>
<block-header
title=
'资方信息'
/>
<block-header
title=
'收款账户信息'
/>
<block-header
title=
'还款账户信息'
/>
<block-header
title=
'客户经理信息(BD)'
/>
</div>
</
template
>
<
script
>
import
BlockHeader
from
"@/components/blockHeader"
;
import
API
from
"@/server/api"
;
const
$API
=
process
.
env
.
VUE_APP_API_PATH
;
export
default
{
name
:
"MerchantNew"
,
components
:
{
"block-header"
:
BlockHeader
},
data
()
{
return
{
uploadUrl
:
`
${
$API
}
/sysUser/upload`
,
appNo
:
''
,
form
:
{
tenantNo
:
""
,
abutmentWay
:
""
,
gradeSort
:
"3"
,
appLogo
:
""
,
appName
:
"MC产品"
,
appInfo
:
"产品介绍"
,
abstratInfo
:
"产品摘要"
,
applyAmtMin
:
"300"
,
applyAmtMax
:
"500"
,
withdrawSpan
:
"1000"
,
incomeCount
:
"1000"
,
approvalTime
:
"1000"
,
raiseTimeMax
:
"7"
,
raiseTimeMin
:
"5"
,
memo
:
"1000"
,
customerNumbers
:
"400"
,
// 客服电话
creditWay
:
1
// 授信方式
},
rules
:
{
tenantNo
:
[{
required
:
true
,
message
:
"请选择机构名称"
,
trigger
:
"change"
}],
abutmentWay
:
[{
required
:
true
,
message
:
"请选择对接方式"
,
trigger
:
"change"
}],
appName
:
[{
required
:
true
,
message
:
"请输入产品名称"
,
trigger
:
"blur"
}],
appLogo
:
[{
required
:
true
,
message
:
"请上传产品LOGO图片"
,
trigger
:
"blur"
}],
appInfo
:
[{
required
:
true
,
message
:
"请输入产品描述"
,
trigger
:
"blur"
}],
abstratInfo
:
[{
required
:
true
,
message
:
"请输入产品摘要"
,
trigger
:
"blur"
}],
customerNumbers
:
[{
required
:
true
,
message
:
"请输入客服电话"
,
trigger
:
"blur"
}],
creditWay
:
[{
required
:
true
,
message
:
"请选择授信方式"
,
trigger
:
"blur"
}],
gradeSort
:
[
{
required
:
true
,
message
:
"请输入产品等级"
,
trigger
:
"blur"
}
],
raiseTimeMin
:
[
{
required
:
true
,
message
:
"请输入时间"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
>=
this
.
form
.
raiseTimeMax
*
1
)
{
callback
(
new
Error
(
"时间不大于最大时间"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
raiseTimeMax
:
[
{
required
:
true
,
message
:
"请输入时间"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
<=
this
.
form
.
raiseTimeMin
*
1
)
{
callback
(
new
Error
(
"时间不小于最小时间"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
applyAmtMin
:
[
{
required
:
true
,
message
:
"请输入额度"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
>=
this
.
form
.
applyAmtMax
*
1
)
{
callback
(
new
Error
(
"额度必须小于最大额度"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
applyAmtMax
:
[
{
required
:
true
,
message
:
"请输入额度"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
<=
this
.
form
.
applyAmtMin
*
1
)
{
callback
(
new
Error
(
"额度必须大于最小额度"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
incomeTimeBefore
:
[
{
required
:
true
,
message
:
"请输入时间"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
>=
this
.
form
.
incomeTimeLate
*
1
)
{
callback
(
new
Error
(
"时间须小于结束时间"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
incomeTimeLate
:
[
{
required
:
true
,
message
:
"请输入时间"
,
trigger
:
"blur"
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
*
1
<=
this
.
form
.
incomeTimeBefore
*
1
)
{
callback
(
new
Error
(
"时间须大于开始时间"
));
}
else
{
callback
();
}
},
trigger
:
"change"
}
],
withdrawSpan
:
[{
required
:
true
,
message
:
"请输入提现跨度"
,
trigger
:
"blur"
}],
approvalTime
:
[{
required
:
true
,
message
:
"请输入申请时间"
,
trigger
:
"blur"
}],
incomeCount
:
[{
required
:
true
,
message
:
"请输入每日进件上限"
,
trigger
:
"blur"
}]
},
merchant
:
[]
};
},
async
created
()
{
// 初始化机构列表
await
this
.
initMerchant
();
// 再请求表单
const
{
query
}
=
this
.
$route
;
if
(
query
&&
query
.
appNo
)
{
this
.
appNo
=
query
.
appNo
;
await
this
.
initProd
();
await
this
.
initDict
(
"SYS_USER_SEX"
);
await
this
.
initDict
(
"EDUCATIONAL"
);
await
this
.
initDict
(
"MONTHLY_INCOME"
);
await
this
.
initDict
(
"MARRIAGE"
);
await
this
.
initDict
(
"REGION"
);
}
},
methods
:
{
// 初始化机构列表
async
initMerchant
()
{
const
result
=
await
API
.
merchant_select
();
if
(
result
.
success
)
{
this
.
merchant
=
result
.
result
;
}
},
// 初始化产品信息
async
initProd
()
{
const
appNo
=
this
.
appNo
;
const
{
result
,
success
}
=
await
API
.
prod_view
({
appNo
});
if
(
success
)
{
//result.creditWay = result.creditWay+'';
this
.
form
=
result
;
}
},
// 初始化字典
async
initDict
(
dictType
)
{
const
result
=
await
API
.
dict
({
dictType
});
if
(
result
.
success
)
{
const
data
=
result
.
result
;
switch
(
dictType
)
{
case
"SYS_USER_SEX"
:
this
.
dict
.
sex
=
data
;
break
;
case
"EDUCATIONAL"
:
this
.
dict
.
edu
=
data
;
break
;
case
"MARRIAGE"
:
this
.
dict
.
marriage
=
data
;
break
;
case
"REGION"
:
this
.
dict
.
region
=
data
;
break
;
case
"MONTHLY_INCOME"
:
this
.
dict
.
money
=
data
;
break
;
}
import
API
from
'@/server/api'
export
default
{
name
:
'LoanDetail'
,
data
()
{
return
{
loanNo
:
''
,
detail
:
null
}
},
async
created
()
{
const
{
query
}
=
this
.
$route
if
(
query
&&
query
.
loanNo
)
{
this
.
loanNo
=
query
.
loanNo
handleSuccessLogo
(
res
)
{
this
.
form
.
appLogo
=
res
.
result
;
},
beforeAvatarUpload
(
file
)
{
const
isJPG
=
file
.
type
===
"image/jpeg"
;
const
isPNG
=
file
.
type
===
"image/png"
;
const
isLt2M
=
file
.
size
/
1024
/
1024
<
2
;
if
(
!
isJPG
&&
!
isPNG
)
{
this
.
$message
.
error
(
"上传图片只能是 JPG 或者 PNG 格式!"
);
return
false
;
}
if
(
!
isLt2M
)
{
this
.
$message
.
error
(
"上传图片大小不能超过 2MB!"
);
return
false
;
await
this
.
init
()
}
return
true
;
},
onSubmit
(
formName
)
{
this
.
$refs
[
formName
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
const
form
=
Object
.
assign
({},
this
.
form
);
//form.tenantNo = this.tenantNo;
//form.abutmentWay = 'API'
let
result
;
if
(
this
.
appNo
){
form
.
appNo
=
this
.
appNo
;
result
=
await
API
.
prod_update
({
...
form
});
}
else
{
result
=
await
API
.
prod_add
({
...
form
});
}
if
(
result
.
success
)
{
this
.
$baseMessage
(
"产品保存成功"
,
"success"
);
setTimeout
(()
=>
{
this
.
$router
.
back
();
},
1500
);
}
}
});
},
onReset
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
methods
:
{
async
init
()
{
const
loanNo
=
this
.
loanNo
const
result
=
await
API
.
loanDetail
({
loanNo
})
this
.
detail
=
result
.
result
}
}
}
};
</
script
>
<
style
lang=
"scss"
src=
"./index.scss"
></
style
>
<
style
lang=
'scss'
src=
'./index.scss'
></
style
>
src/views/loan/list.vue
View file @
1df60a86
<
template
>
<div
class=
"page-fence"
>
<div
class=
'page-fence'
>
<!--搜索-->
<div
class=
"search"
>
<el-form
label-suffix=
":"
:inline=
"true"
:model=
"queryForm"
class=
"form-inline"
>
<el-form-item
label=
"订单编号"
>
<el-input
v-model=
"queryForm.orderNo"
clearable
placeholder=
"请输入机构编号"
/>
<block-header
title=
'搜索'
/>
<div
class=
'search'
>
<el-form
ref=
'form'
label-suffix=
':'
:inline=
'true'
:model=
'queryForm'
class=
'form-inline'
>
<el-form-item
prop=
'loanNo'
label=
'借款编号'
>
<el-input
v-model=
'queryForm.loanNo'
clearable
placeholder=
'请输入借款编号'
/>
</el-form-item>
<el-form-item
label=
"用户姓名"
>
<el-input
v-model=
"queryForm.tenantNo"
clearable
placeholder=
"请输入机构名称"
/>
<el-form-item
prop=
'clientName'
label=
'客户姓名'
>
<el-input
v-model=
'queryForm.clientName'
clearable
placeholder=
'请输入客户姓名'
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
<el-form-item
prop=
'mobile'
label=
'手机号码'
>
<el-input
v-model=
'queryForm.mobile'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
<el-form-item
prop=
'loanName'
label=
'项目名称'
>
<el-input
v-model=
'queryForm.loanName'
clearable
placeholder=
'请输入客户手机号码'
/>
</el-form-item>
<el-form-item
label=
'申请时间'
>
<el-date-picker
v-model=
'queryForm.time'
type=
'datetimerange'
:picker-options=
'pickerConfig'
:default-time=
"['00:00:00', '23:59:59']"
value-format=
'yyyy-MM-dd HH:mm:ss'
range-separator=
'至'
start-placeholder=
'开始时间'
end-placeholder=
'结束时间'
>
查询
</el-button>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
icon=
'el-icon-search'
type=
'primary'
@
click=
'onSearch'
>
搜 索
</el-button>
<el-button
icon=
'el-icon-delete'
type=
'default'
@
click=
"onReset('form')"
>
重 置
</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<block-header
title=
'借款列表'
/>
<el-table
ref=
"tableSort"
v-loading=
"listLoading"
ref=
'tableSort'
v-loading=
'listLoading'
border
:data=
"list"
style=
"width: 100%"
:data=
'list'
style=
'width: 100%'
>
<el-table-column
v-for=
"(item, index) in finallyColumns"
:key=
"index"
align=
"center"
:label=
"item.label"
:sortable=
"item.sortable"
:width=
"item.width"
:fixed=
"!!item.fixed"
:show-overflow-tooltip=
"!!item.overflow"
v-for=
'(item, index) in finallyColumns'
:key=
'index'
align=
'center'
:label=
'item.label'
:sortable=
'item.sortable'
:width=
'item.width'
:fixed=
'!!item.fixed'
:show-overflow-tooltip=
'!!item.overflow'
>
<template
#
default=
"
{ row }"
>
<template
#
default=
'
{ row }'
>
<div
v-if=
"item.label==='LOGO'"
>
<el-image
style=
"width: 50px; height: 35px"
:src=
"row[item.prop]"
fit=
"fit"
style=
'width: 50px; height: 35px'
:src=
'row[item.prop]'
fit=
'fit'
/>
</div>
<div
v-else-if=
"item.label==='产品状态'"
>
<span>
{{
row
[
item
.
prop
]
===
"1"
?
'启用'
:
'禁用'
}}
</span>
<span>
{{
row
[
item
.
prop
]
===
'1'
?
'启用'
:
'禁用'
}}
</span>
</div>
<span
v-else
>
{{
row
[
item
.
prop
]
}}
</span>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
align=
"center"
label=
"操作"
fixed=
'right'
align=
'center'
label=
'操作'
>
<
template
#
default=
"{ row }"
>
<el-button
type=
"text"
@
click=
"handleView(row)"
>
推送
</el-button>
<
template
#
default=
'{ row }'
>
<el-button
type=
'text'
@
click=
'handleDialog(row,"confirm")'
>
放款
</el-button>
<el-button
type=
'text'
@
click=
'handleDialog(row,"cancel")'
>
取消
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-pagination
:current-page=
"queryForm.pageNo"
:layout=
"layout"
:page-size=
"queryForm.pageSize"
:total=
"total"
:current-page=
'queryForm.current'
layout=
'total, prev, pager, next'
:page-size=
'queryForm.size'
:total=
'total'
background
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
@
current-change=
'handleCurrentChange'
/>
<!--放款确认,放款取消-->
<el-dialog
:title=
'DialogTitle'
:visible
.
sync=
'DialogVisible'
width=
'30%'
center
>
<el-form
ref=
'dialogForm'
:model=
'dialogForm'
label-suffix=
':'
>
<el-form-item
label=
'客户名称'
>
<div>
{{ dialogForm.clientName }}
</div>
</el-form-item>
<el-form-item
label=
'借款金额'
>
<div>
{{ dialogForm.loanAmount }}
</div>
</el-form-item>
<el-form-item
label=
'确认备注'
>
<el-input
type=
'textarea'
:rows=
'2'
v-model=
'dialogForm.memo'
placeholder=
'请输入'
/>
</el-form-item>
</el-form>
<div
slot=
'footer'
class=
'dialog-footer'
>
<el-button
type=
'primary'
@
click=
'DialogVisible = false'
>
确 定
</el-button>
<el-button
@
click=
'DialogVisible = false'
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
_
from
"lodash"
;
import
{
doDelete
,
getList
}
from
"@/api/table"
;
import
API
from
"@/server/api"
;
export
default
{
name
:
"Fence"
,
data
()
{
return
{
checkList
:
[
"订单编号"
,
"进件时间"
,
"姓名"
,
"产品名称"
,
"申请状态"
,
"是否推送"
],
columns
:
[
{
order
:
1
,
label
:
"订单编号"
,
prop
:
"orderNo"
},
{
order
:
2
,
label
:
"进件时间"
,
prop
:
"gmtCreatedStr"
},
{
order
:
3
,
label
:
"姓名"
,
prop
:
"userName"
},
{
order
:
4
,
label
:
"产品名称"
,
prop
:
"appName"
},
{
order
:
5
,
label
:
"申请状态"
,
prop
:
"applyStatusStr"
import
_
from
'lodash'
import
API
from
'@/server/api'
export
default
{
name
:
'LoanAudit'
,
data
()
{
return
{
DialogTitle
:
''
,
DialogVisible
:
false
,
dialogForm
:
{
loanAmount
:
''
,
clientName
:
''
,
currentAction
:
''
,
loanNo
:
''
,
memo
:
''
,
stepsNo
:
''
,
userId
:
''
},
{
order
:
6
,
label
:
"是否推送"
,
prop
:
"applyStatusStr"
checkList
:
[
'借款编号'
,
'项目名称'
,
'客户姓名'
,
'手机号码'
,
'借款金额'
,
'借款期数'
,
'BD姓名'
,
'商户区域'
,
'创建时间'
,
'借款状态'
,
'资金渠道'
],
columns
:
[
{
order
:
1
,
label
:
'借款编号'
,
prop
:
'loanNo'
},
{
order
:
2
,
label
:
'项目名称'
,
prop
:
'loanName'
},
{
order
:
3
,
label
:
'客户姓名'
,
prop
:
'realName'
},
{
order
:
4
,
label
:
'手机号码'
,
prop
:
'mobile'
},
{
order
:
5
,
label
:
'借款金额'
,
prop
:
'loanAmount'
},
{
order
:
6
,
label
:
'借款期数'
,
prop
:
'loanNum'
},
{
order
:
7
,
label
:
'BD姓名'
,
prop
:
'bdName'
},
{
order
:
8
,
label
:
'商户区域'
,
prop
:
'regionName'
},
{
order
:
9
,
label
:
'创建时间'
,
prop
:
'gmtCreated'
},
{
order
:
10
,
label
:
'借款状态'
,
prop
:
'loanStatus'
},
{
order
:
11
,
label
:
'资金渠道'
,
prop
:
'loanSign'
}
],
list
:
[],
listLoading
:
true
,
pickerConfig
:
this
.
datePickerOptions
,
total
:
1
,
queryForm
:
{
current
:
1
,
size
:
10
,
mobile
:
''
,
loanNo
:
''
,
loanName
:
''
,
clientName
:
''
,
time
:
''
,
startTime
:
''
,
endTime
:
''
,
userId
:
''
}
],
list
:
[],
listLoading
:
true
,
layout
:
"total, sizes, prev, pager, next, jumper"
,
total
:
0
,
queryForm
:
{
current
:
1
,
size
:
10
,
orderNo
:
""
}
};
},
computed
:
{
finallyColumns
()
{
let
finallyArray
=
[];
this
.
checkList
.
forEach
((
checkItem
)
=>
{
finallyArray
.
push
(
this
.
columns
.
filter
((
item
)
=>
item
.
label
===
checkItem
)[
0
]
);
});
//return _.sortBy(finallyArray, (item) => item.order);
return
finallyArray
;
}
},
created
()
{
//防止三级以上路由时多次走created
if
(
this
.
$route
.
name
===
this
.
$options
.
name
)
this
.
fetchData
();
},
mounted
()
{
this
.
fetchData
();
},
methods
:
{
onSubmit
()
{
this
.
fetchData
();
},
handleView
(
row
)
{
const
{
appNo
}
=
row
;
this
.
$router
.
push
({
path
:
'/prod/edit'
,
query
:
{
appNo
}
})
},
handleSizeChange
(
val
)
{
this
.
queryForm
.
size
=
val
;
this
.
fetchData
();
},
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
;
this
.
fetchData
();
computed
:
{
finallyColumns
()
{
let
finallyArray
=
[]
this
.
checkList
.
forEach
((
checkItem
)
=>
{
finallyArray
.
push
(
this
.
columns
.
filter
((
item
)
=>
item
.
label
===
checkItem
)[
0
]
)
})
return
_
.
sortBy
(
finallyArray
,
(
item
)
=>
item
.
order
)
//return finallyArray
}
},
handleQuery
()
{
this
.
queryForm
.
current
=
1
;
this
.
fetchData
();
mounted
()
{
this
.
fetchData
()
},
async
fetchData
()
{
this
.
listLoading
=
true
;
const
result
=
await
API
.
apply_list
(
this
.
queryForm
);
const
{
records
,
total
}
=
result
.
result
;
this
.
list
=
records
;
this
.
total
=
total
;
this
.
listLoading
=
false
;
methods
:
{
onSearch
()
{
const
{
time
}
=
this
.
queryForm
this
.
queryForm
.
current
=
1
if
(
time
)
{
this
.
queryForm
.
startTime
=
time
[
0
]
this
.
queryForm
.
endTime
=
time
[
1
]
}
else
{
this
.
queryForm
.
startTime
=
''
this
.
queryForm
.
endTime
=
''
}
this
.
fetchData
()
},
handleDialog
(
row
)
{
const
{
realName
,
loanAmount
}
=
row
;
console
.
log
(
row
,
'当前行信息'
);
this
.
DialogVisible
=
true
;
},
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
this
.
fetchData
()
},
async
fetchData
()
{
this
.
listLoading
=
true
const
form
=
this
.
queryForm
const
params
=
Object
.
assign
({},
form
)
delete
params
.
time
const
result
=
await
API
.
loanConfirmList
({
...
params
})
const
{
records
,
total
}
=
result
.
result
this
.
list
=
records
this
.
total
=
total
this
.
listLoading
=
false
}
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.page-fence
{
::v-deep
{
i
{
cursor
:
pointer
;
<
style
lang=
'scss'
scoped
>
.page-fence
{
::v-deep
{
i
{
cursor
:
pointer
;
}
}
}
box-sizing
:
border-box
;
padding
:
20px
;
}
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
;
<
style
lang=
'scss'
>
.custom-table-checkbox
{
.el-checkbox
{
display
:
block
!
important
;
margin
:
0
0
$base-padding
/
4
0
;
}
}
}
.action-bar
{
margin-bottom
:
15px
;
}
.action-bar
{
margin-bottom
:
15px
;
}
</
style
>
src/views/loan/order.vue
deleted
100644 → 0
View file @
e0b54889
<
template
>
<div
class=
"page-fence"
>
<!--搜索-->
<div
class=
"search"
>
<el-form
label-suffix=
":"
:inline=
"true"
:model=
"queryForm"
class=
"form-inline"
>
<el-form-item
label=
"订单编号"
>
<el-input
v-model=
"queryForm.orderNo"
clearable
placeholder=
"请输入机构编号"
/>
</el-form-item>
<el-form-item
label=
"用户姓名"
>
<el-input
v-model=
"queryForm.tenantNo"
clearable
placeholder=
"请输入机构名称"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<el-table
ref=
"tableSort"
v-loading=
"listLoading"
border
:data=
"list"
style=
"width: 100%"
>
<el-table-column
v-for=
"(item, index) in finallyColumns"
:key=
"index"
align=
"center"
:label=
"item.label"
:sortable=
"item.sortable"
:width=
"item.width"
:fixed=
"!!item.fixed"
:show-overflow-tooltip=
"!!item.overflow"
>
<template
#
default=
"
{ row }">
<div
v-if=
"item.label==='LOGO'"
>
<el-image
style=
"width: 50px; height: 35px"
: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>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
align=
"center"
label=
"操作"
>
<
template
#
default=
"{ row }"
>
<el-button
type=
"text"
@
click=
"handleView(row)"
>
推送
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-pagination
:current-page=
"queryForm.pageNo"
:layout=
"layout"
:page-size=
"queryForm.pageSize"
:total=
"total"
background
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</template>
<
script
>
import
_
from
"lodash"
;
import
{
doDelete
,
getList
}
from
"@/api/table"
;
import
API
from
"@/server/api"
;
export
default
{
name
:
"Fence"
,
data
()
{
return
{
checkList
:
[
"订单编号"
,
"进件时间"
,
"姓名"
,
"产品名称"
,
"申请状态"
,
"是否推送"
],
columns
:
[
{
order
:
1
,
label
:
"订单编号"
,
prop
:
"orderNo"
},
{
order
:
2
,
label
:
"进件时间"
,
prop
:
"gmtCreatedStr"
},
{
order
:
3
,
label
:
"姓名"
,
prop
:
"userName"
},
{
order
:
4
,
label
:
"产品名称"
,
prop
:
"appName"
},
{
order
:
5
,
label
:
"申请状态"
,
prop
:
"applyStatusStr"
},
{
order
:
6
,
label
:
"是否推送"
,
prop
:
"applyStatusStr"
}
],
list
:
[],
listLoading
:
true
,
layout
:
"total, sizes, prev, pager, next, jumper"
,
total
:
0
,
queryForm
:
{
current
:
1
,
size
:
10
,
orderNo
:
""
}
};
},
computed
:
{
finallyColumns
()
{
let
finallyArray
=
[];
this
.
checkList
.
forEach
((
checkItem
)
=>
{
finallyArray
.
push
(
this
.
columns
.
filter
((
item
)
=>
item
.
label
===
checkItem
)[
0
]
);
});
//return _.sortBy(finallyArray, (item) => item.order);
return
finallyArray
;
}
},
created
()
{
//防止三级以上路由时多次走created
if
(
this
.
$route
.
name
===
this
.
$options
.
name
)
this
.
fetchData
();
},
mounted
()
{
this
.
fetchData
();
},
methods
:
{
onSubmit
()
{
this
.
fetchData
();
},
handleView
(
row
)
{
const
{
appNo
}
=
row
;
this
.
$router
.
push
({
path
:
'/prod/edit'
,
query
:
{
appNo
}
})
},
handleSizeChange
(
val
)
{
this
.
queryForm
.
size
=
val
;
this
.
fetchData
();
},
handleCurrentChange
(
val
)
{
this
.
queryForm
.
current
=
val
;
this
.
fetchData
();
},
handleQuery
()
{
this
.
queryForm
.
current
=
1
;
this
.
fetchData
();
},
async
fetchData
()
{
this
.
listLoading
=
true
;
const
result
=
await
API
.
apply_list
(
this
.
queryForm
);
const
{
records
,
total
}
=
result
.
result
;
this
.
list
=
records
;
this
.
total
=
total
;
this
.
listLoading
=
false
;
}
}
};
</
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
>
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