Commit cc694ddf authored by yanglilong's avatar yanglilong

'医疗机构'

parent 6ba1d797
// 信息管理api
export default {};
export default {
providerDetail: "/backstage/auth/providerDetail", //医疗机构列表
doctorList: "/backstage/auth/doctorList", //医生列表
doctorDelete: "/backstage/auth/doctorDelete", //删除医生
doctorUpdate: "/backstage/auth/doctorUpdate", //修改医生
};
// 信息维护函数库
// import apis from "../apis_moudles/index";
// import req from "../request";
// 医疗机构函数库
import apis from "../apis_moudles/index";
import req from "../request";
//医疗机构列表
const PROVIDERDETAIL = () => {
return req.post(apis.providerDetail);
};
//医生列表
const DOCTORLIST = (data) => {
return req.post(apis.doctorList, data);
};
//删除医生
const DOCTORDELETE = (data) => {
return req.post(apis.doctorDelete, data);
};
//修改医生
const DOCTORUPDATE = (data) => {
return req.post(apis.doctorUpdate, data);
};
// 对象数组
export default {};
export default {
PROVIDERDETAIL,
DOCTORLIST,
DOCTORDELETE,
DOCTORUPDATE
};
......@@ -17,8 +17,9 @@ import {
Button,
notification,
popconfirm,
Modal
Modal,
modal,
Spin
} from "ant-design-vue";
export default () => {
......@@ -40,8 +41,9 @@ export default () => {
Button,
notification,
popconfirm,
Modal
Modal,
modal,
Spin
];
// 注册
els.forEach((item) => {
......
<template>
<div class="flex loading-container">
<a-spin />
<span class="txt">正在查询</span>
</div>
</template>
<script>
export default{
name: 'Loading',
data(){
return {
isShow: false
}
}
}
</script>
<style lang="less" scoped>
.loading-container{
width: 159px;
height: 44px;
background: #F8FAFF;
box-shadow: 0px 2px 4px 0px rgba(208,220,254,1);
border-radius: 22px;
justify-content: center;
position: absolute;
z-index: 10;
top: 22px;
left: 50%;
transform: translateX(-50%);
.txt{
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #252631;
line-height: 22px;
margin-left: 12px;
}
.ant-spin{
margin-top: 4px;
}
}
</style>
import Layout from '@/layout'
// 信息管理路由表,分包名称:info
export default {
path: "/info",
name: "Info",
component: () => {
return import(/* webpackChunkName: "info" */ "@/views/info");
},
component: Layout,
children: [
{
path: "",
name: "InfoMedical",
component: () => import("@/views/info/index")
},
{
path: "company",
name: "InfoCompany",
component: () => import("@/views/info/company")
}
]
};
......@@ -74,7 +74,7 @@ export default [
title: "医疗机构信息",
},
{
path: "/info",
path: "/info/company",
title: "保险公司信息",
},
],
......
<template>
<div class="index">
<!-- 保险公司信息 -->
保险公司信息
</div>
</template>
<script>
export default {
data() {
return {};
},
computed: {},
watch: {},
methods: {},
};
</script>
<style lang="less" scoped></style>
<template>
<div class="index">
<!-- 信息维护 -->
信息维护
<div class="white_bg burt-container">
<div class="title-div">申请日期</div>
<a-form-model ref="form" layout="vertical">
<a-row :gutter="30">
<a-col :lg="6" :sm="12">
<a-form-model-item label="医疗机构名称">
<a-input v-model="detailObj.longName" placeholder="医疗机构名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="医疗机构英文名">
<a-input
v-model="detailObj.englishName"
placeholder="医疗机构英文名"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="营业时间">
<a-date-picker
v-model="detailObj.businessHours"
format="YYYY年MM月DD日"
placeholder="选择日期"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="联系电话">
<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-input
v-model="detailObj.address"
placeholder="诊所地址(中文)"
/>
</a-form-model-item>
</a-col>
<a-col :lg="10" :sm="12">
<a-form-model-item label="诊所地址(英文)">
<a-input
v-model="detailObj.englishAddr"
placeholder="诊所地址(英文)"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div class="title-div">账户信息-人民币账户</div>
<a-form-model layout="vertical">
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="账户名称">
<a-input v-model="detailObj.accountName" placeholder="账户名称" />
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="银行名称">
<a-input v-model="detailObj.bankName" placeholder="银行名称" />
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="银行账号">
<a-input
v-model="detailObj.bankAccount"
type="number"
placeholder="银行账号"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div class="title-div">财务信息-美金币账户</div>
<a-form-model layout="vertical">
<a-row :gutter="30">
<a-col :lg="8" :sm="12">
<a-form-model-item label="Beneficiiary Name 账号">
<a-input
v-model="detailObj.accountNameEng"
placeholder="Beneficiiary Name 账号"
/>
</a-form-model-item>
</a-col>
<a-col :lg="6" :sm="12">
<a-form-model-item label="Bank Account No 银行账号">
<a-input
v-model="detailObj.bankAccountEng"
placeholder="Bank Account No 银行账号"
/>
</a-form-model-item>
</a-col>
<a-col :lg="8" :sm="12">
<a-form-model-item label="Bank Name 银行名称">
<a-input
v-model="detailObj.bankAddrEng"
type="number"
placeholder="Bank Name 银行名称"
/>
</a-form-model-item>
</a-col>
<a-col :sm="12">
<a-form-model-item label="Bank Address 银行地址">
<a-input
v-model="detailObj.bankAddr"
type="number"
placeholder="Bank Address 银行地址"
/>
</a-form-model-item>
</a-col>
<a-col :sm="12">
<a-form-model-item label="Swift Code 国际电汇代码">
<a-input
v-model="detailObj.telegraphicTransferCode"
type="number"
placeholder="Swift Code 国际电汇代码"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<!-- 暂时不用
<div class="flex borderBox upload-div">
<a-upload name="file">
<a-button type="primary">上传价目表文件</a-button>
</a-upload>
</div> -->
<div class="title-div">医生信息</div>
<a-table
:columns="columns"
:data-source="dataList"
:scroll="{ x: true }"
:pagination="false"
>
<template slot="specialtyList" slot-scope="text, record">
<a-select
v-if="record.edit"
v-model="record.specialtyList2"
placeholder="请选择"
mode="multiple"
>
<a-select-option
:value="item.id"
v-for="item in specialtyList"
:key="item.id"
>{{ item.specialtyDesc }}</a-select-option
>
</a-select>
<span v-else>{{ filterSpecialty(record.specialtyList2) }}</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click.stop="editEvt(record, index)">{{
record.edit ? "保存" : "修改"
}}</a-button>
<a-button type="link" class="success">新增</a-button>
<a-button type="link" class="danger" @click.stop="delRecord(index)"
>删除</a-button
>
</template>
</a-table>
<!--分页-->
<div
class="flex my-pagination"
v-if="pagination.total > pagination.pageSize"
>
<a-pagination
v-model="pagination.pageNum"
:total="pagination.total"
:page-size="pagination.pageSize"
:item-render="itemRender"
@change="pageChange"
/>
<a-input
v-model.trim="jumpPage"
class="jump-page"
type="number"
:min="0"
@blur="inputPageChange"
/>
</div>
</div>
</template>
<script>
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: "170px",
},
];
export default {
data() {
return {};
return {
columns,
dataList: [],
detailObj: {}, //详细信息
pagination: {
pageNum: 1,
pageSize: 10,
total: 100,
},
jumpPage: "",
specialtyList: [], //科室列表
specialtyObj: {}, //科室对象
};
},
async created() {
this.getSpecialtyList();
await this.getDetail();
this.getDoctorList();
},
methods: {
itemRender(current, type, originalElement) {
if (type === "prev") {
return <li class="page pre">上一页</li>;
} else if (type === "next") {
return <li class="page next">下一页</li>;
} else if (type === "page") {
//当前页面
if (current == this.pagination.pageNum) {
return (
<div class="cur-page page">
<span class="cur">{current}</span>/
<span class="total">
{Math.ceil(this.pagination.total / this.pagination.pageSize)}
</span>
</div>
);
} else {
return null;
}
} else if (type == "jump-prev") {
return null;
} else if (type == "jump-next") {
return null;
}
return originalElement;
},
filterSpecialty(val) {
let txt = (val || []).map((item) => {
return this.specialtyObj[item] || "";
});
return txt.join(",");
},
inputPageChange() {
this.jumpPage = parseInt(this.jumpPage);
let pages = Math.ceil(this.pagination.total / this.pagination.pageSize);
this.jumpPage = this.jumpPage < 0 ? 0 : this.jumpPage;
this.jumpPage = this.jumpPage > pages ? pages : this.jumpPage;
this.pagination.pageNum = this.jumpPage;
this.getDoctorList();
},
pageChange(pager) {
this.pagination.pageNum = pager;
this.getDoctorList();
},
handlerSearch() {
this.pagination.pageNum = 1;
this.getData();
},
//获取科室
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);
}
});
},
//获取详细信息
getDetail() {
return new Promise((resolve, reject) => {
this.$apis.PROVIDERDETAIL().then((res) => {
if (res.returnCode == "0000") {
this.detailObj = res.content || {};
resolve();
} else {
this.$message.error(res.returnMsg);
reject();
}
});
});
},
//获取医生列表
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 specialtyList2 = (item.specialtyList || []).map(
(innerItem) => {
return innerItem.specialtyId;
}
);
return {
...item,
specialtyList2: specialtyList2 || [],
edit: false,
};
});
} else {
this.$message.error(res.returnMsg);
}
});
},
//编辑
editEvt(record, index) {
this.dataList.forEach((item, i) => {
if (index != i) {
item.edit = false;
}
});
record.edit = !record.edit;
//保存
if (!record.edit) {
this.$apis
.DOCTORUPDATE({
id: record.id,
specialtyList: record.specialtyList2.map((item) => {
return {
specialtyId: item,
};
}),
})
.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);
}
});
},
});
},
},
computed: {},
watch: {},
methods: {},
};
</script>
<style lang="less" scoped></style>
<style lang="less" scoped>
.ant-form {
margin-top: 30px;
}
.none-label {
text-align: right;
.ant-form-item-label {
opacity: 0;
}
}
.ant-btn .icon-class {
.mg-r(10);
}
.success.ant-btn-link {
color: #4cd964;
}
.danger.ant-btn-link {
color: #ff3b30;
}
.title-div {
line-height: 56px;
color: #252631;
font-weight: bold;
border-bottom: 1px solid #eee;
}
.upload-div {
height: 60px;
background: #f8fafb;
padding-left: 20px;
margin-bottom: 30px;
}
.my-pagination {
justify-content: flex-end;
margin-top: 33px;
.page {
width: 80px;
height: 36px;
line-height: 36px;
background: #f8fafb;
font-weight: 400;
color: #252631;
&.cur-page {
background: transparent;
}
span {
font-size: 16px;
font-weight: 400;
&.cur {
color: #4d7cfe;
}
}
}
.jump-page {
width: 80px;
margin-left: 30px;
height: 36px;
text-align: center;
}
}
::v-deep .ant-pagination-jump-prev,
::v-deep .ant-pagination-jump-next {
display: none !important;
}
</style>
......@@ -20,7 +20,7 @@ export default {
components: {
Header,
Menu,
SubMenu,
SubMenu
},
data() {
return {};
......@@ -42,6 +42,7 @@ export default {
.pt(68);
// min-height: calc(100vh - 50px);
.content {
position: relative;
flex: 1;
.mg-l(242);
.pa(14, 40, 0, 40);
......
......@@ -56,12 +56,12 @@
</a-row>
</a-form-model>
<!-- table -->
<a-table
:columns="columns"
:data-source="dataList"
:scroll="{ x: true }"
:pagination="pagination"
@change="pageChange"
<a-table
:columns="columns"
:data-source="dataList"
:scroll="{ x: true }"
:pagination="pagination"
@change="pageChange"
>
<template slot="operation" slot-scope="record,index">
<a-button type="link">修改</a-button>
......@@ -74,7 +74,7 @@
<script>
const columns =[
{ title: "序号", dataIndex: "mrnNo", ellipsis: true, width: 180 },
{ title: "序号", dataIndex: "mrnNo", ellipsis: true, width: 180 },
{ title: "EOB姓名", dataIndex: "patientName", ellipsis: true, width: 180 },
{ title: "核销时间", dataIndex: "patientName2", ellipsis: true, width: 180 },
{ title: "保险公司", dataIndex: "patientName3", ellipsis: true, width: 180 },
......
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