From 4b5a4c322d5a777f2715e1574ab3ef7cbcf14d6d Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 13 八月 2025 18:46:01 +0800 Subject: [PATCH] fix: 验收管理 --- apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue | 30 +++++++++++++- packages/utils/common.ts | 4 + apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 44 +++++++++++++++++---- packages/services/apiV2/typings.d.ts | 15 ++++++- apps/bMiniApp/src/pages/home/index.vue | 2 apps/bMiniApp/project.private.config.json | 14 +++--- 6 files changed, 86 insertions(+), 23 deletions(-) diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json index 57b2186..56374b3 100644 --- a/apps/bMiniApp/project.private.config.json +++ b/apps/bMiniApp/project.private.config.json @@ -9,6 +9,13 @@ "miniprogram": { "list": [ { + "name": "鐏靛伐璇︽儏", + "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail", + "query": "id=700a3a67-5da5-49d2-a65a-08ddd661238b", + "launchMode": "default", + "scene": null + }, + { "name": "鐏靛伐绠$悊", "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage", "query": "", @@ -61,13 +68,6 @@ "name": "楠屾敹绠$悊", "pathName": "subpackages/task/taskCheck/taskCheck", "query": "", - "launchMode": "default", - "scene": null - }, - { - "name": "鐏靛伐璇︽儏", - "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail", - "query": "id=c4cfe028-23e7-0be8-ee56-3a11e3743b9d", "launchMode": "default", "scene": null }, diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue index 6552419..4fdb0ed 100644 --- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue +++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue @@ -1,17 +1,28 @@ <template> <ContentView style="background-color: transparent" class="job-detail-content"> - <FlexJobTopView size="small" class="job-detail-content-top" /> + <FlexJobTopView + :avatar="avatar" + :name="name" + :age="age" + :isReal="isReal" + :gender="gender" + :personalIdentityContent="personalIdentityContent" + :educationalBackgroundContent="educationalBackgroundContent" + :taskCount="taskCount" + size="small" + class="job-detail-content-top" + /> <div class="job-detail-content-contact-info"> <div class="job-detail-content-contact-info-item"> <div class="job-detail-content-contact-info-item-label">鎵嬫満鍙凤細</div> <div class="job-detail-content-contact-info-item-text"> - {{ isCollapse ? '13333333333' : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }} + {{ isCollapse ? contactPhoneNumber : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }} </div> </div> <div class="job-detail-content-contact-info-item"> <div class="job-detail-content-contact-info-item-label">韬唤璇佸彿锛�</div> <div class="job-detail-content-contact-info-item-text"> - {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }} + {{ isCollapse ? hiddenIDNumberForEnd6(identity) : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }} </div> </div> </div> @@ -42,6 +53,7 @@ import { hiddenIDNumberForEnd6 } from '@12333/utils'; import curriculumView from './components/curriculumView.vue'; import experienceView from './components/experienceView.vue'; +import { EnumUserGender } from '@12333/constants'; defineOptions({ name: 'JobDetailContent', @@ -49,6 +61,18 @@ type Props = { isCollapse: boolean; + + avatar?: string; + name?: string; + gender?: EnumUserGender; + age?: number; + isReal?: boolean; + personalIdentityContent?: string; + educationalBackgroundContent?: string; + taskCount?: number; + contactPhoneNumber?: string; + identity?: string; + userId?: string; }; const tab = ref('1'); diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue index 6d98d86..8912acb 100644 --- a/apps/bMiniApp/src/pages/home/index.vue +++ b/apps/bMiniApp/src/pages/home/index.vue @@ -130,7 +130,7 @@ pageModel: { rows: 20, page: pageParam, - orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], + orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], }, userExpectJobs: queryPositionState.userExpectJobs, gender: queryMenuState.genderLimit, diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue index ba4a7e5..4b3bde8 100644 --- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue +++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue @@ -1,7 +1,20 @@ <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" @@ -15,7 +28,7 @@ :isFlex="false" @click="handleAttention" ></PageFooterAction> - <PageFooterBtn type="primary" @click="toggle">绔嬪嵆鑱旂郴</PageFooterBtn> + <PageFooterBtn type="primary" @click="handleContact">绔嬪嵆鑱旂郴</PageFooterBtn> </template> </JobDetailContent> </LoadingLayout> @@ -25,31 +38,44 @@ <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('鏀惰棌鎴愬姛'); } diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts index dfb52b9..db45e9b 100644 --- a/packages/services/apiV2/typings.d.ts +++ b/packages/services/apiV2/typings.d.ts @@ -1412,6 +1412,9 @@ interface GetCheckReceiveTaskQuery { /** 浠诲姟Id */ taskInfoId?: string; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + /** 鏃ユ湡锛圔绔皬绋嬪簭涓撶敤锛� */ + date?: string; pageModel?: PagedListQueryPageModel; } @@ -1815,9 +1818,9 @@ /** 鏄惁瀹炲悕 */ isReal?: boolean; /** 鎴戠殑鏀惰棌 */ - collectUsers?: number; + collectedUserCount?: number; /** 鑱旂郴璁板綍 */ - contactRecords?: number; + contactedRecordCount?: number; } interface GetEnterpriseQueryResult { @@ -2393,6 +2396,8 @@ releaseStatus?: EnumTaskReleaseStatus; recommendStatus?: EnumTaskRecommendStatus; checkReceiveStatus?: EnumTaskCheckReceiveStatus; + /** 鏄惁鏀惰棌 */ + isCollected?: boolean; pageModel?: PagedListQueryPageModel; } @@ -2722,6 +2727,10 @@ ageMax?: number; /** 璧勬牸璇佷功缂栧彿 */ userCredentials?: string[]; + /** 鏄惁宸叉敹钘� */ + isCollected?: boolean; + /** 鏄惁宸茶仈绯� */ + isContacted?: boolean; pageModel?: PagedListQueryPageModel; } @@ -2763,6 +2772,8 @@ workSeniority?: string; /** 宸ヤ綔缁忛獙 */ workExperience?: string; + /** 鍒涘缓鏃堕棿 */ + createdTime?: string; } type GetUserResumeWorkExperienceQuery = Record<string, any>; diff --git a/packages/utils/common.ts b/packages/utils/common.ts index bd11db4..238407e 100644 --- a/packages/utils/common.ts +++ b/packages/utils/common.ts @@ -131,5 +131,7 @@ return list.filter(Boolean).join(separator); } -export const hiddenIDNumberForEnd6 = (realIDNumber: string) => +export const hiddenIDNumberForEnd6 = (realIDNumber: string) => { + if (!realIDNumber) return ''; realIDNumber.replace(/^(\d+)(.{6})$/, '$1******'); +}; -- Gitblit v1.9.1