| | |
| | | <template> |
| | | <PageLayoutWithBg class="flexJobDetail-page-wrapper" title="灵工详情" :need-auth="false"> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <JobDetailContent :isCollapse="isCollapse"> |
| | | <JobDetailContent |
| | | :avatar="userResumeInfo.avatar" |
| | | :name="userResumeInfo.name" |
| | | :age="userResumeInfo.age" |
| | | :isReal="userResumeInfo.isReal" |
| | | :gender="userResumeInfo.gender" |
| | | :personalIdentityContent="userResumeInfo.personalIdentityContent" |
| | | :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent" |
| | | :taskCount="userResumeInfo.taskCount" |
| | | :contactPhoneNumber="userResumeInfo.contactPhoneNumber" |
| | | :identity="userResumeInfo.identity" |
| | | :isCollapse="isCollapse" |
| | | :userId="userId" |
| | | > |
| | | <template #footer> |
| | | <PageFooterAction |
| | | :icon="IconShare" |
| | |
| | | :isFlex="false" |
| | | @click="handleAttention" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn type="primary" @click="toggle">立即联系</PageFooterBtn> |
| | | <PageFooterBtn type="primary" @click="handleContact">立即联系</PageFooterBtn> |
| | | </template> |
| | | </JobDetailContent> |
| | | </LoadingLayout> |
| | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as flexWorkerServices from '@12333/services/api/FlexWorker'; |
| | | import * as userResumeServices from '@12333/services/apiV2/userResume'; |
| | | import IconShare from '@/assets/flexJob/icon-share.png'; |
| | | import IconAttention from '@/assets/flexJob/icon-attention-lg.png'; |
| | | import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png'; |
| | | import { useToggle } from 'senin-mini/hooks'; |
| | | import { Message } from '@12333/utils'; |
| | | import { useUserResume } from '@12333/hooks'; |
| | | import { useAccessLogin } from '@/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobDetail', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | const userId = router.params?.id ?? ''; |
| | | |
| | | const { isLoading, isError, data: detail, refetch } = useUserResume(); |
| | | const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ |
| | | userId, |
| | | }); |
| | | |
| | | const { isCollapse, toggle } = useToggle(); |
| | | |
| | | const handleContact = useAccessLogin(async () => { |
| | | try { |
| | | if (!isCollapse.value) { |
| | | await userResumeServices.contactUserResume({ id: userId }); |
| | | toggle(); |
| | | } |
| | | } catch (error) {} |
| | | }); |
| | | |
| | | async function handleAttention() { |
| | | try { |
| | | let params: API.CollectFlexWorkerResumeInput = { |
| | | flexWorkerId: detail.value?.flexWorkerId, |
| | | userResumeId: detail.value?.userResumeId, |
| | | let params: API.CollectUserResumeCommand = { |
| | | id: userId, |
| | | // isCollected: userResumeInfo.value.i, |
| | | }; |
| | | let res = await flexWorkerServices.collectFlexWorkerResume(params); |
| | | let res = await userResumeServices.collectUserResume(params); |
| | | if (res) { |
| | | Message.success('收藏成功'); |
| | | } |