Newer
Older
smartKitchenFront / src / components / mycomponent / dialog / salesDialog / supplierInfoDialog.vue
<!--供应商详情弹窗-->
<template>
  <el-dialog title="供应商详情" width="1165px" :visible.sync="isShowInfo" append-to-body @close="close">
    <div class="deviceDialog ">
      <!-- {{personInfo}} -->
      <div class="headInfo">
        <div class="inputContent">
          <input-vue v-model="baseInfo.supplierCode" title="单位编号" width="200px" disabled="true" />
          <input-vue v-model="baseInfo.supplierName" title="单位名称" width="200px" disabled="true" />
          <input-vue v-model="baseInfo.supplierAreaName" title="所在区域" width="200px" disabled="true" />
        </div>
        <div class="inputContent">
          <input-vue v-model="baseInfo.companyNatureName" title="单位性质" width="200px" disabled="true" />
          <input-vue v-model="baseInfo.companyTypeName" title="企业类型" width="200px" disabled="true" />
          <input-vue v-model="baseInfo.companyAddress" title="企业地址" width="200px" disabled="true" />
        </div>
      </div>
      <div class="content">
        <div class="content_nav">
          <div class="nav_item" :class="{ selectNav: navSelect == 0 }" @click="changeNav(0)">
            三证信息
          </div>
          <div class="nav_item" :class="{ selectNav: navSelect == 1 }" @click="changeNav(1)">
            联系人信息
          </div>
          <div class="nav_item" :class="{ selectNav: navSelect == 2 }" @click="changeNav(2)">
            业务信息
          </div>
          <div class="nav_item" :class="{ selectNav: navSelect == 3 }" @click="changeNav(3)">
            经营信息
          </div>
          <div class="nav_item" :class="{ selectNav: navSelect == 4 }" @click="changeNav(4)">
            评审信息
          </div>
          <div class="nav_item" :class="{ selectNav: navSelect == 5 }" @click="changeNav(5)">
            其他信息
          </div>
        </div>
        <div class="content_content">
          <div v-if="navSelect == 0" class="baseInfo">
            <div class="inputContent">
              <input-vue
                v-model="certificateInfo.threeCertificatesInOne"
                title="是否三证合一"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.licenseRegisterNumber"
                title="营业执照注册号"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.legalPerson"
                title="法人代表"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.businessScope"
                title="经营范围"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.organizeCodeScan"
                title="组织机构代码"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.taxpayerNature"
                title="纳税人性质"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
            </div>
            <div class="inputContent">
              <input-vue
                v-model="certificateInfo.unifiedSocialCreditCode"
                title="统一社会信用代码"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.registerCapital"
                title="注册资金"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.establishDate"
                title="成立日期"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.licenseScan"
                title="执照扫描件"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.organizeCodeScan"
                title="组织代码扫描件"
                width="200px "
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.taxRegisterCode"
                title="税务登记号"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
            </div>
            <div class="inputContent">
              <div style="height: 40px;" />
              <input-vue
                v-model="certificateInfo.registerAddress"
                title="注册地址"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <input-vue
                v-model="certificateInfo.businessTerm"
                title="营业期限"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
              <div style="height: 40px;" />
              <div style="height: 40px;" />
              <input-vue
                v-model="certificateInfo.taxRegisterCodeScan"
                title="税务登记扫描"
                width="200px"
                style="justify-content: space-between;"
                disabled="true"
              />
            </div>
          </div>
          <div v-if="navSelect == 1" class="relation">
            <div class="topbox">
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.legalPersonName"
                  title="法人代表姓名"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.legalPersonCertificateBackScan"
                  title="法人代表证件"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.legalPersonCertificateFrontScan"
                  title="经法人代表证件号"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.legalPersonPhone"
                  title="法人代表手机号"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue title="法人代表证件类型" width="200px" style="flex:1">
                  <div class="doulbe">
                    <el-input v-model="personInfo.legalPersonCertificateBackScan" style="width:200px" :disabled="true" />
                    <el-input v-model="personInfo.legalPersonCertificateBackScan" style="width:200px" disabled="true" />
                  </div>
                </input-vue>
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.businessLeaderCertificateTypeName"
                  title="业务负责人姓名"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.businessLeaderCertificateType"
                  title="业务负责人证件类型"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.businessLeaderCertificateCode"
                  title="业务负责人证件号"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.businessLeaderPhone"
                  title="业务负责人手机号"
                  width="200px"
                  class="input-vue"
                  disabled="true"
                />
                <input-vue title="业务负责人证件上传" width="200px">
                  <div class="doulbe2">
                    <el-input
                      v-model="personInfo.businessLeaderCertificateBackScan"
                      style="width:200px"
                      :disabled="true"
                    />
                    <el-input
                      v-model="personInfo.businessLeaderCertificateFrontScan"
                      style="width:200px"
                      :disabled="true"
                    />
                  </div>
                </input-vue>
              </div>
            </div>
            <div class="dataInfo">
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.backupPersonName"
                  title="备用联系人姓名"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.technicalLeaderName"
                  title="技术负责人姓名"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.saleLeaderName"
                  title="售后负责人姓名"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.financeLeaderName"
                  title="财务负责人姓名"
                  width="130px"
                  disabled="true"
                />
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.backupPersonCertificateTypeName"
                  title="备用联系人证件类型"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.technicalLeaderCertificateTypeName"
                  title="技术负责人证件类型"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.saleLeaderCertificateTypeName"
                  title="售后负责人证件类型"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.financeLeaderCertificateTypeName"
                  title="财务负责人证件类型"
                  width="130px"
                  disabled="true"
                />
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.backupPersonCertificateCode"
                  title="备用联系人证件号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.technicalLeaderCertificateCode"
                  title="技术负责人证件号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.saleLeaderCertificateCode"
                  title="售后负责人证件号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.financeLeaderCertificateCode"
                  title="财务负责人证件号"
                  width="130px"
                  disabled="true"
                />
              </div>
              <div class="inputContent">
                <input-vue
                  v-model="personInfo.backupPersonPhone"
                  title="备用联系人手机号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.technicalLeaderPhone"
                  title="技术负责人手机号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.saleLeaderPhone"
                  title="售后负责人手机号"
                  width="130px"
                  disabled="true"
                />
                <input-vue
                  v-model="personInfo.financeLeaderPhone"
                  title="财务负责人手机号"
                  width="130px"
                  disabled="true"
                />
              </div>
            </div>
          </div>
          <div v-if="navSelect == 2" class="business">
            <div class="inputContent">
              <input-vue
                v-model="businessInfo.businessTypeName"
                title="业务类别"
                width="200px"
                class="input-vue"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.mainCategory"
                title="主营类型"
                width="200px"
                class="input-vue"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.businessNatureName"
                title="业务性质"
                width="200px"
                class="input-vue"
                disabled="true"
              />
            </div>
            <el-table
              height="200"
              :data="businessInfo.brandList"
              :row-class-name="tableRowClassName"
              :header-cell-style="{
                'text-align': 'center',
                background: '  #2483b3',
                color: 'white',
              }"
              :row-style="{ 'text-align': 'center' }"
              style="width: 100%"
            >
              <el-table-column prop="brandCode" label="序号" />
              <el-table-column prop="brandName" label="产品品牌" />
              <el-table-column prop="brandProperty" label="品牌性质" />
              <el-table-column prop="brandRegisterCertificate" label="品牌注册证" />
              <el-table-column prop="brandAuthCertificate" label="品牌授权证明" />
            </el-table>
            <div class="inputContent">
              <input-vue
                v-model="businessInfo.manageAddress"
                title="经营地址"
                width="200px"
                class="input-vue"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.officeNatureName"
                title="办公场所性质"
                width="200px"
                class="input-vue"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.officeSpace"
                title="办公面积"
                width="200px"
                class="input-vue"
                disabled="true"
              />
            </div>
          </div>
          <div v-if="navSelect == 3" class="manage">
            <div class="title">
              经营信息
            </div>
            <div class="inputbox">
              <input-vue
                v-model="businessInfo.yearIncome"
                title="上年度收入"
                style="margin-right: 28px;width: 374px;"
                width="240px"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.yearProfit"
                title="上年度利润"
                style="width: 352px;"
                width="240px"
                disabled="true"
              />
            </div>
            <div class="inputContent">
              <input-vue title="近三年资产负债表" width="200px">
                <div class="tableDown">
                  <input v-model="businessInfo.threeYearLiabilitiesTable" disabled="true"> <span>下载</span>
                </div>
              </input-vue>
              <input-vue title="近三年损益表" width="200px">
                <div class="tableDown">
                  <input v-model="businessInfo.threeYearLossTable" disabled="true"> <span>下载</span>
                </div>
              </input-vue>
              <input-vue title="近三年现金流量表" width="200px">
                <div class="tableDown">
                  <input v-model="businessInfo.threeYearFlowTable" disabled="true"> <span>下载</span>
                </div>
              </input-vue>
            </div>
            <div class="title">
              经营许可信息
            </div>
            <div class="inputContent">
              <input-vue v-model="businessInfo.licenseName" title="许可证名称" width="200px" disabled="true" />
              <input-vue v-model="businessInfo.licenseTerm" title="许可证期限" width="200px" disabled="true" />
              <input-vue title="许可证扫描件" width="200px">
                <div class="tableDown">
                  <input v-model="businessInfo.licenseScan" disabled="true"> <span>下载</span>
                </div>
              </input-vue>
            </div>
          </div>
          <div v-if="navSelect == 4" class="reviewbox">
            <div class="inputContent">
              <input-vue
                v-model="reviewInfo.supplierStatusName"
                title="供应商状态"
                width="200px"
                disabled="true"
              />
              <input-vue
                v-model="reviewInfo.preReviewResultName"
                title="资料预审结果"
                width="200px"
                disabled="true"
              />
              <input-vue
                v-model="reviewInfo.inputReviewResult"
                title="录库评审结果"
                width="200px"
                disabled="true"
              />
            </div>
            <div class="title">
              历史季度评价
            </div>
            <el-table
              height="200"
              :data="reviewInfo.quarterlyEvaluateList"
              :row-class-name="tableRowClassName"
              :header-cell-style="{
                'text-align': 'center',
                background: '  #2483b3',
                color: 'white',
              }"
              :row-style="{ 'text-align': 'center' }"
              style="width: 100%"
            >
              <el-table-column prop="supplierCode" label="序号" />
              <el-table-column prop="evaluateQuarterly" label="评价季度" />
              <el-table-column prop="quarterlyEvaluateResult" label="季度评价结果" />
              <el-table-column prop="quarterlyEvaluateIllustration" label="季度评价说明" />
              <el-table-column prop="quarterlyEvaluateDate" label="季度评价时间" />
              <el-table-column prop="quarterlyEvaluateFile" label="评价详情" />
            </el-table>
            <div class="title">
              历史年度考核
            </div>
            <el-table
              height="200"
              :data="reviewInfo.annualAssessList"
              :row-class-name="tableRowClassName"
              :header-cell-style="{
                'text-align': 'center',
                background: '  #2483b3',
                color: 'white',
              }"
              :row-style="{ 'text-align': 'center' }"
              style="width: 100%"
            >
              <el-table-column prop="supplierCode" label="序号" />
              <el-table-column prop="assessAnnual" label="考核年度" />
              <el-table-column prop="annualAssessResult" label="年度考核结果" />
              <el-table-column prop="annualAssessIllustration" label="年度考核时说明" />
              <el-table-column prop="annualAssessDate" label="年度考核时间" />
              <el-table-column prop="annualAssessFile" label="考核详情" />
            </el-table>
          </div>
          <div v-if="navSelect == 5" class="othernfo">
            <div class="title">
              历史年度考核
            </div>
            <el-table
              height="200"
              :data="businessInfo.bankList"
              :row-class-name="tableRowClassName"
              :header-cell-style="{
                'text-align': 'center',
                background: '  #2483b3',
                color: 'white',
              }"
              :row-style="{ 'text-align': 'center' }"
              style="width: 100%"
            >
              <!-- <el-table-column prop="date" label="序号" > </el-table-column> -->
              <el-table-column prop="accountName" label="账户名称" />
              <el-table-column prop="accountNumber" label="银行账号" />
              <el-table-column prop="depositBank" label="开户行" />
              <el-table-column prop="depositBankName" label="开户行名称" />
              <el-table-column prop="depositBankNumber" label="开户行号" />
              <!-- <el-table-column prop="address" label="操作"> </el-table-column> -->
            </el-table>
            <div class="title">
              历史年度考核
            </div>
            <div class="inputContent">
              <input-vue
                v-model="businessInfo.systemCertificateName"
                title="管理体系认证名称"
                width="200px"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.systemCertificateTerm"
                title="管理体系认证期限"
                width="200px"
                disabled="true"
              />
              <input-vue
                v-model="businessInfo.systemCertificateScan"
                title="管理体系扫描件"
                width="200px"
                disabled="true"
              />
            </div>
            <div class="title">
              历史年度考核
            </div>
            <el-table
              height="200"
              :data="businessInfo.qualifyCertificateList"
              :row-class-name="tableRowClassName"
              :header-cell-style="{
                'text-align': 'center',
                background: '  #2483b3',
                color: 'white',
              }"
              :row-style="{ 'text-align': 'center' }"
              style="width: 100%"
            >
              <el-table-column prop="id" label="序号" />
              <el-table-column prop="qualifyName" label="资质需要名称" />
              <el-table-column prop="qualifyDesc" label="资质需求描述" />
              <el-table-column prop="proveMaterialDesc" label="资质要求材料" />
            </el-table>
          </div>
        </div>
      </div>
    </div>
  </el-dialog>
</template>

<script>

import inputVue from '../../input/inputVue.vue'
import { tableRowClassName } from '../../../../utils/myUtils/changeTableTr'
import { BaseInfo, certificate, person, business, review } from '../../../../api/supplier/supplierInfo'

export default {
  components: {
    inputVue

  },
  props: {
    isShowInfo: {
      type: Boolean,
      default: 'false'
    },
    dataInfo: ''

  },
  data() {
    return {
      navSelect: 0, // 0 1 2 为导航栏的选项
      baseInfo: {},
      certificateInfo: '',
      personInfo: '',
      businessInfo: '',
      reviewInfo: ''

    }
  },
  watch: {
    dataInfo: {
      handler(vls) {
        if (!vls.id) return
        BaseInfo({ id: vls.id }).then(res => {
          this.baseInfo = res
        })
      },
      deep: true,
      immediate: true
    },
    baseInfo: {
      handler(vls) {
        certificate({ supplierCode: vls.supplierCode }).then(res => {
          this.certificateInfo = res
        })
        person({ supplierCode: vls.supplierCode }).then(res => {
          this.personInfo = res
        })
        business({ supplierCode: vls.supplierCode }).then(res => {
          this.businessInfo = res
        })
        review({ supplierCode: vls.supplierCode }).then(res => {
          this.reviewInfo = res
        })
      }
    }
  },
  methods: {
    tableRowClassName: tableRowClassName,
    changeNav(index) {
      this.navSelect = index
    },
    close() {
      this.$emit('close')
    }
  }
}
</script>

<style lang="scss" scoped>
.deviceDialog {
  border-radius: 5px;
  // overflow: hidden;
  // padding: 10px ;
  width: 1125px;
  height: 100%;
  box-sizing: border-box;
}

.selectNav {
  border: 1px solid #999;
  border-bottom: 3px solid #fff;
  position: relative;
  z-index: 9;
  box-sizing: border-box;
  top: 2px;
}

.content {
  width: 100%;

  .content_nav {
    box-sizing: border-box;
    display: flex;
    margin: 10px 0;
    border-bottom: 1px solid #999;

    .nav_item {
      width: 130px;
      height: 60px;
      margin: 0 10px;
      line-height: 60px;
      text-align: center;
    }
  }
}

.content_content {
  // padding: 20px 0 60px 0;
  // box-sizing: border-box;

}

.headInfo {
  width: 1000px;

  .inputContent {
    // flex: 1;
    display: flex;
    // flex-direction: column;

    justify-content: space-between;
    align-items: center;
  }
}

.baseInfo {
  width: 1000px;
  display: flex;

  .inputContent {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin: 0 10px;
    // justify-content: space-between;
    // align-items: center;
  }
}

.deviceInfo {
  display: flex;
  // align-items: center;
  justify-content: space-between;
  height: 100%;

  .inputContent {
    flex: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}

.dataInfo {
  display: flex;
  // align-items: center;
  justify-content: space-between;
  height: 100%;

  .inputContent {
    flex: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}

.relation {
  .topbox {
    .inputContent {
      display: flex;
      justify-content: space-between;

      .input-vue {
        // flex: 1;
        width: 364px;
      }

      .doulbe {
        // width: 572px;
        width: 602px;
        padding-left: 27px;
        // padding-left: 4px;
      }

      .doulbe2 {
        padding-left: 12px;
        width: 588px;
      }
    }
  }
}

.business, .reviewbox {
  .inputContent {
    display: flex;
    justify-content: space-between;
  }

  .title {
    padding: 10px 0;
  }
}

.manage {
  .title {
    background-color: rgb(40, 115, 158);
    color: #fff;
    font-size: 22px;
    padding: 10px;
    font-weight: bold;
  }

  .inputContent {
    display: flex;
    justify-content: space-between;

    .tableDown {
      width: 200px;
      display: flex;
      align-items: center;
      padding: 0 10px;

      input {
        outline: none;
        border: none;
        width: 140px;
      }

      span {
        margin-left: 5px;
      }

      color: rgb(40, 115, 158);
      border: 1px solid lightgray;
      height: 40px;
    }
  }

  .inputbox {
    display: flex;
  }

}

.othernfo {
  .title {
    background-color: rgb(40, 115, 158);
    color: #fff;
    font-size: 22px;
    padding: 10px;
    font-weight: bold;
    margin: 10px 0;
  }

  .inputContent {
    display: flex;
    justify-content: space-between;
  }
}

</style>