wupengfei
4 天以前 4d76e39a6e648d16a163d920ae495b9593660a73
packages/hooks/task.ts
@@ -10,10 +10,11 @@
  EnumTaskStatus,
  EnumUserGender,
  EnumTaskUserApplyStatus,
  EnumReadScene,
} from '@12333/constants';
import _ from 'lodash';
import { trim } from '@12333/utils';
import { computed, MaybeRef, reactive, ref, unref } from 'vue';
import { OrderUtils, trim } from '@12333/utils';
import { computed, MaybeRef, reactive, Ref, ref, unref } from 'vue';
import * as taskServices from '@12333/services/apiV2/task';
import * as enterpriseWalletServices from '@12333/services/apiV2/enterpriseWallet';
import dayjs from 'dayjs';
@@ -27,6 +28,7 @@
type UseTaskListOptions = {
  cityCode?: MaybeRef<string>;
  enabled?: MaybeRef<boolean>;
  needLogin?: MaybeRef<boolean>;
  defaultQueryMenuState?: {
    releaseStatus?: EnumTaskReleaseStatus;
@@ -46,7 +48,13 @@
 * @description 仅C端使用
 */
export function useTaskList(options: UseTaskListOptions = {}) {
  const { cityCode = '', enabled = true, defaultQueryMenuState = {}, beforeRequest } = options;
  const {
    cityCode = '',
    enabled = true,
    needLogin = false,
    defaultQueryMenuState = {},
    beforeRequest,
  } = options;
  const searchValue = ref('');
@@ -109,12 +117,18 @@
        params = beforeRequest(params);
      }
      return taskServices.getOpenTaskInfos(params, {
        showLoading: false,
      });
      if (unref(needLogin)) {
        return taskServices.getTaskInfos(params, {
          showLoading: false,
        });
      } else {
        return taskServices.getOpenTaskInfos(params, {
          showLoading: false,
        });
      }
    },
    {
      queryKey: ['taskServices/getOpenTaskInfos', queryState, queryMenuState, cityCode],
      queryKey: ['taskServices/getOpenTaskInfos', queryState, queryMenuState, cityCode, needLogin],
      enabled: enabled,
    }
  );
@@ -193,12 +207,17 @@
  };
}
export function useEnterpriseWalletAccessSelect() {
type EnterpriseWalletAccessSelectOptions = {
  supplierEnterpriseId: MaybeRef<string>;
};
export function useEnterpriseWalletAccessSelect(options: EnterpriseWalletAccessSelectOptions) {
  const { supplierEnterpriseId } = options;
  const { data } = useQuery({
    queryKey: ['enterpriseWalletServices/getEnterpriseWalletAccessSelect'],
    queryKey: ['enterpriseWalletServices/getEnterpriseWalletAccessSelect', supplierEnterpriseId],
    queryFn: () => {
      return enterpriseWalletServices.getEnterpriseWalletAccessSelect(
        {},
        { supplierEnterpriseId: unref(supplierEnterpriseId) },
        {
          showLoading: false,
        }
@@ -220,3 +239,80 @@
  return { settlementAccessList };
}
type UseTaskInfoOptions = {
  id: MaybeRef<string>;
  readScene?: string | EnumReadScene;
  onSuccess?: (data: API.GetTaskInfoQueryResult) => any;
};
export function useTaskInfo({ id, readScene, onSuccess }: UseTaskInfoOptions) {
  const {
    isLoading,
    isError,
    data: detail,
    refetch,
  } = useQuery({
    queryKey: ['taskServices/getTaskInfo', id, readScene],
    queryFn: async () => {
      const params: API.APIgetTaskInfoParams = {
        id: unref(id),
      };
      if (!!readScene) {
        params.readScene = Number(readScene);
      }
      return await taskServices.getTaskInfo(params, {
        showLoading: false,
      });
    },
    placeholderData: () => ({} as API.GetTaskInfoQueryResult),
    onSuccess(data) {
      onSuccess?.(data);
    },
  });
  const isContainCheckIn = computed(() =>
    OrderUtils.isContainCheckIn(detail.value?.checkReceiveMethods)
  );
  return { detail, isLoading, isError, refetch, isContainCheckIn };
}
type UseCheckReceiveTaskUserSubmitOptions = {
  params: MaybeRef<API.APIgetCheckReceiveTaskUserSubmitParams>;
  onSuccess?: (data: API.GetCheckReceiveTaskUserSubmitQueryResult) => any;
};
export function useCheckReceiveTaskUserSubmit({
  params,
  onSuccess,
}: UseCheckReceiveTaskUserSubmitOptions) {
  const {
    isLoading,
    isError,
    data: detail,
    refetch,
  } = useQuery({
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmit', params],
    queryFn: async () => {
      const _params = unref(params);
      return await taskCheckReceiveServices.getCheckReceiveTaskUserSubmit(
        // { ..._params, date: dayjs(_params.date).format('YYYY-MM-DD') },
        _params,
        {
          showLoading: false,
        }
      );
    },
    placeholderData: () => ({} as API.GetCheckReceiveTaskUserSubmitQueryResult),
    onSuccess(data) {
      onSuccess?.(data);
    },
  });
  const isContainCheckIn = computed(() =>
    OrderUtils.isContainCheckIn(detail.value?.checkReceiveMethods)
  );
  return { detail, isLoading, isError, refetch, isContainCheckIn };
}