|  |  | 
 |  |  | import { | 
 |  |  |   EnumPagedListOrder, | 
 |  |  |   EnumSettlementCycle, | 
 |  |  |   EnumTaskCheckReceiveStatus, | 
 |  |  |   EnumTaskRecommendStatus, | 
 |  |  |   EnumTaskReleaseStatus, | 
 |  |  |   EnumTaskStatus, | 
 |  |  | 
 |  |  | import { trim } from '@12333/utils'; | 
 |  |  | import { MaybeRef, reactive, ref, unref } from 'vue'; | 
 |  |  | import * as taskServices from '@12333/services/apiV2/task'; | 
 |  |  | import dayjs from 'dayjs'; | 
 |  |  | import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; | 
 |  |  |  | 
 |  |  | export enum HomeOrderType { | 
 |  |  |   Recommend = 'Recommend', | 
 |  |  | 
 |  |  |     status?: EnumTaskStatus; | 
 |  |  |     genderLimit?: EnumUserGender; | 
 |  |  |     settlementCycle?: EnumSettlementCycle; | 
 |  |  |     checkReceiveStatus?: EnumTaskCheckReceiveStatus; | 
 |  |  |     benefitCodes?: string; | 
 |  |  |     enterpriseId?: string; | 
 |  |  |     time?: Date; | 
 |  |  |   }; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @description 仅C端使用 | 
 |  |  |  */ | 
 |  |  | export function useTaskList(options: UseTaskListOptions = {}) { | 
 |  |  |   const { cityCode = '', enabled = true, defaultQueryMenuState = {} } = options; | 
 |  |  |  | 
 |  |  | 
 |  |  |     settlementCycle: '' as any as EnumSettlementCycle, | 
 |  |  |     benefitCodes: '', | 
 |  |  |     status: '' as any as EnumTaskStatus, | 
 |  |  |     releaseStatus: EnumTaskReleaseStatus.InProcess, | 
 |  |  |     releaseStatus: '' as any as EnumTaskReleaseStatus, | 
 |  |  |     checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus, | 
 |  |  |     enterpriseId: '', | 
 |  |  |     time: '' as any as Date, | 
 |  |  |     ...defaultQueryMenuState, | 
 |  |  |   }); | 
 |  |  |  | 
 |  |  | 
 |  |  |           rows: 20, | 
 |  |  |           page: pageParam, | 
 |  |  |           orderInput: [ | 
 |  |  |             queryState.orderType === HomeOrderType.Recommend | 
 |  |  |               ? { property: 'recommendStatus', order: EnumPagedListOrder.Desc } | 
 |  |  |               : { property: 'createdTime', order: EnumPagedListOrder.Desc }, | 
 |  |  |           ], | 
 |  |  |             { property: 'releaseStatus', order: EnumPagedListOrder.Asc }, | 
 |  |  |             queryState.orderType === HomeOrderType.Recommend && { | 
 |  |  |               property: 'recommendTime', | 
 |  |  |               order: EnumPagedListOrder.Desc, | 
 |  |  |             }, | 
 |  |  |             { property: 'createdTime', order: EnumPagedListOrder.Desc }, | 
 |  |  |           ].filter(Boolean), | 
 |  |  |         }, | 
 |  |  |         keywords: queryState.searchValueTrim, | 
 |  |  |         cityCode: unref(cityCode), | 
 |  |  | 
 |  |  |         genderLimit: queryMenuState.genderLimit, | 
 |  |  |         status: queryMenuState.status, | 
 |  |  |         releaseStatus: queryMenuState.releaseStatus, | 
 |  |  |         checkReceiveStatus: queryMenuState.checkReceiveStatus, | 
 |  |  |         enterpriseId: queryMenuState.enterpriseId, | 
 |  |  |         beginTime: queryMenuState.time | 
 |  |  |           ? dayjs(queryMenuState.time).format('YYYY-MM-DD 00:00:00') | 
 |  |  |           : '', | 
 |  |  |         endTime: queryMenuState.time | 
 |  |  |           ? dayjs(queryMenuState.time).format('YYYY-MM-DD 23:59:59') | 
 |  |  |           : '', | 
 |  |  |       }; | 
 |  |  |  | 
 |  |  |       return taskServices.getTaskInfos(params, { | 
 |  |  |       return taskServices.getOpenTaskInfos(params, { | 
 |  |  |         showLoading: false, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |       queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, cityCode], | 
 |  |  |       queryKey: ['taskServices/getOpenTaskInfos', queryState, queryMenuState, cityCode], | 
 |  |  |       enabled: enabled, | 
 |  |  |     } | 
 |  |  |   ); | 
 |  |  | 
 |  |  |     invalidateQueries, | 
 |  |  |   }; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export function useCheckReceiveTasks() { | 
 |  |  |   const queryState = reactive({ | 
 |  |  |     date: dayjs().toDate(), | 
 |  |  |     checkReceiveStatus: EnumTaskCheckReceiveStatus.WaitSubmit, | 
 |  |  |   }); | 
 |  |  |  | 
 |  |  |   const { infiniteLoadingProps } = useInfiniteLoading( | 
 |  |  |     ({ pageParam }) => { | 
 |  |  |       let params: API.GetCheckReceiveTasksQuery = { | 
 |  |  |         pageModel: { | 
 |  |  |           rows: 20, | 
 |  |  |           page: pageParam, | 
 |  |  |         }, | 
 |  |  |         date: dayjs(queryState.date).format('YYYY-MM-DD'), | 
 |  |  |         checkReceiveStatus: queryState.checkReceiveStatus, | 
 |  |  |       }; | 
 |  |  |  | 
 |  |  |       return taskCheckReceiveServices.getCheckReceiveTasks(params, { | 
 |  |  |         showLoading: false, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |       queryKey: ['taskCheckReceiveServices/getCheckReceiveTasks', queryState], | 
 |  |  |     } | 
 |  |  |   ); | 
 |  |  |  | 
 |  |  |   return { | 
 |  |  |     queryState, | 
 |  |  |     infiniteLoadingProps, | 
 |  |  |   }; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | type UseCheckReceiveTaskUserSubmitsOptions = { | 
 |  |  |   id?: string; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | export function useCheckReceiveTaskUserSubmits( | 
 |  |  |   options: UseCheckReceiveTaskUserSubmitsOptions = {} | 
 |  |  | ) { | 
 |  |  |   const { id } = options; | 
 |  |  |   const { infiniteLoadingProps } = useInfiniteLoading( | 
 |  |  |     ({ pageParam }) => { | 
 |  |  |       let params: API.GetCheckReceiveTaskUserSubmitsQuery = { | 
 |  |  |         pageModel: { | 
 |  |  |           rows: 20, | 
 |  |  |           page: pageParam, | 
 |  |  |         }, | 
 |  |  |         taskInfoId: id, | 
 |  |  |       }; | 
 |  |  |  | 
 |  |  |       return taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params, { | 
 |  |  |         showLoading: false, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |       queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'], | 
 |  |  |     } | 
 |  |  |   ); | 
 |  |  |  | 
 |  |  |   return { | 
 |  |  |     infiniteLoadingProps, | 
 |  |  |   }; | 
 |  |  | } |