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
a0d63754
Commit
a0d63754
authored
May 24, 2023
by
周留芳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商保系统回款功能修改
parent
c32f4a01
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1347 additions
and
1278 deletions
+1347
-1278
verification.js
src/api/apis_moudles/verification.js
+2
-0
verification.js
src/api/funcs_modules/verification.js
+13
-1
detail.vue
src/views/charge-query/detail.vue
+400
-391
index.vue
src/views/charge-query/index.vue
+322
-323
lpjManageDetail.vue
src/views/charge-query/lpjManageDetail.vue
+557
-559
collection.vue
src/views/verification/collection.vue
+14
-0
collectionDetail.vue
src/views/verification/collectionDetail.vue
+39
-4
No files found.
src/api/apis_moudles/verification.js
View file @
a0d63754
...
...
@@ -15,5 +15,7 @@ export default {
queryBackReceiptList
:
"
/backstage/auth/queryBackReceiptList
"
,
//回销关联账单列表查询
queryReceiptInfoList
:
"
/backstage/auth/queryReceiptInfoList
"
,
//回销账单列表查询
deleteReceiptRecord
:
"
/backstage/auth/deleteBackReceipt
"
,
// 删除已关联账单
exportBackMoneyReport
:
"
/backstage/auth/exportBackMoneyReport
"
,
// 回款列表导出
exportBackReceiptList
:
"
/backstage/auth/exportBackReceiptList
"
,
// 关联账单列表导出
};
src/api/funcs_modules/verification.js
View file @
a0d63754
...
...
@@ -67,6 +67,16 @@ const DELETERECEIPTRECORD = (data) => {
return
req
.
post
(
apis
.
deleteReceiptRecord
,
data
);
};
// 回款列表导出
const
EXPORTBACKMONEYREPORT
=
(
data
)
=>
{
return
req
.
post
(
apis
.
exportBackMoneyReport
,
data
,
{
responseType
:
"
blob
"
});
};
// 关联账单导出
const
EXPORTBACKRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
exportBackReceiptList
,
data
,
{
responseType
:
"
blob
"
});
};
// 对象数组
export
default
{
QUERYEOBLIST
,
...
...
@@ -82,5 +92,7 @@ export default {
EOBRECEIPLISTEXPORT
,
QUERYBACKRECEIPTLIST
,
QUERYBACKRECEIPTINFOLIST
,
DELETERECEIPTRECORD
DELETERECEIPTRECORD
,
EXPORTBACKMONEYREPORT
,
EXPORTBACKRECEIPTLIST
};
\ No newline at end of file
src/views/charge-query/detail.vue
View file @
a0d63754
<
template
>
<!-- -账单明细 -->
<div
class=
"white_bg burt-container custom-info"
>
<Goback
title=
"账单详情"
/>
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:xl=
"4"
: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=
"4"
: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=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户类型"
>
<a-select
v-model=
"form.patientType"
placeholder=
"请选择客户类型"
allowClear
>
<a-select-option
v-for=
"item in patientTypeOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorId"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"4"
: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=
"5"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"就诊时间"
>
<a-date-picker
value-format=
"YYYY-MM-DD 00:00:00"
v-model=
"form.receiptDate"
placeholder=
"就诊时间"
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"支付方式"
>
<a-select
v-model=
"form.paymentCode"
placeholder=
"请选择支付方式"
allowClear
>
<a-select-option
v-for=
"item in paymentOptions"
:key=
"item.code"
:value=
"item.code"
allow-clear
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"16"
:lg=
"12"
:sm=
"12"
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-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"operation"
slot-scope=
"record"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(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=
"footer"
>
<div
class=
"total"
>
总计:
<span>
{{
form
.
chargeAmount
||
0
}}
</span></div>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"_getChargeListDetail"
/>
<div
class=
"title-div"
>
费用支付明细
</div>
<a-table
:columns=
"payColumns"
:data-source=
"payDataList"
:scroll=
"{ x: true }"
:pagination=
"false"
class=
"payTable"
>
<
template
slot=
"paymentType"
slot-scope=
"text"
>
<a-button
class=
"danger"
>
{{
text
|
payStyleFilters
}}
</a-button>
</
template
>
</a-table>
<a-row
:gutter=
"30"
>
<a-col
:sm=
"24"
>
<div
class=
"btn-div flex"
>
<a-button
type=
"primary"
@
click=
"receiptEvt"
>
<Icon
name=
"ssibaocun"
:size=
"14"
/>
结算
</a-button>
<a-button
type=
"primary"
class=
"mar-left10"
@
click=
"printEvt"
>
<Icon
name=
"ssidayinji_o"
:size=
"14"
/>
打印
</a-button>
</div>
</a-col>
</a-row>
<a-modal
title=
"编辑"
:visible=
"dialogShow"
width=
"700px"
:maskClosable=
"false"
okText=
"确定"
cancelText=
"取消"
@
ok=
"handleEditOK"
@
cancel=
"dialogShow = false"
>
<a-form-model
ref=
"editForm"
:model=
"editFormObj"
:rules=
"editRules"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
{
mapState
}
from
"
vuex
"
export
default
{
data
()
{
const
columns
=
[
{
title
:
"
项目
"
,
dataIndex
:
"
itemcatDesc
"
,
width
:
180
},
{
title
:
"
项目明细
"
,
dataIndex
:
"
itemDesc
"
,
width
:
180
},
{
title
:
"
单价
"
,
dataIndex
:
"
itemPrice
"
,
width
:
120
},
{
title
:
"
数量
"
,
dataIndex
:
"
itemQty
"
,
width
:
180
},
{
title
:
"
单位
"
,
dataIndex
:
"
itemUnitDesc
"
,
width
:
180
},
{
title
:
"
金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
180
},
{
title
:
"
折扣(%)
"
,
dataIndex
:
"
discountAmount
"
,
width
:
180
},
{
title
:
"
折后金额
"
,
dataIndex
:
"
actualAmount
"
,
width
:
180
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
reduceAmount
"
,
width
:
180
},
{
title
:
"
实际金额
"
,
dataIndex
:
"
paidAmount
"
,
width
:
180
},
// { title: "免赔额", dataIndex: "deductible", width: 180 },
// { title: "自付额", dataIndex: "selfPaid", width: 180 },
// { title: "其他费用", dataIndex: "otherPaid", width: 180 },
// { title: "理赔金额", dataIndex: "actualPaid", width: 180 },
// { title: "操作", key: "operation", width: "175px", fixed: "right", scopedSlots: { customRender: "operation" },align: "center"},
];
const
payColumns
=
[
{
title
:
"
免赔额
"
,
dataIndex
:
"
deductible
"
,
width
:
180
},
{
title
:
"
自付额
"
,
dataIndex
:
"
selfPaid
"
,
width
:
180
},
{
title
:
"
其他费用
"
,
dataIndex
:
"
otherPaid
"
,
width
:
180
},
{
title
:
"
个人支付
"
,
dataIndex
:
"
personalPaid
"
,
width
:
180
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
ciPaid
"
,
width
:
180
},
{
title
:
"
支付方式
"
,
dataIndex
:
"
paymentType
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
paymentType
"
}},
];
return
{
dialogShow
:
false
,
receiptNo
:
""
,
columns
,
payColumns
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorId
:
0
,
receiptDate
:
""
},
patientTypeOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//支付方式
dataList
:
[],
pager
:
{
pageNum
:
1
,
pageSize
:
10
,
},
payDataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
editFormObj
:
{
id
:
""
,
mrnNo
:
''
,
patientName
:
''
,
},
editRules
:
{
mrnNo
:
[{
required
:
true
,
message
:
"
病历号
"
,
trigger
:
"
blur
"
}],
patientName
:
[{
required
:
true
,
message
:
"
客户姓名
"
,
trigger
:
"
blur
"
}],
},
};
},
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
})
},
filters
:
{
payStyleFilters
(
value
)
{
const
styleMap
=
{
1
:
"
支付宝
"
,
2
:
"
微信
"
,
3
:
"
现金
"
,
};
return
styleMap
[
value
];
},
},
created
()
{
const
{
receiptNo
}
=
this
.
$route
.
query
;
this
.
receiptNo
=
receiptNo
||
""
;
let
chargeQueryDetail
=
localStorage
.
getItem
(
'
chargeQueryDetail
'
);
this
.
form
=
chargeQueryDetail
?
JSON
.
parse
(
chargeQueryDetail
):
{};
this
.
_getChargeListDetail
();
this
.
_getCompanyOptions
();
//获取保险公司下拉选项
this
.
_getDoctorListNoPage
();
//获取看诊医生下拉选项
this
.
_getReceiptPaymentDetail
();
//费用支付明细
},
methods
:
{
// 获取列表数据
_getChargeListDetail
()
{
const
data
=
{
receiptNo
:
this
.
receiptNo
,
...
this
.
pager
,
};
this
.
$apis
.
GETCHARGELISTDETAIL
(
data
).
then
((
res
)
=>
{
console
.
log
(
"
11111111111获取table信息=
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
dataList
=
(
res
.
content
&&
res
.
content
.
list
)
||
[];
// this.pager.total = (res.content && res.content.total) || 0;
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
console
.
log
(
"
获取保险公司下拉选项
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
companyOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage
(){
this
.
$apis
.
GETDOCTORlISTNOPAGE
({
"
providerId
"
:
this
.
userInfo
.
providerId
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
doctorOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
success
(
res
.
returnMsg
);
}
});
},
// 获取费用支付明细
_getReceiptPaymentDetail
()
{
const
params
=
{
receiptNo
:
this
.
receiptNo
,
...
this
.
payPager
,
};
this
.
$apis
.
GETRECEIPTPAYMENTDETAIL
(
params
).
then
((
res
)
=>
{
console
.
log
(
"
获取费用支付明细
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
payDataList
=
content
;
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//账单结算
receiptEvt
(){
this
.
$modal
.
confirm
({
title
:
"
结算
"
,
content
:
"
确定结算该账单?
"
,
okText
:
"
确定
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
RECEIPTSETTLEMENT
({
id
:
this
.
form
.
id
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
$message
.
success
(
'
结算成功
'
);
this
.
pagination
.
pageNum
=
1
;
this
.
_getChargeListDetail
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
});
},
//打印
printEvt
(){
this
.
$apis
.
RECEIPTPRINT
({
id
:
this
.
form
.
id
}).
then
(
res
=>
{
if
(
res
.
returnCode
==
'
0000
'
){
let
url
=
res
.
content
;
let
link
=
document
.
createElement
(
'
a
'
);
link
.
setAttribute
(
'
href
'
,
url
);
link
.
setAttribute
(
'
target
'
,
"
_blank
"
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
})
},
// 重置
handlerReset
()
{
const
{
mrnNo
,
patientName
}
=
this
.
form
;
this
.
form
=
{
mrnNo
,
patientName
};
},
editEvt
(
record
)
{
this
.
editFormObj
=
{
id
:
record
.
id
||
""
,
};
this
.
dialogShow
=
true
;
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
11
)
}
});
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
this
.
pageForm
=
this
.
$lodash
.
cloneDeep
(
this
.
form
);
this
.
_getChargeListDetail
();
},
deleteData
()
{
this
.
$message
.
success
(
"
删除成功
"
);
},
// 新建账单信息
addNewCharge
()
{
// this.$router.push("/customer/edit");
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.title-div {
line-height: 56px;
color: #252631;
font-weight: bold;
border-bottom: 1px solid #eee;
}
.payTable{
.ant-btn{
border-color: #1890ff;
color: #1890ff;
}
}
.btn-div{
margin-top: 10px;
justify-content: flex-end;
}
.total{
font-weight: 600;
span{
color: red;
}
}
</
style
>
<
template
>
<!-- -账单明细 -->
<div
class=
"white_bg burt-container custom-info"
>
<Goback
title=
"账单详情"
/>
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:xl=
"4"
: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=
"4"
: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=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户类型"
>
<a-select
v-model=
"form.patientType"
placeholder=
"请选择客户类型"
allowClear
>
<a-select-option
v-for=
"item in patientTypeOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorId"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"4"
: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=
"5"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"就诊时间"
>
<a-date-picker
value-format=
"YYYY-MM-DD 00:00:00"
v-model=
"form.receiptDate"
placeholder=
"就诊时间"
/>
</a-form-model-item>
</a-col>
<a-col
:xl=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"支付方式"
>
<a-select
v-model=
"form.paymentCode"
placeholder=
"请选择支付方式"
allowClear
>
<a-select-option
v-for=
"item in paymentOptions"
:key=
"item.code"
:value=
"item.code"
allow-clear
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"16"
:lg=
"12"
:sm=
"12"
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-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"operation"
slot-scope=
"record"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(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=
"footer"
>
<div
class=
"total"
>
总计:
<span>
{{
sumAmount
||
0
}}
</span></div>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"_getChargeListDetail"
/>
<div
class=
"title-div"
>
费用支付明细
</div>
<a-table
:columns=
"payColumns"
:data-source=
"payDataList"
:scroll=
"{ x: true }"
:pagination=
"false"
class=
"payTable"
>
<
template
slot=
"paymentType"
slot-scope=
"text"
>
<a-button
class=
"danger"
>
{{
text
|
payStyleFilters
}}
</a-button>
</
template
>
</a-table>
<a-row
:gutter=
"30"
>
<a-col
:sm=
"24"
>
<div
class=
"btn-div flex"
>
<a-button
type=
"primary"
@
click=
"receiptEvt"
>
<Icon
name=
"ssibaocun"
:size=
"14"
/>
结算
</a-button>
<a-button
type=
"primary"
class=
"mar-left10"
@
click=
"printEvt"
>
<Icon
name=
"ssidayinji_o"
:size=
"14"
/>
打印
</a-button>
</div>
</a-col>
</a-row>
<a-modal
title=
"编辑"
:visible=
"dialogShow"
width=
"700px"
:maskClosable=
"false"
okText=
"确定"
cancelText=
"取消"
@
ok=
"handleEditOK"
@
cancel=
"dialogShow = false"
>
<a-form-model
ref=
"editForm"
:model=
"editFormObj"
:rules=
"editRules"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
{
mapState
}
from
"
vuex
"
export
default
{
data
()
{
const
columns
=
[
{
title
:
"
项目
"
,
dataIndex
:
"
itemcatDesc
"
,
width
:
180
},
{
title
:
"
项目明细
"
,
dataIndex
:
"
itemDesc
"
,
width
:
180
},
{
title
:
"
单价
"
,
dataIndex
:
"
itemPrice
"
,
width
:
120
},
{
title
:
"
数量
"
,
dataIndex
:
"
itemQty
"
,
width
:
180
},
{
title
:
"
单位
"
,
dataIndex
:
"
itemUnitDesc
"
,
width
:
180
},
{
title
:
"
金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
180
},
{
title
:
"
折扣(%)
"
,
dataIndex
:
"
discountAmount
"
,
width
:
180
},
// { title: "折后金额", dataIndex: "actualAmount", width: 180 },
{
title
:
"
减免金额
"
,
dataIndex
:
"
reduceAmount
"
,
width
:
180
},
{
title
:
"
实际金额
"
,
dataIndex
:
"
paidAmount
"
,
width
:
180
},
// { title: "免赔额", dataIndex: "deductible", width: 180 },
// { title: "自付额", dataIndex: "selfPaid", width: 180 },
// { title: "其他费用", dataIndex: "otherPaid", width: 180 },
// { title: "理赔金额", dataIndex: "actualPaid", width: 180 },
// { title: "操作", key: "operation", width: "175px", fixed: "right", scopedSlots: { customRender: "operation" },align: "center"},
];
const
payColumns
=
[
{
title
:
"
免赔额
"
,
dataIndex
:
"
deductible
"
,
width
:
180
},
{
title
:
"
自付额
"
,
dataIndex
:
"
selfPaid
"
,
width
:
180
},
{
title
:
"
其他费用
"
,
dataIndex
:
"
otherPaid
"
,
width
:
180
},
{
title
:
"
个人支付
"
,
dataIndex
:
"
personalPaid
"
,
width
:
180
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
ciPaid
"
,
width
:
180
},
{
title
:
"
支付方式
"
,
dataIndex
:
"
paymentType
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
paymentType
"
}},
];
return
{
dialogShow
:
false
,
receiptNo
:
""
,
columns
,
payColumns
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorId
:
0
,
receiptDate
:
""
},
patientTypeOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//支付方式
dataList
:
[],
pager
:
{
pageNum
:
1
,
pageSize
:
10
,
},
payDataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
editFormObj
:
{
id
:
""
,
mrnNo
:
''
,
patientName
:
''
,
},
editRules
:
{
mrnNo
:
[{
required
:
true
,
message
:
"
病历号
"
,
trigger
:
"
blur
"
}],
patientName
:
[{
required
:
true
,
message
:
"
客户姓名
"
,
trigger
:
"
blur
"
}],
},
};
},
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
}),
sumAmount
()
{
let
total
=
0
this
.
dataList
.
forEach
(
item
=>
{
total
+=
Number
(
item
.
paidAmount
||
0
)
})
return
Number
(
total
.
toFixed
(
2
))
}
},
filters
:
{
payStyleFilters
(
value
)
{
const
styleMap
=
{
1
:
"
支付宝
"
,
2
:
"
微信
"
,
3
:
"
现金
"
,
};
return
styleMap
[
value
];
},
},
created
()
{
const
{
receiptNo
}
=
this
.
$route
.
query
;
this
.
receiptNo
=
receiptNo
||
""
;
let
chargeQueryDetail
=
localStorage
.
getItem
(
'
chargeQueryDetail
'
);
this
.
form
=
chargeQueryDetail
?
JSON
.
parse
(
chargeQueryDetail
):
{};
console
.
log
(
this
.
form
)
this
.
_getChargeListDetail
();
this
.
_getCompanyOptions
();
//获取保险公司下拉选项
this
.
_getDoctorListNoPage
();
//获取看诊医生下拉选项
this
.
_getReceiptPaymentDetail
();
//费用支付明细
},
methods
:
{
// 获取列表数据
_getChargeListDetail
()
{
const
data
=
{
receiptNo
:
this
.
receiptNo
,
basereceiptId
:
this
.
form
.
externalId
,
...
this
.
pager
,
};
this
.
$apis
.
GETCHARGELISTDETAIL
(
data
).
then
((
res
)
=>
{
console
.
log
(
"
11111111111获取table信息=
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
dataList
=
(
res
.
content
&&
res
.
content
.
list
)
||
[];
// this.pager.total = (res.content && res.content.total) || 0;
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
console
.
log
(
"
获取保险公司下拉选项
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
companyOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage
(){
this
.
$apis
.
GETDOCTORlISTNOPAGE
({
"
providerId
"
:
this
.
userInfo
.
providerId
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
doctorOptions
=
res
.
content
||
[];
}
else
{
this
.
$message
.
success
(
res
.
returnMsg
);
}
});
},
// 获取费用支付明细
_getReceiptPaymentDetail
()
{
const
params
=
{
receiptNo
:
this
.
receiptNo
,
...
this
.
payPager
,
};
this
.
$apis
.
GETRECEIPTPAYMENTDETAIL
(
params
).
then
((
res
)
=>
{
console
.
log
(
"
获取费用支付明细
"
,
res
);
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
payDataList
=
content
;
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//账单结算
receiptEvt
(){
this
.
$modal
.
confirm
({
title
:
"
结算
"
,
content
:
"
确定结算该账单?
"
,
okText
:
"
确定
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
RECEIPTSETTLEMENT
({
id
:
this
.
form
.
id
}).
then
((
res
)
=>
{
if
(
res
.
returnCode
===
"
0000
"
)
{
this
.
$message
.
success
(
'
结算成功
'
);
this
.
pagination
.
pageNum
=
1
;
this
.
_getChargeListDetail
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
});
},
//打印
printEvt
(){
this
.
$apis
.
RECEIPTPRINT
({
id
:
this
.
form
.
id
}).
then
(
res
=>
{
if
(
res
.
returnCode
==
'
0000
'
){
let
url
=
res
.
content
;
let
link
=
document
.
createElement
(
'
a
'
);
link
.
setAttribute
(
'
href
'
,
url
);
link
.
setAttribute
(
'
target
'
,
"
_blank
"
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
})
},
// 重置
handlerReset
()
{
const
{
mrnNo
,
patientName
}
=
this
.
form
;
this
.
form
=
{
mrnNo
,
patientName
};
},
editEvt
(
record
)
{
this
.
editFormObj
=
{
id
:
record
.
id
||
""
,
};
this
.
dialogShow
=
true
;
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
11
)
}
});
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
this
.
pageForm
=
this
.
$lodash
.
cloneDeep
(
this
.
form
);
this
.
_getChargeListDetail
();
},
deleteData
()
{
this
.
$message
.
success
(
"
删除成功
"
);
},
// 新建账单信息
addNewCharge
()
{
// this.$router.push("/customer/edit");
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.title-div {
line-height: 56px;
color: #252631;
font-weight: bold;
border-bottom: 1px solid #eee;
}
.payTable{
.ant-btn{
border-color: #1890ff;
color: #1890ff;
}
}
.btn-div{
margin-top: 10px;
justify-content: flex-end;
}
.total{
font-weight: 600;
span{
color: red;
}
}
</
style
>
src/views/charge-query/index.vue
View file @
a0d63754
<
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=
"4"
: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=
"4"
: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=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户类型"
>
<a-select
v-model=
"form.patientType"
placeholder=
"请选择客户类型"
allowClear
>
<a-select-option
v-for=
"item in patientTypeOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorId"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"4"
: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=
"5"
: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=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"支付方式"
>
<a-select
v-model=
"form.paymentCode"
placeholder=
"请选择支付方式"
allowClear
>
<a-select-option
v-for=
"item in paymentOptions"
:key=
"item.code"
:value=
"item.code"
allow-clear
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"3"
: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=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已关联EOB"
>
<a-select
v-model=
"form.isEob"
placeholder=
"请选择是否已关联EOB"
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=
"3"
: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=
"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>
<!-- 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
>
</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
{
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
:
"
mrnNo
"
,
width
:
180
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
120
,},
{
title
:
"
客户类型
"
,
dataIndex
:
"
patientType
"
,
width
:
180
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
width
:
200
},
{
title
:
"
就诊医生
"
,
dataIndex
:
"
doctorName
"
,
width
:
150
},
{
title
:
"
是否已关联寄送单
"
,
dataIndex
:
"
isSend
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isSend
"
}
},
{
title
:
"
是否已关联EOB
"
,
dataIndex
:
"
isEob
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isEob
"
}
},
{
title
:
"
是否已回款
"
,
dataIndex
:
"
isEobBack
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isEobBack
"
}
},
{
title
:
"
账单金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
180
},
{
title
:
"
折扣(%)
"
,
dataIndex
:
"
discountAmount
"
,
width
:
180
},
{
title
:
"
折后金额
"
,
dataIndex
:
"
actualAmount
"
,
width
:
180
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
180
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
reduceAmount1
"
,
width
:
180
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
claimsAmount
"
,
width
:
180
},
{
title
:
"
保险已支付
"
,
dataIndex
:
"
insurancePaidAmount
"
,
width
:
180
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
outstandAmount
"
,
width
:
180
},
{
title
:
"
保险欠费
"
,
dataIndex
:
"
insuranceArrearsAmount
"
,
width
:
180
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
personalArrearsAmount
"
,
width
:
180
},
{
title
:
"
发票号码
"
,
dataIndex
:
"
receiptNo
"
,
width
:
180
},
{
title
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
175px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
align
:
"
center
"
},
];
return
{
columns
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorId
:
0
,
visitTimeEnd
:
""
,
visitTimeStart
:
""
,
},
patientTypeOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//支付方式
dataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
};
},
components
:
{
BurtPagination
,
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
})
},
created
()
{
this
.
_getCompanyOptions
();
this
.
_getDoctorListNoPage
();
//获取医生下拉选项
},
methods
:
{
moment
,
// 获取列表数据
_getChargeList
()
{
const
data
=
{
...
this
.
pageForm
,
...
this
.
pagination
,
};
this
.
$apis
.
GETCHARGELIST
(
data
).
then
((
res
)
=>
{
let
content
=
res
.
content
||
{};
this
.
dataList
=
content
.
list
||
[];
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
(){
let
filter
=
{
...
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;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
</
style
>
<
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=
"4"
: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=
"4"
: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=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"客户类型"
>
<a-select
v-model=
"form.patientType"
placeholder=
"请选择客户类型"
allowClear
>
<a-select-option
v-for=
"item in patientTypeOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"4"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorId"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"4"
: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=
"5"
: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=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"支付方式"
>
<a-select
v-model=
"form.paymentCode"
placeholder=
"请选择支付方式"
allowClear
>
<a-select-option
v-for=
"item in paymentOptions"
:key=
"item.code"
:value=
"item.code"
allow-clear
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"3"
: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=
"3"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"是否已关联EOB"
>
<a-select
v-model=
"form.isEob"
placeholder=
"请选择是否已关联EOB"
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=
"3"
: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=
"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>
<!-- 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
>
</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
{
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
:
"
mrnNo
"
,
width
:
180
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
120
,},
{
title
:
"
客户类型
"
,
dataIndex
:
"
patientType
"
,
width
:
180
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
width
:
200
},
{
title
:
"
就诊医生
"
,
dataIndex
:
"
doctorName
"
,
width
:
150
},
{
title
:
"
是否已关联寄送单
"
,
dataIndex
:
"
isSend
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isSend
"
}
},
{
title
:
"
是否已关联EOB
"
,
dataIndex
:
"
isEob
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isEob
"
}
},
{
title
:
"
是否已回款
"
,
dataIndex
:
"
isEobBack
"
,
width
:
180
,
scopedSlots
:
{
customRender
:
"
isEobBack
"
}
},
{
title
:
"
应收金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
180
},
{
title
:
"
折扣(%)
"
,
dataIndex
:
"
discountAmount
"
,
width
:
180
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
180
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
reduceAmount1
"
,
width
:
180
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
actualAmount
"
,
width
:
180
},
{
title
:
"
保险已支付
"
,
dataIndex
:
"
insurancePaidAmount
"
,
width
:
180
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
outstandAmount
"
,
width
:
180
},
{
title
:
"
保险欠费
"
,
dataIndex
:
"
insuranceArrearsAmount
"
,
width
:
180
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
personalArrearsAmount
"
,
width
:
180
},
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
width
:
180
},
{
title
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
175px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
align
:
"
center
"
},
];
return
{
columns
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorId
:
0
,
visitTimeEnd
:
""
,
visitTimeStart
:
""
,
},
patientTypeOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//客户类型
companyOptions
:
[],
//保险公司
doctorOptions
:
[],
//就诊医生
paymentOptions
:
[
{
name
:
"
商保
"
,
code
:
1
,
},
],
//支付方式
dataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
};
},
components
:
{
BurtPagination
,
},
computed
:
{
...
mapState
({
userInfo
:
(
state
)
=>
state
.
common
.
userInfo
})
},
created
()
{
this
.
_getCompanyOptions
();
this
.
_getDoctorListNoPage
();
//获取医生下拉选项
},
methods
:
{
moment
,
// 获取列表数据
_getChargeList
()
{
const
data
=
{
...
this
.
pageForm
,
...
this
.
pagination
,
};
this
.
$apis
.
GETCHARGELIST
(
data
).
then
((
res
)
=>
{
let
content
=
res
.
content
||
{};
this
.
dataList
=
content
.
list
||
[];
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
(){
let
filter
=
{
...
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;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
</
style
>
src/views/charge-query/lpjManageDetail.vue
View file @
a0d63754
<
template
>
<!-- 收费查询-账单查询 -->
<div
class=
"white_bg burt-container custom-info"
>
<Goback
title=
"理赔件详情"
/>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"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
:disabled=
"!isEdit"
>
<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-select
v-model=
"form.sendSts"
placeholder=
"请选择寄送状态"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
value=
"1"
>
已寄送
</a-select-option>
<a-select-option
value=
"2"
>
未寄送
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"快递公司"
>
<a-select
v-model=
"form.sendCompany"
placeholder=
"请选择快递公司"
showSearch
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
v-for=
"(item) in expressList"
:key=
"item.id"
:value=
"item.descCh"
>
{{
item
.
descCh
}}
</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=
"form.trackingNo"
placeholder=
"请输入快递单号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送方式"
>
<a-select
v-model=
"form.sendMode"
placeholder=
"请选择寄送方式"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
value=
"快递"
>
快递
</a-select-option>
<a-select-option
value=
"邮件"
>
邮件
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送日期"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"form.sendDate"
placeholder=
"选择日期"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送地址"
>
<a-input
v-model=
"form.sendAddress"
placeholder=
"请输入寄送地址"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送邮箱"
>
<a-input
v-model=
"form.sendEmail"
placeholder=
"请输入寄送邮箱"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送备注"
>
<a-textarea
v-model=
"form.sendRemark"
placeholder=
"请输入寄送备注"
:auto-size=
"
{ minRows: 2, maxRows: 5 }" allow-clear :disabled="!isEdit" />
</a-form-model-item>
</a-col>
<a-col
:sm=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<div
class=
"btn-div flex"
>
<span></span>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewCharge"
>
<Icon
:name=
"sendBatchNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
sendBatchNo
?
'
保存寄送
'
:
'
新建寄送
'
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"searchForm"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"就诊日期"
>
<a-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.visitTimeStart"
:placeholder=
"['选择就诊开始日期', '选择就诊结束日期']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"客户名称"
>
<a-input
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
:gutter=
"30"
>
<a-col
:sm=
"24"
class=
"none-label"
>
<div
class=
"btn-div flex"
>
<span></span>
<a-form-model-item
label=
"button"
>
<a-button
type=
"primary"
@
click=
"handlerSearch"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportEvt"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewBill"
v-if=
"isEdit"
>
<Icon
:name=
"isEditNewBill?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
isEditNewBill
?
'
保存账单
'
:
'
添加账单
'
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false"
:row-selection="isEditNewBill? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null">
<template
slot=
"sendDate"
slot-scope=
"text"
>
{{
text
?
moment
(
text
).
format
(
'
YYYY-MM-DD
'
):
''
}}
</
template
>
<
template
slot=
"sendSts"
slot-scope=
"text"
>
{{
text
==
1
?
'
已寄送
'
:
'
未寄送
'
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record"
>
<!--
<a-button
type=
"link"
@
click.stop=
"editEvt(record)"
>
修改
</a-button>
-->
<a-button
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(record)"
>
删除
</a-button>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"getPageData"
/>
<a-modal
title=
"编辑"
:visible=
"dialogShow"
width=
"700px"
:maskClosable=
"false"
okText=
"确定"
cancelText=
"取消"
@
ok=
"handleEditOK"
@
cancel=
"dialogShow = false"
>
<a-form-model
ref=
"editForm"
:model=
"editFormObj"
:rules=
"editRules"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"保险公司"
prop=
"payorCode"
>
<a-select
v-model=
"editFormObj.payorCode"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"12"
:sm=
"24"
>
<a-form-model-item
label=
"寄送状态"
prop=
"sendSts"
>
<a-select
v-model=
"editFormObj.sendSts"
placeholder=
"请选择寄送状态"
allowClear
>
<a-select-option
:value=
"1"
>
已寄送
</a-select-option>
<a-select-option
:value=
"2"
>
未寄送
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:sm=
"24"
>
<a-form-model-item
label=
"寄送日期"
prop=
"sendDate"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"editFormObj.sendDate"
placeholder=
"选择日期"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"快递单号"
prop=
"trackingNo"
>
<a-input
v-model.trim=
"editFormObj.trackingNo"
placeholder=
"快递单号"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"寄送备注"
prop=
"sendRemark"
>
<a-textarea
v-model.trim=
"editFormObj.sendRemark"
placeholder=
"寄送备注"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
moment
from
'
moment
'
import
{
numValid
}
from
"
@/utils/index
"
export
default
{
data
()
{
return
{
loading
:
false
,
dialogShow
:
false
,
isEdit
:
false
,
sendBatchNo
:
''
,
//寄送批号
form
:
{
payorCode
:
''
,
sendSts
:
''
,
sendMode
:
''
,
sendDate
:
''
,
sendCompany
:
''
,
trackingNo
:
''
,
sendAddress
:
''
,
sendEmail
:
''
,
sendRemark
:
''
},
searchForm
:
{},
searchData
:
{},
companyOptions
:
[],
//保险公司
expressList
:
[],
//快递列表
selectedRowKeys
:
[],
// Check here to configure the default column
dataList
:
[],
cacheDataList
:
{},
isEditNewBill
:
false
,
//是否在新建账单
pagination
:
{
pageNum
:
1
,
pageSize
:
100
,
total
:
0
,
},
editFormObj
:
{
payorCode
:
''
,
sendSts
:
''
,
sendDate
:
''
,
trackingNo
:
''
,
sendRemark
:
''
,
},
editRules
:
{
sendDate
:
[{
required
:
true
,
message
:
"
请选择寄送日期
"
,
trigger
:
"
change
"
}],
trackingNo
:
[{
required
:
true
,
message
:
"
请输入寄送单号
"
,
trigger
:
"
blur
"
}],
},
};
},
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
就诊日期
"
,
dataIndex
:
"
receiptDate
"
,
width
:
160
,
scopedSlots
:
{
customRender
:
"
receiptDate
"
}
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
key
:
"
mrnNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
160
},
{
title
:
"
保险卡号
"
,
dataIndex
:
"
memberCardNo
"
,
width
:
180
},
{
title
:
"
客户生日
"
,
dataIndex
:
"
birthday
"
,
width
:
160
},
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
key
:
"
receiptNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
250
},
{
title
:
"
应收金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
折扣金额
"
,
dataIndex
:
"
discountAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
discountAmount2
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
100
,
align
:
'
center
'
,
customRender
:
(
val
,
row
)
=>
{
return
<
a
-
input
v
-
model
=
{
row
.
selfpaidAmount
}
allow
-
clear
/>
}
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
paidAmount
"
,
width
:
100
,
align
:
'
center
'
},
];
if
(
this
.
sendBatchNo
&&
!
this
.
isEditNewBill
&&
this
.
isEdit
){
// 编辑状态下已经保存的数据才可进行操作
return
base
.
concat
([
{
title
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
100px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
}},
]);
}
return
base
}
},
created
()
{
const
{
sendBatchNo
,
isEdit
}
=
this
.
$route
.
query
;
this
.
sendBatchNo
=
sendBatchNo
;
this
.
isEdit
=
isEdit
;
this
.
_getCompanyOptions
();
this
.
getRefcdByRefgrp
();
if
(
this
.
sendBatchNo
){
let
jisongDataDetail
=
localStorage
.
getItem
(
'
jisongDataDetail
'
);
this
.
form
=
jisongDataDetail
?
JSON
.
parse
(
jisongDataDetail
):
{};
this
.
getData
();
}
},
methods
:
{
moment
,
onSelectChange
(
selectedRowKeys
)
{
let
arr
=
[];
for
(
let
i
=
0
;
i
<
selectedRowKeys
.
length
;
i
++
){
let
idx
=
selectedRowKeys
[
i
];
if
(
this
.
dataList
[
idx
].
sendBatchNo
){
this
.
$msg
.
destroy
();
this
.
$message
.
warning
(
'
寄送批号已存在
'
)
}
else
{
arr
.
push
(
idx
);
}
}
this
.
selectedRowKeys
=
arr
;
},
// 分页回调
getPageData
(
pager
)
{
if
(
pager
){
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
}
}
if
(
this
.
isEditNewBill
)
{
// 新增时添加了账单信息 那分页也应该是调账单信息接口
this
.
_getNewBillList
()
}
else
{
this
.
getData
()
}
},
// 获取列表数据
getData
()
{
this
.
selectedRowKeys
=
[];
let
filter
=
{
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
sendBatchNo
:
this
.
sendBatchNo
||
undefined
,
...
this
.
searchData
}
this
.
$apis
.
QUERYSENDRECEIPLIST
(
filter
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
this
.
cacheDataList
[
filter
.
pageNum
]
=
this
.
dataList
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取快递列表
getRefcdByRefgrp
()
{
this
.
$apis
.
GETREFCDBYREFGRP
({
modid
:
"
CI
"
,
refgrp
:
"
SEND_COMPANY
"
}).
then
((
res
)
=>
{
this
.
expressList
=
res
.
content
||
[];
});
},
//查看
detailEvt
(
record
)
{
const
{
receiptNo
}
=
record
;
this
.
$router
.
push
({
name
:
"
chargeQueryDetail
"
,
query
:
{
receiptNo
},
});
},
editEvt
(
record
)
{
this
.
editFormObj
=
{
ciReceiptSendVos
:
[
{
id
:
record
.
id
,
receiptNo
:
record
.
receiptNo
,
}
],
payorCode
:
record
.
payorCode
||
""
,
sendSts
:
Number
(
record
.
sendSts
)
||
""
,
sendDate
:
record
.
sendDate
||
""
,
trackingNo
:
record
.
trackingNo
||
""
,
sendRemark
:
record
.
sendRemark
||
""
,
};
this
.
dialogShow
=
true
;
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$apis
.
SAVERECEIPSENDINFO
({
...
this
.
editFormObj
,
sendDate
:
moment
(
this
.
editFormObj
.
sendDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
)
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
编辑成功
"
);
this
.
dialogShow
=
false
;
this
.
getData
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
}
});
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
let
visitTimeStart
=
this
.
searchForm
.
visitTimeStart
||
[]
this
.
searchData
=
this
.
$lodash
.
cloneDeep
({
...
this
.
searchForm
,
visitTimeEnd
:
visitTimeStart
[
1
]
?
visitTimeStart
[
1
]
+
'
23:59:59
'
:
undefined
,
visitTimeStart
:
visitTimeStart
[
0
]
?
visitTimeStart
[
0
]
+
'
00:00:00
'
:
undefined
,
});
if
(
this
.
isEditNewBill
)
{
// 新增时添加了账单信息 那分页也应该是调账单信息接口
this
.
_getNewBillList
()
}
else
{
this
.
getData
()
}
},
//删除
delRecord
(
data
)
{
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
:
"
确定删除该条记录?
"
,
okText
:
"
确定
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELETESENDRECEIPT
({
ciReceiptSendVos
:
[
{
receiptNo
:
data
.
receiptNo
}
],
sendBatchNo
:
this
.
sendBatchNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
getData
()
// this.dataList.splice(index, 1);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
});
},
//导出
exportEvt
(){
this
.
$apis
.
SENDRECEIPTLISTEXPORT
({
sendBatchNo
:
this
.
sendBatchNo
||
undefined
})
.
then
(
res
=>
{
let
blob
=
new
Blob
([
res
.
data
],
{
type
:
"
application/vnd.ms-excel;charset=utf-8
"
});
let
url
=
window
.
URL
.
createObjectURL
(
blob
);
let
aLink
=
document
.
createElement
(
"
a
"
);
aLink
.
style
.
display
=
"
none
"
;
aLink
.
href
=
url
;
aLink
.
setAttribute
(
"
download
"
,
"
寄送账单.xls
"
);
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
window
.
URL
.
revokeObjectURL
(
url
);
})
},
//添加账单
addNewBill
(){
// this.isEditNewBill = !this.isEditNewBill;
if
(
this
.
isEditNewBill
){
//保存
this
.
addNewCharge
()
.
then
(()
=>
{
this
.
isEditNewBill
=
false
;
})
}
else
{
//查询所有未加入的账单
this
.
pagination
.
pageNum
=
1
;
this
.
isEditNewBill
=
true
;
this
.
cacheDataList
=
{}
this
.
_getNewBillList
()
}
},
_getNewBillList
()
{
this
.
$apis
.
QUERYNOSENDRECEIPLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
selectedRowKeys
=
[];
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
this
.
cacheDataList
[
this
.
pagination
.
pageNum
]
=
this
.
dataList
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
checkBeforeSave
()
{
if
(
!
this
.
form
.
trackingNo
){
this
.
$message
.
warning
(
"
请输入快递单号
"
);
return
false
;
}
if
(
!
this
.
form
.
sendDate
){
this
.
$message
.
warning
(
"
请选择寄送日期
"
);
return
false
;
}
let
allData
=
[]
for
(
let
i
in
this
.
cacheDataList
){
allData
=
allData
.
concat
(
this
.
cacheDataList
[
i
])
}
let
ciReceiptSendVos
=
[];
if
(
this
.
isEditNewBill
){
ciReceiptSendVos
=
[];
allData
.
forEach
((
item
,
index
)
=>
{
if
(
this
.
selectedRowKeys
.
indexOf
(
index
)
!=-
1
){
ciReceiptSendVos
.
push
({
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
selfpaidAmount
:
item
.
selfpaidAmount
})
}
})
}
else
{
ciReceiptSendVos
=
allData
.
map
(
item
=>
{
return
{
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
selfpaidAmount
:
item
.
selfpaidAmount
}
})
}
for
(
let
i
=
0
;
i
<
ciReceiptSendVos
.
length
;
i
++
)
{
const
selfpaidAmount
=
ciReceiptSendVos
[
i
].
selfpaidAmount
if
(
selfpaidAmount
&&
!
numValid
.
test
(
selfpaidAmount
)){
this
.
$message
.
warning
(
"
请输入正确的客户自付金额
"
);
return
false
;
}
}
return
{
...
this
.
form
,
ciReceiptSendVos
:
ciReceiptSendVos
,
sendDate
:
moment
(
this
.
form
.
sendDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
),
sendBatchNo
:
this
.
sendBatchNo
||
undefined
}
},
//新建/保存寄送
addNewCharge
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
let
formData
=
this
.
checkBeforeSave
()
if
(
!
formData
){
reject
()
return
false
;
}
this
.
$apis
.
SAVERECEIPSENDINFO
(
formData
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
sendBatchNo
=
res
.
content
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
cacheDataList
=
{}
this
.
getData
();
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
})
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.btn-div{
justify-content: space-between;
}
</
style
>
<
template
>
<!-- 收费查询-账单查询 -->
<div
class=
"white_bg burt-container custom-info"
>
<Goback
title=
"理赔件详情"
/>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"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
:disabled=
"!isEdit"
>
<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-select
v-model=
"form.sendSts"
placeholder=
"请选择寄送状态"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
value=
"1"
>
已寄送
</a-select-option>
<a-select-option
value=
"2"
>
未寄送
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"快递公司"
>
<a-select
v-model=
"form.sendCompany"
placeholder=
"请选择快递公司"
showSearch
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
v-for=
"(item) in expressList"
:key=
"item.id"
:value=
"item.descCh"
>
{{
item
.
descCh
}}
</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=
"form.trackingNo"
placeholder=
"请输入快递单号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送方式"
>
<a-select
v-model=
"form.sendMode"
placeholder=
"请选择寄送方式"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
value=
"快递"
>
快递
</a-select-option>
<a-select-option
value=
"邮件"
>
邮件
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送日期"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"form.sendDate"
placeholder=
"选择日期"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送地址"
>
<a-input
v-model=
"form.sendAddress"
placeholder=
"请输入寄送地址"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送邮箱"
>
<a-input
v-model=
"form.sendEmail"
placeholder=
"请输入寄送邮箱"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"寄送备注"
>
<a-textarea
v-model=
"form.sendRemark"
placeholder=
"请输入寄送备注"
:auto-size=
"
{ minRows: 2, maxRows: 5 }" allow-clear :disabled="!isEdit" />
</a-form-model-item>
</a-col>
<a-col
:sm=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<div
class=
"btn-div flex"
>
<span></span>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewCharge"
>
<Icon
:name=
"sendBatchNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
sendBatchNo
?
'
保存寄送
'
:
'
新建寄送
'
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"searchForm"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"就诊日期"
>
<a-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.visitTimeStart"
:placeholder=
"['选择就诊开始日期', '选择就诊结束日期']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"客户名称"
>
<a-input
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
:gutter=
"30"
>
<a-col
:sm=
"24"
class=
"none-label"
>
<div
class=
"btn-div flex"
>
<span></span>
<a-form-model-item
label=
"button"
>
<a-button
type=
"primary"
@
click=
"handlerSearch"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportEvt"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewBill"
v-if=
"isEdit"
>
<Icon
:name=
"isEditNewBill?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
isEditNewBill
?
'
保存账单
'
:
'
添加账单
'
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false"
:row-selection="isEditNewBill? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null">
<template
slot=
"sendDate"
slot-scope=
"text"
>
{{
text
?
moment
(
text
).
format
(
'
YYYY-MM-DD
'
):
''
}}
</
template
>
<
template
slot=
"sendSts"
slot-scope=
"text"
>
{{
text
==
1
?
'
已寄送
'
:
'
未寄送
'
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record"
>
<!--
<a-button
type=
"link"
@
click.stop=
"editEvt(record)"
>
修改
</a-button>
-->
<a-button
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(record)"
>
删除
</a-button>
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"getPageData"
/>
<a-modal
title=
"编辑"
:visible=
"dialogShow"
width=
"700px"
:maskClosable=
"false"
okText=
"确定"
cancelText=
"取消"
@
ok=
"handleEditOK"
@
cancel=
"dialogShow = false"
>
<a-form-model
ref=
"editForm"
:model=
"editFormObj"
:rules=
"editRules"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"保险公司"
prop=
"payorCode"
>
<a-select
v-model=
"editFormObj.payorCode"
placeholder=
"请选择保险公司"
allowClear
>
<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=
"12"
:sm=
"24"
>
<a-form-model-item
label=
"寄送状态"
prop=
"sendSts"
>
<a-select
v-model=
"editFormObj.sendSts"
placeholder=
"请选择寄送状态"
allowClear
>
<a-select-option
:value=
"1"
>
已寄送
</a-select-option>
<a-select-option
:value=
"2"
>
未寄送
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:sm=
"24"
>
<a-form-model-item
label=
"寄送日期"
prop=
"sendDate"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"editFormObj.sendDate"
placeholder=
"选择日期"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"快递单号"
prop=
"trackingNo"
>
<a-input
v-model.trim=
"editFormObj.trackingNo"
placeholder=
"快递单号"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"寄送备注"
prop=
"sendRemark"
>
<a-textarea
v-model.trim=
"editFormObj.sendRemark"
placeholder=
"寄送备注"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
moment
from
'
moment
'
import
{
numValid
}
from
"
@/utils/index
"
export
default
{
data
()
{
return
{
loading
:
false
,
dialogShow
:
false
,
isEdit
:
false
,
sendBatchNo
:
''
,
//寄送批号
form
:
{
payorCode
:
''
,
sendSts
:
''
,
sendMode
:
''
,
sendDate
:
''
,
sendCompany
:
''
,
trackingNo
:
''
,
sendAddress
:
''
,
sendEmail
:
''
,
sendRemark
:
''
},
searchForm
:
{},
searchData
:
{},
companyOptions
:
[],
//保险公司
expressList
:
[],
//快递列表
selectedRowKeys
:
[],
// Check here to configure the default column
dataList
:
[],
cacheDataList
:
{},
isEditNewBill
:
false
,
//是否在新建账单
pagination
:
{
pageNum
:
1
,
pageSize
:
100
,
total
:
0
,
},
editFormObj
:
{
payorCode
:
''
,
sendSts
:
''
,
sendDate
:
''
,
trackingNo
:
''
,
sendRemark
:
''
,
},
editRules
:
{
sendDate
:
[{
required
:
true
,
message
:
"
请选择寄送日期
"
,
trigger
:
"
change
"
}],
trackingNo
:
[{
required
:
true
,
message
:
"
请输入寄送单号
"
,
trigger
:
"
blur
"
}],
},
};
},
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
就诊日期
"
,
dataIndex
:
"
receiptDate
"
,
width
:
160
,
scopedSlots
:
{
customRender
:
"
receiptDate
"
}
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
key
:
"
mrnNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
160
},
{
title
:
"
保险卡号
"
,
dataIndex
:
"
memberCardNo
"
,
width
:
180
},
{
title
:
"
客户生日
"
,
dataIndex
:
"
birthday
"
,
width
:
160
},
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
key
:
"
receiptNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
250
},
{
title
:
"
应收金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
折扣金额
"
,
dataIndex
:
"
discountAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
discountAmount2
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
paidAmount
"
,
width
:
100
,
align
:
'
center
'
},
];
if
(
this
.
sendBatchNo
&&
!
this
.
isEditNewBill
&&
this
.
isEdit
){
// 编辑状态下已经保存的数据才可进行操作
return
base
.
concat
([
{
title
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
100px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
}},
]);
}
return
base
}
},
created
()
{
const
{
sendBatchNo
,
isEdit
}
=
this
.
$route
.
query
;
this
.
sendBatchNo
=
sendBatchNo
;
this
.
isEdit
=
isEdit
;
this
.
_getCompanyOptions
();
this
.
getRefcdByRefgrp
();
if
(
this
.
sendBatchNo
){
let
jisongDataDetail
=
localStorage
.
getItem
(
'
jisongDataDetail
'
);
this
.
form
=
jisongDataDetail
?
JSON
.
parse
(
jisongDataDetail
):
{};
this
.
getData
();
}
},
methods
:
{
moment
,
onSelectChange
(
selectedRowKeys
)
{
let
arr
=
[];
for
(
let
i
=
0
;
i
<
selectedRowKeys
.
length
;
i
++
){
let
idx
=
selectedRowKeys
[
i
];
if
(
this
.
dataList
[
idx
].
sendBatchNo
){
this
.
$msg
.
destroy
();
this
.
$message
.
warning
(
'
寄送批号已存在
'
)
}
else
{
arr
.
push
(
idx
);
}
}
this
.
selectedRowKeys
=
arr
;
},
// 分页回调
getPageData
(
pager
)
{
if
(
pager
){
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
}
}
if
(
this
.
isEditNewBill
)
{
// 新增时添加了账单信息 那分页也应该是调账单信息接口
this
.
_getNewBillList
()
}
else
{
this
.
getData
()
}
},
// 获取列表数据
getData
()
{
this
.
selectedRowKeys
=
[];
let
filter
=
{
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
sendBatchNo
:
this
.
sendBatchNo
||
undefined
,
...
this
.
searchData
}
this
.
$apis
.
QUERYSENDRECEIPLIST
(
filter
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
this
.
cacheDataList
[
filter
.
pageNum
]
=
this
.
dataList
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 获取快递列表
getRefcdByRefgrp
()
{
this
.
$apis
.
GETREFCDBYREFGRP
({
modid
:
"
CI
"
,
refgrp
:
"
SEND_COMPANY
"
}).
then
((
res
)
=>
{
this
.
expressList
=
res
.
content
||
[];
});
},
//查看
detailEvt
(
record
)
{
const
{
receiptNo
}
=
record
;
this
.
$router
.
push
({
name
:
"
chargeQueryDetail
"
,
query
:
{
receiptNo
},
});
},
editEvt
(
record
)
{
this
.
editFormObj
=
{
ciReceiptSendVos
:
[
{
id
:
record
.
id
,
receiptNo
:
record
.
receiptNo
,
}
],
payorCode
:
record
.
payorCode
||
""
,
sendSts
:
Number
(
record
.
sendSts
)
||
""
,
sendDate
:
record
.
sendDate
||
""
,
trackingNo
:
record
.
trackingNo
||
""
,
sendRemark
:
record
.
sendRemark
||
""
,
};
this
.
dialogShow
=
true
;
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$apis
.
SAVERECEIPSENDINFO
({
...
this
.
editFormObj
,
sendDate
:
moment
(
this
.
editFormObj
.
sendDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
)
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
编辑成功
"
);
this
.
dialogShow
=
false
;
this
.
getData
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
}
});
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
let
visitTimeStart
=
this
.
searchForm
.
visitTimeStart
||
[]
this
.
searchData
=
this
.
$lodash
.
cloneDeep
({
...
this
.
searchForm
,
visitTimeEnd
:
visitTimeStart
[
1
]
?
visitTimeStart
[
1
]
+
'
23:59:59
'
:
undefined
,
visitTimeStart
:
visitTimeStart
[
0
]
?
visitTimeStart
[
0
]
+
'
00:00:00
'
:
undefined
,
});
if
(
this
.
isEditNewBill
)
{
// 新增时添加了账单信息 那分页也应该是调账单信息接口
this
.
_getNewBillList
()
}
else
{
this
.
getData
()
}
},
//删除
delRecord
(
data
)
{
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
:
"
确定删除该条记录?
"
,
okText
:
"
确定
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELETESENDRECEIPT
({
ciReceiptSendVos
:
[
{
receiptNo
:
data
.
receiptNo
}
],
sendBatchNo
:
this
.
sendBatchNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
getData
()
// this.dataList.splice(index, 1);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
});
},
//导出
exportEvt
(){
this
.
$apis
.
SENDRECEIPTLISTEXPORT
({
sendBatchNo
:
this
.
sendBatchNo
||
undefined
})
.
then
(
res
=>
{
let
blob
=
new
Blob
([
res
.
data
],
{
type
:
"
application/vnd.ms-excel;charset=utf-8
"
});
let
url
=
window
.
URL
.
createObjectURL
(
blob
);
let
aLink
=
document
.
createElement
(
"
a
"
);
aLink
.
style
.
display
=
"
none
"
;
aLink
.
href
=
url
;
aLink
.
setAttribute
(
"
download
"
,
"
寄送账单.xls
"
);
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
window
.
URL
.
revokeObjectURL
(
url
);
})
},
//添加账单
addNewBill
(){
// this.isEditNewBill = !this.isEditNewBill;
if
(
this
.
isEditNewBill
){
//保存
this
.
addNewCharge
()
.
then
(()
=>
{
this
.
isEditNewBill
=
false
;
})
}
else
{
//查询所有未加入的账单
this
.
pagination
.
pageNum
=
1
;
this
.
isEditNewBill
=
true
;
this
.
cacheDataList
=
{}
this
.
_getNewBillList
()
}
},
_getNewBillList
()
{
this
.
$apis
.
QUERYNOSENDRECEIPLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
selectedRowKeys
=
[];
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
this
.
cacheDataList
[
this
.
pagination
.
pageNum
]
=
this
.
dataList
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
checkBeforeSave
()
{
if
(
!
this
.
form
.
trackingNo
){
this
.
$message
.
warning
(
"
请输入快递单号
"
);
return
false
;
}
if
(
!
this
.
form
.
sendDate
){
this
.
$message
.
warning
(
"
请选择寄送日期
"
);
return
false
;
}
let
allData
=
[]
for
(
let
i
in
this
.
cacheDataList
){
allData
=
allData
.
concat
(
this
.
cacheDataList
[
i
])
}
let
ciReceiptSendVos
=
[];
if
(
this
.
isEditNewBill
){
ciReceiptSendVos
=
[];
allData
.
forEach
((
item
,
index
)
=>
{
if
(
this
.
selectedRowKeys
.
indexOf
(
index
)
!=-
1
){
ciReceiptSendVos
.
push
({
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
selfpaidAmount
:
item
.
selfpaidAmount
})
}
})
}
else
{
ciReceiptSendVos
=
allData
.
map
(
item
=>
{
return
{
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
selfpaidAmount
:
item
.
selfpaidAmount
}
})
}
for
(
let
i
=
0
;
i
<
ciReceiptSendVos
.
length
;
i
++
)
{
const
selfpaidAmount
=
ciReceiptSendVos
[
i
].
selfpaidAmount
if
(
selfpaidAmount
&&
!
numValid
.
test
(
selfpaidAmount
)){
this
.
$message
.
warning
(
"
请输入正确的客户自付金额
"
);
return
false
;
}
}
return
{
...
this
.
form
,
ciReceiptSendVos
:
ciReceiptSendVos
,
sendDate
:
moment
(
this
.
form
.
sendDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
),
sendBatchNo
:
this
.
sendBatchNo
||
undefined
}
},
//新建/保存寄送
addNewCharge
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
let
formData
=
this
.
checkBeforeSave
()
if
(
!
formData
){
reject
()
return
false
;
}
this
.
$apis
.
SAVERECEIPSENDINFO
(
formData
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
sendBatchNo
=
res
.
content
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
cacheDataList
=
{}
this
.
getData
();
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
})
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.btn-div{
justify-content: space-between;
}
</
style
>
src/views/verification/collection.vue
View file @
a0d63754
...
...
@@ -72,6 +72,9 @@
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt"
>
<Icon
name=
"ssiadd"
: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>
...
...
@@ -109,6 +112,7 @@
<
script
>
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
moment
from
"
moment
"
;
import
{
exportFile
}
from
'
@/utils/index
'
;
const
columns
=
[
{
title
:
"
回款编号
"
,
dataIndex
:
"
backMoneyNo
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
EOB编号
"
,
dataIndex
:
"
eobNos
"
,
ellipsis
:
true
,
width
:
140
},
...
...
@@ -295,6 +299,16 @@ export default {
onCancel
:
()
=>
{},
});
},
//导出报表
exportExcel
(){
let
filter
=
{
...
this
.
form
,
dateRange
:
undefined
,
}
this
.
$apis
.
EXPORTBACKMONEYREPORT
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
回款列表.xls
'
);
})
}
},
};
</
script
>
...
...
src/views/verification/collectionDetail.vue
View file @
a0d63754
...
...
@@ -155,7 +155,12 @@
<div
class=
"bill-content"
>
<!-- 已关联账单 -->
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
已关联账单
</div>
<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"
...
...
@@ -262,6 +267,7 @@
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
"
;
export
default
{
...
...
@@ -394,7 +400,7 @@ export default {
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
);
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
-
Number
(
row
.
arrearsAmount
||
0
)
;
return
Number
(
residueBackAmount
.
toFixed
(
2
));
},
};
...
...
@@ -404,6 +410,24 @@ export default {
ellipsis
:
true
,
width
:
150
,
});
base
.
splice
(
7
,
0
,
{
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
.
push
({
title
:
"
回款日期
"
,
dataIndex
:
"
backDate
"
,
...
...
@@ -731,8 +755,16 @@ export default {
this
.
$forceUpdate
();
});
},
// 导出账单列表
exportEvt
()
{},
//导出报表
exportExcel
(){
let
filter
=
{
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
}
this
.
$apis
.
EXPORTBACKRECEIPTLIST
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
已关联账单.xls
'
);
})
}
},
};
</
script
>
...
...
@@ -747,6 +779,9 @@ export default {
.table-title {
font-size: 15px;
margin: 6px 0;
display: flex;
align-items: center;
justify-content: space-between;
}
.table-content {
margin-bottom: 8px;
...
...
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