zhengyiming
2 天以前 ba48054b6f2680cfa1a0b3b912880925a8b5861b
packages/hooks/task.ts
@@ -2,6 +2,7 @@
import {
  EnumPagedListOrder,
  EnumSettlementCycle,
  EnumTaskCheckReceiveStatus,
  EnumTaskRecommendStatus,
  EnumTaskReleaseStatus,
  EnumTaskStatus,
@@ -12,6 +13,7 @@
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',
@@ -27,12 +29,16 @@
    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;
@@ -43,7 +49,8 @@
    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,
@@ -77,6 +84,7 @@
        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')
@@ -86,12 +94,12 @@
          : '',
      };
      return taskServices.getTaskInfos(params, {
      return taskServices.getOpenTaskInfos(params, {
        showLoading: false,
      });
    },
    {
      queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, cityCode],
      queryKey: ['taskServices/getOpenTaskInfos', queryState, queryMenuState, cityCode],
      enabled: enabled,
    }
  );
@@ -105,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,
  };
}