<template> 
 | 
  <ContentScrollView :paddingH="false"> 
 | 
    <nut-form :model-value="form" ref="formRef" :rules="rules"> 
 | 
      <nut-form-item label="营业执照:" class="bole-form-item alignTop" prop="licenseUrl" required> 
 | 
        <Uploader 
 | 
          v-model:file-list="form.licenseUrl" 
 | 
          :maximum="1" 
 | 
          :limitFileSize="10" 
 | 
          class="bole-uploader nopaddingtop" 
 | 
          @my-success="handleLicenseUrlChange" 
 | 
        > 
 | 
        </Uploader> 
 | 
        <div class="pro-form-item-tips"> 
 | 
          请上传最新的营业执照原件照片、扫描件或加盖公章的复印件,支持png/jpg/jpeg格式,文件大小不超过10MB 
 | 
        </div> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item label="企业全称:" class="bole-form-item" prop="enterpriseName" required> 
 | 
        <nut-input 
 | 
          v-model.trim="form.enterpriseName" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请输入您营业执照上的企业名称" 
 | 
          type="text" 
 | 
          :max-length="35" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item 
 | 
        label="统一社会信用代码:" 
 | 
        class="bole-form-item" 
 | 
        prop="societyCreditCode" 
 | 
        required 
 | 
      > 
 | 
        <nut-input 
 | 
          v-model.trim="form.societyCreditCode" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请输入您营业执照上的信用代码" 
 | 
          type="text" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item label="法人姓名:" class="bole-form-item" prop="legalPersonName" required> 
 | 
        <nut-input 
 | 
          v-model.trim="form.legalPersonName" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请填写企业法人的姓名" 
 | 
          type="text" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <ProFormItemCell label="经办人身份证照片:" required> 
 | 
        <div class="id-imgUrl-wrapper"> 
 | 
          <nut-form-item 
 | 
            label=" " 
 | 
            class="bole-form-item" 
 | 
            prop="proxyPersonIdFrontImgUrl" 
 | 
            label-width="0px" 
 | 
          > 
 | 
            <Uploader 
 | 
              v-model:file-list="form.proxyPersonIdFrontImgUrl" 
 | 
              :maximum="1" 
 | 
              :limitFileSize="10" 
 | 
              class="bole-uploader nopaddingtop" 
 | 
              @my-success="handleFrontImgUrlChange" 
 | 
            > 
 | 
              <template #upload-icon> 
 | 
                <div class="photograph-wrapper"> 
 | 
                  <Photograph color="#808080" /> 
 | 
                  <div>身份证人像面</div> 
 | 
                </div> 
 | 
              </template> 
 | 
            </Uploader> 
 | 
          </nut-form-item> 
 | 
          <nut-form-item 
 | 
            label=" " 
 | 
            class="bole-form-item" 
 | 
            prop="proxyPersonIdBackImgUrl" 
 | 
            label-width="0px" 
 | 
          > 
 | 
            <Uploader 
 | 
              v-model:file-list="form.proxyPersonIdBackImgUrl" 
 | 
              :maximum="1" 
 | 
              :limitFileSize="10" 
 | 
              class="bole-uploader nopaddingtop" 
 | 
            > 
 | 
              <template #upload-icon> 
 | 
                <div class="photograph-wrapper"> 
 | 
                  <Photograph color="#808080" /> 
 | 
                  <div>身份证国徽面</div> 
 | 
                </div> 
 | 
              </template> 
 | 
            </Uploader> 
 | 
          </nut-form-item> 
 | 
        </div> 
 | 
  
 | 
        <div class="pro-form-item-tips"> 
 | 
          请上传经办人身份证的正反面照片,确保身份证清晰可见,支持png/jpg/jpeg格式,文件大小不超过10MB 
 | 
        </div> 
 | 
      </ProFormItemCell> 
 | 
      <nut-form-item label="经办人姓名:" class="bole-form-item" prop="proxyPersonName" required> 
 | 
        <nut-input 
 | 
          v-model.trim="form.proxyPersonName" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请填写经办人的姓名" 
 | 
          type="text" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item 
 | 
        label="经办人身份证号:" 
 | 
        class="bole-form-item" 
 | 
        prop="proxyPersonIdNumber" 
 | 
        required 
 | 
      > 
 | 
        <nut-input 
 | 
          v-model.trim="form.proxyPersonIdNumber" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请填写经办人的身份证号码" 
 | 
          type="text" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item 
 | 
        label="经办人手机号:" 
 | 
        class="bole-form-item" 
 | 
        prop="proxyPersonContactPhone" 
 | 
        required 
 | 
      > 
 | 
        <nut-input 
 | 
          v-model.trim="form.proxyPersonContactPhone" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请填写经办人的手机号码" 
 | 
          type="text" 
 | 
        > 
 | 
          <template #right> 
 | 
            <ProFormCaptcha 
 | 
              :onGetCaptcha="() => onGetCaptcha(form.proxyPersonContactPhone)" 
 | 
              phonePropName="proxyPersonContactPhone" 
 | 
              :validateField="formRef?.validate" 
 | 
            ></ProFormCaptcha> 
 | 
          </template> 
 | 
        </nut-input> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item label="短信验证码:" class="bole-form-item" prop="verificationCode" required> 
 | 
        <nut-input 
 | 
          v-model.trim="form.verificationCode" 
 | 
          class="nut-input-text bole-input-text" 
 | 
          placeholder="请输入验证码" 
 | 
          type="number" 
 | 
        /> 
 | 
      </nut-form-item> 
 | 
      <nut-form-item 
 | 
        label="企业授权书:" 
 | 
        class="bole-form-item alignTop" 
 | 
        prop="proxyPowerAttorneyUrl" 
 | 
        required 
 | 
      > 
 | 
        <Uploader 
 | 
          v-model:file-list="form.proxyPowerAttorneyUrl" 
 | 
          :maximum="1" 
 | 
          :limitFileSize="10" 
 | 
          class="bole-uploader nopaddingtop" 
 | 
        > 
 | 
        </Uploader> 
 | 
        <div class="pro-form-item-tips"> 
 | 
          请上传加盖公章的企业授权书照片或扫描件,支持png/jpg/jpeg/pdf格式,文件大小不超过10MB 
 | 
          <span class="primary" @click="downloadPowerAttorneyTemplate">授权书模板下载</span> 
 | 
        </div> 
 | 
      </nut-form-item> 
 | 
    </nut-form> 
 | 
  </ContentScrollView> 
 | 
  <PageFooter :isOnlyAction="false"> 
 | 
    <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading" 
 | 
      >提交认证</PageFooterBtn 
 | 
    > 
 | 
  </PageFooter> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
import { useAuthenticationFlow, useDownloadPowerAttorneyTemplate } from '../hooks'; 
 | 
import { 
 | 
  UserCertificationModeEnumV2, 
 | 
  VerificationCodeBusinessType, 
 | 
  UserCertificationElementEnum, 
 | 
} from '@12333/constants'; 
 | 
import { ProFormCaptcha, ProFormItemCell } from 'senin-mini/components'; 
 | 
import * as commonServices from '@12333/services/api/Common'; 
 | 
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type'; 
 | 
import { vatLicense } from '@12333/hooks'; 
 | 
import { Message } from '@12333/utils'; 
 | 
import { Photograph } from '@nutui/icons-vue-taro'; 
 | 
  
 | 
defineOptions({ 
 | 
  name: 'InnerPage', 
 | 
}); 
 | 
  
 | 
const { form, rules, formRef, handleSubmit, loading } = useAuthenticationFlow({ 
 | 
  certificationMode: UserCertificationModeEnumV2.ProxyPersonPhoneCertification, 
 | 
  certificationElement: UserCertificationElementEnum.Identity3, 
 | 
}); 
 | 
  
 | 
const { downloadPowerAttorneyTemplate } = useDownloadPowerAttorneyTemplate(); 
 | 
  
 | 
async function onGetCaptcha(phoneNumber: string) { 
 | 
  await commonServices.sendPhoneCertificationVerificationCode( 
 | 
    { 
 | 
      name: form.proxyPersonName, 
 | 
      identity: form.proxyPersonIdNumber, 
 | 
      mobile: form.proxyPersonContactPhone, 
 | 
      businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification, 
 | 
    }, 
 | 
    { showLoading: false } 
 | 
  ); 
 | 
} 
 | 
  
 | 
const handleLicenseUrlChange = (response: FileItem) => { 
 | 
  vatLicense(response, { 
 | 
    onSuccess(res) { 
 | 
      let tips: string[] = []; 
 | 
      res?.name ? (form.enterpriseName = res.name) : tips.push('企业名称'); 
 | 
      res?.societyCode ? (form.societyCreditCode = res.societyCode) : tips.push('统一社会信用代码'); 
 | 
      if (tips.length > 0) { 
 | 
        Message.error(`未能识别到您上传的图片,请重新上传清晰的图片或手动输入${tips.join('和')}`); 
 | 
      } 
 | 
    }, 
 | 
  }); 
 | 
}; 
 | 
  
 | 
function handleFrontImgUrlChange(response: FileItem) { 
 | 
  // userCredentialVerifyOcrIDCard(response, { 
 | 
  //   onSuccess(res) { 
 | 
  //     if (res.realName) form.proxyPersonName = res.realName; 
 | 
  //     if (res.idcardNum) form.proxyPersonIdNumber = res.idcardNum; 
 | 
  //   }, 
 | 
  // }); 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss"> 
 | 
@import '@/styles/common.scss'; 
 | 
  
 | 
.authenticationJBR-page-wrapper { 
 | 
  .photograph-wrapper { 
 | 
    display: flex; 
 | 
    flex-direction: column; 
 | 
    align-items: center; 
 | 
    justify-content: center; 
 | 
  } 
 | 
} 
 | 
</style> 
 |