Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
loan-manager-customer
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
zhanhai
loan-manager-customer
Commits
ac8969e3
Commit
ac8969e3
authored
Mar 02, 2022
by
caimeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复一些问题
parent
f9ce8db0
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
468 additions
and
73 deletions
+468
-73
aliyun-oss-sdk.min.js
public/aliyun-oss-sdk.min.js
+4
-0
index.html
public/index.html
+6
-2
ByhService.vue
src/components/byh/ByhService.vue
+5
-8
ByhServiceDetail.vue
src/components/byh/ByhServiceDetail.vue
+1
-1
ClientManagerment.vue
src/components/byh/ClientManagerment.vue
+3
-4
ServiceProblem.vue
src/components/byh/ServiceProblem.vue
+5
-5
AddQuestion.vue
src/components/byh/componments/AddQuestion.vue
+88
-31
ApplyInfo.vue
src/components/byh/componments/ApplyInfo.vue
+3
-3
BillList.vue
src/components/byh/componments/BillList.vue
+9
-5
FeedList.vue
src/components/byh/componments/FeedList.vue
+66
-12
LoanDetail.vue
src/components/byh/componments/LoanDetail.vue
+4
-1
ReliefList.vue
src/components/byh/componments/ReliefList.vue
+194
-0
UrgeList.vue
src/components/byh/componments/UrgeList.vue
+1
-0
AppSelect.vue
src/components/common/AppSelect.vue
+37
-0
ProductSelect.vue
src/components/common/ProductSelect.vue
+37
-0
components.js
src/mixins/components.js
+5
-1
No files found.
public/aliyun-oss-sdk.min.js
0 → 100644
View file @
ac8969e3
This diff is collapsed.
Click to expand it.
public/index.html
View file @
ac8969e3
...
...
@@ -6,16 +6,20 @@
<meta
charset=
"utf-8"
>
<link
type=
"favicon"
rel=
"shortcut icon"
href=
"favicon.ico"
/>
<link
rel=
"stylesheet"
href=
"css/index.css"
>
<script
src=
"./aliyun-oss-sdk.min.js"
></script>
<script>
//本地测试
//window.APIHOST = "http://192.168.0.50:8202";
//测试
//
window.APIHOST = "http://47.99.245.36:8202";
window
.
APIHOST
=
"http://47.99.245.36:8202"
;
//生产环境
window
.
APIHOST
=
"https://water.jqtianxia.com"
;
// window.APIHOST = "https://water.jqtianxia.com";
//鼎荣小贷
//window.APIHOST = "https://drwater.dingrongxd.com";
</script>
</head>
...
...
src/components/byh/ByhService.vue
View file @
ac8969e3
...
...
@@ -28,10 +28,9 @@
</el-form-item>
<el-form-item
prop=
"productName"
label=
"产品名称"
>
<el-select
clearable
v-model=
"searchInfo.productName"
>
<el-option
v-for=
"item in this.$enumUtils.toValue('BusinessType')"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<product-select
v-model=
"searchInfo.productName"
@
handleSetting=
"(e)=>
{ searchInfo.productName = e}"/>
</el-form-item>
<el-form-item>
...
...
@@ -53,7 +52,7 @@
<el-table-column
align=
"center"
prop=
"clientCell"
label=
"手机号"
></el-table-column>
<el-table-column
align=
"center"
width=
"160"
prop=
"certNo"
label=
"身份证号"
></el-table-column>
<el-table-column
align=
"center"
prop=
"level"
label=
"授信级别"
></el-table-column>
<el-table-column
align=
"center"
prop=
"productName
"
label=
"产品名称"
:formatter=
"productNameFormat
"
></el-table-column>
<el-table-column
align=
"center"
prop=
"productName
Str"
label=
"产品名称
"
></el-table-column>
<el-table-column
align=
"center"
prop=
"userStatus"
label=
"状态"
:formatter=
"userStatusFormat"
></el-table-column>
<el-table-column
align=
"center"
label=
"查看详情"
>
<template
slot-scope=
"scope"
>
...
...
@@ -65,7 +64,6 @@
<br/>
</div>
<!-- 详情组件 -->
...
...
@@ -123,13 +121,12 @@ export default {
created
()
{
if
(
this
.
$route
.
query
.
clientCell
!=
null
)
{
this
.
searchInfo
.
clientCell
=
this
.
$route
.
query
.
clientCell
this
.
page
.
current
=
this
.
$route
.
query
.
current
this
.
page
.
current
=
this
.
$route
.
query
.
current
;
this
.
backedData
()
}
},
methods
:
{
readDetail
(
record
)
{
this
.
ui
.
readDetail
=
{
visible
:
true
,
...
...
src/components/byh/ByhServiceDetail.vue
View file @
ac8969e3
...
...
@@ -13,7 +13,7 @@
<el-tab-pane
name=
"OperateLog"
label=
"操作日志"
></el-tab-pane>
</el-tabs>
<div
class=
"box-right"
>
<el-button
size=
"mini"
v-if=
"activeComponents==='FeedList'"
@
click=
"handleTabClick(
{name:'addQuestion',label:'意见反馈'})" type="primary">新增反馈记录
</el-button>
</div>
</div>
...
...
src/components/byh/ClientManagerment.vue
View file @
ac8969e3
...
...
@@ -14,10 +14,9 @@
</el-form-item>
<el-form-item
label=
"产品名称"
>
<el-select
clearable
v-model=
"searchInfo.appName"
>
<el-option
v-for=
"item in this.$enumUtils.toValue('AppNameType')"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<app-select
v-model=
"searchInfo.appName"
@
handleSetting=
"(e)=>
{ searchInfo.appName = e}"/>
</el-form-item>
<el-form-item>
...
...
src/components/byh/ServiceProblem.vue
View file @
ac8969e3
...
...
@@ -34,10 +34,10 @@
</el-form-item>
<el-form-item
label=
"产品名称"
>
<
el-select
clearable
v-model=
"searchInfo.feedProduct"
>
<el-option
v-for=
"item in this.$enumUtils.toValue('BusinessType')"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el
-select>
<
product-select
v-model=
"searchInfo.feedProduct"
@
handleSetting=
"e=>
{
searchInfo.feedProduct = e;
}">
</product
-select>
</el-form-item>
<!--
<el-form-item
label=
"反馈来源"
>
...
...
@@ -62,7 +62,7 @@
:default-sort=
"
{prop: 'date', order: 'descending'}"
:highlight-current-row="true">
<el-table-column
align=
"center"
prop=
"feedNo"
label=
"编号"
></el-table-column>
<el-table-column
align=
"center"
label=
"反馈内容"
>
<el-table-column
align=
"center"
label=
"反馈内容"
>
<template
slot-scope=
"scope"
>
<el-popover
trigger=
"hover"
placement=
"top"
width=
"400"
>
<p>
{{
scope
.
row
.
feedContent
}}
</p>
...
...
src/components/byh/componments/AddQuestion.vue
View file @
ac8969e3
...
...
@@ -6,9 +6,10 @@
:visible
.
sync=
"dialogVisible"
:before-close=
"handleClose"
>
<el-form
size=
"small"
label-suffix=
":"
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form
size=
"small"
label-suffix=
":"
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"反馈类型"
prop=
"feedType"
>
<el-select
v-model=
"ruleForm.feedType"
label=
"反馈类型"
placeholder=
"请选择"
>
<el-select
v-model=
"ruleForm.feedType"
label=
"反馈类型"
placeholder=
"请选择"
>
<el-option
v-for=
"item in optionsFeedType"
:key=
"item.value"
...
...
@@ -23,7 +24,7 @@
type=
"textarea"
:rows=
"2"
placeholder=
"请输入反馈内容"
v-model=
"ruleForm.feedContent"
>
v-model=
"ruleForm.feedContent"
>
</el-input>
</el-form-item>
...
...
@@ -41,6 +42,23 @@
<el-form-item
label=
"创建人"
prop=
"creater"
>
<p>
{{
this
.
ruleForm
.
creater
}}
</p>
</el-form-item>
<el-form-item
label=
"相关凭证"
required
>
<el-upload
class=
"upload-demo"
action=
""
:on-preview=
"handlePreview"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
multiple
:limit=
"3"
:http-request=
"handleUpload"
:on-exceed=
"handleExceed"
:file-list=
"fileList"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
...
...
@@ -70,24 +88,9 @@ export default {
},
},
data
()
{
/*请选择功能点*/
const
validatefeedType
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'请选择反馈类型'
));
}
};
/*请输入问题描述*/
const
validatefeedStatus
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'请选择反馈结果'
));
}
};
const
validatefeedContent
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'请输入反馈问题描述'
));
}
};
return
{
fileList
:
[],
ui
:
{
submitLoading
:
false
},
...
...
@@ -97,7 +100,9 @@ export default {
feedStatus
:
''
,
feedContent
:
''
,
clientNo
:
''
,
creater
:
''
creater
:
''
,
productName
:
''
,
feedVoucher
:
[]
},
rules
:
{
feedType
:
[
...
...
@@ -153,16 +158,68 @@ export default {
}
},
created
()
{
const
{
clientNo
}
=
this
.
params
;
const
{
clientNo
,
clientProductName
}
=
this
.
params
;
this
.
ruleForm
=
{
clientNo
,
productName
:
clientProductName
,
creater
:
localStorage
.
getItem
(
"userName"
),
}
},
mounted
()
{
this
.
client
=
new
OSS
({
region
:
'oss-cn-hangzhou'
,
accessKeyId
:
'LTAI4Fp8aDaS8sHXV76gWPVJ'
,
accessKeySecret
:
'lyEPFiHlgdbbEcwGRCLzHZiqOrwNk0'
,
bucket
:
'w-loan-static'
});
},
methods
:
{
handleUpload
(
file
)
{
this
.
upload
(
file
)
},
upload
(
file
)
{
console
.
log
(
file
,
'文件'
)
const
key
=
file
.
file
.
name
;
const
client
=
this
.
client
;
const
that
=
this
;
client
.
multipartUpload
(
'customer/feed/'
+
key
,
file
.
file
)
.
then
((
res
)
=>
{
console
.
log
(
res
,
'返回结果'
);
const
fileList
=
that
.
fileList
;
const
imgSrc
=
`http://file.cloudsmake.com/
${
res
.
name
}
`
;
const
o
=
{
name
:
res
.
name
,
url
:
imgSrc
};
fileList
.
push
(
o
);
that
.
$message
.
success
(
'上传成功'
);
})
.
catch
((
err
)
=>
{
console
.
log
(
err
,
'错误信息'
);
this
.
$message
.
error
(
'上传失败'
);
});
},
handleRemove
(
file
,
fileList
)
{
console
.
log
(
file
,
fileList
);
},
handlePreview
(
file
)
{
console
.
log
(
file
);
},
handleExceed
(
files
,
fileList
)
{
this
.
$message
.
warning
(
`当前限制选择 3 个文件,本次选择了
${
files
.
length
}
个文件,共选择了
${
files
.
length
+
fileList
.
length
}
个文件`
);
},
beforeRemove
(
file
,
fileList
)
{
return
this
.
$confirm
(
`确定移除
${
file
.
name
}
?`
);
},
/** 提交点击 */
submitForm
()
{
console
.
log
(
this
.
fileList
,
'文件列表'
);
const
feedVoucher
=
[];
this
.
fileList
.
forEach
(
item
=>
{
feedVoucher
.
push
(
item
.
url
);
})
this
.
$refs
[
'ruleForm'
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
...
...
@@ -174,15 +231,19 @@ export default {
feedSource
:
'CUSTOMER'
,
feedStatus
:
this
.
ruleForm
.
feedStatus
,
feedContent
:
this
.
ruleForm
.
feedContent
,
clientNo
:
this
.
ruleForm
.
clientNo
clientNo
:
this
.
ruleForm
.
clientNo
,
productName
:
this
.
ruleForm
.
productName
,
feedVoucher
:
feedVoucher
})
.
then
(
res
=>
{
if
(
res
.
data
.
code
!=
200
)
{
if
(
res
.
data
.
success
)
{
this
.
$message
({
message
:
'反馈问题新增成功'
,
type
:
'success'
});
this
.
$emit
(
'callback'
)
this
.
handleClose
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
return
}
this
.
$message
({
message
:
'反馈问题新增成功'
,
type
:
'success'
});
this
.
handleClose
();
})
.
catch
(
err
=>
{
alert
(
"error!"
)
...
...
@@ -196,10 +257,6 @@ export default {
/** 关闭处理 */
handleClose
()
{
this
.
$emit
(
"handleClose"
);
//this.visible = false;
//setTimeout(() => {
// this.$emit('update:dialogVisible', false)
//}, 300);
}
},
...
...
src/components/byh/componments/ApplyInfo.vue
View file @
ac8969e3
...
...
@@ -8,7 +8,7 @@
<td>
放款日期:
</td>
<td>
{{
loanModel
.
raiseDate
|
dateFilter
}}
</td>
<td>
项目名称:
</td>
<td>
{{
loanModel
.
productName
}}
</td>
<td>
{{
loanModel
.
productName
Str
}}
</td>
<!--
<el-table-column
align=
"center"
prop=
"productName"
label=
"产品名称"
:formatter=
"productNameFormat"
></el-table-column>
-->
</tr>
<tr>
...
...
@@ -80,7 +80,7 @@ export default {
this
.
productNameFormat
(
this
.
loanModel
.
productName
)
}
},
methods
:
{
headerStyle
()
{
return
"tableHeaderStyle"
;
...
...
@@ -90,7 +90,7 @@ export default {
if
(
this
.
loanModel
!=
null
){
this
.
loanModel
.
productName
=
this
.
$enumUtils
.
toMsg
(
'BusinessType'
,
row
)
}
},
}
}
...
...
src/components/byh/componments/BillList.vue
View file @
ac8969e3
...
...
@@ -7,23 +7,27 @@
<td>
借款编号:
</td>
<td>
{{
advanceLoanAmt
.
loanNo
}}
</td>
<td>
账单剩余应还:
</td>
<td>
{{
loanVo
.
surAmt
}}
</td>
<td>
¥
{{
loanVo
.
surAmt
}}
</td>
</tr>
<tr>
<td>
退款金额:
</td>
<td>
<span
v-if=
"loanVo.refundAmt !== null "
>
{{
loanVo
.
refundAmt
}}
(
{{
loanVo
.
refundStatusDesc
}}
)
</span>
<span
v-else
>
0
</span>
<span
v-if=
"loanVo.refundAmt !== null "
>
¥
{{
loanVo
.
refundAmt
}}
(
{{
loanVo
.
refundStatusDesc
}}
)
</span>
<span
v-else
>
¥
0
</span>
</td>
<td>
账单已还款:
</td>
<td>
{{
loanVo
.
alrAmt
}}
</td>
<td>
¥
{{
loanVo
.
alrAmt
}}
</td>
</tr>
<tr>
<td>
操作:
</td>
<td
colspan=
"3"
>
<td>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleAdvanceLoanAmt"
v-if=
"isNeedAudit"
>
线下结清
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"protocolSettleAll"
>
代扣结清
</el-button>
</td>
<td>
减免:
</td>
<td>
¥
{{
loanVo
.
derateAmt
}}
</td>
</tr>
</table>
</div>
...
...
src/components/byh/componments/FeedList.vue
View file @
ac8969e3
...
...
@@ -2,6 +2,9 @@
<div
class=
"page-dialog"
>
<div
class=
"tables"
>
<block-header
:title=
"title"
></block-header>
<div
class=
"block-box"
>
<el-button
size=
"mini"
@
click=
"handleTabClick"
type=
"primary"
>
新增反馈记录
</el-button>
</div>
<el-table
border
size=
"mini"
...
...
@@ -10,16 +13,25 @@
:data=
"data"
stripe
style=
"width: 100%;"
>
<el-table-column
prop=
"feedNo"
label=
"客服反馈编号"
></el-table-column>
<el-table-column
prop=
"clientName"
label=
"客户姓名"
></el-table-column>
<el-table-column
prop=
"clientCell"
label=
"客户手机号"
></el-table-column>
<el-table-column
prop=
"feedType"
label=
"反馈类型"
></el-table-column>
<el-table-column
prop=
"feedContent"
label=
"反馈内容"
></el-table-column>
<el-table-column
prop=
"finishContent"
label=
"处理意见"
></el-table-column>
<el-table-column
prop=
"feedStatus"
label=
"状态"
:formatter=
"serviceFormat"
></el-table-column>
<el-table-column
prop=
"creater"
label=
"处理人"
></el-table-column>
<el-table-column
prop=
"gmtCreated"
label=
"记录时间"
:formatter=
"dateFormat"
></el-table-column>
<el-table-column
label=
"操作"
>
<el-table-column
prop=
"feedNo"
width=
"180"
align=
"center"
label=
"客服反馈编号"
></el-table-column>
<el-table-column
prop=
"clientName"
align=
"center"
label=
"客户姓名"
></el-table-column>
<el-table-column
prop=
"clientCell"
align=
"center"
label=
"客户手机号"
></el-table-column>
<el-table-column
prop=
"feedType"
align=
"center"
label=
"反馈类型"
></el-table-column>
<el-table-column
prop=
"feedContent"
align=
"center"
label=
"反馈内容"
></el-table-column>
<el-table-column
prop=
"feedVoucher"
width=
"180"
align=
"center"
label=
"相关凭证"
>
<template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.feedVoucher && scope.row.feedVoucher!==null"
>
<template
v-for=
"item in scope.row.feedVoucher"
>
<el-image
style=
"width: 50px; height: 50px; margin: 0 5px; cursor: pointer;"
fit=
"fill"
:preview-src-list=
"scope.row.feedVoucher"
:src=
"item"
></el-image>
</
template
>
</template>
</template>
</el-table-column>
<el-table-column
prop=
"finishContent"
align=
"center"
label=
"处理意见"
></el-table-column>
<el-table-column
prop=
"feedStatus"
align=
"center"
label=
"状态"
:formatter=
"serviceFormat"
></el-table-column>
<el-table-column
prop=
"creater"
align=
"center"
label=
"处理人"
></el-table-column>
<el-table-column
prop=
"gmtCreated"
align=
"center"
label=
"记录时间"
:formatter=
"dateFormat"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"updateQueDialog(scope.row)"
>
修改
</el-button>
</
template
>
...
...
@@ -38,18 +50,40 @@
:total=
"form.total"
>
</el-pagination>
</div>
<!-- 意见反馈弹框 -->
<add-question
:dialog-visible=
"visible"
:title=
"dialogTitle"
:params=
"params"
@
handleClose=
"visible=false"
@
callback=
"init"
/>
<!-- 查看图片弹框-->
<el-dialog
title=
"查看大图"
:visible
.
sync=
"imgDialogVisible"
width=
"30%"
:before-close=
"handleCloseDialog"
>
<el-image
:src=
"dialogImgUrl"
/>
</el-dialog>
</div>
</template>
<
script
>
import
BlockHeader
from
"@/components/byh/componments/blockHeader"
;
import
AddQuestion
from
"./AddQuestion"
;
import
*
as
moment
from
"moment"
;
export
default
{
name
:
'RiskInfo'
,
components
:
{
BlockHeader
BlockHeader
,
AddQuestion
},
props
:
{
dialogVisible
:
{
...
...
@@ -67,6 +101,12 @@ export default {
},
data
()
{
return
{
visible
:
false
,
dialogTitle
:
''
,
dialogImgUrl
:
''
,
imgDialogVisible
:
false
,
form
:
{
total
:
1
,
current
:
1
,
...
...
@@ -77,6 +117,9 @@ export default {
},
async
created
()
{
const
params
=
this
.
params
;
this
.
dialogTitle
=
'意见反馈'
this
.
form
.
clientCell
=
params
.
phoneNo
;
this
.
form
.
feedProduct
=
params
.
clientProductName
;
this
.
form
.
feedSource
=
'CUSTOMER'
;
...
...
@@ -84,6 +127,16 @@ export default {
await
this
.
init
()
},
methods
:
{
handleCloseDialog
(){
this
.
dialogVisible
=
false
;
},
handleDialog
(
img
){
this
.
dialogImgUrl
=
img
;
},
handleTabClick
()
{
this
.
dialogTitle
=
'意见反馈'
;
this
.
visible
=
true
;
},
headerStyle
()
{
return
"tableHeaderStyle"
;
},
...
...
@@ -134,9 +187,10 @@ export default {
</
script
>
<
style
>
.tables
{
.tables
{
margin-bottom
:
20px
;
}
.pages
{
display
:
flex
;
align-items
:
center
;
...
...
src/components/byh/componments/LoanDetail.vue
View file @
ac8969e3
...
...
@@ -18,6 +18,7 @@
label=
"借款合同"
></el-tab-pane>
<el-tab-pane
name=
"BillList"
label=
"账单详情"
></el-tab-pane>
<el-tab-pane
name=
"RePayList"
label=
"还款情况"
></el-tab-pane>
<el-tab-pane
name=
"ReliefList"
label=
"减免记录"
></el-tab-pane>
</el-tabs>
<div
class=
"loan-detail-content"
>
<template
v-if=
"visible"
>
...
...
@@ -39,6 +40,7 @@ import ApplyInfo from "./ApplyInfo";
import
ContractList
from
"./ContractList"
;
import
RePayList
from
"./RePayList"
;
import
BillList
from
"./BillList"
;
import
ReliefList
from
"./ReliefList"
;
import
*
as
moment
from
"moment"
;
export
default
{
...
...
@@ -48,7 +50,8 @@ export default {
ApplyInfo
,
ContractList
,
RePayList
,
BillList
BillList
,
ReliefList
},
props
:
{
dialogVisible
:
{
...
...
src/components/byh/componments/ReliefList.vue
0 → 100644
View file @
ac8969e3
<
template
>
<div
class=
"page-com"
>
<div
class=
"tables"
>
<block-header
:title=
"title"
></block-header>
<el-table
@
filter-change=
"handleFilterChange"
border
size=
"mini"
:highlight-current-row=
"true"
:header-row-class-name=
"headerStyle"
:data=
"data"
stripe
style=
"width: 100%;"
>
<el-table-column
align=
"center"
prop=
"backedNo"
label=
"还款编号"
></el-table-column>
<el-table-column
align=
"center"
prop=
"planIndex"
label=
"期数"
></el-table-column>
<el-table-column
align=
"center"
prop=
"backedAmt"
label=
"还款金额"
></el-table-column>
<el-table-column
align=
"center"
prop=
"backedTypeStr"
label=
"还款方式"
></el-table-column>
<el-table-column
align=
"center"
prop=
"statusStr"
label=
"还款单状态"
></el-table-column>
<el-table-column
align=
"center"
prop=
"cardOwnerName"
label=
"银行账号户主名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"cardOwnerMobile"
label=
"银行账号户主电话"
></el-table-column>
<el-table-column
align=
"center"
width=
"150"
prop=
"cardBankAccount"
label=
"银行账号"
:formatter=
"cardBankFormat"
></el-table-column>
<el-table-column
align=
"center"
prop=
"bankAccount"
label=
"还款银行账号"
></el-table-column>
<el-table-column
align=
"center"
prop=
"bankOwner"
label=
"还款银行账户"
></el-table-column>
<el-table-column
align=
"center"
prop=
"backedDate"
label=
"还款时间"
:formatter=
"dateCompare"
></el-table-column>
<el-table-column
align=
"center"
prop=
"resultStr"
label=
"还款结果"
width=
"100"
:formatter=
"resultBankFormat"
:filters=
"tableStatus"
column-key=
"status"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"creator"
label=
"创建人"
></el-table-column>
<el-table-column
align=
"center"
prop=
"memo"
label=
"备注"
></el-table-column>
</el-table>
</div>
<div
class=
"pages"
>
<el-pagination
background
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
:current-page
.
sync=
"form.current"
:page-sizes=
"[10, 20, 50, 100]"
:page-size=
"form.size"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"form.total"
>
</el-pagination>
</div>
</div>
</
template
>
<
script
>
import
BlockHeader
from
"@/components/byh/componments/blockHeader"
;
import
*
as
moment
from
"moment"
;
export
default
{
name
:
'RiskInfo'
,
components
:
{
BlockHeader
},
props
:
{
title
:
{
type
:
String
,
required
:
true
,
},
params
:
{
type
:
Object
,
required
:
true
},
},
data
()
{
return
{
tableStatus
:
[{
text
:
'成功'
,
value
:
"SUCCESS"
},
{
text
:
'失败'
,
value
:
"FAIL"
}],
form
:
{
total
:
1
,
current
:
1
,
size
:
10
,
// result:''
},
updateQueDialog
:
{
visible
:
false
,
feedNo
:
''
,
feedType
:
''
,
feedStatus
:
''
,
feedContent
:
''
,
clientNo
:
''
,
creater
:
''
,
finishContent
:
''
,
},
data
:
[],
backValue
:
null
}
},
async
created
()
{
if
(
this
.
params
){
const
params
=
this
.
params
;
console
.
log
(
params
,
'哈哈3'
)
this
.
form
.
bizNo
=
params
.
loanNo
;
await
this
.
init
()
}
},
methods
:
{
headerStyle
()
{
return
"tableHeaderStyle"
;
},
async
init
()
{
const
parB
=
{
bizNo
:
this
.
form
.
bizNo
,
current
:
this
.
form
.
current
,
size
:
this
.
form
.
size
,
total
:
this
.
form
.
total
,
result
:
this
.
backValue
}
const
res
=
await
this
.
$$post
(
'/back/deratePageList'
,
parB
);
const
{
success
,
result
}
=
res
.
data
;
if
(
success
&&
result
!==
null
)
{
const
{
data
,
total
}
=
result
this
.
data
=
data
;
this
.
form
.
total
=
total
;
}
},
// 还款结果
resultBankFormat
:
function
(
row
,
column
)
{
return
row
.
resultStr
+
"("
+
row
.
confirmDesc
+
")"
;
},
// 合并日期
dateCompare
:
function
(
row
,
column
)
{
let
date
=
row
[
column
.
property
]
if
(
date
===
undefined
)
{
return
''
}
return
moment
(
date
).
format
(
"YYYY-MM-DD "
)
+
row
.
backedTime
},
// 银行信息拼接
cardBankFormat
:
function
(
row
,
column
)
{
return
row
.
cardBankAccount
+
"("
+
row
.
cardBankName
+
")"
;
},
/*日期*/
dateFormat
:
function
(
row
,
column
)
{
let
date
=
row
[
column
.
property
]
if
(
date
===
undefined
)
{
return
''
}
return
moment
(
date
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
},
/*日期*/
dateFormats
:
function
(
row
,
column
)
{
let
date
=
row
[
column
.
property
]
if
(
date
===
undefined
)
{
return
''
}
return
moment
(
date
).
format
(
"YYYY-MM-DD"
)
},
handleClose
()
{
this
.
$emit
(
"handleClose"
);
},
//客服状态
serviceFormat
:
function
(
row
,
column
)
{
let
status
=
row
[
'feedStatus'
];
return
this
.
$enumUtils
.
toMsg
(
'FeedStatus'
,
status
);
},
handleCurrentChange
(
e
)
{
this
.
form
.
current
=
e
;
this
.
init
();
},
handleSizeChange
(
e
)
{
this
.
form
.
size
=
e
this
.
form
.
current
=
1
;
this
.
init
();
},
//还款添加查询功能
handleFilterChange
:
function
(
filters
,
value
)
{
if
(
filters
.
status
.
length
===
2
)
{
this
.
backValue
=
null
}
else
{
this
.
backValue
=
filters
.
status
[
0
]
}
this
.
init
();
// this.loanBackedData(this.loanNos)
},
}
}
</
script
>
<
style
>
.tables
{
margin-bottom
:
20px
;
}
.pages
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
</
style
>
src/components/byh/componments/UrgeList.vue
View file @
ac8969e3
...
...
@@ -14,6 +14,7 @@
<el-table-column
align=
"center"
prop=
"collectContact.contactName"
label=
"联系人姓名"
></el-table-column>
<el-table-column
align=
"center"
prop=
"collectContact.contactRelation"
label=
"联系人关系"
></el-table-column>
<el-table-column
align=
"center"
prop=
"collectContact.overdueDay"
label=
"逾期天数"
></el-table-column>
<el-table-column
align=
"center"
prop=
"collectContact.sceneTypeStr"
label=
"催收类型"
></el-table-column>
<el-table-column
align=
"center"
prop=
"collectContact.state"
label=
"状态"
:formatter=
"collectStatueFormat"
></el-table-column>
<el-table-column
align=
"center"
width=
"150"
prop=
"collectContact.created"
label=
"联系时间"
:formatter=
"collectDateFormat"
></el-table-column>
...
...
src/components/common/AppSelect.vue
0 → 100644
View file @
ac8969e3
<
template
>
<el-select
clearable
:value=
"value"
@
change=
"handleChange"
clearable
placeholder=
"请选择产品"
>
<el-option
v-for=
"item in list"
:key=
"item.appName"
:label=
"item.appNameStr"
:value=
"item.appName"
></el-option>
</el-select>
</
template
>
<
script
type=
"text/ecmascript-6"
>
export
default
{
name
:
'ProductSelect'
,
props
:
{
value
:
{
type
:
String
,
required
:
false
}
},
data
()
{
return
{
list
:[]
}
},
async
created
()
{
const
res
=
await
this
.
$$get
(
'/back/selectAPPNameList'
);
if
(
res
.
status
===
200
&&
res
.
data
.
success
){
this
.
list
=
res
.
data
.
result
;
}
},
methods
:
{
handleChange
(
e
){
this
.
$emit
(
'handleSetting'
,
e
)
}
}
}
</
script
>
src/components/common/ProductSelect.vue
0 → 100644
View file @
ac8969e3
<
template
>
<el-select
clearable
:value=
"value"
@
change=
"handleChange"
clearable
placeholder=
"请选择产品"
>
<el-option
v-for=
"item in list"
:key=
"item.productName"
:label=
"item.productNameStr"
:value=
"item.productName"
></el-option>
</el-select>
</
template
>
<
script
type=
"text/ecmascript-6"
>
export
default
{
name
:
'ProductSelect'
,
props
:
{
value
:
{
type
:
String
,
required
:
false
}
},
data
()
{
return
{
list
:[]
}
},
async
created
()
{
const
res
=
await
this
.
$$get
(
'/back/selectProductList'
);
if
(
res
.
status
===
200
&&
res
.
data
.
success
){
this
.
list
=
res
.
data
.
result
;
}
},
methods
:
{
handleChange
(
e
){
this
.
$emit
(
'handleSetting'
,
e
)
}
}
}
</
script
>
src/mixins/components.js
View file @
ac8969e3
import
BlockHeader
from
"@/components/byh/componments/blockHeader"
;
import
ProductSelect
from
"@/components/common/ProductSelect"
;
import
AppSelect
from
"@/components/common/AppSelect"
;
export
default
{
components
:
{
BlockHeader
BlockHeader
,
ProductSelect
,
AppSelect
}
}
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