Commit 77e494f8 authored by yanglilong's avatar yanglilong

Merge branch 'test' of git.ssish.com:sunhailiang/bims

parents 37e60316 73f63c16
......@@ -8,7 +8,7 @@
<title><%= webpackConfig.name %></title>
<script
type="text/javascript"
src="//at.alicdn.com/t/font_3020450_c8k1zo91rcb.js"
src="//at.alicdn.com/t/font_3020450_5d4bvzz8pmi.js"
></script>
</head>
<body>
......
......@@ -7,4 +7,5 @@ export default {
uploadImg: "/common/upload",
specialtyList: "/backstage/auth/specialtyList",
coverageCode: "/backstage/auth/coverageMasterList",
getRefcdByRefgrp: "/common/getRefcdByRefgrp", // 公共获取码表接口
};
// 收费查询api
export default {
querySendInfoList: "/backstage/auth/querySendInfoList", //查询寄送列表
deleteReceiptSendInfo:"/backstage/auth/deleteReceiptSendInfo",//删除寄送信息
saveReceipSendInfo:"/backstage/auth/saveReceipSendInfo",//保存理赔件账单寄送信息
querySendReceipList:"/backstage/auth/querySendReceipList",//查询寄送包含账单列表
queryNoSendReceipList:"/backstage/auth/queryNoSendReceipList",//待寄送账单查询
getChargeList: "/backstage/auth/receiptList",
getCompanyOptions: "/backstage/auth/payorListNopage",
getDoctorListNoPage:"/backstage/auth/doctorListNoPage",//医生列表
getChargeListDetail:"/backstage/auth/receiptDetailList",//账单明细
getReceiptPaymentDetail:"/backstage/auth/receiptPaymentDetail",//账单明细
queryCiReceipSendList:"/backstage/auth/queryCiReceipSendList",//理赔件账单寄送查询
};
// 客户管理api
export default {
getCustomerList: "/backstage/auth/patientList",
updateCustomList: "/backstage/auth/updatePatientPolicy",
createCustomer: "/backstage/auth/createPatient",
customerDetail: "/backstage/auth/patientDetail",
getCustomerList: "/backstage/auth/patientList", // 获取用户信息列表
updateCustomList: "/backstage/auth/updatePatientPolicy", // 修改用户信息
createCustomer: "/backstage/auth/createPatient", // 新建用户信息
customerDetail: "/backstage/auth/patientDetail", // 获取用户详细信息
createClaimPdf: "/backstage/auth/createClaimPdf", // 获取用户理赔申请书
deleteCustom: "/backstage/auth/patientDelete" // 删除客户
};
// 核销管理api
export default {};
export default {
queryEobList: "/backstage/auth/queryEobList", //EOB列表查询
queryEobReceiptList: "/backstage/auth/queryEobReceiptList", //EOB待核销账单查询
queryEobNeedReceiptList: "/backstage/auth/queryEobNeedReceiptList", //EOB待确认账单列表查询
deleteEobReceiptInfo: "/backstage/auth/deleteEobReceiptInfo", //删除EOB
saveEobReceiptInfo: "/backstage/auth/saveEobReceiptInfo", //EOB新建
queryBackMoneyList: "/backstage/auth/queryBackMoneyList", //回款列表
queryBackEobList: "/backstage/auth/queryBackEobList", //回款关联EOB列表查询
queryEobInfoList: "/backstage/auth/queryEobInfoList", //待回款EOB列表查询
saveBackMoney: "/backstage/auth/saveBackMoney", //新建回款
deleteBackMoney: "/backstage/auth/deleteBackMoney", //删除回款
};
// 福利管理api
export default {
benefitType: "/backstage/auth/benefitMasterList",
planList: "/backstage/auth/planListPage",
editPlan: "/backstage/auth/planEdit",
coverageCode: "/backstage/auth/coverageMasterList",
coverageList: "/backstage/auth/coverageList",
addCoverage: "/backstage/auth/createCoverage",
editCoverage: "/backstage/auth/coverageEdit",
conditionList: "/backstage/auth/conditionList",
addCondition: "/backstage/auth/conditionCreate",
editCondition: "/backstage/auth/conditionEdit",
benefitList: "/backstage/auth/benefitList",
addBenefit: "/backstage/auth/createBenefit",
editBenefit: "/backstage/auth/benefitEdit",
getFrequencyCode: "/backstage/auth/frequencyList",
getLimitCode: "/backstage/auth/limitList",
};
......@@ -41,6 +41,11 @@ const GETCOVERAGECODE = (data) => {
return req.post(apis.coverageCode, data);
};
// 公共获取码表列表
const GETREFCDBYREFGRP = (data) => {
return req.post(apis.getRefcdByRefgrp, data);
};
// 对象数组
export default {
GETUSERINFO,
......@@ -50,4 +55,5 @@ export default {
GETSPECIALTYLIST,
UPLOADIMG,
GETCOVERAGECODE,
GETREFCDBYREFGRP,
};
// 收费查询函数库
import apis from "../apis_moudles/";
import req from "../request";
// 查询寄送列表
const QUERYSENDINFOLIST = function (data) {
return req.post(apis.querySendInfoList, data);
};
// 删除寄送信息
const DELETERECEIPTSENDINFO= function (data) {
return req.post(apis.deleteReceiptSendInfo, data);
};
// 保存理赔件账单寄送信息
const SAVERECEIPSENDINFO= function (data) {
return req.post(apis.saveReceipSendInfo, data);
};
// 查询寄送包含账单列表
const QUERYSENDRECEIPLIST = function (data) {
return req.post(apis.querySendReceipList, data);
};
// 待寄送账单查询
const QUERYNOSENDRECEIPLIST = function (data) {
return req.post(apis.queryNoSendReceipList, data);
};
// get charge list
const GETCHARGELIST = function (data) {
return req.post(apis.getChargeList, data);
......@@ -21,11 +41,25 @@ const GETCHARGELISTDETAIL = function (data) {
const GETRECEIPTPAYMENTDETAIL= function (data) {
return req.post(apis.getReceiptPaymentDetail, data);
};
// 理赔件账单寄送查询
const QUERYCIRECEIPSENDLIST= function (data) {
return req.post(apis.queryCiReceipSendList, data);
};
// 对象数组
export default {
QUERYSENDINFOLIST,
DELETERECEIPTSENDINFO,
SAVERECEIPSENDINFO,
QUERYSENDRECEIPLIST,
QUERYNOSENDRECEIPLIST,
GETCHARGELIST,
GETCOMPANYOPTIONS,
GETDOCTORlISTNOPAGE,
GETCHARGELISTDETAIL,
GETRECEIPTPAYMENTDETAIL
GETRECEIPTPAYMENTDETAIL,
QUERYCIRECEIPSENDLIST,
};
......@@ -21,10 +21,21 @@ const UPDATECUSTOMDATA = function (data) {
const CREATENEWCUSTOMER = function (data) {
return req.post(apis.createCustomer, data);
};
// 删除客户
const DELETECUSTOM = function (data) {
return req.post(apis.deleteCustom, data);
};
// 获取用户理赔申请书
const CREATECUSTOMERCLAIMPGF = function (data) {
return req.post(apis.createClaimPdf, data, { responseType: "blob" });
};
export default {
GETCUSTOMERLIST,
GETCUSTOMERDETAIL,
UPDATECUSTOMDATA,
CREATENEWCUSTOMER,
DELETECUSTOM,
CREATECUSTOMERCLAIMPGF
};
// 核销管理函数库
// import apis from "../apis_moudles/index";
// import req from "../request";
import apis from "../apis_moudles/verification.js";
import req from "../request";
//EOB列表查询
const QUERYEOBLIST = (data) => {
return req.post(apis.queryEobList, data);
};
//EOB待核销账单查询
const QUERYEOBRECEIPTLIST = (data) => {
return req.post(apis.queryEobReceiptList, data);
};
//EOB待确认账单列表查询
const QUERYEOBNEEDRECEIPTLIST = (data) => {
return req.post(apis.queryEobNeedReceiptList, data);
};
//EOB新建
const SAVEEOBRECEIPTINFO = (data) => {
return req.post(apis.saveEobReceiptInfo, data);
};
//删除EOB
const DELEOBRECEIPTINFO = (data) => {
return req.post(apis.deleteEobReceiptInfo, data);
};
//回款列表
const QUERYBACKMONEYLIST = (data) => {
return req.post(apis.queryBackMoneyList, data);
};
//回款关联EOB列表查询
const QUERYBACKEOBLIST = (data) => {
return req.post(apis.queryBackEobList, data);
};
//待回款EOB列表查询
const QUERYEOBINFOLIST = (data) => {
return req.post(apis.queryEobInfoList, data);
};
//新建回款
const SAVEBACKMONEY = (data) => {
return req.post(apis.saveBackMoney, data);
};
//删除回款
const DELETEBACKMONEY = (data) => {
return req.post(apis.deleteBackMoney, data);
};
// 对象数组
export default {};
export default {
QUERYEOBLIST,
QUERYEOBRECEIPTLIST,
QUERYEOBNEEDRECEIPTLIST,
SAVEEOBRECEIPTINFO,
DELEOBRECEIPTINFO,
QUERYBACKMONEYLIST,
QUERYBACKEOBLIST,
QUERYEOBINFOLIST,
SAVEBACKMONEY,
DELETEBACKMONEY,
};
\ No newline at end of file
......@@ -6,9 +6,77 @@ const GETBENEGITTYPE = () => {
return req.post(apis.benefitType);
};
const GETPLANLIST = (data) => {
return req.post(apis.planList, data);
};
const EDITPLANDATE = (data) => {
return req.post(apis.editPlan, data);
};
const GETCOVERAGELIST = (data) => {
return req.post(apis.coverageList, data);
};
const GETCONDITIONLIST = (data) => {
return req.post(apis.conditionList, data);
};
const ADDCONDITIONDATA = (data) => {
return req.post(apis.addCondition, data);
};
const EDITCONDITIONDATA = (data) => {
return req.post(apis.editCondition, data);
};
const GETBENEFITLIST = (data) => {
return req.post(apis.benefitList, data);
};
const ADDBENEFITLIST = (data) => {
return req.post(apis.addBenefit, data);
};
const EDITBENEFITLIST = (data) => {
return req.post(apis.editBenefit, data);
};
const GETCOVERAGECODE = (data) => {
return req.post(apis.coverageCode, data);
};
const ADDCOVERAGEDATA = (data) => {
return req.post(apis.addCoverage, data);
};
const EDITCOVERAGEDATA = (data) => {
return req.post(apis.editCoverage, data);
};
const GETFREQUENCYCODE = (data) => {
return req.post(apis.getFrequencyCode, data);
};
const GETLIMITCODE = (data) => {
return req.post(apis.getLimitCode, data);
};
// 对象数组
export default { GETBENEGITTYPE, GETCOVERAGELIST };
export default {
GETBENEGITTYPE,
GETPLANLIST,
EDITPLANDATE,
GETCOVERAGELIST,
GETCONDITIONLIST,
ADDCONDITIONDATA,
EDITCONDITIONDATA,
GETBENEFITLIST,
ADDBENEFITLIST,
EDITBENEFITLIST,
GETCOVERAGECODE,
ADDCOVERAGEDATA,
EDITCOVERAGEDATA,
GETFREQUENCYCODE,
GETLIMITCODE,
};
......@@ -60,6 +60,11 @@ service.interceptors.response.use(
const PUBSTATE = code.PUB_ERR(returnCode, returnMsg, response.config);
// 请求成功,但逻辑或者业务有错,返回具体数据,根据业务决定是否要提示 有token失效全局异常不返回
if (TOKENSTATE && PUBSTATE) {
const { config } = response
if (config && config.responseType === 'blob') {
resolve(response)
return true
}
resolve(response.data);
}
}
......
......@@ -14,9 +14,12 @@ const TOKEN_INVLIDE_TO_LOGIN = (code) => {
});
}
// 清除个人数据
store.commit("user/setUserInfo", "");
store.commit("common/setUserInfo", "");
route.replace({
path: "/login",
query: {
redirect: route.currentRoute.fullPath,
},
});
return false;
} else {
......
......@@ -31,6 +31,9 @@ button::-moz-focus-inner {
.mar-left10 {
.mg-l(30);
}
.mar-bottom10 {
.mg-b(20);
}
// 媒体查询
// 文本超长
......
......@@ -238,7 +238,8 @@ select {
font-family: PingFangSC-Medium, PingFang SC;
}
}
.ant-calendar-picker {
.ant-calendar-picker,
.ant-input-number {
width: 100%;
}
// .ant-table,
......@@ -271,6 +272,7 @@ select {
}
.ant-input,
.ant-input-number,
.ant-select-selection {
border: none;
background-color: #f8fafb;
......
......@@ -19,7 +19,8 @@ import {
popconfirm,
Modal,
modal,
Spin
Spin,
Collapse,
} from "ant-design-vue";
export default () => {
......@@ -43,7 +44,8 @@ export default () => {
popconfirm,
Modal,
modal,
Spin
Spin,
Collapse,
];
// 注册
els.forEach((item) => {
......
......@@ -67,12 +67,12 @@ export default {
this.jumpPage = this.jumpPage < 0 ? 0 : this.jumpPage;
this.jumpPage = this.jumpPage > pages ? pages : this.jumpPage;
this.pagination.pageNum = this.jumpPage;
this.$emit("pageChange");
this.$emit("pageChange", { pageNum: this.jumpPage });
},
//改变分页
pageChange(pager) {
this.pagination.pageNum = pager;
this.$emit("pageChange");
this.$emit("pageChange", { pageNum: pager });
},
},
};
......
<template>
<div class="icon-class" :style="`font-size:${size}px`" @click="clickEvent">
<div
class="icon-class"
:style="`font-size:${size}px`"
@click="clickEvent"
>
<svg class="icon" aria-hidden="true">
<use :xlink:href="iconName" />
</svg>
......
......@@ -14,6 +14,16 @@ export default {
path: "detail",
name: "chargeQueryDetail",
component: () => import(/* webpackChunkName: "chargeQuery" */"@/views/charge-query/detail.vue")
},
{
path: "lpjManage",
name: "chargeQueryLpjManage",
component: () => import(/* webpackChunkName: "chargeQuery" */"@/views/charge-query/lpjManage.vue")
},
{
path: "lpjManageDetail",
name: "chargeQueryLpjManageDetail",
component: () => import(/* webpackChunkName: "chargeQuery" */"@/views/charge-query/lpjManageDetail.vue")
}
]
};
// 客户信息路由表,分包名称:customer
export default {
path: "/customer",
path: "/",
redirect: "customerInfo",
component: () => {
return import(/* webpackChunkName: "customer" */ "@/views/customer");
},
children: [
{
path: "",
path: "customer",
name: "customerInfo",
component: () => import("@/views/customer/info"),
},
{
path: "edit",
path: "customer/edit",
name: "customerEdit",
component: () => import("@/views/customer/edit"),
},
......
......@@ -16,9 +16,18 @@ export default [
},
{
icon: "ssimanage_msg",
path: "2",
title: "福利信息管理",
children: [
{
path: "/welfare",
title: "福利信息明细",
},
{
path: "/welfare/edit",
title: "福利信息管理",
children: [],
},
],
},
{
icon: "ssimanage",
......@@ -44,6 +53,10 @@ export default [
path: "/charge-query",
title: "账单查询",
},
{
path: "/charge-query/lpjManage",
title: "理赔件管理",
},
],
},
{
......@@ -55,18 +68,10 @@ export default [
path: "/verification",
title: "EOB管理",
},
{
path: "/verification/addEOB",
title: "新建EOB数据",
},
{
path: "/verification/collection",
title: "回款管理",
},
{
path: "/verification/collectionAdd",
title: "新建回款管理",
},
],
},
{
......@@ -87,7 +92,7 @@ export default [
{
icon: "ssiscan",
path: "/bi",
title: "",
title: "",
children: [],
},
];
......@@ -11,9 +11,9 @@ export default {
component: () => import("@/views/verification/index"),
},
{
path: "addEOB",
name: "VerificationAddEOB",
component: () => import("@/views/verification/addEOB"),
path: "detail",
name: "VerificationIndexDetail",
component: () => import("@/views/verification/indexDetail"),
},
{
path: "collection",
......@@ -21,9 +21,9 @@ export default {
component: () => import("@/views/verification/collection"),
},
{
path: "collectionAdd",
name: "VerificationCollectionAdd",
component: () => import("@/views/verification/collectionAdd"),
path: "collectionDetail",
name: "VerificationCollectionDetail",
component: () => import("@/views/verification/collectionDetail"),
},
],
};
// 福利管理路由表,分包名称:welfare
export default {
path: "/welfare",
name: "welfare",
path: "/",
component: () => {
return import(/* webpackChunkName: "Welfare" */ "@/views/welfare");
},
children: [
{
path: "welfare",
name: "welfareInfo",
component: () => import("@/views/welfare/info"),
},
{
path: "welfare/edit",
name: "welfareEdit",
component: () => import("@/views/welfare/edit"),
},
],
};
// 统一暴露工具,供其他地方调用
// 数组转对象
function arrToObj(arr) {
export function arrToObj(arr) {
// 参数必须是一个数组
if (!Array.isArray(arr)) {
throw new Error("type err: arr 必须是一个数组");
......@@ -13,4 +13,62 @@ function arrToObj(arr) {
});
return obj;
}
export default { arrToObj };
/*
* 文件流转换为url
* @params file 文件流
* @return url
*/
export function getObjectURL(file) {
console.log(file)
let url = null;
if (window.createObjectURL != undefined) { // basic
url = window.createObjectURL(file);
} else if (window.webkitURL != undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(file);
} else if (window.URL != undefined) { // mozilla(firefox)
url = window.URL.createObjectURL(file);
}
return url;
}
/**
* @description 文件下载(兼容IE)
* @param {Object} response options 接口响应的数据 包括文件流及保文信息
* @param {String} file_name 文件名称
* @returns {undefined} undefined
*/
export function downloadFile(response, file_name = "ExportFile") {
const fileType = response.headers["content-type"] || "application/pdf";
const disposition = response.headers["content-disposition"]
if (disposition) {
file_name = disposition.split("filename=")[1]
}
const blob = new Blob([response.data], { type: `${fileType};charset=utf-8` });
const ie = navigator.userAgent.match(/MSIE\s([\d.]+)/),
ie11 = navigator.userAgent.match(/Trident\/7.0/) && navigator.userAgent.match(/rv:11/),
ieEDGE = navigator.userAgent.match(/Edge/g),
ieVer = ie ? ie[1] : ie11 ? 11 : ieEDGE ? 12 : -1;
if (ie && ieVer < 10) {
this.message.error('No blobs on IE<10');
return;
}
if (ieVer > -1) {
window.navigator.msSaveBlob(blob, file_name);
return {}
} else {
const url = window.URL.createObjectURL(blob);
return {
url,
file_name
}
// let link = document.createElement('a');
// link.setAttribute('href', url);
// link.setAttribute('download', file_name);
// document.body.appendChild(link);
// link.click();
// document.body.removeChild(link);
}
}
\ No newline at end of file
<template>
<div class="login">
<h2 class="title">{{title}}</h2>
<h2 class="title">{{ title }}</h2>
<div class="content">
<p class="module-title">
<span>密码登录</span>
......@@ -33,7 +33,9 @@
</a-input>
</a-form-model-item>
<a-form-model-item>
<a-button type="primary" block @click.stop="handlerLogin">登录</a-button>
<a-button type="primary" block @click.stop="handlerLogin"
>登录</a-button
>
</a-form-model-item>
</a-form-model>
</div>
......@@ -42,6 +44,7 @@
<script>
import { title } from "@/settings";
import { downloadFile } from '@/utils/index'
export default {
data() {
return {
......@@ -49,7 +52,7 @@ export default {
form: {
userName: process.env.VUE_APP_USER || "",
passWord: process.env.VUE_APP_PWD || "",
verificationCode: ""
verificationCode: "",
},
formRules: {
userName: [{ required: true, message: "请输入用户名" }],
......@@ -73,7 +76,7 @@ export default {
},
_getVerifyImg() {
this.$apis.GETVERIFYIMG().then((res) => {
const url = window.URL.createObjectURL(res);
const { url } = downloadFile(res);
this.verifyImg = url || "";
});
},
......@@ -81,7 +84,8 @@ export default {
this.$apis.LOGIN(this.form).then((res) => {
if (res.returnCode === "0000") {
this.$store.commit("common/setUserInfo", res.content);
this.$router.replace("/customer");
const path = this.$route.query && this.$route.query.redirect || "/customer";
this.$router.replace(path);
} else {
this.$message.error(res.returnMsg || "出现错误");
this.form.verificationCode = "";
......@@ -115,11 +119,11 @@ export default {
.bd-b(solid, 31, transparent);
}
&::before {
.l(-20);
.l(-18.8);
.bd-r(solid, 20, #2b63ff);
}
&::after {
.r(-20);
.r(-18.8);
.bd-l(solid, 20, #2b63ff);
}
}
......@@ -142,6 +146,8 @@ export default {
.mg-t(13);
}
.verify-img {
.w(110px);
height: 100%;
cursor: pointer;
}
}
......
<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="4" :lg="6" :sm="12">
<a-form-model-item label="病历号">
<a-input
v-model="form.patientNo"
placeholder="请输入病历号"
allow-clear
></a-input>
<a-input v-model="form.patientNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input
v-model="form.patientName"
placeholder="请输入客户姓名"
allow-clear
></a-input>
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户类型">
<a-select
v-model="form.patientType"
placeholder="请选择客户类型"
allowClear
>
<a-select-option
v-for="item in patientTypeOptions"
:key="item.code"
:value="item.code"
>
<a-select v-model="form.patientType" placeholder="请选择客户类型" allowClear>
<a-select-option v-for="item in patientTypeOptions" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
......@@ -41,16 +24,8 @@
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select
v-model="form.payorId"
placeholder="请选择保险公司"
allowClear
>
<a-select-option
v-for="item in companyOptions"
:key="item.corpCode"
:value="item.id"
>
<a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.longName }}
</a-select-option>
</a-select>
......@@ -58,16 +33,8 @@
</a-col>
<a-col :xl="4" :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"
>
<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>
......@@ -75,38 +42,24 @@
</a-col>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="就诊时间">
<a-range-picker
format="YYYY-MM-DD"
v-model="form.dateRange"
:placeholder="['开始时间', '结束时间']"
@change="onSelectVisitTime"
/>
<a-range-picker format="YYYY-MM-DD" v-model="form.dateRange" :placeholder="['开始时间', '结束时间']"
@change="onSelectVisitTime"/>
</a-form-model-item>
</a-col>
<a-col :xl="3" :lg="6" :sm="12">
<a-form-model-item label="支付方式">
<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-select v-model="form.paymentCode" placeholder="请选择支付方式" allowClear>
<a-select-option v-for="item in paymentOptions" :key="item.code" :value="item.code" allow-clear>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="12" :lg="12" :sm="12" class="none-label">
<a-col :xl="16" :lg="12" :sm="12" class="none-label">
<a-form-model-item label="button">
<a-button>更新数据</a-button>
<!-- <a-button>更新数据</a-button>
<a-button class="mar-left10" type="primary" @click="addNewCharge">
<Icon name="ssiadd" :size="14" />新建预授权</a-button
>
<Icon name="ssiadd" :size="14" />新建预授权</a-button> -->
<a-button class="mar-left10" type="primary" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
......@@ -118,52 +71,35 @@
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns="columns"
:data-source="dataList"
row-key="id"
:scroll="{ x: true }"
:customRow="handlerRowClick"
:pagination="true"
>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="operation" slot-scope="record">
<a-button
v-if="record.isEdit"
type="link"
@click.stop="saveChange(record)"
>保存</a-button
>
<a-button v-else type="link" @click.stop="changeDataStatus(record)"
>修改</a-button
>
<!-- <a-button type="link" class="success">查看</a-button> -->
<a-popconfirm
title="你确定要关闭吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData"
>
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pager" @pageChange="_getChargeListDetail" />
<BurtPagination :pagination="pagination" @pageChange="_getChargeListDetail" />
<div class="title-div">费用支付明细</div>
<a-table
:columns="payColumns"
:data-source="payDataList"
row-key="id"
:scroll="{ x: true }"
:pagination="false"
class="payTable"
>
<a-table :columns="payColumns" :data-source="payDataList" :scroll="{ x: true }" :pagination="false" class="payTable">
<template slot="paymentType" slot-scope="text">
<a-button class="danger">{{ text | payStyleFilters }}</a-button>
</template>
</a-table>
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :xs="24">
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
......@@ -174,16 +110,8 @@ export default {
data() {
const columns = [
{ title: "项目", dataIndex: "itemcatDesc", width: 180 },
{
title: "项目明细",
dataIndex: "itemDesc",
width: 180,
},
{
title: "单价",
dataIndex: "itemPrice",
width: 120,
},
{ title: "项目明细", dataIndex: "itemDesc", width: 180},
{ title: "单价", dataIndex: "itemPrice", width: 120},
{ title: "数量", dataIndex: "itemQty", width: 180 },
{ title: "单位", dataIndex: "itemUnit", width: 180 },
{ title: "金额", dataIndex: "chargeAmount", width: 180 },
......@@ -191,18 +119,11 @@ export default {
{ title: "折后金额", dataIndex: "actualAmount", width: 180 },
{ title: "减免金额", dataIndex: "reduceAmount", width: 180 },
{ title: "实际金额", dataIndex: "paidAmount", width: 180 },
{ title: "免赔额", dataIndex: "deductible", width: 180 },
{ title: "自付额", dataIndex: "selfPaid", width: 180 },
{ title: "其他费用", dataIndex: "otherPaid", width: 180 },
{ title: "实际金额", dataIndex: "actualPaid", width: 180 },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
{ title: "操作", key: "operation", width: "175px", fixed: "right", scopedSlots: { customRender: "operation" },align: "center"},
];
const payColumns = [
{ title: "免赔额", dataIndex: "deductible", width: 180 },
......@@ -210,14 +131,10 @@ export default {
{ title: "其他费用", dataIndex: "otherPaid", width: 180 },
{ title: "个人支付", dataIndex: "personalPaid", width: 180 },
{ title: "商保支付", dataIndex: "ciPaid", width: 180 },
{
title: "支付方式",
dataIndex: "paymentType",
width: 180,
scopedSlots: { customRender: "paymentType" },
},
{ title: "支付方式", dataIndex: "paymentType", width: 180, scopedSlots: { customRender: "paymentType" }},
];
return {
dialogShow: false,
receiptNo: "",
columns,
payColumns,
......@@ -251,12 +168,20 @@ export default {
pageSize: 10,
},
payDataList: [],
payPager: [
{
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
editFormObj: {
id: "",
patientNo: '',
patientName: '',
},
editRules: {
patientNo: [{ required: true, message: "病历号", trigger: "blur" }],
patientName: [{ required: true, message: "客户姓名", trigger: "blur" }],
},
],
};
},
components: {
......@@ -350,46 +275,24 @@ export default {
handlerReset() {
this.form = {};
},
//设置行属性
handlerRowClick(record) {
const { receiptNo } = record;
console.log("receiptNo=", receiptNo);
return {
style: {
color: record.isEdit ? "#2B63FF" : "#252631",
editEvt(record) {
this.editFormObj = {
id: record.id || "",
};
this.dialogShow = true;
},
on: {
// 点击行
click: () => {
if (record.isEdit) {
return true;
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
console.log(11)
}
this.$router.push({
name: "chargeQueryDetail",
query: { receiptNo },
});
},
},
};
},
// 修改按钮
changeDataStatus(record) {
this.$set(record, "isEdit", true);
},
saveChange(record) {
record.isEdit = undefined;
record.isNew = undefined;
},
handlerSearch() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.pager.pageNum = 1;
this.pagination.pageNum = 1;
this.pageForm = this.$lodash.cloneDeep(this.form);
this._getChargeListDetail();
});
},
deleteData() {
this.$message.success("删除成功");
......
......@@ -6,30 +6,18 @@
<a-row :gutter="30">
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="病历号">
<a-input
v-model="form.patientNo"
placeholder="请输入病历号"
allow-clear
></a-input>
<a-input v-model="form.patientNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input
v-model="form.patientName"
placeholder="请输入客户姓名"
allow-clear
></a-input>
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户类型">
<a-select v-model="form.patientType" placeholder="请选择客户类型" allowClear>
<a-select-option
v-for="item in patientTypeOptions"
:key="item.code"
:value="item.code"
>
<a-select-option v-for="item in patientTypeOptions" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
......@@ -38,11 +26,7 @@
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorId" placeholder="请选择保险公司" allowClear>
<a-select-option
v-for="item in companyOptions"
:key="item.corpCode"
:value="item.id"
>
<a-select-option v-for="item in companyOptions" :key="item.corpCode" :value="item.id">
{{ item.longName }}
</a-select-option>
</a-select>
......@@ -51,11 +35,7 @@
<a-col :xl="4" :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"
>
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode">
{{ item.doctorDesc }}
</a-select-option>
</a-select>
......@@ -69,23 +49,17 @@
<a-col :xl="3" :lg="6" :sm="12">
<a-form-model-item label="支付方式">
<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-select-option v-for="item in paymentOptions" :key="item.code" :value="item.code" allow-clear>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="12" :lg="12" :sm="12" class="none-label">
<a-col :xl="16" :lg="12" :sm="12" 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>更新数据</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>
......@@ -98,37 +72,39 @@
</a-form-model>
<!-- table -->
<a-table
:columns="columns"
:data-source="dataList"
row-key="id"
:scroll="{ x: true }"
:customRow="handlerRowClick"
:pagination="true"
>
<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
v-if="record.isEdit"
type="link"
@click.stop="saveChange(record)"
>保存</a-button
>
<a-button v-else type="link" @click.stop="changeDataStatus(record)"
>修改</a-button
>
<a-button type="link" class="success">查看</a-button>
<a-popconfirm
title="你确定要关闭吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData"
>
<a-button type="link" @click.stop="editEvt(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>
</a-table>
<!--分页-->
<BurtPagination :pagination="pager" @pageChange="_getChargeList" />
<BurtPagination :pagination="pagination" @pageChange="_getChargeList" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :xs="24">
<a-form-model-item label="病历号" prop="patientNo">
<a-input v-model.trim="editFormObj.patientNo" placeholder="病历号" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="客户姓名" prop="patientName">
<a-input v-model.trim="editFormObj.patientName" placeholder="客户姓名" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
......@@ -138,46 +114,16 @@ import { mapState } from "vuex"
export default {
data() {
const columns = [
{
title: "序号",
dataIndex: "index",
key:"index",
align:'center',
width: 80,
customRender: (text, record, index) => {
return `${index+1}`
},
},
{ title: "序号", dataIndex: "index", key:"index",align:'center', width: 80,scopedSlots: { customRender: "index" }},
{ title: "收费时间", dataIndex: "receiptDate", width: 180 },
{
title: "病历号",
dataIndex: "patientNo",
width: 180,
customRender: (val, row) => {
if (row.isEdit) {
return <a-input v-model={row.patientNo}></a-input>;
}
return val;
},
},
{
title: "客户姓名",
dataIndex: "patientName",
width: 120,
customRender: (val, row) => {
if (row.isEdit) {
return <a-input v-model={row.patientName}></a-input>;
}
return val;
},
},
{ title: "病历号", dataIndex: "patientNo",width: 180},
{ title: "客户姓名",dataIndex: "patientName",width: 120,},
{ title: "客户类型", dataIndex: "patientType", width: 180 },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "就诊时间", dataIndex: "visitTime", width: 180 },
{ title: "就诊医生", dataIndex: "doctorName", width: 180 },
{ title: "账单金额", dataIndex: "chargeAmount", width: 180 },
{ title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
{ title: "折后金额", dataIndex: "actualAmount", width: 180 },
{ title: "客户自付", dataIndex: "paidAmount", width: 180 },
{ title: "减免金额", dataIndex: "reduceamount", width: 180 },
......@@ -187,15 +133,10 @@ export default {
{ title: "保险欠费", dataIndex: "insuranceArrearsAmount", width: 180 },
{ title: "个人欠费", dataIndex: "personalArrearsAmount", width: 180 },
{ title: "发票号码", dataIndex: "receiptNo", width: 180 },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
{ title: "操作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }},
];
return {
dialogShow: false,
columns,
form: {},
pageForm: {
......@@ -222,9 +163,19 @@ export default {
},
], //支付方式
dataList: [],
pager: {
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
editFormObj: {
id: "",
patientNo: '',
patientName: '',
},
editRules: {
patientNo: [{ required: true, message: "病历号", trigger: "blur" }],
patientName: [{ required: true, message: "客户姓名", trigger: "blur" }],
},
};
},
......@@ -246,11 +197,12 @@ export default {
_getChargeList() {
const data = {
...this.pageForm,
...this.pager,
...this.pagination,
};
this.$apis.GETCHARGELIST(data).then((res) => {
this.dataList = (res.content && res.content.list) || [];
// this.pager.total = (res.content && res.content.total) || 0;
let content = res.content || {};
this.dataList = content.list || [];
this.pagination.total = content.total || 0;
});
},
// 获取保险公司下拉选项
......@@ -278,42 +230,46 @@ export default {
handlerReset() {
this.form = {}
},
//设置行属性
handlerRowClick(record) {
//查看
detailEvt(record) {
const { receiptNo } = record;
return {
style: {
color: record.isEdit ? "#2B63FF" : "#252631",
},
on: {
// 点击行
click: () => {
if (record.isEdit) {
return true;
}
this.$router.push({
name: "chargeQueryDetail",
query: { receiptNo },
});
},
},
editEvt(record) {
this.editFormObj = {
id: record.id || "",
patientNo: record.patientNo || "",
patientName: record.patientName || "",
};
this.dialogShow = true;
},
// 修改按钮
changeDataStatus(record) {
this.$set(record, "isEdit", true);
},
saveChange(record) {
record.isEdit = undefined;
record.isNew = undefined;
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
//下面接口没有给到
this.$apis.DOCTORUPDATE(this.editFormObj)
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this._getChargeList();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
handlerSearch() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.pager.pageNum = 1;
this.pagination.pageNum = 1;
this.pageForm = this.$lodash.cloneDeep(this.form);
this._getChargeList();
});
......
<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 :lg="8" :sm="12">
<a-form-model-item label="就诊日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送批号">
<a-input v-model="form.sendBatchNo" placeholder="请输入寄送批号" allow-clear />
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="快递公司">
<a-select v-model="form.sendCompany" placeholder="请选择快递公司" showSearch allowClear>
<a-select-option v-for="(item) in expressList" :key="item.id" :value="item.descCh">{{item.descCh}}</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="form.trackingNo" placeholder="请输入快递单号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="账单编号">
<a-input v-model="form.receiptNo" placeholder="请输入账单编号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :sm="24" class="none-label">
<div class="btn-div flex">
<span></span>
<a-form-model-item label="button">
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
<a-button class="mar-left10" type="primary" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button class="mar-left10" type="primary" @click="addNewCharge">
<Icon name="ssiadd" :size="14" />新建寄送</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="sendDate" slot-scope="text">
{{ text? moment(text).format('YYYY-MM-DD'): '' }}
</template>
<template slot="sendSts" slot-scope="text">
{{ text==1?'已寄送':'未寄送' }}
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">编辑</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
export default {
data() {
const columns = [
{ title: "寄送批号", dataIndex: "sendBatchNo", key:"sendBatchNo",align:'center', width: 136},
{ title: "保险公司", dataIndex: "payorName", width: 110 },
{ title: "寄送状态", dataIndex: "sendSts", width: 90,scopedSlots: { customRender: "sendSts" } },
{ title: "寄送日期", dataIndex: "sendDate",width: 130,scopedSlots: { customRender: "sendDate" }},
{ title: "快递单号",dataIndex: "trackingNo",width: 180,},
{ title: "寄送备注", dataIndex: "sendRemark", width: 100 },
{ title: "操作", key: "operation", width: "200px",fixed: "right",scopedSlots: { customRender: "operation" }},
];
return {
loading: false,
columns,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
trackingNo: '',
receiptNo: '',
},
companyOptions: [], //保险公司
expressList: [], //快递列表
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
};
},
components: {
BurtPagination,
},
created() {
this.getData();
this._getCompanyOptions();
this.getRefcdByRefgrp();
},
methods: {
moment,
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
visitTimeStart: this.form.dateRange[0]?moment(this.form.dateRange[0]).format('YYYY-MM-DD 00:00:00'):'',
visitTimeEnd: this.form.dateRange[1]?moment(this.form.dateRange[1]).format('YYYY-MM-DD 00:00:00'):'',
}
delete filter.dateRange;
this.$apis.QUERYSENDINFOLIST(filter)
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取快递列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "SEND_COMPANY"
}).then((res) => {
this.expressList = res.content || [];
});
},
// 重置
handlerReset() {
this.form = {
dateRange: [],
payorCode: '',
sendBatchNo: '',
trackingNo: '',
receiptNo: '',
}
},
//编辑
editEvt(record) {
const { sendBatchNo } = record;
localStorage.setItem('jisongDataDetail', JSON.stringify(record));
this.$router.push({
path: "/charge-query/lpjManageDetail",
query: { sendBatchNo },
});
},
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
//删除
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.DELETERECEIPTSENDINFO({
sendBatchNo: this.dataList[index].sendBatchNo,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
});
},
//新建寄送
addNewCharge(){
this.$router.push({
path: '/charge-query/lpjManageDetail'
})
}
},
};
</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>
<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 :lg="8" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送状态">
<a-select v-model="form.sendSts" placeholder="请选择寄送状态" allowClear>
<a-select-option value="1">已寄送</a-select-option>
<a-select-option value="2">未寄送</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="快递公司">
<a-select v-model="form.sendCompany" placeholder="请选择快递公司" showSearch allowClear>
<a-select-option v-for="(item) in expressList" :key="item.id" :value="item.descCh">{{item.descCh}}</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="form.trackingNo" placeholder="请输入快递单号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送方式">
<a-select v-model="form.sendMode" placeholder="请选择寄送方式" allowClear>
<a-select-option value="快递">快递</a-select-option>
<a-select-option value="邮件">邮件</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送日期">
<a-date-picker format="YYYY年MM月DD日" v-model="form.sendDate" placeholder="选择日期" />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送地址">
<a-input v-model="form.sendAddress" placeholder="请输入寄送地址" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送邮箱">
<a-input v-model="form.sendEmail" placeholder="请输入寄送邮箱" allow-clear />
</a-form-model-item>
</a-col>
<a-col :sm="8" class="none-label">
<div class="btn-div flex">
<span></span>
<a-form-model-item label="button">
<a-button class="mar-left10" type="primary" @click="addNewCharge">
<Icon :name="sendBatchNo?'ssibaocun':'ssiadd'" :size="14" />{{sendBatchNo?'保存寄送':'新建寄送'}}</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :sm="24" class="none-label">
<div class="btn-div flex">
<span></span>
<a-form-model-item label="button">
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewBill">
<Icon :name="isEditNewBill?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewBill? '保存账单': '添加账单'}}</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false"
:row-selection="isEditNewBill? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null">
<template slot="sendDate" slot-scope="text">
{{ text? moment(text).format('YYYY-MM-DD'): '' }}
</template>
<template slot="sendSts" slot-scope="text">
{{ text==1?'已寄送':'未寄送' }}
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :xs="24">
<a-form-model-item label="保险公司" prop="payorCode">
<a-select v-model="editFormObj.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="寄送状态" prop="sendSts">
<a-select v-model="editFormObj.sendSts" placeholder="请选择寄送状态" allowClear>
<a-select-option :value="1">已寄送</a-select-option>
<a-select-option :value="2">未寄送</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="寄送日期" prop="sendDate">
<a-date-picker format="YYYY年MM月DD日" v-model="editFormObj.sendDate" placeholder="选择日期" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="快递单号" prop="trackingNo">
<a-input v-model.trim="editFormObj.trackingNo" placeholder="快递单号" />
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :lg="12" :xs="24">
<a-form-model-item label="寄送备注" prop="sendRemark">
<a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
export default {
data() {
const columns = [
{ title: "账单编号", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136},
{ title: "病历号", dataIndex: "patientNo", key:"patientNo",align:'center', width: 136},
{ title: "客户姓名", dataIndex: "patientName", width: 98 },
{ title: "保险公司", dataIndex: "payorName", width: 110 },
{ title: "就诊日期", dataIndex: "visitTimeStart", width: 200,scopedSlots: { customRender: "visitTimeStart" } },
{ title: "账单金额", dataIndex: "chargeAmount", width: 100, align: 'center' },
{ title: "折后金额", dataIndex: "discountAmount", width: 100, align: 'center' },
{ title: "客户自负", dataIndex: "paidAmount", width: 100, align: 'center' },
{ title: "理赔金额", dataIndex: "paidamount", width: 100, align: 'center' },
// { title: "操作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }},
];
return {
loading: false,
dialogShow: false,
columns,
sendBatchNo: '', //寄送批号
form: {
payorCode: '',
sendSts: '',
sendMode: '',
sendDate: '',
sendCompany: '',
trackingNo: '',
sendAddress: '',
sendEmail: '',
},
companyOptions: [], //保险公司
expressList: [], //快递列表
selectedRowKeys: [], // Check here to configure the default column
dataList: [],
isEditNewBill: false, //是否在新建账单
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
editFormObj: {
payorCode: '',
sendSts: '',
sendDate: '',
trackingNo: '',
sendRemark: '',
},
editRules: {
sendDate: [{ required: true, message: "请选择寄送日期", trigger: "change" }],
trackingNo: [{ required: true, message: "请输入寄送单号", trigger: "blur" }],
},
};
},
components: {
BurtPagination,
},
created() {
this.sendBatchNo = this.$route.query.sendBatchNo;
this._getCompanyOptions();
this.getRefcdByRefgrp();
if(this.sendBatchNo){
let jisongDataDetail = localStorage.getItem('jisongDataDetail');
this.form = jisongDataDetail? JSON.parse(jisongDataDetail): {};
this.getData();
}
},
methods: {
moment,
onSelectChange(selectedRowKeys) {
let arr = [];
for(let i=0; i<selectedRowKeys.length; i++){
let idx = selectedRowKeys[i];
if(this.dataList[idx].sendBatchNo){
this.$msg.destroy();
this.$message.warning('寄送批号已存在')
}else{
arr.push(idx);
}
}
this.selectedRowKeys = arr;
},
// 获取列表数据
getData() {
this.selectedRowKeys = [];
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
sendBatchNo: this.sendBatchNo,
}
this.$apis.QUERYSENDRECEIPLIST(filter)
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取快递列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "SEND_COMPANY"
}).then((res) => {
this.expressList = res.content || [];
});
},
//查看
detailEvt(record) {
const { receiptNo } = record;
this.$router.push({
name: "chargeQueryDetail",
query: { receiptNo },
});
},
editEvt(record) {
this.editFormObj = {
ciReceiptSendVos: [
{
id: record.id,
receiptNo: record.receiptNo,
}
],
payorCode: record.payorCode || "",
sendSts: Number(record.sendSts) || "",
sendDate: record.sendDate || "",
trackingNo: record.trackingNo || "",
sendRemark: record.sendRemark || "",
};
this.dialogShow = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis.SAVERECEIPSENDINFO({
...this.editFormObj,
sendDate: moment(this.editFormObj.sendDate).format('YYYY-MM-DD 00:00:00')
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this.getData();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
handlerSearch() {
this.pagination.pageNum = 1;
this.isEditNewBill = false;
this.getData();
},
//删除
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.DELETERECEIPTSENDINFO({
sendBatchNo: this.dataList[index].sendBatchNo,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
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;
})
}else{ //查询所有未加入的账单
this.pagination.pageNum = 1;
this.$apis.QUERYNOSENDRECEIPLIST({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
payorCode: this.form.payorCode
})
.then((res) => {
if (res.returnCode == "0000") {
this.selectedRowKeys = [];
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
}
},
//新建/保存寄送
addNewCharge(){
if(!this.form.trackingNo){
this.$message.warning("请输入快递单号");
return;
}
if(!this.form.sendDate){
this.$message.warning("请选择寄送日期");
return;
}
let ciReceiptSendVos = [];
this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){
ciReceiptSendVos.push({
id: item.id,
receiptNo: item.receiptNo,
})
}
})
let formData = {
...this.form,
ciReceiptSendVos: ciReceiptSendVos,
sendDate: moment(this.form.sendDate).format('YYYY-MM-DD 00:00:00'),
sendBatchNo: this.sendBatchNo
}
return new Promise((resolve,reject)=>{
this.$apis.SAVERECEIPSENDINFO(formData)
.then((res) => {
if (res.returnCode == "0000") {
this.sendBatchNo = res.content;
this.$message.success("成功");
this.selectedRowKeys = [];
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>
......@@ -5,149 +5,101 @@
<a-row :gutter="30">
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="病历号码" prop="mrnNo">
<a-input
v-model="form.mrnNo"
placeholder="请输入病历号"
allow-clear
></a-input>
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户姓名" prop="patientName">
<a-input
v-model="form.patientName"
allow-clear
placeholder="请输入客户姓名"
></a-input>
<a-input v-model="form.patientName" allow-clear placeholder="请输入客户姓名"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<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-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保险公司" prop="payorId">
<a-select
v-model="form.payorId"
placeholder="请选择保险公司"
show-search
allow-clear
@filterOption="filterCode"
@change="payorChange"
>
<a-select-option
v-for="item in companyCode"
:key="item.id"
:value="item.id"
:label="item.longName"
>
{{ item.longName }}
</a-select-option>
<a-form-model-item label="性别" prop="sex">
<a-radio-group v-model="form.sex" :default-value="form.sex" button-style="solid">
<a-radio-button value="M"></a-radio-button>
<a-radio-button class="mar-left10" value="F"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="证件类型" prop="idType">
<a-select v-model="form.idType" placeholder="请选择证件类型" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in typeCode" :key="item.refcd" :value="item.refcd" :label="item.descCh">{{ item.descCh }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="证件号码" prop="idNo">
<a-input v-model="form.idNo" allow-clear placeholder="请输入证件号码"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保险公司" prop="payorId">
<a-select v-model="form.payorId" placeholder="请选择保险公司" show-search allow-clear @filterOption="filterCode" @change="payorChange">
<a-select-option v-for="item in companyCode" :key="item.id" :value="item.id" :label="item.longName">{{ item.longName }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户公司名称" prop="corpName">
<a-select
v-model="form.corpName"
placeholder="请选择客户公司名称"
show-search
allow-clear
@filterOption="filterCode"
@change="corpChange"
@search="corpSearch"
>
<a-select-option
v-for="item in comCorpCode"
:key="item.id"
:value="item.id + '$_' + item.longName"
>
<a-select v-model="form.corpName" placeholder="请选择客户公司名称" show-search allow-clear
@filterOption="filterCode" @change="corpChange" @search="corpSearch">
<a-select-option v-for="item in comCorpCode" :key="item.id" :value="item.id + '$_' + item.longName">
{{ 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="保单卡号" prop="policyNo">
<a-input
allow-clear
v-model="form.policyNo"
placeholder="请输入保单卡号"
></a-input>
<a-form-model-item label="保险卡号" prop="cardNo">
<a-input allow-clear v-model="form.cardNo" placeholder="请输入保险卡号"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保单号码" prop="policyNo">
<a-input allow-clear v-model="form.policyNo" placeholder="请输入保单号码"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="首次入保时间" prop="firstEnrollmentTime">
<a-date-picker
allow-clear
v-model="form.firstEnrollmentTime"
placeholder="请选择首次入保时间"
value-format="YYYY-MM-DD 00:00:00"
></a-date-picker>
<a-date-picker allow-clear v-model="form.firstEnrollmentTime" placeholder="请选择首次入保时间" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<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"
></a-date-picker>
<a-date-picker allow-clear v-model="form.startDate" placeholder="请选择保单生效日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保单终止日期" prop="endDate">
<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-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险计划" prop="planName">
<a-select
v-model="form.planName"
placeholder="请选择保险计划"
show-search
allow-clear
@filterOption="filterCode"
@search="codeSearch"
>
<a-select-option
v-for="item in comPlanCode"
:key="item.id + '_' + item.longName"
:vlaue="item.longName"
<a-select v-model="form.planName" placeholder="请选择保险计划" show-search allow-clear @filterOption="filterCode" @search="codeSearch"
>
<a-select-option v-for="item in comPlanCode" :key="item.id + '_' + item.longName" :vlaue="item.longName">
{{ 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="其他备注" prop="remark">
<a-input
allow-clear
v-model="form.remark"
placeholder="请输入备注信息"
></a-input>
<a-form-model-item label="保单直付区域" prop="policyDircetArea">
<a-select v-model="form.policyDircetArea" placeholder="请选择保单直付区域" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in areaCode" :key="item.refcd" :value="item.refcd" :label="item.descCh">{{ item.descCh }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="等待期" prop="waitingPeriod">
<a-radio-group
v-model="form.waitingPeriod"
:default-value="form.waitingPeriod"
button-style="solid"
>
<a-radio-group v-model="form.waitingPeriod" :default-value="form.waitingPeriod" button-style="solid">
<a-radio-button value="Y"></a-radio-button>
<a-radio-button class="mar-left10" value="N"></a-radio-button>
</a-radio-group>
......@@ -155,16 +107,17 @@
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="是否承担既往症" prop="isUndertakeAnamnesis">
<a-radio-group
v-model="form.isUndertakeAnamnesis"
:default-value="form.isUndertakeAnamnesis"
button-style="solid"
>
<a-radio-group v-model="form.isUndertakeAnamnesis" :default-value="form.isUndertakeAnamnesis" button-style="solid">
<a-radio-button value="Y"></a-radio-button>
<a-radio-button class="mar-left10" value="N"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="其他备注" prop="remark">
<a-input allow-clear v-model="form.remark" placeholder="请输入备注信息"></a-input>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="9" :sm="12">
......@@ -212,16 +165,13 @@
<a-row>
<a-col :xl="24" :lg="18" :sm="12" class="none-label clearfix">
<a-form-model-item label="button">
<a-button type="primary">
<!-- <a-button type="primary">
<Icon name="ssiprint" :size="14" />打印理赔申请书
</a-button> -->
<a-button class="mar-left10 text-r" type="primary" @click="handlerSave">
<Icon name="ssidownload" :size="14" />保存
</a-button>
<a-button
class="mar-left10 text-r"
type="primary"
@click="handlerSave"
><Icon name="ssidownload" :size="14" />保存
</a-button>
<a-button type="primary" class="text-r" @click="handlerReset">
<a-button type="primary" class="mar-left10 text-r" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
</a-form-model-item>
......@@ -236,10 +186,15 @@
<script>
export default {
beforeRouteUpdate(to, from, next) {
this.$refs.form.resetFields();
next();
},
data() {
return {
previewVisible: false,
form: {
sex: 'U',
payorId: undefined,
corpName: undefined,
planName: undefined,
......@@ -257,10 +212,16 @@ export default {
planCode: [],
comPlanCode: [],
formRules: {},
typeCode: [],
areaCode: []
};
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.getCustomerDetail(this.$route.query);
}
this._getPayorCode();
this.initCodeData();
},
methods: {
handlerSave() {
......@@ -268,17 +229,18 @@ export default {
if (!valid) {
return false;
}
this.$apis.CREATENEWCUSTOMER(this.form).then((res) => {
const fn = this.form.id || this.form.id === 0 ? this.$apis.UPDATECUSTOMDATA : this.$apis.CREATENEWCUSTOMER
fn(this.form).then((res) => {
if (res.returnCode === "0000") {
this.$message.success("新建成功");
this.$message.success("操作成功");
const { id, patientPolicyId } = res.content || {};
this.$router.push({
name: "welfare",
query: { id, patientPolicyId },
name: "welfareInfo",
query: { id: id || this.form.id, patientPolicyId: patientPolicyId || this.form.patientPolicyId },
});
// this.$router.push("/customer");
} else {
this.$message.success(res.returnMsg || "新建失败");
this.$message.success(res.returnMsg || "操作失败");
}
});
});
......@@ -315,6 +277,40 @@ export default {
];
}
},
getCustomerDetail(params) {
// this.queryForm = this.$lodash.cloneDeep(this.form);
const { id, patientPolicyId } = params;
const data = {
id: id && id * 1,
patientPolicyId: patientPolicyId * 1,
};
this.$apis.GETCUSTOMERDETAIL(data).then((res) => {
if (res.returnCode === "0000") {
this.form = res.content || {};
this._getCorporateCode(this.form.payorCode);
this._getPlanCode(this.form.corpCode);
const medCardCopeFiles = this.form.medCardCopeFiles || [];
const idCardCopeFiles = this.form.idCardCopeFiles || [];
medCardCopeFiles.forEach((item) => {
this.medCardCopeFiles.push({
url: item.fileUrl,
uid: item.fileUrl,
name: item.fileName,
})
})
idCardCopeFiles.forEach((item) => {
this.idCardCopeFiles.push({
url: item.fileUrl,
uid: item.fileUrl,
name: item.fileName,
})
})
}
// this.dataList = (res.content && res.content.list) || [];
// this.total = (res.content && res.content.total) || 0;
});
},
codeSearch(val) {
if (!val) {
this.comPlanCode = this.planCode;
......@@ -410,6 +406,21 @@ export default {
handleClose() {
this.previewVisible = false;
},
initCodeData() {
const params = {
typeCode: {
modid: "CI",
refgrp: "ID_TYPE"
},
areaCode: {
modid: "CI",
refgrp: "POLICY_DIRECT_AREA"
},
}
for (let i in params) {
this._getRefcdByRefgrp(params[i], i)
}
},
// 选择框筛选
filterCode(input, option) {
return (
......@@ -445,6 +456,14 @@ export default {
this.comPlanCode = res.content || [];
});
},
_getRefcdByRefgrp(data, prop) {
if (this[prop] && this[prop].length) {
return true
}
this.$apis.GETREFCDBYREFGRP(data).then((res) => {
this[prop] = res.content || [];
});
},
},
};
</script>
......
......@@ -5,51 +5,34 @@
<a-row :gutter="30">
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="病历号码">
<a-input v-model="form.mrnNo" placeholder="请输入病历号"></a-input>
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear></a-input>
</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="请输入客户姓名"
></a-input>
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="出生日期">
<a-date-picker
v-model="form.birthday"
placeholder="请选择出生日期"
></a-date-picker>
<a-date-picker v-model="form.birthday" placeholder="请选择出生日期" value-format="YYYY-MM-DD 00:00:00" allow-clear></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorId" placeholder="请选择保险公司">
<a-select-option
v-for="item in companyCode"
:key="item.corpCode"
:value="item.id"
>
{{ item.longName }}
</a-select-option>
<a-select v-model="form.payorId" placeholder="请选择保险公司" allow-clear>
<a-select-option v-for="item in companyCode" :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-input
v-model="form.policyNo"
placeholder="请输入保单号码"
></a-input>
<a-input v-model="form.policyNo" placeholder="请输入保单号码" allow-clear></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="18" :lg="18" :sm="12" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" @click="addNewCustom"
><Icon name="ssiadd" :size="14" />新建客户信息</a-button
>
<a-button type="primary" @click="addNewCustom"><Icon name="ssiadd" :size="14" />新建客户信息</a-button>
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
......@@ -68,23 +51,11 @@
:customRow="handlerRowClick"
>
<template slot="operation" slot-scope="record">
<a-button
v-if="record.isEdit"
type="link"
@click.stop="saveChange(record)"
>保存</a-button
>
<a-button v-else type="link" @click.stop="changeDataStatus(record)"
>修改</a-button
>
<a-button type="link" class="success">新增</a-button>
<a-popconfirm
title="你确定要关闭吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData"
>
<a-button type="link" class="danger">删除</a-button>
<a-button type="link" @click.stop="changeDataStatus(record)">修改</a-button>
<a-button type="link" @click.stop="printClaimPdf(record)">打印理赔申请书</a-button>
<!-- <a-button type="link" class="success">新增</a-button> -->
<a-popconfirm title="你确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData(record)">
<a-button type="link" class="danger" @click.stop>删除</a-button>
</a-popconfirm>
</template>
</a-table>
......@@ -95,44 +66,24 @@
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import {downloadFile} from '@/utils/index'
import moment from 'moment'
export default {
data() {
const columns = [
{
title: "病历号",
dataIndex: "mrnNo",
width: 180,
customRender: (val, row) => {
if (row.isEdit) {
return <a-input v-model={row.mrnNo}></a-input>;
const dateFormat = (val) => {
return val && moment(val).format('YYYY-MM-DD')
}
return val;
},
},
{
title: "客户姓名",
dataIndex: "patientName",
width: 120,
customRender: (val, row) => {
if (row.isEdit) {
return <a-input v-model={row.patientName}></a-input>;
}
return val;
},
},
{ title: "出生日期", dataIndex: "birthday", width: 180 },
const columns = [
{ title: "病历号", dataIndex: "mrnNo", width: 180, },
{ title: "客户姓名", dataIndex: "patientName", width: 120,},
{ title: "出生日期", dataIndex: "birthday", width: 170, customRender: dateFormat},
{ title: "性别", dataIndex: "sex", width: 80 },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "保险有效日期", dataIndex: "startDate", width: 180 },
{ title: "保险终止日期", dataIndex: "endDate", width: 180 },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
{ title: "保险有效日期", dataIndex: "startDate", width: 170, customRender: dateFormat },
{ title: "保险终止日期", dataIndex: "endDate", width: 170, customRender: dateFormat },
{ title: "操作", key: "operation", width: "260px", fixed: "right", scopedSlots: { customRender: "operation" }},
];
return {
columns,
......@@ -143,12 +94,12 @@ export default {
pager: {
pageNum: 1,
pageSize: 10,
total: 0
}
total: 0,
},
};
},
components: {
BurtPagination
BurtPagination,
},
created() {
this._getCustomerList();
......@@ -167,7 +118,7 @@ export default {
return true;
}
this.$router.push({
name: "welfare",
name: "welfareInfo",
query: { id, patientPolicyId },
});
},
......@@ -176,7 +127,11 @@ export default {
},
// 修改按钮
changeDataStatus(record) {
this.$set(record, "isEdit", true);
const { id, patientPolicyId } = record;
this.$router.push({
name: "customerEdit",
query: { id, patientPolicyId },
});
},
saveChange(record) {
record.isEdit = undefined;
......@@ -192,8 +147,29 @@ export default {
this._getCustomerList();
});
},
deleteData() {
this.$message.success("删除成功");
printClaimPdf(data) {
this.$apis.CREATECUSTOMERCLAIMPGF(data).then(res => {
const {url, file_name} = downloadFile(res);
console.log(url, file_name)
let link = document.createElement('a');
link.setAttribute('href', url);
// link.setAttribute('download', file_name);
link.setAttribute('target', "_blank");
link.setAttribute('alt', file_name);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
},
deleteData(data) {
this.$apis.DELETECUSTOM({id: data.id}).then(res => {
if (res.returnCode === "0000") {
this.$message.success(res.returnMsg || "操作成功");
this._getCustomerList();
} else {
this.$message.error(res.returnMsg || "操作失败");
}
})
},
// 新建客户信息
addNewCustom() {
......
<template>
<div class="white_bg burt-container">
<div class="title-div">保险公司信息</div>
<div class="flex title-div">
<span>保险公司信息</span>
<a-button type="primary" @click.stop="addCompany">新建保险公司</a-button>
</div>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false">
<div v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index" :key="col.dataIndex" >
<template v-if="col.dataIndex == 'operation'">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button type="link" @click.stop="detailEvt(record)">查看</a-button>
<a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
<template v-else>
......@@ -67,7 +70,7 @@ const columns = [
{ title: "联系地址", dataIndex: "address", ellipsis: true, scopedSlots: { customRender: "address" }, width: 180},
{ title: "Protal链接", dataIndex: "portalUrl", ellipsis: true, scopedSlots: { customRender: "portalUrl" }, width: 155 },
{ title: "联系人", dataIndex: "contactPerson", ellipsis: true, scopedSlots: { customRender: "contactPerson" },width: 100},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px",align: "center"},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px",align: "center"},
];
export default {
data() {
......@@ -80,6 +83,7 @@ export default {
total: 0,
},
dataList: [],
countyList: [],
editFormObj: {
id: "",
longName: "",
......@@ -99,8 +103,18 @@ export default {
},
created() {
this.getData();
this.getRefcdByRefgrp();
},
methods: {
// 获取国家列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "COUNTRY_MAPPING"
}).then((res) => {
this.countyList = res.content || [];
});
},
//获取列表
getData() {
this.$apis
......@@ -118,6 +132,25 @@ export default {
}
});
},
//新增保险公司
addCompany(){
this.$apis.CREATEPAY({
...this.detailObj
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("新增成功");
this.$router.push({
path: '/info/companyDetail',
query: {
id: res.content
}
})
} else {
this.$message.error(res.returnMsg);
}
});
},
//编辑
editEvt(record) {
this.editFormObj = {
......@@ -206,5 +239,6 @@ export default {
line-height: 52px;
color: #252631;
font-weight: bold;
justify-content: space-between;
}
</style>
......@@ -30,7 +30,7 @@
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getTableList" />
<a-modal title="编辑" :visible="dialogShow" width="60%" :maskClosable="false"
<a-modal :title="editFormObj.id?'编辑':'新增'" :visible="dialogShow" width="60%" :maskClosable="false"
okText="确定" cancelText="取消" @ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model layout="vertical" ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
......
......@@ -14,14 +14,16 @@
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="国家">
<a-input v-model="detailObj.country" placeholder="国家" />
<a-select v-model="detailObj.country" placeholder="请选择">
<a-select-option v-for="(item) in countyList" :value="item.descCh" :key="item.id">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :lg="3" :sm="12">
<a-form-model-item label="有效">
<a-select v-model="detailObj.status" placeholder="请选择" disabled>
<a-select v-model="detailObj.status" placeholder="请选择">
<a-select-option value="1">有效</a-select-option>
<a-select-option value="2">无效</a-select-option>
</a-select>
......@@ -111,7 +113,7 @@
<a-col :sm="24" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" @click="handlerSava">
<Icon name="ssiadd" :size="14" />新建
<Icon name="ssibaocun" :size="14" />保存
</a-button>
</a-form-model-item>
</a-col>
......@@ -127,18 +129,30 @@ export default {
},
data() {
return {
countyList: [],
}
},
created(){
this.getRefcdByRefgrp();
},
methods: {
// 获取国家列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "COUNTRY_MAPPING"
}).then((res) => {
this.countyList = res.content || [];
});
},
//新建保存
handlerSava(){
this.$apis.CREATEPAY({
this.$apis.PAYORUPDATE({
...this.detailObj
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("新建成功");
this.$message.success("保存成功");
} else {
this.$message.error(res.returnMsg);
}
......
......@@ -3,22 +3,17 @@
<div class="title-div">申请日期</div>
<a-form-model ref="form" layout="vertical">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-col :lg="8" :sm="12">
<a-form-model-item label="医疗机构名称">
<a-input v-model="detailObj.longName" placeholder="医疗机构名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-col :lg="8" :sm="12">
<a-form-model-item label="医疗机构英文名">
<a-input v-model="detailObj.englishName" placeholder="医疗机构英文名" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="营业时间">
<a-date-picker v-model="detailObj.businessHours" format="YYYY年MM月DD日" placeholder="选择日期"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-col :lg="8" :sm="12">
<a-form-model-item label="联系电话">
<a-input v-model="detailObj.telNo1" placeholder="请输入联系电话" />
</a-form-model-item>
......@@ -33,6 +28,11 @@
<a-input v-model="detailObj.englishAddr" placeholder="诊所地址(英文)" />
</a-form-model-item>
</a-col>
<a-col :sm="12">
<a-form-model-item label="营业时间">
<a-textarea v-model="detailObj.businessHours" placeholder="请输入营业时间" :auto-size="{ minRows: 3, maxRows: 5 }" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div class="title-div">账户信息-人民币账户</div>
......@@ -59,8 +59,8 @@
<a-form-model layout="vertical">
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="Beneficiiary Name 账号">
<a-input v-model="detailObj.accountNameEng" placeholder="Beneficiiary Name 账号" />
<a-form-model-item label="Beneficiary账户名称">
<a-input v-model="detailObj.accountNameEng" placeholder="Beneficiary账户名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
......@@ -97,22 +97,37 @@
<span>{{ filterSpecialty(record.specialtyList) }}</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">{{ record.edit ? "保存" : "修改"}}</a-button>
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getDoctorList" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
<a-modal title="编辑" :visible="dialogShow" width="60%" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj"
:rules="editRules" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :sm="24">
<a-form-model-item label="医生英文名" prop="doctorDescLang1">
<a-input v-model.trim="editFormObj.doctorDescLang1" placeholder="医生英文名" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="国家" prop="country">
<a-select v-model="editFormObj.country" placeholder="请选择" showSearch allowClear>
<a-select-option v-for="(item) in countyList" :value="item.descCh" :key="item.id">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="科室" prop="specialtyList">
<a-select v-model="editFormObj.specialtyList" placeholder="请选择" mode="multiple">
<a-select v-model="editFormObj.specialtyList" placeholder="请选择" mode="multiple" showSearch allowClear>
<a-select-option :value="item.id" v-for="item in specialtyList" :key="item.id">{{ item.specialtyDesc }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
......@@ -124,41 +139,16 @@ const columns = [
{ title: "序号", dataIndex: "id", ellipsis: true, width: 150 },
{ title: "工号", dataIndex: "doctorCode", ellipsis: true, width: 95 },
{ title: "医生姓名", dataIndex: "doctorDesc", ellipsis: true, width: 125 },
{
title: "医生英文名",
dataIndex: "doctorDescLang1",
ellipsis: true,
width: 135,
},
{
title: "科室",
dataIndex: "specialtyList",
ellipsis: true,
scopedSlots: { customRender: "specialtyList" },
width: 155,
},
{
title: "国籍",
dataIndex: "country",
ellipsis: true,
width: 110,
},
{ title: "医生英文名", dataIndex: "doctorDescLang1", ellipsis: true, width: 135,},
{ title: "科室", dataIndex: "specialtyList", ellipsis: true, scopedSlots: { customRender: "specialtyList" }, width: 155,},
{ title: "国籍", dataIndex: "country", ellipsis: true, width: 110, },
{ title: "语言", dataIndex: "language", ellipsis: true, width: 120 },
{
title: "操作",
dataIndex: "operation",
scopedSlots: { customRender: "operation" },
fixed: "right",
width: "120px",
align: "center",
},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", },
];
export default {
data() {
return {
dialogShow: false,
labelCol: { span: 4 },
wrapperCol: { span: 20 },
columns,
dataList: [],
detailObj: {}, //详细信息
......@@ -169,8 +159,11 @@ export default {
},
specialtyList: [], //科室列表
specialtyObj: {}, //科室对象
countyList: [],
editFormObj: {
id: "",
doctorDescLang1: '',
country: '',
specialtyList: [],
},
editRules: {
......@@ -187,6 +180,7 @@ export default {
this.getSpecialtyList();
await this.getDetail();
this.getDoctorList();
this.getRefcdByRefgrp();
},
methods: {
filterSpecialty(val) {
......@@ -199,6 +193,15 @@ export default {
this.pagination.pageNum = 1;
this.getData();
},
// 获取国家列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "COUNTRY_MAPPING"
}).then((res) => {
this.countyList = res.content || [];
});
},
//获取科室
getSpecialtyList() {
this.$apis.GETSPECIALTYLIST().then((res) => {
......@@ -257,6 +260,8 @@ export default {
editEvt(record) {
this.editFormObj = {
id: record.id || "",
doctorDescLang1: record.doctorDescLang1 || "",
country: record.country || "",
specialtyList: record.specialtyList || [],
};
this.dialogShow = true;
......@@ -267,7 +272,7 @@ export default {
if (valid) {
this.$apis
.DOCTORUPDATE({
id: this.editFormObj.id,
...this.editFormObj,
specialtyList: this.editFormObj.specialtyList.map((item) => {
return {
specialtyId: item,
......
......@@ -61,7 +61,7 @@ export default {
}
} else if (item.path && item.path === key) {
console.log(item, key);
menuStack.push(item);
menuStack.unshift(item);
this.$store.commit("common/setMenuStack", menuStack);
return true;
}
......
......@@ -48,6 +48,9 @@ export default {
<style lang="less" scoped>
.sub-menu {
width: 100%;
overflow-x: auto;
white-space: nowrap;
.mg-b(16);
.btn {
.fs(14);
......
<template>
<div>111</div>
</template>
<script>
export default {
data() {
return {};
},
};
</script>
<style lang="less" scoped></style>
......@@ -5,81 +5,41 @@
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorId" placeholder="请选择">
<a-select-option value="1">待核销</a-select-option>
<a-select-option value="2">已核销</a-select-option>
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="回款日期">
<a-date-picker
format="YYYY年MM月DD日"
v-model="form.date"
placeholder="选择日期"
/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="银行状态">
<a-select v-model="form.payorId" placeholder="请选择">
<a-select-option value="1">待核销</a-select-option>
<a-select-option value="2">已核销</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="4" :sm="12">
<a-form-model-item label="回款金额(人民币)">
<a-input
type="number"
v-model="form.mrnNo"
placeholder="请输入金额"
/>
</a-form-model-item>
</a-col>
<a-col :lg="4" :sm="12">
<a-form-model-item label="回款金额(美元)">
<a-input
type="number"
v-model="form.mrnNo"
placeholder="请输入金额"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="汇率差">
<a-input v-model="form.mrnNo" placeholder="请输入金额" />
<a-form-model-item label="EOB编号">
<a-input v-model="form.eobNo" placeholder="EOB编号"/>
</a-form-model-item>
</a-col>
<a-col :md="24" :lg="18" class="none-label">
<a-col :md="12" class="none-label">
<a-form-model-item label="button">
<a-button type="primary">导出</a-button>
<a-button class="mar-left10" type="primary">
<Icon name="ssiadd" :size="14" />新建回款
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
<a-button class="mar-left10" type="primary">
<a-button class="mar-left10" type="primary" @click.stop="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 class="mar-left10" type="primary" @click="addNewEvt">
<Icon name="ssiadd" :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="operation" slot-scope="record, index">
<a-button type="link">修改</a-button>
<a-button type="link" class="success">新增</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)"
>删除</a-button
>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false" >
<template slot="eobSts" slot-scope="text">
{{text==1?'待回款':'已回款'}}
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button v-if="record.backMoneyNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<BurtPagination :pagination="pagination" @pageChange="getData" />
......@@ -88,41 +48,25 @@
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
const columns = [
{ title: "序号", dataIndex: "mrnNo", ellipsis: true, width: 72 },
{ title: "EOB名称", dataIndex: "patientName", ellipsis: true, width: 195 },
{ title: "核销时间", dataIndex: "patientName2", ellipsis: true, width: 110 },
{ title: "保险公司", dataIndex: "patientName3", ellipsis: true, width: 110 },
{ title: "EOB状态", dataIndex: "patientName9", ellipsis: true, width: 110 },
{
title: "EOB赔付金额(人民币)",
dataIndex: "patientName4",
ellipsis: true,
width: 190,
},
{
title: "EOB赔付金额(美元)",
dataIndex: "patientName5",
ellipsis: true,
width: 190,
},
{ title: "汇率差", dataIndex: "patientName10", ellipsis: true, width: 110 },
{
title: "操作",
dataIndex: "operation",
scopedSlots: { customRender: "operation" },
fixed: "right",
width: "170px",
},
{ title: "回款编号", dataIndex: "backMoneyNo", ellipsis: true, width: 150 },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 },
{ title: "回款金额(人民币)", dataIndex: "backAmountCny", ellipsis: true, width: 190,},
{ title: "回款金额(美元)", dataIndex: "backAmountUsd", ellipsis: true, width: 190,},
{ title: "汇率差", dataIndex: "backExchangeRate", ellipsis: true, width: 110 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px"},
];
export default {
data() {
return {
columns,
form: {
dateRange: [],
payorCode: '',
eobNo: '',
},
dataList: [],
companyOptions: [], //保险公司
pagination: {
pageNum: 1,
pageSize: 10,
......@@ -133,17 +77,67 @@ export default {
components: {
BurtPagination,
},
created(){
this.getData();
this._getCompanyOptions();
},
methods: {
moment,
pageChange(pager) {
const { current } = pager;
this.pagination.pageNum = current;
this.getData();
},
// 重置
handlerReset() {
this.form = {
payorCode: '',
eobNo: '',
}
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
getData() {},
getData() {
this.$apis.QUERYBACKMONEYLIST({
...this.form,
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 || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
//新建回款
addNewEvt(){
this.$router.push({
path: '/verification/collectionDetail'
})
},
//编辑回款
editEvt(record){
const { backMoneyNo } = record;
localStorage.setItem('backMoneyDataDetail', JSON.stringify(record));
this.$router.push({
path: '/verification/collectionDetail',
query: {
backMoneyNo
}
})
},
//删除记录
delRecord(index) {
this.$modal.confirm({
......@@ -152,19 +146,21 @@ export default {
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$store
.dispatch("medicinal/delMedicine", {
id: this.dataList[index].id,
status: -1,
this.$apis.DELETEBACKMONEY({
backMoneyNo: this.dataList[index].backMoneyNo,
})
.then(() => {
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
onCancel: () => {},
});
},
}
},
};
</script>
......
<template>
<div>111</div>
</template>
<script>
export default {
data() {
return {};
},
};
</script>
<style lang="less" scoped></style>
<template>
<div class="white_bg burt-container">
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="回款日期">
<a-date-picker format="YYYY年MM月DD日" v-model="form.backDate" placeholder="选择日期" />
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="回款金额(人民币)">
<a-input type="number" v-model="form.backAmountCny" placeholder="请输入金额"/>
</a-form-model-item>
</a-col>
<a-col :lg="5" :sm="12">
<a-form-model-item label="回款金额(美元)">
<a-input type="number" v-model="form.backAmountUsd" placeholder="请输入金额"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="汇率差">
<a-input v-model="form.backExchangeRate" placeholder="请输入金额" />
</a-form-model-item>
</a-col>
<a-col :md="24" :lg="18" class="none-label">
<a-form-model-item label="button">
<a-button class="mar-left10" type="primary" @click="addNewEvt">
<Icon :name="backMoneyNo?'ssibaocun':'ssiadd'" :size="14" />{{backMoneyNo?'保存回款':'新建回款'}}
</a-button>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :md="24" class="none-label">
<a-form-model-item label="button">
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewEOB">
<Icon :name="isEditNewEOB?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewEOB? '保存EOB': '添加EOB'}}
</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"
:row-selection="isEditNewEOB? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange }: null">
<template slot="eobSts" slot-scope="text">
{{text==1?'待回款':'已回款'}}
</template>
<template slot="eobBackDate" slot-scope="text">
{{text?moment(text).format('YYYY-MM-DD'):''}}
</template>
<template slot="operation" slot-scope="text, record">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<!-- <a-button v-if="record.backMoneyNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> -->
</template>
</a-table>
<BurtPagination :pagination="pagination" @pageChange="getData" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :sm="24">
<a-form-model-item label="EOB状态" prop="eobSts">
<a-select v-model="editFormObj.eobSts" placeholder="请选择状态" allowClear>
<a-select-option value="1">待回款</a-select-option>
<a-select-option value="2">已回款</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="eob核销时间" prop="eobBackDate">
<a-date-picker format="YYYY年MM月DD日" v-model="editFormObj.eobBackDate" placeholder="选择日期" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="eob回款(人民币)" prop="eobBackMoneyCny">
<a-input v-model.trim="editFormObj.eobBackMoneyCny" placeholder="eob回款(人民币)" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="eob回款(美元)" prop="eobBackMoneyUsd">
<a-input v-model.trim="editFormObj.eobBackMoneyUsd" placeholder="eob回款(美元)" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
const columns = [
{ title: "EOB编号", dataIndex: "eobNo", ellipsis: true, width: 150 },
{ title: "EOB名称", dataIndex: "eobName", ellipsis: true, width: 195 },
{ title: "核销时间", dataIndex: "eobBackDate", ellipsis: true, width: 110, scopedSlots: { customRender: "eobBackDate" }, },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 110 },
{ title: "EOB状态", dataIndex: "eobSts", ellipsis: true, width: 110, scopedSlots: { customRender: "eobSts" } },
{ title: "EOB赔付金额(人民币)", dataIndex: "eobAmountCny", ellipsis: true, width: 190,},
{ title: "EOB赔付金额(美元)", dataIndex: "eobAmountUsd", ellipsis: true, width: 190,},
{ title: "EOB回款金额(人民币)", dataIndex: "eobBackMoneyCny", ellipsis: true, width: 190,},
{ title: "EOB回款金额(美元)", dataIndex: "eobBackMoneyUsd", ellipsis: true, width: 190,},
{ title: "汇率差", dataIndex: "backExchangeRate", ellipsis: true, width: 110 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px"},
];
export default {
data() {
return {
columns,
dialogShow: false,
form: {
payorCode: '',
backDate: '',
backAmountCny: '',
backAmountUsd: '',
backExchangeRate: ''
},
dataList: [],
isEditNewEOB: false, //是否在新建回款
companyOptions: [], //保险公司
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
selectedRowKeys: [], // Check here to configure the default column
backMoneyNo: '',
editFormObj: {
id: '',
eobNo: '',
eobSts: '',
eobBackDate: '',
eobBackMoneyCny: '',
eobBackMoneyUsd: '',
},
editRules: {
backAmountUsd: [{ required: true, message: "请输入", trigger: "blur" }],
backAmount: [{ required: true, message: "请输入", trigger: "blur" }],
},
};
},
components: {
BurtPagination,
},
created(){
this.backMoneyNo = this.$route.query.backMoneyNo;
this._getCompanyOptions();
if(this.backMoneyNo){
let backMoneyDataDetail = localStorage.getItem('backMoneyDataDetail');
this.form = backMoneyDataDetail? JSON.parse(backMoneyDataDetail): {};
this.getData();
}
},
methods: {
moment,
onSelectChange(selectedRowKeys) {
let arr = [];
for(let i=0; i<selectedRowKeys.length; i++){
let idx = selectedRowKeys[i];
if(this.dataList[idx].backMoneyNo){
this.$msg.destroy();
this.$message.warning('回款编号已存在')
}else{
arr.push(idx);
}
}
this.selectedRowKeys = arr;
},
pageChange(pager) {
const { current } = pager;
this.pagination.pageNum = current;
this.getData();
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
getData() {
this.$apis.QUERYBACKEOBLIST({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
backMoneyNo: this.backMoneyNo
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
//添加EOB
addNewEOB(){
this.isEditNewEOB = !this.isEditNewEOB;
if(!this.isEditNewEOB){ //保存
this.addNewEvt()
.then(()=>{
this.isEditNewEOB = false;
})
}else{ //查询所有未加入的账单
this.pagination.pageNum = 1;
this.$apis.QUERYEOBINFOLIST({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize
})
.then((res) => {
if (res.returnCode == "0000") {
this.selectedRowKeys = [];
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
}
},
//新建/保存回款
addNewEvt(){
let backMoneyEobList = [];
this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){
backMoneyEobList.push({
id: item.id,
eobNo: item.eobNo,
eobSts: item.eobSts,
eobBackDate: item.eobBackDate?moment(item.eobBackDate).format('YYYY-MM-DD 00:00:00'):'',
eobBackMoneyCny: item.eobBackMoneyCny,
eobBackMoneyUsd: item.eobBackMoneyUsd,
})
}
})
let formData = {
...this.form,
backMoneyEobList: backMoneyEobList,
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'',
backMoneyNo: this.backMoneyNo, //回款编号
}
return new Promise((resolve,reject)=>{
this.$apis.SAVEBACKMONEY(formData)
.then((res) => {
if (res.returnCode == "0000") {
this.backMoneyNo = res.content;
this.$message.success("成功");
this.selectedRowKeys = [];
this.getData();
resolve();
} else {
this.$message.error(res.returnMsg);
reject();
}
});
})
},
//删除记录
delRecord(index) {
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: () => {},
});
},
editEvt(record) {
this.editFormObj = {
id: record.id,
eobNo: record.eobNo || "",
eobSts: record.eobSts || "",
eobBackDate: record.eobBackDate?moment(record.eobBackDate).format('YYYY-MM-DD 00:00:00'):"",
eobBackMoneyCny: record.eobBackMoneyCny || "",
eobBackMoneyUsd: record.eobBackMoneyUsd || "",
};
this.dialogShow = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis.SAVEBACKMONEY({
...this.form,
backMoneyEobList: [this.editFormObj],
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'',
backMoneyNo: this.backMoneyNo, //回款编号
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this.getData();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
},
};
</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>
......@@ -4,82 +4,43 @@
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="保障公司">
<a-select v-model="form.payorId" placeholder="请选择">
<a-select-option value="1">待核销</a-select-option>
<a-select-option value="2">已核销</a-select-option>
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB收到日期">
<a-range-picker
format="YYYY年MM月DD日"
v-model="form.dateRange"
:placeholder="['开始日期', '结束日期']"
/>
<a-form-model-item label="账单编号">
<a-input v-model="form.receiptNo" placeholder="请输入账单编号" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB名称">
<a-input v-model="form.mrnNo" placeholder="请输入EOB名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(人民币)">
<a-input
type="number"
v-model="form.mrnNo"
placeholder="请输入金额"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(美元)">
<a-input
type="number"
v-model="form.mrnNo"
placeholder="请输入金额"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB状态">
<a-select v-model="form.payorId" placeholder="请选择">
<a-select-option value="1">待核销</a-select-option>
<a-select-option value="2">已核销</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="24" :lg="12" class="none-label">
<a-col :lg="12" :sm="24" class="none-label">
<a-form-model-item label="button">
<a-button type="primary">导出</a-button>
<a-button class="mar-left10" type="primary">
<Icon name="ssiadd" :size="14" />新建EOB
<a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
<a-button class="mar-left10" type="primary">
<a-button class="mar-left10" type="primary" @click.stop="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 type="primary">导出</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewEvt">
<Icon name="ssiadd" :size="14" />新建EOB
</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="operation" slot-scope="record, index">
<a-button type="link">修改</a-button>
<a-button type="link" class="success">新增</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)"
>删除</a-button
>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="sendSts" slot-scope="record, text">
<span>{{text==1?'已寄送':'未寄送'}}</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<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>
</template>
</a-table>
<BurtPagination :pagination="pagination" @pageChange="getData" />
......@@ -88,41 +49,26 @@
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
const columns = [
{ title: "病历号", dataIndex: "mrnNo", ellipsis: true, width: 100 },
{ title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 },
{ title: "保险公司", dataIndex: "patientName2", ellipsis: true, width: 80 },
{ title: "就诊日期", dataIndex: "patientName3", ellipsis: true, width: 110 },
{ title: "理赔状态", dataIndex: "patientName0", ellipsis: true, width: 90 },
{ title: "账单金额", dataIndex: "patientName4", ellipsis: true, width: 85 },
{ title: "自付金额", dataIndex: "patientName5", ellipsis: true, width: 85 },
{ title: "理赔金额", dataIndex: "patientName6", ellipsis: true, width: 85 },
{ title: "回款金额", dataIndex: "patientName7", ellipsis: true, width: 85 },
{ title: "未清金额", dataIndex: "patientName8", ellipsis: true, width: 85 },
{
title: "保险公司欠费",
dataIndex: "patientName9",
ellipsis: true,
width: 110,
},
{ title: "个人欠费", dataIndex: "patientName9", ellipsis: true, width: 85 },
{ title: "备注", dataIndex: "patientName10", ellipsis: true, width: 120 },
{
title: "操作",
dataIndex: "operation",
scopedSlots: { customRender: "operation" },
fixed: "right",
width: "170px",
},
{ title: "EOB编号", dataIndex: "eobNo", ellipsis: true, width: 100 },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 },
{ title: "理赔状态", dataIndex: "sendSts", ellipsis: true, width: 90, scopedSlots: { customRender: "sendSts" } },
{ title: "EOB赔付金额(人民币)", dataIndex: "eobAmountCny", ellipsis: true, width: 85 },
{ title: "EOB赔付金额(美元)", dataIndex: "eobAmountUsd", ellipsis: true, width: 85 },
{ title: "备注", dataIndex: "sendRemark", ellipsis: true, width: 120 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px"},
];
export default {
data() {
return {
columns,
form: {
dateRange: [],
payorCode: '',
receiptNo: '',
},
dataList: [],
companyOptions: [], //保险公司
pagination: {
pageNum: 1,
pageSize: 10,
......@@ -133,12 +79,44 @@ export default {
components: {
BurtPagination,
},
created(){
this.getData();
this._getCompanyOptions();
},
methods: {
moment,
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
getData() {},
// 重置
handlerReset() {
this.form = {
payorCode: '',
receiptNo: '',
}
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
getData() {
this.$apis.QUERYEOBLIST({
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 || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
//删除记录
delRecord(index) {
this.$modal.confirm({
......@@ -147,11 +125,38 @@ export default {
okText: "确认",
cancelText: "取消",
onOk: () => {
console.log(index, 111)
this.$apis.DELEOBRECEIPTINFO({
eobNo: this.dataList[index].eobNo,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
onCancel: () => {},
});
},
//新建EOB
addNewEvt(){
this.$router.push({
path: '/verification/detail'
})
},
//修改
editEvt(record){
const { eobNo } = record;
localStorage.setItem('EobDataDetail', JSON.stringify(record));
this.$router.push({
path: '/verification/detail',
query: {
eobNo
}
})
}
},
};
</script>
......
<template>
<div class="white_bg burt-container">
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" allowClear>
<a-select-option v-for="item in companyOptions" :key="item.id" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB日期">
<a-date-picker format="YYYY年MM月DD日" v-model="form.eobDate" placeholder="选择日期" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB名称">
<a-input v-model="form.eobName" placeholder="请输入EOB名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(人民币)">
<a-input type="number" v-model="form.eobAmountCny" placeholder="请输入金额"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB金额(美元)">
<a-input type="number" v-model="form.eobAmountUsd" placeholder="请输入金额"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB状态">
<a-select v-model="form.eobSts" placeholder="请选择">
<a-select-option value="1">待回款</a-select-option>
<a-select-option value="2">已回款</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="24" :lg="12" class="none-label">
<a-form-model-item label="button">
<!-- <a-button type="primary">导出</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewEvt">
<Icon :name="eobNo?'ssibaocun':'ssiadd'" :size="14" />{{eobNo?'保存EOB':'新建EOB'}}
</a-button>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="30">
<a-col :md="24" class="none-label">
<a-form-model-item label="button">
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewBill">
<Icon :name="isEditNewEob?'ssibaocun':'ssiadd'" :size="14" />{{isEditNewEob? '保存账单': '添加账单'}}</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"
:row-selection="isEditNewEob?{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }:null">
<template slot="visitTimeStart" slot-scope="text, record">
<span>{{record.visitTimeStart? moment(record.visitTimeStart).format('YYYY-MM-DD'):''}}</span> ~
<span>{{record.visitTimeEnd? moment(record.visitTimeEnd).format('YYYY-MM-DD'):''}}</span>
</template>
<template slot="sendSts" slot-scope="record, text">
<span>{{text==1?'已寄送':'未寄送'}}</span>
</template>
<template slot="operation" slot-scope="text, record">
<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> -->
</template>
</a-table>
<BurtPagination :pagination="pagination" @pageChange="getData" />
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow = false">
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30">
<a-col :lg="12" :sm="24">
<a-form-model-item label="理赔状态" prop="paidSts">
<a-select v-model="editFormObj.sendSts" placeholder="请选择理赔状态" allowClear>
<a-select-option :value="1">待核销</a-select-option>
<a-select-option :value="2">已核销</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="账单回款金额" prop="paidAmountEob">
<a-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="未赔付金额" prop="refuseAmountEob">
<a-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="寄送备注" prop="sendRemark">
<a-textarea v-model.trim="editFormObj.sendRemark" placeholder="寄送备注" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
const columns = [
{ title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 100 },
{ title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 },
{ title: "就诊日期", dataIndex: "visitTimeStart", ellipsis: true, width: 110, scopedSlots: { customRender: "visitTimeStart" } },
{ title: "理赔状态", dataIndex: "sendSts", ellipsis: true, width: 90, scopedSlots: { customRender: "sendSts" } },
{ title: "账单金额", dataIndex: "receiptAmount", ellipsis: true, width: 85 },
{ title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 },
{ title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 },
{ title: "回款金额", dataIndex: "paidAmountEob", ellipsis: true, width: 85 },
{ title: "未清金额", dataIndex: "refuseAmountEob", ellipsis: true, width: 85 },
{ title: "保险公司欠费", dataIndex: "payorNoPaidAmount", ellipsis: true, width: 110, },
{ title: "个人欠费", dataIndex: "perNoPaidAmount", ellipsis: true, width: 85 },
{ title: "备注", dataIndex: "sendRemark", ellipsis: true, width: 120 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "170px"},
];
export default {
data() {
return {
dialogShow: false,
columns,
eobNo: '', //eob编号
form: {
eobDate: '',
payorCode: '',
eobName: '',
eobAmountCny: '',
eobAmountUsd: '',
eobSts: ''
},
dataList: [],
isEditNewEob: false, //是否在新建EOB
companyOptions: [], //保险公司
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
selectedRowKeys: [], // Check here to configure the default column
editFormObj: {
receiptNo: '',
paidSts: '',
paidAmountEob: '',
refuseAmountEob: ''
},
editRules: {
},
};
},
components: {
BurtPagination,
},
created(){
this.eobNo = this.$route.query.eobNo;
this._getCompanyOptions();
if(this.eobNo){
let EobDataDetail = localStorage.getItem('EobDataDetail');
this.form = EobDataDetail? JSON.parse(EobDataDetail): {};
this.getData();
}
},
methods: {
moment,
onSelectChange(selectedRowKeys) {
let arr = [];
for(let i=0; i<selectedRowKeys.length; i++){
let idx = selectedRowKeys[i];
if(this.dataList[idx].eobNo){
this.$msg.destroy();
this.$message.warning('EOB编号已存在')
}else{
arr.push(idx);
}
}
this.selectedRowKeys = arr;
},
handlerSearch() {
this.pagination.pageNum = 1;
this.isEditNewEob = false;
this.getData();
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
getData() {
this.$apis.QUERYEOBRECEIPTLIST({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
eobNo: this.eobNo
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
//修改单条数据
editEvt(record) {
this.editFormObj = {
receiptNo: record.receiptNo,
refuseAmountEob: record.refuseAmountEob || "",
paidSts: record.paidSts || "",
paidAmountEob: record.paidAmountEob || "",
};
this.dialogShow = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis.SAVEEOBRECEIPTINFO({
...this.form,
eobReceiptList: [this.editFormObj],
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):''
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this.getData();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
//删除记录
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$apis.DELEOBRECEIPTINFO({
eobNo: this.dataList[index].eobNo,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
onCancel: () => {},
});
},
//添加账单
addNewBill(){
this.isEditNewEob = !this.isEditNewEob;
if(!this.isEditNewEob){ //保存
this.addNewEvt()
.then(()=>{
this.isEditNewEob = false;
})
}else{ //查询所有未加入的账单
this.pagination.pageNum = 1;
this.$apis.QUERYEOBNEEDRECEIPTLIST({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize
})
.then((res) => {
if (res.returnCode == "0000") {
this.selectedRowKeys = [];
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = content.list || [];
} else {
this.$message.error(res.returnMsg);
}
});
}
},
//新建/保存EOB
addNewEvt(){
let eobReceiptList = [];
this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){
eobReceiptList.push({
receiptNo: item.receiptNo,
refuseAmountEob: item.refuseAmountEob,
paidSts: item.paidSts,
paidAmountEob: item.paidAmountEob,
})
}
})
let formData = {
...this.form,
eobReceiptList: eobReceiptList,
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'',
eobNo: this.eobNo
}
return new Promise((resolve,reject)=>{
this.$apis.SAVEEOBRECEIPTINFO(formData)
.then((res) => {
if (res.returnCode == "0000") {
this.eobNo = res.content;
this.$message.success("成功");
this.selectedRowKeys = [];
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);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
</style>
<template>
<div class="benefits">
<div class="none-label mar-bottom10">
<a-button type="primary" @click="editBenefitData(null)">
<Icon name="ssiadd" :size="14" />新增福利
</a-button>
</div>
<a-table
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="benefitData"
row-key="benefitCode"
:pagination="false"
>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editBenefitData(record)">修改</a-button>
<a-popconfirm
title="你确定要删除吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData(record)"
>
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
<template slot="expandedRowRender" slot-scope="record">
<condition :form-data="{ ...record, conditionType: '01' }" />
</template>
</a-table>
<a-modal
title="福利管理"
v-model="isBenefitEditShow"
:footer="null"
width="500px"
@cancel="isBenefitEditShow = false"
>
<a-form-model ref="editForm" layout="vertical" :model="editForm" :rules="editRule">
<a-row :gutter="20">
<a-col :md="12">
<a-form-model-item label="客户公司名称" prop="corpCode">
<a-input disabled v-model="editForm.corpCode"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-input disabled v-model="editForm.planCode"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="保险责任" prop="coverageCode">
<a-input disabled v-model="editForm.coverageCode"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="福利项目" prop="benefitCode">
<a-select v-model="editForm.benefitCode" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in benefitCode" :key="item.benefitCode" :vlaue="item.benefitCode">
{{ item.description }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="开始时间" prop="startDate">
<a-date-picker v-model="editForm.startDate" placeholder="请选择开始时间" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="结束时间" prop="endDate">
<a-date-picker v-model="editForm.endDate" placeholder="请选择结束时间" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="等待期">
<a-input-number v-model="editForm.waitingPeriod">
</a-input-number>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="是否天数">
<a-input-number v-model="editForm.isdays"></a-input-number>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="英文描述">
<a-input v-model="editForm.englishDesc"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="描述">
<a-input v-model="editForm.loaDesc"> </a-input>
</a-form-model-item>
</a-col>
<!-- <a-col :md="12">
<a-form-model-item label="状态">
<a-select
v-model="editForm.status"
show-search
allow-clear
@filterOption="filterCode"
>
<a-select-option
v-for="item in statusCode"
:key="item.code"
:vlaue="item.code"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col> -->
</a-row>
<a-form-model-item label="备注">
<a-textarea v-model="editForm.remarks" :autoSize="{ minRows: 2, maxRows: 5 }"></a-textarea>
</a-form-model-item>
<a-form-model-item>
<a-button type="primary" @click="saveBenefitData">
<Icon name="ssiadd" :size="14" />保存
</a-button>
<a-button class="mar-left10" @click="isBenefitEditShow = false">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import condition from "../condition";
export default {
props: {
formData: {
type: Object,
required: true,
},
},
components: {
condition,
},
data() {
const columns = [
{ title: "责任项目明细", dataIndex: "benefitCode" },
// { title: "预授权申请", dataIndex: "index" },
{ title: "更新日期", dataIndex: "modifierDate" },
{ title: "开始日期", dataIndex: "startDate" },
{ title: "结束日期", dataIndex: "endDate" },
{ title: "备注", dataIndex: "remark" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
return {
columns,
isBenefitEditShow: false,
benefitData: [],
benefitCode: [],
editForm: {},
editRule: {
benefitCode: [{ required: true, message: "请选择福利项" }],
startDate: [{ required: true, message: "请选择开始时间" }],
endDate: [{ required: true, message: "请选择结束时间" }],
},
};
},
mounted() {
this._getBenefitList();
},
methods: {
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
// 新增或编辑benefit数据
editBenefitData(data) {
data = data || {
payorCode: this.formData.payorCode,
corpCode: this.formData.corpCode,
planCode: this.formData.planCode,
coverageCode: this.formData.coverageCode,
isDirect: "N",
status: "1",
};
this._getBenefitCode();
this.editForm = this.$lodash.cloneDeep(data);
this.isBenefitEditShow = true;
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
this._editBenefitData(data);
},
saveBenefitData() {
this.$refs.editForm.validate((valid) => {
if (!valid) {
return false;
}
});
this._editBenefitData(this.editForm);
},
_editBenefitData(data) {
const fn = data.id || data.id === 0 ? this.$apis.EDITBENEFITLIST : this.$apis.ADDBENEFITLIST;
fn(data).then((res) => {
if (res.returnCode === "0000") {
this.$message.success(res.returnMsg || "操作成功");
this._getBenefitList();
this.isBenefitEditShow = false;
} else {
this.$message.error(res.returnMsg || "操作失败");
}
});
},
_getBenefitList() {
const { corpCode, coverageCode, payorCode, planCode } = this.formData;
const data = { corpCode, coverageCode, payorCode, planCode };
this.$apis.GETBENEFITLIST(data).then((res) => {
this.benefitData = res.content || [];
});
},
_getBenefitCode() {
if (this.benefitCode && this.benefitCode.length) {
return true;
}
this.$apis.GETBENEGITTYPE().then((res) => {
this.benefitCode = res.content || [];
});
},
},
};
</script>
<style lang="less" scoped>
.benefits {
.pa(0, 20, 10, 20);
background-color: #fff;
}
</style>
<template>
<div class="condition">
<div class="none-label mar-bottom10">
<a-button type="primary" @click="editConditionData(null)">
<Icon name="ssiadd" :size="14" />新增条件
</a-button>
</div>
<a-table
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="conditionList"
row-key="id"
:pagination="false"
>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editConditionData(record)">修改</a-button>
<a-popconfirm
title="你确定要删除吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData(record)"
>
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
</a-table>
<a-modal
title="条件管理"
v-model="isConditionEditShow"
:footer="null"
@cancel="isConditionEditShow = false"
>
<a-form-model ref="editForm" layout="vertical" :model="editForm" :rules="editRule">
<a-form-model-item label="频率" prop="frequencyCode">
<a-select v-model="editForm.frequencyCode" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in frequencyCode" :key="item.frequencyCode" :vlaue="item.frequencyCode">
{{ item.frequencyDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="条件" prop="limitCode">
<a-select v-model="editForm.limitCode" show-search allow-clear @filterOption="limitCode">
<a-select-option v-for="item in limitCode" :key="item.limitCode" :vlaue="item.limitCode">
{{ item.limitDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="开始时间" prop="startDate">
<a-date-picker v-model="editForm.startDate" placeholder="请选择开始时间" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
<a-form-model-item label="结束时间" prop="endDate">
<a-date-picker v-model="editForm.endDate" placeholder="请选择结束时间" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
<a-row :gutter="10">
<a-col :span="8">
<a-form-model-item label="最小值">
<a-input-number v-model="editForm.minValue"> </a-input-number>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="最大值">
<a-input-number v-model="editForm.maxValue"> </a-input-number>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="家庭最大值">
<a-input-number v-model="editForm.familyMaxValue">
</a-input-number>
</a-form-model-item>
</a-col>
</a-row>
<a-form-model-item label="币种">
<a-select v-model="editForm.currency" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in currencyCode" :key="item.code" :vlaue="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
<!-- <a-form-model-item label="状态">
<a-select
v-model="editForm.status"
show-search
allow-clear
@filterOption="filterCode"
>
<a-select-option
v-for="item in statusCode"
:key="item.code"
:vlaue="item.code"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item> -->
<a-form-model-item label="备注" prop="remarks">
<a-textarea v-model="editForm.remarks" :autoSize="{ minRows: 2, maxRows: 5 }"></a-textarea>
</a-form-model-item>
<a-form-model-item class="text-r">
<a-button type="primary" @click="saveConditionData">
<Icon name="ssiadd" :size="14" />保存
</a-button>
<a-button class="mar-left10" @click="isConditionEditShow = false">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
export default {
props: {
formData: {
type: Object,
required: true,
},
},
data() {
const columns = [
{ title: "频率", dataIndex: "frequencyCode" },
{ title: "条件", dataIndex: "limitCode" },
{ title: "开始时间", dataIndex: "startDate" },
{ title: "结束时间", dataIndex: "endDate" },
{ title: "有效", dataIndex: "status" },
// { title: "限额或限次", dataIndex: "index" },
{ title: "最大值", dataIndex: "maxValue" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
return {
columns,
conditionList: [],
isConditionEditShow: false,
editForm: {},
frequencyCode: [],
limitCode: [],
currencyCode: [
{ code: "RMB", name: "人民币" },
{ code: "US", name: "美金" },
],
statusCode: [
{ code: "1", name: "有效" },
{ code: "2", name: "无效" },
],
editRule: {
frequencyCode: [{ required: true, message: "请选择频率" }],
limitCode: [{ required: true, message: "请选择条件" }],
startDate: [{ required: true, message: "请选择开始时间" }],
endDate: [{ required: true, message: "请选择结束时间" }],
},
};
},
mounted() {
this._getConditionList();
},
methods: {
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
},
editConditionData(data) {
const { planCode, payorCode, coverageCode, corpCode, benefitCode, conditionType } = this.formData;
data = data || {
planCode,
payorCode,
coverageCode,
corpCode,
benefitCode,
conditionType,
currency: "RMB",
status: "1",
};
this.editForm = this.$lodash.cloneDeep(data);
this._getFrequencyCode();
this._getLimitCode();
this.isConditionEditShow = true;
},
saveConditionData() {
this.$refs.editForm.validate((valid) => {
if (!valid) {
return false;
}
if (this.editForm.id || this.editForm.id === 0) {
this._editConditionData(this.editForm);
} else {
this._addConditionData(this.editForm);
}
});
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
this._editConditionData(data);
},
_getConditionList() {
const { planCode, payorCode, coverageCode, corpCode, benefitCode, conditionType } = this.formData;
const data = { planCode, payorCode, coverageCode, corpCode, benefitCode, conditionType };
this.$apis.GETCONDITIONLIST(data).then((res) => {
this.conditionList = res.content || [];
});
},
_getFrequencyCode() {
if (this.frequencyCode && this.frequencyCode.length) {
return true;
}
this.$apis.GETFREQUENCYCODE().then((res) => {
this.frequencyCode = res.content || [];
});
},
_getLimitCode() {
if (this.limitCode && this.limitCode.length) {
return true;
}
this.$apis.GETLIMITCODE().then((res) => {
this.limitCode = res.content || [];
});
},
_addConditionData(data) {
this.$apis.ADDCONDITIONDATA(data).then((res) => {
if (res.returnCode === "0000") {
this._getConditionList();
this.$message.success(res.returnMsg || "操作成功");
this.isConditionEditShow = false;
} else {
this.$message.error(res.returnMsg || "操作失败");
}
});
},
_editConditionData(data) {
this.$apis.EDITCONDITIONDATA(data).then((res) => {
if (res.returnCode === "0000") {
this._getConditionList();
this.$message.success(res.returnMsg || "操作成功");
this.isConditionEditShow = false;
} else {
this.$message.error(res.returnMsg || "操作失败");
}
});
},
},
};
</script>
<style lang="less" scoped>
.condition {
.pa(0, 20, 10, 20);
background-color: #fff;
}
</style>
<template>
<div class="coverage">
<div class="none-label mar-bottom10">
<a-button type="primary" @click="editCoverageData(null)">
<Icon name="ssiadd" :size="14" />新增责任
</a-button>
</div>
<a-table
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="coverageData"
row-key="coverageCode"
:pagination="false"
>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editCoverageData(record)">修改</a-button>
<a-popconfirm
title="你确定要删除吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData(record)"
>
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
<template slot="expandedRowRender" slot-scope="record">
<condition class="mar-bottom10" :form-data="{ ...record, conditionType: '02' }"/>
<benefits :formData="record" />
</template>
</a-table>
<a-modal
title="责任管理"
v-model="isCoverageEditShow"
:footer="null"
width="500px"
@cancel="isCoverageEditShow = false"
>
<a-form-model ref="editForm" layout="vertical" :model="editForm" :rules="editRule">
<a-row :gutter="20">
<a-col :md="12">
<a-form-model-item label="客户公司名称" prop="corpCode">
<a-input disabled v-model="editForm.corpCode"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-input disabled v-model="editForm.planCode"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="保险责任" prop="coverageCode">
<a-select v-model="editForm.coverageCode" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in coverageCode" :key="item.coverageCode" :vlaue="item.coverageCode">
{{ item.coverageDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="等待期">
<a-input-number v-model="editForm.waitingPeriod"></a-input-number>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="英文描述">
<a-input v-model="editForm.englishDesc"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="描述">
<a-input v-model="editForm.loaDesc"> </a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="是否直付">
<a-radio-group v-model="editForm.isDirect" :default-value="editForm.isDirect" button-style="solid"
>
<a-radio-button value="Y"></a-radio-button>
<a-radio-button class="mar-left10" value="N"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<!-- <a-col :md="12">
<a-form-model-item label="状态">
<a-select
v-model="editForm.status"
show-search
allow-clear
@filterOption="filterCode"
>
<a-select-option
v-for="item in statusCode"
:key="item.code"
:vlaue="item.code"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col> -->
</a-row>
<!-- <a-form-model-item label="保险公司" prop="payorCode">
<a-input disabled v-model="editForm.payorCode"> </a-input>
</a-form-model-item> -->
<a-form-model-item label="备注">
<a-textarea v-model="editForm.remarks" :autoSize="{ minRows: 2, maxRows: 5 }"></a-textarea>
</a-form-model-item>
<a-form-model-item>
<a-button type="primary" @click="saveCoverageData">
<Icon name="ssiadd" :size="14" />保存
</a-button>
<a-button class="mar-left10" @click="isCoverageEditShow = false">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import benefits from "../benefits";
import condition from "../condition";
export default {
props: {
formData: {
required: true,
type: Object,
},
},
components: {
benefits,
condition,
},
data() {
const columns = [
{ title: "门诊责任", dataIndex: "coverageCode", width: 150 },
{ title: "是否直付", dataIndex: "isDirect", width: 120 },
{ title: "等待期", dataIndex: "waitingPeriod", width: 120 },
// { title: "预授权", dataIndex: "sex", width: 80 },
// { title: "预授权期限", dataIndex: "payorName", width: 180 },
{ title: "状态", dataIndex: "status", width: 180 },
{ title: "备注", dataIndex: "remark" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
return {
isCoverageEditShow: false,
columns,
coverageData: [],
editForm: {},
coverageCode: [],
statusCode: [
{ code: "1", name: "有效" },
{ code: "2", name: "无效" },
],
editRule: {
coverageCode: [{ required: true, message: "请选择保险责任" }],
},
};
},
mounted() {
this._getCoverageList();
},
methods: {
// 新增或编辑coverage数据
editCoverageData(data) {
data = data || {
payorCode: this.formData.payorCode,
corpCode: this.formData.corpCode,
planCode: this.formData.planCode,
isDirect: "N",
status: "1",
};
this._getCoverageCode();
this.editForm = this.$lodash.cloneDeep(data);
this.isCoverageEditShow = true;
},
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
saveCoverageData() {
this.$refs.editForm.validate((valid) => {
if (!valid) {
return false;
}
this._editCoverageData(this.editForm);
});
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
this._editCoverageData(data);
},
_editCoverageData(data) {
const fn = data.id || data.id === 0 ? this.$apis.EDITCOVERAGEDATA : this.$apis.ADDCOVERAGEDATA;
fn(data).then((res) => {
if (res.returnCode === "0000") {
this.$message.success(res.returnMsg || "操作成功");
this._getCoverageList();
this.isCoverageEditShow = false;
} else {
this.$message.error(res.returnMsg || "操作失败");
}
});
},
_getCoverageCode() {
if (this.coverageCode && this.coverageCode.length) {
return true;
}
this.$apis.GETCOVERAGECODE().then((res) => {
this.coverageCode = res.content || [];
});
},
_getCoverageList() {
const { corpCode, payorCode, planCode } = this.formData;
this.$apis.GETCOVERAGELIST({
corpCode,
payorCode,
planCode,
specialtyCode: "",
}).then((res) => {
this.coverageData = res.content || [];
});
},
},
};
</script>
<style lang="less" scoped>
.coverage {
.pa(0, 20, 10, 20);
background-color: #fff;
}
</style>
<template>
<div class="welfare">
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form" :rules="formRules">
<a-row :gutter="30">
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="保险公司" prop="payorCode">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" show-search allow-clear @change="payorChange" @filterOption="filterCode">
<a-select-option v-for="item in companyCode" :key="item.payorCode" :value="item.payorCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="客户公司名称" prop="corpCode">
<a-select v-model="form.corpCode" placeholder="请选择客户公司名称" show-search allow-clear @filterOption="filterCode" @change="corpChange">
<a-select-option v-for="item in corpCode" :key="item.corpCode" :value="item.corpCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="5" :lg="6" :sm="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-select v-model="form.planCode" placeholder="请选择保险计划" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in planCode" :key="item.planCode" :vlaue="item.planCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="9" :lg="6" :sm="12" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" class="mar-left10" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div>
<!-- <div class="none-label mar-bottom10">
<a-button type="primary" @click="editPlanData(null)">
<Icon name="ssiadd" :size="14" />新增计划
</a-button>
</div> -->
<a-table
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="planData"
row-key="coverageCode"
:pagination="false"
>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editPlanData(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="expandedRowRender" slot-scope="record">
<condition class="mar-bottom10" :form-data="{...record, conditionType: '03'}"/>
<coverages :formData="{ ...record }" />
</template>
</a-table>
<BurtPagination :pagination="{ ...pager, total }" @pageChange="pageChange"/>
</div>
<a-modal
title="计划管理"
v-model="isPlanEditShow"
:footer="null"
width="50%"
@cancel="isPlanEditShow = false"
>
<a-form-model ref="editForm" layout="vertical" :model="editForm" :rules="editRule">
<!-- <a-form-model-item label="保险公司" prop="payorCode">
<a-input disabled v-model="editForm.payorCode"> </a-input>
</a-form-model-item>
<a-col :md="12">
<a-form-model-item label="客户公司名称" prop="corpCode">
<a-input disabled v-model="editForm.corpCode"> </a-input>
</a-form-model-item> -->
<a-row :gutter="20">
<a-col :md="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-input v-model="editForm.planCode"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="英文名称" prop="englishName">
<a-input v-model="editForm.englishName"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="计划全称" prop="longName">
<a-input v-model="editForm.longName"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="计划简称" prop="shortName">
<a-input v-model="editForm.shortName"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="公司名称" prop="corpName">
<a-input v-model="editForm.corpName"></a-input>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="生效日期" prop="effectiveDate">
<a-date-picker v-model="editForm.effectiveDate" placeholder="请选择生效日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="失效日期" prop="terminationDate">
<a-date-picker v-model="editForm.terminationDate" placeholder="请选择失效日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="等待期(天)" prop="waitingPeriod">
<a-input-number v-model="editForm.waitingPeriod"></a-input-number>
</a-form-model-item>
</a-col>
<!-- <a-col :md="12">
<a-form-model-item label="地区限制" prop="idType">
<a-select v-model="form.idType" placeholder="请选择地区限制" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in companyCode" :key="item.id" :value="item.id" :label="item.longName">{{ item.longName }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="医院限制" prop="idType">
<a-select v-model="form.idType" placeholder="请选择医院限制" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in companyCode" :key="item.id" :value="item.id" :label="item.longName">{{ item.longName }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col> -->
<a-col :md="12">
<a-form-model-item label="状态" prop="idType">
<a-select v-model="form.idType" placeholder="请选择计划状态" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in statusCode" :key="item.code" :value="item.code" :label="item.name">{{ item.name }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
<a-form-model-item label="备注" prop="remarks">
<a-textarea v-model="editForm.remarks" :autoSize="{ minRows: 2, maxRows: 5 }"></a-textarea>
</a-form-model-item>
</a-col>
</a-row>
<a-form-model-item class="text-r">
<a-button type="primary" @click="savePlanData">
<Icon name="ssiadd" :size="14" />保存
</a-button>
<a-button class="mar-left10" @click="isPlanEditShow = false">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import condition from "./components/condition";
import coverages from "./components/coverages";
import moment from 'moment'
export default {
components: {
BurtPagination,
condition,
coverages,
},
data() {
const dateFormat = (val) => {
return val && moment(val).format('YYYY-MM-DD')
}
const columns = [
// { title: "计划责任", dataIndex: "planCode", width: 180 },
{ title: "计划全称", dataIndex: "longName", width: 180},
{ title: "简称", dataIndex: "shortName", width: 180 },
{ title: "起始日期", dataIndex: "effectiveDate", width: 180, customRender: dateFormat },
{ title: "终止日期", dataIndex: "terminationDate", width: 180, customRender: dateFormat },
{ title: "计划状态", dataIndex: "status", width: 180, customRender: (val) => {
for(let i = 0; i < this.statusCode.length; i ++) {
if (val === this.statusCode[i].code) {
return this.statusCode[i].name
}
}
return val;
} },
// { title: "医院限制", dataIndex: "status", width: 180 },
// { title: "计划限额", dataIndex: "status", width: 180 },
// { title: "限额消耗", dataIndex: "waitingPeriod" },
{ title: "等待期", dataIndex: "waitingPeriod", width: 120 },
{ title: "更新日期", dataIndex: "modifierDate", width: 180},
{ title: "备注", dataIndex: "remarks", width: 180 },
{
title: "操作",
key: "operation",
width: "120px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
// { title: "保单号码", dataIndex: "policyNo", width: 190 },
// { title: "保险有效日期", dataIndex: "startDate", width: 180 },
// { title: "保险终止日期", dataIndex: "endDate", width: 180 },
];
return {
isPlanEditShow: false,
columns,
form: {
payorCode: undefined,
corpCode: undefined,
planCode: undefined,
},
searchForm: {},
detailForm: {},
editForm: {},
planData: [],
companyCode: [],
corpCode: [],
planCode: [],
statusCode: [
{code: "1", name: "有效"},
{code: "2", name: "无效"}
],
queryForm: {},
pager: {
pageNum: 1,
pageSize: 10,
},
total: 0,
formRules: {
payorCode: [{ required: true, message: "请选择保险公司" }],
corpCode: [{ required: true, message: "请选择客户公司名称" }],
// planCode: [{ required: true, message: "请选择保险计划" }],
},
editRule: {
planCode: [{ required: true, message: "请输入保险计划内容" }],
longName: [{ required: true, message: "请输入保险计划全称" }],
// shortName: [{ required: true, message: "请输入保险计划简称" }],
effectiveDate: [{ required: true, message: "请选择生效日期" }],
terminationDate: [{ required: true, message: "请选择失效日期" }],
},
};
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.detailForm = this.$route.query;
}
this._getPayorCode();
},
methods: {
handlerSearch() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.searchForm = this.$lodash.cloneDeep(this.form);
this.pager.pageNum = 1;
this._getPlanList();
});
},
pageChange(page) {
const { pageNum } = page;
this.pager.pageNum = pageNum;
this._getPlanList();
},
payorChange(val) {
this.form.corpCode = undefined;
this.form.planCode = undefined;
if (!val) {
return false;
}
this._getCorporateCode(val);
},
corpChange(val) {
this.form.planCode = undefined;
if (!val) {
return false;
}
this._getPlanCode(val);
},
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
this._editPlanData(data);
},
editPlanData(data) {
if (data) {
this.editForm = this.$lodash.cloneDeep(data);
this.isPlanEditShow = true;
} else {
this.$refs.form.validateField(["payorCode", "corpCode"], (error) => {
if (error) {
return false;
}
data = {
payorCode: this.form.payorCode,
corpCode: this.form.corpCode,
};
this.editForm = this.$lodash.cloneDeep(data);
this.isPlanEditShow = true;
});
}
// data = data || {};
},
savePlanData() {
this.$refs.editForm.validate((valid) => {
if (!valid) {
return false;
}
this._editPlanData(this.editForm);
});
},
_editPlanData(data) {
this.$apis.EDITPLANDATE(data).then((res) => {
if (res.returnCode === "0000") {
this._getPlanList();
this.$message.success(res.returnMsg || "操作成功");
this.isPlanEditShow = false;
} else {
this.$message.error(res.returnMsg || "操作失败");
}
});
},
_getPayorCode() {
this.$apis.GETPAYORCODE({}).then((res) => {
this.companyCode = res.content || [];
});
},
_getCorporateCode(val) {
this.$apis.GETCORPORATECODEBYPAYOR({
longName: "",
payorCode: val,
}).then((res) => {
this.corpCode = res.content || [];
});
},
_getPlanCode(val) {
this.$apis.GETPLANCODEBYCORP({
longName: "",
corpCode: val,
}).then((res) => {
this.planCode = res.content || [];
});
},
_getPlanList() {
const data = {
...this.searchForm,
...this.pager,
};
this.$apis.GETPLANLIST(data).then((res) => {
this.planData = (res.content && res.content.list) || [];
this.total = (res.content && res.content.total) || 0;
});
},
},
};
</script>
<style lang="less" scoped>
.welfare {
.pa(30, 36, 50, 39);
background-color: #fff;
.none-label {
text-align: right;
}
.classify {
.pa(10, 20, 10, 20);
.mg-t(10);
.mg-b(10);
background-color: #f8fafb;
.ant-btn:not(:first-child) {
.mg-l(30);
}
.save-btn {
float: right;
}
}
.icon-class {
.mg-r(10);
}
}
</style>
<template>
<div class="welfare">
<!-- 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="客户姓名" prop="patientName">
<a-input
v-model="form.patientName"
placeholder="请输入客户姓名"
></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="出生日期" prop="birthday">
<a-date-picker
v-model="form.birthday"
placeholder="请选择出生日期"
value-format="YYYY-MM-DD"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保险公司" prop="payorId">
<a-select
v-model="form.payorId"
placeholder="请选择保险公司"
show-search
allow-clear
@change="payorChange"
@filterOption="filterCode"
>
<a-select-option
v-for="item in companyCode"
:key="item.id"
:value="item.id"
>
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="7" :lg="6" :sm="12">
<a-form-model-item label="客户公司名称" prop="corpName">
<a-select
v-model="form.corpName"
placeholder="请选择客户公司名称"
show-search
allow-clear
@filterOption="filterCode"
@change="corpChange"
>
<a-select-option
v-for="item in corpCode"
:key="item.id"
:value="item.id + '$_' + item.longName"
>
{{ 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="保单卡号" prop="policyNo">
<a-input
v-model="form.policyNo"
allow-clear
placeholder="请输入保单卡号"
></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="首次入保时间" prop="firstEnrollmentTime">
<a-date-picker
v-model="form.firstEnrollmentTime"
placeholder="请选择首次入保时间"
value-format="YYYY-MM-DD"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保单生效日期" prop="startDate">
<a-date-picker
v-model="form.startDate"
placeholder="请选择保单生效日期"
value-format="YYYY-MM-DD"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="保单终止日期" prop="endDate">
<a-date-picker
v-model="form.endDate"
placeholder="请选择保单终止日期"
value-format="YYYY-MM-DD"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险计划" prop="planName">
<a-select
v-model="form.planName"
placeholder="请选择保险计划"
show-search
allow-clear
@filterOption="filterCode"
>
<a-select-option
v-for="item in planCode"
:key="item.id"
:vlaue="item.longName"
>
{{ 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="其他备注" prop="remark">
<a-input
v-model="form.remark"
allow-clear
placeholder="请输入备注信息"
></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="等待期" prop="waitingPeriod">
<a-radio-group
v-model="form.waitingPeriod"
:default-value="form.waitingPeriod"
button-style="solid"
>
<a-radio-button value="Y"></a-radio-button>
<a-radio-button class="mar-left10" value="N"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="等待期时间" prop="waitingPeriodTime">
<a-date-picker
v-model="form.waitingPeriodTime"
placeholder="请选择等待期时间"
value-format="YYYY-MM-DD"
></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="是否承担既往症" prop="isUndertakeAnamnesis">
<a-radio-group
v-model="form.isUndertakeAnamnesis"
:default-value="form.isUndertakeAnamnesis"
button-style="solid"
>
<a-radio-button value="Y"></a-radio-button>
<a-radio-button class="mar-left10" value="N"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="18" :sm="12" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" class="text-r" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button type="primary" class="mar-left10" @click="handlerSearch"
><Icon name="ssisearch_active" :size="14" />查询
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table
v-if="customList && customList.length"
:columns="customColumns"
:data-source="customList"
row-key="mrnNo"
:scroll="{ x: true }"
:pagination="cusPagination"
:customRow="handlerRowClick"
@change="onCustomChange"
></a-table>
<coverages
:coverageForm="coverageForm"
v-if="isShowCoverageData"
></coverages>
<div class="index">
<router-view></router-view>
</div>
</template>
<script>
import coverages from "./components/coverages";
export default {
components: {
coverages,
},
data() {
const customColumns = [
{ title: "病历号", dataIndex: "mrnNo", width: 180 },
{ title: "客户姓名", dataIndex: "patientName", width: 120 },
{ title: "出生日期", dataIndex: "birthday", width: 180 },
{ title: "性别", dataIndex: "sex", width: 80 },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "保险有效日期", dataIndex: "startDate", width: 180 },
{ title: "保险终止日期", dataIndex: "endDate", width: 180 },
];
return {
isShowCoverageData: false,
customColumns,
form: {
patientName: undefined,
payorId: undefined,
corpName: undefined,
planName: undefined,
birthday: undefined,
policyNo: undefined,
firstEnrollmentTime: undefined,
startDate: undefined,
endDate: undefined,
remark: undefined,
waitingPeriod: "N",
isUndertakeAnamnesis: "N",
},
detailForm: {},
coverageForm: {},
customList: [],
companyCode: [],
corpCode: [],
planCode: [],
queryForm: {},
cusPager: {
pageNum: 1,
pageSize: 10,
},
cusTotal: 0,
};
},
computed: {
cusPagination() {
return this.initPageConfig(
{ ...this.cusPager, total: this.cusTotal },
this.onCustomSizeChange
);
},
},
mounted() {
if (this.$route.query && this.$route.query.id) {
console.log(this.$route);
this.detailForm = this.$route.query;
this.getCustomerDetail();
}
this._getPayorCode();
},
methods: {
initPageConfig(pager, sizeChange) {
const { pageNum, pageSize, total } = pager;
const pages = Math.ceil(total / pageSize);
return {
current: pageNum,
pageSize,
size: "large",
position: "bottom",
align: "right",
total: this.total,
hideOnSinglePage: false,
itemRender: (current, type, originalElement) => {
if (type === "prev") {
originalElement.children = undefined;
originalElement.text = "上一页";
}
if (type === "page") {
if (current !== pageNum) {
return undefined;
}
return (
<p>
<span class="current-page">{current}</span> / {pages}
</p>
);
}
if (type === "next") {
originalElement.children = undefined;
originalElement.text = "下一页";
return (
<div>
{originalElement}
<a-input-number
onblur={sizeChange}
class="size-change"
></a-input-number>
</div>
);
}
return originalElement;
},
};
},
onCustomChange(pager) {
const { current } = pager;
// console.log(pager);
this.cusPager.pageNum = current;
this._getCustomerList();
},
onCustomSizeChange(e) {
e && e.stopPropagation();
const val = e.target.value * 1;
if (!val || val < 0) {
return false;
}
this.cusPager.pageSize = val;
this._getCustomerList();
},
handlerRowClick(record) {
const { id, patientPolicyId } = record;
return {
on: {
click: () => {
this.detailForm = { id, patientPolicyId };
this.getCustomerDetail();
},
},
};
},
getCustomerDetail() {
// this.queryForm = this.$lodash.cloneDeep(this.form);
const { id, patientPolicyId } = this.detailForm;
const data = {
id: id && id * 1,
patientPolicyId: patientPolicyId * 1,
};
this.$apis.GETCUSTOMERDETAIL(data).then((res) => {
if (res.returnCode === "0000") {
const data = res.content || {};
for (let i in this.form) {
this.form[i] = data[i];
}
this.coverageForm = res.content || {};
this.isShowCoverageData = true;
}
// this.dataList = (res.content && res.content.list) || [];
// this.total = (res.content && res.content.total) || 0;
});
},
handlerReset() {
this.$refs.form.resetFields();
},
handlerSearch() {
console.log(this.$refs.form.validate);
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.cusPager.pageNum = 1;
this.queryForm = this.$lodash.cloneDeep(this.form);
this._getCustomerList();
});
},
payorChange(val) {
this.form.corpName = undefined;
this.form.planName = undefined;
if (!val) {
return false;
}
this._getCorporateCode(val);
},
corpChange(val) {
// 因为接口要name 但是查计划要用id
this.form.planName = undefined;
if (!val) {
return false;
}
console.log(val);
this.form.corpName = val.split("$_")[1];
val = val.split("$_")[0];
this._getPlanCode(val);
},
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
},
_getPayorCode() {
this.$apis.GETPAYORCODE({}).then((res) => {
this.companyCode = res.content || [];
});
},
_getCorporateCode(val) {
this.$apis
.GETCORPORATECODEBYPAYOR({
longName: "",
payorId: val,
})
.then((res) => {
this.corpCode = res.content || [];
});
},
_getPlanCode(val) {
this.$apis
.GETPLANCODEBYCORP({
longName: "",
corpId: val,
})
.then((res) => {
this.planCode = res.content || [];
});
},
_getCustomerList() {
const data = {
...this.queryForm,
...this.cusPager,
};
this.$apis.GETCUSTOMERLIST(data).then((res) => {
this.customList = (res.content && res.content.list) || [];
this.cusTotal = (res.content && res.content.total) || 0;
});
},
return {};
},
computed: {},
watch: {},
methods: {},
};
</script>
<style lang="less" scoped>
.welfare {
.pa(30, 36, 50, 39);
background-color: #fff;
.none-label {
text-align: right;
}
.classify {
.pa(10, 20, 10, 20);
.mg-t(10);
.mg-b(10);
background-color: #f8fafb;
.ant-btn:not(:first-child) {
.mg-l(30);
}
.save-btn {
float: right;
}
}
.icon-class {
.mg-r(10);
}
}
</style>
<style lang="less" scoped></style>
<template>
<div>
<a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false">
<a-collapse-panel key="1" header="保单信息">
<a-row class="policy_line" :gutter="10">
<a-col :span="6">保险卡号:</a-col>
<a-col :span="6">保单号码:</a-col>
<a-col :span="6">保险计划:</a-col>
<a-col :span="6">客户公司名称:</a-col>
<a-col :span="6">首次入保日期:</a-col>
<a-col :span="6">保单生效日期:</a-col>
<a-col :span="6">保单终止日期:</a-col>
<a-col :span="6">是否承担既往症:</a-col>
<a-col :span="6">保单直付区域:</a-col>
<a-col :span="6">剩余等待期天数</a-col>
<a-col :span="6">其他备注</a-col>
</a-row>
</a-collapse-panel>
</a-collapse>
</div>
</template>
<script>
export default {
props: {
policyData: {
default: {},
},
},
data() {
return {
activeKeys: "1",
};
},
};
</script>
<style lang="less" scoped>
.policy_line {
.pa(0, 30, 0, 30);
line-height: 60px;
.ant-col{
border-bottom: 1px solid #f8fafb;
}
}
</style>
<template>
<div class="benefits">
<div>
<div class="text-r">
<a-button type="danger" class="save-btn">
<Icon name="ssiadd" :size="14" />新增
</a-button>
<a-table
:pagination="false"
:columns="considtionColumns"
:data-source="conditionData"
>
<template slot="operation" slot-scope="text, record">
<a-button v-if="record.isEdit" type="link"> 保存 </a-button>
<a-button v-else type="link"> 修改 </a-button>
<a-button type="link" class="success">新增</a-button>
<a-popconfirm
title="你确定要关闭吗?"
ok-text="确定"
cancel-text="取消"
>
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
</a-table>
</div>
</div>
<div>
<!-- <div>
<div class="text-r">
<a-button type="danger" class="save-btn">
<Icon name="ssiadd" :size="14" />新增
......@@ -49,47 +24,54 @@
</template>
</a-table>
</div>
</div> -->
<a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false">
<a-collapse-panel v-for="item in benefitData" :key="item.benefitCode" :header="item.benefitCode">
<div>
<a-row class="policy_line" :gutter="10">
<a-col :span="6">事先授权:</a-col>
<a-col :span="6">等待期:{{ item.waitingPeriod }}</a-col>
<a-col :span="6">年限额:</a-col>
<a-col :span="6">赔付比例:</a-col>
</a-row>
</div>
<condition :formData="{ ...item, conditionType: '01' }" />
</a-collapse-panel>
</a-collapse>
</div>
</template>
<script>
import condition from "../condition";
export default {
props: {
coverageForm: {
formData: {
type: Object,
required: true,
},
},
data() {
const considtionColumns = [
{ title: "限额", dataIndex: "index" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
const benefitColumns = [
{ title: "责任列表", dataIndex: "index" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
components: {
condition,
},
];
data() {
return {
considtionColumns,
benefitColumns,
conditionData: [{ index: "900" }],
benefitData: [{ index: "测试" }],
benefitData: [],
activeKeys: "",
};
},
methods: {},
mounted() {
this._getBenefitData();
},
methods: {
_getBenefitData() {
const { corpCode, coverageCode, payorCode, planCode } = this.formData;
const data = { corpCode, coverageCode, payorCode, planCode };
this.$apis.GETBENEFITLIST(data).then((res) => {
this.benefitData = res.content || [];
});
},
},
};
</script>
......@@ -105,4 +87,11 @@ export default {
}
}
}
.policy_line {
.pa(0, 30, 0, 30);
line-height: 60px;
// &:not(:last-child) {
border-bottom: 1px solid #f8fafb;
// }
}
</style>
<template>
<div>
<a-table
class="mar-bottom10"
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="conditionList"
row-key="mrnNo"
:pagination="false"
></a-table>
</div>
</template>
<script>
export default {
props: {
formData: {
default: {},
},
},
data() {
const columns = [
{ title: "频率", dataIndex: "frequencyCode" },
{ title: "条件", dataIndex: "limitCode" },
{ title: "最小值", dataIndex: "minValue" },
{ title: "最大值", dataIndex: "maxValue" },
{ title: "家庭最大值", dataIndex: "familyMaxValue" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
return {
columns,
conditionList: [],
};
},
mounted() {
this._getConditionList();
},
methods: {
_getConditionList() {
const {
planCode,
payorCode,
coverageCode,
corpCode,
benefitCode,
conditionType,
} = this.formData;
const data = {
planCode,
payorCode,
coverageCode,
corpCode,
benefitCode,
conditionType,
};
this.$apis.GETCONDITIONLIST(data).then((res) => {
this.conditionList = res.content || [];
});
},
},
};
</script>
<style></style>
......@@ -2,144 +2,63 @@
<div>
<!-- 分类 -->
<div class="classify clearfix">
<a-button :type="!type ? 'primary' : ''">全部</a-button>
<a-button
:type="item.code === type ? 'primary' : ''"
v-for="item in welfareType"
:key="item.code"
>
{{ item.name }}
<a-button @click="specialtyChange('')" :type="!type ? 'primary' : ''">
全部
</a-button>
<a-button @click="specialtyChange(item.specialtyCode)" :type="item.specialtyCode === type ? 'primary' : ''" v-for="item in welfareType" :key="item.specialtyCode">
{{ item.specialtyDesc }}
</a-button>
<div class="save-btn">
<a-button type="danger" @click="addNew">
<!-- <a-button type="primary" @click="addNew">
<Icon name="ssiadd" :size="14" />新增
</a-button>
</a-button> -->
<a-button type="primary">
<Icon name="ssidownload" :size="14" />保存
</a-button>
</div>
</div>
<!-- table -->
<a-table
:columns="columns"
:data-source="dataList"
row-key="coverageCode"
:scroll="{ x: true }"
:pagination="pagination"
:expanded-row-keys.sync="expandedRowKeys"
@change="onWelfareChange"
@expand="handleExpand"
>
<template slot="operation" slot-scope="text, record, index">
<a-button
v-if="record.isEdit"
type="link"
@click.stop="saveEditData(record)"
>
保存
</a-button>
<a-button v-else type="link" @click.stop="editData(record, index)">
修改
</a-button>
<a-button type="link" class="success">新增</a-button>
<a-popconfirm
title="你确定要关闭吗?"
ok-text="确定"
cancel-text="取消"
@confirm="deleteData(record, index)"
>
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</template>
<template slot="expandedRowRender" slot-scope="record">
<benefits :coverageForm="record" />
</template>
</a-table>
<a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false">
<a-collapse-panel v-for="item in coverageData" :key="item.coverageCode" :header="item.coverageCode">
<div>
<a-row class="policy_line" :gutter="10">
<a-col :span="6">是否开放直付:{{ item.isDirect }}</a-col>
<a-col :span="6">直付刷卡上限:</a-col>
<a-col :span="6">事先授权:</a-col>
<a-col :span="6">等待期:{{ item.waitingPeriod }}</a-col>
</a-row>
<a-row class="policy_line" :gutter="10">
<a-col :span="6">年限额:</a-col>
<a-col :span="6">限次:</a-col>
<a-col :span="6">免赔额:</a-col>
<a-col :span="6">赔付比例:</a-col>
</a-row>
</div>
<condition :formData="{ ...item, conditionType: '02' }" />
<benefits :formData="item" />
</a-collapse-panel>
</a-collapse>
</div>
</template>
<script>
import benefits from "../benefits";
import condition from "../condition";
export default {
props: {
coverageForm: {
formData: {
type: Object,
required: true,
},
},
components: {
condition,
benefits,
},
data() {
const columns = [
{
title: "责任项目",
dataIndex: "coverageCode",
width: 180,
customRender: (val, row) => {
if (row.isEdit) {
return (
<a-select
v-model={row.coverageCode}
placeholder="请选择责任项目"
show-search
allow-clear
v-on:filterOption={this.filterCode}
>
{this.coverageCode.map((item) => {
return (
<a-select-option value={item.coverageCode}>
{item.coverageDesc}
</a-select-option>
);
})}
</a-select>
);
}
return val;
},
},
{ title: "责任项目列表", dataIndex: "patientName", width: 120 },
{
title: "是否直付",
dataIndex: "isdirect",
width: 180,
customRender: (val, row) => {
if (row.isEdit) {
return (
<a-radio-group
v-model={row.isdirect}
default-value={row.isdirect}
button-style="solid"
>
<a-radio-button value="Y"> </a-radio-button>
<a-radio-button class="mar-left10" value="N">
</a-radio-button>
</a-radio-group>
);
}
return val;
},
},
{ title: "单位", dataIndex: "sex", width: 80 },
{ title: "年限额", dataIndex: "payorName", width: 180 },
{ title: "剩余额度(¥)", dataIndex: "policyNo", width: 190 },
{ title: "次限额(¥)", dataIndex: "startDate", width: 180 },
// { title: "次免赔额(¥)", dataIndex: "endDate", width: 180 },
// { title: "自付比例", dataIndex: "endDate", width: 180 },
// { title: "备注", dataIndex: "endDate", width: 180 },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
scopedSlots: { customRender: "operation" },
},
];
return {
columns,
dataList: [{ coverageCode: 22 }],
activeKeys: "",
coverageData: [],
expandedRowKeys: [],
type: "",
welfareType: [],
......@@ -152,7 +71,8 @@ export default {
};
},
watch: {
coverageForm: {
formData: {
immediate: true,
deep: true,
handler: function () {
this.type = "";
......@@ -160,24 +80,16 @@ export default {
},
},
},
mounted() {
created() {
this._getSpecialtyCode();
// this._getCoverageList();
},
computed: {
pagination() {
return this.initPageConfig(
{ ...this.pager, total: this.total },
this.onWelfareSizeChange
);
},
},
methods: {
addNew() {
const item = { isEdit: true, isNew: true };
this.pager.pageSize++;
this._getCoverageCode(); // 获取责任项目码表
this.dataList.unshift(item);
this.coverageData.unshift(item);
},
editData(record) {
this._getCoverageCode(); // 获取责任项目码表
......@@ -193,67 +105,14 @@ export default {
},
deleteData(record, index) {
if (record.isNew) {
this.dataList.splice(index, 1);
this.coverageData.splice(index, 1);
return true;
}
this.dataList.splice(index, 1);
this.coverageData.splice(index, 1);
},
initPageConfig(pager, sizeChange) {
const { pageNum, pageSize, total } = pager;
const pages = Math.ceil(total / pageSize);
return {
current: pageNum,
pageSize,
size: "large",
position: "bottom",
align: "right",
total: this.total,
hideOnSinglePage: false,
itemRender: (current, type, originalElement) => {
if (type === "prev") {
originalElement.children = undefined;
originalElement.text = "上一页";
}
if (type === "page") {
if (current !== pageNum) {
return undefined;
}
return (
<p>
<span class="current-page">{current}</span> / {pages}
</p>
);
}
if (type === "next") {
originalElement.children = undefined;
originalElement.text = "下一页";
return (
<div>
{originalElement}
<a-input-number
onblur={sizeChange}
class="size-change"
></a-input-number>
</div>
);
}
return originalElement;
},
};
},
onWelfareChange(pager) {
const { current } = pager;
// console.log(pager);
this.pager.pageNum = current;
// this._getCustomerList();
},
onWelfareSizeChange(e) {
e && e.stopPropagation();
const val = e.target.value * 1;
if (!val || val < 0) {
return false;
}
this.pager.pageSize = val;
specialtyChange(code) {
this.type = code;
this._getCoverageList();
},
// 选择框筛选
filterCode(input, option) {
......@@ -263,29 +122,20 @@ export default {
.indexOf(input.toLowerCase()) >= 0
);
},
handleExpand(expended, record) {
console.log(expended);
if (record.isEdit && expended) {
console.log(this.expandedRowKeys);
return false;
}
},
_getSpecialtyCode() {
this.$apis.GETSPECIALTYLIST().then((res) => {
this.welfareType = res.content || [];
});
},
_getCoverageList() {
const { corpCode, payorCode, planCode } = this.coverageForm;
this.$apis
.GETCOVERAGELIST({
const { corpCode, payorCode, planCode } = this.formData;
this.$apis.GETCOVERAGELIST({
corpCode,
payorCode,
planCode,
specialtyCode: this.type,
})
.then((res) => {
this.dataList = res.content || [];
}).then((res) => {
this.coverageData = res.content || [];
});
},
_getCoverageCode() {
......@@ -304,6 +154,13 @@ export default {
.none-label {
text-align: right;
}
.policy_line {
.pa(0, 30, 0, 30);
line-height: 60px;
// &:not(:last-child) {
border-bottom: 1px solid #f8fafb;
// }
}
.classify {
.pa(10, 20, 10, 20);
.mg-t(30);
......
<template>
<div class="welfare">
<!-- 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="病历号码" prop="mrnNo">
<a-input v-model="form.mrnNo" placeholder="请输入客户号码"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="客户姓名" prop="patientName">
<a-input v-model="form.patientName" placeholder="请输入客户姓名"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="出生日期" prop="birthday">
<a-date-picker v-model="form.birthday" placeholder="请选择出生日期" value-format="YYYY-MM-DD"></a-date-picker>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="性别" prop="sex">
<a-radio-group v-model="form.sex" :default-value="form.sex" button-style="solid">
<a-radio-button value="M"></a-radio-button>
<a-radio-button class="mar-left10" value="F"></a-radio-button>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="证件号码" prop="idNo">
<a-input v-model="form.idNo" allow-clear placeholder="请输入证件号码"></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="6" :sm="12">
<a-form-model-item label="保险公司" prop="payorId">
<a-select v-model="form.payorId" placeholder="请选择保险公司" show-search allow-clear @change="payorChange" @filterOption="filterCode">
<a-select-option v-for="item in companyCode" :key="item.id" :value="item.id">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-form-model-item label="是否直付" prop="idType">
<a-select v-model="form.idType" placeholder="请选择保单直付区域" show-search allow-clear @filterOption="filterCode">
<a-select-option v-for="item in companyCode" :key="item.id" :value="item.id" :label="item.longName">{{ item.longName }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :xl="14" :lg="12" :sm="24" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" class="text-r" @click="handlerReset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button type="primary" class="mar-left10" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div v-if="customList && customList.length">
<a-table
:columns="customColumns"
:data-source="customList"
row-key="mrnNo"
:scroll="{ x: true }"
:pagination="false"
:customRow="handlerRowClick"
></a-table>
<BurtPagination :pagination="{ ...cusPager, total: cusTotal }" @pageChange="onCustomChange"
/>
</div>
<div v-if="isShowCoverageData">
<PolicyInfo :policyData="coverageForm" />
<coverages :formData="coverageForm"></coverages>
</div>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import coverages from "./components/coverages";
import PolicyInfo from "./components/PolicyInfo";
export default {
beforeRouteUpdate(to, from, next) {
this.handlerReset();
next();
},
components: {
BurtPagination,
coverages,
PolicyInfo,
},
data() {
const customColumns = [
{ title: "病历号", dataIndex: "mrnNo", width: 180 },
{ title: "客户姓名", dataIndex: "patientName", width: 120 },
{ title: "出生日期", dataIndex: "birthday", width: 180 },
{ title: "性别", dataIndex: "sex", width: 80 },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "保险有效日期", dataIndex: "startDate", width: 180 },
{ title: "保险终止日期", dataIndex: "endDate", width: 180 },
];
return {
isShowCoverageData: false,
customColumns,
form: {
mrnNo: undefined,
patientName: undefined,
birthday: undefined,
sex: undefined,
idNo: undefined,
payorId: undefined,
idType: undefined
},
detailForm: {},
coverageForm: {},
customList: [],
companyCode: [],
corpCode: [],
planCode: [],
queryForm: {},
cusPager: {
pageNum: 1,
pageSize: 10,
},
cusTotal: 0,
};
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.detailForm = this.$route.query;
this.getCustomerDetail();
}
this._getPayorCode();
},
methods: {
onCustomChange(pager) {
const { pageNum } = pager;
// console.log(pager);
this.cusPager.pageNum = pageNum;
this._getCustomerList();
},
onCustomSizeChange(e) {
e && e.stopPropagation();
const val = e.target.value * 1;
if (!val || val < 0) {
return false;
}
this.cusPager.pageSize = val;
this._getCustomerList();
},
handlerRowClick(record) {
const { id, patientPolicyId } = record;
return {
on: {
click: () => {
this.detailForm = { id, patientPolicyId };
this.getCustomerDetail();
},
},
};
},
getCustomerDetail() {
// this.queryForm = this.$lodash.cloneDeep(this.form);
const { id, patientPolicyId } = this.detailForm;
const data = {
id: id && id * 1,
patientPolicyId: patientPolicyId * 1,
};
this.$apis.GETCUSTOMERDETAIL(data).then((res) => {
if (res.returnCode === "0000") {
const data = res.content || {};
for (let i in this.form) {
this.form[i] = data[i];
}
this.customList = [];
this.coverageForm = res.content || {};
this.isShowCoverageData = true;
this._getCorporateCode(this.coverageForm.payorId);
this._getPlanCode(this.coverageForm.corpId);
}
// this.dataList = (res.content && res.content.list) || [];
// this.total = (res.content && res.content.total) || 0;
});
},
handlerReset() {
this.$refs.form.resetFields();
this.customList = [];
this.isShowCoverageData = false;
this.coverageForm = {};
},
handlerSearch() {
console.log(this.$refs.form.validate);
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.cusPager.pageNum = 1;
this.queryForm = this.$lodash.cloneDeep(this.form);
this._getCustomerList();
});
},
payorChange(val) {
this.form.corpName = undefined;
this.form.planName = undefined;
if (!val) {
return false;
}
this._getCorporateCode(val);
},
corpChange(val) {
// 因为接口要name 但是查计划要用id
this.form.planName = undefined;
if (!val) {
return false;
}
console.log(val);
this.form.corpName = val.split("$_")[1];
val = val.split("$_")[0];
this._getPlanCode(val);
},
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
_getPayorCode() {
this.$apis.GETPAYORCODE({}).then((res) => {
this.companyCode = res.content || [];
});
},
_getCorporateCode(val) {
this.$apis.GETCORPORATECODEBYPAYOR({
longName: "",
payorId: val,
}).then((res) => {
this.corpCode = res.content || [];
});
},
_getPlanCode(val) {
this.$apis.GETPLANCODEBYCORP({
longName: "",
corpId: val,
}).then((res) => {
this.planCode = res.content || [];
});
},
_getCustomerList() {
const data = {
...this.queryForm,
...this.cusPager,
};
this.$apis.GETCUSTOMERLIST(data).then((res) => {
this.customList = (res.content && res.content.list) || [];
this.cusTotal = (res.content && res.content.total) || 0;
});
},
},
};
</script>
<style lang="less" scoped>
.welfare {
.pa(30, 36, 50, 39);
background-color: #fff;
.none-label {
text-align: right;
}
.classify {
.pa(10, 20, 10, 20);
.mg-t(10);
.mg-b(10);
background-color: #f8fafb;
.ant-btn:not(:first-child) {
.mg-l(30);
}
.save-btn {
float: right;
}
}
.icon-class {
.mg-r(10);
}
}
/deep/.ant-collapse-item {
border: none !important;
.ant-collapse-header {
font-weight: bold;
background-color: #f8fafb;
}
.ant-collapse-content {
background-color: #fff !important;
.ant-collapse-content-box {
padding: 0;
}
}
}
</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