Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bims
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
孙海亮
bims
Commits
30e4ac19
Commit
30e4ac19
authored
Jul 03, 2023
by
王安伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'func_eccs_2250' into test
parents
6ef93918
300a798f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1224 additions
and
1194 deletions
+1224
-1194
index.vue
src/views/charge-query/index.vue
+347
-329
collectionDetail.vue
src/views/verification/collectionDetail.vue
+877
-865
No files found.
src/views/charge-query/index.vue
View file @
30e4ac19
<
template
>
<!-- 收费查询-账单查询 -->
<div
class=
"white_bg burt-container custom-info"
>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"form.mrnNo"
placeholder=
"请输入病历号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户姓名"
>
<a-input
v-model=
"form.patientName"
placeholder=
"请输入客户姓名"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorIds"
placeholder=
"请选择保险公司"
allowClear
mode=
"multiple"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.corpCode"
:value=
"item.id"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"看诊医生"
>
<a-select
v-model=
"form.doctorCode"
placeholder=
"请选择看诊医生"
allowClear
>
<a-select-option
v-for=
"item in doctorOptions"
:key=
"item.doctorCode"
:value=
"item.doctorCode"
>
{{
item
.
doctorDesc
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"收费时间"
>
<a-range-picker
format=
"YYYY-MM-DD"
v-model=
"form.dateRange"
:placeholder=
"['开始时间','结束时间']"
@
change=
"onSelectVisitTime"
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已关联寄送单"
>
<a-select
v-model=
"form.isSend"
placeholder=
"请选择是否已关联寄送单"
allowClear
>
<a-select-option
value=
"Y"
allow-clear
>
是
</a-select-option>
<a-select-option
value=
"N"
allow-clear
>
否
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已回款"
>
<a-select
v-model=
"form.isEobBack"
placeholder=
"请选择是否已回款"
allowClear
>
<a-select-option
value=
"Y"
allow-clear
>
是
</a-select-option>
<a-select-option
value=
"N"
allow-clear
>
否
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"账单类型"
>
<a-select
v-model=
"form.receiptType"
placeholder=
"请选择账单类型"
allowClear
>
<a-select-option
v-for=
"item in receiptTypeOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"账单编号"
>
<a-input
v-model=
"form.receiptNo"
placeholder=
"请输入账单编号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"form.status"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in statusOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"8"
:lg=
"3"
:sm=
"3"
class=
"none-label"
>
<a-form-model-item
label=
"button"
>
<!--
<a-button>
更新数据
</a-button>
-->
<!--
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewCharge"
>
<!-- 收费查询-账单查询 -->
<div
class=
"white_bg burt-container custom-info"
>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"form.mrnNo"
placeholder=
"请输入病历号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户姓名"
>
<a-input
v-model=
"form.patientName"
placeholder=
"请输入客户姓名"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorId"
placeholder=
"请选择保险公司"
allowClear
show-search
mode=
"multiple"
:filterOption=
"filterCode"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.corpCode"
:value=
"item.id"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"看诊医生"
>
<a-select
v-model=
"form.doctorCode"
placeholder=
"请选择看诊医生"
allowClear
>
<a-select-option
v-for=
"item in doctorOptions"
:key=
"item.doctorCode"
:value=
"item.doctorCode"
>
{{
item
.
doctorDesc
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"收费时间"
>
<a-range-picker
format=
"YYYY-MM-DD"
v-model=
"form.dateRange"
:placeholder=
"['开始时间', '结束时间']"
@
change=
"onSelectVisitTime"
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已关联寄送单"
>
<a-select
v-model=
"form.isSend"
placeholder=
"请选择是否已关联寄送单"
allowClear
>
<a-select-option
value=
"Y"
allow-clear
>
是
</a-select-option>
<a-select-option
value=
"N"
allow-clear
>
否
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已回款"
>
<a-select
v-model=
"form.isEobBack"
placeholder=
"请选择是否已回款"
allowClear
>
<a-select-option
value=
"Y"
allow-clear
>
是
</a-select-option>
<a-select-option
value=
"N"
allow-clear
>
否
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"账单类型"
>
<a-select
v-model=
"form.receiptType"
placeholder=
"请选择账单类型"
allowClear
>
<a-select-option
v-for=
"item in receiptTypeOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"账单编号"
>
<a-input
v-model=
"form.receiptNo"
placeholder=
"请输入账单编号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"form.status"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in statusOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"8"
:lg=
"3"
:sm=
"3"
class=
"none-label"
>
<a-form-model-item
label=
"button"
>
<!--
<a-button>
更新数据
</a-button>
-->
<!--
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewCharge"
>
<Icon
name=
"ssiadd"
:size=
"14"
/>
新建预授权
</a-button>
-->
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerReset"
>
<Icon
name=
"ssireset"
:size=
"14"
/>
重置
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerSearch"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerReset"
>
<Icon
name=
"ssireset"
:size=
"14"
/>
重置
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerSearch"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"index"
slot-scope=
"text, record, index"
>
{{
index
+
1
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"record"
>
<!--
<a-button
type=
"link"
@
click.stop=
"receiptEvt(record)"
>
结算
</a-button>
-->
<a-button
type=
"link"
class=
"success"
@
click.stop=
"detailEvt(record)"
>
查看
</a-button>
<!--
<a-popconfirm
title=
"你确定要关闭吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteData"
>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"index"
slot-scope=
"text, record, index"
>
{{
index
+
1
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"record"
>
<!--
<a-button
type=
"link"
@
click.stop=
"receiptEvt(record)"
>
结算
</a-button>
-->
<a-button
type=
"link"
class=
"success"
@
click.stop=
"detailEvt(record)"
>
查看
</a-button>
<!--
<a-popconfirm
title=
"你确定要关闭吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteData"
>
<a-button
type=
"link"
class=
"danger"
>
删除
</a-button>
</a-popconfirm>
-->
</
template
>
<
template
slot=
"isSend"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEob"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEobBack"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{color: text == 2 ? 'red' : ''}">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"_getChargeList"
/>
</div>
</
template
>
<
template
slot=
"isSend"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEob"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEobBack"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{ color: text == 2 ? 'red' : '' }">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"_getChargeList"
/>
</div>
</template>
<
script
>
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
{
mapState
}
from
"
vuex
"
import
moment
from
"
moment
"
;
import
BurtPagination
from
'
@/components/CUSTOMER/pagation
'
;
import
{
mapState
}
from
'
vuex
'
;
import
moment
from
'
moment
'
;
import
{
receiptTypeOptions
}
from
'
@/utils/utilsdictOptions.js
'
;
import
{
exportFile
}
from
'
@/utils/index
'
;
export
default
{
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
index
"
,
key
:
"
index
"
,
align
:
'
center
'
,
width
:
80
,
scopedSlots
:
{
customRender
:
"
index
"
}},
{
title
:
"
收费时间
"
,
dataIndex
:
"
receiptDate
"
,
width
:
180
},
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
width
:
180
},
{
title
:
"
账单类型
"
,
dataIndex
:
"
receiptTypeStr
"
,
width
:
130
},
{
title
:
"
状态
"
,
dataIndex
:
"
status
"
,
width
:
130
,
scopedSlots
:
{
customRender
:
"
status
"
}
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
width
:
180
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
120
,},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
width
:
200
},
{
title
:
"
保险卡
"
,
dataIndex
:
"
cardNo
"
,
width
:
200
},
{
title
:
"
客户生日
"
,
dataIndex
:
"
birthday
"
,
width
:
200
},
{
title
:
"
就诊医生
"
,
dataIndex
:
"
doctorName
"
,
width
:
150
},
{
title
:
"
是否已关联寄送单
"
,
dataIndex
:
"
isSend
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isSend
"
}
},
{
title
:
"
是否已回款
"
,
dataIndex
:
"
isEobBack
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isEobBack
"
}
},
{
title
:
"
应收金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
180
},
{
title
:
"
折扣(%)
"
,
dataIndex
:
"
discountAmount
"
,
width
:
180
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
reduceAmount
"
,
width
:
180
},
{
title
:
"
应付金额
"
,
dataIndex
:
"
payableAmount
"
,
width
:
180
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
180
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
actualAmount
"
,
width
:
180
},
{
title
:
"
保险已支付
"
,
dataIndex
:
"
backAmount
"
,
width
:
180
},
{
title
:
"
保险欠费
"
,
dataIndex
:
"
insuranceArrearsAmount
"
,
width
:
180
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
arrearsAmount
"
,
width
:
180
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
width
:
180
},
{
title
:
"
账龄
"
,
dataIndex
:
"
diffDay
"
,
width
:
180
},
{
title
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
175px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
align
:
"
center
"
},
];
return
{
columns
,
receiptTypeOptions
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorIds
:
[],
visitTimeEnd
:
""
,
visitTimeStart
:
""
,
receiptType
:
""
,
receiptNo
:
""
},
patientTypeOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//支付方式
dataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
receiptTypeDict
:
{
'
1
'
:
'
收费
'
,
'
2
'
:
'
退费
'
},
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
]
};
},
components
:
{
BurtPagination
,
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
})
},
created
()
{
this
.
_getCompanyOptions
();
this
.
_getDoctorListNoPage
();
//获取医生下拉选项
},
methods
:
{
moment
,
// 选择框筛选
filterCode
(
input
,
option
)
{
return
(
option
.
componentOptions
.
children
[
0
].
text
.
toLowerCase
()
.
indexOf
(
input
.
toLowerCase
())
>=
0
);
data
()
{
const
columns
=
[
{
title
:
'
序号
'
,
dataIndex
:
'
index
'
,
key
:
'
index
'
,
align
:
'
center
'
,
width
:
80
,
scopedSlots
:
{
customRender
:
'
index
'
}
},
{
title
:
'
收费时间
'
,
dataIndex
:
'
receiptDate
'
,
width
:
180
},
{
title
:
'
账单编号
'
,
dataIndex
:
'
receiptNo
'
,
width
:
180
},
{
title
:
'
账单类型
'
,
dataIndex
:
'
receiptTypeStr
'
,
width
:
130
},
{
title
:
'
状态
'
,
dataIndex
:
'
status
'
,
width
:
130
,
scopedSlots
:
{
customRender
:
'
status
'
}
},
{
title
:
'
病历号
'
,
dataIndex
:
'
mrnNo
'
,
width
:
180
},
{
title
:
'
客户姓名
'
,
dataIndex
:
'
patientName
'
,
width
:
120
},
{
title
:
'
保险公司
'
,
dataIndex
:
'
payorName
'
,
width
:
200
},
{
title
:
'
保险卡
'
,
dataIndex
:
'
cardNo
'
,
width
:
200
},
{
title
:
'
客户生日
'
,
dataIndex
:
'
birthday
'
,
width
:
200
},
{
title
:
'
就诊医生
'
,
dataIndex
:
'
doctorName
'
,
width
:
150
},
{
title
:
'
是否已关联寄送单
'
,
dataIndex
:
'
isSend
'
,
width
:
180
,
scopedSlots
:
{
customRender
:
'
isSend
'
}
},
{
title
:
'
是否已回款
'
,
dataIndex
:
'
isEobBack
'
,
width
:
180
,
scopedSlots
:
{
customRender
:
'
isEobBack
'
}
},
{
title
:
'
应收金额
'
,
dataIndex
:
'
chargeAmount
'
,
width
:
180
},
{
title
:
'
折扣(%)
'
,
dataIndex
:
'
discountAmount
'
,
width
:
180
},
{
title
:
'
减免金额
'
,
dataIndex
:
'
reduceAmount
'
,
width
:
180
},
{
title
:
'
应付金额
'
,
dataIndex
:
'
payableAmount
'
,
width
:
180
},
{
title
:
'
客户自付
'
,
dataIndex
:
'
selfpaidAmount
'
,
width
:
180
},
{
title
:
'
理赔金额
'
,
dataIndex
:
'
actualAmount
'
,
width
:
180
},
{
title
:
'
保险已支付
'
,
dataIndex
:
'
backAmount
'
,
width
:
180
},
{
title
:
'
保险欠费
'
,
dataIndex
:
'
insuranceArrearsAmount
'
,
width
:
180
},
{
title
:
'
个人欠费
'
,
dataIndex
:
'
arrearsAmount
'
,
width
:
180
},
{
title
:
'
备注
'
,
dataIndex
:
'
remark
'
,
width
:
200
},
{
title
:
'
未清余额
'
,
dataIndex
:
'
residueBackAmount
'
,
width
:
180
},
{
title
:
'
账龄
'
,
dataIndex
:
'
diffDay
'
,
width
:
180
},
{
title
:
'
操作
'
,
key
:
'
operation
'
,
width
:
'
175px
'
,
fixed
:
'
right
'
,
scopedSlots
:
{
customRender
:
'
operation
'
},
align
:
'
center
'
}
];
return
{
columns
,
receiptTypeOptions
,
form
:
{},
pageForm
:
{
doctorCode
:
''
,
patientName
:
''
,
mrnNo
:
''
,
paymentCode
:
''
,
payorIds
:
[],
visitTimeEnd
:
''
,
visitTimeStart
:
''
,
receiptType
:
''
,
receiptNo
:
''
},
patientTypeOptions
:
[
{
name
:
'
商保
'
,
code
:
1
}
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
'
商保
'
,
code
:
1
}
],
//支付方式
dataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
},
receiptTypeDict
:
{
1
:
'
收费
'
,
2
:
'
退费
'
},
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
]
};
},
components
:
{
BurtPagination
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
})
},
// 获取列表数据
_getChargeList
()
{
const
data
=
{
...
this
.
pageForm
,
...
this
.
pagination
,
};
this
.
$apis
.
GETCHARGELIST
(
data
).
then
((
res
)
=>
{
let
content
=
res
.
content
||
{};
this
.
dataList
=
content
.
list
.
map
(
item
=>
{
item
.
receiptTypeStr
=
this
.
receiptTypeDict
[
item
.
receiptType
]
||
''
return
item
})
||
[];
this
.
pagination
.
total
=
content
.
total
||
0
;
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage
(){
this
.
$apis
.
GETDOCTORlISTNOPAGE
({
"
providerId
"
:
this
.
userInfo
.
providerId
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
doctorOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
success
(
res
.
returnMsg
);
}
});
},
// 选中就诊时间
onSelectVisitTime
(
date
,
dateString
)
{
this
.
form
.
visitTimeStart
=
dateString
[
0
]
+
'
00:00:00
'
this
.
form
.
visitTimeEnd
=
dateString
[
1
]
+
'
23:59:59
'
console
.
log
(
date
,
dateString
);
},
// 重置
handlerReset
()
{
this
.
form
=
{}
},
//查看
detailEvt
(
record
)
{
localStorage
.
setItem
(
'
chargeQueryDetail
'
,
JSON
.
stringify
(
record
));
const
{
receiptNo
}
=
record
;
this
.
$router
.
push
({
name
:
"
chargeQueryDetail
"
,
query
:
{
receiptNo
},
});
},
//账单结算
receiptEvt
(
record
){
this
.
$modal
.
confirm
({
title
:
"
结算
"
,
content
:
"
确定结算该账单?
"
,
okText
:
"
确定
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
RECEIPTSETTLEMENT
({
id
:
record
.
id
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
$message
.
success
(
'
结算成功
'
);
this
.
_getChargeList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
});
},
handlerSearch
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
false
;
}
this
.
pagination
.
pageNum
=
1
;
this
.
pageForm
=
this
.
$lodash
.
cloneDeep
({...
this
.
form
,
dateRange
:
undefined
});
this
.
_getChargeList
();
});
},
// 新建账单信息
addNewCharge
()
{
// this.$router.push("/customer/edit");
},
created
()
{
this
.
_getCompanyOptions
();
this
.
_getDoctorListNoPage
();
//获取医生下拉选项
},
methods
:
{
moment
,
// 选择框筛选
filterCode
(
input
,
option
)
{
return
option
.
componentOptions
.
children
[
0
].
text
.
toLowerCase
().
indexOf
(
input
.
toLowerCase
())
>=
0
;
},
// 获取列表数据
_getChargeList
()
{
const
data
=
{
...
this
.
pageForm
,
...
this
.
pagination
};
this
.
$apis
.
GETCHARGELIST
(
data
).
then
((
res
)
=>
{
let
content
=
res
.
content
||
{};
this
.
dataList
=
content
.
list
.
map
((
item
)
=>
{
item
.
receiptTypeStr
=
this
.
receiptTypeDict
[
item
.
receiptType
]
||
''
;
return
item
;
})
||
[];
this
.
pagination
.
total
=
content
.
total
||
0
;
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage
()
{
this
.
$apis
.
GETDOCTORlISTNOPAGE
({
providerId
:
this
.
userInfo
.
providerId
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
'
0000
'
)
{
this
.
doctorOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
success
(
res
.
returnMsg
);
}
});
},
// 选中就诊时间
onSelectVisitTime
(
date
,
dateString
)
{
this
.
form
.
visitTimeStart
=
dateString
[
0
]
+
'
00:00:00
'
;
this
.
form
.
visitTimeEnd
=
dateString
[
1
]
+
'
23:59:59
'
;
console
.
log
(
date
,
dateString
);
},
// 重置
handlerReset
()
{
this
.
form
=
{};
},
//查看
detailEvt
(
record
)
{
localStorage
.
setItem
(
'
chargeQueryDetail
'
,
JSON
.
stringify
(
record
));
const
{
receiptNo
}
=
record
;
this
.
$router
.
push
({
name
:
'
chargeQueryDetail
'
,
query
:
{
receiptNo
}
});
},
//账单结算
receiptEvt
(
record
)
{
this
.
$modal
.
confirm
({
title
:
'
结算
'
,
content
:
'
确定结算该账单?
'
,
okText
:
'
确定
'
,
cancelText
:
'
取消
'
,
onOk
:
()
=>
{
this
.
$apis
.
RECEIPTSETTLEMENT
({
id
:
record
.
id
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
===
'
0000
'
)
{
this
.
$message
.
success
(
'
结算成功
'
);
this
.
_getChargeList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
}
});
},
handlerSearch
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
false
;
}
this
.
pagination
.
pageNum
=
1
;
this
.
pageForm
=
this
.
$lodash
.
cloneDeep
({
...
this
.
form
,
dateRange
:
undefined
});
this
.
_getChargeList
();
});
},
// 新建账单信息
addNewCharge
()
{
// this.$router.push("/customer/edit");
},
//导出报表
exportExcel
()
{
exportExcel
()
{
let
filter
=
{
...
this
.
form
,
}
this
.
$apis
.
RceiptListReport
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
账单报表.xls
'
);
})
}
},
...
this
.
form
}
;
this
.
$apis
.
RceiptListReport
(
filter
).
then
(
(
res
)
=>
{
exportFile
(
res
,
'
账单报表.xls
'
);
})
;
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
.mg-r(10);
}
</
style
>
src/views/verification/collectionDetail.vue
View file @
30e4ac19
<
template
>
<div
class=
"white_bg burt-container"
>
<Goback
title=
"回款详情"
/>
<a-tabs
v-model=
"activeKey"
@
change=
"paneChange"
>
<a-tab-pane
v-for=
"pane in panes"
:key=
"pane.key"
:tab=
"pane.title"
>
<template
v-if=
"activeKey === '0'"
>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
show-search
:disabled=
"!isEdit"
@
change=
"changePayor"
:filterOption=
"filterCode"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.payorCode"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款日期"
>
<a-date-picker
format=
"YYYY-MM-DD"
format-value=
"YYYY-MM-DD 00:00:00"
v-model=
"form.backDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.backAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.backAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"汇率差"
>
<a-input
v-model=
"form.backExchangeRate"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNos"
placeholder=
"请输入EOB编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入EOB备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"上传附件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:disabled=
"!isEdit"
:fileList=
"fileList"
:customRequest=
"(file) => uploadFile(file)"
:beforeUpload=
"() => beforeUpload()"
:remove=
"(file) => removeFile(file)"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</
template
>
<
template
v-else
>
<!-- form -->
<a-form-model
ref=
"form"
:labelCol=
"
{ span: 5 }"
:wrapperCol="{ span: 16 }"
:model="form"
class="bill-form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
show-search
:filter-option=
"filterOption"
:disabled=
"!isEdit"
@
change=
"changePayor"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.id"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div
class=
"bill-content"
>
<!-- 已关联账单 -->
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
<span>
已关联账单
</span>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
</div>
<a-table
class=
"table-content"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: '100%', y: 450 }"
:pagination="false"
>
<template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{color: text == 2 ? 'red' : ''}">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(record, index)"
>
删除
</a-button
>
</
template
>
</a-table>
</template>
<!-- table -->
<
template
v-if=
"isEdit"
>
<a-row
class=
"search-form"
>
<a-form-model
ref=
"searchForm"
layout=
"inline"
:labelCol=
"
{ span: 8 }"
:wrapperCol="{ span: 16 }"
:model="searchForm"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"5"
:sm=
"10"
>
<a-form-model-item
label=
"账单日期"
>
<a-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.billDate"
:placeholder=
"['开始时间', '结束时间']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"10"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"客户名称"
>
<a-input
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
style=
"width: 160px;"
v-model=
"searchForm.rStatus"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in statusOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"账单编号"
>
<a-input
v-model=
"searchForm.receiptNo"
placeholder=
"请输入账单编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"2"
:sm=
"12"
>
<div
class=
"btn-div mar-bottom10 none-label"
>
<a-button
type=
"primary"
@
click=
"_getNewEOBList"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
</div>
</a-col>
</a-row>
</a-form-model>
</a-row>
<div
class=
"table-title"
>
账单列表
</div>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: '100%', y: 300 }"
:pagination="false"
:rowKey="'id'"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onSelect: onSelectChange,
onSelectAll: onSelectAll,
}"
>
<template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{color: text == 2 ? 'red' : ''}">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
</template>
</div>
</template>
</a-tab-pane>
<div
v-if=
"isEdit"
slot=
"tabBarExtraContent"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(0)"
>
<Icon
:name=
"backMoneyNo ? 'ssibaocun' : 'ssiadd'"
:size=
"14"
/>
暂存
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(1)"
>
<Icon
:name=
"backMoneyNo ? 'ssibaocun' : 'ssiadd'"
:size=
"14"
/>
结案
</a-button>
</div>
</a-tabs>
</div>
<div
ref=
"burt"
class=
"white_bg burt-container"
>
<Goback
ref=
"goback"
title=
"回款详情"
/>
<a-tabs
v-model=
"activeKey"
@
change=
"paneChange"
>
<a-tab-pane
v-for=
"pane in panes"
:key=
"pane.key"
:tab=
"pane.title"
>
<a-form-model
ref=
"form"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"7"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
show-search
:disabled=
"!isEdit"
style=
"min-width: 200px"
@
change=
"changePayor"
:filterOption=
"filterCode"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.payorCode"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<template
v-if=
"activeKey === '0'"
>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款日期"
>
<a-date-picker
format=
"YYYY-MM-DD"
format-value=
"YYYY-MM-DD 00:00:00"
v-model=
"form.backDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
</
template
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.backAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
<
template
v-if=
"activeKey === '0'"
>
<a-col
:lg=
"7"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.backAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"汇率差"
>
<a-input
v-model=
"form.backExchangeRate"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNos"
placeholder=
"请输入EOB编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入EOB备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"上传附件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:disabled=
"!isEdit"
:fileList=
"fileList"
:customRequest=
"(file) => uploadFile(file)"
:beforeUpload=
"() => beforeUpload()"
:remove=
"(file) => removeFile(file)"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
</
template
>
</a-row>
</a-form-model>
<
template
v-if=
"activeKey === '1'"
>
<div
class=
"bill-content"
>
<a-tabs
type=
"card"
v-model=
"activeKey1"
>
<a-tab-pane
v-for=
"pane in panes1"
:key=
"pane.key"
:tab=
"pane.title"
>
<div>
<a-row
class=
"search-form"
>
<a-form-model
ref=
"searchForm"
layout=
"inline"
:labelCol=
"
{ span: 9 }"
:wrapperCol="{ span: 15 }"
:model="searchForm"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"5"
:sm=
"10"
>
<a-form-model-item
label=
"账单日期"
>
<a-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.billDate"
:placeholder=
"['开始时间', '结束时间']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"10"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"客户名称"
>
<a-input
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"searchForm.rStatus"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in statusOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"4"
:sm=
"12"
>
<a-form-model-item
label=
"账单编号"
>
<a-input
v-model=
"searchForm.receiptNo"
placeholder=
"请输入账单编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"2"
:sm=
"12"
>
<div
class=
"btn-div mar-bottom10 none-label"
>
<a-button
type=
"primary"
@
click=
"searchData"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
</div>
</a-col>
</a-row>
</a-form-model>
</a-row>
</div>
<!-- 已关联账单 -->
<template
v-if=
"activeKey1 === '0'"
>
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
</div>
<a-table
class=
"table-content"
:rowClassName=
"rowClassName"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: '100%', y: tableHeight }"
:pagination="false"
>
<template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{ color: text == 2 ? 'red' : '' }">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(record, index)"
>
删除
</a-button>
</
template
>
</a-table>
</template>
</template>
<
template
v-else
>
<!-- table -->
<template
v-if=
"isEdit"
>
<a-table
class=
"table-content all-list"
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: '100%', y: tableHeight }"
:pagination="false"
:rowKey="'id'"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onSelect: onSelectChange,
onSelectAll: onSelectAll
}"
>
<template
slot=
"status"
slot-scope=
"text"
>
<span
:style=
"
{ color: text == 2 ? 'red' : '' }">
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</span>
</
template
>
</a-table>
<BurtPagination
class=
"pagination"
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
</template>
</template>
</a-tab-pane>
</a-tabs>
</div>
</template>
</a-tab-pane>
<div
v-if=
"isEdit"
slot=
"tabBarExtraContent"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(0)"
>
<Icon
:name=
"backMoneyNo ? 'ssibaocun' : 'ssiadd'"
:size=
"14"
/>
暂存
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(1)"
>
<Icon
:name=
"backMoneyNo ? 'ssibaocun' : 'ssiadd'"
:size=
"14"
/>
结案
</a-button>
</div>
</a-tabs>
</div>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
{
EOBStatusOptions
}
from
"
@/utils/utilsdictOptions.js
"
;
import
Goback
from
'
@/components/CUSTOMER/goback
'
;
import
BurtPagination
from
'
@/components/CUSTOMER/pagation
'
;
import
{
EOBStatusOptions
}
from
'
@/utils/utilsdictOptions.js
'
;
import
{
exportFile
}
from
'
@/utils/index
'
;
import
moment
from
"
moment
"
;
import
mixins
from
"
@/mixins
"
;
import
moment
from
'
moment
'
;
import
mixins
from
'
@/mixins
'
;
const
panes
=
[
{
title
:
'
基础信息
'
,
key
:
'
0
'
,
show
:
true
,
content
:
'
PaymentClaims
'
},
{
title
:
'
账单列表
'
,
key
:
'
1
'
,
show
:
false
,
content
:
'
Insurance
'
}
];
const
panes1
=
[
{
title
:
'
已关联账单
'
,
key
:
'
0
'
,
show
:
true
,
content
:
'
Associated
'
},
{
title
:
'
全部账单
'
,
key
:
'
1
'
,
show
:
false
,
content
:
'
Insurance
'
}
];
export
default
{
data
()
{
return
{
isEdit
:
false
,
EOBStatusOptions
,
dialogShow
:
false
,
form
:
{
payorCode
:
""
,
backDate
:
null
,
backAmountCny
:
""
,
backAmountUsd
:
""
,
backExchangeRate
:
""
,
eobNos
:
""
,
// EOB编号
eobRemark
:
""
,
// EOB备注
},
fileList
:
[],
// 上传文件列表
dataList
:
[],
isEditNewEOB
:
false
,
//是否在新建回款
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
5
,
total
:
0
,
},
selectedRowKeys
:
[],
// Check here to configure the default column
selectedRows
:
[],
// Check here to configure the default column
backMoneyNo
:
""
,
editRules
:
{
backAmountUsd
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
backAmount
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
},
data
()
{
return
{
isEdit
:
false
,
EOBStatusOptions
,
dialogShow
:
false
,
form
:
{
payorCode
:
undefined
,
backDate
:
null
,
backAmountCny
:
''
,
backAmountUsd
:
''
,
backExchangeRate
:
''
,
eobNos
:
''
,
// EOB编号
eobRemark
:
''
// EOB备注
},
fileList
:
[],
// 上传文件列表
dataList
:
[],
isEditNewEOB
:
false
,
//是否在新建回款
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
5
,
total
:
0
},
selectedRowKeys
:
[],
// Check here to configure the default column
selectedRows
:
[],
// Check here to configure the default column
backMoneyNo
:
''
,
editRules
:
{
backAmountUsd
:
[{
required
:
true
,
message
:
'
请输入
'
,
trigger
:
'
blur
'
}],
backAmount
:
[{
required
:
true
,
message
:
'
请输入
'
,
trigger
:
'
blur
'
}]
},
searchForm
:
{
billDate
:
[],
mrnNo
:
""
,
// 病历号
patientName
:
""
,
// 客户名字
},
savedStatus
:
false
,
//是否已保存
relatedList
:
[],
searchForm
:
{
billDate
:
[],
mrnNo
:
''
,
// 病历号
patientName
:
''
// 客户名字
},
savedStatus
:
false
,
//是否已保存
relatedList
:
[],
panes
:
[
{
title
:
"
基础信息
"
,
key
:
"
0
"
,
show
:
true
,
content
:
"
PaymentClaims
"
},
{
title
:
"
账单列表
"
,
key
:
"
1
"
,
show
:
false
,
content
:
"
Insurance
"
},
],
activeKey
:
"
0
"
,
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
]
};
},
mixins
:
[
mixins
],
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
账单状态
"
,
dataIndex
:
"
status
"
,
ellipsis
:
true
,
width
:
150
,
scopedSlots
:
{
customRender
:
"
status
"
}
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
,
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
账单日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
180
,
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,
},
{
title
:
"
理赔账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
writeOffAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
arrearsAmountShow
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
];
return
base
;
},
selectedColumns
()
{
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
));
const
changeAmount
=
this
.
changeAmount
;
base
[
8
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
style
=
{{
"
color
"
:
row
.
backAmount
==
row
.
currentReceiptAmount
?
''
:
'
red
'
}}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
[
10
]
=
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
-
Number
(
row
.
arrearsAmount
||
0
);
return
Number
(
residueBackAmount
.
toFixed
(
2
));
},
};
base
[
9
]
=
{
title
:
"
个人欠费
"
,
dataIndex
:
"
arrearsAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
arrearsAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
.
splice
(
8
,
0
,
{
title
:
"
余末金额
"
,
dataIndex
:
"
currentReceiptAmount
"
,
ellipsis
:
true
,
width
:
150
,
});
base
.
push
({
title
:
"
回款日期
"
,
dataIndex
:
"
backDate
"
,
ellipsis
:
true
,
width
:
150
,
});
if
(
this
.
isEdit
)
{
base
.
push
({
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
fixed
:
"
right
"
,
width
:
100
,
scopedSlots
:
{
customRender
:
"
operation
"
},
});
}
return
base
;
},
// 可核销余额
residueBackAmount
()
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
);
this
.
selectedRows
.
forEach
((
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
);
});
return
Number
(
totalMoney
.
toFixed
(
2
));
},
},
created
()
{
const
{
backMoneyNo
,
isEdit
}
=
this
.
$route
.
query
;
this
.
backMoneyNo
=
backMoneyNo
;
this
.
isEdit
=
isEdit
;
this
.
_getCompanyOptions
();
if
(
backMoneyNo
)
{
const
backMoneyDataDetail
=
JSON
.
parse
(
localStorage
.
getItem
(
"
backMoneyDataDetail
"
)
||
"
{}
"
);
this
.
form
=
backMoneyDataDetail
;
this
.
form
.
backDate
=
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
"
YYYY-MM-DD 00:00:00
"
)
:
null
;
panes
:
Object
.
seal
(
panes
),
panes1
:
Object
.
seal
(
panes1
),
activeKey
:
'
0
'
,
activeKey1
:
'
0
'
,
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
],
tableHeight
:
200
// 表格高度
};
},
mixins
:
[
mixins
],
components
:
{
Goback
,
BurtPagination
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
'
账单编号
'
,
dataIndex
:
'
receiptNo
'
,
ellipsis
:
true
,
width
:
150
},
{
title
:
'
账单状态
'
,
dataIndex
:
'
status
'
,
ellipsis
:
true
,
width
:
150
,
scopedSlots
:
{
customRender
:
'
status
'
}
},
{
title
:
'
病历号
'
,
dataIndex
:
'
mrnNo
'
,
ellipsis
:
true
,
width
:
195
},
{
title
:
'
客户姓名
'
,
dataIndex
:
'
patientName
'
,
ellipsis
:
true
,
width
:
160
},
{
title
:
'
保险公司
'
,
dataIndex
:
'
payorName
'
,
ellipsis
:
true
,
width
:
195
},
{
title
:
'
账单日期
'
,
dataIndex
:
'
receiptDate
'
,
ellipsis
:
true
,
width
:
180
},
{
title
:
'
收银
'
,
dataIndex
:
'
receiptTellerName
'
,
ellipsis
:
true
,
width
:
120
},
{
title
:
'
理赔账单金额
'
,
dataIndex
:
'
actualAmount
'
,
ellipsis
:
true
,
width
:
150
},
{
title
:
'
回款金额
'
,
dataIndex
:
'
writeOffAmount
'
,
ellipsis
:
true
,
width
:
150
},
{
title
:
'
个人欠费
'
,
dataIndex
:
'
arrearsAmountShow
'
,
ellipsis
:
true
,
width
:
150
},
{
title
:
'
备注
'
,
dataIndex
:
'
remark
'
,
ellipsis
:
true
,
width
:
200
},
{
title
:
'
未清余额
'
,
dataIndex
:
'
residueBackAmount
'
,
ellipsis
:
true
,
width
:
150
}
];
return
base
;
},
selectedColumns
()
{
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
));
const
changeAmount
=
this
.
changeAmount
;
base
[
8
]
=
{
title
:
'
回款金额
'
,
dataIndex
:
'
backAmount
'
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
style
=
{{
color
:
row
.
backAmount
==
row
.
currentReceiptAmount
?
''
:
'
red
'
}}
onBlur
=
{()
=>
{
changeAmount
(
row
,
'
backAmount
'
);
}}
/>
);
}
};
base
[
10
].
customRender
=
(
val
,
row
)
=>
{
return
(
<
a
-
input
v
-
model
=
{
row
.
remark
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
this
.
syncData
(
row
);
}}
/>
);
};
base
[
11
]
=
{
title
:
'
未清余额
'
,
dataIndex
:
'
residueBackAmount
'
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
-
Number
(
row
.
arrearsAmount
||
0
);
return
Number
(
residueBackAmount
.
toFixed
(
2
));
}
};
base
[
9
]
=
{
title
:
'
个人欠费
'
,
dataIndex
:
'
arrearsAmount
'
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
arrearsAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
,
'
arrearsAmount
'
);
}}
/>
);
}
};
base
.
splice
(
8
,
0
,
{
title
:
'
余末金额
'
,
dataIndex
:
'
currentReceiptAmount
'
,
ellipsis
:
true
,
width
:
150
});
base
.
push
({
title
:
'
回款日期
'
,
dataIndex
:
'
backDate
'
,
ellipsis
:
true
,
width
:
150
});
if
(
this
.
isEdit
)
{
base
.
push
({
title
:
'
操作
'
,
dataIndex
:
'
operation
'
,
fixed
:
'
right
'
,
width
:
100
,
scopedSlots
:
{
customRender
:
'
operation
'
}
});
}
return
base
;
},
// 可核销余额
residueBackAmount
()
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
);
this
.
selectedRows
.
forEach
((
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
);
});
return
Number
(
totalMoney
.
toFixed
(
2
));
}
},
created
()
{
const
{
backMoneyNo
,
isEdit
}
=
this
.
$route
.
query
;
this
.
backMoneyNo
=
backMoneyNo
;
this
.
isEdit
=
isEdit
;
this
.
_getCompanyOptions
();
if
(
backMoneyNo
)
{
const
backMoneyDataDetail
=
JSON
.
parse
(
localStorage
.
getItem
(
'
backMoneyDataDetail
'
)
||
'
{}
'
);
this
.
form
=
backMoneyDataDetail
;
this
.
form
.
backDate
=
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
)
:
null
;
// 如果有上传附件则显示列表
if
(
backMoneyDataDetail
.
fileList
)
{
this
.
fileList
=
backMoneyDataDetail
.
fileList
.
map
((
d
)
=>
{
const
file
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
d
.
fileName
,
status
:
"
done
"
,
url
:
d
.
fileUrl
,
};
return
file
;
});
}
this
.
getData
();
}
this
.
_getNewEOBList
();
},
methods
:
{
moment
,
// 选择框筛选
filterCode
(
input
,
option
)
{
return
(
option
.
componentOptions
.
children
[
0
].
text
.
toLowerCase
()
.
indexOf
(
input
.
toLowerCase
())
>=
0
);
// 如果有上传附件则显示列表
if
(
backMoneyDataDetail
.
fileList
)
{
this
.
fileList
=
backMoneyDataDetail
.
fileList
.
map
((
d
)
=>
{
const
file
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
d
.
fileName
,
status
:
'
done
'
,
url
:
d
.
fileUrl
};
return
file
;
});
}
this
.
getData
();
}
},
mounted
()
{
this
.
calcTableHeight
();
this
.
_getNewEOBList
();
},
paneChange
()
{
this
.
panes
.
forEach
((
item
)
=>
{
item
.
show
=
false
;
});
this
.
panes
[
Number
(
this
.
activeKey
)].
show
=
true
;
},
changeAmount
(
row
)
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
);
this
.
selectedRows
.
forEach
((
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
);
});
if
(
totalMoney
<
0
){
this
.
$message
.
error
(
'
可核销余额不足
'
)
}
if
(
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
<
0
)
{
this
.
$message
.
warning
(
"
录入账单回款金额大于账单金额
"
);
}
},
onSelectChange
(
selectedRow
,
selected
)
{
selectedRow
[
'
backAmount
'
]
=
this
.
residueBackAmount
>
selectedRow
.
currentReceiptAmount
?
selectedRow
.
currentReceiptAmount
:
this
.
residueBackAmount
;
if
(
selected
)
{
this
.
selectedRowKeys
.
push
(
selectedRow
.
id
);
this
.
selectedRows
.
push
(
selectedRow
);
}
else
{
const
index
=
this
.
selectedRowKeys
.
findIndex
(
(
item
)
=>
item
===
selectedRow
.
id
);
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
this
.
_confirmDelReceipt
([
selectedRow
]);
}
this
.
addNewEvt
(
0
)
},
onSelectAll
(
selected
,
selectedRows
,
changeRows
)
{
console
.
log
(
selected
,
selectedRows
,
changeRows
);
if
(
selected
)
{
this
.
selectedRowKeys
=
this
.
selectedRowKeys
.
concat
(
changeRows
.
map
((
item
)
=>
item
.
id
)
);
this
.
selectedRows
=
this
.
selectedRows
.
concat
(
changeRows
);
}
else
{
changeRows
.
forEach
((
item
)
=>
{
const
findIndex
=
this
.
selectedRowKeys
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
this
.
selectedRowKeys
.
splice
(
findIndex
,
1
);
this
.
selectedRows
.
splice
(
findIndex
,
1
);
});
this
.
_confirmDelReceipt
(
changeRows
);
}
},
delRecord
(
record
,
index
)
{
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
if
(
record
.
relationed
)
{
// 已经关联的调用接口删除
this
.
_confirmDelReceipt
([
record
]);
}
},
_confirmDelReceipt
(
records
)
{
console
.
log
(
records
);
if
(
!
this
.
backMoneyNo
)
return
;
const
receiptVoList
=
records
.
filter
((
item
)
=>
{
const
findIndex
=
this
.
relatedList
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
return
findIndex
>
-
1
;
})
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
,
};
});
console
.
log
(
receiptVoList
);
if
(
receiptVoList
.
length
===
0
)
return
;
this
.
$apis
.
DELETERECEIPTRECORD
({
backMoneyNo
:
this
.
backMoneyNo
,
receiptVoList
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
_getNewEOBList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 修改保险公司
changePayor
()
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
)
)
{
this
.
$modal
.
confirm
({
title
:
"
提示
"
,
content
:
"
是否解除已关联账单
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
selectedRowKeys
=
[];
this
.
selectedRows
=
[];
},
onCancel
:
()
=>
{},
});
}
this
.
_getNewEOBList
();
},
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
,
};
this
.
_getNewEOBList
();
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取已关联的账单
getData
()
{
this
.
$apis
.
QUERYBACKRECEIPTLIST
({
pageNum
:
1
,
pageSize
:
999
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
const
list
=
res
.
content
.
list
||
[];
this
.
selectedRowKeys
=
list
.
map
((
d
)
=>
d
.
id
);
this
.
selectedRows
=
list
.
map
((
item
)
=>
{
item
.
relationed
=
true
;
return
item
;
});
this
.
relatedList
=
list
.
map
((
d
)
=>
d
.
id
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取所有账单
_getNewEOBList
()
{
let
billDate
=
this
.
searchForm
.
billDate
||
[];
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchForm
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
"
23:59:59
"
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
"
00:00:00
"
:
undefined
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
.
map
(
item
=>
{
item
.
arrearsAmountShow
=
item
.
arrearsAmount
item
.
arrearsAmount
=
''
return
item
})
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建/保存回款
addNewEvt
(
backStatus
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
console
.
log
(
this
.
selectedRows
);
if
(
!
this
.
form
.
payorCode
)
{
this
.
$message
.
warning
(
"
请选择保险公司
"
);
reject
();
return
;
}
if
(
!
this
.
form
.
backDate
)
{
this
.
$message
.
warning
(
"
请选择回款日期
"
);
reject
();
return
;
}
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
"
请输入回款金额
"
);
reject
();
return
;
}
let
receiptVoList
=
this
.
selectedRows
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
,
backAmount
:
item
.
backAmount
,
arrearsAmount
:
item
.
arrearsAmount
,
};
});
const
valid
=
receiptVoList
.
some
((
item
)
=>
{
const
exist
=
!
item
.
backAmount
&&
item
.
backAmount
!==
0
return
exist
;
});
if
(
valid
)
{
this
.
$message
.
warning
(
"
存在关联账单未输入回款金额
"
);
reject
();
return
;
}
methods
:
{
moment
,
// 计算表格最大高度
calcTableHeight
()
{
const
dom
=
this
.
$refs
.
burt
;
const
containterH
=
dom
.
clientHeight
;
const
gobackH
=
document
.
querySelector
(
'
.back-container
'
).
clientHeight
;
const
style
=
window
.
getComputedStyle
(
dom
,
null
);
const
paddingT
=
parseFloat
(
style
.
getPropertyValue
(
'
padding-top
'
));
const
paddingB
=
parseFloat
(
style
.
getPropertyValue
(
'
padding-bottom
'
));
const
paddingSum
=
paddingT
+
paddingB
;
this
.
tableHeight
=
containterH
-
350
-
gobackH
-
paddingSum
;
// 设置每页展示条数
const
pageSize
=
Math
.
floor
((
this
.
tableHeight
-
10
)
/
32
);
this
.
$set
(
this
.
pagination
,
'
pageSize
'
,
pageSize
);
},
// 已关联账单表格行类名
rowClassName
(
record
)
{
return
record
.
hidden
?
'
hide_
'
:
''
;
},
// 已关联账单数据同步
syncData
(
row
,
field
)
{
this
.
selectedRows
.
forEach
((
item
)
=>
{
if
(
item
.
id
===
row
.
id
)
{
item
[
field
]
=
row
[
field
];
}
});
},
// 账单查询
searchData
()
{
this
.
_getNewEOBList
();
this
.
getData
();
},
// 选择框筛选
filterCode
(
input
,
option
)
{
return
option
.
componentOptions
.
children
[
0
].
text
.
toLowerCase
().
indexOf
(
input
.
toLowerCase
())
>=
0
;
},
paneChange
()
{
this
.
panes
.
forEach
((
item
)
=>
{
item
.
show
=
false
;
});
this
.
panes
[
Number
(
this
.
activeKey
)].
show
=
true
;
},
changeAmount
(
row
,
field
)
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
);
this
.
selectedRows
.
forEach
((
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
);
});
if
(
totalMoney
<
0
)
{
this
.
$message
.
error
(
'
可核销余额不足
'
);
}
if
(
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
<
0
)
{
this
.
$message
.
warning
(
'
录入账单回款金额大于账单金额
'
);
}
this
.
syncData
(
row
,
field
);
},
onSelectChange
(
selectedRow
,
selected
)
{
selectedRow
[
'
backAmount
'
]
=
this
.
residueBackAmount
>
selectedRow
.
currentReceiptAmount
?
selectedRow
.
currentReceiptAmount
:
this
.
residueBackAmount
;
if
(
selected
)
{
this
.
selectedRowKeys
.
push
(
selectedRow
.
id
);
this
.
selectedRows
.
push
(
selectedRow
);
}
else
{
const
index
=
this
.
selectedRowKeys
.
findIndex
((
item
)
=>
item
===
selectedRow
.
id
);
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
this
.
_confirmDelReceipt
([
selectedRow
]);
}
this
.
addNewEvt
(
0
);
},
onSelectAll
(
selected
,
selectedRows
,
changeRows
)
{
console
.
log
(
selected
,
selectedRows
,
changeRows
);
if
(
selected
)
{
this
.
selectedRowKeys
=
this
.
selectedRowKeys
.
concat
(
changeRows
.
map
((
item
)
=>
item
.
id
));
this
.
selectedRows
=
this
.
selectedRows
.
concat
(
changeRows
);
}
else
{
changeRows
.
forEach
((
item
)
=>
{
const
findIndex
=
this
.
selectedRowKeys
.
findIndex
((
rowId
)
=>
rowId
===
item
.
id
);
this
.
selectedRowKeys
.
splice
(
findIndex
,
1
);
this
.
selectedRows
.
splice
(
findIndex
,
1
);
});
this
.
_confirmDelReceipt
(
changeRows
);
}
},
delRecord
(
record
,
index
)
{
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
if
(
record
.
relationed
)
{
// 已经关联的调用接口删除
this
.
_confirmDelReceipt
([
record
]);
}
},
_confirmDelReceipt
(
records
)
{
console
.
log
(
records
);
if
(
!
this
.
backMoneyNo
)
return
;
const
receiptVoList
=
records
.
filter
((
item
)
=>
{
const
findIndex
=
this
.
relatedList
.
findIndex
((
rowId
)
=>
rowId
===
item
.
id
);
return
findIndex
>
-
1
;
})
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
};
});
console
.
log
(
receiptVoList
);
if
(
receiptVoList
.
length
===
0
)
return
;
this
.
$apis
.
DELETERECEIPTRECORD
({
backMoneyNo
:
this
.
backMoneyNo
,
receiptVoList
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
'
0000
'
)
{
this
.
_getNewEOBList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 修改保险公司
changePayor
()
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
))
{
this
.
$modal
.
confirm
({
title
:
'
提示
'
,
content
:
'
是否解除已关联账单
'
,
okText
:
'
确认
'
,
cancelText
:
'
取消
'
,
onOk
:
()
=>
{
this
.
selectedRowKeys
=
[];
this
.
selectedRows
=
[];
},
onCancel
:
()
=>
{}
});
}
this
.
_getNewEOBList
();
},
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
};
this
.
_getNewEOBList
();
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取已关联的账单
getData
()
{
let
billDate
=
this
.
searchForm
.
billDate
||
[];
this
.
$apis
.
QUERYBACKRECEIPTLIST
({
pageNum
:
1
,
pageSize
:
999
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchForm
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
'
23:59:59
'
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
'
00:00:00
'
:
undefined
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
'
0000
'
)
{
const
list
=
res
.
content
.
list
||
[];
let
ids
=
[];
this
.
selectedRows
=
list
.
map
((
item
)
=>
{
item
.
relationed
=
true
;
ids
.
push
(
item
.
id
);
return
item
;
});
this
.
selectedRowKeys
=
this
.
$lodash
.
cloneDeep
(
ids
);
this
.
relatedList
=
this
.
$lodash
.
cloneDeep
(
ids
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取所有账单
_getNewEOBList
()
{
let
billDate
=
this
.
searchForm
.
billDate
||
[];
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchForm
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
'
23:59:59
'
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
'
00:00:00
'
:
undefined
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
'
0000
'
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
.
map
((
item
)
=>
{
item
.
arrearsAmountShow
=
item
.
arrearsAmount
;
item
.
arrearsAmount
=
''
;
return
item
;
})
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建/保存回款
addNewEvt
(
backStatus
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
this
.
form
.
payorCode
)
{
this
.
$message
.
warning
(
'
请选择保险公司
'
);
reject
();
return
;
}
if
(
!
this
.
form
.
backDate
)
{
this
.
$message
.
warning
(
'
请选择回款日期
'
);
reject
();
return
;
}
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
'
请输入回款金额
'
);
reject
();
return
;
}
let
receiptVoList
=
this
.
selectedRows
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
,
backAmount
:
item
.
backAmount
,
arrearsAmount
:
item
.
arrearsAmount
,
remark
:
item
.
remark
};
});
const
valid
=
receiptVoList
.
some
((
item
)
=>
{
const
exist
=
!
item
.
backAmount
&&
item
.
backAmount
!==
0
;
return
exist
;
});
if
(
valid
)
{
this
.
$message
.
warning
(
'
存在关联账单未输入回款金额
'
);
reject
();
return
;
}
const
formData
=
{
...
this
.
form
,
receiptVoList
,
backDate
:
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
)
:
""
,
backMoneyNo
:
this
.
backMoneyNo
,
//回款编号
backStatus
,
// 0暂存 1结案
};
const
formData
=
{
...
this
.
form
,
receiptVoList
,
backDate
:
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
:
''
,
backMoneyNo
:
this
.
backMoneyNo
,
//回款编号
backStatus
// 0暂存 1结案
};
// 上传附件格式转换
formData
.
fileList
=
this
.
fileList
.
map
((
d
)
=>
{
const
file
=
{
fileName
:
d
.
name
,
fileUrl
:
d
.
url
,
};
return
file
;
});
// 上传附件格式转换
formData
.
fileList
=
this
.
fileList
.
map
((
d
)
=>
{
const
file
=
{
fileName
:
d
.
name
,
fileUrl
:
d
.
url
};
return
file
;
});
this
.
$apis
.
SAVEBACKMONEY
(
formData
).
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
backMoneyNo
=
res
.
content
;
this
.
savedStatus
=
true
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
getData
();
this
.
_getNewEOBList
();
this
.
$apis
.
SAVEBACKMONEY
(
formData
).
then
((
res
)
=>
{
if
(
res
.
returnCode
==
'
0000
'
)
{
this
.
backMoneyNo
=
res
.
content
;
this
.
savedStatus
=
true
;
this
.
$message
.
success
(
'
成功
'
);
this
.
selectedRowKeys
=
[];
this
.
getData
();
this
.
_getNewEOBList
();
// this.$router.go(-1);
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
});
},
// this.$router.go(-1);
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
});
},
/* ======== 上传区域 ======== */
// 上传之前
beforeUpload
()
{
const
len
=
this
.
fileList
.
length
;
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
"
不能超过5个文件
"
);
return
false
;
}
return
true
;
},
// 删除文件
removeFile
(
file
)
{
let
index
;
this
.
fileList
.
forEach
((
item
,
i
)
=>
{
if
(
item
.
uid
==
file
.
uid
)
{
index
=
i
;
}
});
this
.
fileList
.
splice
(
index
,
1
);
return
true
;
},
// 上传文件
uploadFile
(
fileData
)
{
let
formData
=
new
FormData
();
formData
.
append
(
"
file
"
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
).
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
original
,
status
:
"
done
"
,
url
:
res
.
url
,
};
this
.
fileList
.
push
(
tmp
);
/* ======== 上传区域 ======== */
// 上传之前
beforeUpload
()
{
const
len
=
this
.
fileList
.
length
;
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
'
不能超过5个文件
'
);
return
false
;
}
return
true
;
},
// 删除文件
removeFile
(
file
)
{
let
index
;
this
.
fileList
.
forEach
((
item
,
i
)
=>
{
if
(
item
.
uid
==
file
.
uid
)
{
index
=
i
;
}
});
this
.
fileList
.
splice
(
index
,
1
);
return
true
;
},
// 上传文件
uploadFile
(
fileData
)
{
let
formData
=
new
FormData
();
formData
.
append
(
'
file
'
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
).
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
original
,
status
:
'
done
'
,
url
:
res
.
url
};
this
.
fileList
.
push
(
tmp
);
this
.
$forceUpdate
();
});
},
//导出报表
exportExcel
()
{
this
.
$forceUpdate
();
});
},
//导出报表
exportExcel
()
{
let
filter
=
{
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
}
this
.
$apis
.
EXPORTBACKRECEIPTLIST
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
已关联账单.xls
'
);
})
},
// 保险公司支持输入搜索
filterOption
(
input
,
option
)
{
return
option
.
componentOptions
.
children
[
0
].
text
.
indexOf
(
input
)
>=
0
}
},
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
}
;
this
.
$apis
.
EXPORTBACKRECEIPTLIST
(
filter
).
then
(
(
res
)
=>
{
exportFile
(
res
,
'
已关联账单.xls
'
);
})
;
},
// 保险公司支持输入搜索
filterOption
(
input
,
option
)
{
return
option
.
componentOptions
.
children
[
0
].
text
.
indexOf
(
input
)
>=
0
;
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.table-title {
font-size: 15px;
margin: 6px 0;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 15px;
margin: 6px 0;
text-align: right;
}
.table-content {
margin-bottom: 8px;
::v-deep {
tr.hide_ {
display: none;
}
td {
padding: 5px 16px !important;
}
}
}
.search-form {
margin-top: 24px;
.ant-form .ant-form-item {
margin-bottom: 4px;
}
.ant-form .ant-form-item {
margin-bottom: 4px;
}
}
.ant-btn .icon-class {
.mg-r(10);
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
color: #ff3b30;
}
.burt-container {
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
::v-deep {
.ant-tabs {
flex: 1;
min-height: 0;
}
}
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
padding-bottom: 10px;
::v-deep {
.ant-form-item {
display: flex;
}
.ant-tabs {
flex: 1;
min-height: 0;
}
}
}
.bill-content {
height: calc(100vh - 185px);
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
.pagination {
margin-top: 10px;
::v-deep .jump-page {
height: 30px;
}
}
}
::v-deep .bill-form {
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
}
</
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