zhengyiming
3 天以前 ba48054b6f2680cfa1a0b3b912880925a8b5861b
packages/hooks/task.ts
@@ -2,6 +2,7 @@
import {
  EnumPagedListOrder,
  EnumSettlementCycle,
  EnumTaskCheckReceiveStatus,
  EnumTaskRecommendStatus,
  EnumTaskReleaseStatus,
  EnumTaskStatus,
@@ -11,6 +12,8 @@
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',
@@ -20,17 +23,24 @@
type UseTaskListOptions = {
  cityCode?: MaybeRef<string>;
  enabled?: MaybeRef<boolean>;
  releaseStatus?: MaybeRef<EnumTaskReleaseStatus>;
  status?: MaybeRef<EnumTaskStatus>;
  defaultQueryMenuState?: {
    releaseStatus?: EnumTaskReleaseStatus;
    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,
    status = '' as any as EnumTaskStatus,
    releaseStatus = '' as any as EnumTaskReleaseStatus,
  } = options;
  const { cityCode = '', enabled = true, defaultQueryMenuState = {} } = options;
  const searchValue = ref('');
@@ -38,8 +48,12 @@
    genderLimit: '' as any as EnumUserGender,
    settlementCycle: '' as any as EnumSettlementCycle,
    benefitCodes: '',
    status: status,
    releaseStatus: releaseStatus,
    status: '' as any as EnumTaskStatus,
    releaseStatus: '' as any as EnumTaskReleaseStatus,
    checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus,
    enterpriseId: '',
    time: '' as any as Date,
    ...defaultQueryMenuState,
  });
  const queryState = reactive({
@@ -70,14 +84,22 @@
        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,
    }
  );
@@ -91,3 +113,35 @@
    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,
  };
}