From 0cf1b417c68013df89504088c471fd113676391a Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 14 八月 2025 17:11:03 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue | 10 ++ apps/cMiniApp/src/stores/modules/user.ts | 34 ++++---- types/api.d.ts | 13 ++ apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue | 2 apps/bMiniApp/src/hooks/user.ts | 12 +- apps/bMiniApp/src/stores/modules/user.ts | 42 +++++---- apps/bMiniApp/src/custom-tab-bar/index.tsx | 7 + apps/bMiniApp/src/pages/mine/index.vue | 23 ++++- apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue | 2 apps/bMiniApp/src/utils/storage/auth.ts | 4 apps/cMiniApp/src/hooks/user.ts | 2 apps/cMiniApp/src/utils/storage/auth.ts | 4 apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue | 13 +- packages/components/src/Card/FlexJobCard.vue | 3 apps/cMiniApp/src/custom-tab-bar/index.tsx | 7 + apps/bMiniApp/src/pages/home/index.vue | 11 ++ apps/cMiniApp/src/pages/mine/index.vue | 32 +------ 17 files changed, 118 insertions(+), 103 deletions(-) diff --git a/apps/bMiniApp/src/custom-tab-bar/index.tsx b/apps/bMiniApp/src/custom-tab-bar/index.tsx index 72aab82..aec7fa4 100644 --- a/apps/bMiniApp/src/custom-tab-bar/index.tsx +++ b/apps/bMiniApp/src/custom-tab-bar/index.tsx @@ -112,6 +112,7 @@ } return () => { + const _router = Taro.useRouter(); return ( <View class="bottom-tab" @@ -124,7 +125,7 @@ icon="../assets/tabbar/icon-home.png" activeIcon="../assets/tabbar/icon-home-active.png" pagePath={TabBarPageRouter.Home} - currentPath={router.path} + currentPath={_router.path} index={0} active={system.activeTab === 0} className="home" @@ -135,7 +136,7 @@ icon="../assets/tabbar/icon-task.png" activeIcon="../assets/tabbar/icon-task-active.png" pagePath={TabBarPageRouter.Workbenches} - currentPath={router.path} + currentPath={_router.path} active={system.activeTab === 1} className="task" onClick={switchTab} @@ -146,7 +147,7 @@ icon="../assets/tabbar/icon-mine.png" activeIcon="../assets/tabbar/icon-mine-active.png" pagePath={TabBarPageRouter.Mine} - currentPath={router.path} + currentPath={_router.path} active={system.activeTab === 2} className="mine" onClick={switchTab} diff --git a/apps/bMiniApp/src/hooks/user.ts b/apps/bMiniApp/src/hooks/user.ts index 28b1083..8e97ad1 100644 --- a/apps/bMiniApp/src/hooks/user.ts +++ b/apps/bMiniApp/src/hooks/user.ts @@ -11,9 +11,9 @@ const { userDetail, userInfo, locationCity } = storeToRefs(userStore); - // function updateUserInfo() { - // return userStore.getCurrentUserInfo(); - // } + function updateUserInfo() { + return userStore.getCurrentUserInfo(); + } // const isCompanyAudited = computed(() => { // return userDetail.value?.openHRSiteStatus === ParkOrHRStatus.Running; @@ -31,13 +31,13 @@ // }); const isCertified = computed(() => { - return false; + return userDetail.value?.isReal; }); return { user: userInfo, userDetail: userDetail, - // updateUserInfo, + updateUserInfo, // isCompletePersonalInfo, // isCompanyAudited, isCertified, @@ -67,7 +67,7 @@ Taro.useReady(async () => { if (isLogin.value && userStore.firstGetUserDetail) { - // userStore.getCurrentUserInfo(); + userStore.getCurrentUserInfo(); } if (needAuth && !isLogin.value) { Taro.navigateTo({ diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue index b348543..3ec8f87 100644 --- a/apps/bMiniApp/src/pages/home/index.vue +++ b/apps/bMiniApp/src/pages/home/index.vue @@ -121,7 +121,7 @@ }); const queryState = reactive({ - orderType: HomeOrderType.Recommend, + orderType: HomeOrderType.LastShelfTime, }); const { infiniteLoadingProps } = useInfiniteLoading( @@ -140,12 +140,17 @@ userCredentials: queryMenuState.certificateType ? [queryMenuState.certificateType] : null, }; - return userResumeServices.getUserResumes(params, { + return userResumeServices.getOpenUserResumes(params, { showLoading: false, }); }, { - queryKey: ['userResumeServices/getUserResumes', queryState, queryMenuState, queryPositionState], + queryKey: [ + 'userResumeServices/getOpenUserResumes', + queryState, + queryMenuState, + queryPositionState, + ], } ); diff --git a/apps/bMiniApp/src/pages/mine/index.vue b/apps/bMiniApp/src/pages/mine/index.vue index 66b072b..27499bb 100644 --- a/apps/bMiniApp/src/pages/mine/index.vue +++ b/apps/bMiniApp/src/pages/mine/index.vue @@ -17,17 +17,25 @@ <UserAvatar :size="60" class="mine-avatar" /> <div class="user-info" v-if="isLogin"> <div class="user-info-item"> - <div class="user-info-item-name">{{ userDetail?.userName ?? '123' }}</div> + <div class="user-info-item-name">{{ userDetail?.name ?? '' }}</div> <div class="user-info-item-gender"> - <img v-if="1" :src="IconMale" class="user-info-item-gender-icon" /> - <img v-else :src="IconFemale" class="user-info-item-gender-icon" /> + <img + v-if="userDetail?.gender === EnumUserGender.Male" + :src="IconMale" + class="user-info-item-gender-icon" + /> + <img + v-else-if="userDetail?.gender === EnumUserGender.Female" + :src="IconFemale" + class="user-info-item-gender-icon" + /> </div> - <div class="user-info-item-position">绠$悊鍛�</div> + <div class="user-info-item-position">{{ (userDetail?.roles ?? []).join(',') }}</div> </div> <div class="user-info-item"> <template v-if="isCertified"> <div class="user-info-certified-text"> - {{ userDetail?.customerName ?? '123' }} + {{ userDetail?.enterpriseName ?? '' }} </div> <div class="user-info-certified-btn">宸茶璇�</div> </template> @@ -112,6 +120,7 @@ import { useUserStore } from '@/stores/modules/user'; import { useQueryClient } from '@tanstack/vue-query'; import { TaskDetailWelfareItem } from '@12333/components'; +import { EnumUserGender } from '@12333/constants'; const userStore = useUserStore(); const queryClient = useQueryClient(); @@ -144,9 +153,9 @@ Taro.useShareAppMessage((res) => { return { - title: `${userDetail.value?.contacter}鍚嶇墖`, + title: `${userDetail.value?.name}鍚嶇墖`, // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, - imageUrl: userDetail.value?.avatarUrl, + imageUrl: userDetail.value?.avatar, }; }); diff --git a/apps/bMiniApp/src/stores/modules/user.ts b/apps/bMiniApp/src/stores/modules/user.ts index e95ef68..af03a0b 100644 --- a/apps/bMiniApp/src/stores/modules/user.ts +++ b/apps/bMiniApp/src/stores/modules/user.ts @@ -31,7 +31,7 @@ userInfo?: Nullable<API.LoginCommandCallback>; token?: Nullable<string>; refreshToken?: Nullable<string>; - userDetail?: Nullable<API.UserInfoV2>; + userDetail?: Nullable<API.GetEnterpriseLoginInfoQueryResult>; firstGetUserDetail?: boolean; locationCity?: string; @@ -83,6 +83,10 @@ accountInfo(): Partial<AccountInfo> { return getAccountInfoFromAccessToken(this.userInfo?.accessToken); + }, + + userId: (state) => { + return state.userDetail?.id; }, // matchMakingIdentity(state): MatchMakingIdentityEnum { @@ -152,7 +156,7 @@ try { this.setUserInfoAction(res); this.setTokenAction(res); - // await this.getCurrentUserInfo(); + await this.getCurrentUserInfo(); } catch (error) {} }, @@ -187,21 +191,21 @@ // } catch (error) {} }, - // async getCurrentUserInfo() { - // try { - // let res = await userServices.getUserInfo({ showLoading: false }); - // if (res) { - // res.frontStatus = getUserCertificationFrontStatusAdapter( - // res.userCertificationStatus, - // res.userCertificationAuditStatus - // ); - // res.originalAvatarUrl = res.avatarUrl; - // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar; - // this.setUserDetail(res); - // this.firstGetUserDetail = false; - // } - // } catch (error) {} - // }, + async getCurrentUserInfo() { + try { + let res = await authServices.getEnterpriseLoginInfo({}, { showLoading: false }); + if (res) { + // res.frontStatus = getUserCertificationFrontStatusAdapter( + // res.userCertificationStatus, + // res.userCertificationAuditStatus + // ); + res.originalAvatar = res.avatar; + res.avatar = res.avatar ? setOSSLink(res.avatar) : DefaultAvatar; + this.setUserDetail(res); + this.firstGetUserDetail = false; + } + } catch (error) {} + }, setTokenAction(tokenInfo: API.IdentityModelTokenCacheItem) { this.token = tokenInfo?.accessToken; @@ -213,7 +217,7 @@ setUserInfo(info); }, - setUserDetail(detail: API.UserInfoV2) { + setUserDetail(detail: API.GetEnterpriseLoginInfoQueryResult) { this.userDetail = detail; setUserDetail(detail); }, @@ -232,7 +236,7 @@ */ logout() { this.resetState(); - myClient.removeQueries(); + // myClient.removeQueries(); goAuthorization(); }, diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue index db2d068..b364d7c 100644 --- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue +++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue @@ -22,7 +22,7 @@ </div> </template> <template #footerRight> - <nut-button type="primary" @click="goToJobDetail(item)">鏌ョ湅璇︽儏</nut-button> + <nut-button type="primary" @click.stop="goToJobDetail(item)">鏌ョ湅璇︽儏</nut-button> </template> </FlexJobCard> </template> diff --git a/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue b/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue index 2405fab..d1963e7 100644 --- a/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue @@ -13,7 +13,7 @@ :isRealName="item.isRealName" :arrangeCount="item.arrangeCount" :educationalLevel="item.educationalLevel" - @contact="handleContact" + @click="goFlexJobDetail(item)" > </FlexJobCard> </template> @@ -26,6 +26,7 @@ import { useInfiniteLoading } from '@12333/hooks'; import { OrderInputType } from '@12333/constants'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; +import Taro from '@tarojs/taro'; defineOptions({ name: 'InnerPage', @@ -52,9 +53,9 @@ } ); -function handleContact() {} +function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) { + Taro.navigateTo({ + url: `${RouterPath.flexJobDetail}?userId=${item.id}`, + }); +} </script> - -<style lang="scss"> -@import '@/styles/common.scss'; -</style> diff --git a/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue b/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue index 957308d..4a6bb1a 100644 --- a/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue @@ -12,7 +12,7 @@ :isRealName="item.isRealName" :arrangeCount="item.arrangeCount" :educationalLevel="item.educationalLevel" - @contact="handleContact" + @click="goFlexJobDetail(item)" @cancel-collection="handleCancelCollection(item)" > </FlexJobCard> @@ -27,6 +27,7 @@ import { OrderInputType } from '@12333/constants'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; import { Message } from '@12333/utils'; +import Taro from '@tarojs/taro'; defineOptions({ name: 'InnerPage', @@ -53,7 +54,12 @@ } ); -function handleContact() {} +function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) { + Taro.navigateTo({ + url: `${RouterPath.flexJobDetail}?userId=${item.id}`, + }); +} + async function handleCancelCollection(item: API.GetNewestWorkerListOutput) { try { let params: API.APIcancelUserResumeCollectParams = { diff --git a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue index a755cef..1967585 100644 --- a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue @@ -19,7 +19,7 @@ :showFooterLeft="false" > <template #footerRight> - <nut-button v-if="showQueryState" type="primary" @click="handleArrange(item)" + <nut-button v-if="showQueryState" type="primary" @click.stop="handleArrange(item)" >瀹夋帓</nut-button > <div v-else class="batch-task-card-status">宸插畨鎺�</div> diff --git a/apps/bMiniApp/src/utils/storage/auth.ts b/apps/bMiniApp/src/utils/storage/auth.ts index ecf237f..e5e8fda 100644 --- a/apps/bMiniApp/src/utils/storage/auth.ts +++ b/apps/bMiniApp/src/utils/storage/auth.ts @@ -29,10 +29,10 @@ } export function getUserDetail() { - return storageLocal.getItem<API.UserInfoV2>(StorageKey.USER_DETAIL_KEY); + return storageLocal.getItem<API.GetEnterpriseLoginInfoQueryResult>(StorageKey.USER_DETAIL_KEY); } -export function setUserDetail(userDetail: API.UserInfoV2) { +export function setUserDetail(userDetail: API.GetEnterpriseLoginInfoQueryResult) { return storageLocal.setItem(StorageKey.USER_DETAIL_KEY, userDetail); } diff --git a/apps/cMiniApp/src/custom-tab-bar/index.tsx b/apps/cMiniApp/src/custom-tab-bar/index.tsx index 5626e58..fec3385 100644 --- a/apps/cMiniApp/src/custom-tab-bar/index.tsx +++ b/apps/cMiniApp/src/custom-tab-bar/index.tsx @@ -112,6 +112,7 @@ } return () => { + const _router = Taro.useRouter(); return ( <View class="bottom-tab" @@ -124,7 +125,7 @@ icon="../assets/tabbar/icon-home.png" activeIcon="../assets/tabbar/icon-home-active.png" pagePath={TabBarPageRouter.Home} - currentPath={router.path} + currentPath={_router.path} index={0} active={system.activeTab === 0} className="home" @@ -136,7 +137,7 @@ icon="../assets/tabbar/icon-task.png" activeIcon="../assets/tabbar/icon-task-active.png" pagePath={TabBarPageRouter.Task} - currentPath={router.path} + currentPath={_router.path} active={system.activeTab === 1} className="task" onClick={switchTab} @@ -147,7 +148,7 @@ icon="../assets/tabbar/icon-mine.png" activeIcon="../assets/tabbar/icon-mine-active.png" pagePath={TabBarPageRouter.Mine} - currentPath={router.path} + currentPath={_router.path} active={system.activeTab === 2} className="mine" onClick={switchTab} diff --git a/apps/cMiniApp/src/hooks/user.ts b/apps/cMiniApp/src/hooks/user.ts index a0d6025..e78bd97 100644 --- a/apps/cMiniApp/src/hooks/user.ts +++ b/apps/cMiniApp/src/hooks/user.ts @@ -33,7 +33,7 @@ }); const isCertified = computed(() => { - return false; + return userDetail.value?.isReal; }); return { diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue index 0c53077..7bddbbd 100644 --- a/apps/cMiniApp/src/pages/mine/index.vue +++ b/apps/cMiniApp/src/pages/mine/index.vue @@ -16,7 +16,7 @@ <div class="mine-avatar-wrapper" @click="goLogin"> <UserAvatar :size="52" class="mine-avatar" /> <div class="user-info" v-if="isLogin"> - <div class="user-info-item">{{ detail?.name ?? '' }}</div> + <div class="user-info-item">{{ userDetail?.name ?? '' }}</div> <div class="user-info-auth"> <div class="user-info-auth-item"> <div class="user-info-unCertified" v-if="isCertified"> @@ -67,7 +67,7 @@ <nut-badge class="mine-order-list-item" top="8" - :value="detail?.taskCount ?? 0" + :value="userDetail?.taskCount ?? 0" @click="goMineSign" > <img :src="IconOrderSign" class="mine-order-list-icon" /> @@ -76,7 +76,7 @@ <nut-badge class="mine-order-list-item" top="8" - :value="detail?.hirePassTaskCount ?? 0" + :value="userDetail?.hirePassTaskCount ?? 0" @click="goMineHire" > <img :src="IconOrderHire" class="mine-order-list-icon" /> @@ -85,7 +85,7 @@ <nut-badge class="mine-order-list-item" top="8" - :value="detail?.hireRefuseTaskCount ?? 0" + :value="userDetail?.hireRefuseTaskCount ?? 0" @click="goMineCancel" > <img :src="IconOrderCancel" class="mine-order-list-icon" /> @@ -124,35 +124,15 @@ import { useQuery } from '@tanstack/vue-query'; import * as authServices from '@12333/services/apiV2/auth'; -const { userDetail, isCertified } = useUser(); -console.log('isCertified: ', isCertified); +const { userDetail, isCertified, updateUserInfo } = useUser(); const isLogin = useIsLogin(); const systemStore = useSystemStore(); const { goLoginFn } = useGoLogin(); const bgHeight = computed(() => 133 + systemStore.navHeight); -const { - isLoading, - isError, - data: detail, - refetch, -} = useQuery({ - queryKey: ['authServices/getPersonalLoginInfo'], - queryFn: async () => { - return await authServices.getPersonalLoginInfo( - {}, - { - showLoading: false, - } - ); - }, - placeholderData: () => ({} as API.GetPersonalLoginInfoQueryResult), - enabled: isLogin, -}); - Taro.useDidShow(() => { - refetch(); + updateUserInfo(); }); function goLogin() { diff --git a/apps/cMiniApp/src/stores/modules/user.ts b/apps/cMiniApp/src/stores/modules/user.ts index c678128..1606ae7 100644 --- a/apps/cMiniApp/src/stores/modules/user.ts +++ b/apps/cMiniApp/src/stores/modules/user.ts @@ -31,7 +31,7 @@ userInfo?: Nullable<API.LoginCommandCallback>; token?: Nullable<string>; refreshToken?: Nullable<string>; - userDetail?: Nullable<API.UserInfoV2>; + userDetail?: Nullable<API.GetPersonalLoginInfoQueryResult>; firstGetUserDetail?: boolean; locationCity?: string; @@ -86,7 +86,7 @@ }, userId: (state) => { - return state.userInfo?.id ?? ''; + return state.userDetail?.id ?? ''; }, }, actions: { @@ -188,19 +188,19 @@ }, async getCurrentUserInfo() { - // try { - // let res = await userServices.getUserInfo({ showLoading: false }); - // if (res) { - // res.frontStatus = getUserCertificationFrontStatusAdapter( - // res.userCertificationStatus, - // res.userCertificationAuditStatus - // ); - // res.originalAvatarUrl = res.avatarUrl; - // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar; - // this.setUserDetail(res); - // this.firstGetUserDetail = false; - // } - // } catch (error) {} + try { + let res = await authServices.getPersonalLoginInfo({}, { showLoading: false }); + if (res) { + // res.frontStatus = getUserCertificationFrontStatusAdapter( + // res.userCertificationStatus, + // res.userCertificationAuditStatus + // ); + res.originalAvatar = res.avatar; + res.avatar = res.avatar ? setOSSLink(res.avatar) : DefaultAvatar; + this.setUserDetail(res); + this.firstGetUserDetail = false; + } + } catch (error) {} }, setTokenAction(tokenInfo: API.LoginCommandCallback) { @@ -216,7 +216,7 @@ setUserInfo(this.userInfo); }, - setUserDetail(detail: API.UserInfoV2) { + setUserDetail(detail: API.GetPersonalLoginInfoQueryResult) { this.userDetail = detail; setUserDetail(detail); }, @@ -235,7 +235,7 @@ */ logout() { this.resetState(); - myClient.removeQueries(); + // myClient.removeQueries(); goAuthorization(); }, diff --git a/apps/cMiniApp/src/utils/storage/auth.ts b/apps/cMiniApp/src/utils/storage/auth.ts index ecf237f..d82d35c 100644 --- a/apps/cMiniApp/src/utils/storage/auth.ts +++ b/apps/cMiniApp/src/utils/storage/auth.ts @@ -29,10 +29,10 @@ } export function getUserDetail() { - return storageLocal.getItem<API.UserInfoV2>(StorageKey.USER_DETAIL_KEY); + return storageLocal.getItem<API.GetPersonalLoginInfoQueryResult>(StorageKey.USER_DETAIL_KEY); } -export function setUserDetail(userDetail: API.UserInfoV2) { +export function setUserDetail(userDetail: API.GetPersonalLoginInfoQueryResult) { return storageLocal.setItem(StorageKey.USER_DETAIL_KEY, userDetail); } diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue index bd54ca4..6860478 100644 --- a/packages/components/src/Card/FlexJobCard.vue +++ b/packages/components/src/Card/FlexJobCard.vue @@ -30,7 +30,7 @@ <div class="flexJob-card-footer-right" v-if="showFooterRight"> <slot name="footerRight"> - <nut-button type="primary" @click.stop="emit('contact')">绔嬪嵆鑱旂郴</nut-button> + <nut-button type="primary">绔嬪嵆鑱旂郴</nut-button> </slot> </div> </div> @@ -71,7 +71,6 @@ const emit = defineEmits<{ (e: 'cancelCollection'): void; - (e: 'contact'): void; }>(); </script> diff --git a/types/api.d.ts b/types/api.d.ts index f610eb0..03f010b 100644 --- a/types/api.d.ts +++ b/types/api.d.ts @@ -20,13 +20,22 @@ */ frontStatus?: number } - interface UserInfoV2 { + interface GetEnterpriseLoginInfoQueryResult { /** * 鍓嶇鐢ㄤ簬鍒ゆ柇鐘舵�佺殑status */ frontStatus?: number /**鎺ュ彛杩斿洖鐨勫師濮嬪ご鍍� */ - originalAvatarUrl?: string + originalAvatar?: string + } + + interface GetPersonalLoginInfoQueryResult { + /** + * 鍓嶇鐢ㄤ簬鍒ゆ柇鐘舵�佺殑status + */ + frontStatus?: number + /**鎺ュ彛杩斿洖鐨勫師濮嬪ご鍍� */ + originalAvatar?: string } interface SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOptionMap{ -- Gitblit v1.9.1