Commit 0112ae82 authored by 郭小龙-DEL's avatar 郭小龙-DEL

Merge branch 'func-eccs-2045' into 'master'

eccs 2045 商保流程改造

See merge request !33
parents f40113a3 1ec29531
// 核销管理api // 核销管理api
export default { export default {
queryEobList: "/backstage/auth/queryEobList", //EOB列表查询 queryEobList: "/backstage/auth/queryEobList", //EOB列表查询
queryEobReceiptList: "/backstage/auth/queryEobReceiptList", //EOB待核销账单查询 queryEobReceiptList: "/backstage/auth/queryEobReceiptList", //EOB待核销账单查询
queryEobNeedReceiptList: "/backstage/auth/queryEobNeedReceiptList", //EOB待确认账单列表查询 queryEobNeedReceiptList: "/backstage/auth/queryEobNeedReceiptList", //EOB待确认账单列表查询
deleteEobReceiptInfo: "/backstage/auth/deleteEobReceiptInfo", //删除EOB deleteEobReceiptInfo: "/backstage/auth/deleteEobReceiptInfo", //删除EOB
saveEobReceiptInfo: "/backstage/auth/saveEobReceiptInfo", //EOB新建 saveEobReceiptInfo: "/backstage/auth/saveEobReceiptInfo", //EOB新建
queryBackMoneyList: "/backstage/auth/queryBackMoneyList", //回款列表 queryBackMoneyList: "/backstage/auth/queryBackMoneyList", //回款列表
queryBackEobList: "/backstage/auth/queryBackEobList", //回款关联EOB列表查询 queryBackEobList: "/backstage/auth/queryBackEobList", //回款关联EOB列表查询
queryEobInfoList: "/backstage/auth/queryEobInfoList", //待回款EOB列表查询 queryEobInfoList: "/backstage/auth/queryEobInfoList", //待回款EOB列表查询
saveBackMoney: "/backstage/auth/saveBackMoney", //新建回款 saveBackMoney: "/backstage/auth/saveBackMoney", //新建回款
deleteBackMoney: "/backstage/auth/deleteBackMoney", //删除回款 deleteBackMoney: "/backstage/auth/deleteBackMoney", //删除回款
eobReceipListExport: "/backstage/auth/eobReceipListExport", //EOB关联账单导出 eobReceipListExport: "/backstage/auth/eobReceipListExport", //EOB关联账单导出
}; queryBackReceiptList: "/backstage/auth/queryBackReceiptList", //回销关联账单列表查询
queryReceiptInfoList: "/backstage/auth/queryReceiptInfoList", //回销账单列表查询
deleteReceiptRecord: "/backstage/auth/deleteBackReceipt", // 删除已关联账单
};
// 核销管理函数库 // 核销管理函数库
import apis from "../apis_moudles/verification.js"; import apis from "../apis_moudles/verification.js";
import req from "../request"; import req from "../request";
//EOB列表查询 //EOB列表查询
const QUERYEOBLIST = (data) => { const QUERYEOBLIST = (data) => {
return req.post(apis.queryEobList, data); return req.post(apis.queryEobList, data);
}; };
//EOB待核销账单查询 //EOB待核销账单查询
const QUERYEOBRECEIPTLIST = (data) => { const QUERYEOBRECEIPTLIST = (data) => {
return req.post(apis.queryEobReceiptList, data); return req.post(apis.queryEobReceiptList, data);
}; };
//EOB待确认账单列表查询 //EOB待确认账单列表查询
const QUERYEOBNEEDRECEIPTLIST = (data) => { const QUERYEOBNEEDRECEIPTLIST = (data) => {
return req.post(apis.queryEobNeedReceiptList, data); return req.post(apis.queryEobNeedReceiptList, data);
}; };
//EOB新建 //EOB新建
const SAVEEOBRECEIPTINFO = (data) => { const SAVEEOBRECEIPTINFO = (data) => {
return req.post(apis.saveEobReceiptInfo, data); return req.post(apis.saveEobReceiptInfo, data);
}; };
//删除EOB //删除EOB
const DELEOBRECEIPTINFO = (data) => { const DELEOBRECEIPTINFO = (data) => {
return req.post(apis.deleteEobReceiptInfo, data); return req.post(apis.deleteEobReceiptInfo, data);
}; };
//回款列表 //回款列表
const QUERYBACKMONEYLIST = (data) => { const QUERYBACKMONEYLIST = (data) => {
return req.post(apis.queryBackMoneyList, data); return req.post(apis.queryBackMoneyList, data);
}; };
//回款关联EOB列表查询 //回款关联EOB列表查询
const QUERYBACKEOBLIST = (data) => { const QUERYBACKEOBLIST = (data) => {
return req.post(apis.queryBackEobList, data); return req.post(apis.queryBackEobList, data);
}; };
//待回款EOB列表查询 //待回款EOB列表查询
const QUERYEOBINFOLIST = (data) => { const QUERYEOBINFOLIST = (data) => {
return req.post(apis.queryEobInfoList, data); return req.post(apis.queryEobInfoList, data);
}; };
//新建回款 //新建回款
const SAVEBACKMONEY = (data) => { const SAVEBACKMONEY = (data) => {
return req.post(apis.saveBackMoney, data); return req.post(apis.saveBackMoney, data);
}; };
//删除回款 //删除回款
const DELETEBACKMONEY = (data) => { const DELETEBACKMONEY = (data) => {
return req.post(apis.deleteBackMoney, data); return req.post(apis.deleteBackMoney, data);
}; };
//EOB关联账单导出 //EOB关联账单导出
const EOBRECEIPLISTEXPORT = (data={}) => { const EOBRECEIPLISTEXPORT = (data={}) => {
return req.post(apis.eobReceipListExport, data, { responseType: "blob" }); return req.post(apis.eobReceipListExport, data, { responseType: "blob" });
}; };
// 对象数组 //回销关联账单列表查询
export default { const QUERYBACKRECEIPTLIST = (data) => {
QUERYEOBLIST, return req.post(apis.queryBackReceiptList, data);
QUERYEOBRECEIPTLIST, };
QUERYEOBNEEDRECEIPTLIST, //回销账单列表查询
SAVEEOBRECEIPTINFO, const QUERYBACKRECEIPTINFOLIST = (data) => {
DELEOBRECEIPTINFO, return req.post(apis.queryReceiptInfoList, data);
QUERYBACKMONEYLIST, };
QUERYBACKEOBLIST,
QUERYEOBINFOLIST, // 删除已关联账单
SAVEBACKMONEY, const DELETERECEIPTRECORD = (data) => {
DELETEBACKMONEY, return req.post(apis.deleteReceiptRecord, data);
EOBRECEIPLISTEXPORT, };
// 对象数组
export default {
QUERYEOBLIST,
QUERYEOBRECEIPTLIST,
QUERYEOBNEEDRECEIPTLIST,
SAVEEOBRECEIPTINFO,
DELEOBRECEIPTINFO,
QUERYBACKMONEYLIST,
QUERYBACKEOBLIST,
QUERYEOBINFOLIST,
SAVEBACKMONEY,
DELETEBACKMONEY,
EOBRECEIPLISTEXPORT,
QUERYBACKRECEIPTLIST,
QUERYBACKRECEIPTINFOLIST,
DELETERECEIPTRECORD
}; };
\ No newline at end of file
...@@ -14,38 +14,34 @@ export default [ ...@@ -14,38 +14,34 @@ export default [
path: "/customer", path: "/customer",
title: "客户查询", title: "客户查询",
}, },
{
path: "/customer/edit",
title: "新建客户",
},
],
},
{
icon: "ssimanage_msg",
path: "2",
title: "福利信息管理",
children: [
{
path: "/welfare",
title: "福利查询",
}
],
},
{
icon: "ssimanage",
path: "pre-auth",
title: "预授权信息管理",
children: [
{
path: "/pre-auth",
title: "预授权查询",
},
{
path: "/pre-auth/add",
title: "新建预授权",
},
], ],
}, },
// {
// icon: "ssimanage_msg",
// path: "2",
// title: "福利信息管理",
// children: [
// {
// path: "/welfare",
// title: "福利查询",
// }
// ],
// },
// {
// icon: "ssimanage",
// path: "pre-auth",
// title: "预授权信息管理",
// children: [
// {
// path: "/pre-auth",
// title: "预授权查询",
// },
// // {
// // path: "/pre-auth/add",
// // title: "新建预授权",
// // },
// ],
// },
{ {
icon: "ssisearch", icon: "ssisearch",
path: "charge-query", path: "charge-query",
...@@ -66,10 +62,10 @@ export default [ ...@@ -66,10 +62,10 @@ export default [
path: "verification", path: "verification",
title: "核销管理", title: "核销管理",
children: [ children: [
{ // {
path: "/verification", // path: "/verification",
title: "EOB管理", // title: "EOB管理",
}, // },
{ {
path: "/verification/collection", path: "/verification/collection",
title: "回款管理", title: "回款管理",
......
...@@ -150,8 +150,8 @@ export default { ...@@ -150,8 +150,8 @@ export default {
{ title: "病历号", dataIndex: "mrnNo",width: 180}, { title: "病历号", dataIndex: "mrnNo",width: 180},
{ title: "客户姓名",dataIndex: "patientName",width: 120,}, { title: "客户姓名",dataIndex: "patientName",width: 120,},
{ title: "客户类型", dataIndex: "patientType", width: 180 }, { title: "客户类型", dataIndex: "patientType", width: 180 },
{ title: "保险公司", dataIndex: "payorName", width: 180 }, { title: "保险公司", dataIndex: "payorName", width: 200 },
{ title: "就诊医生", dataIndex: "doctorName", width: 180 }, { title: "就诊医生", dataIndex: "doctorName", width: 150 },
{ title: "是否已关联寄送单", dataIndex: "isSend", width: 180,scopedSlots: { customRender: "isSend" } }, { title: "是否已关联寄送单", dataIndex: "isSend", width: 180,scopedSlots: { customRender: "isSend" } },
{ title: "是否已关联EOB", dataIndex: "isEob", width: 180,scopedSlots: { customRender: "isEob" } }, { title: "是否已关联EOB", dataIndex: "isEob", width: 180,scopedSlots: { customRender: "isEob" } },
{ title: "是否已回款", dataIndex: "isEobBack", width: 180,scopedSlots: { customRender: "isEobBack" } }, { title: "是否已回款", dataIndex: "isEobBack", width: 180,scopedSlots: { customRender: "isEobBack" } },
...@@ -211,7 +211,6 @@ export default { ...@@ -211,7 +211,6 @@ export default {
}) })
}, },
created() { created() {
this._getChargeList();
this._getCompanyOptions(); this._getCompanyOptions();
this._getDoctorListNoPage();//获取医生下拉选项 this._getDoctorListNoPage();//获取医生下拉选项
}, },
......
...@@ -229,11 +229,13 @@ export default { ...@@ -229,11 +229,13 @@ export default {
computed: { computed: {
columns() { columns() {
const base = [ const base = [
{ title: "就诊日期", dataIndex: "receiptDate", width: 200,scopedSlots: { customRender: "receiptDate" } }, { title: "就诊日期", dataIndex: "receiptDate", width: 160,scopedSlots: { customRender: "receiptDate" } },
{ title: "病历号", dataIndex: "mrnNo", key:"mrnNo",align:'center', width: 136}, { title: "病历号", dataIndex: "mrnNo", key:"mrnNo",align:'center', width: 136},
{ title: "客户姓名", dataIndex: "patientName", width: 98 }, { 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: "receiptNo", key:"receiptNo",align:'center', width: 136},
{ title: "保险公司", dataIndex: "payorName", width: 110 }, { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 250 },
{ title: "应收金额", dataIndex: "chargeAmount", width: 100, align: 'center' }, { title: "应收金额", dataIndex: "chargeAmount", width: 100, align: 'center' },
{ title: "折扣金额", dataIndex: "discountAmount", width: 100, align: 'center' }, { title: "折扣金额", dataIndex: "discountAmount", width: 100, align: 'center' },
{ title: "减免金额", dataIndex: "discountAmount2", width: 100, align: 'center' }, { title: "减免金额", dataIndex: "discountAmount2", width: 100, align: 'center' },
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</a-col> </a-col>
<a-col :xl="18" :lg="18" :sm="12" class="none-label"> <a-col :xl="18" :lg="18" :sm="12" class="none-label">
<a-form-model-item label="button"> <a-form-model-item label="button">
<a-button type="primary" @click="addNewCustom"><Icon name="ssiadd" :size="14" />新建客户</a-button> <!-- <a-button type="primary" @click="addNewCustom"><Icon name="ssiadd" :size="14" />新建客户</a-button> -->
<a-button class="mar-left10" type="primary" @click="handlerSearch"> <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询 <Icon name="ssisearch_active" :size="14" />查询
</a-button> </a-button>
...@@ -121,7 +121,6 @@ export default { ...@@ -121,7 +121,6 @@ export default {
BurtPagination, BurtPagination,
}, },
created() { created() {
this._getCustomerList();
this._getPayorCode(); this._getPayorCode();
}, },
methods: { methods: {
......
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
<a-button class="mar-left5" type="primary" @click="reset"> <a-button class="mar-left5" type="primary" @click="reset">
<Icon name="ssireset" :size="12" />重置 <Icon name="ssireset" :size="12" />重置
</a-button> </a-button>
<a-button class="mar-left5" type="primary" @click="addPreAuth"> <!-- <a-button class="mar-left5" type="primary" @click="addPreAuth">
<Icon name="ssiadd" :size="12" />新建预授权</a-button> <Icon name="ssiadd" :size="12" />新建预授权</a-button> -->
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
......
<template> <template>
<div class="white_bg burt-container"> <div class="white_bg burt-container">
<!-- form --> <!-- form -->
<a-form-model ref="form" layout="vertical" :model="form"> <a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司"> <a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear> <a-select
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode"> v-model="form.payorCode"
{{ item.longName }} placeholder="请选择保险公司"
</a-select-option> allowClear
</a-select> >
</a-form-model-item> <a-select-option
</a-col> v-for="item in companyOptions"
<a-col :lg="6" :sm="12"> :key="item.id"
<a-form-model-item label="EOB编号"> :value="item.payorCode"
<a-input v-model="form.eobNo" placeholder="EOB编号"/> >
</a-form-model-item> {{ item.longName }}
</a-col> </a-select-option>
<a-col :md="12" class="none-label"> </a-select>
<a-form-model-item label="button"> </a-form-model-item>
<a-button class="mar-left10" type="primary" @click="handlerSearch"> </a-col>
<Icon name="ssisearch_active" :size="14" />查询 <a-col :lg="6" :sm="12">
</a-button> <a-form-model-item label="EOB编号">
<a-button class="mar-left10" type="primary" @click.stop="handlerReset"> <a-input v-model="form.eobNo" placeholder="EOB编号" />
<Icon name="ssireset" :size="14" />重置 </a-form-model-item>
</a-button> </a-col>
<a-button class="mar-left10" type="primary" @click="addNewEvt"> <a-col :lg="6" :sm="12">
<Icon name="ssiadd" :size="14" />新建回款 <a-form-model-item label="创建时间">
</a-button> <a-range-picker
</a-form-model-item> format="YYYY-MM-DD"
</a-col> v-model="form.dateRange"
</a-row> :placeholder="['开始时间', '结束时间']"
</a-form-model> @change="onSelectVisitTime"
<!-- table --> />
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" > </a-form-model-item>
<template slot="eobSts" slot-scope="text"> </a-col>
{{text==1?'待回款':'已回款'}} <a-col :lg="6" :sm="12">
</template> <a-form-model-item label="状态">
<template slot="operation" slot-scope="text, record, index"> <a-select
<a-button type="link" @click.stop="editEvt(record, true)">修改</a-button> v-model="form.backStatus"
<a-button type="link" class="success" @click.stop="editEvt(record)">查看</a-button> placeholder="请选择状态"
<a-button v-if="record.backMoneyNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> allowClear
</template> >
</a-table> <a-select-option
<BurtPagination :pagination="pagination" @pageChange="getData" /> v-for="item in backStatusOptions"
</div> :key="item.value"
</template> :value="item.value"
>
<script> {{ item.name }}
import BurtPagination from "@/components/CUSTOMER/pagation"; </a-select-option>
import moment from "moment"; </a-select>
const columns = [ </a-form-model-item>
{ title: "回款编号", dataIndex: "backMoneyNo", ellipsis: true, width: 150 }, </a-col>
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 }, <a-col :lg="6" :sm="12">
{ title: "回款金额(人民币)", dataIndex: "backAmountCny", ellipsis: true, width: 190,}, <a-form-model-item label="回款金额">
{ title: "回款金额(美元)", dataIndex: "backAmountUsd", ellipsis: true, width: 190,}, <a-input v-model="form.backAmountCny" placeholder="回款金额" />
{ title: "汇率差", dataIndex: "backExchangeRate", ellipsis: true, width: 110 }, </a-form-model-item>
{ title: "创建时间", dataIndex: "createDate", ellipsis: true, width: 110 }, </a-col>
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px", align: "center"}, <a-col :md="24" class="none-label">
]; <a-form-model-item label="button">
export default { <a-button class="mar-left10" type="primary" @click="handlerSearch">
data() { <Icon name="ssisearch_active" :size="14" />查询
return { </a-button>
columns, <a-button
form: { class="mar-left10"
payorCode: '', type="primary"
eobNo: '', @click.stop="handlerReset"
}, >
dataList: [], <Icon name="ssireset" :size="14" />重置
companyOptions: [], //保险公司 </a-button>
pagination: { <a-button class="mar-left10" type="primary" @click="addNewEvt">
pageNum: 1, <Icon name="ssiadd" :size="14" />新建回款
pageSize: 10, </a-button>
total: 0, </a-form-model-item>
}, </a-col>
}; </a-row>
}, </a-form-model>
components: { <!-- table -->
BurtPagination, <a-table
}, :columns="columns"
created(){ :data-source="dataList"
this.getData(); :scroll="{ x: true }"
this._getCompanyOptions(); :pagination="false"
}, >
methods: { <template slot="eobSts" slot-scope="text">
moment, {{ text == 1 ? "待回款" : "已回款" }}
pageChange(pager) { </template>
const { current } = pager; <template slot="operation" slot-scope="text, record, index">
this.pagination.pageNum = current; <a-button type="link" @click.stop="editEvt(record, true)"
this.getData(); >修改</a-button
}, >
// 重置 <a-button type="link" class="success" @click.stop="editEvt(record)"
handlerReset() { >查看</a-button
this.form = { >
payorCode: '', <a-button
eobNo: '', v-if="record.backMoneyNo"
} type="link"
}, class="danger"
// 获取保险公司下拉选项 @click.stop="delRecord(index)"
_getCompanyOptions() { >删除</a-button
this.$apis.GETCOMPANYOPTIONS().then((res) => { >
this.companyOptions = res.content || []; </template>
}); </a-table>
}, <BurtPagination :pagination="pagination" @pageChange="getData" />
handlerSearch() { </div>
this.pagination.pageNum = 1; </template>
this.getData();
}, <script>
getData() { import BurtPagination from "@/components/CUSTOMER/pagation";
this.$apis.QUERYBACKMONEYLIST({ import moment from "moment";
...this.form, const columns = [
pageNum: this.pagination.pageNum, { title: "回款编号", dataIndex: "backMoneyNo", ellipsis: true, width: 150 },
pageSize: this.pagination.pageSize, { title: "EOB编号", dataIndex: "eobNos", ellipsis: true, width: 140 },
}) { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 },
.then((res) => { {
if (res.returnCode == "0000") { title: "回款金额(人民币)",
let content = res.content || {}; dataIndex: "backAmountCny",
this.pagination.total = content.total || 0; ellipsis: true,
this.dataList = content.list || []; width: 190,
} else { },
this.$message.error(res.returnMsg); {
} title: "未核销余额",
}); dataIndex: "residueBackAmount",
}, ellipsis: true,
//新建回款 width: 130,
addNewEvt(){ },
this.$router.push({ { title: "EOB备注", dataIndex: "eobRemark", ellipsis: true, width: 140 },
path: '/verification/collectionDetail', { title: "创建时间", dataIndex: "createDate", ellipsis: true, width: 110 },
query: { { title: "状态", dataIndex: "backStatusStr", ellipsis: true, width: 90 },
isEdit: true {
} title: "操作",
}) dataIndex: "operation",
}, scopedSlots: { customRender: "operation" },
//编辑回款 fixed: "right",
editEvt(record, isEdit){ width: "200px",
const { backMoneyNo } = record; align: "center",
localStorage.setItem('backMoneyDataDetail', JSON.stringify(record)); },
this.$router.push({ ];
path: '/verification/collectionDetail', export default {
query: { data() {
backMoneyNo, return {
isEdit columns,
} form: {
}) payorCode: "",
}, eobNo: "",
//删除记录 dateRange: [], //创建时间范围
delRecord(index) { startDate: "",
this.$modal.confirm({ endDate: "",
title: "删除", backStatus: "",
content: "确定删除该条记录?", backAmountCny: "", // 回款金额
okText: "确认", },
cancelText: "取消", dataList: [],
onOk: () => { companyOptions: [], //保险公司
this.$apis.DELETEBACKMONEY({ pagination: {
backMoneyNo: this.dataList[index].backMoneyNo, pageNum: 1,
}) pageSize: 10,
.then((res) => { total: 0,
if (res.returnCode == "0000") { },
this.$message.success("删除成功"); backStatusOptions: [
this.dataList.splice(index, 1); { name: '全部', value: '' },
} else { { name: '已结案', value: '1' },
this.$message.error(res.returnMsg); { name: '暂存', value: '0' }
} ]
}); };
}, },
onCancel: () => {}, components: {
}); BurtPagination,
} },
}, created() {
}; this.getData();
</script> this._getCompanyOptions();
},
<style lang="less" scoped> methods: {
.none-label { moment,
text-align: right; pageChange(pager) {
.ant-form-item-label { const { current } = pager;
opacity: 0; this.pagination.pageNum = current;
} this.getData();
} },
.ant-btn .icon-class { // 重置
.mg-r(10); handlerReset() {
} this.form = {
.success.ant-btn-link { payorCode: "",
color: #4cd964; eobNo: "",
} dateRange: [], //创建时间范围
.danger.ant-btn-link { startDate: "",
color: #ff3b30; endDate: "",
} backStatus: ""
</style> };
},
// 获取保险公司下拉选项
_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: () => {},
});
},
},
};
</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> <template>
<div class="white_bg burt-container"> <div class="white_bg burt-container">
<Goback title="回款详情" /> <Goback title="回款详情" />
<!-- form --> <!-- form -->
<a-form-model ref="form" layout="vertical" :model="form"> <a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司"> <a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allow-clear :disabled="!isEdit"> <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"> <a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }} {{ item.longName }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="5" :sm="12"> <a-col :lg="5" :sm="12">
<a-form-model-item label="回款日期"> <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-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-form-model-item>
</a-col> </a-col>
<a-col :lg="5" :sm="12"> <a-col :lg="5" :sm="12">
<a-form-model-item label="回款金额(人民币)"> <a-form-model-item label="回款金额(人民币)">
<a-input type="number" v-model="form.backAmountCny" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> <a-input type="number" v-model="form.backAmountCny" placeholder="请输入金额" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="5" :sm="12"> <a-col :lg="5" :sm="12">
<a-form-model-item label="回款金额(美元)"> <a-form-model-item label="可核销余额">
<a-input type="number" v-model="form.backAmountUsd" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> <a-input v-model="residueBackAmount" disabled />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="5" :sm="12">
<a-form-model-item label="汇率差"> <a-form-model-item label="回款金额(美元)">
<a-input v-model="form.backExchangeRate" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> <a-input type="number" v-model="form.backAmountUsd" placeholder="请输入金额" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="上传银行付款凭证"> <a-form-model-item label="汇率差">
<a-upload name="file" :multiple="false" :showUploadList="true" :disabled="!isEdit" <a-input v-model="form.backExchangeRate" placeholder="请输入金额" allow-clear :disabled="!isEdit" />
:fileList="fileList" </a-form-model-item>
:customRequest="(file)=>uploadFile(file)" </a-col>
:beforeUpload="()=>beforeUpload()" <a-col :lg="5" :sm="12">
:remove="(file)=>removeFile(file)"> <a-form-model-item label="EOB编号">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传文件 </a-button> <a-input v-model="form.eobNos" placeholder="请输入EOB编号" allow-clear :disabled="!isEdit" />
</a-upload> </a-form-model-item>
</a-form-model-item> </a-col>
</a-col> <a-col :lg="5" :sm="12">
<a-col :md="24" :lg="12" class="none-label" v-if="isEdit"> <a-form-model-item label="EOB备注">
<a-form-model-item label="button"> <a-input v-model="form.eobRemark" placeholder="请输入EOB备注" allow-clear :disabled="!isEdit" />
<a-button class="mar-left10" type="primary" @click="addNewEvt"> </a-form-model-item>
<Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />{{backMoneyNo?'保存回款':'新建回款'}} </a-col>
</a-button> <a-col :lg="5" :sm="12">
</a-form-model-item> <a-form-model-item label="上传附件">
</a-col> <a-upload name="file" :multiple="false" :showUploadList="true" :disabled="!isEdit"
<a-col :md="24" class="none-label" v-if="isEdit"> :fileList="fileList"
<a-form-model-item label="button"> :customRequest="(file)=>uploadFile(file)"
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch"> :beforeUpload="()=>beforeUpload()"
<Icon name="ssisearch_active" :size="14" />查询 :remove="(file)=>removeFile(file)">
</a-button> --> <a-button type="primary"> <Icon name="ssiupload" :size="18" />上传文件 </a-button>
<a-button class="mar-left10" type="primary" @click="addNewEOB"> </a-upload>
<Icon :name="isEditNewEOB?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewEOB? '保存EOB': '添加EOB'}} </a-form-model-item>
</a-button> </a-col>
</a-form-model-item> <a-col :md="24" :lg="24" class="none-label" v-if="isEdit">
</a-col> <a-form-model-item label="button">
</a-row> <a-button class="mar-left10" type="primary" @click="addNewEvt(0)">
</a-form-model> <Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />暂存
<!-- table --> </a-button>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" <a-button class="mar-left10" type="primary" @click="addNewEvt(1)">
:row-selection="isEditNewEOB? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null"> <Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />结案
<template slot="eobNo" slot-scope="text,record"> </a-button>
<a @click="toEOBDetail(record)">{{text}}</a> </a-form-model-item>
</template> </a-col>
<template slot="eobSts" slot-scope="text"> </a-row>
{{text | formatEOBStatus}} </a-form-model>
</template> <div class="bill-content">
<template slot="eobBackDate" slot-scope="text"> <!-- 已关联账单 -->
{{text?moment(text).format('YYYY-MM-DD'):''}} <template v-if="selectedRows.length > 0">
</template> <div class="table-title">已关联账单</div>
<template slot="operation" slot-scope="text, record"> <a-table class="table-content" :columns="selectedColumns" :data-source="selectedRows" :scroll="{ x: true, y: 200 }" :pagination="false">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button> <template slot="operation" slot-scope="text, record, index">
<!-- <a-button v-if="record.backMoneyNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> --> <a-button type="link" class="danger" @click.stop="delRecord(record, index)">删除</a-button>
</template> </template>
</a-table> </a-table>
<BurtPagination :pagination="pagination" @pageChange="pageChange" /> </template>
<!-- table -->
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false" <template v-if="isEdit">
okText="确定" cancelText="取消" <a-row class="search-form">
@ok="handleEditOK" @cancel="dialogShow = false"> <a-form-model ref="searchForm" layout="vertical" :model="searchForm">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules"> <a-row :gutter="30">
<a-row :gutter="30"> <a-col :lg="6" :sm="12">
<a-col :lg="12" :sm="24"> <a-form-model-item label="账单日期">
<a-form-model-item label="EOB状态" prop="eobSts"> <a-range-picker format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="searchForm.billDate" :placeholder="['开始时间','结束时间']"/>
<a-select v-model="editFormObj.eobSts" placeholder="请选择状态" allow-clear> </a-form-model-item>
<a-select-option v-for="(item,i) in EOBStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option> </a-col>
</a-select> <a-col :lg="5" :sm="12">
</a-form-model-item> <a-form-model-item label="病历号">
</a-col> <a-input v-model="searchForm.mrnNo" placeholder="请输入病历号" allow-clear :disabled="!isEdit"/>
<a-col :lg="12" :sm="24"> </a-form-model-item>
<a-form-model-item label="EOB核销时间" prop="eobBackDate"> </a-col>
<a-date-picker format="YYYY年MM月DD日" v-model="editFormObj.eobBackDate" placeholder="选择日期" /> <a-col :lg="5" :sm="12">
</a-form-model-item> <a-form-model-item label="客户名称">
</a-col> <a-input v-model="searchForm.patientName" placeholder="请输入客户名称" allow-clear :disabled="!isEdit"/>
<a-col :lg="12" :xs="24"> </a-form-model-item>
<a-form-model-item label="EOB回款(人民币)" prop="eobBackMoneyCny"> </a-col>
<a-input v-model.trim="editFormObj.eobBackMoneyCny" placeholder="EOB回款(人民币)" /> <a-col :lg="5" :sm="12">
</a-form-model-item> <div class="btn-div mar-bottom10 none-label">
</a-col> <a-button type="primary" @click="_getNewEOBList">
<a-col :lg="12" :xs="24"> <Icon name="ssisearch_active" :size="14" />查询
<a-form-model-item label="EOB回款(美元)" prop="eobBackMoneyUsd"> </a-button>
<a-input v-model.trim="editFormObj.eobBackMoneyUsd" placeholder="EOB回款(美元)" /> </div>
</a-form-model-item> </a-col>
</a-col> </a-row>
</a-row> </a-form-model>
</a-form-model> </a-row>
</a-modal> <div class="table-title">账单列表</div>
</div> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: true, y: 200 }" :pagination="false" :rowKey="'id'"
</template> :row-selection="{ selectedRowKeys: selectedRowKeys, onSelect: onSelectChange, onSelectAll: onSelectAll }">
</a-table>
<script> <BurtPagination :pagination="pagination" @pageChange="pageChange" />
import Goback from "@/components/CUSTOMER/goback"; </template>
import BurtPagination from "@/components/CUSTOMER/pagation"; </div>
import {EOBStatusOptions} from '@/utils/utilsdictOptions.js' </div>
import moment from "moment"; </template>
import mixins from "@/mixins";
export default { <script>
data() { import Goback from "@/components/CUSTOMER/goback";
return { import BurtPagination from "@/components/CUSTOMER/pagation";
isEdit: false, import {EOBStatusOptions} from '@/utils/utilsdictOptions.js'
EOBStatusOptions, import moment from "moment";
dialogShow: false, import mixins from "@/mixins";
form: { export default {
payorCode: '', data() {
backDate: null, return {
backAmountCny: '', isEdit: false,
backAmountUsd: '', EOBStatusOptions,
backExchangeRate: '' dialogShow: false,
}, form: {
fileList: [], // 上传文件列表 payorCode: '',
dataList: [], backDate: null,
backEobList: [], // eob回款列表 backAmountCny: '',
isEditNewEOB: false, //是否在新建回款 backAmountUsd: '',
companyOptions: [], //保险公司 backExchangeRate: '',
pagination: { eobNos: '', // EOB编号
pageNum: 1, eobRemark: '' // EOB备注
pageSize: 10, },
total: 0, fileList: [], // 上传文件列表
}, dataList: [],
selectedRowKeys: [], // Check here to configure the default column isEditNewEOB: false, //是否在新建回款
backMoneyNo: '', companyOptions: [], //保险公司
editFormObj: { pagination: {
id: '', pageNum: 1,
eobNo: '', pageSize: 5,
eobSts: '', total: 0,
eobBackDate: null, },
eobBackMoneyCny: '', selectedRowKeys: [], // Check here to configure the default column
eobBackMoneyUsd: '', selectedRows: [], // Check here to configure the default column
}, backMoneyNo: '',
editRules: { editRules: {
backAmountUsd: [{ required: true, message: "请输入", trigger: "blur" }], backAmountUsd: [{ required: true, message: "请输入", trigger: "blur" }],
backAmount: [{ required: true, message: "请输入", trigger: "blur" }], backAmount: [{ required: true, message: "请输入", trigger: "blur" }],
}, },
};
}, searchForm: {
mixins: [mixins], billDate: [],
components: { mrnNo: '', // 病历号
Goback, patientName: '', // 客户名字
BurtPagination, },
}, savedStatus: false, //是否已保存
computed: { relatedList: []
columns() { };
const base = [ },
{ title: "EOB编号", dataIndex: "eobNo", scopedSlots: { customRender: 'eobNo' }, ellipsis: true, width: 150 }, mixins: [mixins],
{ title: "EOB名称", dataIndex: "eobName", ellipsis: true, width: 195 }, components: {
{ title: "核销时间", dataIndex: "eobBackDate", ellipsis: true, width: 110, scopedSlots: { customRender: "eobBackDate" }, }, Goback,
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 }, BurtPagination,
{ title: "EOB状态", dataIndex: "eobSts", ellipsis: true, width: 110, scopedSlots: { customRender: "eobSts" } }, },
{ title: "EOB赔付金额(人民币)", dataIndex: "eobAmountCny", ellipsis: true, width: 190,}, computed: {
{ title: "EOB赔付金额(美元)", dataIndex: "eobAmountUsd", ellipsis: true, width: 190,}, columns() {
{ title: "EOB回款金额(人民币)", dataIndex: "eobBackMoneyCny", ellipsis: true, width: 190,}, const base = [
{ title: "EOB回款金额(美元)", dataIndex: "eobBackMoneyUsd", ellipsis: true, width: 190,}, { title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 150 },
{ title: "汇率差", dataIndex: "backExchangeRate", ellipsis: true, width: 110 }, { title: "病历号", dataIndex: "mrnNo", ellipsis: true, width: 195 },
]; { title: "客户姓名",dataIndex: "patientName", ellipsis: true, width: 160 },
if(this.backMoneyNo && !this.isEditNewEOB && this.isEdit){ // 编辑状态下已经保存的数据才可进行操作 // { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 },
return base.concat([ { title: "账单日期", dataIndex: "receiptDate", ellipsis: true, width: 150 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px", align: "center"}, { title: "收银", dataIndex: "receiptTellerName", ellipsis: true, width: 120,},
]) { title: "账单金额", dataIndex: "actualAmount", ellipsis: true, width: 150,},
} { title: "回款金额", dataIndex: "writeOffAmount", ellipsis: true, width: 150},
return base { title: "未清余额", dataIndex: "residueBackAmount", ellipsis: true, width: 150,},
} ];
}, return base
created(){ },
const { backMoneyNo, isEdit } = this.$route.query selectedColumns() {
this.backMoneyNo = backMoneyNo; const base = JSON.parse(JSON.stringify(this.columns))
this.isEdit = isEdit; const changeAmount = this.changeAmount
this._getCompanyOptions(); base[6] = { title: "回款金额", dataIndex: "backAmount", ellipsis: true, width: 150, customRender: (val, row) => {
if(backMoneyNo){ return <a-input-number v-model={row.backAmount} allow-clear disabled={!this.isEdit} onBlur={() => {changeAmount(row)}} />
const backMoneyDataDetail = JSON.parse(localStorage.getItem('backMoneyDataDetail') || '{}'); } }
this.form = backMoneyDataDetail base[7] = { title: "未清余额", dataIndex: "residueBackAmount", ellipsis: true, width: 150, customRender: (val, row) => {
this.form.backDate = this.form.backDate ? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00') : null return Number(row.currentReceiptAmount || 0) - Number(row.backAmount || 0)
} }
// 如果有上传附件则显示列表 base.splice(6, 0, { title: "余末金额", dataIndex: "currentReceiptAmount", ellipsis: true, width: 150,})
if(backMoneyDataDetail.fileList) { base.push({ title: "回款日期", dataIndex: "backDate", ellipsis: true, width: 150,})
this.fileList = backMoneyDataDetail.fileList.map(d => { if(this.isEdit) {
const file = { base.push({ title: "操作", dataIndex: "operation", fixed: 'right', width: 100, scopedSlots: { customRender: "operation" }})
uid: Math.random()*10000, }
name: d.fileName, return base
status: 'done', },
url: d.fileUrl, // 可核销余额
} residueBackAmount() {
return file let totalMoney = Number(this.form.backAmountCny || 0)
}) this.selectedRows.forEach(item => {
} totalMoney -= Number(item.backAmount)
})
this.getData(); return totalMoney
} }
}, },
methods: { created(){
moment, const { backMoneyNo, isEdit } = this.$route.query
// 查看的超链点击时链接已经生成好了,所以要点击的时候才set值才是对应的,不然存的都是最后一条数据 this.backMoneyNo = backMoneyNo;
setData(record){ this.isEdit = isEdit;
localStorage.setItem('EobDataDetail', JSON.stringify(record)); this._getCompanyOptions();
}, if(backMoneyNo){
// EOB添加去查看的超链 const backMoneyDataDetail = JSON.parse(localStorage.getItem('backMoneyDataDetail') || '{}');
toEOBDetail(record){ this.form = backMoneyDataDetail
const { eobNo } = record; this.form.backDate = this.form.backDate ? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00') : null
localStorage.setItem('EobDataDetail', JSON.stringify(record));
this.$router.push({ // 如果有上传附件则显示列表
path: '/verification/detail', if(backMoneyDataDetail.fileList) {
query: { this.fileList = backMoneyDataDetail.fileList.map(d => {
eobNo const file = {
} uid: Math.random()*10000,
}) name: d.fileName,
}, status: 'done',
onSelectChange(selectedRowKeys) { url: d.fileUrl,
let arr = []; }
for(let i=0; i<selectedRowKeys.length; i++){ return file
let idx = selectedRowKeys[i]; })
if(this.dataList[idx].backMoneyNo){ }
this.$msg.destroy(); this.getData();
this.$message.warning('回款编号已存在') }
}else{ this._getNewEOBList();
arr.push(idx); },
} methods: {
} moment,
this.selectedRowKeys = arr; changeAmount(row) {
}, if((Number(row.actualAmount || 0) - Number(row.backAmount || 0)) < 0) {
pageChange(pager) { this.$message.warning("录入账单回款金额大于账单金额");
this.pagination = { }
...this.pagination, },
...pager onSelectChange(selectedRow, selected) {
} if(selected) {
if(this.isEditNewEOB) { // 点击添加EOB之后 分页数据查询就应该调EOB数据 this.selectedRowKeys.push(selectedRow.id)
this._getNewEOBList() this.selectedRows.push(selectedRow)
return true; } else {
} const index = this.selectedRowKeys.findIndex(item => item === selectedRow.id)
this.getData(); this.selectedRowKeys.splice(index, 1)
}, this.selectedRows.splice(index, 1)
// 获取保险公司下拉选项 this._confirmDelReceipt([selectedRow])
_getCompanyOptions() { }
this.$apis.GETCOMPANYOPTIONS().then((res) => { },
this.companyOptions = res.content || []; onSelectAll(selected, selectedRows, changeRows) {
}); console.log(selected, selectedRows, changeRows)
}, if(selected) {
handlerSearch() { this.selectedRowKeys = this.selectedRowKeys.concat(changeRows.map(item => item.id))
this.pagination.pageNum = 1; this.selectedRows = this.selectedRows.concat(changeRows)
this.getData(); } else {
}, changeRows.forEach(item => {
getData() { const findIndex = this.selectedRowKeys.findIndex(rowId => rowId === item.id)
this.$apis.QUERYBACKEOBLIST({ this.selectedRowKeys.splice(findIndex, 1)
pageNum: this.pagination.pageNum, this.selectedRows.splice(findIndex, 1)
pageSize: this.pagination.pageSize, })
backMoneyNo: this.backMoneyNo this._confirmDelReceipt(changeRows)
}) }
.then((res) => { },
if (res.returnCode == "0000") { delRecord(record, index) {
let content = res.content || {}; this.selectedRowKeys.splice(index, 1)
this.pagination.total = content.total || 0; this.selectedRows.splice(index, 1)
this.dataList = content.list || []; if(record.relationed) {
this.backEobList = this.dataList.map(d => d) // 已经关联的调用接口删除
} else { this._confirmDelReceipt([record])
this.$message.error(res.returnMsg); }
} },
}); _confirmDelReceipt(records) {
}, console.log(records)
//添加EOB if(!this.backMoneyNo) return;
addNewEOB(){ const receiptVoList = records.filter(item => {
this.isEditNewEOB = !this.isEditNewEOB; const findIndex = this.relatedList.findIndex(rowId => rowId === item.id)
if(!this.isEditNewEOB){ //保存 return (findIndex > -1)
this.addNewEvt() }).map(item => {
.then(()=>{ return {
this.isEditNewEOB = false; id: item.id
}) }
}else{ //查询所有未加入的账单 })
this.pagination.pageNum = 1; console.log(receiptVoList)
this._getNewEOBList() if(receiptVoList.length === 0) return;
} this.$apis.DELETERECEIPTRECORD({
}, backMoneyNo: this.backMoneyNo,
_getNewEOBList(){ receiptVoList
this.$apis.QUERYEOBINFOLIST({ })
pageNum: this.pagination.pageNum, .then((res) => {
pageSize: this.pagination.pageSize if (res.returnCode == "0000") {
}) this._getNewEOBList()
.then((res) => { } else {
if (res.returnCode == "0000") { this.$message.error(res.returnMsg);
this.selectedRowKeys = []; }
let content = res.content || {}; });
this.pagination.total = content.total || 0; },
this.dataList = content.list || []; // 修改保险公司
} else { changePayor() {
this.$message.error(res.returnMsg); if(this.selectedRowKeys.length > 0 && (this.form.id || this.savedStatus)) {
} this.$modal.confirm({
}); title: "提示",
}, content: "是否解除已关联账单",
//新建/保存回款 okText: "确认",
addNewEvt(){ cancelText: "取消",
return new Promise((resolve,reject)=>{ onOk: () => {
if(!this.form.backAmountCny){ this.selectedRowKeys = []
this.$message.warning("请输入回款金额"); this.selectedRows = []
reject(); },
return; onCancel: () => {},
} });
}
let backMoneyEobList = []; this._getNewEOBList()
if(!this.isEditNewEOB) { },
backMoneyEobList = this.backEobList pageChange(pager) {
} else { this.pagination = {
this.dataList.forEach((item,index)=>{ ...this.pagination,
if(this.selectedRowKeys.indexOf(index)!=-1){ ...pager,
backMoneyEobList.push({ }
id: item.id, this._getNewEOBList()
eobNo: item.eobNo, },
eobSts: item.eobSts, // 获取保险公司下拉选项
eobBackDate: item.eobBackDate?moment(item.eobBackDate).format('YYYY-MM-DD 00:00:00'):'', _getCompanyOptions() {
eobBackMoneyCny: item.eobBackMoneyCny, this.$apis.GETCOMPANYOPTIONS().then((res) => {
eobBackMoneyUsd: item.eobBackMoneyUsd, this.companyOptions = res.content || [];
}) });
} },
}) // 获取已关联的账单
} getData() {
this.$apis.QUERYBACKRECEIPTLIST({
const formData = { pageNum: 1,
...this.form, pageSize: 999,
backMoneyEobList: backMoneyEobList, backMoneyNo: this.backMoneyNo,
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'', payorCode: this.form.payorCode
backMoneyNo: this.backMoneyNo, //回款编号 })
} .then((res) => {
if (res.returnCode == "0000") {
// 上传附件格式转换 const list = res.content.list || [];
formData.fileList = this.fileList.map(d => { this.selectedRowKeys = list.map(d => d.id)
const file = { this.selectedRows = list.map(item => {
fileName: d.name, item.relationed = true
fileUrl: d.url return item
} })
return file this.relatedList = list.map(d => d.id)
}) } else {
this.$message.error(res.returnMsg);
this.$apis.SAVEBACKMONEY(formData) }
.then((res) => { });
if (res.returnCode == "0000") { },
this.backMoneyNo = res.content; // 获取所有账单
this.$message.success("成功"); _getNewEOBList(){
this.selectedRowKeys = []; let billDate = this.searchForm.billDate || []
this.getData(); this.$apis.QUERYBACKRECEIPTINFOLIST({
pageNum: this.pagination.pageNum,
// this.$router.go(-1); pageSize: this.pagination.pageSize,
resolve(); backMoneyNo: this.backMoneyNo,
} else { payorCode: this.form.payorCode,
this.$message.error(res.returnMsg); ...this.searchForm,
reject(); 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 || {};
delRecord(index) { this.pagination.total = content.total || 0;
this.$modal.confirm({ this.dataList = content.list || [];
title: "删除", } else {
content: "确定删除该条记录?", this.$message.error(res.returnMsg);
okText: "确认", }
cancelText: "取消", });
onOk: () => { },
this.$apis.DELETEBACKMONEY({ //新建/保存回款
backMoneyNo: this.dataList[index].backMoneyNo, addNewEvt(backStatus){
}) return new Promise((resolve,reject)=>{
.then((res) => { console.log(this.selectedRows)
if (res.returnCode == "0000") { if(!this.form.payorCode){
this.$message.success("删除成功"); this.$message.warning("请选择保险公司");
this.dataList.splice(index, 1); reject();
} else { return;
this.$message.error(res.returnMsg); }
} if(!this.form.backDate){
}); this.$message.warning("请选择回款日期");
}, reject();
onCancel: () => {}, return;
}); }
}, if(!this.form.backAmountCny){
editEvt(record) { this.$message.warning("请输入回款金额");
this.editFormObj = { reject();
id: record.id, return;
eobNo: record.eobNo || "", }
eobSts: record.eobSts || "", let receiptVoList = this.selectedRows.map(item => {
eobBackDate: record.eobBackDate?moment(record.eobBackDate).format('YYYY-MM-DD 00:00:00'):"", return {
eobBackMoneyCny: record.eobBackMoneyCny || "", id: item.id,
eobBackMoneyUsd: record.eobBackMoneyUsd || "", backAmount: item.backAmount,
}; }
this.dialogShow = true; })
}, const valid = receiptVoList.some(item => {
//编辑保存 return !item.backAmount
handleEditOK() { })
this.$refs.editForm.validate((valid) => { if(valid) {
if (valid) { this.$message.warning("存在关联账单未输入回款金额");
let editFormObj = { reject();
...this.editFormObj, return;
eobBackDate: this.editFormObj.eobBackDate?moment(this.editFormObj.eobBackDate).format('YYYY-MM-DD 00:00:00'):"", }
}
this.$apis.SAVEBACKMONEY({ const formData = {
...this.form, ...this.form,
backMoneyEobList: [editFormObj], receiptVoList,
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'', backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD HH:mm:ss'):'',
backMoneyNo: this.backMoneyNo, //回款编号 backMoneyNo: this.backMoneyNo, //回款编号
}) backStatus // 0暂存 1结案
.then((res) => { }
if (res.returnCode == "0000") {
this.$message.success("编辑成功"); // 上传附件格式转换
this.dialogShow = false; formData.fileList = this.fileList.map(d => {
this.getData(); const file = {
} else { fileName: d.name,
this.$message.error(res.returnMsg); fileUrl: d.url
} }
}); return file
} })
});
}, this.$apis.SAVEBACKMONEY(formData)
.then((res) => {
/* ======== 上传区域 ======== */ if (res.returnCode == "0000") {
// 上传之前 this.backMoneyNo = res.content;
beforeUpload(){ this.savedStatus = true;
const len = this.fileList.length; this.$message.success("成功");
if(len >= 5){ this.selectedRowKeys = [];
this.$message.warning('不能超过5个文件'); this.getData();
return false; this._getNewEOBList();
}
return true; // this.$router.go(-1);
}, resolve();
// 删除文件 } else {
removeFile(file){ this.$message.error(res.returnMsg);
let index; reject();
this.fileList.forEach((item, i) => { }
if (item.uid == file.uid) { });
index = i; })
} },
});
this.fileList.splice(index, 1); /* ======== 上传区域 ======== */
return true; // 上传之前
}, beforeUpload(){
// 上传文件 const len = this.fileList.length;
uploadFile(fileData){ if(len >= 5){
let formData = new FormData(); this.$message.warning('不能超过5个文件');
formData.append("file", fileData.file); return false;
this.$apis.UPLOADIMG(formData) }
.then((res)=>{ return true;
fileData.onSuccess(); },
let tmp = { // 删除文件
uid: Math.random()*10000, removeFile(file){
name: res.original, let index;
status: 'done', this.fileList.forEach((item, i) => {
url: res.url, if (item.uid == file.uid) {
} index = i;
this.fileList.push(tmp); }
});
this.$forceUpdate(); this.fileList.splice(index, 1);
}) return true;
} },
}, // 上传文件
}; uploadFile(fileData){
</script> let formData = new FormData();
formData.append("file", fileData.file);
<style lang="less" scoped> this.$apis.UPLOADIMG(formData)
.none-label { .then((res)=>{
text-align: right; fileData.onSuccess();
.ant-form-item-label { let tmp = {
opacity: 0; uid: Math.random()*10000,
} name: res.original,
} status: 'done',
.ant-btn .icon-class { url: res.url,
.mg-r(10); }
} this.fileList.push(tmp);
.success.ant-btn-link {
color: #4cd964; this.$forceUpdate();
} })
.danger.ant-btn-link { },
color: #ff3b30; // 导出账单列表
} exportEvt() {}
</style> },
};
</script>
<style lang="less" scoped>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.table-title {
font-size: 15px;
margin: 6px 0;
}
.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);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
.burt-container {
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;
}
}
</style>
<template> <template>
<div class="white_bg burt-container"> <div class="white_bg burt-container">
<Goback title="EOB详情" /> <Goback title="EOB详情" />
<!-- form --> <!-- form -->
<a-form-model ref="form" layout="vertical" :model="form"> <a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司"> <a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allow-clear :disabled="!isEdit"> <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"> <a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }} {{ item.longName }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="EOB日期"> <a-form-model-item label="EOB日期">
<a-date-picker format="YYYY年MM月DD日" v-model="form.eobDate" placeholder="选择日期" allow-clear :disabled="!isEdit" /> <a-date-picker format="YYYY年MM月DD日" v-model="form.eobDate" placeholder="选择日期" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="EOB名称"> <a-form-model-item label="EOB名称">
<a-input v-model="form.eobName" placeholder="请输入EOB名称" allow-clear :disabled="!isEdit" /> <a-input v-model="form.eobName" placeholder="请输入EOB名称" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(人民币)"> <a-form-model-item label="EOB金额(人民币)">
<a-input type="number" v-model="form.eobAmountCny" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> <a-input type="number" v-model="form.eobAmountCny" placeholder="请输入金额" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(美元)"> <a-form-model-item label="EOB金额(美元)">
<a-input type="number" v-model="form.eobAmountUsd" placeholder="请输入金额" allow-clear :disabled="!isEdit"/> <a-input type="number" v-model="form.eobAmountUsd" placeholder="请输入金额" allow-clear :disabled="!isEdit"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="EOB状态"> <a-form-model-item label="EOB状态">
<a-select v-model="form.eobSts" placeholder="请选择" allow-clear :disabled="!isEdit"> <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-option v-for="(item,i) in EOBStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="备注"> <a-form-model-item label="备注">
<a-input v-model="form.eobRemark" placeholder="请输入备注" allow-clear :disabled="!isEdit"/> <a-input v-model="form.eobRemark" placeholder="请输入备注" allow-clear :disabled="!isEdit"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12" v-if="isEdit"> <a-col :lg="6" :sm="12" v-if="isEdit">
<a-form-model-item label="EOB文件"> <a-form-model-item label="EOB文件">
<a-upload name="file" :multiple="false" :showUploadList="true" <a-upload name="file" :multiple="false" :showUploadList="true"
:fileList="form.eobFile" :fileList="form.eobFile"
:customRequest="uploadEvt" :customRequest="uploadEvt"
:remove="removeFile"> :remove="removeFile">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传EOB文件 </a-button> <a-button type="primary"> <Icon name="ssiupload" :size="18" />上传EOB文件 </a-button>
</a-upload> </a-upload>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="就诊日期起止"> <a-form-model-item label="就诊日期起止">
<a-range-picker format="YYYY-MM-DD" v-model="form.visitTimeStart" :placeholder="['开始时间','结束时间']"/> <a-range-picker format="YYYY-MM-DD" v-model="form.visitTimeStart" :placeholder="['开始时间','结束时间']"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="病历号"> <a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear :disabled="!isEdit"/> <a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear :disabled="!isEdit"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="客户名称"> <a-form-model-item label="客户名称">
<a-input v-model="form.patientName" placeholder="请输入客户名称" allow-clear :disabled="!isEdit"/> <a-input v-model="form.patientName" placeholder="请输入客户名称" allow-clear :disabled="!isEdit"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="24" :sm="24" class="none-label" v-if="isEdit"> <a-col :lg="24" :sm="24" class="none-label" v-if="isEdit">
<a-form-model-item label="button"> <a-form-model-item label="button">
<a-button class="mar-left10" type="primary" @click="addNewEvt"> <a-button class="mar-left10" type="primary" @click="addNewEvt">
<Icon :name="eobNo?'ssibaocun':'ssiadd'" :size="14" />{{eobNo?'保存EOB':'新建EOB'}} <Icon :name="eobNo?'ssibaocun':'ssiadd'" :size="14" />{{eobNo?'保存EOB':'新建EOB'}}
</a-button> </a-button>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>
<a-form-model ref="form" layout="vertical" :model="searchForm"> <a-form-model ref="form" layout="vertical" :model="searchForm">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="8" :sm="12"> <a-col :lg="8" :sm="12">
<a-form-model-item label="就诊日期"> <a-form-model-item label="就诊日期">
<a-range-picker format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="searchForm.visitTimeStart" :placeholder="['选择就诊开始日期', '选择就诊结束日期']" /> <a-range-picker format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="searchForm.visitTimeStart" :placeholder="['选择就诊开始日期', '选择就诊结束日期']" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="8" :sm="12"> <a-col :lg="8" :sm="12">
<a-form-model-item label="病历号"> <a-form-model-item label="病历号">
<a-input v-model="searchForm.mrnNo" placeholder="请输入病历号" allow-clear /> <a-input v-model="searchForm.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="8" :sm="12"> <a-col :lg="8" :sm="12">
<a-form-model-item label="客户名称"> <a-form-model-item label="客户名称">
<a-input v-model="searchForm.patientName" placeholder="请输入客户名称" allow-clear /> <a-input v-model="searchForm.patientName" placeholder="请输入客户名称" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<div class="btn-div mar-bottom10 none-label"> <div class="btn-div mar-bottom10 none-label">
<a-button type="primary" @click="handlerSearch"> <a-button type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询 <Icon name="ssisearch_active" :size="14" />查询
</a-button> </a-button>
<a-button class="mar-left10" type="primary" @click="exportEvt"> <a-button class="mar-left10" type="primary" @click="exportEvt">
<Icon name="ssidaochu" :size="14" />导出 <Icon name="ssidaochu" :size="14" />导出
</a-button> </a-button>
<a-button class="mar-left10" type="primary" @click="addNewBill" v-if="isEdit"> <a-button class="mar-left10" type="primary" @click="addNewBill" v-if="isEdit">
<Icon :name="isEditNewEob?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewEob? '保存账单': '添加账单'}} <Icon :name="isEditNewEob?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewEob? '保存账单': '添加账单'}}
</a-button> </a-button>
</div> </div>
</a-form-model> </a-form-model>
<!-- table --> <!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" <a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false"
:row-selection="isEditNewEob?{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }:null"> :row-selection="isEditNewEob?{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }:null">
<template slot="claimsStatus" slot-scope="text"> <template slot="claimsStatus" slot-scope="text">
<span>{{text | formatClaimsStatus}}</span> <span>{{text | formatClaimsStatus}}</span>
</template> </template>
<template slot="operation" slot-scope="text, record"> <template slot="operation" slot-scope="text, record">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button> <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> --> <!-- <a-button v-if="record.eobNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> -->
</template> </template>
</a-table> </a-table>
<BurtPagination :pagination="pagination" @pageChange="pageChange" /> <BurtPagination :pagination="pagination" @pageChange="pageChange" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false" <a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消" okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false"> @ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules"> <a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="12" :sm="24"> <a-col :lg="12" :sm="24">
<a-form-model-item label="理赔状态" prop="claimsStatus"> <a-form-model-item label="理赔状态" prop="claimsStatus">
<a-select v-model="editFormObj.claimsStatus" placeholder="请选择理赔状态" allow-clear> <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-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="账单回款金额" prop="paidAmountEob"> <a-form-model-item label="账单回款金额" prop="paidAmountEob">
<a-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" @change="changePaidAmount" /> <a-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" @change="changePaidAmount" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="未赔付金额" prop="refuseAmountEob"> <a-form-model-item label="未赔付金额" prop="refuseAmountEob">
<a-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" /> <a-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<!-- eccs-1944 --> <!-- eccs-1944 -->
<!-- <a-col :lg="12" :xs="24"> <!-- <a-col :lg="12" :xs="24">
<a-form-model-item label="寄送备注" prop="sendRemark"> <a-form-model-item label="寄送备注" prop="sendRemark">
<a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" /> <a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" />
</a-form-model-item> </a-form-model-item>
</a-col> --> </a-col> -->
</a-row> </a-row>
</a-form-model> </a-form-model>
</a-modal> </a-modal>
</div> </div>
</template> </template>
<script> <script>
import Goback from "@/components/CUSTOMER/goback"; import Goback from "@/components/CUSTOMER/goback";
import BurtPagination from "@/components/CUSTOMER/pagation"; import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment"; import moment from "moment";
import {ClaimsStatusOptions,EOBStatusOptions} from '@/utils/utilsdictOptions.js' import {ClaimsStatusOptions,EOBStatusOptions} from '@/utils/utilsdictOptions.js'
import mixins from "@/mixins"; import mixins from "@/mixins";
export default { export default {
data() { data() {
return { return {
dialogShow: false, dialogShow: false,
isEdit: false, isEdit: false,
ClaimsStatusOptions, ClaimsStatusOptions,
EOBStatusOptions, EOBStatusOptions,
eobNo: '', //eob编号 eobNo: '', //eob编号
form: { form: {
eobDate: '', eobDate: '',
payorCode: '', payorCode: '',
eobName: '', eobName: '',
eobAmountCny: '', eobAmountCny: '',
eobAmountUsd: '', eobAmountUsd: '',
eobSts: '', eobSts: '',
eobRemark: '', eobRemark: '',
eobFile: [] eobFile: []
}, },
dataList: [], dataList: [],
isEditNewEob: false, //是否在新建EOB isEditNewEob: false, //是否在新建EOB
companyOptions: [], //保险公司 companyOptions: [], //保险公司
pagination: { pagination: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
}, },
selectedRowKeys: [], // Check here to configure the default column selectedRowKeys: [], // Check here to configure the default column
editFormObj: { editFormObj: {
receiptNo: '', receiptNo: '',
claimsStatus: '', claimsStatus: '',
paidAmountEob: '', paidAmountEob: '',
refuseAmountEob: '' refuseAmountEob: ''
}, },
editRules: { editRules: {
}, },
searchForm:{} searchForm:{}
}; };
}, },
mixins: [mixins], mixins: [mixins],
components: { components: {
Goback, Goback,
BurtPagination, BurtPagination,
}, },
computed: { computed: {
columns() { columns() {
const base = [ const base = [
{ title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 100 }, { title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 100 },
{ title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 }, { title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 }, { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 },
{ title: "就诊日期", dataIndex: "receiptDate", ellipsis: true, width: 110}, { title: "就诊日期", dataIndex: "receiptDate", ellipsis: true, width: 110},
{ title: "理赔状态", dataIndex: "claimsStatus", ellipsis: true, width: 90, scopedSlots: { customRender: "claimsStatus" } }, { title: "理赔状态", dataIndex: "claimsStatus", ellipsis: true, width: 90, scopedSlots: { customRender: "claimsStatus" } },
{ title: "账单金额", dataIndex: "chargeAmount", ellipsis: true, width: 85 }, { title: "账单金额", dataIndex: "chargeAmount", ellipsis: true, width: 85 },
{ title: "折后金额", dataIndex: "actualAmount", ellipsis: true, width: 85 }, { title: "折后金额", dataIndex: "actualAmount", ellipsis: true, width: 85 },
{ title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 }, { title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 },
{ title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 }, { title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 },
{ title: "回款金额", dataIndex: "paidAmountEob", ellipsis: true, width: 85 }, { title: "回款金额", dataIndex: "paidAmountEob", ellipsis: true, width: 85 },
{ title: "未清金额", dataIndex: "refuseAmountEob", ellipsis: true, width: 85 }, { title: "未清金额", dataIndex: "refuseAmountEob", ellipsis: true, width: 85 },
{ title: "保险公司欠费", dataIndex: "payorNoPaidAmount", ellipsis: true, width: 110, }, { title: "保险公司欠费", dataIndex: "payorNoPaidAmount", ellipsis: true, width: 110, },
{ title: "个人欠费", dataIndex: "perNoPaidAmount", ellipsis: true, width: 85 }, { title: "个人欠费", dataIndex: "perNoPaidAmount", ellipsis: true, width: 85 },
{ title: "备注", dataIndex: "sendRemark", ellipsis: true, width: 120 }, { title: "备注", dataIndex: "sendRemark", ellipsis: true, width: 120 },
]; ];
if(this.eobNo && !this.isEditNewEob && this.isEdit){ // 编辑状态下已经保存的数据才可进行操作 if(this.eobNo && !this.isEditNewEob && this.isEdit){ // 编辑状态下已经保存的数据才可进行操作
return base.concat([ return base.concat([
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "170px", align: "center"}, { title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "170px", align: "center"},
]) ])
} }
return base return base
} }
}, },
created(){ created(){
const { eobNo, isEdit } = this.$route.query const { eobNo, isEdit } = this.$route.query
this.eobNo = eobNo; this.eobNo = eobNo;
this.isEdit = !!isEdit; this.isEdit = !!isEdit;
this._getCompanyOptions(); this._getCompanyOptions();
if(this.eobNo){ if(this.eobNo){
let EobDataDetail = localStorage.getItem('EobDataDetail'); let EobDataDetail = localStorage.getItem('EobDataDetail');
let dataDetail = EobDataDetail? JSON.parse(EobDataDetail): {}; let dataDetail = EobDataDetail? JSON.parse(EobDataDetail): {};
if(dataDetail.eobFile){ if(dataDetail.eobFile){
dataDetail.eobFile = [ dataDetail.eobFile = [
{ {
uid: Math.random()*10000, uid: Math.random()*10000,
name: dataDetail.eobFile.slice(dataDetail.eobFile.lastIndexOf('/')+1), name: dataDetail.eobFile.slice(dataDetail.eobFile.lastIndexOf('/')+1),
status: 'done', status: 'done',
url: dataDetail.eobFile, url: dataDetail.eobFile,
} }
] ]
}else{ }else{
dataDetail.eobFile = []; dataDetail.eobFile = [];
} }
this.form = dataDetail; this.form = dataDetail;
this.getData(); this.getData();
} }
}, },
methods: { methods: {
moment, moment,
onSelectChange(selectedRowKeys) { onSelectChange(selectedRowKeys) {
let arr = []; let arr = [];
for(let i=0; i<selectedRowKeys.length; i++){ for(let i=0; i<selectedRowKeys.length; i++){
let idx = selectedRowKeys[i]; let idx = selectedRowKeys[i];
if(this.dataList[idx].eobNo){ if(this.dataList[idx].eobNo){
this.$msg.destroy(); this.$msg.destroy();
this.$message.warning('EOB编号已存在') this.$message.warning('EOB编号已存在')
}else{ }else{
arr.push(idx); arr.push(idx);
} }
} }
this.selectedRowKeys = arr; this.selectedRowKeys = arr;
}, },
handlerSearch() { handlerSearch() {
this.pagination.pageNum = 1; this.pagination.pageNum = 1;
let visitTimeStart = this.searchForm.visitTimeStart || [] let visitTimeStart = this.searchForm.visitTimeStart || []
this.searchData = this.$lodash.cloneDeep({ this.searchData = this.$lodash.cloneDeep({
...this.searchForm, ...this.searchForm,
visitTimeEnd: visitTimeStart[1] ? visitTimeStart[1] + ' 23:59:59' : undefined, visitTimeEnd: visitTimeStart[1] ? visitTimeStart[1] + ' 23:59:59' : undefined,
visitTimeStart: visitTimeStart[0] ? visitTimeStart[0] + ' 00:00:00' : undefined, visitTimeStart: visitTimeStart[0] ? visitTimeStart[0] + ' 00:00:00' : undefined,
}); });
if(this.isEditNewEob) { // 点击添加EOB之后 分页数据查询就应该调EOB数据 if(this.isEditNewEob) { // 点击添加EOB之后 分页数据查询就应该调EOB数据
this._getNewEOBList() this._getNewEOBList()
return true; return true;
} }
this.getData(); this.getData();
}, },
//回款金额改变 //回款金额改变
moneyChange(){ moneyChange(){
this.editFormObj.refuseAmountEob = this.form.eobPaidAmount||0 - this.editFormObj.paidAmountEob||0; this.editFormObj.refuseAmountEob = this.form.eobPaidAmount||0 - this.editFormObj.paidAmountEob||0;
}, },
// 获取保险公司下拉选项 // 获取保险公司下拉选项
_getCompanyOptions() { _getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => { this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || []; this.companyOptions = res.content || [];
}); });
}, },
// 分页 // 分页
pageChange(pager) { pageChange(pager) {
this.pagination = { this.pagination = {
...this.pagination, ...this.pagination,
...pager ...pager
} }
if(this.isEditNewEob) { // 点击添加EOB之后 分页数据查询就应该调EOB数据 if(this.isEditNewEob) { // 点击添加EOB之后 分页数据查询就应该调EOB数据
this._getNewEOBList() this._getNewEOBList()
return true; return true;
} }
this.getData(); this.getData();
}, },
getData() { getData() {
this.$apis.QUERYEOBRECEIPTLIST({ this.$apis.QUERYEOBRECEIPTLIST({
pageNum: this.pagination.pageNum, pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize, pageSize: this.pagination.pageSize,
eobNo: this.eobNo, eobNo: this.eobNo,
...this.searchData ...this.searchData
}) })
.then((res) => { .then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
let content = res.content || {}; let content = res.content || {};
this.pagination.total = content.total || 0; this.pagination.total = content.total || 0;
this.dataList = content.list || []; this.dataList = content.list || [];
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
//修改单条数据 //修改单条数据
editEvt(record) { editEvt(record) {
this.dialogShow = true; this.dialogShow = true;
this.$nextTick(()=>{ this.$nextTick(()=>{
this.editFormObj = { this.editFormObj = {
actualAmount: record.actualAmount, // 该条记录的折后金额 actualAmount: record.actualAmount, // 该条记录的折后金额
id: record.id, id: record.id,
receiptNo: record.receiptNo, receiptNo: record.receiptNo,
refuseAmountEob: record.refuseAmountEob || '', refuseAmountEob: record.refuseAmountEob || '',
claimsStatus: record.claimsStatus || "01", claimsStatus: record.claimsStatus || "01",
paidAmountEob: record.paidAmountEob || record.actualAmount || "", paidAmountEob: record.paidAmountEob || record.actualAmount || "",
}; };
}) })
}, },
// 账单汇款金额输入改变 未赔付金额=账单金额-账单回款金额 // 账单汇款金额输入改变 未赔付金额=账单金额-账单回款金额
changePaidAmount() { changePaidAmount() {
this.editFormObj.refuseAmountEob = (this.editFormObj.actualAmount || 0) - (this.editFormObj.paidAmountEob || 0) this.editFormObj.refuseAmountEob = (this.editFormObj.actualAmount || 0) - (this.editFormObj.paidAmountEob || 0)
}, },
//编辑保存 //编辑保存
handleEditOK() { handleEditOK() {
this.$refs.editForm.validate((valid) => { this.$refs.editForm.validate((valid) => {
if (valid) { if (valid) {
this.$apis.SAVEEOBRECEIPTINFO({ this.$apis.SAVEEOBRECEIPTINFO({
...this.form, ...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '', eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: [this.editFormObj], eobReceiptList: [this.editFormObj],
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'' eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):''
}) })
.then((res) => { .then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
this.$message.success("编辑成功"); this.$message.success("编辑成功");
this.dialogShow = false; this.dialogShow = false;
this.getData(); this.getData();
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
} }
}); });
}, },
//删除记录 //删除记录
delRecord(index) { delRecord(index) {
this.$modal.confirm({ this.$modal.confirm({
title: "删除", title: "删除",
content: "确定删除该条记录?", content: "确定删除该条记录?",
okText: "确认", okText: "确认",
cancelText: "取消", cancelText: "取消",
onOk: () => { onOk: () => {
this.$apis.DELEOBRECEIPTINFO({ this.$apis.DELEOBRECEIPTINFO({
eobNo: this.dataList[index].eobNo, eobNo: this.dataList[index].eobNo,
}) })
.then((res) => { .then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.dataList.splice(index, 1); this.dataList.splice(index, 1);
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
onCancel: () => {}, onCancel: () => {},
}); });
}, },
//导出 //导出
exportEvt(){ exportEvt(){
this.$apis.EOBRECEIPLISTEXPORT({ this.$apis.EOBRECEIPLISTEXPORT({
eobNo: this.eobNo eobNo: this.eobNo
}) })
.then(res => { .then(res => {
let blob = new Blob([res.data], { let blob = new Blob([res.data], {
type:"application/vnd.ms-excel;charset=utf-8" type:"application/vnd.ms-excel;charset=utf-8"
}); });
let url=window.URL.createObjectURL(blob); let url=window.URL.createObjectURL(blob);
let aLink=document.createElement("a"); let aLink=document.createElement("a");
aLink.style.display="none"; aLink.style.display="none";
aLink.href=url; aLink.href=url;
aLink.setAttribute("download","EOB关联账单.xls"); aLink.setAttribute("download","EOB关联账单.xls");
document.body.appendChild(aLink); document.body.appendChild(aLink);
aLink.click(); aLink.click();
document.body.removeChild(aLink); document.body.removeChild(aLink);
window.URL.revokeObjectURL(url); window.URL.revokeObjectURL(url);
}) })
}, },
//添加账单 //添加账单
addNewBill(){ addNewBill(){
if(this.isEditNewEob){ //保存 if(this.isEditNewEob){ //保存
this.addNewEvt() this.addNewEvt()
.then(()=>{ .then(()=>{
this.isEditNewEob = false; this.isEditNewEob = false;
}) })
}else{ //查询所有未加入的账单 }else{ //查询所有未加入的账单
this.pagination.pageNum = 1; this.pagination.pageNum = 1;
this.isEditNewEob = true; this.isEditNewEob = true;
this._getNewEOBList(); this._getNewEOBList();
} }
}, },
_getNewEOBList() { _getNewEOBList() {
this.$apis.QUERYEOBNEEDRECEIPTLIST({ this.$apis.QUERYEOBNEEDRECEIPTLIST({
payorCode: this.form.payorCode, payorCode: this.form.payorCode,
pageNum: this.pagination.pageNum, pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize, pageSize: this.pagination.pageSize,
...this.searchData ...this.searchData
}) })
.then((res) => { .then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
this.selectedRowKeys = []; this.selectedRowKeys = [];
let content = res.content || {}; let content = res.content || {};
this.pagination.total = content.total || 0; this.pagination.total = content.total || 0;
this.dataList = content.list || []; this.dataList = content.list || [];
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
//新建/保存EOB //新建/保存EOB
addNewEvt(){ addNewEvt(){
let visitTimeStart = this.form.visitTimeStart || [] let visitTimeStart = this.form.visitTimeStart || []
let eobReceiptList = []; let eobReceiptList = [];
this.dataList.forEach((item,index)=>{ this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){ if(this.selectedRowKeys.indexOf(index)!=-1){
eobReceiptList.push({ eobReceiptList.push({
id: item.id, id: item.id,
receiptNo: item.receiptNo, receiptNo: item.receiptNo,
refuseAmountEob: item.refuseAmountEob, refuseAmountEob: item.refuseAmountEob,
paidSts: item.paidSts, paidSts: item.paidSts,
paidAmountEob: item.paidAmountEob, paidAmountEob: item.paidAmountEob,
}) })
} }
}) })
let formData = { let formData = {
...this.form, ...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '', eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: eobReceiptList, eobReceiptList: eobReceiptList,
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'', eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'',
eobNo: this.eobNo, eobNo: this.eobNo,
visitTimeEnd: visitTimeStart[1] ? moment(visitTimeStart[1]).format('YYYY-MM-DD') + ' 23:59:59' : undefined, 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, visitTimeStart: visitTimeStart[0] ? moment(visitTimeStart[0]).format('YYYY-MM-DD') + ' 00:00:00' : undefined,
} }
return new Promise((resolve,reject)=>{ return new Promise((resolve,reject)=>{
this.$apis.SAVEEOBRECEIPTINFO(formData) this.$apis.SAVEEOBRECEIPTINFO(formData)
.then((res) => { .then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
this.eobNo = res.content; this.eobNo = res.content;
this.$message.success("成功"); this.$message.success("成功");
this.selectedRowKeys = []; this.selectedRowKeys = [];
this.getData(); this.getData();
resolve(); resolve();
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
reject(); reject();
} }
}); });
}) })
}, },
removeFile(){ removeFile(){
return new Promise((resolve)=>{ return new Promise((resolve)=>{
this.form.eobFile = []; this.form.eobFile = [];
resolve(); resolve();
}); });
}, },
//上传 //上传
uploadEvt(fileData){ uploadEvt(fileData){
let formData = new FormData(); let formData = new FormData();
formData.append("file", fileData.file); formData.append("file", fileData.file);
this.$apis.UPLOADIMG(formData) this.$apis.UPLOADIMG(formData)
.then((res)=>{ .then((res)=>{
fileData.onSuccess(); fileData.onSuccess();
let fileList = [ let fileList = [
{ {
uid: Math.random()*10000, uid: Math.random()*10000,
name: res.title, name: res.title,
status: 'done', status: 'done',
url: res.url, url: res.url,
} }
] ]
this.form.eobFile = fileList; this.form.eobFile = fileList;
}) })
} }
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.none-label { .none-label {
text-align: right; text-align: right;
.ant-form-item-label { .ant-form-item-label {
opacity: 0; opacity: 0;
} }
} }
.btn-div{ .btn-div{
} }
.ant-btn .icon-class { .ant-btn .icon-class {
.mg-r(10); .mg-r(10);
} }
.success.ant-btn-link { .success.ant-btn-link {
color: #4cd964; color: #4cd964;
} }
.danger.ant-btn-link { .danger.ant-btn-link {
color: #ff3b30; color: #ff3b30;
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment