From b6cd12914a60f09260efdbc889015ddfda676de6 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期五, 22 八月 2025 09:41:40 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 32 ++ apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue | 33 - packages/services/apiV2/ocrUtils.ts | 43 ++ apps/bMiniApp/.eslintrc-auto-import.json | 3 apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue | 7 apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue | 5 apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue | 2 apps/bMiniApp/auto-imports.d.ts | 1 apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue | 21 apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue | 2 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 13 packages/components/src/Card/MineAgreementSignCard.vue | 35 - apps/cMiniApp/src/hooks/access.ts | 12 apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue | 26 + packages/services/apiV2/index.ts | 4 apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue | 2 apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue | 2 packages/services/apiV2/electronSign.ts | 99 +++++++ apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue | 11 packages/services/apiV2/typings.d.ts | 384 ++++++++++++++++++++++++++ packages/constants/apiEnum.ts | 34 ++ packages/hooks/identify.ts | 41 +- 22 files changed, 692 insertions(+), 120 deletions(-) diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json index be7295f..8d2ca3b 100644 --- a/apps/bMiniApp/.eslintrc-auto-import.json +++ b/apps/bMiniApp/.eslintrc-auto-import.json @@ -120,6 +120,7 @@ "EnumTaskStatus": true, "EnumUserGender": true, "EnumUserStatus": true, - "EnumUserType": true + "EnumUserType": true, + "useAccessAuthentication": true } } diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts index 92fbd7a..a16c0b0 100644 --- a/apps/bMiniApp/auto-imports.d.ts +++ b/apps/bMiniApp/auto-imports.d.ts @@ -91,6 +91,7 @@ const toValue: typeof import('vue')['toValue'] const triggerRef: typeof import('vue')['triggerRef'] const unref: typeof import('vue')['unref'] + const useAccessAuthentication: typeof import('./src/hooks/access')['useAccessAuthentication'] const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin'] const useAttrs: typeof import('vue')['useAttrs'] const useAuth: typeof import('./src/hooks/user')['useAuth'] diff --git a/apps/cMiniApp/src/hooks/access.ts b/apps/cMiniApp/src/hooks/access.ts index 1631ceb..66a110b 100644 --- a/apps/cMiniApp/src/hooks/access.ts +++ b/apps/cMiniApp/src/hooks/access.ts @@ -24,12 +24,20 @@ return _fn as T; } -export function useAccessReal<T extends (...args: any[]) => any>(fn: T) { +type UseAccessRealOptions = { + message?: string; +}; + +export function useAccessReal<T extends (...args: any[]) => any>( + fn: T, + options: UseAccessRealOptions = { message: '璇峰墠寰�瀹炲悕璁よ瘉' } +) { + const { message } = options; const { isCertified } = useUser(); const _fn = useAccessLogin((...args2) => { if (!isCertified.value) { - Message.confirm({ message: '璇峰墠寰�瀹炲悕璁よ瘉' }).then(() => { + Message.confirm({ message: message }).then(() => { Taro.navigateTo({ url: `${RouterPath.authenticationHome}`, }); diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue index f1c3fe3..277373a 100644 --- a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue @@ -10,6 +10,7 @@ :limitFileSize="10" class="bole-uploader nopaddingtop" @my-success="handleFrontImgUrlChange" + @delete="handleFrontImgUrlDelete" > <template #upload-icon> <div class="photograph-wrapper"> @@ -99,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', @@ -150,16 +153,18 @@ } 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() { - console.log('type: ', type); if (!formRef.value) return; formRef.value.validate().then(({ valid, errors }: any) => { if (valid) { @@ -209,6 +214,13 @@ } } catch (error) {} } + +function handleFrontImgUrlDelete({ files, fileList, index }) { + if (fileList?.length === 0) { + form.name = ''; + form.identity = ''; + } +} </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue b/apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue index 72ae572..b6db03c 100644 --- a/apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue +++ b/apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue @@ -1,6 +1,5 @@ <template> - <!-- web-view 缁勪欢鐢ㄤ簬鍔犺浇澶栭儴閾炬帴 --> - <web-view :src="urla" /> + <web-view :src="urlLink" /> </template> <script setup lang="ts"> @@ -14,5 +13,5 @@ const url = (router.params.url as string) ?? ''; -const urla = computed(() => decodeURIComponent(url)); +const urlLink = computed(() => decodeURIComponent(url)); </script> diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue index 7909b96..a2a8fdd 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue @@ -19,13 +19,7 @@ :key="queryState.mineAgreementSignType" > <template #renderItem="{ item }"> - <MineAgreementSignCard @click="goDetail"> - <template #actions> - <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }"> - {{ TaskStatusText[10] }} - </div> - </template> - </MineAgreementSignCard> + <MineAgreementSignCard @click="goDetail"> </MineAgreementSignCard> </template> </InfiniteLoading> </template> @@ -33,10 +27,10 @@ <script setup lang="ts"> import { MineAgreementSignCard, ProTabs, ProTabPane } from '@12333/components'; import { useUserStore } from '@/stores/modules/user'; -import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants'; +import { TaskStatus } from '@/constants'; import { useInfiniteLoading } from '@12333/hooks'; -import { OrderInputType } from '@12333/constants'; -import * as flexWorkerServices from '@12333/services/api/FlexWorker'; +import { EnumPagedListOrder } from '@12333/constants'; +import * as taskServices from '@12333/services/apiV2/task'; import Taro from '@tarojs/taro'; defineOptions({ @@ -55,20 +49,16 @@ pageModel: { rows: 20, page: pageParam, - orderInput: [ - queryState.mineAgreementSignType === TaskStatus.All - ? { property: 'creationTime', order: OrderInputType.Desc } - : { property: 'lastShelfTime', order: OrderInputType.Desc }, - ], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + return taskServices.getPersonalHireTaskInfos(params, { showLoading: false, }); }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState], + queryKey: ['taskServices/getPersonalHireTaskInfos', queryState], } ); @@ -82,10 +72,7 @@ <style lang="scss"> @import '@/styles/common.scss'; -.mineAgreementSign-page-wrapper { - .task-card-actions-text { - font-size: 24px; - line-height: 42px; - } -} +// .mineAgreementSign-page-wrapper { +// +// } </style> diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue index cbb5fe1..3bf5d51 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue +++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue @@ -1,5 +1,5 @@ <template> - <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'鍗忚绛剧害'" developing> + <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'鍗忚绛剧害'"> <InnerPage></InnerPage> </PageLayoutWithBg> </template> diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue index 0382b05..cd161c7 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue @@ -93,7 +93,7 @@ const userStore = useUserStore(); -function goToSign() {} +const goToSign = useAccessReal(() => {}); </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue index 66fd069..3c3f8db 100644 --- a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue @@ -23,10 +23,10 @@ </template> </InfiniteLoading> </ContentScrollView> - <!-- <div class="taskCheckDetail-tips-wrapper"> + <div class="taskCheckDetail-tips-wrapper" v-if="!isBindBankCard"> <div class="taskCheckDetail-tips-text">鎮ㄥ皻鏈粦瀹氶摱琛屽崱锛屾殏鏃舵棤娉曠粨绠楁湇鍔¤垂</div> - <div class="taskCheckDetail-tips-btn">绔嬪嵆缁戝畾閾惰鍗′俊鎭�</div> - </div> --> + <div class="taskCheckDetail-tips-btn" @click="goBindBankCard">绔嬪嵆缁戝畾閾惰鍗′俊鎭�</div> + </div> </template> <script setup lang="ts"> @@ -43,6 +43,18 @@ const id = route.params?.id as string; const { infiniteLoadingProps } = useCheckReceiveTaskUserSubmits({ id: id }); + +const isBindBankCard = computed( + () => + infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.enterpriseEmployeeUser + ?.isBindBankCard +); + +function goBindBankCard() { + Taro.navigateTo({ + url: `${RouterPath.unboundBankCard}`, + }); +} </script> <style lang="scss"> @@ -56,5 +68,19 @@ margin-bottom: 16px; color: boleGetCssVar('text-color', 'primary'); } + + .taskCheckDetail-tips-wrapper { + text-align: center; + font-size: 24px; + line-height: 32px; + + .taskCheckDetail-tips-text { + color: boleGetCssVar('text-color', 'secondary'); + } + + .taskCheckDetail-tips-btn { + color: boleGetCssVar('color', 'primary'); + } + } } </style> diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue index a10ccc6..58fd1fc 100644 --- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue @@ -121,7 +121,12 @@ :isFlex="false" @click="handleCall" ></PageFooterAction> - <PageFooterBtn v-if="from === 'sign'" type="primary" disabled> + <PageFooterBtn + v-if="from === 'sign'" + type="primary" + :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire" + @click="handleSign" + > {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }} </PageFooterBtn> <PageFooterBtn @@ -176,6 +181,7 @@ GetPersonalHireTaskInfosQueryStatusColor, GetTaskInfoQueryResultHireButtonText, GetTaskInfoQueryResultHireButton, + GetTaskInfoQueryResultApplyButton, } from '@12333/constants'; import { useAccessLogin } from '@/hooks'; @@ -275,6 +281,11 @@ url: `${RouterPath.taskSubmitCheck}?id=${id}`, }); } +function handleSign() { + // Taro.navigateTo({ + // url: `${RouterPath}?id=${id}`, + // }); +} function goMap() { Taro.openLocation({ diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue index b33d8d1..93e590f 100644 --- a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue @@ -9,6 +9,7 @@ format="YYYY骞碝鏈�" :max-date="nowDate" /> + <IconFont name="triangle-down" class="income-detail-time-picker-icon"></IconFont> </div> </template> </IncomeDetailListItem> @@ -25,6 +26,7 @@ <script setup lang="ts"> import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components'; import { useUserStore } from '@/stores/modules/user'; +import { IconFont } from '@nutui/icons-vue-taro'; import Taro from '@tarojs/taro'; import dayjs from 'dayjs'; @@ -50,9 +52,12 @@ .incomeDetail-page-wrapper { .income-detail-time-picker { + position: relative; + .nut-input { border-bottom: none; padding: 0; + width: 100%; .input-text { font-size: 20px; @@ -64,6 +69,12 @@ display: none; } } + + .income-detail-time-picker-icon { + position: absolute; + top: 12px; + left: 220px; + } } } </style> diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue index b8b35c9..9141308 100644 --- a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue +++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue @@ -1,5 +1,5 @@ <template> - <PageLayout class="incomeDetail-page-wrapper" :title="'鏀跺叆鏄庣粏'" developing> + <PageLayout class="incomeDetail-page-wrapper" :title="'鏀跺叆鏄庣粏'"> <InnerPage></InnerPage> </PageLayout> </template> diff --git a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue index 28ae10b..bae21d2 100644 --- a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue @@ -21,7 +21,7 @@ name: 'InnerPage', }); -const userStore = useUserStore(); +const { isCertified } = useUser(); const isBinding = ref(false); @@ -30,16 +30,15 @@ url: `${RouterPath.incomeDetail}`, }); } -function goBankBind() { - // Message.confirm({ message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' }).then(() => { - // Taro.navigateTo({ - // url: `${RouterPath.authenticationHome}`, - // }); - // }); - Taro.navigateTo({ - url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`, - }); -} + +const goBankBind = useAccessReal( + () => { + Taro.navigateTo({ + url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`, + }); + }, + { message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' } +); </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue b/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue index 1d0382e..2a730f7 100644 --- a/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue +++ b/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue @@ -1,5 +1,5 @@ <template> - <PageLayout class="mineWallet-page-wrapper" :title="'鎴戠殑閽卞寘'" developing> + <PageLayout class="mineWallet-page-wrapper" :title="'鎴戠殑閽卞寘'"> <InnerPage></InnerPage> </PageLayout> </template> diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue index fd5fbd0..f458fa7 100644 --- a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue @@ -51,10 +51,10 @@ import { VerificationCodeBusinessType } from '@12333/constants'; import * as commonServices from '@12333/services/api/Common'; import Taro from '@tarojs/taro'; -import { useQuery } from '@tanstack/vue-query'; +import { useQuery, useQueryClient } from '@tanstack/vue-query'; const userResumeServices = {}; - +const queryClient = useQueryClient(); defineOptions({ name: 'InnerPage', }); @@ -124,6 +124,9 @@ Taro.navigateTo({ url: `${RouterPath.mineCurriculumVitae}`, }); + queryClient.invalidateQueries([ + 'taskCheckReceiveServices/getCheckReceiveTaskUserSubmits', + ]); }, }); } diff --git a/packages/components/src/Card/MineAgreementSignCard.vue b/packages/components/src/Card/MineAgreementSignCard.vue index 406d63e..87d8e5e 100644 --- a/packages/components/src/Card/MineAgreementSignCard.vue +++ b/packages/components/src/Card/MineAgreementSignCard.vue @@ -4,20 +4,17 @@ <div class="task-card-title">瀹佹尝浜哄姏鏃犲咖浜哄姏璧勬簮鏈夐檺鍏徃</div> </div> <div class="task-card-footer"> - <div class="task-card-left"> - <div class="task-card-time">2024.11.20 - 2025.11.19</div> + <div class="task-card-actions" :style="{ color: '#FF4D4F' }"> + {{ '寰呯绾�' }} </div> - <div class="task-card-actions"> - <slot name="actions"> - <nut-button type="primary">鎶ュ悕</nut-button> - </slot> - </div> + <img :src="IconArrow" class="task-card-arrow" /> </div> </div> </template> <script setup lang="ts"> import { CommonTaskCardProps } from './card'; +import IconArrow from '@/assets/setting/icon-arrow.png'; defineOptions({ name: 'MineAgreementSignCard', @@ -54,30 +51,18 @@ } } - .task-card-time { - font-size: 24px; - color: boleGetCssVar('text-color', 'secondary'); - line-height: 36px; - margin-bottom: 6px; - } - .task-card-footer { display: flex; align-items: center; - - .task-card-left { - flex: 1; - min-width: 0; - display: flex; - align-items: center; - } + justify-content: space-between; .task-card-actions { - --nut-button-default-font-size: 24px; + font-size: 24px; + } - .nut-button { - height: 26px; - } + .task-card-arrow { + width: 24px; + height: 24px; } } } diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts index bd24f08..b91d90e 100644 --- a/packages/constants/apiEnum.ts +++ b/packages/constants/apiEnum.ts @@ -21,6 +21,32 @@ Wxmp = 20, } +/** 鍚堝悓鍒剁増鐘舵�� */ +export enum EnumContractTemplateStatus { + /**寰呭埗鐗� */ + Wait = 10, + /**宸插畬鎴� */ + Completed = 20, +} + +/** 鍚堝悓妯℃澘鍙橀噺 */ +export enum EnumContractTemplateValueRecorder { + /**鍙戜欢浜� */ + Creator = 10, + /**绛剧讲浜� */ + Signer = 20, +} + +/** 鍚堝悓妯℃澘鍙橀噺绫诲瀷 */ +export enum EnumContractTemplateValueType { + /**鏂囨湰 */ + Text = 10, + /**绛剧讲 */ + Sign = 20, + /**鏃ユ湡 */ + Date = 30, +} + /** 鏁版嵁鏉ユ簮 */ export enum EnumDataSource { /**818 */ @@ -37,6 +63,14 @@ Deleted = 30, } +/** 鐢靛瓙绛� */ +export enum EnumElectronSignAccess { + /**涓婁笂绛� */ + BestSign = 10, + /**鏀粯瀹濅俊浠荤 */ + AlipaySign = 20, +} + /** 浼佷笟瀹炲悕鏂瑰紡 */ export enum EnumEnterpriseRealMethod { /**浼佷笟涓夎绱� */ diff --git a/packages/hooks/identify.ts b/packages/hooks/identify.ts index a96f9d4..230cb63 100644 --- a/packages/hooks/identify.ts +++ b/packages/hooks/identify.ts @@ -1,4 +1,6 @@ +import { EnumOcrAccess } from '@12333/constants'; import * as accountServices from '@12333/services/api/Account'; +import * as ocrUtilsServices from '@12333/services/apiV2/ocrUtils'; import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type'; import _ from 'lodash'; @@ -23,21 +25,26 @@ } catch (error) {} } -// type UserCredentialVerifyOcrIDCardOptions = { -// onSuccess?: (res: API.UserCredentialVerifyOcrIDCardResponse) => any; -// }; +type UserCredentialVerifyOcrIDCardOptions = { + access?: EnumOcrAccess; + scene?: string; + isOssUrl?: boolean; + response?: FileItem; + onSuccess?: (res: API.GetIdentityFrontOcrCommandResult) => any; +}; -// export async function userCredentialVerifyOcrIDCard( -// response: FileItem, -// options: UserCredentialVerifyOcrIDCardOptions = {} -// ) { -// try { -// if (response?.url) { -// const { onSuccess } = options; -// let res = await commonServices.userCredentialVerifyOcrIDCard({ -// identityImageUrl: response.url, -// }); -// onSuccess?.(res); -// } -// } catch (error) {} -// } +export async function userCredentialVerifyOcrIDCard( + options: UserCredentialVerifyOcrIDCardOptions = {} +) { + try { + const { onSuccess, access, isOssUrl, response, scene } = options; + if (response?.path) { + let res = await ocrUtilsServices.getIdentityFrontOcr({ + access: access, + url: response.path, + isOssUrl: isOssUrl, + }); + onSuccess?.(res); + } + } catch (error) {} +} diff --git a/packages/services/apiV2/electronSign.ts b/packages/services/apiV2/electronSign.ts index 77c1101..b649bcb 100644 --- a/packages/services/apiV2/electronSign.ts +++ b/packages/services/apiV2/electronSign.ts @@ -17,6 +17,75 @@ }); } +/** 鏌ヨ鍚堝悓妯℃澘璇︽儏 GET /api/user/electronSign/getContractTemplate */ +export async function getContractTemplate( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetContractTemplateParams, + options?: API.RequestConfig +) { + return request<API.GetContractTemplateQueryResult>('/api/user/electronSign/getContractTemplate', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鏌ヨ杩愯惀绔崗璁鐞嗗垎椤靛垪琛ㄦ暟鎹� POST /api/user/electronSign/getContractTemplateEnterprises */ +export async function getContractTemplateEnterprises( + body: API.GetContractTemplateEnterprisesQuery, + options?: API.RequestConfig +) { + return request<API.GetContractTemplateEnterprisesQueryResult>( + '/api/user/electronSign/getContractTemplateEnterprises', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏌ヨ浼佷笟鍚堝悓妯℃澘鏃ュ織鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/electronSign/getEnterpriseContractTemplateLogs */ +export async function getEnterpriseContractTemplateLogs( + body: API.GetEnterpriseContractTemplateLogsQuery, + options?: API.RequestConfig +) { + return request<API.GetEnterpriseContractTemplateLogsQueryResult>( + '/api/user/electronSign/getEnterpriseContractTemplateLogs', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏌ヨ浼佷笟鍚堝悓妯℃澘鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/electronSign/getEnterpriseContractTemplates */ +export async function getEnterpriseContractTemplates( + body: API.GetEnterpriseContractTemplatesQuery, + options?: API.RequestConfig +) { + return request<API.GetEnterpriseContractTemplatesQueryResult>( + '/api/user/electronSign/getEnterpriseContractTemplates', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + /** 涓汉浜鸿劯瀹炲悕璁よ瘉 POST /api/user/electronSign/personalUserFaceReal */ export async function personalUserFaceReal( body: API.PersonalUserFaceRealCommand, @@ -47,6 +116,21 @@ }); } +/** 淇濆瓨鍚堝悓妯℃澘 POST /api/user/electronSign/saveContractTemplate */ +export async function saveContractTemplate( + body: API.SaveContractTemplateCommand, + options?: API.RequestConfig +) { + return request<string>('/api/user/electronSign/saveContractTemplate', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + /** 鍙戦�佷釜浜轰笁瑕佺礌瀹炲悕鐭俊 POST /api/user/electronSign/sendPersonalUserIdentity3RealSms */ export async function sendPersonalUserIdentity3RealSms( body: API.SendPersonalUserIdentity3RealSmsCommand, @@ -61,3 +145,18 @@ ...(options || {}), }); } + +/** 绂佺敤鍚堝悓妯℃澘 PUT /api/user/electronSign/setIsDisabledContractTemplate */ +export async function setIsDisabledContractTemplate( + body: API.SetIsDisabledContractTemplateCommand, + options?: API.RequestConfig +) { + return request<number>('/api/user/electronSign/setIsDisabledContractTemplate', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts index 39390a8..2145001 100644 --- a/packages/services/apiV2/index.ts +++ b/packages/services/apiV2/index.ts @@ -8,13 +8,13 @@ import * as enterprise from './enterprise'; import * as resource from './resource'; import * as task from './task'; -import * as ocrUtils from './ocrUtils'; import * as dictionary from './dictionary'; import * as userResume from './userResume'; import * as auth from './auth'; import * as taskCheckReceive from './taskCheckReceive'; import * as electronSign from './electronSign'; import * as taskUser from './taskUser'; +import * as ocrUtils from './ocrUtils'; import * as menu from './menu'; import * as logRecords from './logRecords'; import * as fileUtils from './fileUtils'; @@ -25,13 +25,13 @@ enterprise, resource, task, - ocrUtils, dictionary, userResume, auth, taskCheckReceive, electronSign, taskUser, + ocrUtils, menu, logRecords, fileUtils, diff --git a/packages/services/apiV2/ocrUtils.ts b/packages/services/apiV2/ocrUtils.ts index 4601bae..75d1669 100644 --- a/packages/services/apiV2/ocrUtils.ts +++ b/packages/services/apiV2/ocrUtils.ts @@ -2,17 +2,44 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 鏂囧瓧璇嗗埆钀ヤ笟鎵х収 GET /api/common/ocrUtils/getLicenseOcr */ -export async function getLicenseOcr( - // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) - params: API.APIgetLicenseOcrParams, +/** 鏂囧瓧璇嗗埆韬唤璇佽儗闈� POST /api/common/ocrUtils/getIdentityBackOcr */ +export async function getIdentityBackOcr( + body: API.GetIdentityBackOcrCommand, options?: API.RequestConfig ) { - return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', { - method: 'GET', - params: { - ...params, + return request<API.GetIdentityBackOcrCommandResult>('/api/common/ocrUtils/getIdentityBackOcr', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', }, + data: body, + ...(options || {}), + }); +} + +/** 鏂囧瓧璇嗗埆韬唤璇佹闈� POST /api/common/ocrUtils/getIdentityFrontOcr */ +export async function getIdentityFrontOcr( + body: API.GetIdentityFrontOcrCommand, + options?: API.RequestConfig +) { + return request<API.GetIdentityFrontOcrCommandResult>('/api/common/ocrUtils/getIdentityFrontOcr', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏂囧瓧璇嗗埆钀ヤ笟鎵х収 POST /api/common/ocrUtils/getLicenseOcr */ +export async function getLicenseOcr(body: API.GetLicenseOcrCommand, options?: API.RequestConfig) { + return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, ...(options || {}), }); } diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts index 584f731..31ee0fb 100644 --- a/packages/services/apiV2/typings.d.ts +++ b/packages/services/apiV2/typings.d.ts @@ -29,6 +29,11 @@ date?: string; } + interface APIgetContractTemplateParams { + /** 妯℃澘Id */ + id?: string; + } + interface APIgetCurrentLogierMenuParams { /** Id */ id?: string; @@ -91,17 +96,6 @@ interface APIgetFileUrlParams { /** 鍦板潃 */ url?: string; - } - - interface APIgetLicenseOcrParams { - /** 閫氶亾 */ - access?: EnumOcrAccess; - /** 鍦烘櫙 */ - scene?: string; - /** 閾炬帴鍦板潃 */ - url?: string; - /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */ - isOssUrl?: boolean; } interface APIgetMenuParams { @@ -239,6 +233,28 @@ mainBusiness?: string; } + interface BaiduOcrIdentityBackResultModel { + /** 澶辨晥鏃ユ湡 */ + expiryDate?: string; + /** 绛惧彂鏈哄叧 */ + issueAuthority?: string; + /** 绛惧彂鏃ユ湡 */ + issueDate?: string; + } + + interface BaiduOcrIdentityFrontResultModel { + name?: string; + /** 韬唤璇佸彿 */ + identity?: string; + gender?: EnumUserGender; + /** 鐢熸棩 */ + birthday?: string; + /** 姘戞棌 */ + nation?: string; + /** 浣忓潃 */ + address?: string; + } + interface BindWxmpUserInfoCommand { /** 璁块棶浠ょ墝 */ accessToken: string; @@ -359,6 +375,29 @@ Wxmp = 20, } + enum EnumContractTemplateStatus { + /**寰呭埗鐗� */ + Wait = 10, + /**宸插畬鎴� */ + Completed = 20, + } + + enum EnumContractTemplateValueRecorder { + /**鍙戜欢浜� */ + Creator = 10, + /**绛剧讲浜� */ + Signer = 20, + } + + enum EnumContractTemplateValueType { + /**鏂囨湰 */ + Text = 10, + /**绛剧讲 */ + Sign = 20, + /**鏃ユ湡 */ + Date = 30, + } + enum EnumDataSource { /**818 */ HumanResources = 10, @@ -371,6 +410,13 @@ Modified = 20, /**鍒犻櫎 */ Deleted = 30, + } + + enum EnumElectronSignAccess { + /**涓婁笂绛� */ + BestSign = 10, + /**鏀粯瀹濅俊浠荤 */ + AlipaySign = 20, } enum EnumEnterpriseRealMethod { @@ -775,6 +821,42 @@ timestamp?: number; } + interface FriendlyResultGetContractTemplateEnterprisesQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetContractTemplateEnterprisesQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetContractTemplateQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetContractTemplateQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + interface FriendlyResultGetDbAuditLogsQueryResult { /** 璺熻釜Id */ traceId?: string; @@ -783,6 +865,42 @@ /** 閿欒鐮� */ errorCode?: string; data?: GetDbAuditLogsQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetEnterpriseContractTemplateLogsQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetEnterpriseContractTemplateLogsQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetEnterpriseContractTemplatesQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetEnterpriseContractTemplatesQueryResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -909,6 +1027,42 @@ /** 閿欒鐮� */ errorCode?: string; data?: GetExceptionLogsQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetIdentityBackOcrCommandResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetIdentityBackOcrCommandResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetIdentityFrontOcrCommandResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetIdentityFrontOcrCommandResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -1959,6 +2113,66 @@ addressName?: string; } + interface GetContractTemplateEnterprisesQuery { + /** 鍏抽敭瀛� */ + keywords?: string; + status?: EnumContractTemplateStatus; + pageModel?: PagedListQueryPageModel; + } + + interface GetContractTemplateEnterprisesQueryResult { + pageModel?: PagedListQueryResultPageModel; + /** 鏁版嵁 */ + data?: GetContractTemplateEnterprisesQueryResultItem[]; + } + + interface GetContractTemplateEnterprisesQueryResultItem { + /** 浼佷笟Id */ + id?: string; + /** 浼佷笟鍏ㄧО */ + enterpriseName?: string; + /** 鑱旂郴浜� */ + contacts?: string; + /** 鑱旂郴鐢佃瘽 */ + contactPhoneNumber?: string; + /** 鍚堝悓鏁� */ + total?: number; + /** 寰呭埗鐗� */ + waitCount?: number; + } + + interface GetContractTemplateQueryResult { + /** 妯℃澘Id */ + id?: string; + /** 浼佷笟Id */ + enterpriseId?: string; + /** 妯℃澘鍚嶇О */ + name?: string; + /** 妯℃澘 */ + file?: string; + /** 涓氬姟缂栫爜 */ + code?: string; + access?: EnumElectronSignAccess; + /** 妯℃澘Id */ + templateId?: string; + /** 鍙橀噺 */ + values?: GetContractTemplateQueryResultValue[]; + } + + interface GetContractTemplateQueryResultValue { + /** 鍙橀噺Id */ + id?: string; + type?: EnumContractTemplateValueType; + recorder?: EnumContractTemplateValueRecorder; + userType?: EnumUserType; + /** 鍙橀噺鍚嶇О */ + label?: string; + /** 鍙橀噺浠g爜 */ + name?: string; + /** 鏄惁蹇呭~ */ + required?: boolean; + } + type GetCurrentLogierMenusQuery = Record<string, any>; interface GetDbAuditLogsQuery { @@ -2102,6 +2316,74 @@ sort?: number; /** 鏄惁绂佺敤 */ isDisabled?: boolean; + } + + interface GetEnterpriseContractTemplateLogsQuery { + /** 妯℃澘Id */ + id?: string; + pageModel?: PagedListQueryPageModel; + } + + interface GetEnterpriseContractTemplateLogsQueryResult { + pageModel?: PagedListQueryResultPageModel; + /** 鏁版嵁 */ + data?: GetEnterpriseContractTemplateLogsQueryResultItem[]; + } + + interface GetEnterpriseContractTemplateLogsQueryResultItem { + /** 璺熻釜Id */ + traceId?: string; + /** 鎿嶄綔浜� */ + createdUser?: string; + /** 鎿嶄綔鏃堕棿 */ + createdTime?: string; + operate?: EnumDbAuditOperate; + /** 鎿嶄綔鍐呭 */ + content?: string[]; + } + + interface GetEnterpriseContractTemplatesQuery { + /** 浼佷笟Id */ + enterpriseId?: string; + /** 鍏抽敭瀛� */ + keywords?: string; + status?: EnumContractTemplateStatus; + /** 瀹㈡埛涓婁紶鏃堕棿-璧峰 */ + createdTimeBegin?: string; + /** 瀹㈡埛涓婁紶鏃堕棿-鎴 */ + createdTimeEnd?: string; + /** 鍒剁増鏃堕棿-璧峰 */ + completedTimeBegin?: string; + /** 鍒剁増鏃堕棿-鎴 */ + completedTimeEnd?: string; + pageModel?: PagedListQueryPageModel; + } + + interface GetEnterpriseContractTemplatesQueryResult { + pageModel?: PagedListQueryResultPageModel; + /** 鏁版嵁 */ + data?: GetEnterpriseContractTemplatesQueryResultItem[]; + } + + interface GetEnterpriseContractTemplatesQueryResultItem { + /** 妯℃澘Id */ + id?: string; + /** 妯℃澘鍚嶇О */ + name?: string; + /** 瀹㈡埛涓婁紶鏃堕棿 */ + createdTime?: string; + /** 妯℃澘Id */ + templateId?: string; + access?: EnumElectronSignAccess; + /** 涓氬姟缂栫爜 */ + code?: string; + /** 妯℃澘 */ + file?: string; + status?: EnumContractTemplateStatus; + /** 鍒剁増鏃堕棿 */ + completedTime?: string; + /** 鎿嶄綔浜� */ + operator?: string; } interface GetEnterpriseElectronSignSettingQueryResult { @@ -2345,6 +2627,48 @@ createdUser?: GetResourceLogsQueryResultItemCreatedUser; /** 鍒涘缓鏃堕棿 */ createdTime?: string; + } + + interface GetIdentityBackOcrCommand { + access?: EnumOcrAccess; + /** 鍦烘櫙 */ + scene?: string; + /** 閾炬帴鍦板潃 */ + url?: string; + /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */ + isOssUrl?: boolean; + } + + interface GetIdentityBackOcrCommandResult { + /** 鍦板潃 */ + url?: string; + model?: BaiduOcrIdentityBackResultModel; + } + + interface GetIdentityFrontOcrCommand { + access?: EnumOcrAccess; + /** 鍦烘櫙 */ + scene?: string; + /** 閾炬帴鍦板潃 */ + url?: string; + /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */ + isOssUrl?: boolean; + } + + interface GetIdentityFrontOcrCommandResult { + /** 鍦板潃 */ + url?: string; + model?: BaiduOcrIdentityFrontResultModel; + } + + interface GetLicenseOcrCommand { + access?: EnumOcrAccess; + /** 鍦烘櫙 */ + scene?: string; + /** 閾炬帴鍦板潃 */ + url?: string; + /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */ + isOssUrl?: boolean; } interface GetLicenseOcrCommandResult { @@ -3608,6 +3932,38 @@ id?: string; } + interface SaveContractTemplateCommand { + /** 浼佷笟Id锛堣繍钀ョ淇濆瓨鏃讹級 */ + enterpriseId?: string; + /** 妯℃澘鍚嶇О */ + name: string; + /** 妯℃澘 */ + file: string; + /** 涓氬姟缂栫爜 */ + code?: string; + access?: EnumElectronSignAccess; + /** 妯℃澘Id */ + templateId?: string; + /** 鍙橀噺 */ + values?: SaveContractTemplateCommandValue[]; + /** Id */ + id?: string; + } + + interface SaveContractTemplateCommandValue { + /** Id */ + id?: string; + type?: EnumContractTemplateValueType; + recorder?: EnumContractTemplateValueRecorder; + userType?: EnumUserType; + /** 鍙橀噺鍚嶇О */ + label?: string; + /** 鍙橀噺浠g爜 */ + name?: string; + /** 鏄惁蹇呭~ */ + required?: boolean; + } + interface SaveDictionaryCategoryCommand { /** 缂栧彿 */ code: string; @@ -3975,6 +4331,12 @@ smsCost?: number; } + interface SetIsDisabledContractTemplateCommand { + ids?: string[]; + /** 鏄惁宸茬鐢� */ + isDisabled?: boolean; + } + interface SetMenuSwitchCommand { /** Id */ ids?: string[]; -- Gitblit v1.9.1