Commit 519332d8 authored by 王安伟's avatar 王安伟

回款管理页面测试问题修复

parent 27f0a6d8
<template>
<!--分页-->
<div class="flex my-pagination" v-if="pagination.total > pagination.pageSize">
<a-pagination
v-model="pagination.pageNum"
:total="pagination.total"
:page-size="pagination.pageSize"
:item-render="itemRender"
@change="pageChange"
/>
<a-input
v-model.trim="jumpPage"
class="jump-page"
type="number"
:min="0"
@blur="inputPageChange"
/>
</div>
</template>
<script>
export default {
props: {
//分页器
pagination: {
default: {},
},
},
data() {
return {
//跳转到第几页
jumpPage: "",
};
},
methods: {
//自定义分页
itemRender(current, type, originalElement) {
if (type === "prev") {
return <li class="page pre">上一页</li>;
} else if (type === "next") {
return <li class="page next">下一页</li>;
} else if (type === "page") {
//当前页面
if (current == this.pagination.pageNum) {
return (
<div class="cur-page page">
<span class="cur">{current}</span>/
<span class="total">
{Math.ceil(this.pagination.total / this.pagination.pageSize)}
</span>
</div>
);
} else {
return null;
}
} else if (type == "jump-prev") {
return null;
} else if (type == "jump-next") {
return null;
}
return originalElement;
},
//跳转页面
inputPageChange() {
this.jumpPage = parseInt(this.jumpPage);
let pages = Math.ceil(this.pagination.total / this.pagination.pageSize);
this.jumpPage = this.jumpPage < 0 ? 0 : this.jumpPage;
this.jumpPage = this.jumpPage > pages ? pages : this.jumpPage;
this.pagination.pageNum = this.jumpPage;
this.$emit("pageChange", { pageNum: this.jumpPage });
},
//改变分页
pageChange(pager) {
this.pagination.pageNum = pager;
this.$emit("pageChange", { pageNum: pager });
},
},
};
</script>
<style lang="less" scoped>
.my-pagination {
justify-content: flex-end;
margin-top: 33px;
.page {
width: 80px;
height: 36px;
line-height: 36px;
background: #f8fafb;
font-weight: 400;
color: #252631;
&.cur-page {
background: transparent;
}
span {
font-size: 16px;
font-weight: 400;
&.cur {
color: #4d7cfe;
}
}
}
.jump-page {
width: 80px;
margin-left: 30px;
height: 36px;
text-align: center;
}
}
::v-deep .ant-pagination-jump-prev,
::v-deep .ant-pagination-jump-next {
display: none !important;
}
</style>
<template>
<!--分页-->
<div class="flex my-pagination" v-if="pagination.total > pagination.pageSize">
<a-pagination
v-model="pagination.pageNum"
:total="pagination.total"
:page-size="pagination.pageSize"
:item-render="itemRender"
@change="pageChange"
/>
<a-input
v-model.trim="jumpPage"
class="jump-page"
type="number"
:min="0"
@blur="inputPageChange"
/>
</div>
</template>
<script>
export default {
props: {
//分页器
pagination: {
default: {},
},
},
data() {
return {
//跳转到第几页
jumpPage: "",
};
},
methods: {
//自定义分页
itemRender(current, type, originalElement) {
if (type === "prev") {
return <li class="page pre">上一页</li>;
} else if (type === "next") {
return <li class="page next">下一页</li>;
} else if (type === "page") {
//当前页面
if (current == this.pagination.pageNum) {
return (
<div class="cur-page page">
<span class="cur">{current}</span>/
<span class="total">
{Math.ceil(this.pagination.total / this.pagination.pageSize)}
</span>
</div>
);
} else {
return null;
}
} else if (type == "jump-prev") {
return null;
} else if (type == "jump-next") {
return null;
}
return originalElement;
},
//跳转页面
inputPageChange() {
this.jumpPage = parseInt(this.jumpPage);
let pages = Math.ceil(this.pagination.total / this.pagination.pageSize);
this.jumpPage = this.jumpPage < 0 ? 0 : this.jumpPage;
this.jumpPage = this.jumpPage > pages ? pages : this.jumpPage;
this.pagination.pageNum = this.jumpPage;
this.$emit("pageChange", { pageNum: this.jumpPage });
},
//改变分页
pageChange(pager) {
this.pagination.pageNum = pager;
this.$emit("pageChange", { pageNum: pager });
},
},
};
</script>
<style lang="less" scoped>
.my-pagination {
justify-content: flex-end;
margin-top: 33px;
.page {
width: 80px;
height: 36px;
line-height: 36px;
background: #f8fafb;
font-weight: 400;
color: #252631;
&.cur-page {
background: transparent;
}
span {
font-size: 16px;
font-weight: 400;
&.cur {
color: #4d7cfe;
}
}
}
.jump-page {
width: 80px;
margin-left: 30px;
height: 36px;
text-align: center;
}
}
::v-deep .ant-pagination-jump-prev,
::v-deep .ant-pagination-jump-next {
display: none !important;
}
</style>
<template>
<!-- 收费查询-账单查询 -->
<div class="white_bg burt-container custom-info">
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear show-search mode="multiple"
:filterOption="filterCode">
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="看诊医生">
<a-select v-model="form.doctorCode" placeholder="请选择看诊医生" allowClear>
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode">
{{ item.doctorDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="收费时间">
<a-range-picker format="YYYY-MM-DD" v-model="form.dateRange" :placeholder="['开始时间','结束时间']" @change="onSelectVisitTime" />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="是否已关联寄送单">
<a-select v-model="form.isSend" placeholder="请选择是否已关联寄送单" allowClear>
<a-select-option value="Y" allow-clear>
</a-select-option>
<a-select-option value="N" allow-clear>
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="是否已回款">
<a-select v-model="form.isEobBack" placeholder="请选择是否已回款" allowClear>
<a-select-option value="Y" allow-clear>
</a-select-option>
<a-select-option value="N" allow-clear>
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单类型">
<a-select v-model="form.receiptType" placeholder="请选择账单类型" allowClear>
<a-select-option v-for="item in receiptTypeOptions" :key="item.value" :value="item.value">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单编号">
<a-input v-model="form.receiptNo" placeholder="请输入账单编号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="状态">
<a-select v-model="form.status" placeholder="请选择状态" allowClear>
<a-select-option v-for="item in statusOptions" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="8" :lg="3" :sm="3" class="none-label">
<a-form-model-item label="button">
<!-- <a-button>更新数据</a-button> -->
<!-- <a-button class="mar-left10" type="primary" @click="addNewCharge">
<!-- 收费查询-账单查询 -->
<div class="white_bg burt-container custom-info">
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select
v-model="form.payorId"
placeholder="请选择保险公司"
allowClear
show-search
mode="multiple"
:filterOption="filterCode"
>
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="看诊医生">
<a-select v-model="form.doctorCode" placeholder="请选择看诊医生" allowClear>
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode">
{{ item.doctorDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="收费时间">
<a-range-picker
format="YYYY-MM-DD"
v-model="form.dateRange"
:placeholder="['开始时间', '结束时间']"
@change="onSelectVisitTime"
/>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="是否已关联寄送单">
<a-select v-model="form.isSend" placeholder="请选择是否已关联寄送单" allowClear>
<a-select-option value="Y" allow-clear></a-select-option>
<a-select-option value="N" allow-clear></a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="是否已回款">
<a-select v-model="form.isEobBack" placeholder="请选择是否已回款" allowClear>
<a-select-option value="Y" allow-clear></a-select-option>
<a-select-option value="N" allow-clear></a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单类型">
<a-select v-model="form.receiptType" placeholder="请选择账单类型" allowClear>
<a-select-option v-for="item in receiptTypeOptions" :key="item.value" :value="item.value">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="账单编号">
<a-input v-model="form.receiptNo" placeholder="请输入账单编号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="状态">
<a-select v-model="form.status" placeholder="请选择状态" allowClear>
<a-select-option v-for="item in statusOptions" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="8" :lg="3" :sm="3" class="none-label">
<a-form-model-item label="button">
<!-- <a-button>更新数据</a-button> -->
<!-- <a-button class="mar-left10" type="primary" @click="addNewCharge">
<Icon name="ssiadd" :size="14" />新建预授权</a-button> -->
<a-button class="mar-left10" type="primary" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
<a-button class="mar-left10" type="primary" @click="exportExcel">
<Icon name="ssidaochu" :size="14" />导出
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-button class="mar-left10" type="primary" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
<a-button class="mar-left10" type="primary" @click="exportExcel">
<Icon name="ssidaochu" :size="14" />导出
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
<template slot="operation" slot-scope="record">
<!-- <a-button type="link" @click.stop="receiptEvt(record)">结算</a-button> -->
<a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button>
<!-- <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
<template slot="operation" slot-scope="record">
<!-- <a-button type="link" @click.stop="receiptEvt(record)">结算</a-button> -->
<a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button>
<!-- <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm> -->
</template>
<template slot="isSend" slot-scope="text">
{{text == 'Y' ? '' : text == 'N' ? '' : ''}}
</template>
<template slot="isEob" slot-scope="text">
{{text == 'Y' ? '' : text == 'N' ? '' : ''}}
</template>
<template slot="isEobBack" slot-scope="text">
{{text == 'Y' ? '' : text == 'N' ? '' : ''}}
</template>
<template slot="status" slot-scope="text">
<span :style="{color: text == 2 ? 'red' : ''}">{{ text==1?'有效':text==2?'无效':'' }}</span>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="_getChargeList" />
</div>
</template>
<template slot="isSend" slot-scope="text">
{{ text == 'Y' ? '' : text == 'N' ? '' : '' }}
</template>
<template slot="isEob" slot-scope="text">
{{ text == 'Y' ? '' : text == 'N' ? '' : '' }}
</template>
<template slot="isEobBack" slot-scope="text">
{{ text == 'Y' ? '' : text == 'N' ? '' : '' }}
</template>
<template slot="status" slot-scope="text">
<span :style="{ color: text == 2 ? 'red' : '' }">{{ text == 1 ? '有效' : text == 2 ? '无效' : '' }}</span>
</template>
<template slot="redText" slot-scope="text">
<span style="color: red">{{ text }}</span>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="_getChargeList" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import { mapState } from "vuex"
import moment from "moment";
import BurtPagination from '@/components/CUSTOMER/pagation';
import { mapState } from 'vuex';
import moment from 'moment';
import { receiptTypeOptions } from '@/utils/utilsdictOptions.js';
import { exportFile } from '@/utils/index';
export default {
data() {
const columns = [
{ title: "序号", dataIndex: "index", key:"index",align:'center', width: 80,scopedSlots: { customRender: "index" }},
{ title: "收费时间", dataIndex: "receiptDate", width: 180 },
{ title: "账单编号", dataIndex: "receiptNo", width: 180 },
{ title: "账单类型", dataIndex: "receiptTypeStr", width: 130 },
{ title: "状态", dataIndex: "status", width: 130,scopedSlots: { customRender: "status" } },
{ title: "病历号", dataIndex: "mrnNo",width: 180},
{ title: "客户姓名",dataIndex: "patientName",width: 120,},
{ title: "保险公司", dataIndex: "payorName", width: 200 },
{ title: "保险卡", dataIndex: "cardNo", width: 200 },
{ title: "客户生日", dataIndex: "birthday", width: 200 },
{ title: "就诊医生", dataIndex: "doctorName", width: 150 },
{ title: "是否已关联寄送单", dataIndex: "isSend", width: 180,scopedSlots: { customRender: "isSend" } },
{ title: "是否已回款", dataIndex: "isEobBack", width: 180,scopedSlots: { customRender: "isEobBack" } },
{ title: "应收金额", dataIndex: "chargeAmount", width: 180 },
{ title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
{ title: "减免金额", dataIndex: "reduceAmount", width: 180 },
{ title: "应付金额", dataIndex: "payableAmount", width: 180 },
{ title: "客户自付", dataIndex: "selfpaidAmount", width: 180 },
{ title: "理赔金额", dataIndex: "actualAmount", width: 180 },
{ title: "保险已支付", dataIndex: "backAmount", width: 180 },
{ title: "保险欠费", dataIndex: "insuranceArrearsAmount", width: 180 },
{ title: "个人欠费", dataIndex: "arrearsAmount", width: 180 },
{ title: "备注", dataIndex: "remark", width: 200 },
{ title: "未清余额", dataIndex: "residueBackAmount", width: 180 },
{ title: "账龄", dataIndex: "diffDay", width: 180 },
{ title: "操作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }, align: "center"},
];
return {
columns,
receiptTypeOptions,
form: {},
pageForm: {
doctorCode: "",
patientName: "",
mrnNo: "",
paymentCode: "",
payorIds: [],
visitTimeEnd: "",
visitTimeStart: "",
receiptType: "",
receiptNo: ""
},
patientTypeOptions: [
{
name: "商保",
code: 1,
},
], //客户类型
companyOptions: [], //保险公司
doctorOptions: [], //就诊医生
paymentOptions: [
{
name: "商保",
code: 1,
},
], //支付方式
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
receiptTypeDict: {
'1': '收费',
'2': '退费'
},
statusOptions: [
{
name: '无效',
code:2
},
{
name: '有效',
code: 1
}
]
};
},
components: {
BurtPagination,
},
computed: {
...mapState({
userInfo: (state) => state.common.userInfo
})
},
created() {
this._getCompanyOptions();
this._getDoctorListNoPage();//获取医生下拉选项
},
methods: {
moment,
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
data() {
const columns = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
align: 'center',
width: 80,
scopedSlots: { customRender: 'index' }
},
{ title: '收费时间', dataIndex: 'receiptDate', width: 180 },
{ title: '账单编号', dataIndex: 'receiptNo', width: 180 },
{ title: '账单类型', dataIndex: 'receiptTypeStr', width: 130 },
{ title: '状态', dataIndex: 'status', width: 130, scopedSlots: { customRender: 'status' } },
{ title: '病历号', dataIndex: 'mrnNo', width: 180 },
{ title: '客户姓名', dataIndex: 'patientName', width: 120 },
{ title: '保险公司', dataIndex: 'payorName', width: 200 },
{ title: '保险卡', dataIndex: 'cardNo', width: 200 },
{ title: '客户生日', dataIndex: 'birthday', width: 200 },
{ title: '就诊医生', dataIndex: 'doctorName', width: 150 },
{ title: '是否已关联寄送单', dataIndex: 'isSend', width: 180, scopedSlots: { customRender: 'isSend' } },
{ title: '是否已回款', dataIndex: 'isEobBack', width: 180, scopedSlots: { customRender: 'isEobBack' } },
{ title: '应收金额', dataIndex: 'chargeAmount', width: 180 },
{ title: '折扣(%)', dataIndex: 'discountAmount', width: 180 },
{ title: '减免金额', dataIndex: 'reduceAmount', width: 180 },
{ title: '应付金额', dataIndex: 'payableAmount', width: 180 },
{ title: '客户自付', dataIndex: 'selfpaidAmount', width: 180 },
{ title: '理赔金额', dataIndex: 'actualAmount', width: 180 },
{ title: '保险已支付', dataIndex: 'backAmount', width: 180 },
{ title: '保险欠费', dataIndex: 'insuranceArrearsAmount', width: 180 },
{ title: '个人欠费', dataIndex: 'arrearsAmount', width: 180, scopedSlots: { customRender: 'redText' } },
{ title: '备注', dataIndex: 'remark', width: 200, scopedSlots: { customRender: 'redText' } },
{ title: '未清余额', dataIndex: 'residueBackAmount', width: 180 },
{ title: '账龄', dataIndex: 'diffDay', width: 180 },
{
title: '操作',
key: 'operation',
width: '175px',
fixed: 'right',
scopedSlots: { customRender: 'operation' },
align: 'center'
}
];
return {
columns,
receiptTypeOptions,
form: {},
pageForm: {
doctorCode: '',
patientName: '',
mrnNo: '',
paymentCode: '',
payorIds: [],
visitTimeEnd: '',
visitTimeStart: '',
receiptType: '',
receiptNo: ''
},
patientTypeOptions: [
{
name: '商保',
code: 1
}
], //客户类型
companyOptions: [], //保险公司
doctorOptions: [], //就诊医生
paymentOptions: [
{
name: '商保',
code: 1
}
], //支付方式
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0
},
receiptTypeDict: {
1: '收费',
2: '退费'
},
statusOptions: [
{
name: '无效',
code: 2
},
{
name: '有效',
code: 1
}
]
};
},
components: {
BurtPagination
},
computed: {
...mapState({
userInfo: (state) => state.common.userInfo
})
},
// 获取列表数据
_getChargeList() {
const data = {
...this.pageForm,
...this.pagination,
};
this.$apis.GETCHARGELIST(data).then((res) => {
let content = res.content || {};
this.dataList = content.list.map(item => {
item.receiptTypeStr = this.receiptTypeDict[item.receiptType] || ''
return item
}) || [];
this.pagination.total = content.total || 0;
});
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage(){
this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => {
if (res.returnCode === "0000") {
this.doctorOptions = res.content || [];
}else{
this.$message.success(res.returnMsg);
}
});
},
// 选中就诊时间
onSelectVisitTime(date, dateString) {
this.form.visitTimeStart = dateString[0] + ' 00:00:00'
this.form.visitTimeEnd = dateString[1] + ' 23:59:59'
console.log(date, dateString);
},
// 重置
handlerReset() {
this.form = {}
},
//查看
detailEvt(record) {
localStorage.setItem('chargeQueryDetail', JSON.stringify(record));
const { receiptNo } = record;
this.$router.push({
name: "chargeQueryDetail",
query: { receiptNo },
});
},
//账单结算
receiptEvt(record){
this.$modal.confirm({
title: "结算",
content: "确定结算该账单?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.RECEIPTSETTLEMENT({
id: record.id
}).then((res) => {
if (res.returnCode === "0000") {
this.$message.success('结算成功');
this._getChargeList();
}else{
this.$message.error(res.returnMsg);
}
});
},
});
},
handlerSearch() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.pagination.pageNum = 1;
this.pageForm = this.$lodash.cloneDeep({...this.form, dateRange: undefined});
this._getChargeList();
});
},
// 新建账单信息
addNewCharge() {
// this.$router.push("/customer/edit");
},
created() {
this._getCompanyOptions();
this._getDoctorListNoPage(); //获取医生下拉选项
},
methods: {
moment,
// 选择框筛选
filterCode(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
},
// 获取列表数据
_getChargeList() {
const data = {
...this.pageForm,
...this.pagination
};
this.$apis.GETCHARGELIST(data).then((res) => {
let content = res.content || {};
this.dataList =
content.list.map((item) => {
item.receiptTypeStr = this.receiptTypeDict[item.receiptType] || '';
return item;
}) || [];
this.pagination.total = content.total || 0;
});
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取看诊医生下拉选项
_getDoctorListNoPage() {
this.$apis.GETDOCTORlISTNOPAGE({ providerId: this.userInfo.providerId }).then((res) => {
if (res.returnCode === '0000') {
this.doctorOptions = res.content || [];
} else {
this.$message.success(res.returnMsg);
}
});
},
// 选中就诊时间
onSelectVisitTime(date, dateString) {
this.form.visitTimeStart = dateString[0] + ' 00:00:00';
this.form.visitTimeEnd = dateString[1] + ' 23:59:59';
console.log(date, dateString);
},
// 重置
handlerReset() {
this.form = {};
},
//查看
detailEvt(record) {
localStorage.setItem('chargeQueryDetail', JSON.stringify(record));
const { receiptNo } = record;
this.$router.push({
name: 'chargeQueryDetail',
query: { receiptNo }
});
},
//账单结算
receiptEvt(record) {
this.$modal.confirm({
title: '结算',
content: '确定结算该账单?',
okText: '确定',
cancelText: '取消',
onOk: () => {
this.$apis
.RECEIPTSETTLEMENT({
id: record.id
})
.then((res) => {
if (res.returnCode === '0000') {
this.$message.success('结算成功');
this._getChargeList();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
handlerSearch() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.pagination.pageNum = 1;
this.pageForm = this.$lodash.cloneDeep({ ...this.form, dateRange: undefined });
this._getChargeList();
});
},
// 新建账单信息
addNewCharge() {
// this.$router.push("/customer/edit");
},
//导出报表
exportExcel(){
exportExcel() {
let filter = {
...this.form,
}
this.$apis.RceiptListReport(filter).then(res => {
exportFile(res, '账单报表.xls');
})
}
},
...this.form
};
this.$apis.RceiptListReport(filter).then((res) => {
exportFile(res, '账单报表.xls');
});
}
}
};
</script>
<style lang="less" scoped>
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
.mg-r(10);
}
</style>
......@@ -5,25 +5,25 @@
<a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title">
<a-form-model ref="ruleForm" :model="form" :rules="rules">
<a-row :gutter="30">
<a-col :lg="7" :sm="12">
<a-form-model-item label="保险公司" prop="payorCode">
<a-select
v-model="form.payorCode"
placeholder="请选择保险公司"
allow-clear
show-search
:disabled="!isEdit"
style="min-width: 200px"
@change="changePayor"
:filterOption="filterCode"
>
<a-select-option v-for="item in companyOptions" :key="item.payorCode" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<template v-if="activeKey === '0'">
<a-col :lg="7" :sm="12">
<a-form-model-item label="保险公司" prop="payorCode">
<a-select
v-model="form.payorCode"
placeholder="请选择保险公司"
allow-clear
show-search
:disabled="!isEdit"
style="min-width: 200px; max-width: 250px"
@change="changePayor"
:filterOption="filterCode"
>
<a-select-option v-for="item in companyOptions" :key="item.payorCode" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="回款日期" prop="backDate">
<a-date-picker
......@@ -36,27 +36,27 @@
/>
</a-form-model-item>
</a-col>
</template>
<a-col :lg="6" :sm="12">
<a-form-model-item label="回款金额(人民币)" prop="backAmountCny">
<a-input
type="number"
v-model="form.backAmountCny"
placeholder="请输入金额"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="可核销余额">
<a-input v-model="residueBackAmount" disabled />
</a-form-model-item>
</a-col>
<template v-if="activeKey === '0'">
<a-col :lg="6" :sm="12">
<a-form-model-item label="回款金额(人民币)" prop="backAmountCny">
<a-input
class="fixed_width"
type="number"
v-model="form.backAmountCny"
placeholder="请输入金额"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="可核销余额">
<a-input class="fixed_width" v-model="residueBackAmount" disabled />
</a-form-model-item>
</a-col>
<a-col :lg="7" :sm="12">
<a-form-model-item label="回款金额(美元)">
<a-input
class="fixed_width"
type="number"
v-model="form.backAmountUsd"
placeholder="请输入金额"
......@@ -97,6 +97,43 @@
</a-form-model-item>
</a-col>
</template>
<template v-else>
<a-col :lg="9" :sm="12">
<a-form-model-item label="保险公司" prop="payorCode">
<a-select
v-model="form.payorCode"
placeholder="请选择保险公司"
allow-clear
show-search
:disabled="!isEdit"
style="min-width: 200px"
@change="changePayor"
:filterOption="filterCode"
>
<a-select-option v-for="item in companyOptions" :key="item.payorCode" :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="回款金额(人民币)" prop="backAmountCny">
<a-input
class="fixed_width"
type="number"
v-model="form.backAmountCny"
placeholder="请输入金额"
allow-clear
:disabled="!isEdit"
/>
</a-form-model-item>
</a-col>
<a-col :lg="7" :sm="12">
<a-form-model-item label="可核销余额">
<a-input class="fixed_width" v-model="residueBackAmount" disabled />
</a-form-model-item>
</a-col>
</template>
</a-row>
</a-form-model>
<template v-if="activeKey === '1'">
......@@ -212,7 +249,7 @@
class="table-content all-list"
:columns="columns"
:data-source="dataList"
:scroll="{ x: '100%', y: tableHeight }"
:scroll="{ x: '100%', y: tableHeight1 }"
:pagination="false"
:rowKey="'id'"
:row-selection="{
......@@ -314,7 +351,8 @@ export default {
code: 1
}
],
tableHeight: 200 // 表格高度
tableHeight: 200, // 已关联账单表格高度
tableHeight1: 200 // 全部账单表格高度
};
},
mixins: [mixins],
......@@ -519,15 +557,6 @@ export default {
return Number(totalMoney.toFixed(2));
}
},
watch: {
selectedRows: {
handler(val) {
console.log(val);
},
deep: true,
immediate: true
}
},
created() {
this.simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
const { backMoneyNo, isEdit } = this.$route.query;
......@@ -569,9 +598,10 @@ export default {
const paddingT = parseFloat(style.getPropertyValue('padding-top'));
const paddingB = parseFloat(style.getPropertyValue('padding-bottom'));
const paddingSum = paddingT + paddingB;
this.tableHeight = containterH - 350 - gobackH - paddingSum;
this.tableHeight = containterH - 300 - gobackH - paddingSum;
this.tableHeight1 = containterH - 340 - gobackH - paddingSum;
// 设置每页展示条数
const pageSize = Math.floor((this.tableHeight - 10) / 32);
const pageSize = Math.floor((this.tableHeight1 - 10) / 32);
this.$set(this.pagination, 'pageSize', pageSize);
},
// 已关联账单表格行类名
......@@ -623,16 +653,17 @@ export default {
this.addNewEvt(0);
},
onSelectAll(selected, selectedRows, changeRows) {
let chgRows = changeRows.map((item) => {
return {
...item,
backAmount:
this.residueBackAmount > item.currentReceiptAmount ? item.currentReceiptAmount : this.residueBackAmount
};
});
if (selected) {
this.selectedRowKeys = this.selectedRowKeys.concat(changeRows.map((item) => item.id));
this.selectedRows = this.selectedRows.concat(chgRows);
changeRows.forEach((item) => {
const obj = {
...item,
backAmount:
this.residueBackAmount > item.currentReceiptAmount ? item.currentReceiptAmount : this.residueBackAmount
};
this.selectedRows.push(obj);
});
// this.selectedRows = this.selectedRows.concat(chgRows);
} else {
changeRows.forEach((item) => {
const findIndex = this.selectedRowKeys.findIndex((rowId) => rowId === item.id);
......@@ -710,7 +741,9 @@ export default {
// 获取已关联的账单
getData() {
if (!this.backMoneyNo) {
this.$message.error('暂未关联账单,请在全部账单中添加账单');
if (this.activeKey1 === '0') {
this.$message.error('暂未关联账单,请在全部账单中添加账单');
}
return;
}
let billDate = this.searchForm.billDate || [];
......@@ -816,10 +849,11 @@ export default {
});
this.$apis.SAVEBACKMONEY(formData).then((res) => {
const msg = backStatus === 1 ? '结案' : '暂存';
if (res.returnCode == '0000') {
this.backMoneyNo = res.content;
this.savedStatus = true;
this.$message.success('成功');
this.$message.success(`${msg}成功`);
this.selectedRowKeys = [];
this.getData();
this._getNewEOBList();
......@@ -895,7 +929,7 @@ export default {
}
}
.all-list_box {
height: calc(100vh - 430px);
height: calc(100vh - 400px);
overflow-y: auto;
&.no-data {
display: flex;
......@@ -951,6 +985,9 @@ export default {
min-height: 0;
}
}
.fixed_width {
max-width: 150px;
}
}
.bill-content {
overflow-y: auto;
......@@ -981,4 +1018,20 @@ export default {
color: red;
}
}
@media screen and (min-width: 1920px) {
.all-list_box {
height: calc(100vh - 420px);
}
}
@media screen and (min-width: 1920px) {
.all-list_box {
height: calc(100vh - 420px);
}
}
@media screen and (min-width: 1440px) {
.all-list_box {
height: calc(100vh - 400px);
}
}
</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