|  |  | 
 |  |  |       title-gutter="8" | 
 |  |  |       title-scroll | 
 |  |  |     > | 
 |  |  |       <ProTabPane :title="`推荐`" :pane-key="HomeOrderType.Recommend"></ProTabPane> | 
 |  |  |       <ProTabPane :title="`最新`" :pane-key="HomeOrderType.LastShelfTime"></ProTabPane> | 
 |  |  |       <template #right> | 
 |  |  |         <Menu> | 
 |  |  | 
 |  |  |       :key="queryState.orderType" | 
 |  |  |     > | 
 |  |  |       <template #renderItem="{ item }"> | 
 |  |  |         <FlexJobCard @click="goFlexJobDetail(item)" :showFooterLeft="false" /> | 
 |  |  |         <FlexJobCard | 
 |  |  |           :name="item.name" | 
 |  |  |           :gender="item.gender" | 
 |  |  |           :age="item.age" | 
 |  |  |           :isReal="item.isReal" | 
 |  |  |           :personalIdentityContent="item.personalIdentityContent" | 
 |  |  |           :educationalBackgroundContent="item.educationalBackgroundContent" | 
 |  |  |           :taskCount="item.taskCount" | 
 |  |  |           :avatar="item.avatar" | 
 |  |  |           :workExperience="item.workExperience" | 
 |  |  |           :workSeniority="item.workSeniority" | 
 |  |  |           @click="goFlexJobDetail(item)" | 
 |  |  |           :showFooterLeft="false" | 
 |  |  |         /> | 
 |  |  |       </template> | 
 |  |  |     </InfiniteLoading> | 
 |  |  |   </PageLayoutWithBg> | 
 |  |  | 
 |  |  |   EnumTaskReleaseStatus, | 
 |  |  |   EnumUserGender, | 
 |  |  | } from '@12333/constants'; | 
 |  |  | import * as taskServices from '@12333/services/apiV2/task'; | 
 |  |  | import _ from 'lodash'; | 
 |  |  | import HomeQueryMenuView from './HomeQueryMenuView.vue'; | 
 |  |  | import HomeQueryPositionMenuView from './HomeQueryPositionMenuView.vue'; | 
 |  |  | import IconLocaltion from '@/assets/home/icon-localtion.png'; | 
 |  |  | import { setLocationCity } from '@/utils'; | 
 |  |  | import * as userResumeServices from '@12333/services/apiV2/userResume'; | 
 |  |  |  | 
 |  |  | const { locationCity } = useUser(); | 
 |  |  |  | 
 |  |  | 
 |  |  | const queryMenuState = reactive({ | 
 |  |  |   genderLimit: '' as any as EnumUserGender, | 
 |  |  |   age: [15, 65], | 
 |  |  |   identity: '', | 
 |  |  |   personalIdentityCode: '', | 
 |  |  |   certificateType: '', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const queryPositionState = reactive({ | 
 |  |  |   position: [] as string[], | 
 |  |  |   userExpectJobs: [] as string[], | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const queryState = reactive({ | 
 |  |  |   orderType: HomeOrderType.Recommend, | 
 |  |  |   orderType: HomeOrderType.LastShelfTime, | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const { infiniteLoadingProps } = useInfiniteLoading( | 
 |  |  |   ({ pageParam }) => { | 
 |  |  |     let params: API.GetTaskInfosQuery = { | 
 |  |  |     let params: API.GetUserResumesQuery = { | 
 |  |  |       pageModel: { | 
 |  |  |         rows: 20, | 
 |  |  |         page: pageParam, | 
 |  |  |         orderInput: [ | 
 |  |  |           queryState.orderType === HomeOrderType.Recommend | 
 |  |  |             ? { property: 'recommendStatus', order: EnumPagedListOrder.Desc } | 
 |  |  |             : { property: 'createdTime', order: EnumPagedListOrder.Desc }, | 
 |  |  |         ], | 
 |  |  |         orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], | 
 |  |  |       }, | 
 |  |  |       // keywords: 'string', | 
 |  |  |       // time: '2025-08-08T02:58:58.756Z', | 
 |  |  |       // cityCode: 'string', | 
 |  |  |       // settlementCycle: 10, | 
 |  |  |       // benefitCodes: ['string'], | 
 |  |  |       genderLimit: queryMenuState.genderLimit, | 
 |  |  |       // status: 10, | 
 |  |  |       releaseStatus: EnumTaskReleaseStatus.InProcess, | 
 |  |  |       userExpectJobs: queryPositionState.userExpectJobs, | 
 |  |  |       gender: queryMenuState.genderLimit, | 
 |  |  |       personalIdentityCode: queryMenuState.personalIdentityCode, | 
 |  |  |       // ageMin: queryMenuState.age[0], | 
 |  |  |       // ageMax: queryMenuState.age[1], | 
 |  |  |       userCredentials: queryMenuState.certificateType ? [queryMenuState.certificateType] : null, | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     return taskServices.getTaskInfos(params, { | 
 |  |  |     return userResumeServices.getOpenUserResumes(params, { | 
 |  |  |       showLoading: false, | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  |   { | 
 |  |  |     queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, queryPositionState], | 
 |  |  |     queryKey: [ | 
 |  |  |       'userResumeServices/getOpenUserResumes', | 
 |  |  |       queryState, | 
 |  |  |       queryMenuState, | 
 |  |  |       queryPositionState, | 
 |  |  |     ], | 
 |  |  |   } | 
 |  |  | ); | 
 |  |  |  | 
 |  |  | 
 |  |  |   selectPositionItem.value?.toggle?.(); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function goFlexJobDetail(item: API.GetTaskInfosQueryResultItem) { | 
 |  |  | function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) { | 
 |  |  |   Taro.navigateTo({ | 
 |  |  |     url: `${RouterPath.flexJobDetail}?id=${item.id}`, | 
 |  |  |     url: `${RouterPath.flexJobDetail}?userId=${item.id}`, | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  |  |