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
c32f4a01
Commit
c32f4a01
authored
1 year ago
by
周留芳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
回款详情样式优化
parent
c816ef8f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
646 additions
and
470 deletions
+646
-470
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
collectionDetail.vue
src/views/verification/collectionDetail.vue
+548
-296
No files found.
src/views/home/index.vue
View file @
c32f4a01
<
template
>
<div
class=
"white_bg burt-container"
>
<img
src=
"../../assets/image/home_bg.jpg"
alt=
""
>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.burt-container{
height: calc(100vh -
116px);
padding: 0;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
<
template
>
<div
class=
"white_bg burt-container"
>
<img
src=
"../../assets/image/home_bg.jpg"
alt=
""
>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.burt-container{
height: calc(100vh -
86px);
padding: 0;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/views/layout/components/menu/subMenu.vue
deleted
100644 → 0
View file @
c816ef8f
<
template
>
<div
class=
"sub-menu"
>
<router-link
tag=
"button"
:class=
"
{ btn: true, 'btn-active': isVisit(item.path) }"
v-for="(item, index) in menuStack"
:key="item.path"
:to="item.path"
>
{{
item
.
title
}}
<Icon
v-if=
"menuStack.length>1"
@
click=
"(e)=>closeMenu(e, index)"
:name=
"isVisit(item.path) ? 'ssiclose_active' : 'ssiclose'"
:size=
"16"
/>
</router-link>
<slot
name=
"tips"
/>
</div>
</
template
>
<
script
>
import
{
mapState
}
from
"
vuex
"
;
export
default
{
computed
:
{
...
mapState
({
menuStack
:
(
state
)
=>
state
.
common
.
menuStack
,
}),
},
methods
:
{
isVisit
(
val
)
{
const
path
=
this
.
$route
.
path
;
return
path
===
val
;
},
closeMenu
(
e
,
index
)
{
e
.
stopPropagation
();
const
menuStack
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
menuStack
));
const
isVisit
=
this
.
isVisit
(
menuStack
[
index
].
path
);
menuStack
.
splice
(
index
,
1
);
this
.
$store
.
commit
(
"
common/setMenuStack
"
,
menuStack
);
if
(
isVisit
)
{
// 关闭的是当前正在查看的
const
i
=
Math
.
max
(
0
,
index
-
1
);
this
.
$router
.
push
(
menuStack
[
i
].
path
||
"
/
"
);
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.sub-menu {
width: 100%;
overflow-x: auto;
white-space: nowrap;
.mg-b(16);
.btn {
.fs(14);
.lh(20);
.pa(8, 13, 8, 13);
.mg-r(40);
color: #252631;
font-weight: bold;
border: none;
background-color: #fff;
border-radius: 5px;
cursor: pointer;
}
.btn-active {
color: #fff;
background-color: #2b63ff;
}
}
</
style
>
This diff is collapsed.
Click to expand it.
src/views/layout/index.vue
View file @
c32f4a01
<
template
>
<div
class=
"menu-layout"
>
<Header></Header>
<div
class=
"container"
>
<Menu></Menu>
<Loading
/>
<div
class=
"content"
>
<SubMenu></SubMenu>
<router-view
/>
</div>
</div>
</div>
</
template
>
<
script
>
import
Header
from
"
./components/Header.vue
"
;
import
Menu
from
"
./components/menu
"
;
import
SubMenu
from
"
./components/menu/subMenu.vue
"
;
import
Loading
from
"
@/components/Loading/Loading.vue
"
;
export
default
{
components
:
{
Header
,
Menu
,
SubMenu
,
Loading
},
data
()
{
return
{};
},
created
()
{},
mounted
()
{},
methods
:
{},
};
</
script
>
<
style
>
.icon-class.arrow
{
position
:
absolute
;
right
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
</
style
>
<
style
lang=
"less"
scoped
>
.menu-layout {
background-color: #f8fafb;
font-family: "Helvetica" "Microsoft YaHei" "微软雅黑";
.container {
display: flex;
position: relative;
.pt(68);
// min-height: calc(100vh - 50px);
.content {
position: relative;
flex: 1;
.mg-l(242);
.pa(14, 40, 0, 40);
min-height: calc(100vh - 68px);
overflow-x: hidden;
}
}
.menu {
position: fixed;
.w(242);
height: calc(100vh - 68px);
overflow: auto;
background-color: #fff;
li{
position: relative;
}
}
}
</
style
>
<
template
>
<div
class=
"menu-layout"
>
<Header></Header>
<div
class=
"container"
>
<Menu></Menu>
<Loading
/>
<div
class=
"content"
>
<router-view
/>
</div>
</div>
</div>
</
template
>
<
script
>
import
Header
from
"
./components/Header.vue
"
;
import
Menu
from
"
./components/menu
"
;
import
Loading
from
"
@/components/Loading/Loading.vue
"
;
export
default
{
components
:
{
Header
,
Menu
,
Loading
},
data
()
{
return
{};
},
created
()
{},
mounted
()
{},
methods
:
{},
};
</
script
>
<
style
>
.icon-class.arrow
{
position
:
absolute
;
right
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
</
style
>
<
style
lang=
"less"
scoped
>
.menu-layout {
background-color: #f8fafb;
font-family: "Helvetica" "Microsoft YaHei" "微软雅黑";
.container {
display: flex;
position: relative;
.pt(68);
// min-height: calc(100vh - 50px);
.content {
position: relative;
flex: 1;
.mg-l(242);
.pa(14, 40, 0, 40);
min-height: calc(100vh - 68px);
overflow-x: hidden;
}
}
.menu {
position: fixed;
.w(242);
height: calc(100vh - 68px);
overflow: auto;
background-color: #fff;
li{
position: relative;
}
}
}
</
style
>
This diff is collapsed.
Click to expand it.
src/views/verification/collectionDetail.vue
View file @
c32f4a01
<
template
>
<div
class=
"white_bg burt-container"
>
<Goback
title=
"回款详情"
/>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
:disabled=
"!isEdit"
@
change=
"changePayor"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.id"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款日期"
>
<a-date-picker
format=
"YYYY-MM-DD"
format-value=
"YYYY-MM-DD 00:00:00"
v-model=
"form.backDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.backAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.backAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"汇率差"
>
<a-input
v-model=
"form.backExchangeRate"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNos"
placeholder=
"请输入EOB编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入EOB备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"上传附件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:disabled=
"!isEdit"
:fileList=
"fileList"
:customRequest=
"(file)=>uploadFile(file)"
:beforeUpload=
"()=>beforeUpload()"
:remove=
"(file)=>removeFile(file)"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
<a-col
:md=
"24"
:lg=
"24"
class=
"none-label"
v-if=
"isEdit"
>
<a-form-model-item
label=
"button"
>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(0)"
>
<Icon
:name=
"backMoneyNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
暂存
</a-button>
<a-button
class=
"mar-left10"
type=
"primary"
@
click=
"addNewEvt(1)"
>
<Icon
:name=
"backMoneyNo?'ssibaocun':'ssiadd'"
:size=
"14"
/>
结案
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div
class=
"bill-content"
>
<!-- 已关联账单 -->
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
已关联账单
</div>
<a-table
class=
"table-content"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: true, y: 200 }" :pagination="false">
<template
slot=
"operation"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
class=
"danger"
@
click.stop=
"delRecord(record, index)"
>
删除
</a-button>
</
template
>
</a-table>
</template>
<!-- table -->
<
template
v-if=
"isEdit"
>
<a-row
class=
"search-form"
>
<a-form-model
ref=
"searchForm"
layout=
"vertical"
:model=
"searchForm"
>
<a-tabs
v-model=
"activeKey"
@
change=
"paneChange"
>
<a-tab-pane
v-for=
"pane in panes"
:key=
"pane.key"
:tab=
"pane.title"
>
<template
v-if=
"activeKey === '0'"
>
<!-- form -->
<a-form-model
ref=
"form"
layout=
"vertical"
:model=
"form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"账单日期"
>
<a-range-picker
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
v-model=
"searchForm.billDate"
:placeholder=
"['开始时间','结束时间']"
/>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
:disabled=
"!isEdit"
@
change=
"changePayor"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.id"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"病历号"
>
<a-input
v-model=
"searchForm.mrnNo"
placeholder=
"请输入病历号"
allow-clear
:disabled=
"!isEdit"
/>
<a-form-model-item
label=
"回款日期"
>
<a-date-picker
format=
"YYYY-MM-DD"
format-value=
"YYYY-MM-DD 00:00:00"
v-model=
"form.backDate"
placeholder=
"选择日期"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"客户名称"
>
<a-input
v-model=
"searchForm.patientName"
placeholder=
"请输入客户名称"
allow-clear
:disabled=
"!isEdit"
/>
<a-form-model-item
label=
"回款金额(人民币)"
>
<a-input
type=
"number"
v-model=
"form.backAmountCny"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<div
class=
"btn-div mar-bottom10 none-label"
>
<a-button
type=
"primary"
@
click=
"_getNewEOBList"
>
<Icon
name=
"ssisearch_active"
:size=
"14"
/>
查询
</a-button>
</div>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"回款金额(美元)"
>
<a-input
type=
"number"
v-model=
"form.backAmountUsd"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"6"
:sm=
"12"
>
<a-form-model-item
label=
"汇率差"
>
<a-input
v-model=
"form.backExchangeRate"
placeholder=
"请输入金额"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB编号"
>
<a-input
v-model=
"form.eobNos"
placeholder=
"请输入EOB编号"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"EOB备注"
>
<a-input
v-model=
"form.eobRemark"
placeholder=
"请输入EOB备注"
allow-clear
:disabled=
"!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col
:lg=
"5"
:sm=
"12"
>
<a-form-model-item
label=
"上传附件"
>
<a-upload
name=
"file"
:multiple=
"false"
:showUploadList=
"true"
:disabled=
"!isEdit"
:fileList=
"fileList"
:customRequest=
"(file) => uploadFile(file)"
:beforeUpload=
"() => beforeUpload()"
:remove=
"(file) => removeFile(file)"
>
<a-button
type=
"primary"
>
<Icon
name=
"ssiupload"
:size=
"18"
/>
上传文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</
template
>
<
template
v-else
>
<!-- form -->
<a-form-model
ref=
"form"
:labelCol=
"
{ span: 5 }"
:wrapperCol="{ span: 16 }"
:model="form"
class="bill-form"
>
<a-row
:gutter=
"30"
>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"保险公司"
>
<a-select
v-model=
"form.payorCode"
placeholder=
"请选择保险公司"
allow-clear
:disabled=
"!isEdit"
@
change=
"changePayor"
>
<a-select-option
v-for=
"item in companyOptions"
:key=
"item.id"
:value=
"item.payorCode"
>
{{
item
.
longName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:lg=
"8"
:sm=
"12"
>
<a-form-model-item
label=
"可核销余额"
>
<a-input
v-model=
"residueBackAmount"
disabled
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-row>
<div
class=
"table-title"
>
账单列表
</div>
<a-table
:columns=
"columns"
:data-source=
"dataList"
:scroll=
"
{ x: true, y: 200 }" :pagination="false" :rowKey="'id'"
:row-selection="{ selectedRowKeys: selectedRowKeys, onSelect: onSelectChange, onSelectAll: onSelectAll }">
</a-table>
<BurtPagination
:pagination=
"pagination"
@
pageChange=
"pageChange"
/>
</
template
>
</div>
<div
class=
"bill-content"
>
<!-- 已关联账单 -->
<template
v-if=
"selectedRows.length > 0"
>
<div
class=
"table-title"
>
已关联账单
</div>
<a-table
class=
"table-content"
:columns=
"selectedColumns"
:data-source=
"selectedRows"
:scroll=
"
{ x: true, y: 300 }"
: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
moment
from
"
moment
"
;
import
mixins
from
"
@/mixins
"
;
export
default
{
...
...
@@ -134,13 +271,13 @@ export default {
EOBStatusOptions
,
dialogShow
:
false
,
form
:
{
payorCode
:
''
,
payorCode
:
""
,
backDate
:
null
,
backAmountCny
:
''
,
backAmountUsd
:
''
,
backExchangeRate
:
''
,
eobNos
:
''
,
// EOB编号
eobRemark
:
''
// EOB备注
backAmountCny
:
""
,
backAmountUsd
:
""
,
backExchangeRate
:
""
,
eobNos
:
""
,
// EOB编号
eobRemark
:
""
,
// EOB备注
},
fileList
:
[],
// 上传文件列表
dataList
:
[],
...
...
@@ -153,7 +290,7 @@ export default {
},
selectedRowKeys
:
[],
// Check here to configure the default column
selectedRows
:
[],
// Check here to configure the default column
backMoneyNo
:
''
,
backMoneyNo
:
""
,
editRules
:
{
backAmountUsd
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
backAmount
:
[{
required
:
true
,
message
:
"
请输入
"
,
trigger
:
"
blur
"
}],
...
...
@@ -161,11 +298,17 @@ export default {
searchForm
:
{
billDate
:
[],
mrnNo
:
''
,
// 病历号
patientName
:
''
,
// 客户名字
mrnNo
:
""
,
// 病历号
patientName
:
""
,
// 客户名字
},
savedStatus
:
false
,
//是否已保存
relatedList
:
[]
relatedList
:
[],
panes
:
[
{
title
:
"
基础信息
"
,
key
:
"
0
"
,
show
:
true
,
content
:
"
PaymentClaims
"
},
{
title
:
"
账单列表
"
,
key
:
"
1
"
,
show
:
false
,
content
:
"
Insurance
"
},
],
activeKey
:
"
0
"
,
};
},
mixins
:
[
mixins
],
...
...
@@ -175,66 +318,143 @@ export default {
},
computed
:
{
columns
()
{
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
},
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
{
title
:
"
账单日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,},
{
title
:
"
账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,},
{
title
:
"
回款金额
"
,
dataIndex
:
"
writeOffAmount
"
,
ellipsis
:
true
,
width
:
150
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,},
];
return
base
const
base
=
[
{
title
:
"
账单编号
"
,
dataIndex
:
"
receiptNo
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
病历号
"
,
dataIndex
:
"
mrnNo
"
,
ellipsis
:
true
,
width
:
195
},
{
title
:
"
客户姓名
"
,
dataIndex
:
"
patientName
"
,
ellipsis
:
true
,
width
:
160
,
},
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
{
title
:
"
账单日期
"
,
dataIndex
:
"
receiptDate
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
收银
"
,
dataIndex
:
"
receiptTellerName
"
,
ellipsis
:
true
,
width
:
120
,
},
{
title
:
"
账单金额
"
,
dataIndex
:
"
actualAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
回款金额
"
,
dataIndex
:
"
writeOffAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
},
];
return
base
;
},
selectedColumns
()
{
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
))
const
changeAmount
=
this
.
changeAmount
base
[
6
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
)}}
/>
}
}
base
[
7
]
=
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
return
Number
(
residueBackAmount
.
toFixed
(
2
))
}
}
base
.
splice
(
6
,
0
,
{
title
:
"
余末金额
"
,
dataIndex
:
"
currentReceiptAmount
"
,
ellipsis
:
true
,
width
:
150
,})
base
.
push
({
title
:
"
回款日期
"
,
dataIndex
:
"
backDate
"
,
ellipsis
:
true
,
width
:
150
,})
if
(
this
.
isEdit
)
{
base
.
push
({
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
fixed
:
'
right
'
,
width
:
100
,
scopedSlots
:
{
customRender
:
"
operation
"
}})
const
base
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
columns
));
const
changeAmount
=
this
.
changeAmount
;
base
[
6
]
=
{
title
:
"
回款金额
"
,
dataIndex
:
"
backAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
return
(
<
a
-
input
-
number
v
-
model
=
{
row
.
backAmount
}
allow
-
clear
disabled
=
{
!
this
.
isEdit
}
onBlur
=
{()
=>
{
changeAmount
(
row
);
}}
/>
);
},
};
base
[
7
]
=
{
title
:
"
未清余额
"
,
dataIndex
:
"
residueBackAmount
"
,
ellipsis
:
true
,
width
:
150
,
customRender
:
(
val
,
row
)
=>
{
const
residueBackAmount
=
Number
(
row
.
currentReceiptAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
);
return
Number
(
residueBackAmount
.
toFixed
(
2
));
},
};
base
.
splice
(
6
,
0
,
{
title
:
"
余末金额
"
,
dataIndex
:
"
currentReceiptAmount
"
,
ellipsis
:
true
,
width
:
150
,
});
base
.
push
({
title
:
"
回款日期
"
,
dataIndex
:
"
backDate
"
,
ellipsis
:
true
,
width
:
150
,
});
if
(
this
.
isEdit
)
{
base
.
push
({
title
:
"
操作
"
,
dataIndex
:
"
operation
"
,
fixed
:
"
right
"
,
width
:
100
,
scopedSlots
:
{
customRender
:
"
operation
"
},
});
}
return
base
return
base
;
},
// 可核销余额
residueBackAmount
()
{
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
)
this
.
selectedRows
.
forEach
(
item
=>
{
totalMoney
-=
Number
(
item
.
backAmount
)
})
return
Number
(
totalMoney
.
toFixed
(
2
))
}
let
totalMoney
=
Number
(
this
.
form
.
backAmountCny
||
0
)
;
this
.
selectedRows
.
forEach
(
(
item
)
=>
{
totalMoney
-=
Number
(
item
.
backAmount
)
;
})
;
return
Number
(
totalMoney
.
toFixed
(
2
))
;
}
,
},
created
(){
const
{
backMoneyNo
,
isEdit
}
=
this
.
$route
.
query
created
()
{
const
{
backMoneyNo
,
isEdit
}
=
this
.
$route
.
query
;
this
.
backMoneyNo
=
backMoneyNo
;
this
.
isEdit
=
isEdit
;
this
.
_getCompanyOptions
();
if
(
backMoneyNo
){
const
backMoneyDataDetail
=
JSON
.
parse
(
localStorage
.
getItem
(
'
backMoneyDataDetail
'
)
||
'
{}
'
);
this
.
form
=
backMoneyDataDetail
this
.
form
.
backDate
=
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
'
YYYY-MM-DD 00:00:00
'
)
:
null
if
(
backMoneyNo
)
{
const
backMoneyDataDetail
=
JSON
.
parse
(
localStorage
.
getItem
(
"
backMoneyDataDetail
"
)
||
"
{}
"
);
this
.
form
=
backMoneyDataDetail
;
this
.
form
.
backDate
=
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
"
YYYY-MM-DD 00:00:00
"
)
:
null
;
// 如果有上传附件则显示列表
if
(
backMoneyDataDetail
.
fileList
)
{
this
.
fileList
=
backMoneyDataDetail
.
fileList
.
map
(
d
=>
{
if
(
backMoneyDataDetail
.
fileList
)
{
this
.
fileList
=
backMoneyDataDetail
.
fileList
.
map
(
(
d
)
=>
{
const
file
=
{
uid
:
Math
.
random
()
*
10000
,
uid
:
Math
.
random
()
*
10000
,
name
:
d
.
fileName
,
status
:
'
done
'
,
status
:
"
done
"
,
url
:
d
.
fileUrl
,
}
return
file
})
}
;
return
file
;
})
;
}
this
.
getData
();
}
...
...
@@ -242,92 +462,112 @@ export default {
},
methods
:
{
moment
,
paneChange
()
{
this
.
panes
.
forEach
((
item
)
=>
{
item
.
show
=
false
;
});
this
.
panes
[
Number
(
this
.
activeKey
)].
show
=
true
;
},
changeAmount
(
row
)
{
if
((
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
)
<
0
)
{
if
(
Number
(
row
.
actualAmount
||
0
)
-
Number
(
row
.
backAmount
||
0
)
<
0
)
{
this
.
$message
.
warning
(
"
录入账单回款金额大于账单金额
"
);
}
},
onSelectChange
(
selectedRow
,
selected
)
{
if
(
selected
)
{
this
.
selectedRowKeys
.
push
(
selectedRow
.
id
)
this
.
selectedRows
.
push
(
selectedRow
)
if
(
selected
)
{
this
.
selectedRowKeys
.
push
(
selectedRow
.
id
)
;
this
.
selectedRows
.
push
(
selectedRow
)
;
}
else
{
const
index
=
this
.
selectedRowKeys
.
findIndex
(
item
=>
item
===
selectedRow
.
id
)
this
.
selectedRowKeys
.
splice
(
index
,
1
)
this
.
selectedRows
.
splice
(
index
,
1
)
this
.
_confirmDelReceipt
([
selectedRow
])
const
index
=
this
.
selectedRowKeys
.
findIndex
(
(
item
)
=>
item
===
selectedRow
.
id
);
this
.
selectedRowKeys
.
splice
(
index
,
1
);
this
.
selectedRows
.
splice
(
index
,
1
);
this
.
_confirmDelReceipt
([
selectedRow
]);
}
},
onSelectAll
(
selected
,
selectedRows
,
changeRows
)
{
console
.
log
(
selected
,
selectedRows
,
changeRows
)
if
(
selected
)
{
this
.
selectedRowKeys
=
this
.
selectedRowKeys
.
concat
(
changeRows
.
map
(
item
=>
item
.
id
))
this
.
selectedRows
=
this
.
selectedRows
.
concat
(
changeRows
)
console
.
log
(
selected
,
selectedRows
,
changeRows
);
if
(
selected
)
{
this
.
selectedRowKeys
=
this
.
selectedRowKeys
.
concat
(
changeRows
.
map
((
item
)
=>
item
.
id
)
);
this
.
selectedRows
=
this
.
selectedRows
.
concat
(
changeRows
);
}
else
{
changeRows
.
forEach
(
item
=>
{
const
findIndex
=
this
.
selectedRowKeys
.
findIndex
(
rowId
=>
rowId
===
item
.
id
)
this
.
selectedRowKeys
.
splice
(
findIndex
,
1
)
this
.
selectedRows
.
splice
(
findIndex
,
1
)
})
this
.
_confirmDelReceipt
(
changeRows
)
changeRows
.
forEach
((
item
)
=>
{
const
findIndex
=
this
.
selectedRowKeys
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
this
.
selectedRowKeys
.
splice
(
findIndex
,
1
);
this
.
selectedRows
.
splice
(
findIndex
,
1
);
});
this
.
_confirmDelReceipt
(
changeRows
);
}
},
delRecord
(
record
,
index
)
{
this
.
selectedRowKeys
.
splice
(
index
,
1
)
this
.
selectedRows
.
splice
(
index
,
1
)
if
(
record
.
relationed
)
{
this
.
selectedRowKeys
.
splice
(
index
,
1
)
;
this
.
selectedRows
.
splice
(
index
,
1
)
;
if
(
record
.
relationed
)
{
// 已经关联的调用接口删除
this
.
_confirmDelReceipt
([
record
])
this
.
_confirmDelReceipt
([
record
])
;
}
},
_confirmDelReceipt
(
records
)
{
console
.
log
(
records
)
if
(
!
this
.
backMoneyNo
)
return
;
const
receiptVoList
=
records
.
filter
(
item
=>
{
const
findIndex
=
this
.
relatedList
.
findIndex
(
rowId
=>
rowId
===
item
.
id
)
return
(
findIndex
>
-
1
)
}).
map
(
item
=>
{
return
{
id
:
item
.
id
}
})
console
.
log
(
receiptVoList
)
if
(
receiptVoList
.
length
===
0
)
return
;
this
.
$apis
.
DELETERECEIPTRECORD
({
backMoneyNo
:
this
.
backMoneyNo
,
receiptVoList
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
_getNewEOBList
()
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
console
.
log
(
records
);
if
(
!
this
.
backMoneyNo
)
return
;
const
receiptVoList
=
records
.
filter
((
item
)
=>
{
const
findIndex
=
this
.
relatedList
.
findIndex
(
(
rowId
)
=>
rowId
===
item
.
id
);
return
findIndex
>
-
1
;
})
.
map
((
item
)
=>
{
return
{
id
:
item
.
id
,
};
});
console
.
log
(
receiptVoList
);
if
(
receiptVoList
.
length
===
0
)
return
;
this
.
$apis
.
DELETERECEIPTRECORD
({
backMoneyNo
:
this
.
backMoneyNo
,
receiptVoList
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
_getNewEOBList
();
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 修改保险公司
changePayor
()
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
))
{
if
(
this
.
selectedRowKeys
.
length
>
0
&&
(
this
.
form
.
id
||
this
.
savedStatus
)
)
{
this
.
$modal
.
confirm
({
title
:
"
提示
"
,
content
:
"
是否解除已关联账单
"
,
okText
:
"
确认
"
,
cancelText
:
"
取消
"
,
onOk
:
()
=>
{
this
.
selectedRowKeys
=
[]
this
.
selectedRows
=
[]
this
.
selectedRowKeys
=
[]
;
this
.
selectedRows
=
[]
;
},
onCancel
:
()
=>
{},
});
}
this
.
_getNewEOBList
()
this
.
_getNewEOBList
()
;
},
pageChange
(
pager
)
{
this
.
pagination
=
{
...
this
.
pagination
,
...
pager
,
}
this
.
_getNewEOBList
()
}
;
this
.
_getNewEOBList
()
;
},
// 获取保险公司下拉选项
_getCompanyOptions
()
{
...
...
@@ -337,37 +577,39 @@ export default {
},
// 获取已关联的账单
getData
()
{
this
.
$apis
.
QUERYBACKRECEIPTLIST
({
pageNum
:
1
,
pageSize
:
999
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
const
list
=
res
.
content
.
list
||
[];
this
.
selectedRowKeys
=
list
.
map
(
d
=>
d
.
id
)
this
.
selectedRows
=
list
.
map
(
item
=>
{
item
.
relationed
=
true
return
item
})
this
.
relatedList
=
list
.
map
(
d
=>
d
.
id
)
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
this
.
$apis
.
QUERYBACKRECEIPTLIST
({
pageNum
:
1
,
pageSize
:
999
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
const
list
=
res
.
content
.
list
||
[];
this
.
selectedRowKeys
=
list
.
map
((
d
)
=>
d
.
id
);
this
.
selectedRows
=
list
.
map
((
item
)
=>
{
item
.
relationed
=
true
;
return
item
;
});
this
.
relatedList
=
list
.
map
((
d
)
=>
d
.
id
);
}
else
{
this
.
$message
.
error
(
res
.
returnMsg
);
}
});
},
// 获取所有账单
_getNewEOBList
(){
let
billDate
=
this
.
searchForm
.
billDate
||
[]
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
_getNewEOBList
()
{
let
billDate
=
this
.
searchForm
.
billDate
||
[];
this
.
$apis
.
QUERYBACKRECEIPTINFOLIST
({
pageNum
:
this
.
pagination
.
pageNum
,
pageSize
:
this
.
pagination
.
pageSize
,
backMoneyNo
:
this
.
backMoneyNo
,
payorCode
:
this
.
form
.
payorCode
,
...
this
.
searchForm
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
'
23:59:59
'
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
'
00:00:00
'
:
undefined
,
receiptEndDate
:
billDate
[
1
]
?
billDate
[
1
]
+
"
23:59:59
"
:
undefined
,
receiptStartDate
:
billDate
[
0
]
?
billDate
[
0
]
+
"
00:00:00
"
:
undefined
,
})
.
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
...
...
@@ -379,59 +621,60 @@ export default {
}
});
},
//新建/保存回款
addNewEvt
(
backStatus
){
return
new
Promise
((
resolve
,
reject
)
=>
{
console
.
log
(
this
.
selectedRows
)
if
(
!
this
.
form
.
payorCode
)
{
this
.
$message
.
warning
(
"
请选择保险公司
"
);
reject
();
return
;
//新建/保存回款
addNewEvt
(
backStatus
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
console
.
log
(
this
.
selectedRows
)
;
if
(
!
this
.
form
.
payorCode
)
{
this
.
$message
.
warning
(
"
请选择保险公司
"
);
reject
();
return
;
}
if
(
!
this
.
form
.
backDate
)
{
this
.
$message
.
warning
(
"
请选择回款日期
"
);
reject
();
return
;
if
(
!
this
.
form
.
backDate
)
{
this
.
$message
.
warning
(
"
请选择回款日期
"
);
reject
();
return
;
}
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
"
请输入回款金额
"
);
reject
();
return
;
if
(
!
this
.
form
.
backAmountCny
)
{
this
.
$message
.
warning
(
"
请输入回款金额
"
);
reject
();
return
;
}
let
receiptVoList
=
this
.
selectedRows
.
map
(
item
=>
{
let
receiptVoList
=
this
.
selectedRows
.
map
(
(
item
)
=>
{
return
{
id
:
item
.
id
,
backAmount
:
item
.
backAmount
,
}
})
const
valid
=
receiptVoList
.
some
(
item
=>
{
return
!
item
.
backAmount
})
if
(
valid
)
{
}
;
})
;
const
valid
=
receiptVoList
.
some
(
(
item
)
=>
{
return
!
item
.
backAmount
;
})
;
if
(
valid
)
{
this
.
$message
.
warning
(
"
存在关联账单未输入回款金额
"
);
reject
();
return
;
reject
();
return
;
}
const
formData
=
{
...
this
.
form
,
receiptVoList
,
backDate
:
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
'
YYYY-MM-DD HH:mm:ss
'
):
''
,
backMoneyNo
:
this
.
backMoneyNo
,
//回款编号
backStatus
// 0暂存 1结案
}
...
this
.
form
,
receiptVoList
,
backDate
:
this
.
form
.
backDate
?
moment
(
this
.
form
.
backDate
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
)
:
""
,
backMoneyNo
:
this
.
backMoneyNo
,
//回款编号
backStatus
,
// 0暂存 1结案
};
// 上传附件格式转换
formData
.
fileList
=
this
.
fileList
.
map
(
d
=>
{
formData
.
fileList
=
this
.
fileList
.
map
(
(
d
)
=>
{
const
file
=
{
fileName
:
d
.
name
,
fileUrl
:
d
.
url
}
return
file
})
fileUrl
:
d
.
url
,
}
;
return
file
;
})
;
this
.
$apis
.
SAVEBACKMONEY
(
formData
)
.
then
((
res
)
=>
{
this
.
$apis
.
SAVEBACKMONEY
(
formData
).
then
((
res
)
=>
{
if
(
res
.
returnCode
==
"
0000
"
)
{
this
.
backMoneyNo
=
res
.
content
;
this
.
savedStatus
=
true
;
...
...
@@ -439,7 +682,7 @@ export default {
this
.
selectedRowKeys
=
[];
this
.
getData
();
this
.
_getNewEOBList
();
// this.$router.go(-1);
resolve
();
}
else
{
...
...
@@ -447,21 +690,21 @@ export default {
reject
();
}
});
})
})
;
},
/* ======== 上传区域 ======== */
// 上传之前
beforeUpload
(){
beforeUpload
()
{
const
len
=
this
.
fileList
.
length
;
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
'
不能超过5个文件
'
);
if
(
len
>=
5
)
{
this
.
$message
.
warning
(
"
不能超过5个文件
"
);
return
false
;
}
return
true
;
},
// 删除文件
removeFile
(
file
){
removeFile
(
file
)
{
let
index
;
this
.
fileList
.
forEach
((
item
,
i
)
=>
{
if
(
item
.
uid
==
file
.
uid
)
{
...
...
@@ -472,25 +715,24 @@ export default {
return
true
;
},
// 上传文件
uploadFile
(
fileData
){
uploadFile
(
fileData
)
{
let
formData
=
new
FormData
();
formData
.
append
(
"
file
"
,
fileData
.
file
);
this
.
$apis
.
UPLOADIMG
(
formData
)
.
then
((
res
)
=>
{
this
.
$apis
.
UPLOADIMG
(
formData
).
then
((
res
)
=>
{
fileData
.
onSuccess
();
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
let
tmp
=
{
uid
:
Math
.
random
()
*
10000
,
name
:
res
.
original
,
status
:
'
done
'
,
status
:
"
done
"
,
url
:
res
.
url
,
}
}
;
this
.
fileList
.
push
(
tmp
);
this
.
$forceUpdate
();
})
})
;
},
// 导出账单列表
exportEvt
()
{}
exportEvt
()
{}
,
},
};
</
script
>
...
...
@@ -525,15 +767,25 @@ export default {
color: #ff3b30;
}
.burt-container {
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
height: calc(100vh - 110px);
.bill-content {
flex: 1;
min-height: 0;
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
::v-deep {
.ant-tabs {
flex: 1;
min-height: 0;
}
}
}
.bill-content {
height: calc(100vh - 256px);
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
}
::v-deep .bill-form {
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
}
</
style
>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment