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
3eba2a52
Commit
3eba2a52
authored
Dec 15, 2022
by
朱彩云
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ECCS-1850' into 'master'
添加财务账单报表,理赔件管理详情页增加客户自付金额修改功能 See merge request
!21
parents
3beb05a5
f644d56b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
240 additions
and
45 deletions
+240
-45
bi.js
src/api/apis_moudles/bi.js
+2
-1
bi.js
src/api/funcs_modules/bi.js
+12
-3
index.js
src/utils/index.js
+3
-1
PayBill.vue
src/views/bi/components/PayBill.vue
+143
-0
index.vue
src/views/bi/index.vue
+28
-24
lpjManageDetail.vue
src/views/charge-query/lpjManageDetail.vue
+52
-15
menuItem.js
src/views/layout/components/menu/components/menuItem.js
+0
-1
No files found.
src/api/apis_moudles/bi.js
View file @
3eba2a52
// 报表api
export
default
{
receiptReportList
:
'
/backstage/auth/receiptReportList
'
,
exportReceiptReportList
:
'
/backstage/auth/exlRceiptReport
'
};
src/api/funcs_modules/bi.js
View file @
3eba2a52
// 报表函数库
//
import apis from "../apis_moudles/index";
//
import req from "../request";
import
apis
from
"
../apis_moudles/index
"
;
import
req
from
"
../request
"
;
// 理赔报表数据查询
const
RECEIPTREPORTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
receiptReportList
,
data
);
};
// 理赔报表数据导出
const
EXPORTRECEIPTREPORTLIST
=
(
data
)
=>
{
return
req
.
post
(
apis
.
exportReceiptReportList
,
data
,
{
responseType
:
'
blob
'
});
};
// 对象数组
export
default
{
RECEIPTREPORTLIST
,
EXPORTRECEIPTREPORTLIST
};
src/utils/index.js
View file @
3eba2a52
...
...
@@ -87,4 +87,6 @@ export function exportFile(res, file_name) {
aLink
.
click
();
document
.
body
.
removeChild
(
aLink
);
window
.
URL
.
revokeObjectURL
(
url
);
}
\ No newline at end of file
}
export
const
numValid
=
/^
([
1-9
][
0-9
]
*|0
)([
.
][
0-9
]
+
)?
$/
\ No newline at end of file
src/views/bi/components/PayBill.vue
0 → 100644
View file @
3eba2a52
<
template
>
<div>
<!-- form -->
<!--
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"就诊日期"
>
<a-range-picker
format=
"YYYY年MM月DD日"
v-model=
"form.dateRange"
:placeholder=
"['开始日期', '结束日期']"
/>
</a-form-model-item>
</a-col>
<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=
"12"
:sm=
"12"
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=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出报表
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
-->
<div
class=
"text-right"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"exportExcel"
>
<Icon
name=
"ssidaochu"
:size=
"14"
/>
导出报表
</a-button>
</div>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true }" :pagination="false">
<template
slot=
"index"
slot-scope=
"text, record, index"
>
{{
index
+
1
}}
</
template
>
</a-table>
<!--分页-->
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"getData"
/>
</div>
</template>
<
script
>
import
BurtPagination
from
"
@/components/CUSTOMER/pagation
"
;
import
moment
from
'
moment
'
import
{
ClaimsStatusOptions
}
from
'
@/utils/utilsdictOptions
'
;
import
{
exportFile
}
from
'
@/utils/index
'
;
export
default
{
props
:
{
companyOptions
:
{
default
:
[]
}
},
data
(){
const
columns
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
key
:
"
receiptNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
就诊日期
"
,
dataIndex
:
"
receiptDate
"
,
width
:
150
},
{
title
:
"
病案号
"
,
dataIndex
:
"
patientNo
"
,
key
:
"
patientNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
患者姓名
"
,
dataIndex
:
"
patientName
"
,
width
:
110
},
{
title
:
"
患者身份
"
,
dataIndex
:
"
patientClassDesc
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
一级分类
"
,
dataIndex
:
"
itemcatDesc
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
二级分类
"
,
dataIndex
:
"
itemsubcatDesc
"
,
width
:
120
,
align
:
'
center
'
},
{
title
:
"
项目编码
"
,
dataIndex
:
"
itemCode
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
项目名称
"
,
dataIndex
:
"
itemDesc
"
,
key
:
"
receiptNo
"
,
align
:
'
center
'
,
width
:
180
},
{
title
:
"
账单金额
"
,
dataIndex
:
"
receiptAmount
"
,
width
:
110
},
{
title
:
"
自付金额
"
,
dataIndex
:
"
selfpaidAmount
"
,
key
:
"
patientNo
"
,
align
:
'
center
'
,
width
:
136
},
{
title
:
"
理赔金额
"
,
dataIndex
:
"
claimsAmount
"
,
width
:
110
},
{
title
:
"
保险公司
"
,
dataIndex
:
"
payorName
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
计划名
"
,
dataIndex
:
"
planName
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
理赔状态
"
,
dataIndex
:
"
paidSts
"
,
width
:
120
,
align
:
'
center
'
},
{
title
:
"
账单寄送状态
"
,
dataIndex
:
"
sendSts
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
回款时间
"
,
dataIndex
:
"
backDate
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmountCny
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
坏账
"
,
dataIndex
:
"
badBillAmount
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
个人欠费
"
,
dataIndex
:
"
perNoPaidAmount
"
,
width
:
130
,
align
:
'
center
'
},
{
title
:
"
备注
"
,
dataIndex
:
"
remark
"
,
width
:
160
,
align
:
'
center
'
},
];
return
{
columns
,
ClaimsStatusOptions
,
form
:
{
},
dataList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
total
:
0
,
},
}
},
components
:
{
BurtPagination
,
},
created
(){
this
.
getData
()
},
methods
:
{
moment
,
handlerSearch
(){
this
.
pagination
.
pageNum
=
1
;
this
.
getData
();
},
// 获取列表数据
getData
()
{
let
filter
=
{
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
...
this
.
form
,
}
this
.
$apis
.
RECEIPTREPORTLIST
(
filter
)
.
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
);
}
});
},
//导出报表
exportExcel
(){
let
filter
=
{
...
this
.
form
,
}
this
.
$apis
.
EXPORTRECEIPTREPORTLIST
(
filter
).
then
(
res
=>
{
exportFile
(
res
,
'
保险应收报表.xls
'
);
})
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
/deep/ .ant-input-group-addon{
border-left: 1px solid #d9d9d9;
}
.text-right{
text-align: right;
}
</
style
>
\ No newline at end of file
src/views/bi/index.vue
View file @
3eba2a52
...
...
@@ -10,41 +10,45 @@
</
template
>
<
script
>
import
PaymentClaims
from
"
./components/PaymentClaims.vue
"
;
import
Insurance
from
"
./components/Insurance.vue
"
;
import
Verification
from
"
./components/Verification.vue
"
;
import
CollectionRate
from
"
./components/CollectionRate.vue
"
;
import
CollectionDays
from
"
./components/CollectionDays.vue
"
;
import
PersonalFee
from
"
./components/PersonalFee.vue
"
;
import
MaterialSupplement
from
"
./components/MaterialSupplement.vue
"
;
import
AppealCase
from
"
./components/AppealCase.vue
"
;
import
MailingList
from
"
./components/MailingList.vue
"
;
import
PreAuth
from
"
./components/PreAuth.vue
"
;
import
Benefit
from
"
./components/Benefit.vue
"
;
// import PaymentClaims from "./components/PaymentClaims.vue";
// import Insurance from "./components/Insurance.vue";
// import Verification from "./components/Verification.vue";
// import CollectionRate from "./components/CollectionRate.vue";
// import CollectionDays from "./components/CollectionDays.vue";
// import PersonalFee from "./components/PersonalFee.vue";
// import MaterialSupplement from "./components/MaterialSupplement.vue";
// import AppealCase from "./components/AppealCase.vue";
// import MailingList from "./components/MailingList.vue";
// import PreAuth from "./components/PreAuth.vue";
// import Benefit from "./components/Benefit.vue";
import
PayBill
from
"
./components/PayBill.vue
"
;
export
default
{
data
()
{
return
{
activeKey
:
'
0
'
,
panes
:
[
{
title
:
"
理赔数据
"
,
key
:
'
0
'
,
show
:
true
,
content
:
'
PaymentClaims
'
},
{
title
:
"
保险应收
"
,
key
:
'
1
'
,
show
:
false
,
content
:
'
Insurance
'
},
{
title
:
"
核销
"
,
key
:
'
2
'
,
show
:
false
,
content
:
'
Verification
'
},
{
title
:
"
回款率
"
,
key
:
'
3
'
,
show
:
false
,
content
:
'
CollectionRate
'
},
{
title
:
"
回款天数
"
,
key
:
'
4
'
,
show
:
false
,
content
:
'
CollectionDays
'
},
{
title
:
"
个人欠费
"
,
key
:
'
5
'
,
show
:
false
,
content
:
'
PersonalFee
'
},
{
title
:
"
材料补充
"
,
key
:
'
6
'
,
show
:
false
,
content
:
'
MaterialSupplement
'
},
{
title
:
"
申诉案件
"
,
key
:
'
7
'
,
show
:
false
,
content
:
'
AppealCase
'
},
{
title
:
"
寄送清单
"
,
key
:
'
8
'
,
show
:
false
,
content
:
'
MailingList
'
},
{
title
:
"
预授权
"
,
key
:
'
9
'
,
show
:
false
,
content
:
'
PreAuth
'
},
{
title
:
"
福利查询
"
,
key
:
'
10
'
,
show
:
false
,
content
:
'
Benefit
'
}
// { title: "理赔数据", key: '0', show: true, content: 'PaymentClaims'},
// { title: "保险应收", key: '1', show: false, content: 'Insurance'},
// { title: "核销", key: '2', show: false, content: 'Verification'},
// { title: "回款率", key: '3', show: false, content: 'CollectionRate'},
// { title: "回款天数", key: '4', show: false, content: 'CollectionDays'},
{
title
:
"
财务账单
"
,
key
:
'
0
'
,
show
:
true
,
content
:
'
PayBill
'
},
// { title: "个人欠费", key: '5', show: false, content: 'PersonalFee'},
// { title: "材料补充", key: '6', show: false, content: 'MaterialSupplement'},
// { title: "申诉案件", key: '7', show: false, content: 'AppealCase'},
// { title: "寄送清单", key: '8', show: false, content: 'MailingList'},
// { title: "预授权", key: '9', show: false, content: 'PreAuth'},
// { title: "福利查询", key: '10', show: false, content: 'Benefit'}
],
companyOptions
:
[],
//保险公司
expressList
:
[],
//快递公司
};
},
components
:
{
PaymentClaims
,
Insurance
,
Verification
,
CollectionRate
,
CollectionDays
,
PersonalFee
,
MaterialSupplement
,
AppealCase
,
MailingList
,
PreAuth
,
Benefit
// PaymentClaims, Insurance, Verification, CollectionRate, CollectionDays,
// PersonalFee, MaterialSupplement, AppealCase, MailingList, PreAuth, Benefit,
PayBill
},
created
()
{
let
type
=
this
.
$route
.
query
.
type
;
...
...
src/views/charge-query/lpjManageDetail.vue
View file @
3eba2a52
...
...
@@ -176,6 +176,8 @@
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
{
...
...
@@ -200,6 +202,7 @@ export default {
expressList
:
[],
//快递列表
selectedRowKeys
:
[],
// Check here to configure the default column
dataList
:
[],
cacheDataList
:
{},
isEditNewBill
:
false
,
//是否在新建账单
pagination
:
{
pageNum
:
1
,
...
...
@@ -234,7 +237,9 @@ export default {
{
title
:
"
应收金额
"
,
dataIndex
:
"
chargeAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
折扣金额
"
,
dataIndex
:
"
discountAmount
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
减免金额
"
,
dataIndex
:
"
discountAmount2
"
,
width
:
100
,
align
:
'
center
'
},
{
title
:
"
客户自付
"
,
dataIndex
:
"
paidAmount
"
,
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
){
// 编辑状态下已经保存的数据才可进行操作
...
...
@@ -302,6 +307,7 @@ export default {
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
);
}
...
...
@@ -437,6 +443,7 @@ export default {
}
else
{
//查询所有未加入的账单
this
.
pagination
.
pageNum
=
1
;
this
.
isEditNewBill
=
true
;
this
.
cacheDataList
=
{}
this
.
_getNewBillList
()
}
},
...
...
@@ -453,45 +460,75 @@ export default {
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
);
}
});
},
//新建/保存寄送
addNewCharge
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
checkBeforeSave
()
{
if
(
!
this
.
form
.
trackingNo
){
this
.
$message
.
warning
(
"
请输入快递单号
"
);
reject
();
return
;
return
false
;
}
if
(
!
this
.
form
.
sendDate
){
this
.
$message
.
warning
(
"
请选择寄送日期
"
);
reject
();
return
;
return
false
;
}
let
allData
=
[]
for
(
let
i
in
this
.
cacheDataList
){
allData
=
allData
.
concat
(
this
.
cacheDataList
[
i
])
}
let
ciReceiptSendVos
=
[];
this
.
dataList
.
forEach
((
item
,
index
)
=>
{
if
(
this
.
selectedRowKeys
.
indexOf
(
index
)
!=-
1
){
ciReceiptSendVos
.
push
({
id
:
item
.
id
,
receiptNo
:
item
.
receiptNo
,
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
;
}
}
)
let
formData
=
{
}
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
{
...
...
src/views/layout/components/menu/components/menuItem.js
View file @
3eba2a52
...
...
@@ -9,7 +9,6 @@ function SubMenu(h, menu, selectMenu) {
if
(
menu
.
children
&&
menu
.
children
.
length
>
0
){
icon_arrow
=
<
Icon
class
=
"
arrow
"
name
=
{
selectMenu
.
indexOf
(
menu
.
path
)
<
0
?
'
ssixiangyou
'
:
'
ssixiangyou_active
'
}
size
=
{
14
}
/>
;
}
console
.
log
(
menu
,
icon_arrow
,
111
)
return
(
<
a
-
sub
-
menu
key
=
{
menu
.
path
}
>
<
span
slot
=
"
title
"
class
=
"
submenu-title-wrapper
"
>
...
...
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