Commit 8e2f690b authored by 吴婷慧's avatar 吴婷慧

解决冲突

parents fe3903a0 17bc53ce
...@@ -8,4 +8,5 @@ export default { ...@@ -8,4 +8,5 @@ export default {
specialtyList: "/backstage/auth/specialtyList", specialtyList: "/backstage/auth/specialtyList",
coverageCode: "/backstage/auth/coverageMasterList", coverageCode: "/backstage/auth/coverageMasterList",
getRefcdByRefgrp: "/common/getRefcdByRefgrp", // 公共获取码表接口 getRefcdByRefgrp: "/common/getRefcdByRefgrp", // 公共获取码表接口
checkUserEmail: "/backstage/user/checkUserEmail", // 校验用户邮箱
}; };
...@@ -19,4 +19,10 @@ export default { ...@@ -19,4 +19,10 @@ export default {
payorAddDiscount: "/backstage/auth/payorAddDiscount", //新增折扣信息 payorAddDiscount: "/backstage/auth/payorAddDiscount", //新增折扣信息
payorAddDiscountBenefit: "/backstage/auth/payorAddDiscountBenefit", //编辑折扣信息 payorAddDiscountBenefit: "/backstage/auth/payorAddDiscountBenefit", //编辑折扣信息
payorDiscountDelete: "/backstage/auth/payorDiscountDelete", //删除折扣信息 payorDiscountDelete: "/backstage/auth/payorDiscountDelete", //删除折扣信息
/*-------------科室信息-----------------*/
specialtyCreate: "/backstage/auth/specialtyCreate", //新增科室
specialtyUpdate: "/backstage/auth/specialtyUpdate", //修改科室
specialtyListPage: "/backstage/auth/specialtyListPage", //科室列表
specialtyDelete: "/backstage/auth/specialtyDelete", //科室删除
}; };
...@@ -46,6 +46,11 @@ const GETREFCDBYREFGRP = (data) => { ...@@ -46,6 +46,11 @@ const GETREFCDBYREFGRP = (data) => {
return req.post(apis.getRefcdByRefgrp, data); return req.post(apis.getRefcdByRefgrp, data);
}; };
// 校验用户邮箱
const CHECKUSEREMAIL = (data) => {
return req.post(`${apis.checkUserEmail}?userName=${data.userName}`);
};
// 对象数组 // 对象数组
export default { export default {
GETUSERINFO, GETUSERINFO,
...@@ -56,4 +61,5 @@ export default { ...@@ -56,4 +61,5 @@ export default {
UPLOADIMG, UPLOADIMG,
GETCOVERAGECODE, GETCOVERAGECODE,
GETREFCDBYREFGRP, GETREFCDBYREFGRP,
CHECKUSEREMAIL,
}; };
...@@ -72,6 +72,24 @@ const PAYORDISCOUNTDELETE = (data) => { ...@@ -72,6 +72,24 @@ const PAYORDISCOUNTDELETE = (data) => {
return req.post(apis.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 { export default {
PROVIDERDETAIL, PROVIDERDETAIL,
...@@ -87,5 +105,9 @@ export default { ...@@ -87,5 +105,9 @@ export default {
PAYORDELETE, PAYORDELETE,
PAYORADDDISCOUNT, PAYORADDDISCOUNT,
PAYORADDDISCOUNTBENEFIT, PAYORADDDISCOUNTBENEFIT,
PAYORDISCOUNTDELETE PAYORDISCOUNTDELETE,
SPECIALTYCREATE,
SPECIALTYUPDATE,
SPECIALTYLISTPAGE,
SPECIALTYDELETE
}; };
...@@ -10,7 +10,7 @@ const service = axios.create({ ...@@ -10,7 +10,7 @@ const service = axios.create({
return status >= 200 && status <= 504; // 合法状态码 return status >= 200 && status <= 504; // 合法状态码
}, },
baseURL: process.env.VUE_APP_API, // 基础请求路径 baseURL: process.env.VUE_APP_API, // 基础请求路径
timeout: 10000, // 请求超时 timeout: 60000, // 请求超时
}); });
// 重复尝试此时 // 重复尝试此时
service.defaults.retry = 3; service.defaults.retry = 3;
......
...@@ -21,6 +21,7 @@ import { ...@@ -21,6 +21,7 @@ import {
modal, modal,
Spin, Spin,
Collapse, Collapse,
Tabs
} from "ant-design-vue"; } from "ant-design-vue";
export default () => { export default () => {
...@@ -46,6 +47,7 @@ export default () => { ...@@ -46,6 +47,7 @@ export default () => {
modal, modal,
Spin, Spin,
Collapse, Collapse,
Tabs
]; ];
// 注册 // 注册
els.forEach((item) => { els.forEach((item) => {
......
import bus from "../utils/bus"; import bus from "../utils/bus";
import {sexOptions} from '@/utils/utilsdictOptions.js' import {sexOptions, SendStatusOptions, ClaimsStatusOptions} from '@/utils/utilsdictOptions.js'
// 全局混入将会影响每个单文件组件,请慎重思考是否要混入 // 全局混入将会影响每个单文件组件,请慎重思考是否要混入
export default { export default {
...@@ -9,6 +9,7 @@ export default { ...@@ -9,6 +9,7 @@ export default {
}; };
}, },
filters: { filters: {
//过滤性别
formatSex(val){ formatSex(val){
if (!val) { if (!val) {
return; return;
...@@ -18,5 +19,25 @@ export default { ...@@ -18,5 +19,25 @@ export default {
}); });
return item? item.name: ""; 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: "";
},
} }
}; };
...@@ -8,9 +8,27 @@ const sexOptions = [{ ...@@ -8,9 +8,27 @@ const sexOptions = [{
value: 'F' 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'},
];
module.exports = { module.exports = {
sexOptions, sexOptions,
SendStatusOptions,
ClaimsStatusOptions,
} }
\ No newline at end of file
...@@ -111,15 +111,11 @@ export default { ...@@ -111,15 +111,11 @@ export default {
}); });
}, },
handlerNext() { handlerNext() {
this.$refs.form.validateField( this.$refs.form.validate((valid) => {
["userName", "verificationCode"], if (valid) {
(valid) => {
if (valid) {
return false;
}
this.activeStep = "2"; this.activeStep = "2";
} }
); });
}, },
handlerReset() { handlerReset() {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
...@@ -130,15 +126,43 @@ export default { ...@@ -130,15 +126,43 @@ export default {
this._reset({ userName, verificationCode, newPwd }); this._reset({ userName, verificationCode, newPwd });
}); });
}, },
_getVerifyEmail(data) { //校验用户邮箱
this.$apis.GETVERIFYEMAIL(data).then((res) => { checkUserEmail(data){
if (res.returnCode === "0000") { return new Promise((resolve,reject)=>{
this.$message.success(res.returnMsg || "发送成功"); this.$apis.CHECKUSEREMAIL({
} else { userName: data.userName
this.$message.error(res.returnMsg || "发送失败"); })
} .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) { _reset(data) {
this.$apis.RESETPASSWORD(data).then((res) => { this.$apis.RESETPASSWORD(data).then((res) => {
if (res.returnCode === "0000") { if (res.returnCode === "0000") {
...@@ -175,11 +199,11 @@ export default { ...@@ -175,11 +199,11 @@ export default {
.bd-b(solid, 31, transparent); .bd-b(solid, 31, transparent);
} }
&::before { &::before {
.l(-20); .l(-18.8);
.bd-r(solid, 20, #2b63ff); .bd-r(solid, 20, #2b63ff);
} }
&::after { &::after {
.r(-20); .r(-18.8);
.bd-l(solid, 20, #2b63ff); .bd-l(solid, 20, #2b63ff);
} }
} }
......
...@@ -50,6 +50,9 @@ ...@@ -50,6 +50,9 @@
:pagination="false" :pagination="false"
:customRow="handlerRowClick" :customRow="handlerRowClick"
> >
<template slot="sex" slot-scope="text">
<span>{{text | formatSex}}</span>
</template>
<template slot="operation" slot-scope="record"> <template slot="operation" slot-scope="record">
<a-button type="link" @click.stop="changeDataStatus(record)">修改</a-button> <a-button type="link" @click.stop="changeDataStatus(record)">修改</a-button>
<a-button type="link" @click.stop="printClaimPdf(record)">打印理赔申请书</a-button> <a-button type="link" @click.stop="printClaimPdf(record)">打印理赔申请书</a-button>
...@@ -69,7 +72,7 @@ ...@@ -69,7 +72,7 @@
import BurtPagination from "@/components/CUSTOMER/pagation"; import BurtPagination from "@/components/CUSTOMER/pagation";
import {downloadFile} from '@/utils/index' import {downloadFile} from '@/utils/index'
import moment from 'moment' import moment from 'moment'
import mixins from "@/mixins";
export default { export default {
data() { data() {
const dateFormat = (val) => { const dateFormat = (val) => {
...@@ -79,18 +82,10 @@ export default { ...@@ -79,18 +82,10 @@ export default {
{ title: "病历号", dataIndex: "mrnNo", width: 180, }, { title: "病历号", dataIndex: "mrnNo", width: 180, },
{ title: "客户姓名", dataIndex: "patientName", width: 120,}, { title: "客户姓名", dataIndex: "patientName", width: 120,},
{ title: "出生日期", dataIndex: "birthday", width: 170, customRender: dateFormat}, { title: "出生日期", dataIndex: "birthday", width: 170, customRender: dateFormat},
{ title: "性别", dataIndex: "sex", width: 80, customRender: (val) => { { title: "性别", dataIndex: "sex", width: 80, scopedSlots: { customRender: "sex" } },
if (val === 'M') {
return ''
}
if (val === 'F') {
return ''
}
return val
} },
{ title: "保险公司", dataIndex: "payorName", width: 180 }, { title: "保险公司", dataIndex: "payorName", width: 180 },
{ title: "保单号码", dataIndex: "policyNo", width: 190 }, { title: "保单号码", dataIndex: "policyNo", width: 190 },
{ title: "生效日期", dataIndex: "startDate", width: 170, customRender: dateFormat }, { title: "生效日期", dataIndex: "startDate", width: 170, customRender: dateFormat },
{ title: "保险终止日期", dataIndex: "endDate", width: 170, customRender: dateFormat }, { title: "保险终止日期", dataIndex: "endDate", width: 170, customRender: dateFormat },
{ title: "操作", key: "operation", width: "260px", fixed: "right", scopedSlots: { customRender: "operation" }}, { title: "操作", key: "operation", width: "260px", fixed: "right", scopedSlots: { customRender: "operation" }},
]; ];
...@@ -107,6 +102,7 @@ export default { ...@@ -107,6 +102,7 @@ export default {
}, },
}; };
}, },
mixins: [mixins],
components: { components: {
BurtPagination, BurtPagination,
}, },
......
<template> <template>
<div class="info-div"> <div class="info-div">
<Goback title="保险公司详情" /> <Goback title="保险公司详情" />
<a-form-model ref="form" layout="vertical"> <a-form-model ref="form" layout="vertical" :model="detailObj" :rules="formRules">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司名称"> <a-form-model-item label="保险公司名称" prop="longName">
<a-input v-model="detailObj.longName" placeholder="保险公司名称" /> <a-input v-model="detailObj.longName" placeholder="保险公司名称" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -13,11 +13,6 @@ ...@@ -13,11 +13,6 @@
<a-input v-model="detailObj.englishName" placeholder="保险公司英文名称" /> <a-input v-model="detailObj.englishName" placeholder="保险公司英文名称" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司Code">
<a-input v-model="detailObj.payorCode" placeholder="保险公司Code" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="国家"> <a-form-model-item label="国家">
<a-select v-model="detailObj.country" placeholder="请选择" showSearch> <a-select v-model="detailObj.country" placeholder="请选择" showSearch>
...@@ -28,7 +23,7 @@ ...@@ -28,7 +23,7 @@
</a-row> </a-row>
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="3" :sm="12"> <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 v-model="detailObj.status" placeholder="请选择">
<a-select-option value="1">有效</a-select-option> <a-select-option value="1">有效</a-select-option>
<a-select-option value="2">无效</a-select-option> <a-select-option value="2">无效</a-select-option>
...@@ -50,7 +45,7 @@ ...@@ -50,7 +45,7 @@
</a-row> </a-row>
</a-col> </a-col>
<a-col :lg="10" :sm="12"> <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-input v-model="detailObj.address" placeholder="保险公司地址" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -65,12 +60,12 @@ ...@@ -65,12 +60,12 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="4" :sm="12"> <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-input v-model="detailObj.contactPhone" placeholder="保险公司联系电话"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="客服电话"> <a-form-model-item label="客服电话" prop="customerTel">
<a-input v-model="detailObj.customerTel" placeholder="客服电话" /> <a-input v-model="detailObj.customerTel" placeholder="客服电话" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -80,7 +75,7 @@ ...@@ -80,7 +75,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12"> <a-col :lg="6" :sm="12">
<a-form-model-item label="保险公司邮件地址"> <a-form-model-item label="保险公司邮件地址" prop="email">
<a-input v-model="detailObj.email" placeholder="保险公司邮件地址" /> <a-input v-model="detailObj.email" placeholder="保险公司邮件地址" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -150,6 +145,7 @@ ...@@ -150,6 +145,7 @@
<script> <script>
import Goback from "@/components/CUSTOMER/goback"; import Goback from "@/components/CUSTOMER/goback";
import moment from "moment";
export default { export default {
props: { props: {
detailObj: { detailObj: {
...@@ -160,6 +156,14 @@ export default { ...@@ -160,6 +156,14 @@ export default {
data() { data() {
return { return {
countyList: [], 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: { components: {
...@@ -194,26 +198,32 @@ export default { ...@@ -194,26 +198,32 @@ export default {
}, },
//新建保存 //新建保存
handlerSava(){ handlerSava(){
let formData = { this.$refs.form.validate((valid) => {
...this.detailObj, if (valid) {
claimApplicationTemplate: this.detailObj.claimApplicationTemplate.length>0? this.detailObj.claimApplicationTemplate[0].url: '', let formData = {
authApplicationTemplate: this.detailObj.authApplicationTemplate.length>0? this.detailObj.authApplicationTemplate[0].url: '', ...this.detailObj,
} startDate: this.detailObj.startDate?moment(this.detailObj.startDate).format('YYYY-MM-DD HH:mm:ss'):'',
let api = this.detailObj.id? 'PAYORUPDATE': 'CREATEPAY'; endDate: this.detailObj.endDate?moment(this.detailObj.endDate).format('YYYY-MM-DD HH:mm:ss'):'',
this.$apis[api](formData) claimApplicationTemplate: this.detailObj.claimApplicationTemplate.length>0? this.detailObj.claimApplicationTemplate[0].url: '',
.then((res) => { authApplicationTemplate: this.detailObj.authApplicationTemplate.length>0? this.detailObj.authApplicationTemplate[0].url: '',
if (res.returnCode == "0000") {
this.$message.success("保存成功");
if(!this.detailObj.id){
this.$router.replace({
path: '/info/companyDetail',
query: {
id: res.content
}
})
} }
} else { let api = this.detailObj.id? 'PAYORUPDATE': 'CREATEPAY';
this.$message.error(res.returnMsg); 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);
}
});
} }
}); });
}, },
......
<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
This diff is collapsed.
...@@ -84,18 +84,18 @@ ...@@ -84,18 +84,18 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :sm="24"> <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-date-picker format="YYYY年MM月DD日" v-model="editFormObj.eobBackDate" placeholder="选择日期" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="eob回款(人民币)" prop="eobBackMoneyCny"> <a-form-model-item label="EOB回款(人民币)" prop="eobBackMoneyCny">
<a-input v-model.trim="editFormObj.eobBackMoneyCny" placeholder="eob回款(人民币)" /> <a-input v-model.trim="editFormObj.eobBackMoneyCny" placeholder="EOB回款(人民币)" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="eob回款(美元)" prop="eobBackMoneyUsd"> <a-form-model-item label="EOB回款(美元)" prop="eobBackMoneyUsd">
<a-input v-model.trim="editFormObj.eobBackMoneyUsd" placeholder="eob回款(美元)" /> <a-input v-model.trim="editFormObj.eobBackMoneyUsd" placeholder="EOB回款(美元)" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -317,9 +317,13 @@ export default { ...@@ -317,9 +317,13 @@ export default {
handleEditOK() { handleEditOK() {
this.$refs.editForm.validate((valid) => { this.$refs.editForm.validate((valid) => {
if (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.$apis.SAVEBACKMONEY({
...this.form, ...this.form,
backMoneyEobList: [this.editFormObj], backMoneyEobList: [editFormObj],
backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'', backDate: this.form.backDate? moment(this.form.backDate).format('YYYY-MM-DD 00:00:00'):'',
backMoneyNo: this.backMoneyNo, //回款编号 backMoneyNo: this.backMoneyNo, //回款编号
}) })
......
...@@ -46,7 +46,17 @@ ...@@ -46,7 +46,17 @@
<a-input v-model="form.eobRemark" placeholder="请输入备注"/> <a-input v-model="form.eobRemark" placeholder="请输入备注"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="6" :sm="12" class="none-label"> <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-form-model-item label="button">
<!-- <a-button type="primary">导出</a-button> --> <!-- <a-button type="primary">导出</a-button> -->
<a-button class="mar-left10" type="primary" @click="addNewEvt"> <a-button class="mar-left10" type="primary" @click="addNewEvt">
...@@ -74,8 +84,8 @@ ...@@ -74,8 +84,8 @@
<span>{{record.visitTimeStart? moment(record.visitTimeStart).format('YYYY-MM-DD'):''}}</span> ~ <span>{{record.visitTimeStart? moment(record.visitTimeStart).format('YYYY-MM-DD'):''}}</span> ~
<span>{{record.visitTimeEnd? moment(record.visitTimeEnd).format('YYYY-MM-DD'):''}}</span> <span>{{record.visitTimeEnd? moment(record.visitTimeEnd).format('YYYY-MM-DD'):''}}</span>
</template> </template>
<template slot="sendSts" slot-scope="record, text"> <template slot="claimsStatus" slot-scope="text">
<span>{{text==1?'已寄送':'未寄送'}}</span> <span>{{text | formatClaimsStatus}}</span>
</template> </template>
<template slot="operation" slot-scope="text, record"> <template slot="operation" slot-scope="text, record">
<a-button type="link" @click.stop="editEvt(record)">修改</a-button> <a-button type="link" @click.stop="editEvt(record)">修改</a-button>
...@@ -90,21 +100,20 @@ ...@@ -90,21 +100,20 @@
<a-form-model ref="editForm" :model="editFormObj" :rules="editRules"> <a-form-model ref="editForm" :model="editFormObj" :rules="editRules">
<a-row :gutter="30"> <a-row :gutter="30">
<a-col :lg="12" :sm="24"> <a-col :lg="12" :sm="24">
<a-form-model-item label="理赔状态" prop="paidSts"> <a-form-model-item label="理赔状态" prop="claimsStatus">
<a-select v-model="editFormObj.sendSts" placeholder="请选择理赔状态" allowClear> <a-select v-model="editFormObj.claimsStatus" placeholder="请选择理赔状态" allowClear>
<a-select-option :value="1">待核销</a-select-option> <a-select-option v-for="(item,i) in ClaimsStatusOptions" :key="i" :value="item.value">{{item.name}}</a-select-option>
<a-select-option :value="2">已核销</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="账单回款金额" prop="paidAmountEob"> <a-form-model-item label="账单回款金额" prop="paidAmountEob">
<a-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" /> <a-input v-model.trim="editFormObj.paidAmountEob" placeholder="账单回款金额" type="number" @change="moneyChange" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
<a-form-model-item label="未赔付金额" prop="refuseAmountEob"> <a-form-model-item label="未赔付金额" prop="refuseAmountEob">
<a-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" /> <a-input v-model.trim="editFormObj.refuseAmountEob" placeholder="未赔付金额" type="number" disabled />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :lg="12" :xs="24"> <a-col :lg="12" :xs="24">
...@@ -122,12 +131,14 @@ ...@@ -122,12 +131,14 @@
import Goback from "@/components/CUSTOMER/goback"; import Goback from "@/components/CUSTOMER/goback";
import BurtPagination from "@/components/CUSTOMER/pagation"; import BurtPagination from "@/components/CUSTOMER/pagation";
import moment from "moment"; import moment from "moment";
import {ClaimsStatusOptions} from '@/utils/utilsdictOptions.js'
import mixins from "@/mixins";
const columns = [ const columns = [
{ title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 100 }, { title: "账单编号", dataIndex: "receiptNo", ellipsis: true, width: 100 },
{ title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 }, { title: "客户姓名", dataIndex: "patientName", ellipsis: true, width: 85 },
{ title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 }, { title: "保险公司", dataIndex: "payorName", ellipsis: true, width: 80 },
{ title: "就诊日期", dataIndex: "visitTimeStart", ellipsis: true, width: 110, scopedSlots: { customRender: "visitTimeStart" } }, { 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: "receiptAmount", ellipsis: true, width: 85 },
{ title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 }, { title: "自付金额", dataIndex: "selfpaidAmount", ellipsis: true, width: 85 },
{ title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 }, { title: "理赔金额", dataIndex: "eobPaidAmount", ellipsis: true, width: 85 },
...@@ -143,6 +154,7 @@ export default { ...@@ -143,6 +154,7 @@ export default {
return { return {
dialogShow: false, dialogShow: false,
columns, columns,
ClaimsStatusOptions,
eobNo: '', //eob编号 eobNo: '', //eob编号
form: { form: {
eobDate: '', eobDate: '',
...@@ -151,7 +163,8 @@ export default { ...@@ -151,7 +163,8 @@ export default {
eobAmountCny: '', eobAmountCny: '',
eobAmountUsd: '', eobAmountUsd: '',
eobSts: '', eobSts: '',
eobRemark: '' eobRemark: '',
eobFile: []
}, },
dataList: [], dataList: [],
isEditNewEob: false, //是否在新建EOB isEditNewEob: false, //是否在新建EOB
...@@ -164,7 +177,7 @@ export default { ...@@ -164,7 +177,7 @@ export default {
selectedRowKeys: [], // Check here to configure the default column selectedRowKeys: [], // Check here to configure the default column
editFormObj: { editFormObj: {
receiptNo: '', receiptNo: '',
paidSts: '', claimsStatus: '',
paidAmountEob: '', paidAmountEob: '',
refuseAmountEob: '' refuseAmountEob: ''
}, },
...@@ -173,6 +186,7 @@ export default { ...@@ -173,6 +186,7 @@ export default {
}, },
}; };
}, },
mixins: [mixins],
components: { components: {
Goback, Goback,
BurtPagination, BurtPagination,
...@@ -182,7 +196,20 @@ export default { ...@@ -182,7 +196,20 @@ export default {
this._getCompanyOptions(); this._getCompanyOptions();
if(this.eobNo){ if(this.eobNo){
let EobDataDetail = localStorage.getItem('EobDataDetail'); 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(); this.getData();
} }
}, },
...@@ -206,6 +233,10 @@ export default { ...@@ -206,6 +233,10 @@ export default {
this.isEditNewEob = false; this.isEditNewEob = false;
this.getData(); this.getData();
}, },
//回款金额改变
moneyChange(){
this.editFormObj.refuseAmountEob = this.form.eobPaidAmount||0 - this.editFormObj.paidAmountEob||0;
},
// 获取保险公司下拉选项 // 获取保险公司下拉选项
_getCompanyOptions() { _getCompanyOptions() {
this.$apis.GETCOMPANYOPTIONS().then((res) => { this.$apis.GETCOMPANYOPTIONS().then((res) => {
...@@ -230,13 +261,17 @@ export default { ...@@ -230,13 +261,17 @@ export default {
}, },
//修改单条数据 //修改单条数据
editEvt(record) { editEvt(record) {
this.editFormObj = {
receiptNo: record.receiptNo,
refuseAmountEob: record.refuseAmountEob || "",
paidSts: record.paidSts || "",
paidAmountEob: record.paidAmountEob || "",
};
this.dialogShow = true; 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() { handleEditOK() {
...@@ -244,6 +279,7 @@ export default { ...@@ -244,6 +279,7 @@ export default {
if (valid) { if (valid) {
this.$apis.SAVEEOBRECEIPTINFO({ this.$apis.SAVEEOBRECEIPTINFO({
...this.form, ...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: [this.editFormObj], eobReceiptList: [this.editFormObj],
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'' eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):''
}) })
...@@ -314,6 +350,7 @@ export default { ...@@ -314,6 +350,7 @@ export default {
this.dataList.forEach((item,index)=>{ this.dataList.forEach((item,index)=>{
if(this.selectedRowKeys.indexOf(index)!=-1){ if(this.selectedRowKeys.indexOf(index)!=-1){
eobReceiptList.push({ eobReceiptList.push({
id: item.id,
receiptNo: item.receiptNo, receiptNo: item.receiptNo,
refuseAmountEob: item.refuseAmountEob, refuseAmountEob: item.refuseAmountEob,
paidSts: item.paidSts, paidSts: item.paidSts,
...@@ -323,6 +360,7 @@ export default { ...@@ -323,6 +360,7 @@ export default {
}) })
let formData = { let formData = {
...this.form, ...this.form,
eobFile: this.form.eobFile.length>0? this.form.eobFile[0].url: '',
eobReceiptList: eobReceiptList, eobReceiptList: eobReceiptList,
eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'', eobDate: this.form.eobDate?moment(this.form.eobDate).format('YYYY-MM-DD 00:00:00'):'',
eobNo: this.eobNo eobNo: this.eobNo
...@@ -342,6 +380,30 @@ export default { ...@@ -342,6 +380,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;
})
} }
}, },
}; };
......
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