<template> <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="8" :sm="12"> <a-form-model-item label="医疗机构名称"> <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-input v-model="detailObj.englishName" placeholder="医疗机构英文名" /> </a-form-model-item> </a-col> <a-col :lg="8" :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-col :sm="12"> <a-form-model-item label="营业时间"> <a-textarea v-model="detailObj.businessHours" placeholder="请输入营业时间" :auto-size="{ minRows: 3, maxRows: 5 }" /> </a-form-model-item> </a-col> </a-row> </a-form-model> <div class="title-div">账户信息-人民币账户</div> <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="Beneficiary账户名称"> <a-input v-model="detailObj.accountNameEng" placeholder="Beneficiary账户名称" /> </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-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> <!-- 暂时不用 <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: '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> </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 { 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" }, ], }, }; }, components: { BurtPagination, }, async created() { this.getSpecialtyList(); await this.getDetail(); this.getDoctorList(); this.getRefcdByRefgrp(); }, 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); } }); }, //获取详细信息 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 specialtyList = (item.specialtyList || []).map( (innerItem) => { return innerItem.specialtyId; } ); return { ...item, specialtyList: specialtyList || [], }; }); } else { this.$message.error(res.returnMsg); } }); }, //保存 saveEvt(){ this.$apis.PROVIDERUPDATE({...this.detailObj}) .then((res) => { if (res.returnCode == "0000") { this.$message.success("保存成功"); } 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); } }); } }); }, //删除医生 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> .ant-form { margin-top: 30px; } .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; } </style>