<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="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: 'max-content' }"
      :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>
    <!--分页-->
    <BurtPagination :pagination="pagination" @pageChange="getDoctorList" />
  </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: "170px",
  },
];
export default {
  data() {
    return {
      columns,
      dataList: [],
      detailObj: {}, //详细信息
      pagination: {
        pageNum: 1,
        pageSize: 10,
        total: 0,
      },
      specialtyList: [], //科室列表
      specialtyObj: {}, //科室对象
    };
  },
  components: {
    BurtPagination,
  },
  async created() {
    this.getSpecialtyList();
    await this.getDetail();
    this.getDoctorList();
  },
  methods: {
    filterSpecialty(val) {
      let txt = (val || []).map((item) => {
        return this.specialtyObj[item] || "";
      });
      return txt.join(",");
    },
    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);
              }
            });
        },
      });
    },
  },
};
</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>