Commit 0f66ee66 authored by suqh's avatar suqh

Merge branch 'func-eccs-2152' into test

parents d77d3f44 b6ab0bac
// 核销管理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", //回销关联账单列表查询 queryBackReceiptList: "/backstage/auth/queryBackReceiptList", //回销关联账单列表查询
queryReceiptInfoList: "/backstage/auth/queryReceiptInfoList", //回销账单列表查询 queryReceiptInfoList: "/backstage/auth/queryReceiptInfoList", //回销账单列表查询
deleteReceiptRecord: "/backstage/auth/deleteBackReceipt", // 删除已关联账单
}; exportBackMoneyReport: "/backstage/auth/backMoneyListExport", // 回款列表导出
exportBackReceiptList: "/backstage/auth/exportBackReceiptList", // 关联账单列表导出
};
// 核销管理函数库 // 核销管理函数库
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" });
}; };
//回销关联账单列表查询 //回销关联账单列表查询
const QUERYBACKRECEIPTLIST = (data) => { const QUERYBACKRECEIPTLIST = (data) => {
return req.post(apis.queryBackReceiptList, data); return req.post(apis.queryBackReceiptList, data);
}; };
//回销账单列表查询 //回销账单列表查询
const QUERYBACKRECEIPTINFOLIST = (data) => { const QUERYBACKRECEIPTINFOLIST = (data) => {
return req.post(apis.queryReceiptInfoList, data); return req.post(apis.queryReceiptInfoList, data);
}; };
// 对象数组 // 删除已关联账单
export default { const DELETERECEIPTRECORD = (data) => {
QUERYEOBLIST, return req.post(apis.deleteReceiptRecord, data);
QUERYEOBRECEIPTLIST, };
QUERYEOBNEEDRECEIPTLIST,
SAVEEOBRECEIPTINFO, // 回款列表导出
DELEOBRECEIPTINFO, const EXPORTBACKMONEYREPORT = (data) => {
QUERYBACKMONEYLIST, return req.post(apis.exportBackMoneyReport, data, { responseType: "blob" });
QUERYBACKEOBLIST, };
QUERYEOBINFOLIST,
SAVEBACKMONEY, // 关联账单导出
DELETEBACKMONEY, const EXPORTBACKRECEIPTLIST = (data) => {
EOBRECEIPLISTEXPORT, return req.post(apis.exportBackReceiptList, data, { responseType: "blob" });
QUERYBACKRECEIPTLIST, };
QUERYBACKRECEIPTINFOLIST
// 对象数组
export default {
QUERYEOBLIST,
QUERYEOBRECEIPTLIST,
QUERYEOBNEEDRECEIPTLIST,
SAVEEOBRECEIPTINFO,
DELEOBRECEIPTINFO,
QUERYBACKMONEYLIST,
QUERYBACKEOBLIST,
QUERYEOBINFOLIST,
SAVEBACKMONEY,
DELETEBACKMONEY,
EOBRECEIPLISTEXPORT,
QUERYBACKRECEIPTLIST,
QUERYBACKRECEIPTINFOLIST,
DELETERECEIPTRECORD,
EXPORTBACKMONEYREPORT,
EXPORTBACKRECEIPTLIST
}; };
\ No newline at end of file
//性别 //性别
const sexOptions = [{ const sexOptions = [{
name: '', name: '',
value: 'M' value: 'M'
}, { }, {
name: '', name: '',
value: 'F' value: 'F'
}]; }];
//寄送状态 //寄送状态
const SendStatusOptions = [ const SendStatusOptions = [
{ name: '未寄送', value: '1'}, { name: '未寄送', value: '1'},
{ name: '寄送', value: '2'}, { name: '寄送', value: '2'},
{ name: '待寄送', value: '3'}, { name: '待寄送', value: '3'},
]; ];
//理赔状态 //理赔状态
const ClaimsStatusOptions = [ const ClaimsStatusOptions = [
{ name: '赔付', value: '01'}, { name: '赔付', value: '01'},
{ name: '部分赔付', value: '02'}, { name: '部分赔付', value: '02'},
{ name: '拒赔', value: '03'}, { name: '拒赔', value: '03'},
{ name: '补充材料', value: '04'}, { name: '补充材料', value: '04'},
]; ];
//EOB状态 //EOB状态
const EOBStatusOptions = [ const EOBStatusOptions = [
{ name: '待回款', value: '1'}, { name: '待回款', value: '1'},
{ name: '已回款', value: '2'}, { name: '已回款', value: '2'},
{ name: '未回款', value: '3'} { name: '未回款', value: '3'}
]; ];
//申请状态 //申请状态
const ApplyStatusOptions = [ const ApplyStatusOptions = [
{ name: '申请中', value: '01'}, { name: '申请中', value: '01'},
{ name: '预授权批准', value: '02'}, { name: '预授权批准', value: '02'},
{ name: '预授权拒绝', value: '03'}, { name: '预授权拒绝', value: '03'},
{ name: '预授权调查', value: '04'}, { name: '预授权调查', value: '04'},
]; ];
//审批结果 //审批结果
const ApproveStatusOptions = [ const ApproveStatusOptions = [
{ name: '未通过', value: '1'}, { name: '未通过', value: '1'},
{ name: '已通过', value: '2'} { name: '已通过', value: '2'}
]; ];
//monetUnit //monetUnit
const MoneyUnitOptions = [ const MoneyUnitOptions = [
{ name: '', value: '01'}, { name: '', value: '01'},
{ name: '美元', value: '02'}, { name: '美元', value: '02'},
{ name: '英镑', value: '03'}, { name: '英镑', value: '03'},
{ name: '欧元', value: '04'}, { name: '欧元', value: '04'},
]; ];
// 账单类型
const receiptTypeOptions = [
module.exports = { { name: '收费', value: '1'},
sexOptions, { name: '退费', value: '2'},
SendStatusOptions, ];
ClaimsStatusOptions,
EOBStatusOptions,
ApplyStatusOptions, module.exports = {
ApproveStatusOptions, sexOptions,
MoneyUnitOptions, SendStatusOptions,
ClaimsStatusOptions,
EOBStatusOptions,
ApplyStatusOptions,
ApproveStatusOptions,
MoneyUnitOptions,
receiptTypeOptions
} }
\ No newline at end of file
<template> <template>
<!-- -账单明细 --> <!-- -账单明细 -->
<div class="white_bg burt-container custom-info"> <div class="white_bg burt-container custom-info">
<Goback title="账单详情" /> <Goback title="账单详情" />
<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 :xl="4" :lg="6" :sm="12"> <a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="病历号"> <a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear /> <a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :sm="12"> <a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="客户姓名"> <a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear /> <a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :sm="12"> <a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="客户类型"> <a-form-model-item label="保险公司">
<a-select v-model="form.patientType" placeholder="请选择客户类型" allowClear> <a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in patientTypeOptions" :key="item.code" :value="item.code"> <a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.name }} {{ 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 :xl="4" :lg="6" :sm="12"> <a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="保险公司"> <a-form-model-item label="看诊医生">
<a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear> <a-input v-model="form.doctorName" placeholder="请输入看诊医生" allow-clear />
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id"> </a-form-model-item>
{{ item.longName }} </a-col>
</a-select-option> <a-col :xl="5" :lg="6" :sm="12">
</a-select> <a-form-model-item label="收费时间">
</a-form-model-item> <a-date-picker value-format="YYYY-MM-DD 00:00:00" v-model="form.receiptDate" placeholder="就诊时间" />
</a-col> </a-form-model-item>
<a-col :xl="4" :lg="6" :sm="12"> </a-col>
<a-form-model-item label="看诊医生"> <a-col :xl="16" :lg="12" :sm="12" class="none-label">
<a-select v-model="form.doctorCode" placeholder="请选择看诊医生" allowClear> <a-form-model-item label="button">
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode"> <!-- <a-button>更新数据</a-button>
{{ item.doctorDesc }} <a-button class="mar-left10" type="primary" @click="addNewCharge">
</a-select-option> <Icon name="ssiadd" :size="14" />新建预授权</a-button> -->
</a-select> <a-button class="mar-left10" type="primary" @click="handlerReset">
</a-form-model-item> <Icon name="ssireset" :size="14" />重置
</a-col> </a-button>
<a-col :xl="5" :lg="6" :sm="12"> <a-button class="mar-left10" type="primary" @click="handlerSearch">
<a-form-model-item label="就诊时间"> <Icon name="ssisearch_active" :size="14" />查询
<a-date-picker value-format="YYYY-MM-DD 00:00:00" v-model="form.receiptDate" placeholder="就诊时间" /> </a-button>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="3" :lg="6" :sm="12"> </a-row>
<a-form-model-item label="支付方式"> </a-form-model>
<a-select v-model="form.paymentCode" placeholder="请选择支付方式" allowClear>
<a-select-option v-for="item in paymentOptions" :key="item.code" :value="item.code" allow-clear> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
{{ item.name }} <template slot="operation" slot-scope="record">
</a-select-option> <a-button type="link" @click.stop="editEvt(record)">修改</a-button>
</a-select> <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
</a-form-model-item> <a-button type="link" class="danger">删除</a-button>
</a-col> </a-popconfirm>
<a-col :xl="16" :lg="12" :sm="12" class="none-label"> </template>
<a-form-model-item label="button"> <template slot="footer">
<!-- <a-button>更新数据</a-button> <div class="total">总计: <span>{{sumAmount||0}}</span></div>
<a-button class="mar-left10" type="primary" @click="addNewCharge"> </template>
<Icon name="ssiadd" :size="14" />新建预授权</a-button> --> </a-table>
<a-button class="mar-left10" type="primary" @click="handlerReset"> <!--分页-->
<Icon name="ssireset" :size="14" />重置 <BurtPagination :pagination="pagination" @pageChange="_getChargeListDetail" />
</a-button>
<a-button class="mar-left10" type="primary" @click="handlerSearch"> <div class="title-div">费用支付明细</div>
<Icon name="ssisearch_active" :size="14" />查询 <a-table :columns="payColumns" :data-source="payDataList" :scroll="{ x: true }" :pagination="false" class="payTable">
</a-button> <template slot="paymentType" slot-scope="text">
</a-form-model-item> <a-button class="danger">{{ text | payStyleFilters }}</a-button>
</a-col> </template>
</a-row> </a-table>
</a-form-model> <a-row :gutter="30">
<a-col :sm="24">
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false"> <div class="btn-div flex">
<template slot="operation" slot-scope="record"> <a-button type="primary" @click="receiptEvt">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button> <Icon name="ssibaocun" :size="14" />结算</a-button>
<a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" > <a-button type="primary" class="mar-left10" @click="printEvt">
<a-button type="link" class="danger">删除</a-button> <Icon name="ssidayinji_o" :size="14" />打印</a-button>
</a-popconfirm> </div>
</template> </a-col>
<template slot="footer"> </a-row>
<div class="total">总计: <span>{{form.chargeAmount||0}}</span></div>
</template> <a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
</a-table> okText="确定" cancelText="取消"
<!--分页--> @ok="handleEditOK" @cancel="dialogShow = false">
<BurtPagination :pagination="pagination" @pageChange="_getChargeListDetail" /> <a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<div class="title-div">费用支付明细</div> <a-col :lg="12" :xs="24">
<a-table :columns="payColumns" :data-source="payDataList" :scroll="{ x: true }" :pagination="false" class="payTable">
<template slot="paymentType" slot-scope="text"> </a-col>
<a-button class="danger">{{ text | payStyleFilters }}</a-button> </a-row>
</template> </a-form-model>
</a-table> </a-modal>
<a-row :gutter="30"> </div>
<a-col :sm="24"> </template>
<div class="btn-div flex">
<a-button type="primary" @click="receiptEvt"> <script>
<Icon name="ssibaocun" :size="14" />结算</a-button> import Goback from "@/components/CUSTOMER/goback";
<a-button type="primary" class="mar-left10" @click="printEvt"> import BurtPagination from "@/components/CUSTOMER/pagation";
<Icon name="ssidayinji_o" :size="14" />打印</a-button> import { mapState } from "vuex"
</div> export default {
</a-col> data() {
</a-row> const columns = [
{ title: "项目", dataIndex: "itemcatDesc", width: 180 },
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false" { title: "项目明细", dataIndex: "itemDesc", width: 180},
okText="确定" cancelText="取消" { title: "单价", dataIndex: "itemPrice", width: 120},
@ok="handleEditOK" @cancel="dialogShow = false"> { title: "数量", dataIndex: "itemQty", width: 180 },
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules"> { title: "单位", dataIndex: "itemUnitDesc", width: 180 },
<a-row :gutter="30"> { title: "金额", dataIndex: "chargeAmount", width: 180 },
<a-col :lg="12" :xs="24"> { title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
// { title: "折后金额", dataIndex: "actualAmount", width: 180 },
</a-col> { title: "减免金额", dataIndex: "reduceAmount", width: 180 },
</a-row> { title: "实际金额", dataIndex: "paidAmount", width: 180 },
</a-form-model> // { title: "免赔额", dataIndex: "deductible", width: 180 },
</a-modal> // { title: "自付额", dataIndex: "selfPaid", width: 180 },
</div> // { title: "其他费用", dataIndex: "otherPaid", width: 180 },
</template> // { title: "理赔金额", dataIndex: "actualPaid", width: 180 },
// { title: "操作", key: "operation", width: "175px", fixed: "right", scopedSlots: { customRender: "operation" },align: "center"},
<script> ];
import Goback from "@/components/CUSTOMER/goback"; const payColumns = [
import BurtPagination from "@/components/CUSTOMER/pagation"; { title: "免赔额", dataIndex: "deductible", width: 180 },
import { mapState } from "vuex" { title: "自付额", dataIndex: "selfPaid", width: 180 },
export default { { title: "其他费用", dataIndex: "otherPaid", width: 180 },
data() { { title: "个人支付", dataIndex: "personalPaid", width: 180 },
const columns = [ { title: "理赔金额", dataIndex: "ciPaid", width: 180 },
{ title: "项目", dataIndex: "itemcatDesc", width: 180 }, { title: "支付方式", dataIndex: "paymentType", width: 180, scopedSlots: { customRender: "paymentType" }},
{ title: "项目明细", dataIndex: "itemDesc", width: 180}, ];
{ title: "单价", dataIndex: "itemPrice", width: 120}, return {
{ title: "数量", dataIndex: "itemQty", width: 180 }, dialogShow: false,
{ title: "单位", dataIndex: "itemUnitDesc", width: 180 }, receiptNo: "",
{ title: "金额", dataIndex: "chargeAmount", width: 180 }, columns,
{ title: "折扣(%)", dataIndex: "discountAmount", width: 180 }, payColumns,
{ title: "折后金额", dataIndex: "actualAmount", width: 180 }, form: {},
{ title: "减免金额", dataIndex: "reduceAmount", width: 180 }, pageForm: {
{ title: "实际金额", dataIndex: "paidAmount", width: 180 }, doctorCode: "",
// { title: "免赔额", dataIndex: "deductible", width: 180 }, patientName: "",
// { title: "自付额", dataIndex: "selfPaid", width: 180 }, mrnNo: "",
// { title: "其他费用", dataIndex: "otherPaid", width: 180 }, paymentCode: "",
// { title: "理赔金额", dataIndex: "actualPaid", width: 180 }, payorId: 0,
// { title: "操作", key: "operation", width: "175px", fixed: "right", scopedSlots: { customRender: "operation" },align: "center"}, receiptDate: ""
]; },
const payColumns = [ patientTypeOptions: [
{ title: "免赔额", dataIndex: "deductible", width: 180 }, {
{ title: "自付额", dataIndex: "selfPaid", width: 180 }, name: "商保",
{ title: "其他费用", dataIndex: "otherPaid", width: 180 }, code: 1,
{ title: "个人支付", dataIndex: "personalPaid", width: 180 }, },
{ title: "理赔金额", dataIndex: "ciPaid", width: 180 }, ], //客户类型
{ title: "支付方式", dataIndex: "paymentType", width: 180, scopedSlots: { customRender: "paymentType" }}, companyOptions: [], //保险公司
]; doctorOptions: [], //就诊医生
return { paymentOptions: [
dialogShow: false, {
receiptNo: "", name: "商保",
columns, code: 1,
payColumns, },
form: {}, ], //支付方式
pageForm: { dataList: [],
doctorCode: "", pager: {
patientName: "", pageNum: 1,
mrnNo: "", pageSize: 10,
paymentCode: "", },
payorId: 0, payDataList: [],
receiptDate: "" pagination: {
}, pageNum: 1,
patientTypeOptions: [ pageSize: 10,
{ total: 0,
name: "商保", },
code: 1, editFormObj: {
}, id: "",
], //客户类型 mrnNo: '',
companyOptions: [], //保险公司 patientName: '',
doctorOptions: [], //就诊医生 },
paymentOptions: [ editRules: {
{ mrnNo: [{ required: true, message: "病历号", trigger: "blur" }],
name: "商保", patientName: [{ required: true, message: "客户姓名", trigger: "blur" }],
code: 1, },
}, };
], //支付方式 },
dataList: [], components: {
pager: { Goback,
pageNum: 1, BurtPagination,
pageSize: 10, },
}, computed: {
payDataList: [], ...mapState({
pagination: { userInfo: (state) => state.common.userInfo
pageNum: 1, }),
pageSize: 10, sumAmount() {
total: 0, let total = 0
}, this.dataList.forEach(item => {
editFormObj: { total += Number(item.paidAmount || 0)
id: "", })
mrnNo: '', return Number(total.toFixed(2))
patientName: '', }
}, },
editRules: { filters: {
mrnNo: [{ required: true, message: "病历号", trigger: "blur" }], payStyleFilters(value) {
patientName: [{ required: true, message: "客户姓名", trigger: "blur" }], const styleMap = {
}, 1: "支付宝",
}; 2: "微信",
}, 3: "现金",
components: { };
Goback, return styleMap[value];
BurtPagination, },
}, },
computed: { created() {
...mapState({ const { receiptNo } = this.$route.query;
userInfo: (state) => state.common.userInfo this.receiptNo = receiptNo || "";
}) let chargeQueryDetail = localStorage.getItem('chargeQueryDetail');
}, this.form = chargeQueryDetail? JSON.parse(chargeQueryDetail): {};
filters: { console.log(this.form)
payStyleFilters(value) {
const styleMap = { this._getChargeListDetail();
1: "支付宝", this._getCompanyOptions();//获取保险公司下拉选项
2: "微信", this._getDoctorListNoPage();//获取看诊医生下拉选项
3: "现金", this._getReceiptPaymentDetail(); //费用支付明细
}; },
return styleMap[value]; methods: {
}, // 获取列表数据
}, _getChargeListDetail() {
created() { const data = {
const { receiptNo } = this.$route.query; receiptNo: this.receiptNo,
this.receiptNo = receiptNo || ""; basereceiptId: this.form.externalId,
let chargeQueryDetail = localStorage.getItem('chargeQueryDetail'); ...this.pager,
this.form = chargeQueryDetail? JSON.parse(chargeQueryDetail): {}; };
this.$apis.GETCHARGELISTDETAIL(data).then((res) => {
this._getChargeListDetail(); console.log("11111111111获取table信息=", res);
this._getCompanyOptions();//获取保险公司下拉选项 if (res.returnCode == "0000") {
this._getDoctorListNoPage();//获取看诊医生下拉选项 this.dataList = (res.content && res.content.list) || [];
this._getReceiptPaymentDetail(); //费用支付明细 // this.pager.total = (res.content && res.content.total) || 0;
}, } else {
methods: { this.$message.error(res.returnMsg);
// 获取列表数据 }
_getChargeListDetail() { });
const data = { },
receiptNo: this.receiptNo, // 获取保险公司下拉选项
...this.pager, _getCompanyOptions() {
}; this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.$apis.GETCHARGELISTDETAIL(data).then((res) => { console.log("获取保险公司下拉选项", res);
console.log("11111111111获取table信息=", res); if (res.returnCode == "0000") {
if (res.returnCode == "0000") { let existPayor = false
this.dataList = (res.content && res.content.list) || []; this.companyOptions = res.content.map(item => {
// this.pager.total = (res.content && res.content.total) || 0; item.id = Number(item.id)
} else { if(item.id === this.form.payorId) {
this.$message.error(res.returnMsg); existPayor = true
} }
}); return item
}, }) || [];
// 获取保险公司下拉选项 if(!existPayor) {
_getCompanyOptions() { this.companyOptions.push({
this.$apis.GETCOMPANYOPTIONS().then((res) => { id: this.form.payorId,
console.log("获取保险公司下拉选项", res); longName: this.form.payorName
if (res.returnCode == "0000") { })
this.companyOptions = res.content || []; }
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
// 获取看诊医生下拉选项 // 获取看诊医生下拉选项
_getDoctorListNoPage(){ _getDoctorListNoPage(){
this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => { this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => {
if (res.returnCode === "0000") { if (res.returnCode === "0000") {
this.doctorOptions = res.content || []; this.doctorOptions = res.content || [];
}else{ }else{
this.$message.success(res.returnMsg); this.$message.success(res.returnMsg);
} }
}); });
}, },
// 获取费用支付明细 // 获取费用支付明细
_getReceiptPaymentDetail() { _getReceiptPaymentDetail() {
const params = { const params = {
receiptNo: this.receiptNo, receiptNo: this.receiptNo,
...this.payPager, ...this.payPager,
}; };
this.$apis.GETRECEIPTPAYMENTDETAIL(params).then((res) => { this.$apis.GETRECEIPTPAYMENTDETAIL(params).then((res) => {
console.log("获取费用支付明细", res); console.log("获取费用支付明细", res);
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
let content = res.content || {}; let content = res.content || {};
this.payDataList = content; this.payDataList = content;
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
//账单结算 //账单结算
receiptEvt(){ receiptEvt(){
this.$modal.confirm({ this.$modal.confirm({
title: "结算", title: "结算",
content: "确定结算该账单?", content: "确定结算该账单?",
okText: "确定", okText: "确定",
cancelText: "取消", cancelText: "取消",
onOk: () => { onOk: () => {
this.$apis.RECEIPTSETTLEMENT({ this.$apis.RECEIPTSETTLEMENT({
id: this.form.id id: this.form.id
}).then((res) => { }).then((res) => {
if (res.returnCode === "0000") { if (res.returnCode === "0000") {
this.$message.success('结算成功'); this.$message.success('结算成功');
this.pagination.pageNum = 1; this.pagination.pageNum = 1;
this._getChargeListDetail(); this._getChargeListDetail();
}else{ }else{
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
}); });
}, },
//打印 //打印
printEvt(){ printEvt(){
this.$apis.RECEIPTPRINT({ this.$apis.RECEIPTPRINT({
id: this.form.id id: this.form.id
}).then(res => { }).then(res => {
if(res.returnCode == '0000'){ if(res.returnCode == '0000'){
let url = res.content; let url = res.content;
let link = document.createElement('a'); let link = document.createElement('a');
link.setAttribute('href', url); link.setAttribute('href', url);
link.setAttribute('target', "_blank"); link.setAttribute('target', "_blank");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}else{ }else{
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}) })
}, },
// 重置 // 重置
handlerReset() { handlerReset() {
const { mrnNo, patientName } = this.form; const { mrnNo, patientName } = this.form;
this.form = {mrnNo, patientName}; this.form = {mrnNo, patientName};
}, },
editEvt(record) { editEvt(record) {
this.editFormObj = { this.editFormObj = {
id: record.id || "", id: record.id || "",
}; };
this.dialogShow = true; this.dialogShow = true;
}, },
//编辑保存 //编辑保存
handleEditOK() { handleEditOK() {
this.$refs.editForm.validate((valid) => { this.$refs.editForm.validate((valid) => {
if (valid) { if (valid) {
console.log(11) console.log(11)
} }
}); });
}, },
handlerSearch() { handlerSearch() {
this.pagination.pageNum = 1; this.pagination.pageNum = 1;
this.pageForm = this.$lodash.cloneDeep(this.form); this.pageForm = this.$lodash.cloneDeep(this.form);
this._getChargeListDetail(); this._getChargeListDetail();
}, },
deleteData() { deleteData() {
this.$message.success("删除成功"); this.$message.success("删除成功");
}, },
// 新建账单信息 // 新建账单信息
addNewCharge() { addNewCharge() {
// this.$router.push("/customer/edit"); // this.$router.push("/customer/edit");
}, },
}, },
}; };
</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;
} }
} }
.ant-btn .icon-class { .ant-btn .icon-class {
.mg-r(10); .mg-r(10);
} }
.title-div { .title-div {
line-height: 56px; line-height: 56px;
color: #252631; color: #252631;
font-weight: bold; font-weight: bold;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.payTable{ .payTable{
.ant-btn{ .ant-btn{
border-color: #1890ff; border-color: #1890ff;
color: #1890ff; color: #1890ff;
} }
} }
.btn-div{ .btn-div{
margin-top: 10px; margin-top: 10px;
justify-content: flex-end; justify-content: flex-end;
} }
.total{ .total{
font-weight: 600; font-weight: 600;
span{ span{
color: red; color: red;
} }
} }
</style> </style>
<template> <template>
<!-- 收费查询-账单查询 --> <!-- 收费查询-账单查询 -->
<div class="white_bg burt-container custom-info"> <div class="white_bg burt-container custom-info">
<!-- 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 :xl="4" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="病历号"> <a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear /> <a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="客户姓名"> <a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear /> <a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="客户类型"> <a-form-model-item label="保险公司">
<a-select v-model="form.patientType" placeholder="请选择客户类型" allowClear> <a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in patientTypeOptions" :key="item.code" :value="item.code"> <a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.name }} {{ 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 :xl="4" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险公司"> <a-form-model-item label="看诊医生">
<a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear> <a-select v-model="form.doctorCode" placeholder="请选择看诊医生" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id"> <a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode">
{{ item.longName }} {{ item.doctorDesc }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="看诊医生"> <a-form-model-item label="收费时间">
<a-select v-model="form.doctorCode" placeholder="请选择看诊医生" allowClear> <a-range-picker format="YYYY-MM-DD" v-model="form.dateRange" :placeholder="['开始时间','结束时间']" @change="onSelectVisitTime" />
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode"> </a-form-model-item>
{{ item.doctorDesc }} </a-col>
</a-select-option> <a-col :xl="6" :lg="6" :sm="12">
</a-select> <a-form-model-item label="是否已关联寄送单">
</a-form-model-item> <a-select v-model="form.isSend" placeholder="请选择是否已关联寄送单" allowClear>
</a-col> <a-select-option value="Y" allow-clear>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="就诊时间"> </a-select-option>
<a-range-picker format="YYYY-MM-DD" v-model="form.dateRange" :placeholder="['开始时间','结束时间']" @change="onSelectVisitTime" /> <a-select-option value="N" allow-clear>
</a-form-model-item>
</a-col> </a-select-option>
<a-col :xl="3" :lg="6" :sm="12"> </a-select>
<a-form-model-item label="支付方式"> </a-form-model-item>
<a-select v-model="form.paymentCode" placeholder="请选择支付方式" allowClear> </a-col>
<a-select-option v-for="item in paymentOptions" :key="item.code" :value="item.code" allow-clear> <a-col :xl="6" :lg="6" :sm="12">
{{ item.name }} <a-form-model-item label="是否已回款">
</a-select-option> <a-select v-model="form.isEobBack" placeholder="请选择是否已回款" allowClear>
</a-select> <a-select-option value="Y" allow-clear>
</a-form-model-item>
</a-col> </a-select-option>
<a-col :xl="3" :lg="6" :sm="12"> <a-select-option value="N" allow-clear>
<a-form-model-item label="是否已关联寄送单">
<a-select v-model="form.isSend" placeholder="请选择是否已关联寄送单" allowClear> </a-select-option>
<a-select-option value="Y" allow-clear> </a-select>
</a-form-model-item>
</a-select-option> </a-col>
<a-select-option value="N" allow-clear> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单类型">
</a-select-option> <a-select v-model="form.receiptType" placeholder="请选择账单类型" allowClear>
</a-select> <a-select-option v-for="item in receiptTypeOptions" :key="item.value" :value="item.value">
</a-form-model-item> {{ item.name }}
</a-col> </a-select-option>
<a-col :xl="3" :lg="6" :sm="12"> </a-select>
<a-form-model-item label="是否已关联EOB"> </a-form-model-item>
<a-select v-model="form.isEob" placeholder="请选择是否已关联EOB" allowClear> </a-col>
<a-select-option value="Y" allow-clear> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单编号">
</a-select-option> <a-input v-model="form.receiptNo" placeholder="请输入账单编号" allow-clear />
<a-select-option value="N" allow-clear> </a-form-model-item>
</a-col>
</a-select-option> <a-col :xl="6" :lg="6" :sm="12">
</a-select> <a-form-model-item label="状态">
</a-form-model-item> <a-select v-model="form.status" placeholder="请选择状态" allowClear>
</a-col> <a-select-option v-for="item in statusOptions" :key="item.code" :value="item.code">
<a-col :xl="3" :lg="6" :sm="12"> {{ item.name }}
<a-form-model-item label="是否已回款"> </a-select-option>
<a-select v-model="form.isEobBack" placeholder="请选择是否已回款" allowClear> </a-select>
<a-select-option value="Y" allow-clear> </a-form-model-item>
</a-col>
</a-select-option> <a-col :xl="8" :lg="3" :sm="3" class="none-label">
<a-select-option value="N" allow-clear> <a-form-model-item label="button">
<!-- <a-button>更新数据</a-button> -->
</a-select-option> <!-- <a-button class="mar-left10" type="primary" @click="addNewCharge">
</a-select> <Icon name="ssiadd" :size="14" />新建预授权</a-button> -->
</a-form-model-item> <a-button class="mar-left10" type="primary" @click="handlerReset">
</a-col> <Icon name="ssireset" :size="14" />重置
<a-col :xl="6" :lg="3" :sm="3" class="none-label"> </a-button>
<a-form-model-item label="button"> <a-button class="mar-left10" type="primary" @click="handlerSearch">
<!-- <a-button>更新数据</a-button> --> <Icon name="ssisearch_active" :size="14" />查询
<!-- <a-button class="mar-left10" type="primary" @click="addNewCharge"> </a-button>
<Icon name="ssiadd" :size="14" />新建预授权</a-button> --> <a-button class="mar-left10" type="primary" @click="exportExcel">
<a-button class="mar-left10" type="primary" @click="handlerReset"> <Icon name="ssidaochu" :size="14" />导出
<Icon name="ssireset" :size="14" />重置 </a-button>
</a-button> </a-form-model-item>
<a-button class="mar-left10" type="primary" @click="handlerSearch"> </a-col>
<Icon name="ssisearch_active" :size="14" />查询 </a-row>
</a-button> </a-form-model>
<a-button class="mar-left10" type="primary" @click="exportExcel">
<Icon name="ssidaochu" :size="14" />导出 <!-- table -->
</a-button> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
</a-form-model-item> <template slot="index" slot-scope="text, record, index">
</a-col> {{ index + 1 }}
</a-row> </template>
</a-form-model> <template slot="operation" slot-scope="record">
<!-- <a-button type="link" @click.stop="receiptEvt(record)">结算</a-button> -->
<!-- table --> <a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false"> <!-- <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<template slot="index" slot-scope="text, record, index"> <a-button type="link" class="danger">删除</a-button>
{{ index + 1 }} </a-popconfirm> -->
</template> </template>
<template slot="operation" slot-scope="record"> <template slot="isSend" slot-scope="text">
<!-- <a-button type="link" @click.stop="receiptEvt(record)">结算</a-button> --> {{text == 'Y' ? '' : text == 'N' ? '' : ''}}
<a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button> </template>
<!-- <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" > <template slot="isEob" slot-scope="text">
<a-button type="link" class="danger">删除</a-button> {{text == 'Y' ? '' : text == 'N' ? '' : ''}}
</a-popconfirm> --> </template>
</template> <template slot="isEobBack" slot-scope="text">
<template slot="isSend" slot-scope="text"> {{text == 'Y' ? '' : text == 'N' ? '' : ''}}
{{text == 'Y' ? '' : text == 'N' ? '' : ''}} </template>
</template> <template slot="status" slot-scope="text">
<template slot="isEob" slot-scope="text"> {{text == '1' ? '有效' : text == '2' ? '无效' : ''}}
{{text == 'Y' ? '' : text == 'N' ? '' : ''}} </template>
</template> </a-table>
<template slot="isEobBack" slot-scope="text"> <!--分页-->
{{text == 'Y' ? '' : text == 'N' ? '' : ''}} <BurtPagination :pagination="pagination" @pageChange="_getChargeList" />
</template> </div>
</a-table> </template>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="_getChargeList" /> <script>
</div> import BurtPagination from "@/components/CUSTOMER/pagation";
</template> import { mapState } from "vuex"
import moment from "moment";
<script> import { receiptTypeOptions } from '@/utils/utilsdictOptions.js';
import BurtPagination from "@/components/CUSTOMER/pagation"; import { exportFile } from '@/utils/index';
import { mapState } from "vuex" export default {
import moment from "moment"; data() {
import { exportFile } from '@/utils/index'; const columns = [
export default { { title: "序号", dataIndex: "index", key:"index",align:'center', width: 80,scopedSlots: { customRender: "index" }},
data() { { title: "收费时间", dataIndex: "receiptDate", width: 180 },
const columns = [ { title: "账单编号", dataIndex: "receiptNo", width: 180 },
{ title: "序号", dataIndex: "index", key:"index",align:'center', width: 80,scopedSlots: { customRender: "index" }}, { title: "账单类型", dataIndex: "receiptTypeStr", width: 130 },
{ title: "就诊时间", dataIndex: "receiptDate", width: 180 }, { title: "状态", dataIndex: "status", width: 130 },
{ 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: "payorName", width: 200 },
{ title: "保险公司", dataIndex: "payorName", width: 200 }, { title: "就诊医生", dataIndex: "doctorName", width: 150 },
{ title: "就诊医生", dataIndex: "doctorName", width: 150 }, { title: "是否已关联寄送单", dataIndex: "isSend", width: 180,scopedSlots: { customRender: "isSend" } },
{ title: "是否已关联寄送单", dataIndex: "isSend", width: 180,scopedSlots: { customRender: "isSend" } }, { title: "是否已回款", dataIndex: "isEobBack", width: 180,scopedSlots: { customRender: "isEobBack" } },
{ title: "是否已关联EOB", dataIndex: "isEob", width: 180,scopedSlots: { customRender: "isEob" } }, { title: "应收金额", dataIndex: "chargeAmount", width: 180 },
{ title: "是否已回款", dataIndex: "isEobBack", width: 180,scopedSlots: { customRender: "isEobBack" } }, { title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
{ title: "账单金额", dataIndex: "chargeAmount", width: 180 }, { title: "减免金额", dataIndex: "reduceAmount", width: 180 },
{ title: "折扣(%)", dataIndex: "discountAmount", width: 180 }, { title: "应付金额", dataIndex: "payableAmount", width: 180 },
{ title: "折后金额", dataIndex: "actualAmount", width: 180 }, { title: "客户自付", dataIndex: "selfpaidAmount", width: 180 },
{ title: "客户自付", dataIndex: "selfpaidAmount", width: 180 }, { title: "理赔金额", dataIndex: "actualAmount", width: 180 },
{ title: "减免金额", dataIndex: "reduceAmount1", width: 180 }, { title: "保险已支付", dataIndex: "backAmount", width: 180 },
{ title: "理赔金额", dataIndex: "claimsAmount", width: 180 }, { title: "保险欠费", dataIndex: "insuranceArrearsAmount", width: 180 },
{ title: "保险已支付", dataIndex: "insurancePaidAmount", width: 180 }, { title: "个人欠费", dataIndex: "arrearsAmount", width: 180 },
{ title: "未清余额", dataIndex: "outstandAmount", width: 180 }, { title: "未清余额", dataIndex: "residueBackAmount", width: 180 },
{ title: "保险欠费", dataIndex: "insuranceArrearsAmount", width: 180 }, { title: "操作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }, align: "center"},
{ title: "个人欠费", dataIndex: "personalArrearsAmount", width: 180 }, ];
{ title: "发票号码", dataIndex: "receiptNo", width: 180 }, return {
{ title: "操作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }, align: "center"}, columns,
]; receiptTypeOptions,
return { form: {},
columns, pageForm: {
form: {}, doctorCode: "",
pageForm: { patientName: "",
doctorCode: "", mrnNo: "",
patientName: "", paymentCode: "",
mrnNo: "", payorId: 0,
paymentCode: "", visitTimeEnd: "",
payorId: 0, visitTimeStart: "",
visitTimeEnd: "", receiptType: "",
visitTimeStart: "", receiptNo: ""
}, },
patientTypeOptions: [ patientTypeOptions: [
{ {
name: "商保", name: "商保",
code: 1, code: 1,
}, },
], //客户类型 ], //客户类型
companyOptions: [], //保险公司 companyOptions: [], //保险公司
doctorOptions: [], //就诊医生 doctorOptions: [], //就诊医生
paymentOptions: [ paymentOptions: [
{ {
name: "商保", name: "商保",
code: 1, code: 1,
}, },
], //支付方式 ], //支付方式
dataList: [], dataList: [],
pagination: { pagination: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
}, },
}; receiptTypeDict: {
}, '1': '收费',
components: { '2': '退费'
BurtPagination, },
}, statusOptions: [
computed: { {
...mapState({ name: '无效',
userInfo: (state) => state.common.userInfo code:2
}) },
}, {
created() { name: '有效',
this._getCompanyOptions(); code: 1
this._getDoctorListNoPage();//获取医生下拉选项 }
}, ]
methods: { };
moment, },
// 获取列表数据 components: {
_getChargeList() { BurtPagination,
const data = { },
...this.pageForm, computed: {
...this.pagination, ...mapState({
}; userInfo: (state) => state.common.userInfo
this.$apis.GETCHARGELIST(data).then((res) => { })
let content = res.content || {}; },
this.dataList = content.list || []; created() {
this.pagination.total = content.total || 0; this._getCompanyOptions();
}); this._getDoctorListNoPage();//获取医生下拉选项
}, },
// 获取保险公司下拉选项 methods: {
_getCompanyOptions() { moment,
this.$apis.GETCOMPANYOPTIONS().then((res) => { // 获取列表数据
this.companyOptions = res.content || []; _getChargeList() {
}); const data = {
}, ...this.pageForm,
// 获取看诊医生下拉选项 ...this.pagination,
_getDoctorListNoPage(){ };
this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => { this.$apis.GETCHARGELIST(data).then((res) => {
if (res.returnCode === "0000") { let content = res.content || {};
this.doctorOptions = res.content || []; this.dataList = content.list.map(item => {
}else{ item.receiptTypeStr = this.receiptTypeDict[item.receiptType] || ''
this.$message.success(res.returnMsg); return item
} }) || [];
}); this.pagination.total = content.total || 0;
}, });
// 选中就诊时间 },
onSelectVisitTime(date, dateString) { // 获取保险公司下拉选项
this.form.visitTimeStart = dateString[0] + ' 00:00:00' _getCompanyOptions() {
this.form.visitTimeEnd = dateString[1] + ' 23:59:59' this.$apis.GETCOMPANYOPTIONS().then((res) => {
console.log(date, dateString); this.companyOptions = res.content || [];
}, });
// 重置 },
handlerReset() { // 获取看诊医生下拉选项
this.form = {} _getDoctorListNoPage(){
}, this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => {
//查看 if (res.returnCode === "0000") {
detailEvt(record) { this.doctorOptions = res.content || [];
localStorage.setItem('chargeQueryDetail', JSON.stringify(record)); }else{
const { receiptNo } = record; this.$message.success(res.returnMsg);
this.$router.push({ }
name: "chargeQueryDetail", });
query: { receiptNo }, },
}); // 选中就诊时间
}, onSelectVisitTime(date, dateString) {
//账单结算 this.form.visitTimeStart = dateString[0] + ' 00:00:00'
receiptEvt(record){ this.form.visitTimeEnd = dateString[1] + ' 23:59:59'
this.$modal.confirm({ console.log(date, dateString);
title: "结算", },
content: "确定结算该账单?", // 重置
okText: "确定", handlerReset() {
cancelText: "取消", this.form = {}
onOk: () => { },
this.$apis.RECEIPTSETTLEMENT({ //查看
id: record.id detailEvt(record) {
}).then((res) => { localStorage.setItem('chargeQueryDetail', JSON.stringify(record));
if (res.returnCode === "0000") { const { receiptNo } = record;
this.$message.success('结算成功'); this.$router.push({
this._getChargeList(); name: "chargeQueryDetail",
}else{ query: { receiptNo },
this.$message.error(res.returnMsg); });
} },
}); //账单结算
}, receiptEvt(record){
}); this.$modal.confirm({
}, title: "结算",
handlerSearch() { content: "确定结算该账单?",
this.$refs.form.validate((valid) => { okText: "确定",
if (!valid) { cancelText: "取消",
return false; onOk: () => {
} this.$apis.RECEIPTSETTLEMENT({
this.pagination.pageNum = 1; id: record.id
this.pageForm = this.$lodash.cloneDeep({...this.form, dateRange: undefined}); }).then((res) => {
this._getChargeList(); if (res.returnCode === "0000") {
}); this.$message.success('结算成功');
}, this._getChargeList();
// 新建账单信息 }else{
addNewCharge() { this.$message.error(res.returnMsg);
// this.$router.push("/customer/edit"); }
}, });
//导出报表 },
exportExcel(){ });
let filter = { },
...this.form, handlerSearch() {
} this.$refs.form.validate((valid) => {
this.$apis.RceiptListReport(filter).then(res => { if (!valid) {
exportFile(res, '账单报表.xls'); return false;
}) }
} this.pagination.pageNum = 1;
}, this.pageForm = this.$lodash.cloneDeep({...this.form, dateRange: undefined});
}; this._getChargeList();
</script> });
<style lang="less" scoped> },
.none-label { // 新建账单信息
text-align: right; addNewCharge() {
.ant-form-item-label { // this.$router.push("/customer/edit");
opacity: 0; },
} //导出报表
} exportExcel(){
.ant-btn .icon-class { let filter = {
.mg-r(10); ...this.form,
} }
</style> this.$apis.RceiptListReport(filter).then(res => {
exportFile(res, '账单报表.xls');
})
}
},
};
</script>
<style lang="less" scoped>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
</style>
<template> <template>
<!-- 收费查询-账单查询 --> <!-- 收费查询-账单查询 -->
<div class="white_bg burt-container custom-info"> <div class="white_bg burt-container custom-info">
<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="8" :sm="12"> <a-col :lg="8" :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="8" :sm="12"> <a-col :lg="8" :sm="12">
<a-form-model-item label="寄送状态"> <a-form-model-item label="寄送状态">
<a-select v-model="form.sendSts" placeholder="请选择寄送状态" allow-clear :disabled="!isEdit"> <a-select v-model="form.sendSts" placeholder="请选择寄送状态" allow-clear :disabled="!isEdit">
<a-select-option value="1">已寄送</a-select-option> <a-select-option value="1">已寄送</a-select-option>
<a-select-option value="2">未寄送</a-select-option> <a-select-option value="2">未寄送</a-select-option>
</a-select> </a-select>
</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-select v-model="form.sendCompany" placeholder="请选择快递公司" showSearch allow-clear :disabled="!isEdit"> <a-select v-model="form.sendCompany" placeholder="请选择快递公司" showSearch allow-clear :disabled="!isEdit">
<a-select-option v-for="(item) in expressList" :key="item.id" :value="item.descCh">{{item.descCh}}</a-select-option> <a-select-option v-for="(item) in expressList" :key="item.id" :value="item.descCh">{{item.descCh}}</a-select-option>
</a-select> </a-select>
</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="form.trackingNo" placeholder="请输入快递单号" allow-clear :disabled="!isEdit" /> <a-input v-model="form.trackingNo" placeholder="请输入快递单号" allow-clear :disabled="!isEdit" />
</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-select v-model="form.sendMode" placeholder="请选择寄送方式" allow-clear :disabled="!isEdit"> <a-select v-model="form.sendMode" placeholder="请选择寄送方式" allow-clear :disabled="!isEdit">
<a-select-option value="快递">快递</a-select-option> <a-select-option value="快递">快递</a-select-option>
<a-select-option value="邮件">邮件</a-select-option> <a-select-option value="邮件">邮件</a-select-option>
</a-select> </a-select>
</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-date-picker format="YYYY年MM月DD日" v-model="form.sendDate" placeholder="选择日期" /> <a-date-picker format="YYYY年MM月DD日" v-model="form.sendDate" 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="form.sendAddress" placeholder="请输入寄送地址" allow-clear :disabled="!isEdit" /> <a-input v-model="form.sendAddress" placeholder="请输入寄送地址" allow-clear :disabled="!isEdit" />
</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="form.sendEmail" placeholder="请输入寄送邮箱" allow-clear :disabled="!isEdit" /> <a-input v-model="form.sendEmail" placeholder="请输入寄送邮箱" allow-clear :disabled="!isEdit" />
</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-textarea v-model="form.sendRemark" placeholder="请输入寄送备注" :auto-size="{ minRows: 2, maxRows: 5 }" allow-clear :disabled="!isEdit" /> <a-textarea v-model="form.sendRemark" placeholder="请输入寄送备注" :auto-size="{ minRows: 2, maxRows: 5 }" allow-clear :disabled="!isEdit" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :sm="24" class="none-label" v-if="isEdit"> <a-col :sm="24" class="none-label" v-if="isEdit">
<div class="btn-div flex"> <div class="btn-div flex">
<span></span> <span></span>
<a-form-model-item label="button"> <a-form-model-item label="button">
<a-button class="mar-left10" type="primary" @click="addNewCharge"> <a-button class="mar-left10" type="primary" @click="addNewCharge">
<Icon :name="sendBatchNo?'ssibaocun':'ssiadd'" :size="14" />{{sendBatchNo?'保存寄送':'新建寄送'}}</a-button> <Icon :name="sendBatchNo?'ssibaocun':'ssiadd'" :size="14" />{{sendBatchNo?'保存寄送':'新建寄送'}}</a-button>
</a-form-model-item> </a-form-model-item>
</div> </div>
</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>
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :sm="24" class="none-label"> <a-col :lg="8" :sm="12">
<div class="btn-div flex"> <a-form-model-item label="账单编号">
<span></span> <a-input v-model="searchForm.receiptNo" placeholder="请输入账单编号" allow-clear />
<a-form-model-item label="button"> </a-form-model-item>
<a-button type="primary" @click="handlerSearch"> </a-col>
<Icon name="ssisearch_active" :size="14" />查询 <a-col :lg="8" :sm="12">
</a-button> <a-form-model-item label="状态">
<a-button class="mar-left10" type="primary" @click="exportEvt"> <a-select v-model="searchForm.rStatus" placeholder="请选择状态" allow-clear>
<Icon name="ssidaochu" :size="14" />导出 <a-select-option :key="item.code" :value="item.code" v-for="item in statusOptions">{{item.name}}</a-select-option>
</a-button> </a-select>
<a-button class="mar-left10" type="primary" @click="addNewBill" v-if="isEdit"> </a-form-model-item>
<Icon :name="isEditNewBill?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewBill? '保存账单': '添加账单'}}</a-button> </a-col>
</a-form-model-item> </a-row>
</div> <a-row :gutter="30">
</a-col> <a-col :sm="24" class="none-label">
</a-row> <div class="btn-div flex">
</a-form-model> <span></span>
<a-form-model-item label="button">
<!-- table --> <a-button type="primary" @click="handlerSearch">
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" <Icon name="ssisearch_active" :size="14" />查询
:row-selection="isEditNewBill? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null"> </a-button>
<template slot="sendDate" slot-scope="text"> <a-button class="mar-left10" type="primary" @click="exportEvt">
{{ text? moment(text).format('YYYY-MM-DD'): '' }} <Icon name="ssidaochu" :size="14" />导出
</template> </a-button>
<template slot="sendSts" slot-scope="text"> <a-button class="mar-left10" type="primary" @click="addNewBill" v-if="isEdit">
{{ text==1?'已寄送':'未寄送' }} <Icon :name="isEditNewBill?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewBill? '保存账单': '添加账单'}}</a-button>
</template> </a-form-model-item>
<template slot="operation" slot-scope="text, record"> </div>
<!-- <a-button type="link" @click.stop="editEvt(record)">修改</a-button> --> </a-col>
<a-button type="link" class="danger" @click.stop="delRecord(record)">删除</a-button> </a-row>
</template> </a-form-model>
</a-table>
<!--分页--> <!-- table -->
<BurtPagination :pagination="pagination" @pageChange="getPageData" /> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false"
:row-selection="isEditNewBill? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null">
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false" <template slot="sendDate" slot-scope="text">
okText="确定" cancelText="取消" {{ text? moment(text).format('YYYY-MM-DD'): '' }}
@ok="handleEditOK" @cancel="dialogShow = false"> </template>
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules"> <template slot="sendSts" slot-scope="text">
<a-row :gutter="30"> {{ text==1?'已寄送':'未寄送' }}
<a-col :lg="12" :xs="24"> </template>
<a-form-model-item label="保险公司" prop="payorCode"> <template slot="status" slot-scope="text">
<a-select v-model="editFormObj.payorCode" placeholder="请选择保险公司" allowClear> {{ text==1?'有效':text==2?'无效':'' }}
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode"> </template>
{{ item.longName }} <template slot="operation" slot-scope="text, record">
</a-select-option> <!-- <a-button type="link" @click.stop="editEvt(record)">修改</a-button> -->
</a-select> <a-button type="link" class="danger" @click.stop="delRecord(record)">删除</a-button>
</a-form-model-item> </template>
</a-col> </a-table>
<a-col :lg="12" :sm="24"> <!--分页-->
<a-form-model-item label="寄送状态" prop="sendSts"> <BurtPagination :pagination="pagination" @pageChange="getPageData" />
<a-select v-model="editFormObj.sendSts" placeholder="请选择寄送状态" allowClear>
<a-select-option :value="1">已寄送</a-select-option> <a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
<a-select-option :value="2">未寄送</a-select-option> okText="确定" cancelText="取消"
</a-select> @ok="handleEditOK" @cancel="dialogShow = false">
</a-form-model-item> <a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
</a-col> <a-row :gutter="30">
<a-col :lg="12" :sm="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="寄送日期" prop="sendDate"> <a-form-model-item label="保险公司" prop="payorCode">
<a-date-picker format="YYYY年MM月DD日" v-model="editFormObj.sendDate" placeholder="选择日期" /> <a-select v-model="editFormObj.payorCode" placeholder="请选择保险公司" allowClear>
</a-form-model-item> <a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
</a-col> {{ item.longName }}
<a-col :lg="12" :xs="24"> </a-select-option>
<a-form-model-item label="快递单号" prop="trackingNo"> </a-select>
<a-input v-model.trim="editFormObj.trackingNo" placeholder="快递单号" /> </a-form-model-item>
</a-form-model-item> </a-col>
</a-col> <a-col :lg="12" :sm="24">
</a-row> <a-form-model-item label="寄送状态" prop="sendSts">
<a-row :gutter="30"> <a-select v-model="editFormObj.sendSts" placeholder="请选择寄送状态" allowClear>
<a-col :lg="12" :xs="24"> <a-select-option :value="1">已寄送</a-select-option>
<a-form-model-item label="寄送备注" prop="sendRemark"> <a-select-option :value="2">未寄送</a-select-option>
<a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" /> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> <a-col :lg="12" :sm="24">
</a-form-model> <a-form-model-item label="寄送日期" prop="sendDate">
</a-modal> <a-date-picker format="YYYY年MM月DD日" v-model="editFormObj.sendDate" placeholder="选择日期" />
</div> </a-form-model-item>
</template> </a-col>
<a-col :lg="12" :xs="24">
<script> <a-form-model-item label="快递单号" prop="trackingNo">
import Goback from "@/components/CUSTOMER/goback"; <a-input v-model.trim="editFormObj.trackingNo" placeholder="快递单号" />
import BurtPagination from "@/components/CUSTOMER/pagation"; </a-form-model-item>
import moment from 'moment' </a-col>
import { numValid } from "@/utils/index" </a-row>
<a-row :gutter="30">
export default { <a-col :lg="12" :xs="24">
data() { <a-form-model-item label="寄送备注" prop="sendRemark">
return { <a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" />
loading: false, </a-form-model-item>
dialogShow: false, </a-col>
isEdit: false, </a-row>
sendBatchNo: '', //寄送批号 </a-form-model>
form: { </a-modal>
payorCode: '', </div>
sendSts: '', </template>
sendMode: '',
sendDate: '', <script>
sendCompany: '', import Goback from "@/components/CUSTOMER/goback";
trackingNo: '', import BurtPagination from "@/components/CUSTOMER/pagation";
sendAddress: '', import moment from 'moment'
sendEmail: '', import { numValid } from "@/utils/index"
sendRemark: ''
}, export default {
searchForm: {}, data() {
searchData: {}, return {
companyOptions: [], //保险公司 loading: false,
expressList: [], //快递列表 dialogShow: false,
selectedRowKeys: [], // Check here to configure the default column isEdit: false,
dataList: [], sendBatchNo: '', //寄送批号
cacheDataList: {}, form: {
isEditNewBill: false, //是否在新建账单 payorCode: '',
pagination: { sendSts: '',
pageNum: 1, sendMode: '',
pageSize: 100, sendDate: '',
total: 0, sendCompany: '',
}, trackingNo: '',
editFormObj: { sendAddress: '',
payorCode: '', sendEmail: '',
sendSts: '', sendRemark: ''
sendDate: '', },
trackingNo: '', searchForm: {},
sendRemark: '', searchData: {},
}, companyOptions: [], //保险公司
editRules: { expressList: [], //快递列表
sendDate: [{ required: true, message: "请选择寄送日期", trigger: "change" }], selectedRowKeys: [], // Check here to configure the default column
trackingNo: [{ required: true, message: "请输入寄送单号", trigger: "blur" }], dataList: [],
}, cacheDataList: {},
}; isEditNewBill: false, //是否在新建账单
}, pagination: {
components: { pageNum: 1,
Goback, pageSize: 100,
BurtPagination, total: 0,
}, },
computed: { editFormObj: {
columns() { payorCode: '',
const base = [ sendSts: '',
{ title: "就诊日期", dataIndex: "receiptDate", width: 160,scopedSlots: { customRender: "receiptDate" } }, sendDate: '',
{ title: "病历号", dataIndex: "mrnNo", key:"mrnNo",align:'center', width: 136}, trackingNo: '',
{ title: "客户姓名", dataIndex: "patientName", width: 160 }, sendRemark: '',
{ title: "保险卡号", dataIndex: "memberCardNo", width: 180 }, },
{ title: "客户生日", dataIndex: "birthday", width: 160 }, editRules: {
{ title: "账单编号", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136}, sendDate: [{ required: true, message: "请选择寄送日期", trigger: "change" }],
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 250 }, trackingNo: [{ required: true, message: "请输入寄送单号", trigger: "blur" }],
{ title: "应收金额", dataIndex: "chargeAmount", width: 100, align: 'center' }, },
{ title: "折扣金额", dataIndex: "discountAmount", width: 100, align: 'center' }, statusOptions: [
{ title: "减免金额", dataIndex: "discountAmount2", width: 100, align: 'center' }, {
{ title: "客户自付", dataIndex: "selfpaidAmount", width: 100, align: 'center', customRender: (val, row) => { name: '无效',
return <a-input v-model={row.selfpaidAmount} allow-clear /> code: 2
} }, },
{ title: "理赔金额", dataIndex: "paidAmount", width: 100, align: 'center' }, {
]; name: '有效',
if(this.sendBatchNo && ! this.isEditNewBill && this.isEdit){ // 编辑状态下已经保存的数据才可进行操作 code: 1
return base.concat([ }
{ title: "操作", key: "operation", width: "100px",fixed: "right",scopedSlots: { customRender: "operation" }}, ]
]); };
} },
return base components: {
Goback,
} BurtPagination,
}, },
created() { computed: {
const { sendBatchNo, isEdit } = this.$route.query; columns() {
this.sendBatchNo = sendBatchNo; const base = [
this.isEdit = isEdit; { title: "账单日期", dataIndex: "receiptDate", width: 160,scopedSlots: { customRender: "receiptDate" } },
this._getCompanyOptions(); { title: "病历号", dataIndex: "mrnNo", key:"mrnNo",align:'center', width: 136},
this.getRefcdByRefgrp(); { title: "客户姓名", dataIndex: "patientName", width: 160 },
if(this.sendBatchNo){ { title: "保险卡号", dataIndex: "memberCardNo", width: 180 },
let jisongDataDetail = localStorage.getItem('jisongDataDetail'); { title: "客户生日", dataIndex: "birthday", width: 160 },
this.form = jisongDataDetail? JSON.parse(jisongDataDetail): {}; { title: "账单编号", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136},
this.getData(); { title: "状态", dataIndex: "status", key:"status",align:'center', width: 136},
} { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 250 },
}, { title: "应收金额", dataIndex: "chargeAmount", width: 100, align: 'center' },
methods: { { title: "折扣金额", dataIndex: "discountAmount", width: 100, align: 'center' },
moment, { title: "减免金额", dataIndex: "reduceAmount", width: 100, align: 'center' },
onSelectChange(selectedRowKeys) { { title: "客户自付", dataIndex: "selfpaidAmount", width: 100, align: 'center' },
let arr = []; { title: "理赔金额", dataIndex: "actualAmount", width: 100, align: 'center' },
for(let i=0; i<selectedRowKeys.length; i++){ ];
let idx = selectedRowKeys[i]; if(this.sendBatchNo && ! this.isEditNewBill && this.isEdit){ // 编辑状态下已经保存的数据才可进行操作
if(this.dataList[idx].sendBatchNo){ return base.concat([
this.$msg.destroy(); { title: "操作", key: "operation", width: "100px",fixed: "right",scopedSlots: { customRender: "operation" }},
this.$message.warning('寄送批号已存在') ]);
}else{ }
arr.push(idx); return base
}
} }
this.selectedRowKeys = arr; },
}, created() {
// 分页回调 const { sendBatchNo, isEdit } = this.$route.query;
getPageData(pager) { this.sendBatchNo = sendBatchNo;
if(pager){ this.isEdit = isEdit;
this.pagination = { this._getCompanyOptions();
...this.pagination, this.getRefcdByRefgrp();
...pager if(this.sendBatchNo){
} let jisongDataDetail = localStorage.getItem('jisongDataDetail');
} this.form = jisongDataDetail? JSON.parse(jisongDataDetail): {};
if(this.isEditNewBill) { // 新增时添加了账单信息 那分页也应该是调账单信息接口 this.getData();
this._getNewBillList() }
} else { },
this.getData() methods: {
} moment,
}, onSelectChange(selectedRowKeys) {
// 获取列表数据 let arr = [];
getData() { for(let i=0; i<selectedRowKeys.length; i++){
this.selectedRowKeys = []; let idx = selectedRowKeys[i];
let filter = { if(this.dataList[idx].sendBatchNo){
pageNum: this.pagination.pageNum, this.$msg.destroy();
pageSize: this.pagination.pageSize, this.$message.warning('寄送批号已存在')
sendBatchNo: this.sendBatchNo || undefined, }else{
...this.searchData arr.push(idx);
} }
this.$apis.QUERYSENDRECEIPLIST(filter) }
.then((res) => { this.selectedRowKeys = arr;
if (res.returnCode == "0000") { },
let content = res.content || {}; // 分页回调
this.pagination.total = content.total || 0; getPageData(pager) {
this.dataList = content.list || []; if(pager){
this.cacheDataList[filter.pageNum] = this.dataList this.pagination = {
} else { ...this.pagination,
this.$message.error(res.returnMsg); ...pager
} }
}); }
}, if(this.isEditNewBill) { // 新增时添加了账单信息 那分页也应该是调账单信息接口
// 获取保险公司下拉选项 this._getNewBillList()
_getCompanyOptions() { } else {
this.$apis.GETCOMPANYOPTIONS().then((res) => { this.getData()
this.companyOptions = res.content || []; }
}); },
}, // 获取列表数据
// 获取快递列表 getData() {
getRefcdByRefgrp() { this.selectedRowKeys = [];
this.$apis.GETREFCDBYREFGRP({ let filter = {
modid: "CI", pageNum: this.pagination.pageNum,
refgrp: "SEND_COMPANY" pageSize: this.pagination.pageSize,
}).then((res) => { sendBatchNo: this.sendBatchNo || undefined,
this.expressList = res.content || []; ...this.searchData
}); }
}, this.$apis.QUERYSENDRECEIPLIST(filter)
//查看 .then((res) => {
detailEvt(record) { if (res.returnCode == "0000") {
const { receiptNo } = record; let content = res.content || {};
this.$router.push({ this.pagination.total = content.total || 0;
name: "chargeQueryDetail", this.dataList = content.list || [];
query: { receiptNo }, this.cacheDataList[filter.pageNum] = this.dataList
}); } else {
}, this.$message.error(res.returnMsg);
editEvt(record) { }
this.editFormObj = { });
ciReceiptSendVos: [ },
{ // 获取保险公司下拉选项
id: record.id, _getCompanyOptions() {
receiptNo: record.receiptNo, this.$apis.GETCOMPANYOPTIONS().then((res) => {
} this.companyOptions = res.content || [];
], });
payorCode: record.payorCode || "", },
sendSts: Number(record.sendSts) || "", // 获取快递列表
sendDate: record.sendDate || "", getRefcdByRefgrp() {
trackingNo: record.trackingNo || "", this.$apis.GETREFCDBYREFGRP({
sendRemark: record.sendRemark || "", modid: "CI",
}; refgrp: "SEND_COMPANY"
this.dialogShow = true; }).then((res) => {
}, this.expressList = res.content || [];
//编辑保存 });
handleEditOK() { },
this.$refs.editForm.validate((valid) => { //查看
if (valid) { detailEvt(record) {
this.$apis.SAVERECEIPSENDINFO({ const { receiptNo } = record;
...this.editFormObj, this.$router.push({
sendDate: moment(this.editFormObj.sendDate).format('YYYY-MM-DD 00:00:00') name: "chargeQueryDetail",
}) query: { receiptNo },
.then((res) => { });
if (res.returnCode == "0000") { },
this.$message.success("编辑成功"); editEvt(record) {
this.dialogShow = false; this.editFormObj = {
this.getData(); ciReceiptSendVos: [
} else { {
this.$message.error(res.returnMsg); id: record.id,
} receiptNo: record.receiptNo,
}); }
} ],
}); payorCode: record.payorCode || "",
}, sendSts: Number(record.sendSts) || "",
handlerSearch() { sendDate: record.sendDate || "",
this.pagination.pageNum = 1; trackingNo: record.trackingNo || "",
let visitTimeStart = this.searchForm.visitTimeStart || [] sendRemark: record.sendRemark || "",
this.searchData = this.$lodash.cloneDeep({ };
...this.searchForm, this.dialogShow = true;
visitTimeEnd: visitTimeStart[1] ? visitTimeStart[1] + ' 23:59:59' : undefined, },
visitTimeStart: visitTimeStart[0] ? visitTimeStart[0] + ' 00:00:00' : undefined, //编辑保存
}); handleEditOK() {
if(this.isEditNewBill) { // 新增时添加了账单信息 那分页也应该是调账单信息接口 this.$refs.editForm.validate((valid) => {
this._getNewBillList() if (valid) {
} else { this.$apis.SAVERECEIPSENDINFO({
this.getData() ...this.editFormObj,
} sendDate: moment(this.editFormObj.sendDate).format('YYYY-MM-DD 00:00:00')
}, })
//删除 .then((res) => {
delRecord(data) { if (res.returnCode == "0000") {
this.$modal.confirm({ this.$message.success("编辑成功");
title: "删除", this.dialogShow = false;
content: "确定删除该条记录?", this.getData();
okText: "确定", } else {
cancelText: "取消", this.$message.error(res.returnMsg);
onOk: () => { }
this.$apis.DELETESENDRECEIPT({ });
ciReceiptSendVos: [ }
{receiptNo: data.receiptNo} });
], },
sendBatchNo: this.sendBatchNo, handlerSearch() {
}) this.pagination.pageNum = 1;
.then((res) => { let visitTimeStart = this.searchForm.visitTimeStart || []
if (res.returnCode == "0000") { this.searchData = this.$lodash.cloneDeep({
this.$message.success("删除成功"); ...this.searchForm,
this.getData() visitTimeEnd: visitTimeStart[1] ? visitTimeStart[1] + ' 23:59:59' : undefined,
// this.dataList.splice(index, 1); visitTimeStart: visitTimeStart[0] ? visitTimeStart[0] + ' 00:00:00' : undefined,
} else { });
this.$message.error(res.returnMsg); if(this.isEditNewBill) { // 新增时添加了账单信息 那分页也应该是调账单信息接口
} this._getNewBillList()
}); } else {
}, this.getData()
}); }
}, },
//导出 //删除
exportEvt(){ delRecord(data) {
this.$apis.SENDRECEIPTLISTEXPORT({ this.$modal.confirm({
sendBatchNo: this.sendBatchNo || undefined title: "删除",
}) content: "确定删除该条记录?",
.then(res => { okText: "确定",
let blob = new Blob([res.data], { cancelText: "取消",
type:"application/vnd.ms-excel;charset=utf-8" onOk: () => {
}); this.$apis.DELETESENDRECEIPT({
let url=window.URL.createObjectURL(blob); ciReceiptSendVos: [
let aLink=document.createElement("a"); {receiptNo: data.receiptNo}
aLink.style.display="none"; ],
aLink.href=url; sendBatchNo: this.sendBatchNo,
aLink.setAttribute("download","寄送账单.xls"); })
document.body.appendChild(aLink); .then((res) => {
aLink.click(); if (res.returnCode == "0000") {
document.body.removeChild(aLink); this.$message.success("删除成功");
window.URL.revokeObjectURL(url); this.getData()
}) // this.dataList.splice(index, 1);
}, } else {
//添加账单 this.$message.error(res.returnMsg);
addNewBill(){ }
// this.isEditNewBill = !this.isEditNewBill; });
if(this.isEditNewBill){ //保存 },
this.addNewCharge() });
.then(()=>{ },
this.isEditNewBill = false; //导出
}) exportEvt(){
}else{ //查询所有未加入的账单 this.$apis.SENDRECEIPTLISTEXPORT({
this.pagination.pageNum = 1; sendBatchNo: this.sendBatchNo || undefined
this.isEditNewBill = true; })
this.cacheDataList = {} .then(res => {
this._getNewBillList() let blob = new Blob([res.data], {
} type:"application/vnd.ms-excel;charset=utf-8"
}, });
_getNewBillList() { let url=window.URL.createObjectURL(blob);
this.$apis.QUERYNOSENDRECEIPLIST({ let aLink=document.createElement("a");
pageNum: this.pagination.pageNum, aLink.style.display="none";
pageSize: this.pagination.pageSize, aLink.href=url;
payorCode: this.form.payorCode, aLink.setAttribute("download","寄送账单.xls");
...this.searchData document.body.appendChild(aLink);
}) aLink.click();
.then((res) => { document.body.removeChild(aLink);
if (res.returnCode == "0000") { window.URL.revokeObjectURL(url);
this.selectedRowKeys = []; })
let content = res.content || {}; },
this.pagination.total = content.total || 0; //添加账单
this.dataList = content.list || []; addNewBill(){
this.cacheDataList[this.pagination.pageNum] = this.dataList // this.isEditNewBill = !this.isEditNewBill;
} else { if(this.isEditNewBill){ //保存
this.$message.error(res.returnMsg); this.addNewCharge()
} .then(()=>{
}); this.isEditNewBill = false;
}, })
checkBeforeSave() { }else{ //查询所有未加入的账单
if(!this.form.trackingNo){ this.pagination.pageNum = 1;
this.$message.warning("请输入快递单号"); this.isEditNewBill = true;
return false; this.cacheDataList = {}
} this._getNewBillList()
if(!this.form.sendDate){ }
this.$message.warning("请选择寄送日期"); },
return false; _getNewBillList() {
} this.$apis.QUERYNOSENDRECEIPLIST({
let allData = [] pageNum: this.pagination.pageNum,
for(let i in this.cacheDataList){ pageSize: this.pagination.pageSize,
allData = allData.concat(this.cacheDataList[i]) payorCode: this.form.payorCode,
} ...this.searchData
let ciReceiptSendVos = []; })
if(this.isEditNewBill){ .then((res) => {
ciReceiptSendVos = []; if (res.returnCode == "0000") {
allData.forEach((item,index)=>{ this.selectedRowKeys = [];
if(this.selectedRowKeys.indexOf(index)!=-1){ let content = res.content || {};
ciReceiptSendVos.push({ this.pagination.total = content.total || 0;
id: item.id, this.dataList = content.list || [];
receiptNo: item.receiptNo, this.cacheDataList[this.pagination.pageNum] = this.dataList
selfpaidAmount: item.selfpaidAmount } else {
}) this.$message.error(res.returnMsg);
} }
}) });
} else { },
ciReceiptSendVos = allData.map(item => { checkBeforeSave() {
return { if(!this.form.trackingNo){
id: item.id, this.$message.warning("请输入快递单号");
receiptNo: item.receiptNo, return false;
selfpaidAmount: item.selfpaidAmount }
} if(!this.form.sendDate){
}) this.$message.warning("请选择寄送日期");
} return false;
for(let i = 0; i < ciReceiptSendVos.length; i ++) { }
const selfpaidAmount = ciReceiptSendVos[i].selfpaidAmount let allData = []
if(selfpaidAmount && !numValid.test(selfpaidAmount)){ for(let i in this.cacheDataList){
this.$message.warning("请输入正确的客户自付金额"); allData = allData.concat(this.cacheDataList[i])
return false; }
} let ciReceiptSendVos = [];
} if(this.isEditNewBill){
return { ciReceiptSendVos = [];
...this.form, allData.forEach((item,index)=>{
ciReceiptSendVos: ciReceiptSendVos, if(this.selectedRowKeys.indexOf(index)!=-1){
sendDate: moment(this.form.sendDate).format('YYYY-MM-DD 00:00:00'), ciReceiptSendVos.push({
sendBatchNo: this.sendBatchNo || undefined id: item.id,
} receiptNo: item.receiptNo,
}, selfpaidAmount: item.selfpaidAmount
//新建/保存寄送 })
addNewCharge(){ }
return new Promise((resolve,reject)=>{ })
let formData = this.checkBeforeSave() } else {
if(!formData){ ciReceiptSendVos = allData.map(item => {
reject() return {
return false; id: item.id,
} receiptNo: item.receiptNo,
this.$apis.SAVERECEIPSENDINFO(formData) selfpaidAmount: item.selfpaidAmount
.then((res) => { }
if (res.returnCode == "0000") { })
this.sendBatchNo = res.content; }
this.$message.success("成功"); for(let i = 0; i < ciReceiptSendVos.length; i ++) {
this.selectedRowKeys = []; const selfpaidAmount = ciReceiptSendVos[i].selfpaidAmount
this.cacheDataList = {} if(selfpaidAmount && !numValid.test(selfpaidAmount)){
this.getData(); this.$message.warning("请输入正确的客户自付金额");
resolve(); return false;
} else { }
this.$message.error(res.returnMsg); }
reject(); return {
} ...this.form,
}); ciReceiptSendVos: ciReceiptSendVos,
}) sendDate: moment(this.form.sendDate).format('YYYY-MM-DD 00:00:00'),
} sendBatchNo: this.sendBatchNo || undefined
}, }
}; },
</script> //新建/保存寄送
<style lang="less" scoped> addNewCharge(){
.none-label { return new Promise((resolve,reject)=>{
text-align: right; let formData = this.checkBeforeSave()
.ant-form-item-label { if(!formData){
opacity: 0; reject()
} return false;
} }
.ant-btn .icon-class { this.$apis.SAVERECEIPSENDINFO(formData)
.mg-r(10); .then((res) => {
} if (res.returnCode == "0000") {
.btn-div{ this.sendBatchNo = res.content;
justify-content: space-between; this.$message.success("成功");
} this.selectedRowKeys = [];
</style> this.cacheDataList = {}
this.getData();
resolve();
} else {
this.$message.error(res.returnMsg);
reject();
}
});
})
}
},
};
</script>
<style lang="less" scoped>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.btn-div{
justify-content: space-between;
}
</style>
...@@ -42,14 +42,14 @@ ...@@ -42,14 +42,14 @@
<a-form-model-item label="出生日期" prop="birthday"> <a-form-model-item label="出生日期" prop="birthday">
<a-date-picker v-model="form.birthday" allow-clear placeholder="请选择出生日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker> <a-date-picker v-model="form.birthday" allow-clear placeholder="请选择出生日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="客户公司名称" prop="corpName"> <!-- <a-form-model-item label="客户公司名称" prop="corpName">
<a-select v-model="form.corpName" placeholder="请选择客户公司名称" show-search allow-clear <a-select v-model="form.corpName" placeholder="请选择客户公司名称" show-search allow-clear
:filterOption="filterCode" @change="corpChange" @search="corpSearch"> :filterOption="filterCode" @change="corpChange" @search="corpSearch">
<a-select-option v-for="item in comCorpCode" :key="item.id" :value="item.id + '$_' + item.longName"> <a-select-option v-for="item in comCorpCode" :key="item.id" :value="item.id + '$_' + item.longName">
{{ item.longName }} {{ item.longName }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item> -->
<a-form-model-item label="保单生效日期" prop="startDate"> <a-form-model-item label="保单生效日期" prop="startDate">
<a-date-picker allow-clear v-model="form.startDate" placeholder="请选择保单生效日期" value-format="YYYY-MM-DD 00:00:00" @change="startDateChange"></a-date-picker> <a-date-picker allow-clear v-model="form.startDate" placeholder="请选择保单生效日期" value-format="YYYY-MM-DD 00:00:00" @change="startDateChange"></a-date-picker>
</a-form-model-item> </a-form-model-item>
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
<a-date-picker allow-clear v-model="form.endDate" placeholder="请选择保单终止日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker> <a-date-picker allow-clear v-model="form.endDate" placeholder="请选择保单终止日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xl="6" :lg="6" :sm="12"> <!-- <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险计划" prop="planName"> <a-form-model-item label="保险计划" prop="planName">
<a-select v-model="form.planName" placeholder="请选择保险计划" show-search allow-clear :filterOption="filterCode" @search="codeSearch" <a-select v-model="form.planName" placeholder="请选择保险计划" show-search allow-clear :filterOption="filterCode" @search="codeSearch"
> >
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col> -->
<a-col :xl="6" :lg="6" :sm="12"> <a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="其他备注" prop="remark"> <a-form-model-item label="其他备注" prop="remark">
<a-input allow-clear v-model="form.remark" placeholder="请输入备注信息"></a-input> <a-input allow-clear v-model="form.remark" placeholder="请输入备注信息"></a-input>
......
<template> <template>
<div class="white_bg burt-container"> <div class="white_bg burt-container">
<img src="../../assets/image/home_bg.jpg" alt=""> <img src="../../assets/image/home_bg.jpg" alt="">
</div> </div>
</template> </template>
<script> <script>
export default{ export default{
data(){ data(){
return{ return{
} }
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.burt-container{ .burt-container{
height: calc(100vh - 116px); height: calc(100vh - 86px);
padding: 0; padding: 0;
img{ img{
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
} }
} }
</style> </style>
\ No newline at end of file
<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>
<template> <template>
<div class="menu-layout"> <div class="menu-layout">
<Header></Header> <Header></Header>
<div class="container"> <div class="container">
<Menu></Menu> <Menu></Menu>
<Loading /> <Loading />
<div class="content"> <div class="content">
<SubMenu></SubMenu> <router-view />
<router-view /> </div>
</div> </div>
</div> </div>
</div> </template>
</template>
<script>
<script> import Header from "./components/Header.vue";
import Header from "./components/Header.vue"; import Menu from "./components/menu";
import Menu from "./components/menu"; import Loading from "@/components/Loading/Loading.vue";
import SubMenu from "./components/menu/subMenu.vue";
import Loading from "@/components/Loading/Loading.vue"; export default {
components: {
export default { Header,
components: { Menu,
Header, Loading
Menu, },
SubMenu, data() {
Loading return {};
}, },
data() {
return {}; created() {},
}, mounted() {},
methods: {},
created() {}, };
mounted() {}, </script>
methods: {},
}; <style>
</script> .icon-class.arrow{
position: absolute;
<style> right: 0;
.icon-class.arrow{ top: 50%;
position: absolute; transform: translateY(-50%);
right: 0; }
top: 50%; </style>
transform: translateY(-50%); <style lang="less" scoped>
} .menu-layout {
</style> background-color: #f8fafb;
<style lang="less" scoped> font-family: "Helvetica" "Microsoft YaHei" "微软雅黑";
.menu-layout { .container {
background-color: #f8fafb; display: flex;
font-family: "Helvetica" "Microsoft YaHei" "微软雅黑"; position: relative;
.container { .pt(68);
display: flex; // min-height: calc(100vh - 50px);
position: relative; .content {
.pt(68); position: relative;
// min-height: calc(100vh - 50px); flex: 1;
.content { .mg-l(242);
position: relative; .pa(14, 40, 0, 40);
flex: 1; min-height: calc(100vh - 68px);
.mg-l(242); overflow-x: hidden;
.pa(14, 40, 0, 40); }
min-height: calc(100vh - 68px); }
overflow-x: hidden; .menu {
} position: fixed;
} .w(242);
.menu { height: calc(100vh - 68px);
position: fixed; overflow: auto;
.w(242); background-color: #fff;
height: calc(100vh - 68px); li{
overflow: auto; position: relative;
background-color: #fff; }
li{ }
position: relative; }
} </style>
}
}
</style>
<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 :lg="6" :sm="12"> </a-select>
<a-form-model-item label="创建时间"> </a-form-model-item>
<a-range-picker format="YYYY-MM-DD" v-model="form.dateRange" :placeholder="['开始时间','结束时间']" @change="onSelectVisitTime" /> </a-col>
</a-form-model-item> <a-col :lg="6" :sm="12">
</a-col> <a-form-model-item label="EOB编号">
<a-col :md="24" class="none-label"> <a-input v-model="form.eobNo" placeholder="EOB编号" />
<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="创建时间">
<a-button class="mar-left10" type="primary" @click.stop="handlerReset"> <a-range-picker
<Icon name="ssireset" :size="14" />重置 format="YYYY-MM-DD"
</a-button> v-model="form.dateRange"
<a-button class="mar-left10" type="primary" @click="addNewEvt"> :placeholder="['开始时间', '结束时间']"
<Icon name="ssiadd" :size="14" />新建回款 @change="onSelectVisitTime"
</a-button> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> <a-col :lg="6" :sm="12">
</a-form-model> <a-form-model-item label="状态">
<!-- table --> <a-select
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" > v-model="form.backStatus"
<template slot="eobSts" slot-scope="text"> placeholder="请选择状态"
{{text==1?'待回款':'已回款'}} allowClear
</template> >
<template slot="operation" slot-scope="text, record, index"> <a-select-option
<a-button type="link" @click.stop="editEvt(record, true)">修改</a-button> v-for="item in backStatusOptions"
<a-button type="link" class="success" @click.stop="editEvt(record)">查看</a-button> :key="item.value"
<a-button v-if="record.backMoneyNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> :value="item.value"
</template> >
</a-table> {{ item.name }}
<BurtPagination :pagination="pagination" @pageChange="getData" /> </a-select-option>
</div> </a-select>
</template> </a-form-model-item>
</a-col>
<script> <a-col :lg="6" :sm="12">
import BurtPagination from "@/components/CUSTOMER/pagation"; <a-form-model-item label="回款金额">
import moment from "moment"; <a-input v-model="form.backAmountCny" placeholder="回款金额" />
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: "residueBackAmount", ellipsis: true, width: 130,}, <a-input v-model="form.backMoneyNo" placeholder="回款编号" />
{ title: "EOB编号", dataIndex: "eobNos", ellipsis: true, width: 140 }, </a-form-model-item>
{ title: "EOB备注", dataIndex: "eobRemark", ellipsis: true, width: 140 }, </a-col>
{ title: "创建时间", dataIndex: "createDate", ellipsis: true, width: 110 }, <a-col :md="24" class="none-label">
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px", align: "center"}, <a-form-model-item label="button">
]; <a-button class="mar-left10" type="primary" @click="handlerSearch">
export default { <Icon name="ssisearch_active" :size="14" />查询
data() { </a-button>
return { <a-button
columns, class="mar-left10"
form: { type="primary"
payorCode: '', @click.stop="handlerReset"
eobNo: '', >
dateRange: [], //创建时间范围 <Icon name="ssireset" :size="14" />重置
startDate: '', </a-button>
endDate: '' <a-button class="mar-left10" type="primary" @click="addNewEvt">
}, <Icon name="ssiadd" :size="14" />新建回款
dataList: [], </a-button>
companyOptions: [], //保险公司 <a-button class="mar-left10" type="primary" @click="exportExcel">
pagination: { <Icon name="ssidaochu" :size="14" />导出
pageNum: 1, </a-button>
pageSize: 10, </a-form-model-item>
total: 0, </a-col>
}, </a-row>
}; </a-form-model>
}, <!-- table -->
components: { <a-table
BurtPagination, :columns="columns"
}, :data-source="dataList"
created(){ :scroll="{ x: true }"
this.getData(); :pagination="false"
this._getCompanyOptions(); >
}, <template slot="eobSts" slot-scope="text">
methods: { {{ text == 1 ? "待回款" : "已回款" }}
moment, </template>
pageChange(pager) { <template slot="operation" slot-scope="text, record, index">
const { current } = pager; <a-button type="link" @click.stop="editEvt(record, true)"
this.pagination.pageNum = current; >修改</a-button
this.getData(); >
}, <a-button type="link" class="success" @click.stop="editEvt(record)"
// 重置 >查看</a-button
handlerReset() { >
this.form = { <a-button
payorCode: '', v-if="record.backMoneyNo"
eobNo: '', type="link"
dateRange: [], //创建时间范围 class="danger"
startDate: '', @click.stop="delRecord(index)"
endDate: '' >删除</a-button
} >
}, </template>
// 获取保险公司下拉选项 </a-table>
_getCompanyOptions() { <BurtPagination :pagination="pagination" @pageChange="getData" />
this.$apis.GETCOMPANYOPTIONS().then((res) => { </div>
this.companyOptions = res.content || []; </template>
});
}, <script>
// 选中就诊时间 import BurtPagination from "@/components/CUSTOMER/pagation";
onSelectVisitTime(date, dateString) { import moment from "moment";
this.form.startDate = dateString[0] + '' import { exportFile } from '@/utils/index';
this.form.endDate = dateString[1] + '' const columns = [
}, { title: "回款编号", dataIndex: "backMoneyNo", ellipsis: true, width: 150 },
handlerSearch() { { title: "EOB编号", dataIndex: "eobNos", ellipsis: true, width: 140 },
this.pagination.pageNum = 1; { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 },
this.getData(); {
}, title: "回款金额(人民币)",
getData() { dataIndex: "backAmountCny",
this.$apis.QUERYBACKMONEYLIST({ ellipsis: true,
...this.form, width: 190,
dateRange: undefined, },
pageNum: this.pagination.pageNum, {
pageSize: this.pagination.pageSize, title: "未核销余额",
}) dataIndex: "residueBackAmount",
.then((res) => { ellipsis: true,
if (res.returnCode == "0000") { width: 130,
let content = res.content || {}; },
this.pagination.total = content.total || 0; { title: "EOB备注", dataIndex: "eobRemark", ellipsis: true, width: 140 },
this.dataList = content.list || []; { title: "创建时间", dataIndex: "createDate", ellipsis: true, width: 110 },
} else { { title: "状态", dataIndex: "backStatusStr", ellipsis: true, width: 90 },
this.$message.error(res.returnMsg); {
} title: "操作",
}); dataIndex: "operation",
}, scopedSlots: { customRender: "operation" },
//新建回款 fixed: "right",
addNewEvt(){ width: "200px",
this.$router.push({ align: "center",
path: '/verification/collectionDetail', },
query: { ];
isEdit: true export default {
} data() {
}) return {
}, columns,
//编辑回款 form: {
editEvt(record, isEdit){ payorCode: "",
const { backMoneyNo } = record; eobNo: "",
localStorage.setItem('backMoneyDataDetail', JSON.stringify(record)); dateRange: [], //创建时间范围
this.$router.push({ startDate: "",
path: '/verification/collectionDetail', endDate: "",
query: { backStatus: "",
backMoneyNo, backAmountCny: "", // 回款金额
isEdit backMoneyNo: "", // 回款编号
} },
}) dataList: [],
}, companyOptions: [], //保险公司
//删除记录 pagination: {
delRecord(index) { pageNum: 1,
this.$modal.confirm({ pageSize: 10,
title: "删除", total: 0,
content: "确定删除该条记录?", },
okText: "确认", backStatusOptions: [
cancelText: "取消", { name: '全部', value: '' },
onOk: () => { { name: '已结案', value: '1' },
this.$apis.DELETEBACKMONEY({ { name: '暂存', value: '0' }
backMoneyNo: this.dataList[index].backMoneyNo, ]
}) };
.then((res) => { },
if (res.returnCode == "0000") { components: {
this.$message.success("删除成功"); BurtPagination,
this.dataList.splice(index, 1); },
} else { created() {
this.$message.error(res.returnMsg); this.getData();
} this._getCompanyOptions();
}); },
}, methods: {
onCancel: () => {}, moment,
}); pageChange(pager) {
} const { current } = pager;
}, this.pagination.pageNum = current;
}; this.getData();
</script> },
// 重置
<style lang="less" scoped> handlerReset() {
.none-label { this.form = {
text-align: right; payorCode: "",
.ant-form-item-label { eobNo: "",
opacity: 0; dateRange: [], //创建时间范围
} startDate: "",
} endDate: "",
.ant-btn .icon-class { backStatus: ""
.mg-r(10); };
} },
.success.ant-btn-link { // 获取保险公司下拉选项
color: #4cd964; _getCompanyOptions() {
} this.$apis.GETCOMPANYOPTIONS().then((res) => {
.danger.ant-btn-link { this.companyOptions = res.content || [];
color: #ff3b30; });
} },
</style> // 选中就诊时间
onSelectVisitTime(date, dateString) {
this.form.startDate = dateString[0] + "";
this.form.endDate = dateString[1] + "";
},
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
getData() {
this.$apis
.QUERYBACKMONEYLIST({
...this.form,
dateRange: undefined,
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list.map(item => {
item.backStatusStr = item.backStatus === '0' ? '暂存' : '已结案'
return item
}) || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
//新建回款
addNewEvt() {
this.$router.push({
path: "/verification/collectionDetail",
query: {
isEdit: true,
},
});
},
//编辑回款
editEvt(record, isEdit) {
const { backMoneyNo } = record;
localStorage.setItem("backMoneyDataDetail", JSON.stringify(record));
console.log(isEdit, record.backStatus)
// 已结案状态,二次确认
if (isEdit && record.backStatus === "1") {
this.$modal.confirm({
title: "修改",
content: "处于已结案状态,是否确定修改该条记录?",
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$router.push({
path: "/verification/collectionDetail",
query: {
backMoneyNo,
isEdit,
},
});
},
onCancel: () => {},
});
return;
}
this.$router.push({
path: "/verification/collectionDetail",
query: {
backMoneyNo,
isEdit,
},
});
},
//删除记录
delRecord(index) {
let content = "确定删除该条记录?"
if(this.dataList[index].backStatus === "1") {
content = "处于已结案状态,确定删除该条记录?"
}
this.$modal.confirm({
title: "删除",
content,
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$apis
.DELETEBACKMONEY({
backMoneyNo: this.dataList[index].backMoneyNo,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
onCancel: () => {},
});
},
//导出报表
exportExcel(){
let filter = {
...this.form,
dateRange: undefined,
}
this.$apis.EXPORTBACKMONEYREPORT(filter).then(res => {
exportFile(res, '回款列表.xls');
})
}
},
};
</script>
<style lang="less" scoped>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</style>
<template> <template>
<div class="white_bg burt-container"> <div class="white_bg burt-container">
<Goback title="回款详情" /> <Goback title="回款详情" />
<!-- form --> <a-tabs v-model="activeKey" @change="paneChange">
<a-form-model ref="form" layout="vertical" :model="form"> <a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title">
<a-row :gutter="30"> <template v-if="activeKey === '0'">
<a-col :lg="6" :sm="12"> <!-- form -->
<a-form-model-item label="保险公司"> <a-form-model ref="form" layout="vertical" :model="form">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allow-clear :disabled="!isEdit" @change="_getNewEOBList"> <a-row :gutter="30">
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode"> <a-col :lg="6" :sm="12">
{{ item.longName }} <a-form-model-item label="保险公司">
</a-select-option> <a-select
</a-select> v-model="form.payorCode"
</a-form-model-item> placeholder="请选择保险公司"
</a-col> allow-clear
<a-col :lg="5" :sm="12"> :disabled="!isEdit"
<a-form-model-item label="回款日期"> @change="changePayor"
<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-select-option
</a-col> v-for="item in companyOptions"
<a-col :lg="5" :sm="12"> :key="item.id"
<a-form-model-item label="回款金额(人民币)"> :value="item.payorCode"
<a-input type="number" v-model="form.backAmountCny" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> >
</a-form-model-item> {{ item.longName }}
</a-col> </a-select-option>
<a-col :lg="5" :sm="12"> </a-select>
<a-form-model-item label="回款金额(美元)"> </a-form-model-item>
<a-input type="number" v-model="form.backAmountUsd" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> </a-col>
</a-form-model-item> <a-col :lg="5" :sm="12">
</a-col> <a-form-model-item label="回款日期">
<a-col :lg="6" :sm="12"> <a-date-picker
<a-form-model-item label="汇率差"> format="YYYY-MM-DD"
<a-input v-model="form.backExchangeRate" placeholder="请输入金额" allow-clear :disabled="!isEdit" /> format-value="YYYY-MM-DD 00:00:00"
</a-form-model-item> v-model="form.backDate"
</a-col> placeholder="选择日期"
<a-col :lg="5" :sm="12"> allow-clear
<a-form-model-item label="EOB编号"> :disabled="!isEdit"
<a-input v-model="form.eobNos" placeholder="请输入EOB编号" 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-upload name="file" :multiple="false" :showUploadList="true" :disabled="!isEdit" <a-input
:fileList="fileList" type="number"
:customRequest="(file)=>uploadFile(file)" v-model="form.backAmountCny"
:beforeUpload="()=>beforeUpload()" placeholder="请输入金额"
:remove="(file)=>removeFile(file)"> allow-clear
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传文件 </a-button> :disabled="!isEdit"
</a-upload> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :md="24" :lg="7" class="none-label" v-if="isEdit"> <a-col :lg="5" :sm="12">
<a-form-model-item label="button"> <a-form-model-item label="可核销余额">
<a-button class="mar-left10" type="primary" @click="addNewEvt(0)"> <a-input v-model="residueBackAmount" disabled />
<Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />暂存 </a-form-model-item>
</a-button> </a-col>
<a-button class="mar-left10" type="primary" @click="addNewEvt(1)"> <a-col :lg="5" :sm="12">
<Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />结案 <a-form-model-item label="回款金额(美元)">
</a-button> <a-input
</a-form-model-item> type="number"
</a-col> v-model="form.backAmountUsd"
</a-row> placeholder="请输入金额"
</a-form-model> allow-clear
<!-- 已关联账单 --> :disabled="!isEdit"
<template v-if="selectedRows.length > 0"> />
<div class="table-title">已关联账单</div> </a-form-model-item>
<a-table class="table-content" :columns="selectedColumns" :data-source="selectedRows" :scroll="{ x: true }" :pagination="false"> </a-col>
</a-table> <a-col :lg="6" :sm="12">
</template> <a-form-model-item label="汇率差">
<!-- table --> <a-input
<div class="table-title">账单列表</div> v-model="form.backExchangeRate"
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" :rowKey="'id'" placeholder="请输入金额"
:row-selection="{ selectedRowKeys: selectedRowKeys, onSelect: onSelectChange, onSelectAll: onSelectAll }"> allow-clear
</a-table> :disabled="!isEdit"
<BurtPagination :pagination="pagination" @pageChange="pageChange" /> />
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="EOB编号">
<a-input
v-model="form.eobNos"
placeholder="请输入EOB编号"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="EOB备注">
<a-input
v-model="form.eobRemark"
placeholder="请输入EOB备注"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="上传附件">
<a-upload
name="file"
:multiple="false"
:showUploadList="true"
:disabled="!isEdit"
:fileList="fileList"
:customRequest="(file) => uploadFile(file)"
:beforeUpload="() => beforeUpload()"
:remove="(file) => removeFile(file)"
>
<a-button type="primary">
<Icon name="ssiupload" :size="18" />上传文件
</a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</template>
<template v-else>
<!-- form -->
<a-form-model
ref="form"
:labelCol="{ span: 5 }"
:wrapperCol="{ span: 16 }"
:model="form"
class="bill-form"
>
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="保险公司">
<a-select
v-model="form.payorCode"
placeholder="请选择保险公司"
allow-clear
:disabled="!isEdit"
@change="changePayor"
>
<a-select-option
v-for="item in companyOptions"
:key="item.id"
:value="item.payorCode"
>
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="可核销余额">
<a-input v-model="residueBackAmount" disabled />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div class="bill-content">
<!-- 已关联账单 -->
<template v-if="selectedRows.length > 0">
<div class="table-title">
<span>已关联账单</span>
<a-button class="mar-left10" type="primary" @click="exportExcel">
<Icon name="ssidaochu" :size="14" />导出
</a-button>
</div>
<a-table
class="table-content"
:columns="selectedColumns"
:data-source="selectedRows"
:scroll="{ x: true, y: 450 }"
:pagination="false"
>
<template slot="operation" slot-scope="text, record, index">
<a-button
type="link"
class="danger"
@click.stop="delRecord(record, index)"
>删除</a-button
>
</template>
</a-table>
</template>
<!-- table -->
<template v-if="isEdit">
<a-row class="search-form">
<a-form-model
ref="searchForm"
layout="inline"
:labelCol="{ span: 8 }"
:wrapperCol="{ span: 16 }"
:model="searchForm"
>
<a-row :gutter="30">
<a-col :lg="6" :sm="10">
<a-form-model-item label="账单日期">
<a-range-picker
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-model="searchForm.billDate"
:placeholder="['开始时间', '结束时间']"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="10">
<a-form-model-item label="病历号">
<a-input
v-model="searchForm.mrnNo"
placeholder="请输入病历号"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="客户名称">
<a-input
v-model="searchForm.patientName"
placeholder="请输入客户名称"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="4" :sm="12">
<div class="btn-div mar-bottom10 none-label">
<a-button type="primary" @click="_getNewEOBList">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
</div>
</a-col>
</a-row>
</a-form-model>
</a-row>
<div class="table-title">账单列表</div>
<a-table
:columns="columns"
:data-source="dataList"
:scroll="{ x: true, y: 300 }"
:pagination="false"
:rowKey="'id'"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onSelect: onSelectChange,
onSelectAll: onSelectAll,
}"
>
</a-table>
<BurtPagination
:pagination="pagination"
@pageChange="pageChange"
/>
</template>
</div>
</template>
</a-tab-pane>
<div v-if="isEdit" slot="tabBarExtraContent">
<a-button class="mar-left10" type="primary" @click="addNewEvt(0)">
<Icon :name="backMoneyNo ? 'ssibaocun' : 'ssiadd'" :size="14" />暂存
</a-button>
<a-button class="mar-left10" type="primary" @click="addNewEvt(1)">
<Icon :name="backMoneyNo ? 'ssibaocun' : 'ssiadd'" :size="14" />结案
</a-button>
</div>
</a-tabs>
</div> </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 {EOBStatusOptions} from '@/utils/utilsdictOptions.js' import { EOBStatusOptions } from "@/utils/utilsdictOptions.js";
import { exportFile } from '@/utils/index';
import moment from "moment"; import moment from "moment";
import mixins from "@/mixins"; import mixins from "@/mixins";
export default { export default {
...@@ -89,12 +277,13 @@ export default { ...@@ -89,12 +277,13 @@ export default {
EOBStatusOptions, EOBStatusOptions,
dialogShow: false, dialogShow: false,
form: { form: {
payorCode: '', payorCode: "",
backDate: null, backDate: null,
backAmountCny: '', backAmountCny: "",
backAmountUsd: '', backAmountUsd: "",
backExchangeRate: '', backExchangeRate: "",
eobNos: '' // EOB编号 eobNos: "", // EOB编号
eobRemark: "", // EOB备注
}, },
fileList: [], // 上传文件列表 fileList: [], // 上传文件列表
dataList: [], dataList: [],
...@@ -102,16 +291,30 @@ export default { ...@@ -102,16 +291,30 @@ export default {
companyOptions: [], //保险公司 companyOptions: [], //保险公司
pagination: { pagination: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 5,
total: 0, total: 0,
}, },
selectedRowKeys: [], // Check here to configure the default column selectedRowKeys: [], // Check here to configure the default column
selectedRows: [], // Check here to configure the default column selectedRows: [], // Check here to configure the default column
backMoneyNo: '', 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: {
billDate: [],
mrnNo: "", // 病历号
patientName: "", // 客户名字
},
savedStatus: false, //是否已保存
relatedList: [],
panes: [
{ title: "基础信息", key: "0", show: true, content: "PaymentClaims" },
{ title: "账单列表", key: "1", show: false, content: "Insurance" },
],
activeKey: "0",
}; };
}, },
mixins: [mixins], mixins: [mixins],
...@@ -121,49 +324,173 @@ export default { ...@@ -121,49 +324,173 @@ export default {
}, },
computed: { computed: {
columns() { columns() {
const base = [ const base = [
{ title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 150 }, {
// { title: "病历号", dataIndex: "mrnNo", ellipsis: true, width: 195 }, title: "账单编号",
{ title: "客户姓名",dataIndex: "patientName", ellipsis: true, width: 110 }, dataIndex: "receiptNo",
// { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 160 }, ellipsis: true,
{ title: "账单日期", dataIndex: "createDate", ellipsis: true, width: 150 }, width: 150,
{ title: "收银", dataIndex: "receiptTellerName", ellipsis: true, width: 120,}, },
{ title: "账单金额", dataIndex: "actualAmount", ellipsis: true, width: 150,}, {
{ title: "回款金额", dataIndex: "backAmount", ellipsis: true, width: 150}, title: "账单状态",
{ title: "余额", dataIndex: "residueBackAmount", ellipsis: true, width: 150,}, dataIndex: "status",
{ title: "回款日期", dataIndex: "receiptDate", ellipsis: true, width: 150,}, ellipsis: true,
]; width: 150,
return base },
{ title: "病历号", dataIndex: "mrnNo", ellipsis: true, width: 195 },
{
title: "客户姓名",
dataIndex: "patientName",
ellipsis: true,
width: 160,
},
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 195 },
{
title: "账单日期",
dataIndex: "receiptDate",
ellipsis: true,
width: 180,
},
{
title: "收银",
dataIndex: "receiptTellerName",
ellipsis: true,
width: 120,
},
{
title: "理赔账单金额",
dataIndex: "actualAmount",
ellipsis: true,
width: 150,
},
{
title: "回款金额",
dataIndex: "writeOffAmount",
ellipsis: true,
width: 150,
},
{
title: "个人欠费",
dataIndex: "arrearsAmountShow",
ellipsis: true,
width: 150,
},
{
title: "未清余额",
dataIndex: "residueBackAmount",
ellipsis: true,
width: 150,
},
];
return base;
}, },
selectedColumns() { selectedColumns() {
const base = JSON.parse(JSON.stringify(this.columns)) const base = JSON.parse(JSON.stringify(this.columns));
base[5] = { title: "回款金额", dataIndex: "backAmount", ellipsis: true, width: 150, customRender: (val, row) => { const changeAmount = this.changeAmount;
return <a-input-number v-model={row.backAmount} allow-clear /> base[8] = {
} } title: "回款金额",
return base dataIndex: "backAmount",
} ellipsis: true,
width: 150,
customRender: (val, row) => {
return (
<a-input-number
v-model={row.backAmount}
allow-clear
disabled={!this.isEdit}
onBlur={() => {
changeAmount(row);
}}
/>
);
},
};
base[10] = {
title: "未清余额",
dataIndex: "residueBackAmount",
ellipsis: true,
width: 150,
customRender: (val, row) => {
const residueBackAmount =
Number(row.currentReceiptAmount || 0) - Number(row.backAmount || 0) - Number(row.arrearsAmount || 0);
return Number(residueBackAmount.toFixed(2));
},
};
base[9] = {
title: "个人欠费",
dataIndex: "arrearsAmount",
ellipsis: true,
width: 150,
customRender: (val, row) => {
return (
<a-input-number
v-model={row.arrearsAmount}
allow-clear
disabled={!this.isEdit}
onBlur={() => {
changeAmount(row);
}}
/>
);
},
};
base.splice(8, 0, {
title: "余末金额",
dataIndex: "currentReceiptAmount",
ellipsis: true,
width: 150,
});
base.push({
title: "回款日期",
dataIndex: "backDate",
ellipsis: true,
width: 150,
});
if (this.isEdit) {
base.push({
title: "操作",
dataIndex: "operation",
fixed: "right",
width: 100,
scopedSlots: { customRender: "operation" },
});
}
return base;
},
// 可核销余额
residueBackAmount() {
let totalMoney = Number(this.form.backAmountCny || 0);
this.selectedRows.forEach((item) => {
totalMoney -= Number(item.backAmount);
});
return Number(totalMoney.toFixed(2));
},
}, },
created(){ created() {
const { backMoneyNo, isEdit } = this.$route.query const { backMoneyNo, isEdit } = this.$route.query;
this.backMoneyNo = backMoneyNo; this.backMoneyNo = backMoneyNo;
this.isEdit = isEdit; this.isEdit = isEdit;
this._getCompanyOptions(); this._getCompanyOptions();
if(backMoneyNo){ if (backMoneyNo) {
const backMoneyDataDetail = JSON.parse(localStorage.getItem('backMoneyDataDetail') || '{}'); const backMoneyDataDetail = JSON.parse(
this.form = backMoneyDataDetail localStorage.getItem("backMoneyDataDetail") || "{}"
this.form.backDate = this.form.backDate ? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00') : null );
this.form = backMoneyDataDetail;
this.form.backDate = this.form.backDate
? moment(this.form.backDate).format("YYYY-MM-DD 00:00:00")
: null;
// 如果有上传附件则显示列表 // 如果有上传附件则显示列表
if(backMoneyDataDetail.fileList) { if (backMoneyDataDetail.fileList) {
this.fileList = backMoneyDataDetail.fileList.map(d => { this.fileList = backMoneyDataDetail.fileList.map((d) => {
const file = { const file = {
uid: Math.random()*10000, uid: Math.random() * 10000,
name: d.fileName, name: d.fileName,
status: 'done', status: "done",
url: d.fileUrl, url: d.fileUrl,
} };
return file return file;
}) });
} }
this.getData(); this.getData();
} }
...@@ -171,35 +498,112 @@ export default { ...@@ -171,35 +498,112 @@ export default {
}, },
methods: { methods: {
moment, moment,
paneChange() {
this.panes.forEach((item) => {
item.show = false;
});
this.panes[Number(this.activeKey)].show = true;
},
changeAmount(row) {
if (Number(row.actualAmount || 0) - Number(row.backAmount || 0) < 0) {
this.$message.warning("录入账单回款金额大于账单金额");
}
},
onSelectChange(selectedRow, selected) { onSelectChange(selectedRow, selected) {
if(selected) { if (selected) {
this.selectedRowKeys.push(selectedRow.id) this.selectedRowKeys.push(selectedRow.id);
this.selectedRows.push(selectedRow) this.selectedRows.push(selectedRow);
} else { } else {
const index = this.selectedRowKeys.findIndex(item => item === selectedRow.id) const index = this.selectedRowKeys.findIndex(
this.selectedRowKeys.splice(index, 1) (item) => item === selectedRow.id
this.selectedRows.splice(index, 1) );
this.selectedRowKeys.splice(index, 1);
this.selectedRows.splice(index, 1);
this._confirmDelReceipt([selectedRow]);
} }
}, },
onSelectAll(selected, selectedRows, changeRows) { onSelectAll(selected, selectedRows, changeRows) {
console.log(selected, selectedRows, changeRows) console.log(selected, selectedRows, changeRows);
if(selected) { if (selected) {
this.selectedRowKeys = this.selectedRowKeys.concat(changeRows.map(item => item.id)) this.selectedRowKeys = this.selectedRowKeys.concat(
this.selectedRows = this.selectedRows.concat(changeRows) changeRows.map((item) => item.id)
);
this.selectedRows = this.selectedRows.concat(changeRows);
} else { } else {
changeRows.forEach(item => { changeRows.forEach((item) => {
const findIndex = this.selectedRowKeys.findIndex(rowId => rowId === item.id) const findIndex = this.selectedRowKeys.findIndex(
this.selectedRowKeys.splice(findIndex, 1) (rowId) => rowId === item.id
this.selectedRows.splice(findIndex, 1) );
this.selectedRowKeys.splice(findIndex, 1);
this.selectedRows.splice(findIndex, 1);
});
this._confirmDelReceipt(changeRows);
}
},
delRecord(record, index) {
this.selectedRowKeys.splice(index, 1);
this.selectedRows.splice(index, 1);
if (record.relationed) {
// 已经关联的调用接口删除
this._confirmDelReceipt([record]);
}
},
_confirmDelReceipt(records) {
console.log(records);
if (!this.backMoneyNo) return;
const receiptVoList = records
.filter((item) => {
const findIndex = this.relatedList.findIndex(
(rowId) => rowId === item.id
);
return findIndex > -1;
})
.map((item) => {
return {
id: item.id,
};
});
console.log(receiptVoList);
if (receiptVoList.length === 0) return;
this.$apis
.DELETERECEIPTRECORD({
backMoneyNo: this.backMoneyNo,
receiptVoList,
}) })
.then((res) => {
if (res.returnCode == "0000") {
this._getNewEOBList();
} else {
this.$message.error(res.returnMsg);
}
});
},
// 修改保险公司
changePayor() {
if (
this.selectedRowKeys.length > 0 &&
(this.form.id || this.savedStatus)
) {
this.$modal.confirm({
title: "提示",
content: "是否解除已关联账单",
okText: "确认",
cancelText: "取消",
onOk: () => {
this.selectedRowKeys = [];
this.selectedRows = [];
},
onCancel: () => {},
});
} }
this._getNewEOBList();
}, },
pageChange(pager) { pageChange(pager) {
this.pagination = { this.pagination = {
...this.pagination, ...this.pagination,
...pager ...pager,
} };
this._getNewEOBList() this._getNewEOBList();
}, },
// 获取保险公司下拉选项 // 获取保险公司下拉选项
_getCompanyOptions() { _getCompanyOptions() {
...@@ -209,88 +613,118 @@ export default { ...@@ -209,88 +613,118 @@ export default {
}, },
// 获取已关联的账单 // 获取已关联的账单
getData() { getData() {
this.$apis.QUERYBACKRECEIPTLIST({ this.$apis
pageNum: 1, .QUERYBACKRECEIPTLIST({
pageSize: 999, pageNum: 1,
backMoneyNo: this.backMoneyNo, pageSize: 999,
payorCode: this.form.payorCode backMoneyNo: this.backMoneyNo,
}) payorCode: this.form.payorCode,
.then((res) => { })
if (res.returnCode == "0000") { .then((res) => {
const list = res.content.list || []; if (res.returnCode == "0000") {
this.selectedRowKeys = list.map(d => d.id) const list = res.content.list || [];
this.selectedRows = list this.selectedRowKeys = list.map((d) => d.id);
} else { this.selectedRows = list.map((item) => {
this.$message.error(res.returnMsg); item.relationed = true;
} return item;
}); });
this.relatedList = list.map((d) => d.id);
} else {
this.$message.error(res.returnMsg);
}
});
}, },
// 获取所有账单 // 获取所有账单
_getNewEOBList(){ _getNewEOBList() {
this.$apis.QUERYBACKRECEIPTINFOLIST({ let billDate = this.searchForm.billDate || [];
this.$apis
.QUERYBACKRECEIPTINFOLIST({
pageNum: this.pagination.pageNum, pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize, pageSize: this.pagination.pageSize,
payorCode: this.form.payorCode backMoneyNo: this.backMoneyNo,
payorCode: this.form.payorCode,
...this.searchForm,
receiptEndDate: billDate[1] ? billDate[1] + " 23:59:59" : undefined,
receiptStartDate: billDate[0] ? billDate[0] + " 00:00:00" : undefined,
}) })
.then((res) => { .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.map(item => {
item.arrearsAmountShow = item.arrearsAmount
item.arrearsAmount = ''
return item
}) || [];
} else { } else {
this.$message.error(res.returnMsg); this.$message.error(res.returnMsg);
} }
}); });
}, },
//新建/保存回款 //新建/保存回款
addNewEvt(backStatus){ addNewEvt(backStatus) {
return new Promise((resolve,reject)=>{ return new Promise((resolve, reject) => {
console.log(this.selectedRows) console.log(this.selectedRows);
if(!this.form.backAmountCny){ if (!this.form.payorCode) {
this.$message.warning("请输入回款金额"); this.$message.warning("请选择保险公司");
reject(); reject();
return; return;
}
if (!this.form.backDate) {
this.$message.warning("请选择回款日期");
reject();
return;
}
if (!this.form.backAmountCny) {
this.$message.warning("请输入回款金额");
reject();
return;
} }
let receiptVoList = this.selectedRows.map(item => { let receiptVoList = this.selectedRows.map((item) => {
return { return {
id: item.id, id: item.id,
backAmount: item.backAmount, backAmount: item.backAmount,
} arrearsAmount: item.arrearsAmount,
}) };
const valid = receiptVoList.some(item => { });
return !item.backAmount const valid = receiptVoList.some((item) => {
}) const exist = !item.backAmount && item.backAmount !== 0
if(valid) { return exist;
});
if (valid) {
this.$message.warning("存在关联账单未输入回款金额"); this.$message.warning("存在关联账单未输入回款金额");
reject(); reject();
return; return;
} }
const formData = { const formData = {
...this.form, ...this.form,
receiptVoList, receiptVoList,
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'', backDate: this.form.backDate
backMoneyNo: this.backMoneyNo, //回款编号 ? moment(this.form.backDate).format("YYYY-MM-DD HH:mm:ss")
backStatus // 0暂存 1结案 : "",
} backMoneyNo: this.backMoneyNo, //回款编号
backStatus, // 0暂存 1结案
};
// 上传附件格式转换 // 上传附件格式转换
formData.fileList = this.fileList.map(d => { formData.fileList = this.fileList.map((d) => {
const file = { const file = {
fileName: d.name, fileName: d.name,
fileUrl: d.url fileUrl: d.url,
} };
return file return file;
}) });
this.$apis.SAVEBACKMONEY(formData) this.$apis.SAVEBACKMONEY(formData).then((res) => {
.then((res) => {
if (res.returnCode == "0000") { if (res.returnCode == "0000") {
this.backMoneyNo = res.content; this.backMoneyNo = res.content;
this.savedStatus = true;
this.$message.success("成功"); this.$message.success("成功");
this.selectedRowKeys = []; this.selectedRowKeys = [];
this.getData(); this.getData();
this._getNewEOBList();
// this.$router.go(-1); // this.$router.go(-1);
resolve(); resolve();
} else { } else {
...@@ -298,21 +732,21 @@ export default { ...@@ -298,21 +732,21 @@ export default {
reject(); reject();
} }
}); });
}) });
}, },
/* ======== 上传区域 ======== */ /* ======== 上传区域 ======== */
// 上传之前 // 上传之前
beforeUpload(){ beforeUpload() {
const len = this.fileList.length; const len = this.fileList.length;
if(len >= 5){ if (len >= 5) {
this.$message.warning('不能超过5个文件'); this.$message.warning("不能超过5个文件");
return false; return false;
} }
return true; return true;
}, },
// 删除文件 // 删除文件
removeFile(file){ removeFile(file) {
let index; let index;
this.fileList.forEach((item, i) => { this.fileList.forEach((item, i) => {
if (item.uid == file.uid) { if (item.uid == file.uid) {
...@@ -323,22 +757,31 @@ export default { ...@@ -323,22 +757,31 @@ export default {
return true; return true;
}, },
// 上传文件 // 上传文件
uploadFile(fileData){ uploadFile(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 tmp = { let tmp = {
uid: Math.random()*10000, uid: Math.random() * 10000,
name: res.original, name: res.original,
status: 'done', status: "done",
url: res.url, url: res.url,
} };
this.fileList.push(tmp); this.fileList.push(tmp);
this.$forceUpdate(); this.$forceUpdate();
}) });
},
//导出报表
exportExcel(){
let filter = {
backMoneyNo: this.backMoneyNo,
payorCode: this.form.payorCode,
}
this.$apis.EXPORTBACKRECEIPTLIST(filter).then(res => {
exportFile(res, '已关联账单.xls');
})
} }
}, },
}; };
...@@ -353,11 +796,20 @@ export default { ...@@ -353,11 +796,20 @@ export default {
} }
.table-title { .table-title {
font-size: 15px; font-size: 15px;
margin: 12px 0 6px; margin: 6px 0;
display: flex;
align-items: center;
justify-content: space-between;
} }
.table-content { .table-content {
margin-bottom: 8px; margin-bottom: 8px;
} }
.search-form {
margin-top: 24px;
.ant-form .ant-form-item {
margin-bottom: 4px;
}
}
.ant-btn .icon-class { .ant-btn .icon-class {
.mg-r(10); .mg-r(10);
} }
...@@ -367,4 +819,26 @@ export default { ...@@ -367,4 +819,26 @@ export default {
.danger.ant-btn-link { .danger.ant-btn-link {
color: #ff3b30; color: #ff3b30;
} }
.burt-container {
height: calc(100vh - 86px);
display: flex;
flex-direction: column;
::v-deep {
.ant-tabs {
flex: 1;
min-height: 0;
}
}
}
.bill-content {
height: calc(100vh - 380px);
overflow-y: auto;
overflow-x: hidden;
padding-right: 12px;
}
::v-deep .bill-form {
.ant-form .ant-form-item {
margin-bottom: 4px !important;
}
}
</style> </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