Commit 0f4a59df authored by yanglilong's avatar yanglilong

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

parents 77e494f8 4fb0b84a
......@@ -19,4 +19,13 @@
3. 登录账密 admin/123456
4. 发布目录:/datavg/bims/
### 生产
1. IP: 139.224.200.172
2. 域名 http://bims.medilink-global.com.cn
3. 登录账密 admin/123456
4. 发布目录:/datavg/bims/
### nginx
生产nginx配置文件地址: /usr/local/nginx/conf/
public/favicon.png

3.86 KB | W: | H:

public/favicon.png

18 KB | W: | H:

public/favicon.png
public/favicon.png
public/favicon.png
public/favicon.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -4,11 +4,11 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<!-- <link rel="icon" href="<%= BASE_URL %>favicon2.png" /> -->
<link rel="icon" href="<%= BASE_URL %>favicon.png" />
<title><%= webpackConfig.name %></title>
<script
type="text/javascript"
src="//at.alicdn.com/t/font_3020450_5d4bvzz8pmi.js"
src="//at.alicdn.com/t/font_3020450_llubsxk8eyf.js"
></script>
</head>
<body>
......
......@@ -8,4 +8,5 @@ export default {
specialtyList: "/backstage/auth/specialtyList",
coverageCode: "/backstage/auth/coverageMasterList",
getRefcdByRefgrp: "/common/getRefcdByRefgrp", // 公共获取码表接口
checkUserEmail: "/backstage/user/checkUserEmail", // 校验用户邮箱
};
// 报表api
export default {};
export default {
};
......@@ -11,6 +11,7 @@ export default {
getChargeListDetail:"/backstage/auth/receiptDetailList",//账单明细
getReceiptPaymentDetail:"/backstage/auth/receiptPaymentDetail",//账单明细
queryCiReceipSendList:"/backstage/auth/queryCiReceipSendList",//理赔件账单寄送查询
receiptSettlement:"/backstage/auth/receiptSettlement",//账单结算
sendReceipListExport:"/backstage/auth/sendReceipListExport",//寄送关联账单导出
receiptPrint:"/backstage/auth/receiptPrint",//账单打印
};
// 信息管理api
export default {
providerDetail: "/backstage/auth/providerDetail", //医疗机构列表
providerUpdate: "/backstage/auth/providerUpdate", //医疗机构修改
doctorList: "/backstage/auth/doctorList", //医生列表
doctorDelete: "/backstage/auth/doctorDelete", //删除医生
doctorCreate: "/backstage/auth/doctorCreate", //新增医生
......@@ -17,4 +19,10 @@ export default {
payorAddDiscount: "/backstage/auth/payorAddDiscount", //新增折扣信息
payorAddDiscountBenefit: "/backstage/auth/payorAddDiscountBenefit", //编辑折扣信息
payorDiscountDelete: "/backstage/auth/payorDiscountDelete", //删除折扣信息
/*-------------科室信息-----------------*/
specialtyCreate: "/backstage/auth/specialtyCreate", //新增科室
specialtyUpdate: "/backstage/auth/specialtyUpdate", //修改科室
specialtyListPage: "/backstage/auth/specialtyListPage", //科室列表
specialtyDelete: "/backstage/auth/specialtyDelete", //科室删除
};
// 预授权api
export default {};
export default {
patientListNoPage: "/backstage/auth/patientListNoPage", //患者列表无分页
patientPayorList: "/backstage/auth/patientPayorList", //根据患者查询保司列表
patientPolicyList: "/backstage/auth/patientPolicyList", //根据患者查询保单列表
createAuthorize: "/backstage/auth/createAuthorize", //创建预授权
authorizeList: "/backstage/auth/authorizeList", //预授权列表
authorizeDetail: "/backstage/auth/authorizeDetail", //预授权详情
authorizeUpdate: "/backstage/auth/authorizeUpdate", //预授权修改
authorizeDelete: "/backstage/auth/authorizeDelete", //预授权删除
authorizeUseList: "/backstage/auth/authorizeUseList", //预授权使用列表
authorizeUseAdd: "/backstage/auth/authorizeUseAdd", //新增预授权使用
authorizeSendEmail: "/backstage/auth/authorizeSendEmail", //预授权邮件
};
......@@ -11,4 +11,5 @@ export default {
queryEobInfoList: "/backstage/auth/queryEobInfoList", //待回款EOB列表查询
saveBackMoney: "/backstage/auth/saveBackMoney", //新建回款
deleteBackMoney: "/backstage/auth/deleteBackMoney", //删除回款
eobReceipListExport: "/backstage/auth/eobReceipListExport", //EOB关联账单导出
};
......@@ -2,6 +2,7 @@
export default {
benefitType: "/backstage/auth/benefitMasterList",
planList: "/backstage/auth/planListPage",
addPlan: "/backstage/auth/planCreate",
editPlan: "/backstage/auth/planEdit",
coverageCode: "/backstage/auth/coverageMasterList",
coverageList: "/backstage/auth/coverageList",
......
......@@ -46,6 +46,11 @@ const GETREFCDBYREFGRP = (data) => {
return req.post(apis.getRefcdByRefgrp, data);
};
// 校验用户邮箱
const CHECKUSEREMAIL = (data) => {
return req.post(`${apis.checkUserEmail}?userName=${data.userName}`);
};
// 对象数组
export default {
GETUSERINFO,
......@@ -56,4 +61,5 @@ export default {
UPLOADIMG,
GETCOVERAGECODE,
GETREFCDBYREFGRP,
CHECKUSEREMAIL,
};
// 报表函数库
// import apis from "../apis_moudles/index";
// import req from "../request";
// 对象数组
export default {};
export default {
};
......@@ -45,6 +45,18 @@ const GETRECEIPTPAYMENTDETAIL= function (data) {
const QUERYCIRECEIPSENDLIST= function (data) {
return req.post(apis.queryCiReceipSendList, data);
};
// 账单结算
const RECEIPTSETTLEMENT= function (data) {
return req.post(apis.receiptSettlement, data);
};
// 寄送关联账单导出
const SENDRECEIPTLISTEXPORT= function (data) {
return req.post(apis.sendReceipListExport, data, { responseType: "blob" });
};
// 账单打印
const RECEIPTPRINT= function (data) {
return req.post(apis.receiptPrint, data);
};
// 对象数组
......@@ -60,6 +72,7 @@ export default {
GETCHARGELISTDETAIL,
GETRECEIPTPAYMENTDETAIL,
QUERYCIRECEIPSENDLIST,
RECEIPTSETTLEMENT,
SENDRECEIPTLISTEXPORT,
RECEIPTPRINT,
};
......@@ -3,8 +3,12 @@ import apis from "../apis_moudles/index";
import req from "../request";
//医疗机构列表
const PROVIDERDETAIL = () => {
return req.post(apis.providerDetail);
const PROVIDERDETAIL = (data) => {
return req.post(apis.providerDetail, data);
};
//医疗机构修改
const PROVIDERUPDATE = (data) => {
return req.post(apis.providerUpdate, data);
};
//医生列表
......@@ -68,9 +72,28 @@ const PAYORDISCOUNTDELETE = (data) => {
return req.post(apis.payorDiscountDelete, data);
};
/*-------------科室信息-----------------*/
//创建科室
const SPECIALTYCREATE = (data) => {
return req.post(apis.specialtyCreate, data);
};
//修改科室
const SPECIALTYUPDATE = (data) => {
return req.post(apis.specialtyUpdate, data);
};
//科室列表
const SPECIALTYLISTPAGE = (data) => {
return req.post(apis.specialtyListPage, data);
};
//科室删除
const SPECIALTYDELETE = (data) => {
return req.post(apis.specialtyDelete, data);
};
// 对象数组
export default {
PROVIDERDETAIL,
PROVIDERUPDATE,
DOCTORLIST,
DOCTORDELETE,
DOCTORCREATE,
......@@ -82,5 +105,9 @@ export default {
PAYORDELETE,
PAYORADDDISCOUNT,
PAYORADDDISCOUNTBENEFIT,
PAYORDISCOUNTDELETE
PAYORDISCOUNTDELETE,
SPECIALTYCREATE,
SPECIALTYUPDATE,
SPECIALTYLISTPAGE,
SPECIALTYDELETE
};
// 预授权函数库
// import apis from "../apis_moudles/index";
// import req from "../request";
import apis from "../apis_moudles/index";
import req from "../request";
//患者列表无分页
const PATIENTLISTNOPAGE = (data) => {
return req.post(apis.patientListNoPage, data);
};
//根据患者查询保司列表
const PATIENTPAYORLIST = (data) => {
return req.post(apis.patientPayorList, data);
};
//根据患者查询保单列表
const PATIENTPOLICYLIST = (data) => {
return req.post(apis.patientPolicyList, data);
};
//创建预授权
const AUTHORIZECREATE = function (data) {
return req.post(apis.createAuthorize, data);
};
//预授权列表
const AUTHORIZELIST = function (data) {
return req.post(apis.authorizeList, data);
};
//预授权详情
const AUTHORIZEDETAIL = function (data) {
return req.post(apis.authorizeDetail, data);
};
//预授权修改
const AUTHORIZEUPDATE = function (data) {
return req.post(apis.authorizeUpdate, data);
};
//预授权删除
const AUTHORIZEDELETE = function (data) {
return req.post(apis.authorizeDelete, data);
};
//预授权使用列表
const AUTHORIZEUSELIST = function (data) {
return req.post(apis.authorizeUseList, data);
};
//新增预授权使用
const AUTHORIZEUSEADD = function (data) {
return req.post(apis.authorizeUseAdd, data);
};
//预授权邮件
const AUTHORIZESENDEMAIL = function (data) {
return req.post(apis.authorizeSendEmail, data);
};
// 对象数组
export default {};
export default {
PATIENTLISTNOPAGE,
PATIENTPAYORLIST,
PATIENTPOLICYLIST,
AUTHORIZECREATE,
AUTHORIZELIST,
AUTHORIZEDETAIL,
AUTHORIZEUPDATE,
AUTHORIZEDELETE,
AUTHORIZEUSELIST,
AUTHORIZEUSEADD,
AUTHORIZESENDEMAIL,
};
......@@ -48,6 +48,11 @@ const DELETEBACKMONEY = (data) => {
return req.post(apis.deleteBackMoney, data);
};
//EOB关联账单导出
const EOBRECEIPLISTEXPORT = (data={}) => {
return req.post(apis.eobReceipListExport, data, { responseType: "blob" });
};
// 对象数组
export default {
QUERYEOBLIST,
......@@ -60,4 +65,5 @@ export default {
QUERYEOBINFOLIST,
SAVEBACKMONEY,
DELETEBACKMONEY,
EOBRECEIPLISTEXPORT,
};
\ No newline at end of file
......@@ -10,7 +10,11 @@ const GETPLANLIST = (data) => {
return req.post(apis.planList, data);
};
const EDITPLANDATE = (data) => {
const ADDTPLANDATA = (data) => {
return req.post(apis.addPlan, data);
};
const EDITPLANDATA = (data) => {
return req.post(apis.editPlan, data);
};
......@@ -66,7 +70,8 @@ const GETLIMITCODE = (data) => {
export default {
GETBENEGITTYPE,
GETPLANLIST,
EDITPLANDATE,
ADDTPLANDATA,
EDITPLANDATA,
GETCOVERAGELIST,
GETCONDITIONLIST,
ADDCONDITIONDATA,
......
......@@ -10,7 +10,7 @@ const service = axios.create({
return status >= 200 && status <= 504; // 合法状态码
},
baseURL: process.env.VUE_APP_API, // 基础请求路径
timeout: 10000, // 请求超时
timeout: 60000, // 请求超时
});
// 重复尝试此时
service.defaults.retry = 3;
......@@ -63,9 +63,9 @@ service.interceptors.response.use(
const { config } = response
if (config && config.responseType === 'blob') {
resolve(response)
return true
}else{
resolve(response.data);
}
resolve(response.data);
}
}
}).catch(() => {
......
......@@ -244,9 +244,9 @@ select {
}
// .ant-table,
.ant-table {
thead th{
.ant-table-thead th{
font-weight: bold;
background-color: #F8FAFB;
background-color: #F8FAFB !important;
}
.ant-btn {
// .fs(21);
......
......@@ -21,6 +21,8 @@ import {
modal,
Spin,
Collapse,
Tabs,
Tooltip
} from "ant-design-vue";
export default () => {
......@@ -46,6 +48,8 @@ export default () => {
modal,
Spin,
Collapse,
Tabs,
Tooltip
];
// 注册
els.forEach((item) => {
......
<template>
<div class="back-container">
<div class="flex left-div">
<span class="title">{{title}}</span>
<span class="back" @click.stop="back">&lt; 返回</span>
</div>
</div>
</template>
<script>
export default{
props: {
title: {
default: ""
}
},
data(){
},
methods: {
back(){
this.$router.go(-1);
}
}
}
</script>
<style lang="less" scoped>
.back-container{
.pa(20, 0, 30, 0);
border-bottom: 1px solid #eee;
margin-bottom: 20px;
.left-div{
font-size: 14px;
font-weight: bold;
.title{
color: #000;
}
.back{
margin-left: 16px;
color: #005ec8;
cursor: pointer;
}
}
}
</style>
......@@ -32,8 +32,8 @@ export default {
created() {},
mounted() {},
methods: {
clickEvent() {
this.$emit("click");
clickEvent(e) {
this.$emit("click", e);
},
},
};
......@@ -49,5 +49,6 @@ export default {
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
color: red;
}
</style>
import bus from "../utils/bus";
import {} from '@/utils/utilsdictOptions.js'
import {sexOptions, SendStatusOptions, ClaimsStatusOptions, EOBStatusOptions,
ApplyStatusOptions,ApproveStatusOptions} from '@/utils/utilsdictOptions.js'
// 全局混入将会影响每个单文件组件,请慎重思考是否要混入
export default {
......@@ -9,6 +10,65 @@ export default {
};
},
filters: {
//过滤性别
formatSex(val){
if (!val) {
return;
}
const item = sexOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
//过滤寄送状态
formatSendStatus(val){
if (!val) {
return;
}
const item = SendStatusOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
//过滤理赔状态
formatClaimsStatus(val){
if (!val) {
return;
}
const item = ClaimsStatusOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
//过滤EOB状态
formatEOBStatus(val){
if (!val) {
return;
}
const item = EOBStatusOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
//过滤申请状态
formatApplyStatus(val){
if (!val) {
return;
}
const item = ApplyStatusOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
//过滤审批结果
formatApproveStatus(val){
if (!val) {
return;
}
const item = ApproveStatusOptions.find((item) => {
return item.value == val;
});
return item? item.name: "";
},
}
};
......@@ -6,6 +6,8 @@ Vue.use(VueRouter);
import Layout from "../views/layout/index.vue";
// 登录模块
import author from "./modules/author";
//主页面
import home from "./modules/home";
// 客户管理
import customer from "./modules/customer";
// 福利信息管理
......@@ -30,6 +32,7 @@ const routes = [
path: "/",
redirect: "/login",
},
home,
customer,
welfare,
preAuth,
......
//报表路由表,分包名称:home
export default {
path: "/home",
name: "Home",
component: () => {
return import(/* webpackChunkName: "home" */ "@/views/home");
},
};
export default [
{
icon: "ssihome",
path: "/home",
title: "主页面",
children: [],
},
{
icon: "ssiuser",
path: "1",
......@@ -6,11 +12,11 @@ export default [
children: [
{
path: "/customer",
title: "客户信息明细",
title: "客户查询",
},
{
path: "/customer/edit",
title: "新建客户信息",
title: "新建客户",
},
],
},
......@@ -21,12 +27,8 @@ export default [
children: [
{
path: "/welfare",
title: "福利信息明细",
},
{
path: "/welfare/edit",
title: "福利信息管理",
},
title: "福利查询",
}
],
},
{
......@@ -39,7 +41,7 @@ export default [
title: "预授权查询",
},
{
path: "/pre-auth",
path: "/pre-auth/add",
title: "新建预授权",
},
],
......@@ -77,16 +79,20 @@ export default [
{
icon: "ssidata",
path: "info",
title: "信息管理",
title: "系统设置",
children: [
{
path: "/info",
title: "医疗机构信息",
title: "医疗机构设置",
},
{
path: "/info/company",
title: "保险公司信息",
title: "保险公司设置",
},
{
path: "/welfare/edit",
title: "福利信息设置",
}
],
},
{
......
// 预授权路由表,分包名称:preAuth
import Layout from '@/layout'
export default {
path: "/pre-auth",
name: "PreAuth",
component: () => {
return import(/* webpackChunkName: "preAuth" */ "@/views/pre-auth");
},
component: Layout,
children: [
{
path: "",
name: "PreAuthIndex",
component: () => import("@/views/pre-auth/index"),
},
{
path: "add",
name: "PreAuthAdd",
component: () => import("@/views/pre-auth/add"),
},
],
};
......@@ -71,4 +71,20 @@ export function downloadFile(response, file_name = "ExportFile") {
// link.click();
// document.body.removeChild(link);
}
}
//导出excel
export function exportFile(res, file_name) {
let blob = new Blob([res.data], {
type:"application/vnd.ms-excel;charset=utf-8"
});
let url=window.URL.createObjectURL(blob);
let aLink=document.createElement("a");
aLink.style.display="none";
aLink.href=url;
aLink.setAttribute("download", file_name);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
window.URL.revokeObjectURL(url);
}
\ No newline at end of file
......@@ -8,9 +8,58 @@ const sexOptions = [{
value: 'F'
}];
//寄送状态
const SendStatusOptions = [
{ name: '未寄送', value: '1'},
{ name: '寄送', value: '2'},
{ name: '待寄送', value: '3'},
];
//理赔状态
const ClaimsStatusOptions = [
{ name: '赔付', value: '01'},
{ name: '部分赔付', value: '02'},
{ name: '拒赔', value: '03'},
{ name: '补充材料', value: '04'},
];
//EOB状态
const EOBStatusOptions = [
{ name: '待回款', value: '1'},
{ name: '已回款', value: '2'},
{ name: '未回款', value: '3'}
];
//申请状态
const ApplyStatusOptions = [
{ name: '申请中', value: '01'},
{ name: '预授权批准', value: '02'},
{ name: '预授权拒绝', value: '03'},
{ name: '预授权调查', value: '04'},
];
//审批结果
const ApproveStatusOptions = [
{ name: '未通过', value: '1'},
{ name: '已通过', value: '2'}
];
//monetUnit
const MoneyUnitOptions = [
{ name: '', value: '01'},
{ name: '美元', value: '02'},
{ name: '英镑', value: '03'},
{ name: '欧元', value: '04'},
];
module.exports = {
sexOptions,
SendStatusOptions,
ClaimsStatusOptions,
EOBStatusOptions,
ApplyStatusOptions,
ApproveStatusOptions,
MoneyUnitOptions,
}
\ No newline at end of file
......@@ -32,7 +32,7 @@
</a-form-model-item>
<a-form-model-item prop="verificationCode">
<a-input v-model="form.verificationCode" placeholder="请输入验证码">
<a-button type="primary" slot="addonAfter" @click="getVerifyCode"
<a-button type="primary" slot="addonAfter" size="small" @click="getVerifyCode"
>发送验证码至邮箱</a-button
>
</a-input>
......@@ -76,7 +76,7 @@ export default {
activeStep: "1",
form: {},
formRules: {
userName: [{ required: true, message: "请输入邮箱" }],
userName: [{ required: true, message: "请输入用户名" }],
passWord: [{ required: true, message: "请输入密码" }],
newPwd: [
{ required: true, message: "请再次输入新密码" },
......@@ -111,15 +111,11 @@ export default {
});
},
handlerNext() {
this.$refs.form.validateField(
["userName", "verificationCode"],
(valid) => {
if (valid) {
return false;
}
this.$refs.form.validate((valid) => {
if (valid) {
this.activeStep = "2";
}
);
});
},
handlerReset() {
this.$refs.form.validate((valid) => {
......@@ -130,15 +126,43 @@ export default {
this._reset({ userName, verificationCode, newPwd });
});
},
_getVerifyEmail(data) {
this.$apis.GETVERIFYEMAIL(data).then((res) => {
if (res.returnCode === "0000") {
this.$message.success(res.returnMsg || "发送成功");
} else {
this.$message.error(res.returnMsg || "发送失败");
}
//校验用户邮箱
checkUserEmail(data){
return new Promise((resolve,reject)=>{
this.$apis.CHECKUSEREMAIL({
userName: data.userName
})
.then((res)=>{
if (res.returnCode === "0000") {
resolve(res.content);
}else{
this.$message.error(res.returnMsg);
reject();
}
})
});
},
async _getVerifyEmail(data) {
let email = await this.checkUserEmail(data);
if(email){
this.$modal.confirm({
title: "发送到邮箱",
content: `确认发送至邮箱${email}?`,
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$apis.GETVERIFYEMAIL(data).then((res) => {
if (res.returnCode === "0000") {
this.$message.success(res.returnMsg || "发送成功");
} else {
this.$message.error(res.returnMsg || "发送失败");
}
});
},
onCancel: () => {},
});
}
},
_reset(data) {
this.$apis.RESETPASSWORD(data).then((res) => {
if (res.returnCode === "0000") {
......@@ -175,16 +199,16 @@ 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);
}
}
.steps {
.pa(18, 37, 32, 37);
.pa(0, 32, 32, 32);
display: flex;
.step-item {
.fs(12);
......@@ -229,7 +253,7 @@ export default {
.module-title {
.fs(14);
.lh(20);
.mg-b(32);
.mg-b(30);
a {
color: #373842;
opacity: 0.4;
......
......@@ -23,7 +23,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
min-height: 100vh;
background: url("../../assets/image/login_bg.png") center center no-repeat;
background-size: 100% 100%;
.title {
......@@ -32,12 +32,15 @@ export default {
.pb(90);
color: #fff;
letter-spacing: 3px;
text-align: center;
}
.login,
.forget {
.w(394);
width: 394px;
max-width: 90%;
// .w(394);
.bd-rd(27);
.pa(50, 63, 10, 63);
.pa(50, 47, 18, 47);
margin: 0 auto;
position: relative;
background-color: #fff;
......
......@@ -84,7 +84,7 @@ export default {
this.$apis.LOGIN(this.form).then((res) => {
if (res.returnCode === "0000") {
this.$store.commit("common/setUserInfo", res.content);
const path = this.$route.query && this.$route.query.redirect || "/customer";
const path = this.$route.query && this.$route.query.redirect || "/home";
this.$router.replace(path);
} else {
this.$message.error(res.returnMsg || "出现错误");
......
<template>
<div>申诉案件</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>福利查询</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="就诊日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<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="账单寄送日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :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="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="exportExcel">
<Icon name="ssidaochu" :size="14" />导出报表</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions';
import {exportFile} from '@/utils/index';
export default{
props: {
companyOptions: {
default: []
}
},
data(){
const columns = [
{ title: "月份", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136},
{ title: "保险公司", dataIndex: "payorName", width: 110 },
{ title: "保险就诊量", dataIndex: "patientNo", key:"patientNo",align:'center', width: 136},
{ title: "回款天数(天)", dataIndex: "patientName", width: 110 },
{ title: "金额", dataIndex: "chargeAmount", width: 100, align: 'center' },
{ title: "折后金额", dataIndex: "discountAmount", width: 100, align: 'center' },
{ title: "客户自付金额", dataIndex: "paidAmount", width: 120, align: 'center' },
{ title: "保险已回款金额", dataIndex: "paidAmount2", width: 130, align: 'center' },
{ title: "账单寄送日期", dataIndex: "paidAmount3", width: 130, align: 'center' },
{ title: "回款日期", dataIndex: "paidAmount4", width: 130, align: 'center' },
];
return {
columns,
ClaimsStatusOptions,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
sendSts: '',
},
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
components: {
BurtPagination,
},
created(){
},
methods: {
moment,
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
}
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);
}
});
},
//导出报表
exportExcel(){
exportFile('保险应收报表.xls');
}
}
}
</script>
<style lang="less" scoped>
/deep/ .ant-input-group-addon{
border-left: 1px solid #d9d9d9;
}
</style>
\ No newline at end of file
<template>
<div>
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="就诊日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<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="12" :sm="12" 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="exportExcel">
<Icon name="ssidaochu" :size="14" />导出报表</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions';
import {exportFile} from '@/utils/index';
export default{
props: {
companyOptions: {
default: []
}
},
data(){
const columns = [
{ title: "月份", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136},
{ title: "保险公司", dataIndex: "payorName", width: 110 },
{ title: "保险就诊量", dataIndex: "patientNo", key:"patientNo",align:'center', width: 136},
{ title: "回款率(%)", dataIndex: "patientName", width: 110 },
{ title: "金额", dataIndex: "chargeAmount", width: 100, align: 'center' },
{ title: "折后金额", dataIndex: "discountAmount", width: 100, align: 'center' },
{ title: "客户自付金额", dataIndex: "paidAmount", width: 120, align: 'center' },
{ title: "保险已回款金额", dataIndex: "paidAmount2", width: 130, align: 'center' },
];
return {
columns,
ClaimsStatusOptions,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
sendSts: '',
},
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
components: {
BurtPagination,
},
created(){
},
methods: {
moment,
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
}
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);
}
});
},
//导出报表
exportExcel(){
exportFile('保险应收报表.xls');
}
}
}
</script>
<style lang="less" scoped>
/deep/ .ant-input-group-addon{
border-left: 1px solid #d9d9d9;
}
</style>
\ No newline at end of file
<template>
<div>
<!-- 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-select v-model="form.sendSts" placeholder="请选择理赔状态" allowClear>
<a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</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.sendBatchNo" 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.sendBatchNo" type="number" placeholder="请输入账龄" allow-clear addon-after="天" />
</a-form-model-item>
</a-col>
<a-col :sm="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="exportExcel">
<Icon name="ssidaochu" :size="14" />导出报表</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions';
import {exportFile} from '@/utils/index';
export default{
props: {
companyOptions: {
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: 100,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: "paidAmount2", width: 100, align: 'center' },
{ title: "理赔金额", dataIndex: "paidamoun3", width: 100, align: 'center' },
{ title: "已赔付金额", dataIndex: "paidamoun4", width: 110, align: 'center' },
{ title: "欠费金额", dataIndex: "paidamoun5", width: 100, align: 'center' },
{ title: "理赔状态", dataIndex: "paidamount6", width: 100, align: 'center' },
{ title: "原因", dataIndex: "paidamount7", width: 100, align: 'center' },
{ title: "账单状态", dataIndex: "paidamount8", width: 100, align: 'center' },
{ title: "医生", dataIndex: "paidamount9", width: 100, align: 'center' },
{ title: "科室", dataIndex: "paidamount10", width: 100, align: 'center' },
{ title: "账单编号", dataIndex: "paidamount11", width: 100, align: 'center' },
{ title: "发票号码", dataIndex: "paidamount12", width: 100, align: 'center' },
{ title: "就诊类型", dataIndex: "paidamount13", width: 100, align: 'center' },
{ title: "账单寄送日期", dataIndex: "paidamount14", width: 120, align: 'center' },
{ title: "回款日期", dataIndex: "paidamount15", width: 100, align: 'center' },
{ title: "账龄", dataIndex: "paidamount16", width: 100, align: 'center' },
];
return {
columns,
ClaimsStatusOptions,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
sendSts: '',
},
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
components: {
BurtPagination,
},
created(){
},
methods: {
moment,
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
}
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);
}
});
},
//导出报表
exportExcel(){
exportFile('保险应收报表.xls');
}
}
}
</script>
<style lang="less" scoped>
/deep/ .ant-input-group-addon{
border-left: 1px solid #d9d9d9;
}
</style>
\ No newline at end of file
<template>
<div>寄送清单</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>材料补充</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="就诊日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<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="理赔状态">
<a-select v-model="form.sendSts" placeholder="请选择理赔状态" allowClear>
<a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="账单寄送日期">
<a-date-picker allow-clear v-model="form.firstEnrollmentTime" placeholder="请选择账单寄送日期" value-format="YYYY-MM-DD 00:00:00" />
</a-form-model-item>
</a-col>
<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="科室">
<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="病历号">
<a-input v-model="form.trackingNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input v-model="form.sendBatchNo" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :sm="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="exportExcel">
<Icon name="ssidaochu" :size="14" />导出报表</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions';
import {exportFile} from '@/utils/index';
export default{
props: {
companyOptions: {
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: 100,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: "paidAmount2", width: 100, align: 'center' },
{ title: "理赔金额", dataIndex: "paidamoun3", width: 100, align: 'center' },
{ title: "已赔付金额", dataIndex: "paidamoun4", width: 110, align: 'center' },
{ title: "欠费金额", dataIndex: "paidamoun5", width: 100, align: 'center' },
{ title: "理赔状态", dataIndex: "paidamount6", width: 100, align: 'center' },
{ title: "原因", dataIndex: "paidamount7", width: 100, align: 'center' },
{ title: "账单状态", dataIndex: "paidamount8", width: 100, align: 'center' },
{ title: "医生", dataIndex: "paidamount9", width: 100, align: 'center' },
{ title: "科室", dataIndex: "paidamount10", width: 100, align: 'center' },
{ title: "账单编号", dataIndex: "paidamount11", width: 100, align: 'center' },
{ title: "发票号码", dataIndex: "paidamount12", width: 100, align: 'center' },
{ title: "就诊类型", dataIndex: "paidamount13", width: 100, align: 'center' },
{ title: "账单寄送日期", dataIndex: "paidamount14", width: 120, align: 'center' },
{ title: "回款日期", dataIndex: "paidamount15", width: 100, align: 'center' },
{ title: "账龄", dataIndex: "paidamount16", width: 100, align: 'center' },
];
return {
columns,
ClaimsStatusOptions,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
sendSts: '',
},
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
components: {
BurtPagination,
},
created(){
},
methods: {
moment,
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
}
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);
}
});
},
//导出报表
exportExcel(){
exportFile('理赔数据报表.xls');
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>个人欠费</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>预授权</div>
</template>
<script>
export default{
data(){
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="就诊日期">
<a-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<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-input v-model="form.trackingNo" placeholder="请输入EOB名称" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB状态">
<a-select v-model="form.sendSts" placeholder="请选择状态" allowClear>
<a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</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>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="银行入账状态">
<a-select v-model="form.sendSts" placeholder="请选择状态" allowClear>
<a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :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="6" :sm="12" 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="exportExcel">
<Icon name="ssidaochu" :size="14" />导出报表</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="index" slot-scope="text, record, index">
{{ index + 1 }}
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from 'moment'
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions';
import {exportFile} from '@/utils/index';
export default{
props: {
companyOptions: {
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: 100,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: "paidAmount2", width: 100, align: 'center' },
{ title: "理赔金额", dataIndex: "paidamoun3", width: 100, align: 'center' },
{ title: "已赔付金额", dataIndex: "paidamoun4", width: 110, align: 'center' },
{ title: "欠费金额", dataIndex: "paidamoun5", width: 100, align: 'center' },
{ title: "理赔状态", dataIndex: "paidamount6", width: 100, align: 'center' },
{ title: "原因", dataIndex: "paidamount7", width: 100, align: 'center' },
{ title: "账单状态", dataIndex: "paidamount8", width: 100, align: 'center' },
{ title: "医生", dataIndex: "paidamount9", width: 100, align: 'center' },
{ title: "科室", dataIndex: "paidamount10", width: 100, align: 'center' },
{ title: "账单编号", dataIndex: "paidamount11", width: 100, align: 'center' },
{ title: "发票号码", dataIndex: "paidamount12", width: 100, align: 'center' },
{ title: "就诊类型", dataIndex: "paidamount13", width: 100, align: 'center' },
{ title: "账单寄送日期", dataIndex: "paidamount14", width: 120, align: 'center' },
{ title: "回款日期", dataIndex: "paidamount15", width: 100, align: 'center' },
{ title: "账龄", dataIndex: "paidamount16", width: 100, align: 'center' },
];
return {
columns,
ClaimsStatusOptions,
form: {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
sendSts: '',
},
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
components: {
BurtPagination,
},
created(){
},
methods: {
moment,
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
}
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);
}
});
},
//导出报表
exportExcel(){
exportFile('保险应收报表.xls');
}
}
}
</script>
<style lang="less" scoped>
/deep/ .ant-input-group-addon{
border-left: 1px solid #d9d9d9;
}
</style>
\ No newline at end of file
<template>
<div>
<!-- 报表 -->
报表
<div class="white_bg burt-container">
<a-tabs v-model="activeKey" @change="paneChange">
<a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title">
<component v-if="pane.show" :is="pane.content"
:companyOptions="companyOptions" :expressList="expressList"></component>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
import PaymentClaims from "./components/PaymentClaims.vue";
import Insurance from "./components/Insurance.vue";
import Verification from "./components/Verification.vue";
import CollectionRate from "./components/CollectionRate.vue";
import CollectionDays from "./components/CollectionDays.vue";
import PersonalFee from "./components/PersonalFee.vue";
import MaterialSupplement from "./components/MaterialSupplement.vue";
import AppealCase from "./components/AppealCase.vue";
import MailingList from "./components/MailingList.vue";
import PreAuth from "./components/PreAuth.vue";
import Benefit from "./components/Benefit.vue";
export default {
components: {},
data() {
return {};
return {
activeKey: '0',
panes: [
{ title: "理赔数据", key: '0', show: true, content: 'PaymentClaims'},
{ title: "保险应收", key: '1', show: false, content: 'Insurance'},
{ title: "核销", key: '2', show: false, content: 'Verification'},
{ title: "回款率", key: '3', show: false, content: 'CollectionRate'},
{ title: "回款天数", key: '4', show: false, content: 'CollectionDays'},
{ title: "个人欠费", key: '5', show: false, content: 'PersonalFee'},
{ title: "材料补充", key: '6', show: false, content: 'MaterialSupplement'},
{ title: "申诉案件", key: '7', show: false, content: 'AppealCase'},
{ title: "寄送清单", key: '8', show: false, content: 'MailingList'},
{ title: "预授权", key: '9', show: false, content: 'PreAuth'},
{ title: "福利查询", key: '10', show: false, content: 'Benefit'}
],
companyOptions: [], //保险公司
expressList: [], //快递公司
};
},
components: {
PaymentClaims, Insurance, Verification, CollectionRate, CollectionDays,
PersonalFee, MaterialSupplement, AppealCase, MailingList, PreAuth, Benefit
},
created() {
let type = this.$route.query.type;
if(type){
this.activeKey = type;
this.paneChange();
}
this._getCompanyOptions();
this.getRefcdByRefgrp();
},
methods: {
paneChange(){
this.panes.forEach((item)=>{
item.show = false;
});
this.panes[Number(this.activeKey)].show = true;
},
// 获取保险公司下拉选项
_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 || [];
});
},
},
created() {},
mounted() {},
methods: {},
};
</script>
......
<template>
<!-- -账单明细 -->
<div class="white_bg burt-container custom-info">
<Goback title="账单详情" />
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
<a-col :xl="4" :lg="6" :sm="12">
......@@ -88,6 +89,16 @@
<a-button class="danger">{{ text | payStyleFilters }}</a-button>
</template>
</a-table>
<a-row :gutter="30">
<a-col :sm="24">
<div class="btn-div flex">
<a-button type="primary" @click="receiptEvt">
<Icon name="ssibaocun" :size="14" />结算</a-button>
<a-button type="primary" class="mar-left10" @click="printEvt">
<Icon name="ssidayinji_o" :size="14" />打印</a-button>
</div>
</a-col>
</a-row>
<a-modal title="编辑" :visible="dialogShow" width="700px" :maskClosable="false"
okText="确定" cancelText="取消"
......@@ -104,6 +115,7 @@
</template>
<script>
import Goback from "@/components/CUSTOMER/goback";
import BurtPagination from "@/components/CUSTOMER/pagation";
import { mapState } from "vuex"
export default {
......@@ -113,24 +125,24 @@ export default {
{ title: "项目明细", dataIndex: "itemDesc", width: 180},
{ title: "单价", dataIndex: "itemPrice", width: 120},
{ title: "数量", dataIndex: "itemQty", width: 180 },
{ title: "单位", dataIndex: "itemUnit", width: 180 },
{ title: "单位", dataIndex: "itemUnitDesc", width: 180 },
{ title: "金额", dataIndex: "chargeAmount", width: 180 },
{ title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
{ 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" },align: "center"},
// { 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" },align: "center"},
];
const payColumns = [
{ title: "免赔额", dataIndex: "deductible", width: 180 },
{ title: "自付额", dataIndex: "selfPaid", width: 180 },
{ title: "其他费用", dataIndex: "otherPaid", width: 180 },
{ title: "个人支付", dataIndex: "personalPaid", width: 180 },
{ title: "商保支付", dataIndex: "ciPaid", width: 180 },
{ title: "理赔金额", dataIndex: "ciPaid", width: 180 },
{ title: "支付方式", dataIndex: "paymentType", width: 180, scopedSlots: { customRender: "paymentType" }},
];
return {
......@@ -185,6 +197,7 @@ export default {
};
},
components: {
Goback,
BurtPagination,
},
computed: {
......@@ -205,6 +218,8 @@ export default {
created() {
const { receiptNo } = this.$route.query;
this.receiptNo = receiptNo || "";
let chargeQueryDetail = localStorage.getItem('chargeQueryDetail');
this.form = chargeQueryDetail? JSON.parse(chargeQueryDetail): {};
this._getChargeListDetail();
this._getCompanyOptions();//获取保险公司下拉选项
......@@ -266,7 +281,46 @@ export default {
}
});
},
//账单结算
receiptEvt(){
this.$modal.confirm({
title: "结算",
content: "确定结算该账单?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.RECEIPTSETTLEMENT({
id: this.form.id
}).then((res) => {
if (res.returnCode === "0000") {
this.$message.success('结算成功');
this.pagination.pageNum = 1;
this._getChargeListDetail();
}else{
this.$message.error(res.returnMsg);
}
});
},
});
},
//打印
printEvt(){
this.$apis.RECEIPTPRINT({
id: this.form.id
}).then(res => {
if(res.returnCode == '0000'){
let url = res.content;
let link = document.createElement('a');
link.setAttribute('href', url);
link.setAttribute('target', "_blank");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}else{
this.$message.error(res.returnMsg);
}
})
},
// 选中就诊时间
onSelectVisitTime(date, dateString) {
console.log(date, dateString);
......@@ -326,4 +380,8 @@ export default {
color: #1890ff;
}
}
.btn-div{
margin-top: 10px;
justify-content: flex-end;
}
</style>
......@@ -6,7 +6,7 @@
<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 v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
......@@ -77,72 +77,52 @@
{{ index + 1 }}
</template>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<!-- <a-button type="link" @click.stop="receiptEvt(record)">结算</a-button> -->
<a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button>
<a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<!-- <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData" >
<a-button type="link" class="danger">删除</a-button>
</a-popconfirm>
</a-popconfirm> -->
</template>
</a-table>
<!--分页-->
<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>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import { mapState } from "vuex"
import moment from "moment";
export default {
data() {
const columns = [
{ title: "序号", dataIndex: "index", key:"index",align:'center', width: 80,scopedSlots: { customRender: "index" }},
{ title: "收费时间", dataIndex: "receiptDate", width: 180 },
{ title: "病历号", dataIndex: "patientNo",width: 180},
{ title: "就诊时间", dataIndex: "visitTimeStart", width: 180 },
{ title: "病历号", dataIndex: "mrnNo",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 },
{ title: "理赔金额", dataIndex: "paidamount", width: 180 },
{ title: "客户自付", dataIndex: "selfpaidAmount", width: 180 },
{ title: "减免金额", dataIndex: "reduceAmount1", width: 180 },
{ title: "理赔金额", dataIndex: "claimsAmount", width: 180 },
{ title: "保险已支付", dataIndex: "insurancePaidAmount", width: 180 },
{ title: "未清余额", dataIndex: "outstandAmount", width: 180 },
{ 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" }, align: "center"},
];
return {
dialogShow: false,
columns,
form: {},
pageForm: {
doctorCode: "",
patientName: "",
patientNo: "",
mrnNo: "",
paymentCode: "",
payorId: 0,
visitTimeEnd: "",
......@@ -168,15 +148,6 @@ export default {
pageSize: 10,
total: 0,
},
editFormObj: {
id: "",
patientNo: '',
patientName: '',
},
editRules: {
patientNo: [{ required: true, message: "病历号", trigger: "blur" }],
patientName: [{ required: true, message: "客户姓名", trigger: "blur" }],
},
};
},
components: {
......@@ -193,6 +164,7 @@ export default {
this._getDoctorListNoPage();//获取医生下拉选项
},
methods: {
moment,
// 获取列表数据
_getChargeList() {
const data = {
......@@ -219,7 +191,6 @@ export default {
}else{
this.$message.success(res.returnMsg);
}
});
},
// 选中就诊时间
......@@ -232,36 +203,32 @@ export default {
},
//查看
detailEvt(record) {
localStorage.setItem('chargeQueryDetail', JSON.stringify(record));
const { receiptNo } = record;
this.$router.push({
name: "chargeQueryDetail",
query: { receiptNo },
});
},
editEvt(record) {
this.editFormObj = {
id: record.id || "",
patientNo: record.patientNo || "",
patientName: record.patientName || "",
};
this.dialogShow = true;
},
//编辑保存
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);
}
});
}
//账单结算
receiptEvt(record){
this.$modal.confirm({
title: "结算",
content: "确定结算该账单?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.RECEIPTSETTLEMENT({
id: record.id
}).then((res) => {
if (res.returnCode === "0000") {
this.$message.success('结算成功');
this._getChargeList();
}else{
this.$message.error(res.returnMsg);
}
});
},
});
},
handlerSearch() {
......@@ -274,9 +241,6 @@ export default {
this._getChargeList();
});
},
deleteData() {
this.$message.success("删除成功");
},
// 新建账单信息
addNewCharge() {
// this.$router.push("/customer/edit");
......
......@@ -19,8 +19,11 @@
</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 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-row>
......@@ -38,11 +41,10 @@
</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 label="寄送批号">
<a-input v-model="form.sendBatchNo" placeholder="请输入寄送批号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :sm="24" class="none-label">
<div class="btn-div flex">
<span></span>
......@@ -71,6 +73,7 @@
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">编辑</a-button>
<a-button type="link" class="success" @click.stop="editEvt(record)">查看</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
......@@ -91,7 +94,7 @@ export default {
{ 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" }},
{ title: "操作", key: "operation", width: "200px",fixed: "right",scopedSlots: { customRender: "operation" }, align: "center"},
];
return {
loading: false,
......@@ -100,8 +103,9 @@ export default {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
receiptNo: '',
sendSts: '',
},
companyOptions: [], //保险公司
expressList: [], //快递列表
......@@ -165,8 +169,9 @@ export default {
dateRange: [],
payorCode: '',
sendBatchNo: '',
sendCompany: '',
trackingNo: '',
receiptNo: '',
sendSts: '',
}
},
//编辑
......
<template>
<!-- 收费查询-账单查询 -->
<div class="white_bg burt-container custom-info">
<Goback title="理赔件详情" />
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
......@@ -56,7 +57,12 @@
<a-input v-model="form.sendEmail" placeholder="请输入寄送邮箱" allow-clear />
</a-form-model-item>
</a-col>
<a-col :sm="8" class="none-label">
<a-col :lg="8" :sm="12">
<a-form-model-item label="寄送备注">
<a-textarea v-model="form.sendRemark" placeholder="请输入寄送备注" :auto-size="{ minRows: 2, maxRows: 5 }" />
</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">
......@@ -74,6 +80,9 @@
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button> -->
<a-button type="primary" @click="exportEvt">
<Icon name="ssidaochu" :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>
......@@ -145,18 +154,20 @@
</template>
<script>
import Goback from "@/components/CUSTOMER/goback";
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: "visitTimeStart", width: 200,scopedSlots: { customRender: "visitTimeStart" } },
{ title: "病历号", dataIndex: "patientNo", key:"patientNo",align:'center', width: 136},
{ title: "客户姓名", dataIndex: "patientName", width: 98 },
{ title: "账单编号", dataIndex: "receiptNo", key:"receiptNo",align:'center', width: 136},
{ 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: "chargeAmount", width: 100, align: 'center' },
{ title: "折扣金额", dataIndex: "discountAmount", width: 100, align: 'center' },
{ title: "减免金额", dataIndex: "discountAmount2", 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" }},
......@@ -175,6 +186,7 @@ export default {
trackingNo: '',
sendAddress: '',
sendEmail: '',
sendRemark: ''
},
companyOptions: [], //保险公司
expressList: [], //快递列表
......@@ -200,6 +212,7 @@ export default {
};
},
components: {
Goback,
BurtPagination,
},
created() {
......@@ -332,6 +345,26 @@ export default {
},
});
},
//导出
exportEvt(){
this.$apis.SENDRECEIPTLISTEXPORT({
sendBatchNo: this.sendBatchNo
})
.then(res => {
let blob = new Blob([res.data], {
type:"application/vnd.ms-excel;charset=utf-8"
});
let url=window.URL.createObjectURL(blob);
let aLink=document.createElement("a");
aLink.style.display="none";
aLink.href=url;
aLink.setAttribute("download","寄送账单.xls");
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
window.URL.revokeObjectURL(url);
})
},
//添加账单
addNewBill(){
this.isEditNewBill = !this.isEditNewBill;
......
......@@ -7,16 +7,58 @@
<a-form-model-item label="病历号码" prop="mrnNo">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear></a-input>
</a-form-model-item>
<a-form-model-item label="证件号码" prop="idNo">
<a-input v-model="form.idNo" allow-clear placeholder="请输入证件号码"></a-input>
</a-form-model-item>
<a-form-model-item label="保单号码" prop="policyNo">
<a-input allow-clear v-model="form.policyNo" placeholder="请输入保单号码"></a-input>
</a-form-model-item>
<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="patientName">
<a-input v-model="form.patientName" allow-clear placeholder="请输入客户姓名"></a-input>
</a-form-model-item>
<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-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-form-model-item>
<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="birthday">
<a-date-picker v-model="form.birthday" allow-clear placeholder="请选择出生日期" value-format="YYYY-MM-DD 00:00:00"></a-date-picker>
</a-form-model-item>
<a-form-model-item 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">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
<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-form-model-item>
<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="4" :lg="6" :sm="12">
<a-form-model-item label="性别" prop="sex">
......@@ -28,100 +70,44 @@
</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 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">
{{ 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="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-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-form-model-item>
</a-col>
<a-col :xl="4" :lg="6" :sm="12">
<a-col :xl="5" :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-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 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-option v-for="item in comPlanCode" :key="item.id + '_' + item.longName" :value="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="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-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="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="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">
<a-form-model-item label="保卡复印件" prop="medCardCopeFiles">
<a-row :gutter="10">
<a-col :xl="9" :sm="12" class="none-label">
<a-form-model-item label="" prop="medCardCopeFiles">
<div class="text-left mar-bottom10">
<label>保卡复印件</label>
<a-button type="primary" size="small" class="mar-left10" ghost>打印</a-button>
</div>
<div class="upload-print">
<div class="picture">
<a-upload
......@@ -138,12 +124,16 @@
</div>
</a-upload>
</div>
<a-button type="primary" class="mar-left10" ghost>打印</a-button>
<!-- <a-button type="primary" class="mar-left10" ghost>打印</a-button> -->
</div>
</a-form-model-item>
</a-col>
<a-col :xl="9" :sm="12">
<a-form-model-item label="身份证复印件" prop="idCardCopeFiles">
<a-col :xl="9" :sm="12" class="none-label">
<a-form-model-item prop="idCardCopeFiles">
<div class="text-left mar-bottom10">
<label>身份证复印件</label>
<a-button type="primary" size="small" class="mar-left10" ghost>打印</a-button>
</div>
<div class="upload-print">
<div class="picture">
<a-upload
......@@ -157,7 +147,6 @@
<div v-if="form.idCardCopeFiles.length < 3">点击上传文件</div>
</a-upload>
</div>
<a-button type="primary" class="mar-left10" ghost>打印</a-button>
</div>
</a-form-model-item>
</a-col>
......@@ -186,7 +175,7 @@
<script>
export default {
beforeRouteUpdate(to, from, next) {
beforeRouteUpdate(to, from, next) {
this.$refs.form.resetFields();
next();
},
......@@ -211,7 +200,14 @@ export default {
comCorpCode: [],
planCode: [],
comPlanCode: [],
formRules: {},
formRules: {
mrnNo: [{required: true, message: '请输入病历号'}],
patientName: [{required: true, message: '请输入客户姓名'}],
birthday: [{required: true, message: '请选择出生日期'}],
sex: [{required: true, message: '请选择性别'}],
payorId: [{required: true, message: '请选择保险公司'}],
cardNo: [{required: true, message: '请输入保险卡号'}],
},
typeCode: [],
areaCode: []
};
......@@ -240,7 +236,7 @@ export default {
});
// this.$router.push("/customer");
} else {
this.$message.success(res.returnMsg || "操作失败");
this.$message.error(res.returnMsg || "操作失败");
}
});
});
......@@ -277,21 +273,20 @@ export default {
];
}
},
getCustomerDetail(params) {
// this.queryForm = this.$lodash.cloneDeep(this.form);
const { id, patientPolicyId } = params;
const { id, patientPolicyId, type } = 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 || [];
let data = res.content || {};
this._getCorporateCode(data.payorId);
this._getPlanCode(data.corpId);
const medCardCopeFiles = data.medCardCopeFiles || [];
const idCardCopeFiles = data.idCardCopeFiles || [];
medCardCopeFiles.forEach((item) => {
this.medCardCopeFiles.push({
url: item.fileUrl,
......@@ -306,6 +301,30 @@ export default {
name: item.fileName,
})
})
// type === '2'说明是新增保单,需要把客户信息清空
if(type === '2') {
data = {
...data,
payorId: undefined,
corpName: '',
idType: undefined,
policyNo: '',
firstEnrollmentTime: '',
startDate: '',
cardNo: '',
policyDircetArea: undefined,
waitingPeriod: 'N',
isUndertakeAnamnesis: "N",
endDate: '',
planName: undefined,
remark: '',
medCardCopeFiles: [],
idCardCopeFiles: [], // 身份证复印件
}
this.medCardCopeFiles = [];
this.idCardCopeFiles = [];
}
this.form = data;
}
// this.dataList = (res.content && res.content.list) || [];
// this.total = (res.content && res.content.total) || 0;
......@@ -384,8 +403,8 @@ export default {
handleMedRemove(file) {
for (let i = 0; i < this.medCardCopeFiles.length; i++) {
if (this.medCardCopeFiles[i].url === file.url) {
this.medCardCopeFiles[i].splice(i, 1);
this.form.medCardCopeFiles[i].splice(i, 1);
this.medCardCopeFiles.splice(i, 1);
this.form.medCardCopeFiles.splice(i, 1);
return true;
}
}
......@@ -393,8 +412,8 @@ export default {
handleIDRemove(file) {
for (let i = 0; i < this.idCardCopeFiles.length; i++) {
if (this.idCardCopeFiles[i].url === file.url) {
this.idCardCopeFiles[i].splice(i, 1);
this.form.idCardCopeFiles[i].splice(i, 1);
this.idCardCopeFiles.splice(i, 1);
this.form.idCardCopeFiles.splice(i, 1);
return true;
}
}
......@@ -486,6 +505,9 @@ export default {
.none-label .text-r {
float: right;
}
.text-left{
text-align: left;
}
/deep/ .ant-upload {
width: 100%;
color: #2b63ff;
......
......@@ -32,10 +32,13 @@
</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>
<a-button class="mar-left10" type="primary" @click="resetEvt">
<Icon name="ssireset" :size="14" />重置
</a-button>
</a-form-model-item>
</a-col>
</a-row>
......@@ -45,18 +48,21 @@
<a-table
:columns="columns"
:data-source="dataList"
row-key="mrnNo"
:scroll="{ x: true }"
:pagination="false"
:customRow="handlerRowClick"
>
<template slot="sex" slot-scope="text">
<span>{{text | formatSex}}</span>
</template>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="changeDataStatus(record)">修改</a-button>
<a-button type="link" @click.stop="printClaimPdf(record)">打印理赔申请书</a-button>
<a-button type="link" @click.stop="changeDataStatus(record, '2')">新增保单</a-button>
<!-- <a-button type="link" class="success">新增</a-button> -->
<a-popconfirm title="你确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData(record)">
<!-- <a-popconfirm title="你确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="deleteData(record)">
<a-button type="link" class="danger" @click.stop>删除</a-button>
</a-popconfirm>
</a-popconfirm> -->
</template>
</a-table>
<!--分页-->
......@@ -68,7 +74,7 @@
import BurtPagination from "@/components/CUSTOMER/pagation";
import {downloadFile} from '@/utils/index'
import moment from 'moment'
import mixins from "@/mixins";
export default {
data() {
const dateFormat = (val) => {
......@@ -78,12 +84,12 @@ export default {
{ title: "病历号", dataIndex: "mrnNo", width: 180, },
{ title: "客户姓名", dataIndex: "patientName", width: 120,},
{ title: "出生日期", dataIndex: "birthday", width: 170, customRender: dateFormat},
{ title: "性别", dataIndex: "sex", width: 80 },
{ title: "性别", dataIndex: "sex", width: 80, scopedSlots: { customRender: "sex" } },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "险有效日期", dataIndex: "startDate", width: 170, customRender: dateFormat },
{ title: "终止日期", dataIndex: "endDate", width: 170, customRender: dateFormat },
{ title: "操作", key: "operation", width: "260px", fixed: "right", scopedSlots: { customRender: "operation" }},
{ title: "单生效日期", dataIndex: "startDate", width: 170, customRender: dateFormat },
{ title: "终止日期", dataIndex: "endDate", width: 170, customRender: dateFormat },
{ title: "操作", key: "operation", width: "270px", fixed: "right", scopedSlots: { customRender: "operation" }, align: 'center'},
];
return {
columns,
......@@ -98,6 +104,7 @@ export default {
},
};
},
mixins: [mixins],
components: {
BurtPagination,
},
......@@ -106,6 +113,11 @@ export default {
this._getPayorCode();
},
methods: {
//重置
resetEvt(){
this.form = {};
this.pageForm = {};
},
handlerRowClick(record) {
const { id, patientPolicyId } = record;
return {
......@@ -126,11 +138,11 @@ export default {
};
},
// 修改按钮
changeDataStatus(record) {
changeDataStatus(record, type) {
const { id, patientPolicyId } = record;
this.$router.push({
name: "customerEdit",
query: { id, patientPolicyId },
query: { id, patientPolicyId, type },
});
},
saveChange(record) {
......
<template>
<div class="white_bg burt-container">
<img src="../../assets/image/home_bg.jpg" alt="">
</div>
</template>
<script>
export default{
data(){
return{
}
}
}
</script>
<style lang="less" scoped>
.burt-container{
height: calc(100vh - 116px);
padding: 0;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
</style>
\ No newline at end of file
......@@ -30,7 +30,7 @@
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="医生英文名" prop="englishName">
<a-form-model-item label="公司英文名" prop="englishName">
<a-input v-model.trim="editFormObj.englishName" placeholder="保险医生英文名" />
</a-form-model-item>
</a-col>
......@@ -65,7 +65,7 @@ import BurtPagination from "@/components/CUSTOMER/pagation";
const columns = [
{ title: "序号", dataIndex: "id",width: 120},
{ title: "保险公司名称",dataIndex: "longName", ellipsis: true, scopedSlots: { customRender: "longName" },width: 130},
{ title: "医生英文名", dataIndex: "englishName",ellipsis: true,scopedSlots: { customRender: "englishName" },width: 105},
{ title: "保险公司英文名", dataIndex: "englishName",ellipsis: true,scopedSlots: { customRender: "englishName" },width: 105},
{ title: "联系电话", dataIndex: "contactPhone", scopedSlots: { customRender: "contactPhone" }, width: 125},
{ title: "联系地址", dataIndex: "address", ellipsis: true, scopedSlots: { customRender: "address" }, width: 180},
{ title: "Protal链接", dataIndex: "portalUrl", ellipsis: true, scopedSlots: { customRender: "portalUrl" }, width: 155 },
......@@ -134,22 +134,9 @@ export default {
},
//新增保险公司
addCompany(){
this.$apis.CREATEPAY({
...this.detailObj
this.$router.push({
path: '/info/companyDetail'
})
.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) {
......
......@@ -16,6 +16,8 @@ export default {
id: '', //公司id
detailObj: { //公司详情
discountList: [], //折扣列表
claimApplicationTemplate: [],
authApplicationTemplate: []
}
}
},
......@@ -25,7 +27,9 @@ export default {
},
created(){
this.id = this.$route.query.id;
this.getDetail();
if(this.id){
this.getDetail();
}
},
methods: {
//获取详细信息
......@@ -35,7 +39,32 @@ export default {
})
.then((res) => {
if (res.returnCode == "0000") {
this.detailObj = res.content || {};
let data = res.content || {};
if(data.claimApplicationTemplate){
data.claimApplicationTemplate = [
{
uid: Math.random()*10000,
name: data.claimApplicationTemplate.slice(data.claimApplicationTemplate.lastIndexOf('/')+1),
status: 'done',
url: data.claimApplicationTemplate,
}
]
}else{
data.claimApplicationTemplate = [];
}
if(data.authApplicationTemplate){
data.authApplicationTemplate = [
{
uid: Math.random()*10000,
name: data.authApplicationTemplate.slice(data.authApplicationTemplate.lastIndexOf('/')+1),
status: 'done',
url: data.authApplicationTemplate,
}
]
}else{
data.authApplicationTemplate = [];
}
this.detailObj = data;
} else {
this.$message.error(res.returnMsg);
}
......
......@@ -4,10 +4,10 @@
<div class="flex btns-div">
<div class="title-div">折扣信息</div>
<div class="flex btns">
<a-button type="primary" icon="plus" @click.stop="editEvt({})">新增</a-button>
<a-button type="primary">医科理赔申请书模版</a-button>
<a-button type="primary" icon="plus" @click.stop="editEvt({})">新增折扣信息</a-button>
<!-- <a-button type="primary">医科理赔申请书模版</a-button>
<a-button type="primary">齿科理赔申请书模版</a-button>
<a-button type="primary">预授权申请书模版</a-button>
<a-button type="primary">预授权申请书模版</a-button> -->
</div>
</div>
<a-table :columns="columns" :data-source="tableList" :scroll="{ x: 'max-content' }" :pagination="false" >
......@@ -42,8 +42,8 @@
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="折扣比例" prop="ratio">
<a-input v-model.trim="editFormObj.ratio" placeholder="折扣比例" type="number" :min="0" />
<a-form-model-item label="折扣比例%" prop="ratio">
<a-input v-model.trim="editFormObj.ratio" placeholder="折扣比例%" type="number" :min="0" />
</a-form-model-item>
</a-col>
<a-col :xs="24">
......@@ -62,9 +62,9 @@ import BurtPagination from "@/components/CUSTOMER/pagation";
const columns = [
{ title: "序号", dataIndex: "id", width: 205},
{ title: "项目",dataIndex: "benefits", ellipsis: true, scopedSlots: { customRender: "benefits" },width: 310, },
{ title: "折扣比例", dataIndex: "ratio", ellipsis: true, scopedSlots: { customRender: "ratio" },width: 190,},
{ title: "折扣比例%", dataIndex: "ratio", ellipsis: true, scopedSlots: { customRender: "ratio" },width: 190,},
{ title: "备注", dataIndex: "remark", scopedSlots: { customRender: "remark" }, width: 180,},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px" },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px", align: "center" },
];
export default {
props: {
......
<template>
<div class="info-div">
<a-form-model ref="form" layout="vertical">
<Goback title="保险公司详情" />
<a-form-model ref="form" layout="vertical" :model="detailObj" :rules="formRules">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司名称">
<a-form-model-item label="保险公司名称" prop="longName">
<a-input v-model="detailObj.longName" placeholder="保险公司名称" />
</a-form-model-item>
</a-col>
......@@ -14,7 +15,7 @@
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="国家">
<a-select v-model="detailObj.country" placeholder="请选择">
<a-select v-model="detailObj.country" placeholder="请选择" showSearch>
<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>
......@@ -22,7 +23,7 @@
</a-row>
<a-row :gutter="30">
<a-col :lg="3" :sm="12">
<a-form-model-item label="有效">
<a-form-model-item label="有效" prop="status">
<a-select v-model="detailObj.status" placeholder="请选择">
<a-select-option value="1">有效</a-select-option>
<a-select-option value="2">无效</a-select-option>
......@@ -44,7 +45,7 @@
</a-row>
</a-col>
<a-col :lg="10" :sm="12">
<a-form-model-item label="保险公司地址">
<a-form-model-item label="保险公司地址" prop="address">
<a-input v-model="detailObj.address" placeholder="保险公司地址" />
</a-form-model-item>
</a-col>
......@@ -59,12 +60,12 @@
</a-form-model-item>
</a-col>
<a-col :lg="4" :sm="12">
<a-form-model-item label="保险公司联系电话">
<a-form-model-item label="保险公司联系电话" prop="contactPhone">
<a-input v-model="detailObj.contactPhone" placeholder="保险公司联系电话"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="客服电话">
<a-form-model-item label="客服电话" prop="customerTel">
<a-input v-model="detailObj.customerTel" placeholder="客服电话" />
</a-form-model-item>
</a-col>
......@@ -74,7 +75,7 @@
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司邮件地址">
<a-form-model-item label="保险公司邮件地址" prop="email">
<a-input v-model="detailObj.email" placeholder="保险公司邮件地址" />
</a-form-model-item>
</a-col>
......@@ -108,12 +109,32 @@
<a-input type="password" v-model="detailObj.loginPwd" placeholder="密码" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="理赔申请书模板">
<a-upload name="file" :multiple="false" accept="application/pdf" :showUploadList="true"
:fileList="detailObj.claimApplicationTemplate"
:customRequest="file => uploadPdf(file, 1)"
:remove="(file)=> removeFile(file, 1)">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传模板 </a-button>
</a-upload>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="预授权申请书模板">
<a-upload name="file" :multiple="false" accept="application/pdf" :showUploadList="true"
:fileList="detailObj.authApplicationTemplate"
:customRequest="file => uploadPdf(file, 2)"
:remove="(file)=> removeFile(file, 2)">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传模板 </a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :sm="24" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" @click="handlerSava">
<Icon name="ssibaocun" :size="14" />保存
<Icon :name="detailObj.id?'ssibaocun':'ssiadd'" :size="14" />{{detailObj.id?'保存':'新建'}}
</a-button>
</a-form-model-item>
</a-col>
......@@ -123,19 +144,49 @@
</template>
<script>
import Goback from "@/components/CUSTOMER/goback";
import moment from "moment";
export default {
props: {
detailObj: {}
detailObj: {
claimApplicationTemplate: [],
authApplicationTemplate: []
}
},
data() {
return {
countyList: [],
formRules: {
longName: [{ required: true, message: "请输入保险公司名称", trigger: "blur" }],
status: [{ required: true, message: "请选择是否有效", trigger: "change" }],
address: [{ required: true, message: "请输入保险公司地址", trigger: "blur" }],
contactPhone: [{ required: true, message: "请输入保险公司联系电话", trigger: "blur" }],
customerTel: [{ required: true, message: "请输入客服电话", trigger: "blur" }],
email: [{ required: true, message: "请输入保险公司邮件地址", trigger: "blur" }],
},
}
},
components: {
Goback,
},
created(){
this.getRefcdByRefgrp();
},
methods: {
comfileList1(){
if(this.detailObj.claimApplicationTemplate){
return [
{
uid: Math.random()*10000,
name: this.detailObj.claimApplicationTemplate.slice(this.detailObj.claimApplicationTemplate.lastIndexOf('/')+1),
status: 'done',
url: this.detailObj.claimApplicationTemplate,
}
]
}else{
return [];
}
},
// 获取国家列表
getRefcdByRefgrp() {
this.$apis.GETREFCDBYREFGRP({
......@@ -147,25 +198,74 @@ export default {
},
//新建保存
handlerSava(){
this.$apis.PAYORUPDATE({
...this.detailObj
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("保存成功");
} else {
this.$message.error(res.returnMsg);
this.$refs.form.validate((valid) => {
if (valid) {
let formData = {
...this.detailObj,
startDate: this.detailObj.startDate?moment(this.detailObj.startDate).format('YYYY-MM-DD HH:mm:ss'):'',
endDate: this.detailObj.endDate?moment(this.detailObj.endDate).format('YYYY-MM-DD HH:mm:ss'):'',
claimApplicationTemplate: this.detailObj.claimApplicationTemplate.length>0? this.detailObj.claimApplicationTemplate[0].url: '',
authApplicationTemplate: this.detailObj.authApplicationTemplate.length>0? this.detailObj.authApplicationTemplate[0].url: '',
}
let api = this.detailObj.id? 'PAYORUPDATE': 'CREATEPAY';
this.$apis[api](formData)
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("保存成功");
if(!this.detailObj.id){
this.$router.replace({
path: '/info/companyDetail',
query: {
id: res.content
}
})
}
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
removeFile(file,type=1){
return new Promise((resolve)=>{
if(type==1){
this.detailObj.claimApplicationTemplate = [];
}else{
this.detailObj.authApplicationTemplate = [];
}
resolve();
});
},
//上传pdf
uploadPdf(fileData, type=1){
let formData = new FormData();
formData.append("file", fileData.file);
this.$apis.UPLOADIMG(formData)
.then((res)=>{
fileData.onSuccess();
let fileList = [
{
uid: Math.random()*10000,
name: res.title,
status: 'done',
url: res.url,
}
]
if(type==1){
this.detailObj.claimApplicationTemplate = fileList;
}else{
this.detailObj.authApplicationTemplate = fileList;
}
this.$forceUpdate();
})
}
},
};
</script>
<style lang="less" scoped>
.info-div{
margin-top: 16px;
}
.title-div {
line-height: 56px;
color: #252631;
......
<template>
<div class="info-doctor">
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false">
<template slot="specialtyList" slot-scope="text, record">
<span>{{ filterSpecialty(record.specialtyList) }}</span>
</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="getDoctorList" />
<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">
<a-row :gutter="30">
<a-col :lg="12" :sm="24">
<a-form-model-item label="工号" prop="doctorCode">
<a-input type="number" :min="0" v-model.trim="editFormObj.doctorCode" placeholder="工号" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="医生姓名" prop="doctorDesc">
<a-input v-model.trim="editFormObj.doctorDesc" placeholder="医生姓名" />
</a-form-model-item>
</a-col>
<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="language">
<a-select v-model="editFormObj.language" placeholder="请选择" mode="multiple" showSearch allowClear>
<a-select-option v-for="(item) in languageList" :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" 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>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
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: "language", ellipsis: true, width: 120 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", },
];
export default{
props: {
detailObj: {
default: {}
}
},
data(){
return {
dialogShow: false,
columns,
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
specialtyList: [], //科室列表
specialtyObj: {}, //科室对象
countyList: [],
languageList: [],
editFormObj: {
id: "",
doctorCode: '',
doctorDesc: '',
doctorDescLang1: '',
country: '',
language: [],
specialtyList: [],
},
editRules: {
specialtyList: [
{ required: true, message: "请选择", trigger: "change" },
],
},
}
},
components: {
BurtPagination,
},
async created() {
this.getSpecialtyList();
this.getDoctorList();
this.getRefcdByRefgrp();
},
methods: {
filterSpecialty(val) {
let txt = (val || []).map((item) => {
return this.specialtyObj[item] || "";
});
return txt.join(",");
},
//获取科室
getSpecialtyList() {
this.$apis.GETSPECIALTYLIST().then((res) => {
if (res.returnCode == "0000") {
this.specialtyList = res.content || [];
(res.content || []).forEach((item) => {
this.specialtyObj[item.id] = item.specialtyDesc;
});
} else {
this.$message.error(res.returnMsg);
}
});
},
getRefcdByRefgrp() {
// 获取国家列表
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "COUNTRY_MAPPING"
}).then((res) => {
this.countyList = res.content || [];
});
// 获取语言列表
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "LANGUAGE_TYPE"
}).then((res) => {
this.languageList = res.content || [];
});
},
//获取医生列表
getDoctorList() {
this.$apis
.DOCTORLIST({
providerId: this.detailObj.id,
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = (content.list || []).map((item) => {
let specialtyList = (item.specialtyList || []).map(
(innerItem) => {
return innerItem.specialtyId;
}
);
return {
...item,
specialtyList: specialtyList || [],
};
});
} else {
this.$message.error(res.returnMsg);
}
});
},
editEvt(record) {
this.editFormObj = {
id: record.id || "",
doctorCode: record.doctorCode || "",
doctorDesc: record.doctorDesc || "",
doctorDescLang1: record.doctorDescLang1 || "",
country: record.country || "",
language: record.language? record.language.split(','): [],
specialtyList: record.specialtyList || [],
};
this.dialogShow = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis
.DOCTORUPDATE({
...this.editFormObj,
language: this.editFormObj.language.join(','),
specialtyList: this.editFormObj.specialtyList.map((item) => {
return {
specialtyId: item,
};
}),
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this.getDoctorList();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
//删除医生
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis
.DOCTORDELETE({
id: this.dataList[index].id,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
});
},
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div class="info-special">
<div class="btn-div">
<a-button type="primary" @click="addNewEvt({})">
<Icon name="ssiadd" :size="14" />新建科室
</a-button>
</div>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false">
<template slot="coverageMasterList" slot-scope="text">
<span>{{ filterCoverage(text) }}</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="addNewEvt(record)">修改</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" />
<a-modal :title="editFormObj.id?'编辑':'新建'" :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="specialtyDesc">
<a-input v-model.trim="editFormObj.specialtyDesc" placeholder="科室名称" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24">
<a-form-model-item label="责任列表" prop="coverageCode">
<a-select v-model="editFormObj.coverageCode" placeholder="请选择责任" search allowClear mode="multiple">
<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-row>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
const columns = [
{ title: "序号", dataIndex: "id", ellipsis: true, width: 150 },
{ title: "科室名称", dataIndex: "specialtyDesc", ellipsis: true, width: 150 },
{ title: "科室编号", dataIndex: "specialtyCode", ellipsis: true, width: 150 },
{ title: "责任", dataIndex: "coverageMasterList", ellipsis: true, scopedSlots: { customRender: "coverageMasterList" }, width: 155,},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", },
];
export default{
data(){
return {
dialogShow: false,
columns,
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
coverageCode: [], //责任列表
editFormObj: {
id: '',
specialtyDesc: '',
coverageCode: []
},
editRules: {
specialtyDesc: [{ required: true, message: "请输入科室名称", trigger: "blur" }, ]
}
}
},
components: {
BurtPagination
},
created(){
this.getData()
this.getCoverageCode();
},
methods: {
filterCoverage(val) {
let txt = (val || []).map((item) => {
return item.coverageDesc || "";
});
return txt.join("");
},
getData(){
this.$apis.SPECIALTYLISTPAGE({
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = (content.list || []).map((item) => {
let coverageCode = (item.coverageMasterList || []).map(item => item.coverageCode);
return {
...item,
coverageCode
};
});
console.log(this.dataList, 111)
} else {
this.$message.error(res.returnMsg);
}
});
},
//获取责任列表
getCoverageCode() {
this.$apis.GETCOVERAGECODE().then((res) => {
this.coverageCode = res.content || [];
});
},
addNewEvt(record){
this.dialogShow = true;
this.$nextTick(()=>{
this.$refs.editForm.resetFields();
this.editFormObj = {
id: record.id || "",
specialtyDesc: record.specialtyDesc || "",
coverageCode: record.coverageCode || [],
};
})
},
//新建/编辑
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
let api = this.editFormObj.id? 'SPECIALTYUPDATE': 'SPECIALTYCREATE';
this.$apis[api]({
...this.editFormObj,
coverageMasterList: this.editFormObj.coverageCode.map(item => {
return {
coverageCode: item
}
})
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success(this.editFormObj.id?"编辑成功":'新建成功');
this.dialogShow = false;
this.getData();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
//删除科室
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis.SPECIALTYDELETE({
id: this.dataList[index].id,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
});
},
}
}
</script>
<style lang="less" scoped>
.btn-div{
margin-bottom: 10px;
}
</style>
\ No newline at end of file
<template>
<div class="white_bg burt-container">
<div class="title-div">申请日期</div>
<a-form-model ref="form" layout="vertical">
<a-form-model ref="form" layout="vertical" :model="detailObj" :rules="formRules">
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="医疗机构名称">
<a-form-model-item label="医疗机构名称" prop="longName">
<a-input v-model="detailObj.longName" placeholder="医疗机构名称" />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="医疗机构英文名">
<a-form-model-item label="医疗机构英文名" prop="englishName">
<a-input v-model="detailObj.englishName" placeholder="医疗机构英文名" />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="联系电话">
<a-form-model-item label="联系电话" prop="telNo1">
<a-input v-model="detailObj.telNo1" placeholder="请输入联系电话" />
</a-form-model-item>
</a-col>
<a-col :lg="10" :sm="12">
<a-form-model-item label="诊所地址(中文)">
<a-form-model-item label="诊所地址(中文)" prop="address">
<a-input v-model="detailObj.address" placeholder="诊所地址(中文)" />
</a-form-model-item>
</a-col>
......@@ -83,6 +82,13 @@
<a-input v-model="detailObj.telegraphicTransferCode" type="number" placeholder="Swift Code 国际电汇代码" />
</a-form-model-item>
</a-col>
<a-col :sm="24" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" @click="saveEvt">
<Icon name="ssibaocun" :size="14" />保存
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<!-- 暂时不用
......@@ -91,129 +97,55 @@
<a-button type="primary">上传价目表文件</a-button>
</a-upload>
</div> -->
<div class="title-div">医生信息</div>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false">
<template slot="specialtyList" slot-scope="text, record">
<span>{{ filterSpecialty(record.specialtyList) }}</span>
</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="getDoctorList" />
<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">
<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" 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>
<a-tabs type="card" v-model="activeKey" @change="paneChange">
<a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title">
<component v-if="detailObj.id && pane.show" :detailObj="detailObj" :is="pane.content"></component>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
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: "language", ellipsis: true, width: 120 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", },
];
import InfoDoctor from './components/infoDoctor';
import InfoSpecial from './components/infoSpecial';
export default {
data() {
return {
dialogShow: false,
columns,
dataList: [],
detailObj: {}, //详细信息
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
specialtyList: [], //科室列表
specialtyObj: {}, //科室对象
countyList: [],
editFormObj: {
id: "",
doctorDescLang1: '',
country: '',
specialtyList: [],
},
editRules: {
specialtyList: [
{ required: true, message: "请选择", trigger: "change" },
],
formRules: {
longName: [{ required: true, message: "请输入医疗机构名称", trigger: "blur" }],
englishName: [{ required: true, message: "请输入医疗机构英文名", trigger: "blur" }],
telNo1: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
address: [{ required: true, message: "请输入诊所地址(中文)", trigger: "blur" }]
},
activeKey: '0',
panes: [
{
title: "医生信息",
key: '0',
content: 'InfoDoctor',
show: true
},{
title: "科室管理",
key: '1',
content: 'InfoSpecial',
show: false
},
]
};
},
components: {
BurtPagination,
InfoDoctor, InfoSpecial
},
async created() {
this.getSpecialtyList();
await this.getDetail();
this.getDoctorList();
this.getRefcdByRefgrp();
this.getDetail();
},
methods: {
filterSpecialty(val) {
let txt = (val || []).map((item) => {
return this.specialtyObj[item] || "";
});
return txt.join(",");
},
handlerSearch() {
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) => {
if (res.returnCode == "0000") {
this.specialtyList = res.content || [];
(res.content || []).forEach((item) => {
this.specialtyObj[item.id] = item.specialtyDesc;
});
} else {
this.$message.error(res.returnMsg);
}
paneChange(){
this.panes.forEach((item)=>{
item.show = false;
});
this.panes[Number(this.activeKey)].show = true;
},
//获取详细信息
getDetail() {
......@@ -229,91 +161,22 @@ export default {
});
});
},
//获取医生列表
getDoctorList() {
this.$apis
.DOCTORLIST({
providerId: this.detailObj.id,
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
})
.then((res) => {
if (res.returnCode == "0000") {
let content = res.content || {};
this.pagination.total = content.total || 0;
this.dataList = (content.list || []).map((item) => {
let specialtyList = (item.specialtyList || []).map(
(innerItem) => {
return innerItem.specialtyId;
}
);
return {
...item,
specialtyList: specialtyList || [],
};
});
} else {
this.$message.error(res.returnMsg);
}
});
},
editEvt(record) {
this.editFormObj = {
id: record.id || "",
doctorDescLang1: record.doctorDescLang1 || "",
country: record.country || "",
specialtyList: record.specialtyList || [],
};
this.dialogShow = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis
.DOCTORUPDATE({
...this.editFormObj,
specialtyList: this.editFormObj.specialtyList.map((item) => {
return {
specialtyId: item,
};
}),
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("编辑成功");
this.dialogShow = false;
this.getDoctorList();
} else {
this.$message.error(res.returnMsg);
}
});
//保存
saveEvt(){
this.$refs.form.validate((valid) => {
if(valid){
this.$apis.PROVIDERUPDATE({...this.detailObj})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("保存成功");
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
//删除医生
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确定",
cancelText: "取消",
onOk: () => {
this.$apis
.DOCTORDELETE({
id: this.dataList[index].id,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
});
},
},
};
</script>
......
......@@ -2,15 +2,18 @@
<div class="header-container">
<div class="logo">{{title}}</div>
<div class="user-info">
<p class="name"><Icon :name="'ssicb'" :size="24" />{{ userInfo.name }}</p>
<p class="flex name">
<Icon :name="'ssicb'" :size="24" />
{{ userInfo.name }}
</p>
<a-dropdown
class="avator"
class="flex avator"
:getPopupContainer="getPopupContainer"
placement="bottomRight"
>
<div @click="(e) => e.preventDefault()">
<img v-if="userInfo.avator" :src="userInfo.avator" alt="avator" />
<Icon v-else :name="'ssiuser'" :size="36" />
<Icon v-else :name="'ssiuser'" :size="24" />
</div>
<a-menu slot="overlay">
<a-menu-item key="1" @click="loginOut"> 退出登录 </a-menu-item>
......@@ -41,6 +44,7 @@ export default {
loginOut() {
this.$apis.LOGINOUT().then((res) => {
if (res.returnCode) {
this.$store.commit("common/setMenuStack", []);
this.$router.push("/login");
} else {
this.$message.error(res.returnMsg || "退出失败");
......@@ -52,6 +56,10 @@ export default {
</script>
<style lang="less">
.flex{
display: flex;
align-items: center;
}
.header-container {
position: fixed;
width: 100%;
......
function SubMenu(h, menu, selectMenu) {
let icon;
let icon, icon_arrow;
if (menu.icon) {
// 菜单激活的时候图标要变颜色 图标名称要处理好 应该是在默认的基础上加个'_active'
const iconName =
selectMenu.indexOf(menu.path) < 0 ? menu.icon : menu.icon + "_active";
icon = <Icon name={iconName} size={18} />;
}
if(menu.children && menu.children.length>0){
icon_arrow = <Icon class="arrow" name={selectMenu.indexOf(menu.path) < 0 ?'ssixiangyou': 'ssixiangyou_active'} size={14} />;
}
console.log(menu, icon_arrow,111)
return (
<a-sub-menu key={menu.path}>
<span slot="title" class="submenu-title-wrapper">
{icon}
{menu.title}
{icon_arrow}
</span>
{menu.children.map((item) => {
return createMenu.call(this, h, item);
......
......@@ -8,8 +8,8 @@
:to="item.path"
>
{{ item.title }}
<Icon
@click="closeMenu(index)"
<Icon v-if="menuStack.length>1"
@click="(e)=>closeMenu(e, index)"
:name="isVisit(item.path) ? 'ssiclose_active' : 'ssiclose'"
:size="16"
/>
......@@ -31,7 +31,8 @@ export default {
const path = this.$route.path;
return path === val;
},
closeMenu(index) {
closeMenu(e, index) {
e.stopPropagation();
const menuStack = JSON.parse(JSON.stringify(this.menuStack));
const isVisit = this.isVisit(menuStack[index].path);
menuStack.splice(index, 1);
......
......@@ -35,6 +35,14 @@ export default {
};
</script>
<style>
.icon-class.arrow{
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
</style>
<style lang="less" scoped>
.menu-layout {
background-color: #f8fafb;
......@@ -59,6 +67,9 @@ export default {
height: calc(100vh - 68px);
overflow: auto;
background-color: #fff;
li{
position: relative;
}
}
}
</style>
<template>
<div class="white_bg burt-container">
<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 show-search v-model="form.mrnNo" :disabled="!!id"
placeholder="病历号" :filter-option="false"
@search="getPatienList"
@change="patienListChange">
<a-select-option v-for="item in patientList" :key="item.id" :value="item.mrnNo">{{item.mrnNo}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear :disabled="!!id"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司">
<a-select v-model="form.payorCode" placeholder="请选择保险公司" :disabled="!!id"
@change="_getPatientPolicyList">
<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="保单号码">
<a-select v-model="form.policyNo" placeholder="请选择保单号码" allowClear :disabled="!!id">
<a-select-option v-for="item in PolicyOptions" :key="item.id" :value="item.policyNo">
{{ item.policyNo }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="主治医生">
<a-select v-model="form.doctorCode" placeholder="请选择主治医生" :disabled="!!id"
showSearch :filter-option="filterOption" optionFilterProp="label">
<a-select-option v-for="item in doctorOptions" :key="item.doctorCode" :value="item.doctorCode"
:label="item.doctorDesc+item.doctorCode">
{{ item.doctorDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="预授权项目">
<a-select v-model="form.authProject" placeholder="请选择预授权项目" allowClear :disabled="!!id">
<a-select-option v-for="(item) in ProjectList" :key="item.id" :value="item.refcd">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="预计治疗时间">
<a-date-picker allow-clear v-model="form.authorDate" placeholder="请选择预计治疗时间" :disabled="!!id"
value-format="YYYY-MM-DD 00:00:00" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="预计治疗费用">
<div class="flex input-div">
<a-input v-model="form.authorAmount" placeholder="请输入费用" type="number" :min="0" :disabled="!!id" />
<a-select v-model="form.authorAmountUnit" style="width:90px;" :disabled="!!id">
<a-select-option v-for="(item) in MoneyUnitOptions" :key="item.value" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</div>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="初诊日期">
<a-date-picker allow-clear v-model="form.firstVisitDate" placeholder="请选择初诊日期" :disabled="!!id"
value-format="YYYY-MM-DD 00:00:00" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="治疗目的">
<a-select v-model="form.purpose" placeholder="请选择治疗目的" :disabled="!!id">
<a-select-option value="01">疾病</a-select-option>
<a-select-option value="02">事故</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="治疗方案">
<a-select v-model="form.treatmentPlan" placeholder="请选择治疗方案" :disabled="!!id">
<a-select-option v-for="(item,i) in treatmentPlanList" :key="i" :value="item.refcd">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="诊断">
<a-input v-model="form.diagnosis" placeholder="请输入诊断" allow-clear :disabled="!!id"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="病历资料">
<a-upload name="file" :multiple="false" :showUploadList="true" :disabled="!!id"
:fileList="form.medicalRecord"
:customRequest="(file)=>uploadFile(file, 1)"
:beforeUpload="()=>beforeUpload(1)"
:remove="(file)=>removeFile(file, 1)">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传病历 </a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
<!--费用明细-->
<a-row>
<FeeDetail :id="id" ref="feeDetail" :ProjectList="ProjectList" @authorizeItemVoListChange="authorizeItemVoListChange" />
</a-row>
<a-row :gutter="30" class="footer-body">
<a-col :lg="6" :sm="12">
<a-form-model-item label="申请状态">
<a-select v-model="form.authorStatus" placeholder="请选择申请状态">
<a-select-option v-for="(item) in ApplyStatusOptions" :key="item.value" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="批准次数/金额">
<a-input v-model="form.approvalAmount" placeholder="请输入批准次数/金额" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="拒绝原因">
<a-select v-model="form.rejectReason" placeholder="请选择拒绝原因">
<a-select-option v-for="(item,i) in rejectReason" :key="i" :value="item.refcd">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="补充材料">
<a-upload name="file" :multiple="false" :showUploadList="true"
:fileList="form.supplementalResult"
:customRequest="(file)=>uploadFile(file, 2)"
:beforeUpload="()=>beforeUpload(2)"
:remove="(file)=>removeFile(file, 2)">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传材料</a-button>
</a-upload>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :lg="24" :sm="12" class="none-label">
<a-form-model-item label="button">
<a-button type="primary" @click="saveEvt" :loading="loading">
<Icon :name="id?'ssibaocun':'ssiadd'" :size="14" />{{id? '保存预授权': '新建预授权'}}
</a-button>
<a-button type="primary" class="mar-left10" v-if="id" :loading="loading2"
@click="sendEmailEvt">
<Icon name="ssiemail" :size="14" />邮件发送
</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</div>
</template>
<script>
import {MoneyUnitOptions,ApplyStatusOptions} from '@/utils/utilsdictOptions';
import FeeDetail from './components/feeDetail.vue';
import debounce from 'lodash/debounce';
import moment from 'moment';
import { mapState } from "vuex"
export default{
data(){
this.lastFetchId = 0;
this.getPatienList = debounce(this.getPatienList, 800);
return{
loading: false,
loading2: false,
MoneyUnitOptions,
ApplyStatusOptions,
id: '', //预授权id
form: {
mrnNo: '',
patientId: '',
payorCode: '',
policyNo: '',
firstEnrollmentTime: '',
authorAmountUnit: '01',
medicalRecord: [], //病历资料
supplementalResult: [], //补充材料
authorizeItemVoList: [], //预授权费用数据
},
fetching: false,
patientList: [], //远程搜到的客户信息
companyOptions: [], //保险公司
PolicyOptions: [], //保单号码
doctorOptions: [], //医生列表
ProjectList: [], //预授权项目
rejectReason: [], //拒绝原因
treatmentPlanList: [], //治疗方案
}
},
components: {
FeeDetail,
},
computed: {
...mapState({
userInfo: (state) => state.common.userInfo
})
},
created(){
this.id = this.$route.query.id || "";
this.getRefcdByRefgrp();
this._getDoctorListNoPage();//获取看诊医生下拉选项
if(this.id){
this.getDetail();
}
},
methods: {
init(){
this.form = {
mrnNo: '',
patientId: '',
payorCode: '',
policyNo: '',
firstEnrollmentTime: '',
authorAmountUnit: '01',
medicalRecord: [], //病历资料
supplementalResult: [], //补充材料
authorizeItemVoList: [], //预授权费用数据
}
},
filterOption(val, option){
let item = option.componentOptions.propsData; //propsData里面可以可以拿到lebel和value的值
return item.label.toLowerCase().indexOf(val.toLowerCase()) >= 0
},
//预授权费用数据变更
authorizeItemVoListChange(data){
this.form.authorizeItemVoList = data;
},
//获取预授权详情
getDetail(){
this.$apis.AUTHORIZEDETAIL({
id: this.id
})
.then((res)=>{
if (res.returnCode === "0000") {
let content = res.content || {}
this.form = {
...content,
medicalRecord: (content.medicalRecord || []).map((item)=>{
return {
uid: item.id,
name: item.fileName,
status: 'done',
url: item.fileUrl,
}
}),
supplementalResult: (content.supplementalResult || []).map((item)=>{
return {
uid: item.id,
name: item.fileName,
status: 'done',
url: item.fileUrl,
}
}),
authorizeItemVoList: content.authorizeItemVoList || [],
};
this.$refs.feeDetail.dataList = this.form.authorizeItemVoList;
this._getCompanyOptions();
}else{
this.$message.success(res.returnMsg);
}
})
},
// 获取看诊医生下拉选项
_getDoctorListNoPage(){
this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => {
if (res.returnCode === "0000") {
this.doctorOptions = res.content || [];
}else{
this.$message.success(res.returnMsg);
}
});
},
getPatienList(value){
this.lastFetchId += 1;
this.fetching = true;
const fetchId = this.lastFetchId;
this.$apis.PATIENTLISTNOPAGE({
mrnNo: value
})
.then((res)=>{
if (fetchId !== this.lastFetchId) {
return;
}
if(res.returnCode == '0000'){
this.patientList = res.content || [];
}
this.fetching = false;
})
},
patienListChange(){
this.form.payorCode = "";
this.form.policyNo = "";
let itemObj = this.patientList.find((item)=>{
return this.form.mrnNo == item.mrnNo;
}) || {};
this.form.patientId = itemObj.id;
this.form.patientName = itemObj.patientName;
this.form.firstEnrollmentTime = itemObj.firstEnrollmentTime? moment(itemObj.firstEnrollmentTime).format('YYYY-MM-DD 00:00:00'): '';
this._getCompanyOptions()
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.PATIENTPAYORLIST({
patientId: this.form.patientId
}).then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取保单号码下拉选项
_getPatientPolicyList() {
this.$apis.PATIENTPOLICYLIST({
patientId: this.form.patientId,
payorCode: this.form.payorId,
}).then((res) => {
this.PolicyOptions = res.content || [];
});
},
// 获取码表
getRefcdByRefgrp() {
//预授权项目
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "AUTH_PROJECT"
}).then((res) => {
this.ProjectList = res.content || [];
});
//拒绝原因
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "REJECT_REASON"
}).then((res) => {
this.rejectReason = res.content || [];
});
//治疗方案
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "TREATMENT_PLAN"
}).then((res) => {
this.treatmentPlanList = res.content || [];
});
},
//上传之前
beforeUpload(type){
let len = type==1? this.form.medicalRecord.length: this.form.supplementalResult.length;
if(len >= 5){
this.$message.warning('不能超过5个文件');
return false;
}
return true;
},
/**删除文件
* type 1:上传病历 2:补充材料
* **/
removeFile(file, type){
if(type == 2){
let index;
this.form.supplementalResult.forEach((item, i) => {
if (item.uid == file.uid) {
index = i;
}
});
this.form.supplementalResult.splice(index, 1);
}else{
let index;
this.form.medicalRecord.forEach((item, i) => {
if (item.uid == file.uid) {
index = i;
}
});
this.form.medicalRecord.splice(index, 1);
}
return true;
},
/**上传文件
* type 1:上传病历 2:补充材料
* **/
uploadFile(fileData, type){
let formData = new FormData();
formData.append("file", fileData.file);
this.$apis.UPLOADIMG(formData)
.then((res)=>{
fileData.onSuccess();
let tmp = {
uid: Math.random()*10000,
name: res.title,
status: 'done',
url: res.url,
}
if(type==2){
this.form.supplementalResult.push(tmp);
}else{
this.form.medicalRecord.push(tmp);
}
this.$forceUpdate();
})
},
//保存
saveEvt(){
this.loading = true;
let api = this.id? 'AUTHORIZEUPDATE': 'AUTHORIZECREATE';
this.$apis[api]({
...this.form,
medicalRecord: this.form.medicalRecord.map((item)=>{
return {
fileName: item.name,
fileUrl: item.url,
}
}),
supplementalResult: this.form.supplementalResult.map((item)=>{
return {
fileName: item.name,
fileUrl: item.url,
}
})
})
.then((res)=>{
this.loading = false;
if(res.returnCode == '0000'){
this.$message.success('保存成功');
if(!this.id){
this.$refs.feeDetail.dataList = [];
this.init();
}
}else{
this.$message.warning(res.returnMsg);
}
})
},
//发送邮件
sendEmailEvt(){
this.loading2 = true;
this.$apis.AUTHORIZESENDEMAIL({
id: this.id
})
.then((res)=>{
this.loading2 = false;
if(res.returnCode == '0000'){
this.$message.success('发送成功');
}else{
this.$message.warning(res.returnMsg);
}
})
}
}
}
</script>
<style lang="less" scoped>
.footer-body{
margin-top: 25px;
}
</style>
\ No newline at end of file
<template>
<!--预授权费用数据-->
<a-modal title="预授权费用数据" :visible="dialogShow1" width="900px" :maskClosable="false"
:footer="null" @cancel="dialogShow1 = false">
<a-table :columns="columns" :data-source="dataList" :pagination="false">
<template slot="title">
<div class="flex header-div">
<div class="flex left-div">
<div class="item">
<span>批准次数/金额: </span>
<span class="val money">{{detailObj.approvalAmount}}</span>
</div>
<div class="item">
<span>是否已使用: </span>
<span class="val">{{detailObj.isUse}}</span>
</div>
</div>
<a-button type="primary" @click="editEvt({})">
<Icon name="ssiadd" :size="14" />添 加
</a-button>
</div>
</template>
<template slot="userTime" slot-scope="text">
{{text? moment(text).format('YYYY-MM-DD'): ''}}
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(index)">修改</a-button>
<!-- <a-button v-if="record.eobNo" type="link" class="danger" @click.stop="delRecord(index)">删除</a-button> -->
</template>
</a-table>
<a-modal title="编辑" :visible="dialogShow2" width="60%" :maskClosable="false"
okText="确定" cancelText="取消"
@ok="handleEditOK" @cancel="dialogShow2 = 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="userd">
<a-input type="number" v-model.trim="editFormObj.userd" placeholder="次数/金额" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="日期" prop="userTime">
<a-date-picker allow-clear v-model="editFormObj.userTime" placeholder="请选择日期" value-format="YYYY-MM-DD 00:00:00" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="剩余次数/金额" prop="surplus">
<a-input type="number" v-model.trim="editFormObj.surplus" placeholder="剩余次数/金额" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</a-modal>
</template>
<script>
import moment from 'moment';
export default{
data(){
const columns = [
{ title: "次数/金额", dataIndex: "userd", align: 'center' },
{ title: "日期", dataIndex: "userTime",scopedSlots: { customRender: "userTime" }, align: 'center'},
{ title: "剩余次数/金额", dataIndex: "surplus", align: 'center'},
];
return{
columns,
dialogShow1: false,
dialogShow2: false,
detailObj: {},
dataList: [],
editFormObj: {
userd: '',
userTime: '',
surplus: ''
},
editRules: {
userd: [{ required: true, message: "请输入", trigger: "blur" }],
userTime: [{ required: true, message: "请选择", trigger: "change" }],
surplus: [{ required: true, message: "请输入", trigger: "blur" }],
},
}
},
created(){
},
methods: {
moment,
showModal1(data){
this.dialogShow1 = true;
this.detailObj = data || {};
this.getData();
},
getData(){
this.$apis.AUTHORIZEUSELIST({
authorizeId: this.detailObj.id
})
.then((res)=>{
if (res.returnCode == "0000") {
this.dataList = res.content || [];
} else {
this.$message.error(res.returnMsg);
}
});
},
editEvt(record){
this.editFormObj = {
userd: record.userd || "",
userTime: record.userTime? moment(record.userTime).format('YYYY-MM-DD 00:00:00'): '',
surplus: record.surplus
};
this.dialogShow2 = true;
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$apis.AUTHORIZEUSEADD({
authorizeId: this.detailObj.id,
...this.editFormObj
})
.then((res)=>{
if (res.returnCode == "0000") {
this.dialogShow2 = false;
this.getData();
} else {
this.$message.error(res.returnMsg);
}
});
}
});
},
}
}
</script>
<style lang="less" scoped>
.header-div{
font-weight: bold;
justify-content: space-between;
.item{
&:nth-child(2){
margin-left: 50px;
}
.val{
margin-left: 8px;
}
.money{
color: red;
}
}
}
</style>
\ No newline at end of file
<template>
<div>
<div class="flex title-div">
<span>费用明细</span>
<a-button type="primary" @click.stop="addEvt" v-if="!id">新增</a-button>
</div>
<a-table :columns="columns" :data-source="dataList" :pagination="false">
<template slot="itemCode" slot-scope="text">
{{formatProject(text)}}
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(index)" v-if="!id">修改</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)" v-if="!id">删除</a-button>
</template>
<template slot="footer">
<div class="flex footer-div">
<span>预计总费用:</span>
<span class="money">{{totalMoney}}</span>
</div>
</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" :sm="24">
<a-form-model-item label="预授权项目" prop="itemCode">
<a-select v-model="editFormObj.itemCode" placeholder="请选择预授权项目" allowClear>
<a-select-option v-for="(item,i) in ProjectList" :key="i" :value="item.refcd">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="单价" prop="salePrice">
<a-input type="number" v-model.trim="editFormObj.salePrice" placeholder="单价" @change="priceChange" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="次数" prop="times">
<a-input type="number" v-model.trim="editFormObj.times" placeholder="次数" @change="priceChange" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
<a-form-model-item label="总价" prop="totalAmount">
<a-input type="number" v-model.trim="editFormObj.totalAmount" placeholder="总价" disabled />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</div>
</template>
<script>
export default{
props: {
id: {
default: ''
},
ProjectList: {
default: []
}
},
data(){
const columns = [
{ title: "预授权项目", dataIndex: "itemCode", key:"itemCode",align:'center',scopedSlots: { customRender: "itemCode" }},
{ title: "单价", dataIndex: "salePrice", key:"salePrice",align:'center'},
{ title: "次数", dataIndex: "times" },
{ title: "总价", dataIndex: "totalAmount"},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: 'center'},
];
return{
dialogShow: false,
columns,
dataList: [],
chooseIdex: -1,
editFormObj: {
itemCode: '',
salePrice: '',
times: '',
totalAmount: '',
},
editRules: {
itemCode: [{ required: true, message: "请输入", trigger: "blur" }],
salePrice: [{ required: true, message: "请输入", trigger: "blur" }],
times: [{ required: true, message: "请输入", trigger: "blur" }],
},
}
},
computed: {
//预计总费用
totalMoney(){
let money = 0;
this.dataList.forEach((item)=>{
money += item.totalAmount||0;
})
return money;
}
},
methods: {
//过滤project
formatProject(val){
if (!val) {
return;
}
const item = this.ProjectList.find((item) => {
return item.refcd == val;
});
return item? item.descCh: "";
},
//新增
addEvt(){
this.editEvt(-1)
},
/** 修改 * **/
editEvt(idx) {
this.chooseIdex = idx;
let record = this.dataList[idx] || {};
this.editFormObj = {
itemCode: record.itemCode || "",
salePrice: record.salePrice || "",
times: record.times
};
this.dialogShow = true;
},
//删除记录
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
},
onCancel: () => {},
});
},
//编辑保存
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
if(this.chooseIdex == -1){ //新增
this.dataList.push({...this.editFormObj})
}else{ //修改
this.dataList.splice(this.chooseIdex, 1, {...this.editFormObj});
}
this.dialogShow = false;
this.$emit('authorizeItemVoListChange', this.dataList);
}
});
},
priceChange(){
this.editFormObj.totalAmount = Number(this.editFormObj.salePrice||0) * Number(this.editFormObj.times||0)
}
}
}
</script>
<style lang="less" scoped>
.title-div {
line-height: 56px;
color: #252631;
font-weight: bold;
border-bottom: 1px solid #eee;
justify-content: space-between;
}
.footer-div{
font-weight: bold;
.money{
color: red;
margin-left: 8px;
}
}
</style>
\ No newline at end of file
<template>
<div class="index">
<!-- 预授权 -->
预授权
<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-range-picker format="YYYY年MM月DD日" v-model="form.dateRange" :placeholder="['开始日期', '结束日期']" />
</a-form-model-item>
</a-col>
<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="申请项目">
<a-select v-model="form.authProject" placeholder="请选择项目" allowClear>
<a-select-option v-for="(item) in ProjectList" :key="item.id" :value="item.refcd">{{item.descCh}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="申请状态">
<a-select v-model="form.authorStatus" placeholder="请选择申请状态" allowClear>
<a-select-option v-for="(item,i) in ApplyStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="病历号">
<a-input v-model="form.mrnNo" placeholder="请输入病历号" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="客户姓名">
<a-input v-model="form.patientName" placeholder="请输入客户姓名" allow-clear />
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="12" 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="reset">
<Icon name="ssireset" :size="14" />重置
</a-button>
<a-button class="mar-left10" type="primary" @click="addPreAuth">
<Icon name="ssiadd" :size="14" />新建预授权</a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="authorStatus" slot-scope="text">
{{text | formatApplyStatus}}
</template>
<template slot="authProject" slot-scope="text">
{{formatProject(text)}}
</template>
<template slot="rejectReason" slot-scope="text">
{{formatReason(text)}}
</template>
<template slot="authorizeItemVoList" slot-scope="text, record">
<a-button type="link" @click.stop="seeEvt(record)">查看</a-button>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<!-- <a-button type="link" class="success" @click.stop="addEvt(record)">新增</a-button> -->
<a-button type="link" class="danger" @click.stop="delRecord(index)">删除</a-button>
</template>
</a-table>
<!--分页-->
<BurtPagination :pagination="pagination" @pageChange="getData" />
<!--预授权费用数据-->
<authorizeVoList ref="authData" />
</div>
</template>
<script>
export default {
data() {
return {};
import BurtPagination from "@/components/CUSTOMER/pagation";
import authorizeVoList from './components/authorizeVoList';
import moment from 'moment'
import {ApplyStatusOptions} from '@/utils/utilsdictOptions';
import mixins from '@/mixins/index';
export default{
data(){
const columns = [
{ title: "病历号", dataIndex: "mrnNo", key:"receiptNo",align:'center', width: 136},
{ title: "客户姓名", dataIndex: "patientName", key:"patientNo",align:'center', width: 136},
{ title: "保险公司", dataIndex: "payorName", width: 110 },
{ title: "申请项目", dataIndex: "authProject", width: 100, scopedSlots: { customRender: "authProject" }},
{ title: "申请金额", dataIndex: "authorAmount", width: 100, align: 'center' },
{ title: "申请状态", dataIndex: "authorStatus", width: 100, align: 'center', scopedSlots: { customRender: "authorStatus" } },
{ title: "申请日期", dataIndex: "createDate", width: 130, align: 'center' },
{ title: "批准金额", dataIndex: "approvalAmount", width: 100, align: 'center' },
{ title: "不予批准原因", dataIndex: "rejectReason", width: 120, align: 'center', scopedSlots: { customRender: "rejectReason" } },
{ title: "预授权使用情况", dataIndex: "authorizeItemVoList", width: 130, align: 'center', scopedSlots: { customRender: "authorizeItemVoList" } },
// { title: "备注", dataIndex: "remark", width: 100, align: 'center' },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: 'center'},
];
return {
columns,
ApplyStatusOptions,
form: {
dateRange: [],
payorCode: '',
authProject: '',
authorStatus: '',
mrnNo: '',
patientName: '',
},
companyOptions: [], //保险公司
ProjectList: [], //预授权项目
rejectReason: [], //拒绝原因
dataList: [],
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
}
},
computed: {},
watch: {},
methods: {},
};
mixins: [mixins],
components: {
BurtPagination, authorizeVoList,
},
created(){
this.getData();
this._getCompanyOptions();
this.getRefcdByRefgrp();
},
methods: {
moment,
formatProject(val){
if (!val) {
return;
}
const item = this.ProjectList.find((item) => {
return item.refcd == val;
});
return item? item.descCh: "";
},
formatReason(val){
if (!val) {
return;
}
const item = this.rejectReason.find((item) => {
return item.refcd == val;
});
return item? item.descCh: "";
},
reset(){
this.form = {
dateRange: [],
payorCode: '',
authProject: '',
authorStatus: '',
mrnNo: '',
patientName: '',
};
},
//新建预授权
addPreAuth(){
this.$router.push({
path: '/pre-auth/add'
})
},
handlerSearch(){
this.pagination.pageNum = 1;
this.getData();
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
this.companyOptions = res.content || [];
});
},
// 获取码表
getRefcdByRefgrp() {
//拒绝原因
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "REJECT_REASON"
}).then((res) => {
this.rejectReason = res.content || [];
});
//预授权项目
this.$apis.GETREFCDBYREFGRP({
modid: "CI",
refgrp: "AUTH_PROJECT"
}).then((res) => {
this.ProjectList = res.content || [];
});
},
// 获取列表数据
getData() {
let filter = {
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
...this.form,
createDateStart: this.form.dateRange[0]?moment(this.form.dateRange[0]).format('YYYY-MM-DD 00:00:00'):'',
createDateEnd: this.form.dateRange[1]?moment(this.form.dateRange[1]).format('YYYY-MM-DD 00:00:00'):'',
}
delete filter.dateRange;
this.$apis.AUTHORIZELIST(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);
}
});
},
editEvt(record){
this.$router.push({
path: '/pre-auth/add',
query: {
id: record.id
}
})
},
//查看预授权使用数据
seeEvt(record={}){
this.$refs.authData.showModal1(record);
},
addEvt(){
},
//删除记录
delRecord(index) {
this.$modal.confirm({
title: "删除",
content: "确定删除该条记录?",
okText: "确认",
cancelText: "取消",
onOk: () => {
this.$apis.AUTHORIZEDELETE({
id: this.dataList[index].id,
})
.then((res) => {
if (res.returnCode == "0000") {
this.$message.success("删除成功");
this.dataList.splice(index, 1);
} else {
this.$message.error(res.returnMsg);
}
});
},
onCancel: () => {},
});
}
}
}
</script>
<style lang="less" scoped></style>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -39,6 +39,7 @@
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button type="link" class="success" @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>
......@@ -55,7 +56,7 @@ const columns = [
{ 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"},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px", align: "center"},
];
export default {
data() {
......
<template>
<div class="white_bg burt-container">
<Goback title="回款详情" />
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
......@@ -57,7 +58,7 @@
<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?'待回款':'已回款'}}
{{text | formatEOBStatus}}
</template>
<template slot="eobBackDate" slot-scope="text">
{{text?moment(text).format('YYYY-MM-DD'):''}}
......@@ -77,24 +78,23 @@
<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-option v-for="(item,i) in EOBStatusOptions" :key="i" :value="item.value">{{item.name}}</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-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 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 label="EOB回款(美元)" prop="eobBackMoneyUsd">
<a-input v-model.trim="editFormObj.eobBackMoneyUsd" placeholder="EOB回款(美元)" />
</a-form-model-item>
</a-col>
</a-row>
......@@ -104,8 +104,11 @@
</template>
<script>
import Goback from "@/components/CUSTOMER/goback";
import BurtPagination from "@/components/CUSTOMER/pagation";
import {EOBStatusOptions} from '@/utils/utilsdictOptions.js'
import moment from "moment";
import mixins from "@/mixins";
const columns = [
{ title: "EOB编号", dataIndex: "eobNo", ellipsis: true, width: 150 },
{ title: "EOB名称", dataIndex: "eobName", ellipsis: true, width: 195 },
......@@ -117,12 +120,13 @@ const columns = [
{ 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"},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "170px", align: "center"},
];
export default {
data() {
return {
columns,
EOBStatusOptions,
dialogShow: false,
form: {
payorCode: '',
......@@ -155,7 +159,9 @@ export default {
},
};
},
mixins: [mixins],
components: {
Goback,
BurtPagination,
},
created(){
......@@ -314,9 +320,13 @@ export default {
handleEditOK() {
this.$refs.editForm.validate((valid) => {
if (valid) {
let editFormObj = {
...this.editFormObj,
eobBackDate: this.editFormObj.eobBackDate?moment(this.editFormObj.eobBackDate).format('YYYY-MM-DD 00:00:00'):"",
}
this.$apis.SAVEBACKMONEY({
...this.form,
backMoneyEobList: [this.editFormObj],
backMoneyEobList: [editFormObj],
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'',
backMoneyNo: this.backMoneyNo, //回款编号
})
......
......@@ -13,11 +13,23 @@
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="账单编号">
<a-input v-model="form.receiptNo" placeholder="请输入账单编号" />
<a-form-model-item label="EOB状态">
<a-select v-model="form.eobSts" placeholder="请选择EOB状态" allowClear>
<a-select-option v-for="(item,i) in EOBStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB赔付金额(人民币)">
<a-input type="number" v-model.trim="form.eobAmountCny" 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.trim="form.eobAmountUsd" placeholder="EOB赔付金额(美元)" />
</a-form-model-item>
</a-col>
<a-col :lg="12" :sm="24" class="none-label">
<a-col :sm="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" />查询
......@@ -35,11 +47,12 @@
</a-form-model>
<!-- table -->
<a-table :columns="columns" :data-source="dataList" :scroll="{ x: true }" :pagination="false">
<template slot="sendSts" slot-scope="record, text">
<span>{{text==1?'已寄送':'未寄送'}}</span>
<template slot="eobSts" slot-scope="text">
<span>{{text | formatEOBStatus}}</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
<a-button type="link" class="success" @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>
......@@ -50,22 +63,27 @@
<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
import {EOBStatusOptions} from '@/utils/utilsdictOptions.js'
import mixins from "@/mixins";
const columns = [
{ 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: "eobSts", ellipsis: true, width: 90, scopedSlots: { customRender: "eobSts" } },
{ 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"},
{ title: "备注", dataIndex: "eobRemark", ellipsis: true, width: 120 },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: 'center'},
];
export default {
data() {
return {
columns,
EOBStatusOptions,
form: {
payorCode: '',
receiptNo: '',
eobSts: '',
eobAmountCny: '',
eobAmountUsd: ''
},
dataList: [],
companyOptions: [], //保险公司
......@@ -76,6 +94,7 @@ export default {
},
};
},
mixins: [mixins],
components: {
BurtPagination,
},
......@@ -93,7 +112,9 @@ export default {
handlerReset() {
this.form = {
payorCode: '',
receiptNo: '',
eobSts: '',
eobAmountCny: '',
eobAmountUsd: ''
}
},
// 获取保险公司下拉选项
......@@ -104,6 +125,7 @@ export default {
},
getData() {
this.$apis.QUERYEOBLIST({
...this.form,
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
})
......
<template>
<div class="white_bg burt-container">
<Goback title="EOB详情" />
<!-- form -->
<a-form-model ref="form" layout="vertical" :model="form">
<a-row :gutter="30">
......@@ -35,14 +36,27 @@
<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-option v-for="(item,i) in EOBStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="24" :lg="12" class="none-label">
<a-col :lg="6" :sm="12">
<a-form-model-item label="备注">
<a-input v-model="form.eobRemark" placeholder="请输入备注"/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="EOB文件">
<a-upload name="file" :multiple="false" :showUploadList="true"
:fileList="form.eobFile"
:customRequest="uploadEvt"
:remove="removeFile">
<a-button type="primary"> <Icon name="ssiupload" :size="18" />上传EOB文件 </a-button>
</a-upload>
</a-form-model-item>
</a-col>
<a-col :lg="24" :sm="24" 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>
......@@ -55,9 +69,12 @@
<!-- <a-button class="mar-left10" type="primary" @click="handlerSearch">
<Icon name="ssisearch_active" :size="14" />查询
</a-button> -->
<a-button type="primary" @click="exportEvt">
<Icon name="ssidaochu" :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-form-model-item>
</a-col>
</a-row>
</a-form-model>
......@@ -68,8 +85,8 @@
<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 slot="claimsStatus" slot-scope="text">
<span>{{text | formatClaimsStatus}}</span>
</template>
<template slot="operation" slot-scope="text, record">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button>
......@@ -84,21 +101,20 @@
<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-form-model-item label="理赔状态" prop="claimsStatus">
<a-select v-model="editFormObj.claimsStatus" placeholder="请选择理赔状态" allowClear>
<a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</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-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" @change="moneyChange" />
</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-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" disabled />
</a-form-model-item>
</a-col>
<a-col :lg="12" :xs="24">
......@@ -113,14 +129,17 @@
</template>
<script>
import Goback from "@/components/CUSTOMER/goback";
import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment";
import {ClaimsStatusOptions,EOBStatusOptions} from '@/utils/utilsdictOptions.js'
import mixins from "@/mixins";
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: "claimsStatus", ellipsis: true, width: 90, scopedSlots: { customRender: "claimsStatus" } },
{ title: "账单金额", dataIndex: "receiptAmount", ellipsis: true, width: 85 },
{ title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 },
{ title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 },
......@@ -129,13 +148,15 @@ const columns = [
{ 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"},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "170px", align: "center"},
];
export default {
data() {
return {
dialogShow: false,
columns,
ClaimsStatusOptions,
EOBStatusOptions,
eobNo: '', //eob编号
form: {
eobDate: '',
......@@ -143,7 +164,9 @@ export default {
eobName: '',
eobAmountCny: '',
eobAmountUsd: '',
eobSts: ''
eobSts: '',
eobRemark: '',
eobFile: []
},
dataList: [],
isEditNewEob: false, //是否在新建EOB
......@@ -156,7 +179,7 @@ export default {
selectedRowKeys: [], // Check here to configure the default column
editFormObj: {
receiptNo: '',
paidSts: '',
claimsStatus: '',
paidAmountEob: '',
refuseAmountEob: ''
},
......@@ -165,7 +188,9 @@ export default {
},
};
},
mixins: [mixins],
components: {
Goback,
BurtPagination,
},
created(){
......@@ -173,7 +198,20 @@ export default {
this._getCompanyOptions();
if(this.eobNo){
let EobDataDetail = localStorage.getItem('EobDataDetail');
this.form = EobDataDetail? JSON.parse(EobDataDetail): {};
let dataDetail = EobDataDetail? JSON.parse(EobDataDetail): {};
if(dataDetail.eobFile){
dataDetail.eobFile = [
{
uid: Math.random()*10000,
name: dataDetail.eobFile.slice(dataDetail.eobFile.lastIndexOf('/')+1),
status: 'done',
url: dataDetail.eobFile,
}
]
}else{
dataDetail.eobFile = [];
}
this.form = dataDetail;
this.getData();
}
},
......@@ -197,6 +235,10 @@ export default {
this.isEditNewEob = false;
this.getData();
},
//回款金额改变
moneyChange(){
this.editFormObj.refuseAmountEob = this.form.eobPaidAmount||0 - this.editFormObj.paidAmountEob||0;
},
// 获取保险公司下拉选项
_getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => {
......@@ -221,13 +263,17 @@ export default {
},
//修改单条数据
editEvt(record) {
this.editFormObj = {
receiptNo: record.receiptNo,
refuseAmountEob: record.refuseAmountEob || "",
paidSts: record.paidSts || "",
paidAmountEob: record.paidAmountEob || "",
};
this.dialogShow = true;
this.$nextTick(()=>{
this.editFormObj = {
id: record.id,
receiptNo: record.receiptNo,
refuseAmountEob: record.refuseAmountEob || "",
claimsStatus: record.claimsStatus || "",
paidAmountEob: record.paidAmountEob || "",
};
this.moneyChange();
})
},
//编辑保存
handleEditOK() {
......@@ -235,6 +281,7 @@ export default {
if (valid) {
this.$apis.SAVEEOBRECEIPTINFO({
...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: [this.editFormObj],
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):''
})
......@@ -273,6 +320,26 @@ export default {
onCancel: () => {},
});
},
//导出
exportEvt(){
this.$apis.EOBRECEIPLISTEXPORT({
eobNo: this.eobNo
})
.then(res => {
let blob = new Blob([res.data], {
type:"application/vnd.ms-excel;charset=utf-8"
});
let url=window.URL.createObjectURL(blob);
let aLink=document.createElement("a");
aLink.style.display="none";
aLink.href=url;
aLink.setAttribute("download","EOB关联账单.xls");
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
window.URL.revokeObjectURL(url);
})
},
//添加账单
addNewBill(){
this.isEditNewEob = !this.isEditNewEob;
......@@ -305,6 +372,7 @@ export default {
this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){
eobReceiptList.push({
id: item.id,
receiptNo: item.receiptNo,
refuseAmountEob: item.refuseAmountEob,
paidSts: item.paidSts,
......@@ -314,6 +382,7 @@ export default {
})
let formData = {
...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: eobReceiptList,
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'',
eobNo: this.eobNo
......@@ -333,6 +402,30 @@ export default {
}
});
})
},
removeFile(){
return new Promise((resolve)=>{
this.form.eobFile = [];
resolve();
});
},
//上传
uploadEvt(fileData){
let formData = new FormData();
formData.append("file", fileData.file);
this.$apis.UPLOADIMG(formData)
.then((res)=>{
fileData.onSuccess();
let fileList = [
{
uid: Math.random()*10000,
name: res.title,
status: 'done',
url: res.url,
}
]
this.form.eobFile = fileList;
})
}
},
};
......
......@@ -31,19 +31,27 @@
title="福利管理"
v-model="isBenefitEditShow"
:footer="null"
width="500px"
@cancel="isBenefitEditShow = false"
width="50%"
@cancel="cancel"
>
<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-select v-model="editForm.corpCode" placeholder="请选择客户公司名称" disabled>
<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 :md="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-input disabled v-model="editForm.planCode"> </a-input>
<a-select v-model="editForm.planCode" placeholder="请选择保险计划" disabled>
<a-select-option v-for="item in planCode" :key="item.planCode" :value="item.planCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
......@@ -53,14 +61,14 @@
</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">
<a-select v-model="editForm.benefitCode" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in benefitCode" :key="item.benefitCode + item.description" :value="item.benefitCode">
{{ item.description }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :md="12">
<!-- <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>
......@@ -69,16 +77,20 @@
<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> -->
<a-col :md="12">
<a-form-model-item label="等待期">
<a-input-number v-model="editForm.waitingPeriod">
</a-input-number>
<a-form-model-item label="是否等待期">
<a-radio-group v-model="editForm.isdays" :default-value="editForm.isdays" 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-input-number v-model="editForm.isdays"></a-input-number>
<a-form-model-item label="等待期天数" prop="waitingPeriod" :rules="[{required: editForm.isdays === 'Y', message: '请输入等待期天数'}]">
<a-input-number v-model="editForm.waitingPeriod">
</a-input-number>
</a-form-model-item>
</a-col>
<a-col :md="12">
......@@ -97,12 +109,12 @@
v-model="editForm.status"
show-search
allow-clear
@filterOption="filterCode"
:filterOption="filterCode"
>
<a-select-option
v-for="item in statusCode"
:key="item.code"
:vlaue="item.code"
:value="item.code"
>
{{ item.name }}
</a-select-option>
......@@ -118,7 +130,7 @@
<a-button type="primary" @click="saveBenefitData">
<Icon name="ssiadd" :size="14" />保存
</a-button>
<a-button class="mar-left10" @click="isBenefitEditShow = false">取消</a-button>
<a-button class="mar-left10" @click="cancel">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
......@@ -127,6 +139,7 @@
<script>
import condition from "../condition";
//import moment from 'moment'
export default {
props: {
......@@ -134,23 +147,35 @@ export default {
type: Object,
required: true,
},
//客户公司名称
corpCode: {
default: []
},
//保险计划
planCode: {
default: []
}
},
components: {
condition,
},
data() {
/* const dateFormat = (val) => {
return val && moment(val).format('YYYY-MM-DD')
} */
const columns = [
{ title: "责任项目明细", dataIndex: "benefitCode" },
{ title: "责任项目明细", dataIndex: "benefitDesc" },
// { title: "预授权申请", dataIndex: "index" },
{ title: "更新日期", dataIndex: "modifierDate" },
{ title: "开始日期", dataIndex: "startDate" },
{ title: "结束日期", dataIndex: "endDate" },
{ title: "备注", dataIndex: "remark" },
// { title: "开始日期", dataIndex: "startDate", customRender: dateFormat },
// { title: "结束日期", dataIndex: "endDate", customRender: dateFormat },
{ title: "更新日期", dataIndex: "modifierDate", width: 180 },
{ title: "备注", dataIndex: "remarks", width: 180 },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
align: 'center',
scopedSlots: { customRender: "operation" },
},
];
......@@ -162,8 +187,9 @@ export default {
editForm: {},
editRule: {
benefitCode: [{ required: true, message: "请选择福利项" }],
startDate: [{ required: true, message: "请选择开始时间" }],
endDate: [{ required: true, message: "请选择结束时间" }],
// startDate: [{ required: true, message: "请选择开始时间" }],
// endDate: [{ required: true, message: "请选择结束时间" }],
waitingPeriod: [{ required: true, message: "请输入等待期天数" }]
},
};
},
......@@ -173,6 +199,7 @@ export default {
methods: {
// 选择框筛选
filterCode(input, option) {
console.log(option.componentOptions)
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
......@@ -191,6 +218,10 @@ export default {
this.editForm = this.$lodash.cloneDeep(data);
this.isBenefitEditShow = true;
},
cancel() {
this.$refs.editForm.resetFields();
this.isBenefitEditShow = false;
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
......@@ -198,11 +229,12 @@ export default {
},
saveBenefitData() {
this.$refs.editForm.validate((valid) => {
console.log(valid)
if (!valid) {
return false;
}
this._editBenefitData(this.editForm);
});
this._editBenefitData(this.editForm);
},
_editBenefitData(data) {
const fn = data.id || data.id === 0 ? this.$apis.EDITBENEFITLIST : this.$apis.ADDBENEFITLIST;
......
......@@ -5,7 +5,7 @@
<Icon name="ssiadd" :size="14" />新增条件
</a-button>
</div>
<a-table
<a-table
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="conditionList"
......@@ -28,32 +28,35 @@
title="条件管理"
v-model="isConditionEditShow"
:footer="null"
@cancel="isConditionEditShow = false"
@cancel="cancel"
>
<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">
<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 + item.frequencyDesc" :value="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">
<a-form-model-item label="保障福利" prop="limitCode">
<a-select v-model="editForm.limitCode" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in limitCode" :key="item.limitCode + item.limitDesc" :value="item.limitCode">
{{ item.limitDesc }}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="开始时间" prop="startDate">
<a-form-model-item label="福利限制">
<a-input-number v-model="editForm.maxValue"> </a-input-number>
</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-form-model-item> -->
<!-- <a-row :gutter="10">
<a-col :span="8">
<a-form-model-item label="最小值">
<a-form-model-item label="年限额">
<a-input-number v-model="editForm.minValue"> </a-input-number>
</a-form-model-item>
</a-col>
......@@ -63,15 +66,15 @@
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="家庭最大值">
<a-form-model-item label="赔付比率">
<a-input-number v-model="editForm.familyMaxValue">
</a-input-number>
</a-form-model-item>
</a-col>
</a-row>
</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">
<a-select v-model="editForm.currency" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in currencyCode" :key="item.code + item.name" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
......@@ -81,25 +84,25 @@
v-model="editForm.status"
show-search
allow-clear
@filterOption="filterCode"
:filterOption="filterCode"
>
<a-select-option
v-for="item in statusCode"
:key="item.code"
:vlaue="item.code"
:value="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 label="备注" prop="remark">
<a-textarea v-model="editForm.remark" :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-button class="mar-left10" @click="cancel">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
......@@ -107,6 +110,7 @@
</template>
<script>
export default {
props: {
formData: {
......@@ -116,18 +120,30 @@ export default {
},
data() {
const columns = [
{ title: "频率", dataIndex: "frequencyCode" },
{ title: "条件", dataIndex: "limitCode" },
{ title: "开始时间", dataIndex: "startDate" },
{ title: "结束时间", dataIndex: "endDate" },
{ title: "有效", dataIndex: "status" },
{ title: "条件类型", dataIndex: "frequencyDesc" },
{ title: "条件内容", dataIndex: "limitDesc" },
{ title: "状态", dataIndex: "status", 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: "index" },
{ title: "最大值", dataIndex: "maxValue" },
{ title: "福利限制", dataIndex: "maxValue", customRender: (val, row) => {
if (row.limitCode.indexOf('07') === 0) {
return val + '%'
}
return val
} },
{ title: "备注", dataIndex: "remark" },
{
title: "操作",
key: "operation",
width: "175px",
fixed: "right",
align: 'center',
scopedSlots: { customRender: "operation" },
},
];
......@@ -147,10 +163,8 @@ export default {
{ code: "2", name: "无效" },
],
editRule: {
frequencyCode: [{ required: true, message: "请选择频率" }],
limitCode: [{ required: true, message: "请选择条件" }],
startDate: [{ required: true, message: "请选择开始时间" }],
endDate: [{ required: true, message: "请选择结束时间" }],
frequencyCode: [{ required: true, message: "请选择限额" }],
limitCode: [{ required: true, message: "请选择保障福利" }],
},
};
},
......@@ -160,11 +174,7 @@ export default {
methods: {
// 选择框筛选
filterCode(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
},
editConditionData(data) {
const { planCode, payorCode, coverageCode, corpCode, benefitCode, conditionType } = this.formData;
......@@ -195,6 +205,10 @@ export default {
}
});
},
cancel() {
this.$refs.editForm.resetFields();
this.isConditionEditShow = false;
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
......
......@@ -12,6 +12,14 @@
row-key="coverageCode"
:pagination="false"
>
<template slot="remarks" slot-scope="text">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<p class="ellipsis">{{text}}</p>
</a-tooltip>
</template>
<template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="editCoverageData(record)">修改</a-button>
<a-popconfirm
......@@ -25,53 +33,36 @@
</template>
<template slot="expandedRowRender" slot-scope="record">
<condition class="mar-bottom10" :form-data="{ ...record, conditionType: '02' }"/>
<benefits :formData="record" />
<benefits :corpCode="corpCode" :planCode="planCode" :formData="record" />
</template>
</a-table>
<a-modal
title="责任管理"
v-model="isCoverageEditShow"
:footer="null"
width="500px"
@cancel="isCoverageEditShow = false"
width="50%"
@cancel="cancel"
>
<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-select v-model="editForm.corpCode" placeholder="请选择客户公司名称" disabled>
<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 :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">
<a-select v-model="editForm.coverageCode" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in coverageCode" :key="item.coverageCode" :value="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"
>
......@@ -80,37 +71,39 @@
</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-col :md="12">
<a-form-model-item label="保险计划" prop="planCode">
<a-select v-model="editForm.planCode" placeholder="请选择保险计划" disabled>
<a-select-option v-for="item in planCode" :key="item.planCode" :value="item.planCode">
{{ item.longName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col> -->
<a-form-model-item label="等待期">
<a-input-number v-model="editForm.waitingPeriod"></a-input-number>
</a-form-model-item>
<a-form-model-item label="描述">
<a-input v-model="editForm.loaDesc"> </a-input>
</a-form-model-item>
<a-form-model-item label="状态" prop="isEffective">
<a-select v-model="editForm.isEffective" 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-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-textarea v-model="editForm.remarks" maxLength="100" :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-button class="mar-left10" @click="cancel">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
......@@ -127,6 +120,14 @@ export default {
required: true,
type: Object,
},
//客户公司名称
corpCode: {
default: []
},
//保险计划
planCode: {
default: []
}
},
components: {
benefits,
......@@ -134,18 +135,28 @@ export default {
},
data() {
const columns = [
{ title: "门诊责任", dataIndex: "coverageCode", width: 150 },
{ title: "是否直付", dataIndex: "isDirect", width: 120 },
{ title: "等待期", dataIndex: "waitingPeriod", width: 120 },
{ title: "门诊责任", dataIndex: "coverageDesc", width: 200 },
{ title: "是否直付", dataIndex: "isDirect", width: 120, customRender: (val) => {
return val === 'Y' ? '' : ''
} },
{ title: "等待期", dataIndex: "waitingPeriod", width: 120},
// { title: "预授权", dataIndex: "sex", width: 80 },
// { title: "预授权期限", dataIndex: "payorName", width: 180 },
{ title: "状态", dataIndex: "status", width: 180 },
{ title: "备注", dataIndex: "remark" },
{ title: "状态", dataIndex: "isEffective", width: 100,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: "remarks", scopedSlots: { customRender: "remarks" }, width: 200 },
{
title: "操作",
key: "operation",
width: "175px",
width: "130px",
fixed: "right",
align: 'center',
scopedSlots: { customRender: "operation" },
},
];
......@@ -156,11 +167,12 @@ export default {
editForm: {},
coverageCode: [],
statusCode: [
{ code: "1", name: "有效" },
{ code: "2", name: "无效" },
{ code: "Y", name: "有效" },
{ code: "N", name: "无效" },
],
editRule: {
coverageCode: [{ required: true, message: "请选择保险责任" }],
isEffective: [{ required: true, message: "请选择计划状态" }],
},
};
},
......@@ -195,6 +207,10 @@ export default {
this._editCoverageData(this.editForm);
});
},
cancel() {
this.$refs.editForm.resetFields();
this.isCoverageEditShow = false;
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
......
......@@ -5,7 +5,7 @@
<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 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>
......@@ -14,7 +14,7 @@
</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 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>
......@@ -23,8 +23,8 @@
</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">
<a-select v-model="form.planCode" placeholder="请选择保险计划" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in planCode" :key="item.planCode" :value="item.planCode">
{{ item.longName }}
</a-select-option>
</a-select>
......@@ -40,12 +40,12 @@
</a-row>
</a-form-model>
<div>
<!-- <div class="none-label mar-bottom10">
<div class="none-label mar-bottom10">
<a-button type="primary" @click="editPlanData(null)">
<Icon name="ssiadd" :size="14" />新增计划
</a-button>
</div> -->
<a-table
</div>
<a-table :scroll="{ x: 1110 }"
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="planData"
......@@ -53,6 +53,7 @@
:pagination="false"
>
<template slot="operation" slot-scope="record">
<!-- <a-button type="link" @click.stop="editPlanData(record, true)">新增</a-button> -->
<a-button type="link" @click.stop="editPlanData(record)">修改</a-button>
<!-- <a-popconfirm
title="你确定要删除吗?"
......@@ -65,7 +66,7 @@
</template>
<template slot="expandedRowRender" slot-scope="record">
<condition class="mar-bottom10" :form-data="{...record, conditionType: '03'}"/>
<coverages :formData="{ ...record }" />
<coverages :corpCode="corpCode" :planCode="planCode" :formData="{ ...record }" />
</template>
</a-table>
<BurtPagination :pagination="{ ...pager, total }" @pageChange="pageChange"/>
......@@ -75,7 +76,7 @@
v-model="isPlanEditShow"
:footer="null"
width="50%"
@cancel="isPlanEditShow = false"
@cancel="cancel"
>
<a-form-model ref="editForm" layout="vertical" :model="editForm" :rules="editRule">
<!-- <a-form-model-item label="保险公司" prop="payorCode">
......@@ -87,77 +88,57 @@
</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="planCode">
<a-input v-model="editForm.planCode" disabled></a-input>
</a-form-model-item> -->
<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 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="effectiveDate">
<!-- <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-form-model-item label="地区限制" prop="regionalRestrictions">
<a-select v-model="editForm.regionalRestrictions" 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 :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-form-model-item label="医院限制" prop="hospitalRestrictions">
<a-select v-model="editForm.hospitalRestrictions" placeholder="请选择医院限制" show-search allow-clear :filterOption="filterCode">
<a-select-option v-for="item in hosCode" :key="item.refcd" :value="item.refcd" :label="item.descCh">{{ item.descCh }}</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-form-model-item label="公司名称" prop="corpCode">
<a-select v-model="editForm.corpCode" disabled>
<a-select-option v-for="item in corpCode" :key="item.corpCode" :value="item.corpCode">
{{ item.longName }}
</a-select-option>
</a-select>
<!-- <a-input v-model="editForm.corpCode" disabled></a-input> -->
</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 label="计划简称" prop="shortName">
<a-input v-model="editForm.shortName"></a-input>
</a-form-model-item>
<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="remarks">
<a-textarea v-model="editForm.remarks" :autoSize="{ minRows: 2, maxRows: 5 }"></a-textarea>
</a-form-model-item>
<!-- <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-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-button class="mar-left10" @click="cancel">取消</a-button>
</a-form-model-item>
</a-form-model>
</a-modal>
......@@ -168,42 +149,48 @@
import BurtPagination from "@/components/CUSTOMER/pagation";
import condition from "./components/condition";
import coverages from "./components/coverages";
import moment from 'moment'
// import moment from 'moment'
export default {
beforeRouteUpdate(to, from, next) {
this.$refs.form.resetFields();
this.planData = [];
next();
},
components: {
BurtPagination,
condition,
coverages,
},
data() {
const dateFormat = (val) => {
return val && moment(val).format('YYYY-MM-DD')
}
// 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
{ title: "简称", dataIndex: "shortName", width: 130, ellipsis: true },
// { title: "起始日期", dataIndex: "effectiveDate", width: 130, customRender: dateFormat },
// { title: "终止日期", dataIndex: "terminationDate", width: 130, customRender: dateFormat },
{ title: "医院限制", dataIndex: "hospitalRestrictions", width: 130, customRender: (val) => {
for(let i = 0; i < this.hosCode.length; i ++) {
if (val === this.hosCode[i].refcd) {
return this.hosCode[i].descCh
}
}
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: "备注", dataIndex: "remarks" },
{
title: "操作",
key: "operation",
width: "120px",
width: "150px",
fixed: "right",
align: 'center',
scopedSlots: { customRender: "operation" },
},
// { title: "保单号码", dataIndex: "policyNo", width: 190 },
......@@ -219,16 +206,16 @@ export default {
planCode: undefined,
},
searchForm: {},
detailForm: {},
editForm: {},
editForm: {
isEffective: '',
hospitalRestrictions: ''
},
planData: [],
companyCode: [],
corpCode: [],
planCode: [],
statusCode: [
{code: "1", name: "有效"},
{code: "2", name: "无效"}
],
areaCode: [],
hosCode: [],
queryForm: {},
pager: {
pageNum: 1,
......@@ -246,14 +233,19 @@ export default {
// shortName: [{ required: true, message: "请输入保险计划简称" }],
effectiveDate: [{ required: true, message: "请选择生效日期" }],
terminationDate: [{ required: true, message: "请选择失效日期" }],
hospitalRestrictions: [{ required: true, message: "请选择医院限制" }]
},
};
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.detailForm = this.$route.query;
if (this.$route.query && this.$route.query.planCode) {
this.form = this.$route.query;
this._getCorporateCode(this.$route.query.payorCode);
this._getPlanCode(this.$route.query.corpCode);
this.$nextTick(this.handlerSearch)
}
this._getPayorCode();
this.initCodeData();
},
methods: {
handlerSearch() {
......@@ -294,28 +286,41 @@ export default {
.indexOf(input.toLowerCase()) >= 0
);
},
cancel() {
this.$refs.editForm.resetFields();
this.isPlanEditShow = false;
},
deleteData(record) {
const data = this.$lodash.cloneDeep(record);
data.status = "2"; // 置为无效状态即删除
this._editPlanData(data);
},
editPlanData(data) {
if (data) {
if(!data){ //新增
this.editForm = {
planCode: '',
longName: '',
englishName: '',
shortName: '',
corpCode: this.form.corpCode,
}
}else{
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;
});
}
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() {
......@@ -326,8 +331,24 @@ export default {
this._editPlanData(this.editForm);
});
},
initCodeData() {
const params = {
areaCode: {
modid: "CI",
refgrp: "POLICY_DIRECT_AREA"
},
hosCode: {
modid: "CI",
refgrp: "HOSPITAL_RESTRICTIONS"
},
}
for (let i in params) {
this._getRefcdByRefgrp(params[i], i)
}
},
_editPlanData(data) {
this.$apis.EDITPLANDATE(data).then((res) => {
const fn = data.id ? 'EDITPLANDATA' : 'ADDTPLANDATA'
this.$apis[fn](data).then((res) => {
if (res.returnCode === "0000") {
this._getPlanList();
this.$message.success(res.returnMsg || "操作成功");
......@@ -368,6 +389,14 @@ export default {
this.total = (res.content && res.content.total) || 0;
});
},
_getRefcdByRefgrp(data, prop) {
if (this[prop] && this[prop].length) {
return true
}
this.$apis.GETREFCDBYREFGRP(data).then((res) => {
this[prop] = res.content || [];
});
},
},
};
</script>
......
......@@ -3,17 +3,17 @@
<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-col :span="6">保险卡号:{{policyData.cardNo}}</a-col>
<a-col :span="6">保单号码:{{policyData.policyNo}}</a-col>
<a-col :span="6">保险计划:{{policyData.planName}}</a-col>
<a-col :span="6">客户公司名称:{{policyData.corpName}}</a-col>
<a-col :span="6">首次入保日期:{{dateFormat(policyData.firstEnrollmentTime)}}</a-col>
<a-col :span="6">保单生效日期:{{dateFormat(policyData.startDate)}}</a-col>
<a-col :span="6">保单终止日期:{{dateFormat(policyData.endDate)}}</a-col>
<a-col :span="6">是否承担既往症:{{policyData.isUndertakeAnamnesis | yesFilters }}</a-col>
<a-col :span="6">保单直付区域:{{areaFilter(policyData.policyDircetArea)}}</a-col>
<a-col :span="6">是否等待期: {{policyData.waitingPeriod | yesFilters}}</a-col>
<a-col :span="6">其他备注{{policyData.remark}}</a-col>
</a-row>
</a-collapse-panel>
</a-collapse>
......@@ -21,6 +21,8 @@
</template>
<script>
import moment from 'moment'
export default {
props: {
policyData: {
......@@ -30,8 +32,56 @@ export default {
data() {
return {
activeKeys: "1",
areaCode: []
};
},
filters: {
yesFilters(value) {
const data = {
Y: '',
N: ''
};
return data[value];
}
},
created() {
this.initCodeData();
},
methods: {
areaFilter(value) {
if (! value) {
return '';
}
for (let i = 0; i < this.areaCode.length; i ++) {
if (this.areaCode[i].refcd === value) {
return this.areaCode[i].descCh
}
}
return value
},
dateFormat(val) {
return val && moment(val).format('YYYY-MM-DD')
},
initCodeData() {
const params = {
areaCode: {
modid: "CI",
refgrp: "POLICY_DIRECT_AREA"
},
}
for (let i in params) {
this._getRefcdByRefgrp(params[i], i)
}
},
_getRefcdByRefgrp(data, prop) {
if (this[prop] && this[prop].length) {
return true
}
this.$apis.GETREFCDBYREFGRP(data).then((res) => {
this[prop] = res.content || [];
});
},
}
};
</script>
......
......@@ -26,13 +26,13 @@
</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">
<a-collapse-panel v-for="item in benefitData" :key="item.benefitCode" :header="item.benefitCode + ' ' +item.benefitDesc">
<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-col :span="6">年限额:</a-col>
<a-col :span="6">赔付比例:</a-col> -->
</a-row>
</div>
<condition :formData="{ ...item, conditionType: '01' }" />
......
......@@ -2,10 +2,11 @@
<div>
<a-table
class="mar-bottom10"
size="small"
:columns="columns"
:locale="{ emptyText: 'No Data' }"
:data-source="conditionList"
row-key="mrnNo"
row-key="id"
:pagination="false"
></a-table>
</div>
......@@ -20,18 +21,16 @@ export 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" },
},
{ title: "条件类型", dataIndex: "frequencyDesc" },
{ title: "条件内容", dataIndex: "limitDesc" },
// { title: "最小值", dataIndex: "minValue" },
{ title: "福利限制", dataIndex: "maxValue", customRender: (val, row) => {
if (row.limitCode.indexOf('07') === 0) {
return val + '%'
}
return val
}},
{ title: "剩余金额", dataIndex: "leftValue" }
];
return {
columns,
......
......@@ -12,24 +12,20 @@
<!-- <a-button type="primary" @click="addNew">
<Icon name="ssiadd" :size="14" />新增
</a-button> -->
<a-button type="primary">
<!-- <a-button type="primary">
<Icon name="ssidownload" :size="14" />保存
</a-button>
</a-button> -->
<a-button type="primary" @click="totEditWelfare">编辑福利信息</a-button>
</div>
</div>
<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">
<a-collapse-panel v-for="item in coverageData" :key="item.coverageCode" :header="item.coverageDesc">
<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">是否开放直付:{{ item.isDirect | yesFilters }}</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>
......@@ -70,6 +66,15 @@ export default {
coverageCode: [],
};
},
filters: {
yesFilters(value) {
const data = {
Y: '',
N: ''
};
return data[value];
},
},
watch: {
formData: {
immediate: true,
......@@ -122,6 +127,17 @@ export default {
.indexOf(input.toLowerCase()) >= 0
);
},
// 编辑福利信息
totEditWelfare() {
this.$router.push({
name: 'welfareEdit',
query: {
payorCode: this.formData.payorCode,
corpCode: this.formData.corpCode,
planCode: this.formData.planCode,
}
})
},
_getSpecialtyCode() {
this.$apis.GETSPECIALTYLIST().then((res) => {
this.welfareType = res.content || [];
......@@ -157,9 +173,9 @@ export default {
.policy_line {
.pa(0, 30, 0, 30);
line-height: 60px;
// &:not(:last-child) {
border-bottom: 1px solid #f8fafb;
// }
.ant-col{
border-bottom: 1px solid #f8fafb;
}
}
.classify {
.pa(10, 20, 10, 20);
......
......@@ -15,7 +15,7 @@
</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-date-picker v-model="form.birthday" 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">
......@@ -27,27 +27,20 @@
</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 label="保险卡号" prop="idNo">
<a-input v-model="form.cardNo" 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 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-col :xl="18" :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" />重置
......@@ -66,10 +59,21 @@
row-key="mrnNo"
:scroll="{ x: true }"
:pagination="false"
:customRow="handlerRowClick"
></a-table>
<BurtPagination :pagination="{ ...cusPager, total: cusTotal }" @pageChange="onCustomChange"
/>
:customRow="handlerRowClick">
<template slot="sex" slot-scope="text">
<span>{{text | formatSex}}</span>
</template>
<template slot="birthday" slot-scope="text">
<span>{{text?moment(text).format('YYYY-MM-DD'):''}}</span>
</template>
<template slot="startDate" slot-scope="text">
<span>{{text?moment(text).format('YYYY-MM-DD'):''}}</span>
</template>
<template slot="endDate" slot-scope="text">
<span>{{text?moment(text).format('YYYY-MM-DD'):''}}</span>
</template>
</a-table>
<BurtPagination :pagination="{ ...cusPager, total: cusTotal }" @pageChange="onCustomChange" />
</div>
<div v-if="isShowCoverageData">
<PolicyInfo :policyData="coverageForm" />
......@@ -82,6 +86,8 @@
import BurtPagination from "@/components/CUSTOMER/pagation";
import coverages from "./components/coverages";
import PolicyInfo from "./components/PolicyInfo";
import moment from "moment";
import mixins from "@/mixins";
export default {
beforeRouteUpdate(to, from, next) {
this.handlerReset();
......@@ -92,16 +98,17 @@ export default {
coverages,
PolicyInfo,
},
mixins: [mixins],
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: "birthday", width: 180, scopedSlots: { customRender: "birthday" } },
{ title: "性别", dataIndex: "sex", width: 80, scopedSlots: { customRender: "sex" } },
{ title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "保险有效日期", dataIndex: "startDate", width: 180 },
{ title: "保险终止日期", dataIndex: "endDate", width: 180 },
{ title: "保险有效日期", dataIndex: "startDate", scopedSlots: { customRender: "startDate" }, width: 180 },
{ title: "保险终止日期", dataIndex: "endDate", scopedSlots: { customRender: "endDate" }, width: 180 },
];
return {
isShowCoverageData: false,
......@@ -113,14 +120,13 @@ export default {
sex: undefined,
idNo: undefined,
payorId: undefined,
idType: undefined
},
detailForm: {},
coverageForm: {},
customList: [],
companyCode: [],
corpCode: [],
planCode: [],
// corpCode: [],
// planCode: [],
queryForm: {},
cusPager: {
pageNum: 1,
......@@ -137,6 +143,7 @@ export default {
this._getPayorCode();
},
methods: {
moment,
onCustomChange(pager) {
const { pageNum } = pager;
// console.log(pager);
......@@ -179,8 +186,8 @@ export default {
this.customList = [];
this.coverageForm = res.content || {};
this.isShowCoverageData = true;
this._getCorporateCode(this.coverageForm.payorId);
this._getPlanCode(this.coverageForm.corpId);
// 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;
......
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