From 951bc718097bf9449bf6ce8be4fa50bb1a58d66e Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 11 八月 2025 13:56:46 +0800 Subject: [PATCH] feat: 接口对接 --- apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue | 87 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 69 insertions(+), 18 deletions(-) diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue index 2b59940..6faed82 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue @@ -1,23 +1,31 @@ <template> <ContentView> <nut-noticebar - text="涓汉绠�鍘嗗凡瀹屽杽50%锛屽畬鍠勭畝鍘嗗彲鎻愬崌褰曠敤鐜�" + :text="`涓汉绠�鍘嗗凡瀹屽杽${detail?.completeRate ?? 0}锛屽畬鍠勭畝鍘嗗彲鎻愬崌褰曠敤鐜嘸" :left-icon="false" background="transparent" close-mode class="mine-curriculum-noticebar" /> <div class="mine-curriculum-info-wrapper"> - <UserAvatar :size="60" class="mine-curriculum-avatar" /> + <Avatar + :size="60" + class="mine-curriculum-avatar" + :src="setOSSLink(detail?.avatar ?? '')" + ></Avatar> <div class="mine-curriculum-info-content"> <div class="mine-curriculum-info-item"> <div class="mine-curriculum-info-item-left"> <div class="mine-curriculum-info-item-name"> - {{ userStore.userDetail?.userName ?? '' }} + {{ detail?.name ?? '' }} </div> <div class="mine-curriculum-info-item-gender"> <div class="mine-curriculum-info-item-gender-dot">路</div> - <img v-if="1" :src="IconMale" class="mine-curriculum-info-item-gender-icon" /> + <img + v-if="detail?.gender === EnumUserGender.Male" + :src="IconMale" + class="mine-curriculum-info-item-gender-icon" + /> <img v-else :src="IconFemale" class="mine-curriculum-info-item-gender-icon" /> </div> </div> @@ -27,11 +35,19 @@ <div class="mine-curriculum-info-item-left"> <img :src="IconPhone" class="mine-curriculum-info-item-phone-icon" /> <div class="mine-curriculum-info-item-phone"> - {{ userStore.userDetail?.phoneNumber ?? '' }} + {{ detail?.contactPhoneNumber ?? '' }} </div> </div> <div class="mine-curriculum-info-item-detail"> - {{ '26宀� | 闈炲鐢� | 鏈' }} + {{ + `${detail?.age ? `${detail?.age}宀乣 : ''} + ${detail?.personalIdentityContent ? `| ${detail?.personalIdentityContent}` : ''} + ${ + detail?.educationalBackgroundContent + ? `| ${detail?.educationalBackgroundContent}` + : '' + }` + }} </div> </div> </div> @@ -47,22 +63,21 @@ </div> <MineAgreementSignDetailItem label="鏈熸湜宀椾綅" class="mine-curriculum-intention-job"> <template #detail> - <div class="mine-curriculum-intention-job-content"> - <div class="mine-curriculum-intention-job-item">瀹㈡埧鏈嶅姟鍛�</div> - <div class="mine-curriculum-intention-job-item">瀹㈡埧鏈嶅姟鍛�</div> - <div class="mine-curriculum-intention-job-item">瀹㈡埧鏈嶅姟鍛�</div> - <div class="mine-curriculum-intention-job-item">瀹㈡埧鏈嶅姟鍛�</div> - </div> + <JobTagList :jobTagList="jobTag" /> </template> </MineAgreementSignDetailItem> <MineAgreementSignDetailItem label="绌洪棽鏃堕棿"> <template #detail> - <div class="mine-curriculum-intention-bold">涓嶉檺</div> + <div class="mine-curriculum-intention-bold"> + {{ EnumPersonalFreeTimeText[detail?.freeTime] }} + </div> </template> </MineAgreementSignDetailItem> <MineAgreementSignDetailItem label="姹傝亴鐘舵��"> <template #detail> - <div class="mine-curriculum-intention-bold">绉瀬鎵惧伐浣�</div> + <div class="mine-curriculum-intention-bold"> + {{ EnumPersonalJobSeekingStatusText[detail?.jobSeekingStatus] }} + </div> </template> </MineAgreementSignDetailItem> </div> @@ -92,23 +107,59 @@ <script setup lang="ts"> import { useUserStore } from '@/stores/modules/user'; -import { useIsLogin } from '@/hooks'; import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue'; -import { List, ListItem } from '@12333/components'; +import { List, ListItem, JobTagList, Avatar } from '@12333/components'; +import { + EnumUserGender, + EnumPersonalFreeTimeText, + EnumPersonalJobSeekingStatusText, +} from '@12333/constants'; import { RouterPath } from '@/constants'; +import * as userResumeServices from '@12333/services/apiV2/userResume'; import IconArrow from '@/assets/setting/icon-arrow.png'; import IconAuth from '@/assets/mine/icon-auth.png'; import IconMale from '@/assets/mine/icon-male.png'; import IconFemale from '@/assets/mine/icon-female.png'; import IconPhone from '@/assets/mine/icon-phone.png'; import Taro from '@tarojs/taro'; +import { useQuery } from '@tanstack/vue-query'; +import { setOSSLink } from '@12333/utils'; +import { useEvent } from 'senin-mini/hooks'; defineOptions({ name: 'InnerPage', }); -const userStore = useUserStore(); -const isLogin = useIsLogin(); +const { userId } = useUser(); + +useEvent('updateResume', function (data: { content: boolean }) { + if (data.content) { + refetch({ + type: 'inactive', + }); + } +}); + +const jobTag = computed(() => detail?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? []); + +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResume', userId], + queryFn: async () => { + return await userResumeServices.getUserResume( + { userId: userId.value }, + { + showLoading: false, + } + ); + }, + placeholderData: () => ({} as API.GetUserResumeQueryResult), + enabled: computed(() => !!userId.value), +}); function goPage(routeName: string) { Taro.navigateTo({ -- Gitblit v1.9.1