<template>
  <section class="enterpriseDialog">
    <div class="top">
      <div class="top-left" v-html="txtLogo"/>
      <div class="top-right">
        <div class="top-right__top">
          <h2>{{ info.enterpriseName }}</h2>
          <!-- <div class="right">
            <span>下载报告</span>
          </div> -->
        </div>
        <div class="top-right__bottom">
          <ai-wrapper
              label-width="130px">
            <ai-info-item label="法人姓名："><span style="color: #1890FF;">{{ info.legalPersonName }}</span></ai-info-item>
            <ai-info-item label="企业类型：" :value="dict.getLabel('enterpriseType', info.enterpriseType)"></ai-info-item>
            <ai-info-item label="统一社会信用代码：" :value="info.unifiedCode"></ai-info-item>
            <ai-info-item label="地址：" isLine :value="info.areaName + info.address"></ai-info-item>
            <ai-info-item label="经营范围：" isLine :value="info.businessScope"></ai-info-item>
          </ai-wrapper>
        </div>
      </div>
    </div>
    <div class="bottom">
      <div class="tab">
        <span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">行政许可</span>
        <span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">行政处罚</span>
        <span :class="[currIndex === 2 ? 'active' : '']" @click="currIndex = 2">良好信息</span>
        <span :class="[currIndex === 3 ? 'active' : '']" @click="currIndex = 3">失信信息</span>
      </div>
      <div class="table">
        <template v-if="currIndex === 0">
          <ai-table :dict="dict" :tableData="info.adminstrativeLicenseList" :col-configs="colConfigs1"
                    :isShowPagination="false" border tableSize="small" @getList="() => {}"/>
        </template>
        <ai-table :dict="dict"
                  v-if="currIndex === 1"
                  :tableData="info.administrativeSanctionList"
                  :col-configs="colConfigs2"
                  :isShowPagination="false"
                  border
                  tableSize="small"
                  @getList="() => {}"/>
        <ai-table :dict="dict"
                  v-if="currIndex === 2"
                  :tableData="info.taxInfoList"
                  :col-configs="colConfigs3"
                  :isShowPagination="false"
                  border
                  tableSize="small"
                  @getList="() => {}"/>
        <div class="table-item" v-if="currIndex==3">
          <h2>失信被执行人信息</h2>
          <ai-table :dict="dict" :tableData="info.dishonestPersonList" :col-configs="colConfigs4"
                    :isShowPagination="false" border tableSize="small" @getList="() => {}"/>
          <h2 style="margin-top: 30px;">公共事业欠缴费信息</h2>
          <ai-table :dict="dict" :tableData="info.puaInfoList" :col-configs="colConfigs5"
                    :isShowPagination="false" border tableSize="small" @getList="() => {}"/>
        </div>
      </div>
    </div>
  </section>
</template>

<script>
import {mapState} from "vuex";

