wupengfei
20 小时以前 75ad2eb9984bac7705b337706efaf6e5dd7091ce
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
@@ -3,18 +3,14 @@
    <nut-form :model-value="form" ref="formRef" :rules="rules">
      <ProFormItemCell label="身份证照片:" required>
        <div class="id-imgUrl-wrapper">
          <nut-form-item
            label=" "
            class="bole-form-item"
            prop="legalPersonIdFrontImgUrl"
            label-width="0px"
          >
          <nut-form-item label=" " class="bole-form-item" prop="identityImg" label-width="0px">
            <Uploader
              v-model:file-list="form.legalPersonIdFrontImgUrl"
              v-model:file-list="form.identityImg"
              :maximum="1"
              :limitFileSize="10"
              class="bole-uploader nopaddingtop"
              @my-success="handleFrontImgUrlChange"
              @delete="handleFrontImgUrlDelete"
            >
              <template #upload-icon>
                <div class="photograph-wrapper">
@@ -24,14 +20,9 @@
              </template>
            </Uploader>
          </nut-form-item>
          <nut-form-item
            label=" "
            class="bole-form-item"
            prop="legalPersonIdBackImgUrl"
            label-width="0px"
          >
          <nut-form-item label=" " class="bole-form-item" prop="identityBackImg" label-width="0px">
            <Uploader
              v-model:file-list="form.legalPersonIdBackImgUrl"
              v-model:file-list="form.identityBackImg"
              :maximum="1"
              :limitFileSize="10"
              class="bole-uploader nopaddingtop"
@@ -83,9 +74,9 @@
            </template>
          </nut-input>
        </nut-form-item>
        <nut-form-item label="短信验证码:" class="bole-form-item" prop="verificationCode" required>
        <nut-form-item label="短信验证码:" class="bole-form-item" prop="verifyCode" required>
          <nut-input
            v-model.trim="form.verificationCode"
            v-model.trim="form.verifyCode"
            class="nut-input-text bole-input-text"
            placeholder="请输入验证码"
            type="number"
@@ -102,7 +93,6 @@
</template>
<script setup lang="ts">
import { VerificationCodeBusinessType } from '@12333/constants';
import { ProFormCaptcha, ProFormItemCell } from 'senin-mini/components';
import * as electronSignServices from '@12333/services/apiV2/electronSign';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
@@ -110,6 +100,8 @@
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { FormValidator } from '@12333/utils';
import Taro from '@tarojs/taro';
import { userCredentialVerifyOcrIDCard } from '@12333/hooks';
import { EnumOcrAccess } from '@12333/constants';
defineOptions({
  name: 'InnerPage',
@@ -119,12 +111,12 @@
const type = router.params?.type ?? '';
const form = reactive({
  legalPersonIdFrontImgUrl: [] as FileItem[],
  legalPersonIdBackImgUrl: [] as FileItem[],
  identityImg: [] as FileItem[],
  identityBackImg: [] as FileItem[],
  name: '',
  identity: '',
  phoneNumber: '',
  verificationCode: '',
  verifyCode: '',
});
const formRef = ref<any>(null);
@@ -132,21 +124,21 @@
const rules: FormRules = {
  name: [{ required: true, message: '请填写姓名' }],
  legalPersonIdFrontImgUrl: [
  identityImg: [
    { required: true, message: '请上传身份证人像面', validator: FormValidator.validatorArray },
  ],
  legalPersonIdBackImgUrl: [
  identityBackImg: [
    { required: true, message: '请上传身份证国徽面', validator: FormValidator.validatorArray },
  ],
  identity: [
    { required: true, message: '请填写身份证号码' },
    { message: '请输入正确的身份证号码', validator: FormValidator.validatorIDCard },
  ],
  legalPersonContactPhone: [
  phoneNumber: [
    { required: true, message: '请填写手机号码' },
    { message: '请输入正确的手机号码', validator: FormValidator.validatorPhoneNumber },
  ],
  verificationCode: [{ required: true, message: '请输入验证码' }],
  verifyCode: [{ required: true, message: '请输入验证码' }],
};
async function onGetCaptcha(phoneNumber: string) {
@@ -161,12 +153,15 @@
}
function handleFrontImgUrlChange(response: FileItem) {
  // userCredentialVerifyOcrIDCard(response, {
  //   onSuccess(res) {
  //     if (res.realName) form.legalPersonName = res.realName;
  //     if (res.idcardNum) form.legalPersonIdNumber = res.idcardNum;
  //   },
  // });
  userCredentialVerifyOcrIDCard({
    response: response,
    access: EnumOcrAccess.Baidu,
    isOssUrl: true,
    onSuccess(res) {
      if (res.model?.name) form.name = res.model?.name;
      if (res.model?.identity) form.identity = res.model?.identity;
    },
  });
}
function handleSubmit() {
@@ -187,8 +182,45 @@
  }
}
async function personalUserFaceReal() {}
async function personalUserIdentity3Real() {}
async function personalUserIdentity3Real() {
  try {
    let params: API.PersonalUserIdentity3RealCommand = {
      name: form.name,
      phoneNumber: form.phoneNumber,
      identity: form.identity,
      identityImg: form.identityImg?.[0]?.path ?? '',
      identityBackImg: form.identityBackImg?.[0]?.path ?? '',
      verifyCode: form.verifyCode,
    };
    let res = await electronSignServices.personalUserIdentity3Real(params);
    if (res) {
      Taro.navigateTo({ url: `${RouterPath.authenticationResult}` });
    }
  } catch (error) {}
}
async function personalUserFaceReal() {
  try {
    let params: API.PersonalUserFaceRealCommand = {
      name: form.name,
      identity: form.identity,
      identityImg: form.identityImg?.[0]?.path ?? '',
      identityBackImg: form.identityBackImg?.[0]?.path ?? '',
    };
    let res = await electronSignServices.personalUserFaceReal(params);
    if (res) {
      const encodedUrl = encodeURIComponent(res);
      Taro.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` });
    }
  } catch (error) {}
}
function handleFrontImgUrlDelete({ files, fileList, index }) {
  if (fileList?.length === 0) {
    form.name = '';
    form.identity = '';
  }
}
</script>
<style lang="scss">