<template>
  <div class="app-content" style="height: 65vh;overflow: auto;">
    <a-spin :spinning="loading" style="width: 100%;height: 100%;">
      <div style="width:100%; height: 36px;">
        <a :href="url" download="memberInfo.xlsx">
          <a-icon type="download"></a-icon>&nbsp;<span style="color:green;text-decoration:underline;">模板下载</span>
        </a>
        <up-load @beforeUpload="beforeUpload" />
      </div>
      <div style="width:100%;height: calc(100% - 72px);overflow: auto;">
        <a-table :dataSource="tableData"  :columns="columns" rowKey="index" :pagination="false" :loading="loading" bordered size="small">
        </a-table>
      </div>
      <div style="text-align:center;width:100%; height: 36px;">
        <a-button type="primary" @click="dataImport" :disabled="disabled">导入</a-button>
      </div>
    </a-spin>
  </div>
</template>
<script>
import { isEmptyParams, readExcelFile, personGender, personBirthday, checkIdentitytionId, checkEmail, checkPhone } from "@/views/utils/common"
import moment from "moment"

export default {
  name: "expertImport",
  data () {
    return {
      columns: [
        { title: "姓名", dataIndex: "name", align: 'center' },
        { title: "出生日期", dataIndex: "birthday", align: 'center' },
        { title: "性别", dataIndex: "sex", align: 'center' },
        { title: "职称", dataIndex: "titleName", align: 'center' },
        { title: "学位", dataIndex: "degreeName", align: 'center' },
        { title: '工作单位', dataIndex: 'workUnit', align: 'center' },
        { title: '电话', dataIndex: 'mobile', align: 'center' },
        { title: '电子邮箱', dataIndex: 'email', align: 'center' },
        { title: '证件号码', dataIndex: 'certId', align: 'center' },
        { title: '项目分工', dataIndex: 'projWork', align: 'center' },
        { title: '每年工作(月)', dataIndex: 'forMonths', align: 'center' },
      ],
      tableData: [],
      disabled: true,
      loading: false,
      url: '/downloadFile/memberInfo.xlsx',
    };
  },
  created () {

  },
  methods: {
    beforeUpload (file) {
      this.tableData = []
      let list = readExcelFile(file, 0)
      let certList = []
      let mobileList = []
      let exportList = []

      list.then((d) => {
        //读取文件数据
        d.forEach(e => {
          let gender = personGender(e.证件号)
          let birthday = personBirthday(e.证件号) + ' 00:00:00'
          let expert = { personName: e.姓名, certId: e.证件号, sex: gender, birthday: moment(birthday).format('YYYY-MM-DD HH:mm:ss'), mobile: e.手机号, email: e.邮箱, specName: e.专业, titleName: e.职称, unitName: e.单位 }
          exportList.push(expert)
          certList.push(e.证件号)
          mobileList.push(e.手机号)
        })

        let uniqueMobileList = [...new Set(mobileList)]
        if (uniqueMobileList.length != exportList.length) {
          this.$message.error('手机号出现重复!')
          return false
        }

        let uniqueCertList = [...new Set(certList)]
        if (uniqueCertList.length != exportList.length) {
          this.$message.error('证件号出现重复!')
          return false
        }

        if (exportList.length > 0) {
          this.tableData = exportList
          this.disabled = false
        }
      })

      return false
    },
    dataImport () {
      if (this.tableData.length == 0) {
        this.$message.error('请选择Excel!')
        return
      }
      let pars = isEmptyParams(this.tableData)
      let par = { ...pars }
      this.$api.expert.expertImport(this.tableData).then(({ data = {} }) => {
        if (data) {
          this.$message.info(data)
          this.tableData = []
        }
      })
    }
  },
};
</script>
<style scoped lang="less">
::v-deep .ant-spin-container {
  width: 100%;
  height: 100%;
}
</style>