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
54a5fa27
Commit
54a5fa27
authored
1 year ago
by
朱彩云
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'func-eccs-2127' into 'master'
ECCS 2127 商保系统回款多字段修改&&样式优化 See merge request
!35
parents
c816ef8f
d29d1b66
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
2069 additions
and
1810 deletions
+2069
-1810
verification.js
src/api/apis_moudles/verification.js
+2
-0
verification.js
src/api/funcs_modules/verification.js
+13
-1
utilsdictOptions.js
src/utils/utilsdictOptions.js
+70
-64
detail.vue
src/views/charge-query/detail.vue
+395
-391
index.vue
src/views/charge-query/index.vue
+317
-323
lpjManageDetail.vue
src/views/charge-query/lpjManageDetail.vue
+557
-559
index.vue
src/views/home/index.vue
+26
-26
subMenu.vue
src/views/layout/components/menu/subMenu.vue
+0
-73
index.vue
src/views/layout/index.vue
+72
-75
collection.vue
src/views/verification/collection.vue
+20
-0
collectionDetail.vue
src/views/verification/collectionDetail.vue
+597
-298
No files found.
src/api/apis_moudles/verification.js
View file @
54a5fa27
...
...
@@ -15,5 +15,7 @@ export default {
queryBackReceiptList
:
"
/backstage/auth/queryBackReceiptList
"
,
//回销关联账单列表查询
queryReceiptInfoList
:
"
/backstage/auth/queryReceiptInfoList
"
,
//回销账单列表查询
deleteReceiptRecord
:
"
/backstage/auth/deleteBackReceipt
"
,
// 删除已关联账单
exportBackMoneyReport
:
"
/backstage/auth/backMoneyListExport
"
,
// 回款列表导出
exportBackReceiptList
:
"
/backstage/auth/exportBackReceiptList
"
,
// 关联账单列表导出
};
This diff is collapsed.
Click to expand it.
src/api/funcs_modules/verification.js
View file @
54a5fa27
...
...
@@ -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
This diff is collapsed.
Click to expand it.
src/utils/utilsdictOptions.js
View file @
54a5fa27
//性别
const
sexOptions
=
[{
name
:
'
男
'
,
value
:
'
M
'
},
{
name
:
'
女
'
,
value
:
'
F
'
}];
//寄送状态
const
SendStatusOptions
=
[
{
name
:
'
未寄送
'
,
value
:
'
1
'
},
{
name
:
'
寄送
'
,
value
:
'
2
'
},
{
name
:
'
待寄送
'
,
value
:
'
3
'
},
];
//理赔状态
const
ClaimsStatusOptions
=
[
{
name
:
'
赔付
'
,
value
:
'
01
'
},
{
name
:
'
部分赔付
'
,
value
:
'
02
'
},
{
name
:
'
拒赔
'
,
value
:
'
03
'
},
{
name
:
'
补充材料
'
,
value
:
'
04
'
},
];
//EOB状态
const
EOBStatusOptions
=
[
{
name
:
'
待回款
'
,
value
:
'
1
'
},
{
name
:
'
已回款
'
,
value
:
'
2
'
},
{
name
:
'
未回款
'
,
value
:
'
3
'
}
];
//申请状态
const
ApplyStatusOptions
=
[
{
name
:
'
申请中
'
,
value
:
'
01
'
},
{
name
:
'
预授权批准
'
,
value
:
'
02
'
},
{
name
:
'
预授权拒绝
'
,
value
:
'
03
'
},
{
name
:
'
预授权调查
'
,
value
:
'
04
'
},
];
//审批结果
const
ApproveStatusOptions
=
[
{
name
:
'
未通过
'
,
value
:
'
1
'
},
{
name
:
'
已通过
'
,
value
:
'
2
'
}
];
//monetUnit
const
MoneyUnitOptions
=
[
{
name
:
'
元
'
,
value
:
'
01
'
},
{
name
:
'
美元
'
,
value
:
'
02
'
},
{
name
:
'
英镑
'
,
value
:
'
03
'
},
{
name
:
'
欧元
'
,
value
:
'
04
'
},
];
module
.
exports
=
{
sexOptions
,
SendStatusOptions
,
ClaimsStatusOptions
,
EOBStatusOptions
,
ApplyStatusOptions
,
ApproveStatusOptions
,
MoneyUnitOptions
,
//性别
const
sexOptions
=
[{
name
:
'
男
'
,
value
:
'
M
'
},
{
name
:
'
女
'
,
value
:
'
F
'
}];
//寄送状态
const
SendStatusOptions
=
[
{
name
:
'
未寄送
'
,
value
:
'
1
'
},
{
name
:
'
寄送
'
,
value
:
'
2
'
},
{
name
:
'
待寄送
'
,
value
:
'
3
'
},
];
//理赔状态
const
ClaimsStatusOptions
=
[
{
name
:
'
赔付
'
,
value
:
'
01
'
},
{
name
:
'
部分赔付
'
,
value
:
'
02
'
},
{
name
:
'
拒赔
'
,
value
:
'
03
'
},
{
name
:
'
补充材料
'
,
value
:
'
04
'
},
];
//EOB状态
const
EOBStatusOptions
=
[
{
name
:
'
待回款
'
,
value
:
'
1
'
},
{
name
:
'
已回款
'
,
value
:
'
2
'
},
{
name
:
'
未回款
'
,
value
:
'
3
'
}
];
//申请状态
const
ApplyStatusOptions
=
[
{
name
:
'
申请中
'
,
value
:
'
01
'
},
{
name
:
'
预授权批准
'
,
value
:
'
02
'
},
{
name
:
'
预授权拒绝
'
,
value
:
'
03
'
},
{
name
:
'
预授权调查
'
,
value
:
'
04
'
},
];
//审批结果
const
ApproveStatusOptions
=
[
{
name
:
'
未通过
'
,
value
:
'
1
'
},
{
name
:
'
已通过
'
,
value
:
'
2
'
}
];
//monetUnit
const
MoneyUnitOptions
=
[
{
name
:
'
元
'
,
value
:
'
01
'
},
{
name
:
'
美元
'
,
value
:
'
02
'
},
{
name
:
'
英镑
'
,
value
:
'
03
'
},
{
name
:
'
欧元
'
,
value
:
'
04
'
},
];
// 账单类型
const
receiptTypeOptions
=
[
{
name
:
'
收费
'
,
value
:
'
1
'
},
{
name
:
'
退费
'
,
value
:
'
2
'
},
];
module
.
exports
=
{
sexOptions
,
SendStatusOptions
,
ClaimsStatusOptions
,
EOBStatusOptions
,
ApplyStatusOptions
,
ApproveStatusOptions
,
MoneyUnitOptions
,
receiptTypeOptions
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/views/charge-query/detail.vue
View file @
54a5fa27
<
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=
"5"
: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=
"5"
: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=
"5"
: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=
"5"
: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=
"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
"
)
{
let
existPayor
=
false
this
.
companyOptions
=
res
.
content
.
map
(
item
=>
{
item
.
id
=
Number
(
item
.
id
)
if
(
item
.
id
===
this
.
form
.
payorId
)
{
existPayor
=
true
}
return
item
})
||
[];
if
(
!
existPayor
)
{
this
.
companyOptions
.
push
({
id
:
this
.
form
.
payorId
,
longName
:
this
.
form
.
payorName
})
}
}
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
>
This diff is collapsed.
Click to expand it.
src/views/charge-query/index.vue
View file @
54a5fa27
<
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=
"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
>
<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=
"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>
<!-- 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
{
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
:
"
mrnNo
"
,
width
:
180
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
120
,},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
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
:
"
操作
"
,
key
:
"
operation
"
,
width
:
"
175px
"
,
fixed
:
"
right
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
align
:
"
center
"
},
];
return
{
columns
,
receiptTypeOptions
,
form
:
{},
pageForm
:
{
doctorCode
:
""
,
patientName
:
""
,
mrnNo
:
""
,
paymentCode
:
""
,
payorId
:
0
,
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
'
:
'
退费
'
}
};
},
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
.
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
(){
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
>
This diff is collapsed.
Click to expand it.
src/views/charge-query/lpjManageDetail.vue
View file @
54a5fa27
<
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
:
"
reduceAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
selfpaidAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
actualAmount
"
,
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
>
This diff is collapsed.
Click to expand it.
src/views/home/index.vue
View file @
54a5fa27
<
template
>
<div
class=
"white_bg burt-container"
>
<img
src=
"../../assets/image/home_bg.jpg"
alt=
""
>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.burt-container{
height: calc(100vh -
116px);
padding: 0;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
<
template
>
<div
class=
"white_bg burt-container"
>
<img
src=
"../../assets/image/home_bg.jpg"
alt=
""
>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.burt-container{
height: calc(100vh -
86px);
padding: 0;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/views/layout/components/menu/subMenu.vue
deleted
100644 → 0
View file @
c816ef8f
<
template
>
<div
class=
"sub-menu"
>
<router-link
tag=
"button"
:class=
"
{ btn: true, 'btn-active': isVisit(item.path) }"
v-for="(item, index) in menuStack"
:key="item.path"
:to="item.path"
>
{{
item
.
title
}}
<Icon
v-if=
"menuStack.length>1"
@
click=
"(e)=>closeMenu(e, index)"
:name=
"isVisit(item.path) ? 'ssiclose_active' : 'ssiclose'"
:size=
"16"
/>
</router-link>
<slot
name=
"tips"
/>
</div>
</
template
>
<
script
>
import
{
mapState
}
from
"
vuex
"
;
export
default
{
computed
:
{
...
mapState
({
menuStack
:
(
state
)
=>
state
.
common
.
menuStack
,
}),
},
methods
:
{
isVisit
(
val
)
{
const
path
=
this
.
$route
.
path
;
return
path
===
val
;
},
closeMenu
(
e
,
index
)
{
e
.
stopPropagation
();
const
menuStack
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
menuStack
));
const
isVisit
=
this
.
isVisit
(
menuStack
[
index
].
path
);
menuStack
.
splice
(
index
,
1
);
this
.
$store
.
commit
(
"
common/setMenuStack
"
,
menuStack
);
if
(
isVisit
)
{
// 关闭的是当前正在查看的
const
i
=
Math
.
max
(
0
,
index
-
1
);
this
.
$router
.
push
(
menuStack
[
i
].
path
||
"
/
"
);
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.sub-menu {
width: 100%;
overflow-x: auto;
white-space: nowrap;
.mg-b(16);
.btn {
.fs(14);
.lh(20);
.pa(8, 13, 8, 13);
.mg-r(40);
color: #252631;
font-weight: bold;
border: none;
background-color: #fff;
border-radius: 5px;
cursor: pointer;
}
.btn-active {
color: #fff;
background-color: #2b63ff;
}
}
</
style
>
This diff is collapsed.
Click to expand it.
src/views/layout/index.vue
View file @
54a5fa27
<
template
>
<div
class=
"menu-layout"
>
<Header></Header>
<div
class=
"container"
>
<Menu></Menu>
<Loading
/>
<div
class=
"content"
>
<SubMenu></SubMenu>
<router-view
/>
</div>
</div>
</div>
</
template
>
<
script
>
import
Header
from
"
./components/Header.vue
"
;
import
Menu
from
"
./components/menu
"
;
import
SubMenu
from
"
./components/menu/subMenu.vue
"
;
import
Loading
from
"
@/components/Loading/Loading.vue
"
;
export
default
{
components
:
{
Header
,
Menu
,
SubMenu
,
Loading
},
data
()
{
return
{};
},
created
()
{},
mounted
()
{},
methods
:
{},
};
</
script
>
<
style
>
.icon-class.arrow
{
position
:
absolute
;
right
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
</
style
>
<
style
lang=
"less"
scoped
>
.menu-layout {
background-color: #f8fafb;
font-family: "Helvetica" "Microsoft YaHei" "微软雅黑";
.container {
display: flex;
position: relative;
.pt(68);
// min-height: calc(100vh - 50px);
.content {
position: relative;
flex: 1;
.mg-l(242);
.pa(14, 40, 0, 40);
min-height: calc(100vh - 68px);
overflow-x: hidden;
}
}
.menu {
position: fixed;
.w(242);
height: calc(100vh - 68px);
overflow: auto;
background-color: #fff;
li{
position: relative;
}
}
}
</
style
>
<
template
>
<div
class=
"menu-layout"
>
<Header></Header>
<div
class=
"container"
>
<Menu></Menu>
<Loading
/>
<div
class=
"content"
>
<router-view
/>
</div>
</div>
</div>
</
template
>
<
script
>
import
Header
from
"
./components/Header.vue
"
;
import
Menu
from
"
./components/menu
"
;
import
Loading
from
"
@/components/Loading/Loading.vue
"
;
export
default
{
components
:
{
Header
,
Menu
,
Loading
},
data
()
{
return
{};
},
created
()
{},
mounted
()
{},
methods
:
{},
};
</
script
>
<
style
>
.icon-class.arrow
{
position
:
absolute
;
right
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
</
style
>
<
style
lang=
"less"
scoped
>
.menu-layout {
background-color: #f8fafb;
font-family: "Helvetica" "Microsoft YaHei" "微软雅黑";
.container {
display: flex;
position: relative;
.pt(68);
// min-height: calc(100vh - 50px);
.content {
position: relative;
flex: 1;
.mg-l(242);
.pa(14, 40, 0, 40);
min-height: calc(100vh - 68px);
overflow-x: hidden;
}
}
.menu {
position: fixed;
.w(242);
height: calc(100vh - 68px);
overflow: auto;
background-color: #fff;
li{
position: relative;
}
}
}
</
style
>
This diff is collapsed.
Click to expand it.
src/views/verification/collection.vue
View file @
54a5fa27
...
...
@@ -57,6 +57,11 @@
<a-input
v-model=
"form.backAmountCny"
placeholder=
"回款金额"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"回款编号"
>
<a-input
v-model=
"form.backMoneyNo"
placeholder=
"回款编号"
/>
</a-form-model-item>
</a-col>
<a-col
:md=
"24"
class=
"none-label"
>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerSearch"
>
...
...
@@ -72,6 +77,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 +117,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
},
...
...
@@ -149,6 +158,7 @@ export default {
endDate
:
""
,
backStatus
:
""
,
backAmountCny
:
""
,
// 回款金额
backMoneyNo
:
""
,
// 回款编号
},
dataList
:
[],
companyOptions
:
[],
//保险公司
...
...
@@ -295,6 +305,16 @@ export default {
onCancel
:
()
=>
{},
});
},
//导出报表
exportExcel
(){
let
filter
=
{
...
this
.
form
,
dateRange
:
undefined
,
}
this
.
$apis
.
EXPORTBACKMONEYREPORT
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
回款列表.xls
'
);
})
}
},
};
</
script
>
...
...
This diff is collapsed.
Click to expand it.
src/views/verification/collectionDetail.vue
View file @
54a5fa27
<
template
>
<div
class=
"white_bg burt-container"
>
<Goback
title=
"回款详情"
/>
<!-- 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
: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=
"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-col
:md=
"24"
:lg=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<a-form-model-item
label=
"button"
>
<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>
</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"
>
已关联账单
</div>
<a-table
class=
"table-content"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: true, y: 200 }" :pagination="false">
<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=
"vertical"
:model=
"searchForm"
>
<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-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.billDate"
:placeholder=
"['开始时间','结束时间']"
/>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
: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=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
:disabled=
"!isEdit"
/>
<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
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
<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"
>
<div
class=
"btn-div mar-bottom10 none-label"
>
<a-button
type=
"primary"
@
click=
"_getNewEOBList"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
</div>
<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
: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>
</a-row>
<div
class=
"table-title"
>
账单列表
</div>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true, y: 200 }" :pagination="false" :rowKey="'id'"
:row-selection="{ selectedRowKeys: selectedRowKeys, onSelect: onSelectChange, onSelectAll: onSelectAll }">
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
</
template
>
</div>
<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: true, y: 450 }"
:pagination="false"
>
<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=
"6"
: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=
"6"
: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=
"6"
: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"
>
<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: true, y: 300 }"
:pagination="false"
:rowKey="'id'"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onSelect: onSelectChange,
onSelectAll: onSelectAll,
}"
>
</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>
</template>
<
script
>
import
Goback
from
"
@/components/CUSTOMER/goback
"
;
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
{
EOBStatusOptions
}
from
'
@/utils/utilsdictOptions.js
'
import
{
EOBStatusOptions
}
from
"
@/utils/utilsdictOptions.js
"
;
import
{
exportFile
}
from
'
@/utils/index
'
;
import
moment
from
"
moment
"
;
import
mixins
from
"
@/mixins
"
;
export
default
{
...
...
@@ -134,13 +277,13 @@ export default {
EOBStatusOptions
,
dialogShow
:
false
,
form
:
{
payorCode
:
''
,
payorCode
:
""
,
backDate
:
null
,
backAmountCny
:
''
,
backAmountUsd
:
''
,
backExchangeRate
:
''
,
eobNos
:
''
,
// EOB编号
eobRemark
:
''
// EOB备注
backAmountCny
:
""
,
backAmountUsd
:
""
,
backExchangeRate
:
""
,
eobNos
:
""
,
// EOB编号
eobRemark
:
""
,
// EOB备注
},
fileList
:
[],
// 上传文件列表
dataList
:
[],
...
...
@@ -153,7 +296,7 @@ export default {
},
selectedRowKeys
:
[],
// Check here to configure the default column
selectedRows
:
[],
// Check here to configure the default column
backMoneyNo
:
''
,
backMoneyNo
:
""
,
editRules
:
{
backAmountUsd
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
backAmount
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
...
...
@@ -161,11 +304,17 @@ export default {
searchForm
:
{
billDate
:
[],
mrnNo
:
''
,
// 病历号
patientName
:
''
,
// 客户名字
mrnNo
:
""
,
// 病历号
patientName
:
""
,
// 客户名字
},
savedStatus
:
false
,
//是否已保存
relatedList
:
[]
relatedList
:
[],
panes
:
[
{
title
:
"
基础信息
"
,
key
:
"
0
"
,
show
:
true
,
content
:
"
PaymentClaims
"
},
{
title
:
"
账单列表
"
,
key
:
"
1
"
,
show
:
false
,
content
:
"
Insurance
"
},
],
activeKey
:
"
0
"
,
};
},
mixins
:
[
mixins
],
...
...
@@ -175,66 +324,167 @@ export default {
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
},
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
{
title
:
"
账单日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,},
{
title
:
"
账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,},
{
title
:
"
回款金额
"
,
dataIndex
:
"
writeOffAmount
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,},
];
return
base
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
,
},
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
{
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
[
6
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
)}}
/>
}
}
base
[
7
]
=
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
return
Number
(
residueBackAmount
.
toFixed
(
2
))
}
}
base
.
splice
(
6
,
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
"
}})
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
));
const
changeAmount
=
this
.
changeAmount
;
base
[
6
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
[
8
]
=
{
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
[
7
]
=
{
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
(
6
,
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
return
base
;
},
// 可核销余额
residueBackAmount
()
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
)
this
.
selectedRows
.
forEach
(
item
=>
{
totalMoney
-=
Number
(
item
.
backAmount
)
})
return
Number
(
totalMoney
.
toFixed
(
2
))
}
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
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
(
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
=>
{
if
(
backMoneyDataDetail
.
fileList
)
{
this
.
fileList
=
backMoneyDataDetail
.
fileList
.
map
(
(
d
)
=>
{
const
file
=
{
uid
:
Math
.
random
()
*
10000
,
uid
:
Math
.
random
()
*
10000
,
name
:
d
.
fileName
,
status
:
'
done
'
,
status
:
"
done
"
,
url
:
d
.
fileUrl
,
}
return
file
})
}
;
return
file
;
})
;
}
this
.
getData
();
}
...
...
@@ -242,92 +492,112 @@ export default {
},
methods
:
{
moment
,
paneChange
()
{
this
.
panes
.
forEach
((
item
)
=>
{
item
.
show
=
false
;
});
this
.
panes
[
Number
(
this
.
activeKey
)].
show
=
true
;
},
changeAmount
(
row
)
{
if
((
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
)
<
0
)
{
if
(
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
<
0
)
{
this
.
$message
.
warning
(
"
录入账单回款金额大于账单金额
"
);
}
},
onSelectChange
(
selectedRow
,
selected
)
{
if
(
selected
)
{
this
.
selectedRowKeys
.
push
(
selectedRow
.
id
)
this
.
selectedRows
.
push
(
selectedRow
)
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
])
const
index
=
this
.
selectedRowKeys
.
findIndex
(
(
item
)
=>
item
===
selectedRow
.
id
);
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
this
.
_confirmDelReceipt
([
selectedRow
]);
}
},
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
)
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
)
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
.
selectedRowKeys
.
splice
(
index
,
1
)
;
this
.
selectedRows
.
splice
(
index
,
1
)
;
if
(
record
.
relationed
)
{
// 已经关联的调用接口删除
this
.
_confirmDelReceipt
([
record
])
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
);
}
});
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
))
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
)
)
{
this
.
$modal
.
confirm
({
title
:
"
提示
"
,
content
:
"
是否解除已关联账单
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
selectedRowKeys
=
[]
this
.
selectedRows
=
[]
this
.
selectedRowKeys
=
[]
;
this
.
selectedRows
=
[]
;
},
onCancel
:
()
=>
{},
});
}
this
.
_getNewEOBList
()
this
.
_getNewEOBList
()
;
},
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
,
}
this
.
_getNewEOBList
()
}
;
this
.
_getNewEOBList
()
;
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
...
...
@@ -337,101 +607,110 @@ export default {
},
// 获取已关联的账单
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
);
}
});
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
({
_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
,
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
||
[];
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
;
//新建/保存回款
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
.
backDate
)
{
this
.
$message
.
warning
(
"
请选择回款日期
"
);
reject
();
return
;
}
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
"
请输入回款金额
"
);
reject
();
return
;
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
"
请输入回款金额
"
);
reject
();
return
;
}
let
receiptVoList
=
this
.
selectedRows
.
map
(
item
=>
{
let
receiptVoList
=
this
.
selectedRows
.
map
(
(
item
)
=>
{
return
{
id
:
item
.
id
,
backAmount
:
item
.
backAmount
,
}
})
const
valid
=
receiptVoList
.
some
(
item
=>
{
return
!
item
.
backAmount
})
if
(
valid
)
{
arrearsAmount
:
item
.
arrearsAmount
,
};
});
const
valid
=
receiptVoList
.
some
((
item
)
=>
{
const
exist
=
!
item
.
backAmount
&&
item
.
backAmount
!==
0
return
exist
;
});
if
(
valid
)
{
this
.
$message
.
warning
(
"
存在关联账单未输入回款金额
"
);
reject
();
return
;
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结案
}
...
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
=>
{
formData
.
fileList
=
this
.
fileList
.
map
(
(
d
)
=>
{
const
file
=
{
fileName
:
d
.
name
,
fileUrl
:
d
.
url
}
return
file
})
fileUrl
:
d
.
url
,
}
;
return
file
;
})
;
this
.
$apis
.
SAVEBACKMONEY
(
formData
)
.
then
((
res
)
=>
{
this
.
$apis
.
SAVEBACKMONEY
(
formData
).
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
backMoneyNo
=
res
.
content
;
this
.
savedStatus
=
true
;
...
...
@@ -439,7 +718,7 @@ export default {
this
.
selectedRowKeys
=
[];
this
.
getData
();
this
.
_getNewEOBList
();
// this.$router.go(-1);
resolve
();
}
else
{
...
...
@@ -447,21 +726,21 @@ export default {
reject
();
}
});
})
})
;
},
/* ======== 上传区域 ======== */
// 上传之前
beforeUpload
(){
beforeUpload
()
{
const
len
=
this
.
fileList
.
length
;
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
'
不能超过5个文件
'
);
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
"
不能超过5个文件
"
);
return
false
;
}
return
true
;
},
// 删除文件
removeFile
(
file
){
removeFile
(
file
)
{
let
index
;
this
.
fileList
.
forEach
((
item
,
i
)
=>
{
if
(
item
.
uid
==
file
.
uid
)
{
...
...
@@ -472,25 +751,32 @@ export default {
return
true
;
},
// 上传文件
uploadFile
(
fileData
){
uploadFile
(
fileData
)
{
let
formData
=
new
FormData
();
formData
.
append
(
"
file
"
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
)
.
then
((
res
)
=>
{
this
.
$apis
.
UPLOADIMG
(
formData
).
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
original
,
status
:
'
done
'
,
status
:
"
done
"
,
url
:
res
.
url
,
}
}
;
this
.
fileList
.
push
(
tmp
);
this
.
$forceUpdate
();
})
})
;
},
// 导出账单列表
exportEvt
()
{}
//导出报表
exportExcel
(){
let
filter
=
{
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
}
this
.
$apis
.
EXPORTBACKRECEIPTLIST
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
已关联账单.xls
'
);
})
}
},
};
</
script
>
...
...
@@ -505,6 +791,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;
...
...
@@ -525,15 +814,25 @@ export default {
color: #ff3b30;
}
.burt-container {
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
height: calc(100vh - 110px);
.bill-content {
flex: 1;
min-height: 0;
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
::v-deep {
.ant-tabs {
flex: 1;
min-height: 0;
}
}
}
.bill-content {
height: calc(100vh - 338px);
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
}
::v-deep .bill-form {
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
}
</
style
>
This diff is collapsed.
Click to expand it.
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