export default {
  name: "enterpriseDialog",
  computed: {
    ...mapState(['user']),
    isFinanceUser() {
      return !!this.user.financeUser?.id
    },
    txtLogo() {
      return this.info.enterpriseName?.substring(0, 4)?.replace(/(.{2})(.{2})/, '$1<br/>$2') || ""
    }
  },
  data() {
    return {
      info: {},
      currIndex: 0,
      colConfigs1: [
        {prop: 'licenseCode', label: '行政许可决定文书号'},
        {prop: 'decisionDate', align: 'center', label: '许可决定日期'},
        {prop: 'endDate', align: 'center', label: '许可有效期至'},
        {prop: 'licenseOrganization', align: 'center', label: '许可机关'},
        {prop: 'licenseContent', align: 'center', label: '许可内容'},
        {prop: 'createTime', align: 'center', label: '数据更新时间'}
      ],
      colConfigs2: [
        {prop: 'sanctionCode', width: '190', label: '行政处罚决定文书号'},
        {prop: 'sanctionDate', align: 'center', label: '处罚决定日期'},
        {prop: 'sanctionType', align: 'center', label: '处罚类型', dict: "administrativeSanctionType"},
        {prop: 'sanctionContent', align: 'center', label: '处罚内容'},
        {prop: 'sanctionBasis', align: 'center', label: '处罚依据'},
        {prop: 'sanctionOrganization', align: 'center', label: '处罚机关'},
        {prop: 'createTime', align: 'center', label: '数据更新时间'}
      ],
      colConfigs3: [
        {prop: 'taxpayer', label: '纳税人名称'},
        {prop: 'taxpayerNumber', align: 'center', label: '纳税人识别号'},
        {prop: 'taxLevel', align: 'center', label: '纳税人等级'},
        {prop: 'taxYear', align: 'center', label: '年份'},
        {prop: 'evaluationUnit', align: 'center', label: '评价单位'},
        {prop: 'createTime', align: 'center', label: '数据更新时间'}
      ],
      colConfigs4: [
        {prop: 'executionCode', label: '执行案号'},
        {prop: 'executionTime', align: 'center', label: '执行时间'},
        {prop: 'dishonestFact', align: 'center', label: '失信事实'},
        {prop: 'executionSituation', align: 'center', label: '履行情况', dict: "dishonestPersonSituation"},
        {prop: 'executionCourt', align: 'center', label: '执行法院'},
        {prop: 'executionTime', align: 'center', label: '数据更新时间'}
      ],
      colConfigs5: [
        {prop: 'arrearsAmount', label: '欠费金额（万元）'},
        {prop: 'arrearsType', align: 'center', label: '欠缴类型名称', dict: "arrearsType"},
        {prop: 'deadlineForArrearsStatistics', align: 'center', label: '欠缴统计截止日期'},
        {prop: 'dishonestySeverity', align: 'center', label: '失信严重程度', dict: "dishonestySeverity"},
        {prop: 'validityPeriodOfDishonesty', align: 'center', label: '失信行为有效期'},
        {prop: 'sourceOrganization', align: 'center', label: '数据来源机构'},
        {prop: 'createTime', align: 'center', label: '数据更新时间'}
      ]
    }
  },
  created() {
    this.dict.load("dishonestPersonSituation", "administrativeSanctionType", "enterpriseType", 'arrearsType', 'dishonestySeverity')
    this.getCompanyInfo()
  },
  methods: {
    getCompanyInfo() {
      let {enterpriseId: id} = this
      this.instance.post(`/appportaluserenterprise/queryCreditEnterpriseDetailById`, null, {
        withoutToken: true,
        params: {id}
      }).then(res => {
        if (res?.data) {
          this.info = res.data
        }
      })
    }
  },
  props: {
    instance: Function,
    dict: Object,
    permissions: Function,
    enterpriseId: {required: true, default: ""}
  }
}
</script>

<style lang="scss" scoped>
.enterpriseDialog {
  .table-item {
    h2 {
      margin-bottom: 16px;
      color: #333333;
      font-size: 18px;
      font-weight: 600;
    }
  }

  .top {
    display: flex;
    margin-bottom: 20px;
    padding: 34px 30px 16px;
    border: 1px solid #EEEEEE;
    border-radius: 4px;

    .top-left {
      margin-right: 31px;
      padding: 12px 16px;
      background: #8CA3CD;
      color: #FFFFFF;
      font-size: 22px;
      line-height: 30px;
      letter-spacing: 4px;
      border-radius: 8px;
      height: fit-content;
    }

    .top-right {
      flex: 1;

      .top-right__top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 27px;

        h2 {
          color: #333333;
          font-size: 22px;
        }

        .right {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 97px;
          height: 32px;
          background: #E8F4FF;
          border: 1px solid #A3D3FF;
          border-radius: 3px;
          color: #1890FF;
          font-size: 13px;
          cursor: pointer;

          &:hover {
            opacity: 0.6;
          }
        }
      }

      .top-right__bottom {
        padding: 16px 10px 10px 0;
        background: #F6FBFF;
      }
    }
  }

  .bottom {
    padding-bottom: 20px;
    border: 1px solid #DCDFE6;
    border-radius: 4px;

    .tab {
      display: flex;
      align-items: center;
      height: 60px;
      margin-bottom: 15px;
      background: #FAFAFA;
      border-radius: 4px;

      span {
        flex: 1;
        height: 100%;
        line-height: 60px;
        text-align: center;
        color: #555555;
        font-size: 16px;
        cursor: pointer;
        border-bottom: 1px solid #DCDFE6;
        border-right: 1px solid #DCDFE6;
        transition: all ease 0.3s;
        user-select: none;

        &:last-child {
          border-right: none;
        }

        &.active {
          border-bottom: 1px solid transparent;
          background: #fff;
          color: #1890FF;
        }
      }
    }

    .table {
      padding: 0 16px;
    }
  }
}
</style>
