From acfb2642072dcfd1d5cf789af3cc5cbf3b7cb51e Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 19 八月 2025 13:29:48 +0800
Subject: [PATCH] fix: bug
---
apps/cMiniApp/src/subpackages/authentication/authenticationFace/InnerPage.vue | 41 ++++++
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue | 188 +++++++++++++++++++++++++++++++
apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.config.ts | 3
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.config.ts | 3
apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.vue | 14 ++
apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue | 35 ++---
apps/cMiniApp/src/constants/router.ts | 2
apps/cMiniApp/src/app.config.ts | 2
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.vue | 14 ++
9 files changed, 281 insertions(+), 21 deletions(-)
diff --git a/apps/cMiniApp/src/app.config.ts b/apps/cMiniApp/src/app.config.ts
index 7c84b97..73865fd 100644
--- a/apps/cMiniApp/src/app.config.ts
+++ b/apps/cMiniApp/src/app.config.ts
@@ -64,6 +64,8 @@
'authenticationFaRen/authenticationFaRen',
'authenticationJBR/authenticationJBR',
'authenticationResult/authenticationResult',
+ 'authenticationRealName/authenticationRealName',
+ 'authenticationFace/authenticationFace',
],
},
{
diff --git a/apps/cMiniApp/src/constants/router.ts b/apps/cMiniApp/src/constants/router.ts
index 54ddfd1..fda33b4 100644
--- a/apps/cMiniApp/src/constants/router.ts
+++ b/apps/cMiniApp/src/constants/router.ts
@@ -27,6 +27,8 @@
authenticationResult = '/subpackages/authentication/authenticationResult/authenticationResult',
authenticationFaRen = '/subpackages/authentication/authenticationFaRen/authenticationFaRen',
authenticationJBR = '/subpackages/authentication/authenticationJBR/authenticationJBR',
+ authenticationRealName = '/subpackages/authentication/authenticationRealName/authenticationRealName',
+ authenticationFace = '/subpackages/authentication/authenticationFace/authenticationFace',
citySelect = '/subpackages/city/citySelect/citySelect',
mineSign = '/subpackages/mine/mineSign/mineSign',
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationFace/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/InnerPage.vue
new file mode 100644
index 0000000..6c414e3
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/InnerPage.vue
@@ -0,0 +1,41 @@
+<template>
+ <ContentScrollView :paddingH="false">
+ <nut-form :model-value="form" ref="formRef">
+ <nut-form-item label="鍒疯劯:" class="bole-form-item alignTop" prop="licenseUrl" required>
+ </nut-form-item>
+ </nut-form>
+ </ContentScrollView>
+ <PageFooter :isOnlyAction="false">
+ <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
+ >鍒疯劯璁よ瘉</PageFooterBtn
+ >
+ </PageFooter>
+</template>
+
+<script setup lang="ts">
+import Taro from '@tarojs/taro';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const form = reactive({
+ licenseUrl: [],
+});
+
+const formRef = ref<any>(null);
+const loading = ref(false);
+
+function handleSubmit() {
+ if (!formRef.value) return;
+ formRef.value.validate().then(({ valid, errors }: any) => {
+ if (valid) {
+ // submit();
+ }
+ });
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.config.ts b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.vue
new file mode 100644
index 0000000..2e507b1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationFace/authenticationFace.vue
@@ -0,0 +1,14 @@
+<template>
+ <PageLayout title="瀹炰汉璁よ瘉" class="authenticationFace-page-wrapper" hasBorder developing>
+ <InnerPage />
+ </PageLayout>
+</template>
+
+<script setup lang="ts">
+import { PageLayout } from '@/components';
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'authenticationFace',
+});
+</script>
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue
index 8832814..80d894a 100644
--- a/apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue
@@ -2,26 +2,18 @@
<ContentScrollView class="authenticationHome-page-view">
<div class="authenticationHome-page-title">瀹炲悕璁よ瘉</div>
<authenticationHomeItem
- title="浼佷笟娉曚汉璁よ瘉"
+ title="涓汉瀹炲悕璁よ瘉"
:icon="IconFaren"
- :info="[['浼佷笟钀ヤ笟鎵х収鐓х墖', '娉曚汉韬唤璇佺収鐗�'], ['娉曚汉鎵嬫満鍙风爜(鎺ユ敹鐭俊楠岃瘉鐮佽繘琛岀煭淇℃牳楠�)']]"
- @click="goFaRen"
+ :info="[['韬唤璇佺収鐗�'], ['鎵嬫満鍙风爜(鎺ユ敹鐭俊楠岃瘉鐮佽繘琛岀煭淇℃牳楠�)']]"
+ @click="goRealName"
></authenticationHomeItem>
<authenticationHomeItem
- title="浼佷笟缁忓姙浜鸿璇�"
+ title="瀹炰汉璁よ瘉"
isJBR
:icon="IconJBR"
- :info="[
- ['浼佷笟鎺堟潈涔�', '浼佷笟钀ヤ笟鎵х収鐓х墖', '缁忓姙浜鸿韩浠借瘉鐓х墖'],
- ['缁忓姙浜烘墜鏈哄彿鐮�(鎺ユ敹鐭俊楠岃瘉鐮佽繘琛岀煭淇℃牳楠�)'],
- ]"
- @click="goJBR"
+ :info="[['瀹炰汉鎵劯璁よ瘉']]"
+ @click="goFace"
>
- <template #title-extra>
- <div class="authenticationHome-page-title-btn" @click.stop="downloadPowerAttorneyTemplate">
- 涓嬭浇鎺堟潈涔︽ā鐗�
- </div>
- </template>
</authenticationHomeItem>
</ContentScrollView>
</template>
@@ -31,21 +23,18 @@
import IconFaren from '@/assets/authentication/icon-faren.png';
import IconJBR from '@/assets/authentication/icon-jbr.png';
import Taro from '@tarojs/taro';
-import { useDownloadPowerAttorneyTemplate } from '../hooks';
defineOptions({
name: 'InnerPage',
});
-function goFaRen() {
- Taro.navigateTo({ url: RouterPath.authenticationFaRen });
+function goRealName() {
+ Taro.navigateTo({ url: RouterPath.authenticationRealName });
}
-function goJBR() {
- Taro.navigateTo({ url: RouterPath.authenticationJBR });
+function goFace() {
+ Taro.navigateTo({ url: RouterPath.authenticationFace });
}
-
-const { downloadPowerAttorneyTemplate } = useDownloadPowerAttorneyTemplate();
</script>
<style lang="scss">
@@ -55,6 +44,10 @@
.authenticationHome-page-view {
padding-top: 48px;
background-color: transparent;
+
+ .authentication-home-item-info {
+ flex-direction: column;
+ }
}
.authenticationHome-page-title {
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
new file mode 100644
index 0000000..2b4b5d1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
@@ -0,0 +1,188 @@
+<template>
+ <ContentScrollView :paddingH="false">
+ <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"
+ >
+ <Uploader
+ v-model:file-list="form.legalPersonIdFrontImgUrl"
+ :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="legalPersonIdBackImgUrl"
+ label-width="0px"
+ >
+ <Uploader
+ v-model:file-list="form.legalPersonIdBackImgUrl"
+ :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">
+ 璇蜂笂浼犺韩浠借瘉鐨勬鍙嶉潰鐓х墖锛岀‘淇濊韩浠借瘉娓呮櫚鍙锛屾敮鎸乸ng/jpg/jpeg鏍煎紡锛屾枃浠跺ぇ灏忎笉瓒呰繃10MB
+ </div>
+ </ProFormItemCell>
+ <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name" required>
+ <nut-input
+ v-model.trim="form.name"
+ class="nut-input-text bole-input-text"
+ placeholder="璇峰~鍐欏鍚�"
+ type="text"
+ />
+ </nut-form-item>
+ <nut-form-item label="韬唤璇佸彿:" class="bole-form-item" prop="idNumber" required>
+ <nut-input
+ v-model.trim="form.idNumber"
+ class="nut-input-text bole-input-text"
+ placeholder="璇峰~鍐欒韩浠借瘉鍙风爜"
+ type="text"
+ />
+ </nut-form-item>
+ <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="contactPhone" required>
+ <nut-input
+ v-model.trim="form.contactPhone"
+ class="nut-input-text bole-input-text"
+ placeholder="璇峰~鍐欐墜鏈哄彿鐮�"
+ type="text"
+ >
+ <template #right>
+ <ProFormCaptcha
+ :onGetCaptcha="() => onGetCaptcha(form.contactPhone)"
+ :phonePropName="['contactPhone', 'name', 'idNumber']"
+ :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>
+ </ContentScrollView>
+ <PageFooter :isOnlyAction="false">
+ <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
+ >鎻愪氦璁よ瘉</PageFooterBtn
+ >
+ </PageFooter>
+</template>
+
+<script setup lang="ts">
+import { VerificationCodeBusinessType } 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 { Photograph } from '@nutui/icons-vue-taro';
+import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
+import { FormValidator } from '@12333/utils';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const form = reactive({
+ legalPersonIdFrontImgUrl: [] as FileItem[],
+ legalPersonIdBackImgUrl: [] as FileItem[],
+ name: '',
+ idNumber: '',
+ contactPhone: '',
+ verificationCode: '',
+});
+
+const formRef = ref<any>(null);
+const loading = ref(false);
+
+const rules: FormRules = {
+ name: [{ required: true, message: '璇峰~鍐欏鍚�' }],
+ legalPersonIdFrontImgUrl: [
+ { required: true, message: '璇蜂笂浼犺韩浠借瘉浜哄儚闈�', validator: FormValidator.validatorArray },
+ ],
+ legalPersonIdBackImgUrl: [
+ { required: true, message: '璇蜂笂浼犺韩浠借瘉鍥藉窘闈�', validator: FormValidator.validatorArray },
+ ],
+ idNumber: [
+ { required: true, message: '璇峰~鍐欒韩浠借瘉鍙风爜' },
+ { message: '璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�', validator: FormValidator.validatorIDCard },
+ ],
+ legalPersonContactPhone: [
+ { required: true, message: '璇峰~鍐欐墜鏈哄彿鐮�' },
+ { message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', validator: FormValidator.validatorPhoneNumber },
+ ],
+ verificationCode: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜' }],
+};
+
+async function onGetCaptcha(phoneNumber: string) {
+ await commonServices.sendPhoneCertificationVerificationCode(
+ {
+ name: form.name,
+ identity: form.idNumber,
+ mobile: form.contactPhone,
+ businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
+ },
+ { showLoading: false }
+ );
+}
+
+function handleFrontImgUrlChange(response: FileItem) {
+ // userCredentialVerifyOcrIDCard(response, {
+ // onSuccess(res) {
+ // if (res.realName) form.legalPersonName = res.realName;
+ // if (res.idcardNum) form.legalPersonIdNumber = res.idcardNum;
+ // },
+ // });
+}
+
+function handleSubmit() {
+ if (!formRef.value) return;
+ formRef.value.validate().then(({ valid, errors }: any) => {
+ if (valid) {
+ // submit();
+ }
+ });
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.authenticationRealName-page-wrapper {
+ .photograph-wrapper {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ }
+}
+</style>
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.config.ts b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.vue
new file mode 100644
index 0000000..1dc69e3
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.vue
@@ -0,0 +1,14 @@
+<template>
+ <PageLayout title="瀹炲悕璁よ瘉" class="authenticationRealName-page-wrapper" hasBorder>
+ <InnerPage />
+ </PageLayout>
+</template>
+
+<script setup lang="ts">
+import { PageLayout } from '@/components';
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'authenticationRealName',
+});
+</script>
--
Gitblit v1.9.1