From bfb3b8ead34656a6160dd23aaa4648dfc63e282c Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 14 八月 2025 13:25:38 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue | 45 ++++++++++++-- packages/hooks/user.ts | 13 ++- apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 9 +- packages/services/apiV2/taskUser.ts | 18 ++++++ apps/bMiniApp/project.config.json | 4 apps/bMiniApp/project.private.config.json | 2 apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue | 4 apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue | 3 apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue | 2 apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue | 1 packages/services/apiV2/index.ts | 4 packages/services/apiV2/typings.d.ts | 29 +++++++++ packages/components/src/Card/FlexJobCard.vue | 2 apps/bMiniApp/src/pages/home/index.vue | 2 packages/components/src/Card/JobApplicationCard.vue | 5 + 15 files changed, 111 insertions(+), 32 deletions(-) diff --git a/apps/bMiniApp/project.config.json b/apps/bMiniApp/project.config.json index 7bc8fee..e4afad4 100644 --- a/apps/bMiniApp/project.config.json +++ b/apps/bMiniApp/project.config.json @@ -3,8 +3,8 @@ "description": "", "setting": { "urlCheck": false, - "es6": true, - "enhance": true, + "es6": false, + "enhance": false, "postcss": false, "preloadBackgroundData": false, "minified": false, diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json index d16cb0a..a315cda 100644 --- a/apps/bMiniApp/project.private.config.json +++ b/apps/bMiniApp/project.private.config.json @@ -11,7 +11,7 @@ { "name": "鐏靛伐璇︽儏", "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail", - "query": "enterpriseEmployeeId=700a3a67-5da5-49d2-a65a-08ddd661238b", + "query": "userId=700a3a67-5da5-49d2-a65a-08ddd661238b", "launchMode": "default", "scene": null }, diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue index 5bf9aba..3b301d6 100644 --- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue +++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue @@ -82,7 +82,6 @@ taskCount?: number; contactPhoneNumber?: string; identity?: string; - userId?: string; userExpectJobs?: API.GetUserResumeQueryResultExpectJob[]; freeTime?: API.EnumPersonalFreeTime; diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue index 7946288..6b4a5f0 100644 --- a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue +++ b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue @@ -51,12 +51,12 @@ <CellChunk title="璇︾粏淇℃伅"> <CurriculumViewItem label="韬珮锛�" - :text="`${height} cm`" + :text="height && `${height} cm`" :label-width="labelWidth" ></CurriculumViewItem> <CurriculumViewItem label="浣撻噸锛�" - :text="`${weight} kg`" + :text="weight && `${weight} kg`" :label-width="labelWidth" ></CurriculumViewItem> <CurriculumViewItem label="涓汉鐓х墖锛�"> diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue index af9b8e4..b348543 100644 --- a/apps/bMiniApp/src/pages/home/index.vue +++ b/apps/bMiniApp/src/pages/home/index.vue @@ -175,7 +175,7 @@ function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) { Taro.navigateTo({ - url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`, + url: `${RouterPath.flexJobDetail}?userId=${item.id}`, }); } diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue index 307de77..8596c2d 100644 --- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue +++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue @@ -13,7 +13,6 @@ :contactPhoneNumber="userResumeInfo.contactPhoneNumber" :identity="userResumeInfo.identity" :isCollapse="isCollapse" - :userId="enterpriseEmployeeId" :userExpectJobs="userResumeInfo.userExpectJobs" :freeTime="userResumeInfo.freeTime" :jobSeekingStatus="userResumeInfo.jobSeekingStatus" @@ -62,10 +61,10 @@ }); const router = Taro.useRouter(); -const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; +const userId = router.params?.userId ?? ''; const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ - userId: enterpriseEmployeeId, + userId: userId, }); const { isCollapse, toggle } = useToggle(); @@ -73,7 +72,7 @@ const handleContact = useAccessLogin(async () => { try { if (!isCollapse.value) { - await userResumeServices.contactUserResume({ id: enterpriseEmployeeId }); + await userResumeServices.contactUserResume({ id: userId }); toggle(); } } catch (error) {} @@ -82,7 +81,7 @@ async function handleAttention() { try { let params: API.CollectUserResumeCommand = { - id: enterpriseEmployeeId, + id: userId, isCollected: !userResumeInfo.value.isCollected, }; let res = await userResumeServices.collectUserResume(params); diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue index 3275278..98269b8 100644 --- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue @@ -11,7 +11,6 @@ :taskCount="userResumeInfo.taskCount" :contactPhoneNumber="userResumeInfo.contactPhoneNumber" :identity="userResumeInfo.identity" - :userId="enterpriseEmployeeId" :userExpectJobs="userResumeInfo.userExpectJobs" :freeTime="userResumeInfo.freeTime" :jobSeekingStatus="userResumeInfo.jobSeekingStatus" @@ -25,11 +24,29 @@ :isCollapse="true" > <template #footer> - <PageFooterBtn type="primary" plain @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)" - >璋㈢粷</PageFooterBtn + <template v-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Wait"> + <PageFooterBtn + type="primary" + plain + @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)" + >璋㈢粷</PageFooterBtn + > + <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)" + >褰曠敤</PageFooterBtn + > + </template> + <PageFooterBtn + v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Refuse" + type="primary" + plain + disabled + >宸茶阿缁�</PageFooterBtn > - <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)" - >褰曠敤</PageFooterBtn + <PageFooterBtn + v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Pass" + type="primary" + disabled + >宸插綍鐢�</PageFooterBtn > </template> </JobDetailContent> @@ -51,9 +68,23 @@ const router = Taro.useRouter(); const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; const id = router.params?.id ?? ''; +const taskInfoId = router.params?.taskInfoId ?? ''; const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ - userId: enterpriseEmployeeId, + enterpriseEmployeeId: enterpriseEmployeeId, +}); + +const { data: taskUserHireStatusResult, refetch: taskUserHireStatusRefetch } = useQuery({ + queryKey: ['taskUserServices/getTaskUserHireStatus', taskInfoId, userResumeInfo.value.id], + queryFn: () => { + let params: API.APIgetTaskUserHireStatusParams = { + taskInfoId: taskInfoId, + userId: userResumeInfo.value.id, + }; + return taskUserServices.getTaskUserHireStatus(params, { showLoading: false }); + }, + enabled: computed(() => !!userResumeInfo.value.id && !!taskInfoId), + placeholderData: () => ({} as API.GetTaskUserHireStatusQueryResult), }); async function setTaskUserHire(hireStatus: EnumTaskUserHireStatus) { @@ -65,7 +96,7 @@ let res = await taskUserServices.setTaskUserHire(params); if (res) { Message.success('鎿嶄綔鎴愬姛'); - refetch({ + taskUserHireStatusRefetch({ type: 'inactive', }); } diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue index ebde239..b42f953 100644 --- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue @@ -11,7 +11,6 @@ :taskCount="userResumeInfo.taskCount" :contactPhoneNumber="userResumeInfo.contactPhoneNumber" :identity="userResumeInfo.identity" - :userId="enterpriseEmployeeId" :userExpectJobs="userResumeInfo.userExpectJobs" :freeTime="userResumeInfo.freeTime" :jobSeekingStatus="userResumeInfo.jobSeekingStatus" @@ -45,7 +44,7 @@ const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ - userId: enterpriseEmployeeId, + enterpriseEmployeeId: enterpriseEmployeeId, }); </script> diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue index 45182b1..db2d068 100644 --- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue +++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue @@ -54,7 +54,7 @@ function goToJobDetail(item: API.GetTaskUsersQueryResultItem) { Taro.navigateTo({ - url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}`, + url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}&taskInfoId=${id}`, }); } </script> diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue index 2d5cbb8..bd54ca4 100644 --- a/packages/components/src/Card/FlexJobCard.vue +++ b/packages/components/src/Card/FlexJobCard.vue @@ -14,7 +14,7 @@ {{ workExperience }} </div> <div class="flexJob-card-done-detail" v-if="showDoneDetail"> - <div class="flexJob-card-done-detail-item">{{ workSeniority }}骞�</div> + <div class="flexJob-card-done-detail-item">{{ workSeniority && `${workSeniority}骞碻 }}</div> <!-- <div class="flexJob-card-done-detail-item">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div> --> </div> <div class="flexJob-card-footer"> diff --git a/packages/components/src/Card/JobApplicationCard.vue b/packages/components/src/Card/JobApplicationCard.vue index f4cf8b8..4c75837 100644 --- a/packages/components/src/Card/JobApplicationCard.vue +++ b/packages/components/src/Card/JobApplicationCard.vue @@ -2,7 +2,7 @@ <div class="job-application-card-wrapper"> <div class="job-application-card-title-wrapper"> <div class="job-application-card-title">{{ name }}</div> - <TaskPrice :value="serviceFee" :unit="unit" v-if="mode === 'taskManage'" /> + <TaskPrice :value="toThousand(serviceFee ?? 0)" :unit="unit" v-if="mode === 'taskManage'" /> <div v-else class="job-application-card-title-more" @click.stop="handleMore"> <img :src="IconMore" class="more-btn-icon" /> </div> @@ -32,7 +32,7 @@ </div> <slot name="footer-actions"> <div class="job-application-card-fee"> - <TaskPrice :value="serviceFee" :unit="unit" /> + <TaskPrice :value="toThousand(serviceFee)" :unit="unit" /> </div> </slot> </div> @@ -48,6 +48,7 @@ import { TaskPrice } from '@12333/components'; import { EnumTaskStatus, EnumTaskReleaseStatus, EnumTaskReleaseStatusText } from '@12333/constants'; import dayjs from 'dayjs'; +import { toThousand } from '@12333/utils'; defineOptions({ name: 'JobApplicationCard', diff --git a/packages/hooks/user.ts b/packages/hooks/user.ts index 476e815..190eaf1 100644 --- a/packages/hooks/user.ts +++ b/packages/hooks/user.ts @@ -3,22 +3,25 @@ import { useQuery, useQueryClient } from '@tanstack/vue-query'; type UseUserResumeOptions = { - userId: MaybeRef<string>; + userId?: MaybeRef<string>; + enterpriseEmployeeId?: MaybeRef<string>; }; -export function useUserResume({ userId }: UseUserResumeOptions) { +export function useUserResume(options: UseUserResumeOptions = {}) { + const { userId, enterpriseEmployeeId } = options; + const { data, refetch, isLoading, isError } = useQuery({ - queryKey: ['userResumeServices/getUserResume', userId], + queryKey: ['userResumeServices/getUserResume', userId, enterpriseEmployeeId], queryFn: async () => { return await userResumeServices.getUserResume( - { userId: unref(userId) }, + { userId: unref(userId), enterpriseEmployeeId: unref(enterpriseEmployeeId) }, { showLoading: false, } ); }, placeholderData: () => ({} as API.GetUserResumeQueryResult), - enabled: computed(() => !!unref(userId)), + enabled: computed(() => !!unref(userId) || !!unref(enterpriseEmployeeId)), }); return { diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts index 2300abd..679903f 100644 --- a/packages/services/apiV2/index.ts +++ b/packages/services/apiV2/index.ts @@ -3,12 +3,12 @@ // API 鏇存柊鏃堕棿锛� // API 鍞竴鏍囪瘑锛� import * as enterpriseEmployee from './enterpriseEmployee'; +import * as user from './user'; import * as role from './role'; import * as enterprise from './enterprise'; import * as task from './task'; import * as taskCheckReceive from './taskCheckReceive'; import * as dictionary from './dictionary'; -import * as user from './user'; import * as userResume from './userResume'; import * as auth from './auth'; import * as resource from './resource'; @@ -16,12 +16,12 @@ import * as menu from './menu'; export default { enterpriseEmployee, + user, role, enterprise, task, taskCheckReceive, dictionary, - user, userResume, auth, resource, diff --git a/packages/services/apiV2/taskUser.ts b/packages/services/apiV2/taskUser.ts index af03cc7..a23742d 100644 --- a/packages/services/apiV2/taskUser.ts +++ b/packages/services/apiV2/taskUser.ts @@ -41,6 +41,24 @@ }); } +/** 鏌ヨ搴旇仒鎶ュ悕浜哄憳褰曠敤鐘舵�� GET /api/flexjob/taskUser/getTaskUserHireStatus */ +export async function getTaskUserHireStatus( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetTaskUserHireStatusParams, + options?: API.RequestConfig +) { + return request<API.GetTaskUserHireStatusQueryResult>( + '/api/flexjob/taskUser/getTaskUserHireStatus', + { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + } + ); +} + /** B绔煡璇㈠簲鑱樻姤鍚嶅垎椤靛垪琛ㄤ俊鎭� POST /api/flexjob/taskUser/getTaskUsers */ export async function getTaskUsers(body: API.GetTaskUsersQuery, options?: API.RequestConfig) { return request<API.GetTaskUsersQueryResult>('/api/flexjob/taskUser/getTaskUsers', { diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts index a9b5c77..2fd750a 100644 --- a/packages/services/apiV2/typings.d.ts +++ b/packages/services/apiV2/typings.d.ts @@ -133,6 +133,13 @@ id?: string; } + interface APIgetTaskUserHireStatusParams { + /** 浠诲姟Id */ + taskInfoId?: string; + /** 鐢ㄦ埛Id锛圕绔敤鎴峰彲涓嶅~锛� */ + userId?: string; + } + interface APIgetUserInfoRolesParams { /** 鐢ㄦ埛Id */ userInfoId?: string; @@ -903,6 +910,24 @@ /** 閿欒鐮� */ errorCode?: string; data?: GetTaskInfosQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetTaskUserHireStatusQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetTaskUserHireStatusQueryResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -2584,6 +2609,10 @@ stoppedReleaseCount?: number; } + interface GetTaskUserHireStatusQueryResult { + hireStatus?: EnumTaskUserHireStatus; + } + interface GetTaskUsersQuery { /** 浠诲姟Id */ id?: string; -- Gitblit v1.9.1