From 83acd1f42ed425b20f652c36ab1e5684cc232a56 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期二, 19 八月 2025 14:59:43 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- 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/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 4 apps/cMiniApp/src/constants/router.ts | 2 apps/cMiniApp/src/app.config.ts | 2 apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue | 1 apps/cMiniApp/src/subpackages/authentication/authenticationRealName/authenticationRealName.vue | 14 ++ 11 files changed, 286 insertions(+), 21 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue index 8596c2d..0df3a1d 100644 --- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue +++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue @@ -74,6 +74,10 @@ if (!isCollapse.value) { await userResumeServices.contactUserResume({ id: userId }); toggle(); + } else { + Taro.makePhoneCall({ + phoneNumber: userResumeInfo.value.contactPhoneNumber, + }); } } catch (error) {} }); 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> diff --git a/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue index 0d5db2f..39bcc63 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue @@ -21,6 +21,7 @@ :benefits="item.benefits" :show-actions="true" :release-status="item.releaseStatus" + :hireStatus="item.hireStatus" @apply="goTaskDetail" > </TaskCard> -- Gitblit v1.9.1