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
0f66ee66
Commit
0f66ee66
authored
May 30, 2023
by
suqh
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'func-eccs-2152' into test
parents
d77d3f44
b6ab0bac
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
3142 additions
and
2544 deletions
+3142
-2544
verification.js
src/api/apis_moudles/verification.js
+21
-18
verification.js
src/api/funcs_modules/verification.js
+97
-79
utilsdictOptions.js
src/utils/utilsdictOptions.js
+70
-64
detail.vue
src/views/charge-query/detail.vue
+391
-391
index.vue
src/views/charge-query/index.vue
+340
-323
lpjManageDetail.vue
src/views/charge-query/lpjManageDetail.vue
+585
-559
index.vue
src/views/customer/edit/index.vue
+4
-4
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
+338
-208
collectionDetail.vue
src/views/verification/collectionDetail.vue
+669
-195
indexDetail.vue
src/views/verification/indexDetail.vue
+529
-529
No files found.
src/api/apis_moudles/verification.js
View file @
0f66ee66
// 核销管理api
export
default
{
queryEobList
:
"
/backstage/auth/queryEobList
"
,
//EOB列表查询
queryEobReceiptList
:
"
/backstage/auth/queryEobReceiptList
"
,
//EOB待核销账单查询
queryEobNeedReceiptList
:
"
/backstage/auth/queryEobNeedReceiptList
"
,
//EOB待确认账单列表查询
deleteEobReceiptInfo
:
"
/backstage/auth/deleteEobReceiptInfo
"
,
//删除EOB
saveEobReceiptInfo
:
"
/backstage/auth/saveEobReceiptInfo
"
,
//EOB新建
queryBackMoneyList
:
"
/backstage/auth/queryBackMoneyList
"
,
//回款列表
queryBackEobList
:
"
/backstage/auth/queryBackEobList
"
,
//回款关联EOB列表查询
queryEobInfoList
:
"
/backstage/auth/queryEobInfoList
"
,
//待回款EOB列表查询
saveBackMoney
:
"
/backstage/auth/saveBackMoney
"
,
//新建回款
deleteBackMoney
:
"
/backstage/auth/deleteBackMoney
"
,
//删除回款
eobReceipListExport
:
"
/backstage/auth/eobReceipListExport
"
,
//EOB关联账单导出
queryBackReceiptList
:
"
/backstage/auth/queryBackReceiptList
"
,
//回销关联账单列表查询
queryReceiptInfoList
:
"
/backstage/auth/queryReceiptInfoList
"
,
//回销账单列表查询
};
// 核销管理api
export
default
{
queryEobList
:
"
/backstage/auth/queryEobList
"
,
//EOB列表查询
queryEobReceiptList
:
"
/backstage/auth/queryEobReceiptList
"
,
//EOB待核销账单查询
queryEobNeedReceiptList
:
"
/backstage/auth/queryEobNeedReceiptList
"
,
//EOB待确认账单列表查询
deleteEobReceiptInfo
:
"
/backstage/auth/deleteEobReceiptInfo
"
,
//删除EOB
saveEobReceiptInfo
:
"
/backstage/auth/saveEobReceiptInfo
"
,
//EOB新建
queryBackMoneyList
:
"
/backstage/auth/queryBackMoneyList
"
,
//回款列表
queryBackEobList
:
"
/backstage/auth/queryBackEobList
"
,
//回款关联EOB列表查询
queryEobInfoList
:
"
/backstage/auth/queryEobInfoList
"
,
//待回款EOB列表查询
saveBackMoney
:
"
/backstage/auth/saveBackMoney
"
,
//新建回款
deleteBackMoney
:
"
/backstage/auth/deleteBackMoney
"
,
//删除回款
eobReceipListExport
:
"
/backstage/auth/eobReceipListExport
"
,
//EOB关联账单导出
queryBackReceiptList
:
"
/backstage/auth/queryBackReceiptList
"
,
//回销关联账单列表查询
queryReceiptInfoList
:
"
/backstage/auth/queryReceiptInfoList
"
,
//回销账单列表查询
deleteReceiptRecord
:
"
/backstage/auth/deleteBackReceipt
"
,
// 删除已关联账单
exportBackMoneyReport
:
"
/backstage/auth/backMoneyListExport
"
,
// 回款列表导出
exportBackReceiptList
:
"
/backstage/auth/exportBackReceiptList
"
,
// 关联账单列表导出
};
src/api/funcs_modules/verification.js
View file @
0f66ee66
// 核销管理函数库
import
apis
from
"
../apis_moudles/verification.js
"
;
import
req
from
"
../request
"
;
//EOB列表查询
const
QUERYEOBLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobList
,
data
);
};
//EOB待核销账单查询
const
QUERYEOBRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobReceiptList
,
data
);
};
//EOB待确认账单列表查询
const
QUERYEOBNEEDRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobNeedReceiptList
,
data
);
};
//EOB新建
const
SAVEEOBRECEIPTINFO
=
(
data
)
=>
{
return
req
.
post
(
apis
.
saveEobReceiptInfo
,
data
);
};
//删除EOB
const
DELEOBRECEIPTINFO
=
(
data
)
=>
{
return
req
.
post
(
apis
.
deleteEobReceiptInfo
,
data
);
};
//回款列表
const
QUERYBACKMONEYLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackMoneyList
,
data
);
};
//回款关联EOB列表查询
const
QUERYBACKEOBLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackEobList
,
data
);
};
//待回款EOB列表查询
const
QUERYEOBINFOLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobInfoList
,
data
);
};
//新建回款
const
SAVEBACKMONEY
=
(
data
)
=>
{
return
req
.
post
(
apis
.
saveBackMoney
,
data
);
};
//删除回款
const
DELETEBACKMONEY
=
(
data
)
=>
{
return
req
.
post
(
apis
.
deleteBackMoney
,
data
);
};
//EOB关联账单导出
const
EOBRECEIPLISTEXPORT
=
(
data
=
{})
=>
{
return
req
.
post
(
apis
.
eobReceipListExport
,
data
,
{
responseType
:
"
blob
"
});
};
//回销关联账单列表查询
const
QUERYBACKRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackReceiptList
,
data
);
};
//回销账单列表查询
const
QUERYBACKRECEIPTINFOLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryReceiptInfoList
,
data
);
};
// 对象数组
export
default
{
QUERYEOBLIST
,
QUERYEOBRECEIPTLIST
,
QUERYEOBNEEDRECEIPTLIST
,
SAVEEOBRECEIPTINFO
,
DELEOBRECEIPTINFO
,
QUERYBACKMONEYLIST
,
QUERYBACKEOBLIST
,
QUERYEOBINFOLIST
,
SAVEBACKMONEY
,
DELETEBACKMONEY
,
EOBRECEIPLISTEXPORT
,
QUERYBACKRECEIPTLIST
,
QUERYBACKRECEIPTINFOLIST
// 核销管理函数库
import
apis
from
"
../apis_moudles/verification.js
"
;
import
req
from
"
../request
"
;
//EOB列表查询
const
QUERYEOBLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobList
,
data
);
};
//EOB待核销账单查询
const
QUERYEOBRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobReceiptList
,
data
);
};
//EOB待确认账单列表查询
const
QUERYEOBNEEDRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobNeedReceiptList
,
data
);
};
//EOB新建
const
SAVEEOBRECEIPTINFO
=
(
data
)
=>
{
return
req
.
post
(
apis
.
saveEobReceiptInfo
,
data
);
};
//删除EOB
const
DELEOBRECEIPTINFO
=
(
data
)
=>
{
return
req
.
post
(
apis
.
deleteEobReceiptInfo
,
data
);
};
//回款列表
const
QUERYBACKMONEYLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackMoneyList
,
data
);
};
//回款关联EOB列表查询
const
QUERYBACKEOBLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackEobList
,
data
);
};
//待回款EOB列表查询
const
QUERYEOBINFOLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryEobInfoList
,
data
);
};
//新建回款
const
SAVEBACKMONEY
=
(
data
)
=>
{
return
req
.
post
(
apis
.
saveBackMoney
,
data
);
};
//删除回款
const
DELETEBACKMONEY
=
(
data
)
=>
{
return
req
.
post
(
apis
.
deleteBackMoney
,
data
);
};
//EOB关联账单导出
const
EOBRECEIPLISTEXPORT
=
(
data
=
{})
=>
{
return
req
.
post
(
apis
.
eobReceipListExport
,
data
,
{
responseType
:
"
blob
"
});
};
//回销关联账单列表查询
const
QUERYBACKRECEIPTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryBackReceiptList
,
data
);
};
//回销账单列表查询
const
QUERYBACKRECEIPTINFOLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
queryReceiptInfoList
,
data
);
};
// 删除已关联账单
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
,
QUERYEOBRECEIPTLIST
,
QUERYEOBNEEDRECEIPTLIST
,
SAVEEOBRECEIPTINFO
,
DELEOBRECEIPTINFO
,
QUERYBACKMONEYLIST
,
QUERYBACKEOBLIST
,
QUERYEOBINFOLIST
,
SAVEBACKMONEY
,
DELETEBACKMONEY
,
EOBRECEIPLISTEXPORT
,
QUERYBACKRECEIPTLIST
,
QUERYBACKRECEIPTINFOLIST
,
DELETERECEIPTRECORD
,
EXPORTBACKMONEYREPORT
,
EXPORTBACKRECEIPTLIST
};
\ No newline at end of file
src/utils/utilsdictOptions.js
View file @
0f66ee66
//性别
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
src/views/charge-query/detail.vue
View file @
0f66ee66
<
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.pa
tientType"
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
:
""
,
pa
tientName
:
""
,
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
,
},
c
omputed
:
{
...
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.pa
yorId"
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-
input
v-model=
"form.doctorName"
placeholder=
"请输入看诊医生"
allow-clear
/>
</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
:
{
pa
geNum
:
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
];
},
},
c
reated
()
{
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
>
src/views/charge-query/index.vue
View file @
0f66ee66
<
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=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"form.status"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in statusOptions"
:key=
"item.code"
:value=
"item.code"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:xl=
"8"
:lg=
"3"
:sm=
"3"
class=
"none-label"
>
<a-form-model-item
label=
"button"
>
<!--
<a-button>
更新数据
</a-button>
-->
<!--
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewCharge"
>
<Icon
name=
"ssiadd"
:size=
"14"
/>
新建预授权
</a-button>
-->
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerReset"
>
<Icon
name=
"ssireset"
:size=
"14"
/>
重置
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"handlerSearch"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"index"
slot-scope=
"text, record, index"
>
{{
index
+
1
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"record"
>
<!--
<a-button
type=
"link"
@
click.stop=
"receiptEvt(record)"
>
结算
</a-button>
-->
<a-button
type=
"link"
class=
"success"
@
click.stop=
"detailEvt(record)"
>
查看
</a-button>
<!--
<a-popconfirm
title=
"你确定要关闭吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteData"
>
<a-button
type=
"link"
class=
"danger"
>
删除
</a-button>
</a-popconfirm>
-->
</
template
>
<
template
slot=
"isSend"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEob"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"isEobBack"
slot-scope=
"text"
>
{{
text
==
'
Y
'
?
'
是
'
:
text
==
'
N
'
?
'
否
'
:
''
}}
</
template
>
<
template
slot=
"status"
slot-scope=
"text"
>
{{
text
==
'
1
'
?
'
有效
'
:
text
==
'
2
'
?
'
无效
'
:
''
}}
</
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
:
"
status
"
,
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
'
:
'
退费
'
},
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
]
};
},
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
>
src/views/charge-query/lpjManageDetail.vue
View file @
0f66ee66
<
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
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"账单编号"
>
<a-input
v-model=
"searchForm.receiptNo"
placeholder=
"请输入账单编号"
allow-clear
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"searchForm.rStatus"
placeholder=
"请选择状态"
allow-clear
>
<a-select-option
:key=
"item.code"
:value=
"item.code"
v-for=
"item in statusOptions"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</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=
"status"
slot-scope=
"text"
>
{{
text
==
1
?
'
有效
'
:
text
==
2
?
'
无效
'
:
''
}}
</
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
"
}],
},
statusOptions
:
[
{
name
:
'
无效
'
,
code
:
2
},
{
name
:
'
有效
'
,
code
:
1
}
]
};
},
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
:
"
status
"
,
key
:
"
status
"
,
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
>
src/views/customer/edit/index.vue
View file @
0f66ee66
...
...
@@ -42,14 +42,14 @@
<a-form-model-item
label=
"出生日期"
prop=
"birthday"
>
<a-date-picker
v-model=
"form.birthday"
allow-clear
placeholder=
"请选择出生日期"
value-format=
"YYYY-MM-DD 00:00:00"
></a-date-picker>
</a-form-model-item>
<a-form-model-item
label=
"客户公司名称"
prop=
"corpName"
>
<
!--
<
a-form-model-item
label=
"客户公司名称"
prop=
"corpName"
>
<a-select
v-model=
"form.corpName"
placeholder=
"请选择客户公司名称"
show-search
allow-clear
:filterOption=
"filterCode"
@
change=
"corpChange"
@
search=
"corpSearch"
>
<a-select-option
v-for=
"item in comCorpCode"
:key=
"item.id"
:value=
"item.id + '$_' + item.longName"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model-item>
-->
<a-form-model-item
label=
"保单生效日期"
prop=
"startDate"
>
<a-date-picker
allow-clear
v-model=
"form.startDate"
placeholder=
"请选择保单生效日期"
value-format=
"YYYY-MM-DD 00:00:00"
@
change=
"startDateChange"
></a-date-picker>
</a-form-model-item>
...
...
@@ -85,7 +85,7 @@
<a-date-picker
allow-clear
v-model=
"form.endDate"
placeholder=
"请选择保单终止日期"
value-format=
"YYYY-MM-DD 00:00:00"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<
!--
<
a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险计划"
prop=
"planName"
>
<a-select
v-model=
"form.planName"
placeholder=
"请选择保险计划"
show-search
allow-clear
:filterOption=
"filterCode"
@
search=
"codeSearch"
>
...
...
@@ -94,7 +94,7 @@
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-col>
-->
<a-col
:xl=
"6"
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"其他备注"
prop=
"remark"
>
<a-input
allow-clear
v-model=
"form.remark"
placeholder=
"请输入备注信息"
></a-input>
...
...
src/views/home/index.vue
View file @
0f66ee66
<
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
src/views/layout/components/menu/subMenu.vue
deleted
100644 → 0
View file @
d77d3f44
<
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
>
src/views/layout/index.vue
View file @
0f66ee66
<
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
>
src/views/verification/collection.vue
View file @
0f66ee66
<
template
>
<div
class=
"white_bg burt-container"
>
<!-- 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=
"请选择保险公司"
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=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNo"
placeholder=
"EOB编号"
/>
</a-form-model-item>
</a-col>
<a-col
: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
:md=
"24"
class=
"none-label"
>
<a-form-model-item
label=
"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.stop=
"handlerReset"
>
<Icon
name=
"ssireset"
:size=
"14"
/>
重置
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt"
>
<Icon
name=
"ssiadd"
: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=
"eobSts"
slot-scope=
"text"
>
{{
text
==
1
?
'
待回款
'
:
'
已回款
'
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(record, true)"
>
修改
</a-button>
<a-button
type=
"link"
class=
"success"
@
click.stop=
"editEvt(record)"
>
查看
</a-button>
<a-button
v-if=
"record.backMoneyNo"
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(index)"
>
删除
</a-button>
</
template
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"getData"
/>
</div>
</template>
<
script
>
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
moment
from
"
moment
"
;
const
columns
=
[
{
title
:
"
回款编号
"
,
dataIndex
:
"
backMoneyNo
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
回款金额(人民币)
"
,
dataIndex
:
"
backAmountCny
"
,
ellipsis
:
true
,
width
:
190
,},
{
title
:
"
余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
130
,},
{
title
:
"
EOB编号
"
,
dataIndex
:
"
eobNos
"
,
ellipsis
:
true
,
width
:
140
},
{
title
:
"
EOB备注
"
,
dataIndex
:
"
eobRemark
"
,
ellipsis
:
true
,
width
:
140
},
{
title
:
"
创建时间
"
,
dataIndex
:
"
createDate
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
fixed
:
"
right
"
,
width
:
"
200px
"
,
align
:
"
center
"
},
];
export
default
{
data
()
{
return
{
columns
,
form
:
{
payorCode
:
''
,
eobNo
:
''
,
dateRange
:
[],
//创建时间范围
startDate
:
''
,
endDate
:
''
},
dataList
:
[],
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
};
},
components
:
{
BurtPagination
,
},
created
(){
this
.
getData
();
this
.
_getCompanyOptions
();
},
methods
:
{
moment
,
pageChange
(
pager
)
{
const
{
current
}
=
pager
;
this
.
pagination
.
pageNum
=
current
;
this
.
getData
();
},
// 重置
handlerReset
()
{
this
.
form
=
{
payorCode
:
''
,
eobNo
:
''
,
dateRange
:
[],
//创建时间范围
startDate
:
''
,
endDate
:
''
}
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 选中就诊时间
onSelectVisitTime
(
date
,
dateString
)
{
this
.
form
.
startDate
=
dateString
[
0
]
+
''
this
.
form
.
endDate
=
dateString
[
1
]
+
''
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
this
.
getData
();
},
getData
()
{
this
.
$apis
.
QUERYBACKMONEYLIST
({
...
this
.
form
,
dateRange
:
undefined
,
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建回款
addNewEvt
(){
this
.
$router
.
push
({
path
:
'
/verification/collectionDetail
'
,
query
:
{
isEdit
:
true
}
})
},
//编辑回款
editEvt
(
record
,
isEdit
){
const
{
backMoneyNo
}
=
record
;
localStorage
.
setItem
(
'
backMoneyDataDetail
'
,
JSON
.
stringify
(
record
));
this
.
$router
.
push
({
path
:
'
/verification/collectionDetail
'
,
query
:
{
backMoneyNo
,
isEdit
}
})
},
//删除记录
delRecord
(
index
)
{
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
:
"
确定删除该条记录?
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELETEBACKMONEY
({
backMoneyNo
:
this
.
dataList
[
index
].
backMoneyNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
dataList
.
splice
(
index
,
1
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
onCancel
:
()
=>
{},
});
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</
style
>
<
template
>
<div
class=
"white_bg burt-container"
>
<!-- 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=
"请选择保险公司"
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=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNo"
placeholder=
"EOB编号"
/>
</a-form-model-item>
</a-col>
<a-col
: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
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"状态"
>
<a-select
v-model=
"form.backStatus"
placeholder=
"请选择状态"
allowClear
>
<a-select-option
v-for=
"item in backStatusOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额"
>
<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"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click.stop=
"handlerReset"
>
<Icon
name=
"ssireset"
:size=
"14"
/>
重置
</a-button>
<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>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }"
:pagination="false"
>
<template
slot=
"eobSts"
slot-scope=
"text"
>
{{
text
==
1
?
"
待回款
"
:
"
已回款
"
}}
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(record, true)"
>
修改
</a-button
>
<a-button
type=
"link"
class=
"success"
@
click.stop=
"editEvt(record)"
>
查看
</a-button
>
<a-button
v-if=
"record.backMoneyNo"
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(index)"
>
删除
</a-button
>
</
template
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"getData"
/>
</div>
</template>
<
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
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
回款金额(人民币)
"
,
dataIndex
:
"
backAmountCny
"
,
ellipsis
:
true
,
width
:
190
,
},
{
title
:
"
未核销余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
130
,
},
{
title
:
"
EOB备注
"
,
dataIndex
:
"
eobRemark
"
,
ellipsis
:
true
,
width
:
140
},
{
title
:
"
创建时间
"
,
dataIndex
:
"
createDate
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
状态
"
,
dataIndex
:
"
backStatusStr
"
,
ellipsis
:
true
,
width
:
90
},
{
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
fixed
:
"
right
"
,
width
:
"
200px
"
,
align
:
"
center
"
,
},
];
export
default
{
data
()
{
return
{
columns
,
form
:
{
payorCode
:
""
,
eobNo
:
""
,
dateRange
:
[],
//创建时间范围
startDate
:
""
,
endDate
:
""
,
backStatus
:
""
,
backAmountCny
:
""
,
// 回款金额
backMoneyNo
:
""
,
// 回款编号
},
dataList
:
[],
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
backStatusOptions
:
[
{
name
:
'
全部
'
,
value
:
''
},
{
name
:
'
已结案
'
,
value
:
'
1
'
},
{
name
:
'
暂存
'
,
value
:
'
0
'
}
]
};
},
components
:
{
BurtPagination
,
},
created
()
{
this
.
getData
();
this
.
_getCompanyOptions
();
},
methods
:
{
moment
,
pageChange
(
pager
)
{
const
{
current
}
=
pager
;
this
.
pagination
.
pageNum
=
current
;
this
.
getData
();
},
// 重置
handlerReset
()
{
this
.
form
=
{
payorCode
:
""
,
eobNo
:
""
,
dateRange
:
[],
//创建时间范围
startDate
:
""
,
endDate
:
""
,
backStatus
:
""
};
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 选中就诊时间
onSelectVisitTime
(
date
,
dateString
)
{
this
.
form
.
startDate
=
dateString
[
0
]
+
""
;
this
.
form
.
endDate
=
dateString
[
1
]
+
""
;
},
handlerSearch
()
{
this
.
pagination
.
pageNum
=
1
;
this
.
getData
();
},
getData
()
{
this
.
$apis
.
QUERYBACKMONEYLIST
({
...
this
.
form
,
dateRange
:
undefined
,
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
.
map
(
item
=>
{
item
.
backStatusStr
=
item
.
backStatus
===
'
0
'
?
'
暂存
'
:
'
已结案
'
return
item
})
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建回款
addNewEvt
()
{
this
.
$router
.
push
({
path
:
"
/verification/collectionDetail
"
,
query
:
{
isEdit
:
true
,
},
});
},
//编辑回款
editEvt
(
record
,
isEdit
)
{
const
{
backMoneyNo
}
=
record
;
localStorage
.
setItem
(
"
backMoneyDataDetail
"
,
JSON
.
stringify
(
record
));
console
.
log
(
isEdit
,
record
.
backStatus
)
// 已结案状态,二次确认
if
(
isEdit
&&
record
.
backStatus
===
"
1
"
)
{
this
.
$modal
.
confirm
({
title
:
"
修改
"
,
content
:
"
处于已结案状态,是否确定修改该条记录?
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$router
.
push
({
path
:
"
/verification/collectionDetail
"
,
query
:
{
backMoneyNo
,
isEdit
,
},
});
},
onCancel
:
()
=>
{},
});
return
;
}
this
.
$router
.
push
({
path
:
"
/verification/collectionDetail
"
,
query
:
{
backMoneyNo
,
isEdit
,
},
});
},
//删除记录
delRecord
(
index
)
{
let
content
=
"
确定删除该条记录?
"
if
(
this
.
dataList
[
index
].
backStatus
===
"
1
"
)
{
content
=
"
处于已结案状态,确定删除该条记录?
"
}
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELETEBACKMONEY
({
backMoneyNo
:
this
.
dataList
[
index
].
backMoneyNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
dataList
.
splice
(
index
,
1
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
onCancel
:
()
=>
{},
});
},
//导出报表
exportExcel
(){
let
filter
=
{
...
this
.
form
,
dateRange
:
undefined
,
}
this
.
$apis
.
EXPORTBACKMONEYREPORT
(
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);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</
style
>
src/views/verification/collectionDetail.vue
View file @
0f66ee66
<
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=
"_getNewEOBList"
>
<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
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=
"上传附件"
>
<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=
"7"
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>
<!-- 已关联账单 -->
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
已关联账单
</div>
<a-table
class=
"table-content"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: true }" :pagination="false">
</a-table>
</
template
>
<!-- table -->
<div
class=
"table-title"
>
账单列表
</div>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"{ x: true }"
:pagination=
"false"
:rowKey=
"'id'"
:row-selection=
"{ selectedRowKeys: selectedRowKeys, onSelect: onSelectChange, onSelectAll: onSelectAll }"
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
<a-tabs
v-model=
"activeKey"
@
change=
"paneChange"
>
<a-tab-pane
v-for=
"pane in panes"
:key=
"pane.key"
:tab=
"pane.title"
>
<template
v-if=
"activeKey === '0'"
>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
: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-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>
<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
{
...
...
@@ -89,12 +277,13 @@ export default {
EOBStatusOptions
,
dialogShow
:
false
,
form
:
{
payorCode
:
''
,
payorCode
:
""
,
backDate
:
null
,
backAmountCny
:
''
,
backAmountUsd
:
''
,
backExchangeRate
:
''
,
eobNos
:
''
// EOB编号
backAmountCny
:
""
,
backAmountUsd
:
""
,
backExchangeRate
:
""
,
eobNos
:
""
,
// EOB编号
eobRemark
:
""
,
// EOB备注
},
fileList
:
[],
// 上传文件列表
dataList
:
[],
...
...
@@ -102,16 +291,30 @@ export default {
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
5
,
total
:
0
,
},
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
"
}],
},
searchForm
:
{
billDate
:
[],
mrnNo
:
""
,
// 病历号
patientName
:
""
,
// 客户名字
},
savedStatus
:
false
,
//是否已保存
relatedList
:
[],
panes
:
[
{
title
:
"
基础信息
"
,
key
:
"
0
"
,
show
:
true
,
content
:
"
PaymentClaims
"
},
{
title
:
"
账单列表
"
,
key
:
"
1
"
,
show
:
false
,
content
:
"
Insurance
"
},
],
activeKey
:
"
0
"
,
};
},
mixins
:
[
mixins
],
...
...
@@ -121,49 +324,173 @@ 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
:
110
},
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
{
title
:
"
账单日期
"
,
dataIndex
:
"
createDate
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,},
{
title
:
"
账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,},
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,},
{
title
:
"
回款日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
150
,},
];
return
base
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
账单状态
"
,
dataIndex
:
"
status
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
,
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
账单日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
180
,
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,
},
{
title
:
"
理赔账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
writeOffAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
arrearsAmountShow
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
];
return
base
;
},
selectedColumns
()
{
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
))
base
[
5
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
/>
}
}
return
base
}
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
));
const
changeAmount
=
this
.
changeAmount
;
base
[
8
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
[
10
]
=
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
-
Number
(
row
.
arrearsAmount
||
0
);
return
Number
(
residueBackAmount
.
toFixed
(
2
));
},
};
base
[
9
]
=
{
title
:
"
个人欠费
"
,
dataIndex
:
"
arrearsAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
arrearsAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
.
splice
(
8
,
0
,
{
title
:
"
余末金额
"
,
dataIndex
:
"
currentReceiptAmount
"
,
ellipsis
:
true
,
width
:
150
,
});
base
.
push
({
title
:
"
回款日期
"
,
dataIndex
:
"
backDate
"
,
ellipsis
:
true
,
width
:
150
,
});
if
(
this
.
isEdit
)
{
base
.
push
({
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
fixed
:
"
right
"
,
width
:
100
,
scopedSlots
:
{
customRender
:
"
operation
"
},
});
}
return
base
;
},
// 可核销余额
residueBackAmount
()
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
);
this
.
selectedRows
.
forEach
((
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
);
});
return
Number
(
totalMoney
.
toFixed
(
2
));
},
},
created
(){
const
{
backMoneyNo
,
isEdit
}
=
this
.
$route
.
query
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
();
}
...
...
@@ -171,35 +498,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
)
{
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
)
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
)
changeRows
.
forEach
((
item
)
=>
{
const
findIndex
=
this
.
selectedRowKeys
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
this
.
selectedRowKeys
.
splice
(
findIndex
,
1
);
this
.
selectedRows
.
splice
(
findIndex
,
1
);
});
this
.
_confirmDelReceipt
(
changeRows
);
}
},
delRecord
(
record
,
index
)
{
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
if
(
record
.
relationed
)
{
// 已经关联的调用接口删除
this
.
_confirmDelReceipt
([
record
]);
}
},
_confirmDelReceipt
(
records
)
{
console
.
log
(
records
);
if
(
!
this
.
backMoneyNo
)
return
;
const
receiptVoList
=
records
.
filter
((
item
)
=>
{
const
findIndex
=
this
.
relatedList
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
return
findIndex
>
-
1
;
})
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
,
};
});
console
.
log
(
receiptVoList
);
if
(
receiptVoList
.
length
===
0
)
return
;
this
.
$apis
.
DELETERECEIPTRECORD
({
backMoneyNo
:
this
.
backMoneyNo
,
receiptVoList
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
_getNewEOBList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 修改保险公司
changePayor
()
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
)
)
{
this
.
$modal
.
confirm
({
title
:
"
提示
"
,
content
:
"
是否解除已关联账单
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
selectedRowKeys
=
[];
this
.
selectedRows
=
[];
},
onCancel
:
()
=>
{},
});
}
this
.
_getNewEOBList
();
},
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
}
this
.
_getNewEOBList
()
...
pager
,
}
;
this
.
_getNewEOBList
()
;
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
...
...
@@ -209,88 +613,118 @@ 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
}
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
(){
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
_getNewEOBList
()
{
let
billDate
=
this
.
searchForm
.
billDate
||
[];
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
payorCode
:
this
.
form
.
payorCode
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchForm
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
"
23:59:59
"
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
"
00:00:00
"
:
undefined
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
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
.
backAmountCny
){
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
.
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 00:00:00
'
):
''
,
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
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
getData
();
this
.
_getNewEOBList
();
// this.$router.go(-1);
resolve
();
}
else
{
...
...
@@ -298,21 +732,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
)
{
...
...
@@ -323,22 +757,31 @@ 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
();
})
});
},
//导出报表
exportExcel
(){
let
filter
=
{
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
}
this
.
$apis
.
EXPORTBACKRECEIPTLIST
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
已关联账单.xls
'
);
})
}
},
};
...
...
@@ -353,11 +796,20 @@ export default {
}
.table-title {
font-size: 15px;
margin: 12px 0 6px;
margin: 6px 0;
display: flex;
align-items: center;
justify-content: space-between;
}
.table-content {
margin-bottom: 8px;
}
.search-form {
margin-top: 24px;
.ant-form .ant-form-item {
margin-bottom: 4px;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
...
...
@@ -367,4 +819,26 @@ export default {
.danger.ant-btn-link {
color: #ff3b30;
}
.burt-container {
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
::v-deep {
.ant-tabs {
flex: 1;
min-height: 0;
}
}
}
.bill-content {
height: calc(100vh - 380px);
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
}
::v-deep .bill-form {
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
}
</
style
>
src/views/verification/indexDetail.vue
View file @
0f66ee66
<
template
>
<div
class=
"white_bg burt-container"
>
<Goback
title=
"EOB详情"
/>
<!-- 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"
>
<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=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB日期"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"form.eobDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB名称"
>
<a-input
v-model=
"form.eobName"
placeholder=
"请输入EOB名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.eobAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.eobAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB状态"
>
<a-select
v-model=
"form.eobSts"
placeholder=
"请选择"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
v-for=
"(item,i) in EOBStatusOptions"
:key=
"i"
:value=
"item.value"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
v-if=
"isEdit"
>
<a-form-model-item
label=
"EOB文件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:fileList=
"form.eobFile"
:customRequest=
"uploadEvt"
:remove=
"removeFile"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传EOB文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"就诊日期起止"
>
<a-range-picker
format=
"YYYY-MM-DD"
v-model=
"form.visitTimeStart"
:placeholder=
"['开始时间','结束时间']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"form.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=
"form.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"24"
:sm=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt"
>
<Icon
:name=
"eobNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
eobNo
?
'
保存EOB
'
:
'
新建EOB
'
}}
</a-button>
</a-form-model-item>
</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>
<div
class=
"btn-div mar-bottom10 none-label"
>
<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=
"isEditNewEob?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
isEditNewEob
?
'
保存账单
'
:
'
添加账单
'
}}
</a-button>
</div>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false"
:row-selection="isEditNewEob?{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }:null">
<template
slot=
"claimsStatus"
slot-scope=
"text"
>
<span>
{{
text
|
formatClaimsStatus
}}
</span>
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(record)"
>
修改
</a-button>
<!--
<a-button
v-if=
"record.eobNo"
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(index)"
>
删除
</a-button>
-->
</
template
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
<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"
:sm=
"24"
>
<a-form-model-item
label=
"理赔状态"
prop=
"claimsStatus"
>
<a-select
v-model=
"editFormObj.claimsStatus"
placeholder=
"请选择理赔状态"
allow-clear
>
<a-select-option
v-for=
"(item,i) in ClaimsStatusOptions"
:key=
"i"
:value=
"item.value"
>
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"账单回款金额"
prop=
"paidAmountEob"
>
<a-input
v-model.trim=
"editFormObj.paidAmountEob"
placeholder=
"账单回款金额"
type=
"number"
@
change=
"changePaidAmount"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"未赔付金额"
prop=
"refuseAmountEob"
>
<a-input
v-model.trim=
"editFormObj.refuseAmountEob"
placeholder=
"未赔付金额"
type=
"number"
/>
</a-form-model-item>
</a-col>
<!-- eccs-1944 -->
<!-- <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
{
ClaimsStatusOptions
,
EOBStatusOptions
}
from
'
@/utils/utilsdictOptions.js
'
import
mixins
from
"
@/mixins
"
;
export
default
{
data
()
{
return
{
dialogShow
:
false
,
isEdit
:
false
,
ClaimsStatusOptions
,
EOBStatusOptions
,
eobNo
:
''
,
//eob编号
form
:
{
eobDate
:
''
,
payorCode
:
''
,
eobName
:
''
,
eobAmountCny
:
''
,
eobAmountUsd
:
''
,
eobSts
:
''
,
eobRemark
:
''
,
eobFile
:
[]
},
dataList
:
[],
isEditNewEob
:
false
,
//是否在新建EOB
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
selectedRowKeys
:
[],
// Check here to configure the default column
editFormObj
:
{
receiptNo
:
''
,
claimsStatus
:
''
,
paidAmountEob
:
''
,
refuseAmountEob
:
''
},
editRules
:
{
},
searchForm
:{}
};
},
mixins
:
[
mixins
],
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
100
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
80
},
{
title
:
"
就诊日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
理赔状态
"
,
dataIndex
:
"
claimsStatus
"
,
ellipsis
:
true
,
width
:
90
,
scopedSlots
:
{
customRender
:
"
claimsStatus
"
}
},
{
title
:
"
账单金额
"
,
dataIndex
:
"
chargeAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
折后金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
自付金额
"
,
dataIndex
:
"
selfpaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
eobPaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
paidAmountEob
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
未清金额
"
,
dataIndex
:
"
refuseAmountEob
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
保险公司欠费
"
,
dataIndex
:
"
payorNoPaidAmount
"
,
ellipsis
:
true
,
width
:
110
,
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
perNoPaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
备注
"
,
dataIndex
:
"
sendRemark
"
,
ellipsis
:
true
,
width
:
120
},
];
if
(
this
.
eobNo
&&
!
this
.
isEditNewEob
&&
this
.
isEdit
){
// 编辑状态下已经保存的数据才可进行操作
return
base
.
concat
([
{
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
fixed
:
"
right
"
,
width
:
"
170px
"
,
align
:
"
center
"
},
])
}
return
base
}
},
created
(){
const
{
eobNo
,
isEdit
}
=
this
.
$route
.
query
this
.
eobNo
=
eobNo
;
this
.
isEdit
=
!!
isEdit
;
this
.
_getCompanyOptions
();
if
(
this
.
eobNo
){
let
EobDataDetail
=
localStorage
.
getItem
(
'
EobDataDetail
'
);
let
dataDetail
=
EobDataDetail
?
JSON
.
parse
(
EobDataDetail
):
{};
if
(
dataDetail
.
eobFile
){
dataDetail
.
eobFile
=
[
{
uid
:
Math
.
random
()
*
10000
,
name
:
dataDetail
.
eobFile
.
slice
(
dataDetail
.
eobFile
.
lastIndexOf
(
'
/
'
)
+
1
),
status
:
'
done
'
,
url
:
dataDetail
.
eobFile
,
}
]
}
else
{
dataDetail
.
eobFile
=
[];
}
this
.
form
=
dataDetail
;
this
.
getData
();
}
},
methods
:
{
moment
,
onSelectChange
(
selectedRowKeys
)
{
let
arr
=
[];
for
(
let
i
=
0
;
i
<
selectedRowKeys
.
length
;
i
++
){
let
idx
=
selectedRowKeys
[
i
];
if
(
this
.
dataList
[
idx
].
eobNo
){
this
.
$msg
.
destroy
();
this
.
$message
.
warning
(
'
EOB编号已存在
'
)
}
else
{
arr
.
push
(
idx
);
}
}
this
.
selectedRowKeys
=
arr
;
},
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
.
isEditNewEob
)
{
// 点击添加EOB之后 分页数据查询就应该调EOB数据
this
.
_getNewEOBList
()
return
true
;
}
this
.
getData
();
},
//回款金额改变
moneyChange
(){
this
.
editFormObj
.
refuseAmountEob
=
this
.
form
.
eobPaidAmount
||
0
-
this
.
editFormObj
.
paidAmountEob
||
0
;
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 分页
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
}
if
(
this
.
isEditNewEob
)
{
// 点击添加EOB之后 分页数据查询就应该调EOB数据
this
.
_getNewEOBList
()
return
true
;
}
this
.
getData
();
},
getData
()
{
this
.
$apis
.
QUERYEOBRECEIPTLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
eobNo
:
this
.
eobNo
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//修改单条数据
editEvt
(
record
)
{
this
.
dialogShow
=
true
;
this
.
$nextTick
(()
=>
{
this
.
editFormObj
=
{
actualAmount
:
record
.
actualAmount
,
// 该条记录的折后金额
id
:
record
.
id
,
receiptNo
:
record
.
receiptNo
,
refuseAmountEob
:
record
.
refuseAmountEob
||
''
,
claimsStatus
:
record
.
claimsStatus
||
"
01
"
,
paidAmountEob
:
record
.
paidAmountEob
||
record
.
actualAmount
||
""
,
};
})
},
// 账单汇款金额输入改变 未赔付金额=账单金额-账单回款金额
changePaidAmount
()
{
this
.
editFormObj
.
refuseAmountEob
=
(
this
.
editFormObj
.
actualAmount
||
0
)
-
(
this
.
editFormObj
.
paidAmountEob
||
0
)
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$apis
.
SAVEEOBRECEIPTINFO
({
...
this
.
form
,
eobFile
:
this
.
form
.
eobFile
.
length
>
0
?
this
.
form
.
eobFile
[
0
].
url
:
''
,
eobReceiptList
:
[
this
.
editFormObj
],
eobDate
:
this
.
form
.
eobDate
?
moment
(
this
.
form
.
eobDate
).
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
);
}
});
}
});
},
//删除记录
delRecord
(
index
)
{
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
:
"
确定删除该条记录?
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELEOBRECEIPTINFO
({
eobNo
:
this
.
dataList
[
index
].
eobNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
dataList
.
splice
(
index
,
1
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
onCancel
:
()
=>
{},
});
},
//导出
exportEvt
(){
this
.
$apis
.
EOBRECEIPLISTEXPORT
({
eobNo
:
this
.
eobNo
})
.
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
"
,
"
EOB关联账单.xls
"
);
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
window
.
URL
.
revokeObjectURL
(
url
);
})
},
//添加账单
addNewBill
(){
if
(
this
.
isEditNewEob
){
//保存
this
.
addNewEvt
()
.
then
(()
=>
{
this
.
isEditNewEob
=
false
;
})
}
else
{
//查询所有未加入的账单
this
.
pagination
.
pageNum
=
1
;
this
.
isEditNewEob
=
true
;
this
.
_getNewEOBList
();
}
},
_getNewEOBList
()
{
this
.
$apis
.
QUERYEOBNEEDRECEIPTLIST
({
payorCode
:
this
.
form
.
payorCode
,
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
selectedRowKeys
=
[];
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建/保存EOB
addNewEvt
(){
let
visitTimeStart
=
this
.
form
.
visitTimeStart
||
[]
let
eobReceiptList
=
[];
this
.
dataList
.
forEach
((
item
,
index
)
=>
{
if
(
this
.
selectedRowKeys
.
indexOf
(
index
)
!=-
1
){
eobReceiptList
.
push
({
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
refuseAmountEob
:
item
.
refuseAmountEob
,
paidSts
:
item
.
paidSts
,
paidAmountEob
:
item
.
paidAmountEob
,
})
}
})
let
formData
=
{
...
this
.
form
,
eobFile
:
this
.
form
.
eobFile
.
length
>
0
?
this
.
form
.
eobFile
[
0
].
url
:
''
,
eobReceiptList
:
eobReceiptList
,
eobDate
:
this
.
form
.
eobDate
?
moment
(
this
.
form
.
eobDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
):
''
,
eobNo
:
this
.
eobNo
,
visitTimeEnd
:
visitTimeStart
[
1
]
?
moment
(
visitTimeStart
[
1
]).
format
(
'
YYYY-MM-DD
'
)
+
'
23:59:59
'
:
undefined
,
visitTimeStart
:
visitTimeStart
[
0
]
?
moment
(
visitTimeStart
[
0
]).
format
(
'
YYYY-MM-DD
'
)
+
'
00:00:00
'
:
undefined
,
}
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$apis
.
SAVEEOBRECEIPTINFO
(
formData
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
eobNo
=
res
.
content
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
getData
();
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
})
},
removeFile
(){
return
new
Promise
((
resolve
)
=>
{
this
.
form
.
eobFile
=
[];
resolve
();
});
},
//上传
uploadEvt
(
fileData
){
let
formData
=
new
FormData
();
formData
.
append
(
"
file
"
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
)
.
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
fileList
=
[
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
title
,
status
:
'
done
'
,
url
:
res
.
url
,
}
]
this
.
form
.
eobFile
=
fileList
;
})
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.btn-div{
}
.ant-btn .icon-class {
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</
style
>
<
template
>
<div
class=
"white_bg burt-container"
>
<Goback
title=
"EOB详情"
/>
<!-- 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"
>
<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=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB日期"
>
<a-date-picker
format=
"YYYY年MM月DD日"
v-model=
"form.eobDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB名称"
>
<a-input
v-model=
"form.eobName"
placeholder=
"请输入EOB名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.eobAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.eobAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"EOB状态"
>
<a-select
v-model=
"form.eobSts"
placeholder=
"请选择"
allow-clear
:disabled=
"!isEdit"
>
<a-select-option
v-for=
"(item,i) in EOBStatusOptions"
:key=
"i"
:value=
"item.value"
>
{{
item
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
v-if=
"isEdit"
>
<a-form-model-item
label=
"EOB文件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:fileList=
"form.eobFile"
:customRequest=
"uploadEvt"
:remove=
"removeFile"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传EOB文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"就诊日期起止"
>
<a-range-picker
format=
"YYYY-MM-DD"
v-model=
"form.visitTimeStart"
:placeholder=
"['开始时间','结束时间']"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"form.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=
"form.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"24"
:sm=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt"
>
<Icon
:name=
"eobNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
eobNo
?
'
保存EOB
'
:
'
新建EOB
'
}}
</a-button>
</a-form-model-item>
</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>
<div
class=
"btn-div mar-bottom10 none-label"
>
<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=
"isEditNewEob?'ssibaocun':'ssiadd'"
:size=
"14"
/>
{{
isEditNewEob
?
'
保存账单
'
:
'
添加账单
'
}}
</a-button>
</div>
</a-form-model>
<!-- table -->
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false"
:row-selection="isEditNewEob?{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }:null">
<template
slot=
"claimsStatus"
slot-scope=
"text"
>
<span>
{{
text
|
formatClaimsStatus
}}
</span>
</
template
>
<
template
slot=
"operation"
slot-scope=
"text, record"
>
<a-button
type=
"link"
@
click.stop=
"editEvt(record)"
>
修改
</a-button>
<!--
<a-button
v-if=
"record.eobNo"
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(index)"
>
删除
</a-button>
-->
</
template
>
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
<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"
:sm=
"24"
>
<a-form-model-item
label=
"理赔状态"
prop=
"claimsStatus"
>
<a-select
v-model=
"editFormObj.claimsStatus"
placeholder=
"请选择理赔状态"
allow-clear
>
<a-select-option
v-for=
"(item,i) in ClaimsStatusOptions"
:key=
"i"
:value=
"item.value"
>
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"账单回款金额"
prop=
"paidAmountEob"
>
<a-input
v-model.trim=
"editFormObj.paidAmountEob"
placeholder=
"账单回款金额"
type=
"number"
@
change=
"changePaidAmount"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"12"
:xs=
"24"
>
<a-form-model-item
label=
"未赔付金额"
prop=
"refuseAmountEob"
>
<a-input
v-model.trim=
"editFormObj.refuseAmountEob"
placeholder=
"未赔付金额"
type=
"number"
/>
</a-form-model-item>
</a-col>
<!-- eccs-1944 -->
<!-- <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
{
ClaimsStatusOptions
,
EOBStatusOptions
}
from
'
@/utils/utilsdictOptions.js
'
import
mixins
from
"
@/mixins
"
;
export
default
{
data
()
{
return
{
dialogShow
:
false
,
isEdit
:
false
,
ClaimsStatusOptions
,
EOBStatusOptions
,
eobNo
:
''
,
//eob编号
form
:
{
eobDate
:
''
,
payorCode
:
''
,
eobName
:
''
,
eobAmountCny
:
''
,
eobAmountUsd
:
''
,
eobSts
:
''
,
eobRemark
:
''
,
eobFile
:
[]
},
dataList
:
[],
isEditNewEob
:
false
,
//是否在新建EOB
companyOptions
:
[],
//保险公司
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
selectedRowKeys
:
[],
// Check here to configure the default column
editFormObj
:
{
receiptNo
:
''
,
claimsStatus
:
''
,
paidAmountEob
:
''
,
refuseAmountEob
:
''
},
editRules
:
{
},
searchForm
:{}
};
},
mixins
:
[
mixins
],
components
:
{
Goback
,
BurtPagination
,
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
100
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
ellipsis
:
true
,
width
:
80
},
{
title
:
"
就诊日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
110
},
{
title
:
"
理赔状态
"
,
dataIndex
:
"
claimsStatus
"
,
ellipsis
:
true
,
width
:
90
,
scopedSlots
:
{
customRender
:
"
claimsStatus
"
}
},
{
title
:
"
账单金额
"
,
dataIndex
:
"
chargeAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
折后金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
自付金额
"
,
dataIndex
:
"
selfpaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
eobPaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
paidAmountEob
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
未清金额
"
,
dataIndex
:
"
refuseAmountEob
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
保险公司欠费
"
,
dataIndex
:
"
payorNoPaidAmount
"
,
ellipsis
:
true
,
width
:
110
,
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
perNoPaidAmount
"
,
ellipsis
:
true
,
width
:
85
},
{
title
:
"
备注
"
,
dataIndex
:
"
sendRemark
"
,
ellipsis
:
true
,
width
:
120
},
];
if
(
this
.
eobNo
&&
!
this
.
isEditNewEob
&&
this
.
isEdit
){
// 编辑状态下已经保存的数据才可进行操作
return
base
.
concat
([
{
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
scopedSlots
:
{
customRender
:
"
operation
"
},
fixed
:
"
right
"
,
width
:
"
170px
"
,
align
:
"
center
"
},
])
}
return
base
}
},
created
(){
const
{
eobNo
,
isEdit
}
=
this
.
$route
.
query
this
.
eobNo
=
eobNo
;
this
.
isEdit
=
!!
isEdit
;
this
.
_getCompanyOptions
();
if
(
this
.
eobNo
){
let
EobDataDetail
=
localStorage
.
getItem
(
'
EobDataDetail
'
);
let
dataDetail
=
EobDataDetail
?
JSON
.
parse
(
EobDataDetail
):
{};
if
(
dataDetail
.
eobFile
){
dataDetail
.
eobFile
=
[
{
uid
:
Math
.
random
()
*
10000
,
name
:
dataDetail
.
eobFile
.
slice
(
dataDetail
.
eobFile
.
lastIndexOf
(
'
/
'
)
+
1
),
status
:
'
done
'
,
url
:
dataDetail
.
eobFile
,
}
]
}
else
{
dataDetail
.
eobFile
=
[];
}
this
.
form
=
dataDetail
;
this
.
getData
();
}
},
methods
:
{
moment
,
onSelectChange
(
selectedRowKeys
)
{
let
arr
=
[];
for
(
let
i
=
0
;
i
<
selectedRowKeys
.
length
;
i
++
){
let
idx
=
selectedRowKeys
[
i
];
if
(
this
.
dataList
[
idx
].
eobNo
){
this
.
$msg
.
destroy
();
this
.
$message
.
warning
(
'
EOB编号已存在
'
)
}
else
{
arr
.
push
(
idx
);
}
}
this
.
selectedRowKeys
=
arr
;
},
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
.
isEditNewEob
)
{
// 点击添加EOB之后 分页数据查询就应该调EOB数据
this
.
_getNewEOBList
()
return
true
;
}
this
.
getData
();
},
//回款金额改变
moneyChange
(){
this
.
editFormObj
.
refuseAmountEob
=
this
.
form
.
eobPaidAmount
||
0
-
this
.
editFormObj
.
paidAmountEob
||
0
;
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
this
.
$apis
.
GETCOMPANYOPTIONS
().
then
((
res
)
=>
{
this
.
companyOptions
=
res
.
content
||
[];
});
},
// 分页
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
}
if
(
this
.
isEditNewEob
)
{
// 点击添加EOB之后 分页数据查询就应该调EOB数据
this
.
_getNewEOBList
()
return
true
;
}
this
.
getData
();
},
getData
()
{
this
.
$apis
.
QUERYEOBRECEIPTLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
eobNo
:
this
.
eobNo
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//修改单条数据
editEvt
(
record
)
{
this
.
dialogShow
=
true
;
this
.
$nextTick
(()
=>
{
this
.
editFormObj
=
{
actualAmount
:
record
.
actualAmount
,
// 该条记录的折后金额
id
:
record
.
id
,
receiptNo
:
record
.
receiptNo
,
refuseAmountEob
:
record
.
refuseAmountEob
||
''
,
claimsStatus
:
record
.
claimsStatus
||
"
01
"
,
paidAmountEob
:
record
.
paidAmountEob
||
record
.
actualAmount
||
""
,
};
})
},
// 账单汇款金额输入改变 未赔付金额=账单金额-账单回款金额
changePaidAmount
()
{
this
.
editFormObj
.
refuseAmountEob
=
(
this
.
editFormObj
.
actualAmount
||
0
)
-
(
this
.
editFormObj
.
paidAmountEob
||
0
)
},
//编辑保存
handleEditOK
()
{
this
.
$refs
.
editForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$apis
.
SAVEEOBRECEIPTINFO
({
...
this
.
form
,
eobFile
:
this
.
form
.
eobFile
.
length
>
0
?
this
.
form
.
eobFile
[
0
].
url
:
''
,
eobReceiptList
:
[
this
.
editFormObj
],
eobDate
:
this
.
form
.
eobDate
?
moment
(
this
.
form
.
eobDate
).
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
);
}
});
}
});
},
//删除记录
delRecord
(
index
)
{
this
.
$modal
.
confirm
({
title
:
"
删除
"
,
content
:
"
确定删除该条记录?
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
$apis
.
DELEOBRECEIPTINFO
({
eobNo
:
this
.
dataList
[
index
].
eobNo
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
dataList
.
splice
(
index
,
1
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
onCancel
:
()
=>
{},
});
},
//导出
exportEvt
(){
this
.
$apis
.
EOBRECEIPLISTEXPORT
({
eobNo
:
this
.
eobNo
})
.
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
"
,
"
EOB关联账单.xls
"
);
document
.
body
.
appendChild
(
aLink
);
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
window
.
URL
.
revokeObjectURL
(
url
);
})
},
//添加账单
addNewBill
(){
if
(
this
.
isEditNewEob
){
//保存
this
.
addNewEvt
()
.
then
(()
=>
{
this
.
isEditNewEob
=
false
;
})
}
else
{
//查询所有未加入的账单
this
.
pagination
.
pageNum
=
1
;
this
.
isEditNewEob
=
true
;
this
.
_getNewEOBList
();
}
},
_getNewEOBList
()
{
this
.
$apis
.
QUERYEOBNEEDRECEIPTLIST
({
payorCode
:
this
.
form
.
payorCode
,
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
...
this
.
searchData
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
selectedRowKeys
=
[];
let
content
=
res
.
content
||
{};
this
.
pagination
.
total
=
content
.
total
||
0
;
this
.
dataList
=
content
.
list
||
[];
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
//新建/保存EOB
addNewEvt
(){
let
visitTimeStart
=
this
.
form
.
visitTimeStart
||
[]
let
eobReceiptList
=
[];
this
.
dataList
.
forEach
((
item
,
index
)
=>
{
if
(
this
.
selectedRowKeys
.
indexOf
(
index
)
!=-
1
){
eobReceiptList
.
push
({
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
refuseAmountEob
:
item
.
refuseAmountEob
,
paidSts
:
item
.
paidSts
,
paidAmountEob
:
item
.
paidAmountEob
,
})
}
})
let
formData
=
{
...
this
.
form
,
eobFile
:
this
.
form
.
eobFile
.
length
>
0
?
this
.
form
.
eobFile
[
0
].
url
:
''
,
eobReceiptList
:
eobReceiptList
,
eobDate
:
this
.
form
.
eobDate
?
moment
(
this
.
form
.
eobDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
):
''
,
eobNo
:
this
.
eobNo
,
visitTimeEnd
:
visitTimeStart
[
1
]
?
moment
(
visitTimeStart
[
1
]).
format
(
'
YYYY-MM-DD
'
)
+
'
23:59:59
'
:
undefined
,
visitTimeStart
:
visitTimeStart
[
0
]
?
moment
(
visitTimeStart
[
0
]).
format
(
'
YYYY-MM-DD
'
)
+
'
00:00:00
'
:
undefined
,
}
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$apis
.
SAVEEOBRECEIPTINFO
(
formData
)
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
eobNo
=
res
.
content
;
this
.
$message
.
success
(
"
成功
"
);
this
.
selectedRowKeys
=
[];
this
.
getData
();
resolve
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
reject
();
}
});
})
},
removeFile
(){
return
new
Promise
((
resolve
)
=>
{
this
.
form
.
eobFile
=
[];
resolve
();
});
},
//上传
uploadEvt
(
fileData
){
let
formData
=
new
FormData
();
formData
.
append
(
"
file
"
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
)
.
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
fileList
=
[
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
title
,
status
:
'
done
'
,
url
:
res
.
url
,
}
]
this
.
form
.
eobFile
=
fileList
;
})
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.btn-div{
}
.ant-btn .icon-class {
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment