zhengyiming
4 天以前 c2c4f65d6b70d9d2d9539187735c2640c1d8ac49
packages/hooks/task.ts
@@ -1,5 +1,7 @@
import { useInfiniteLoading } from '@12333/hooks';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import {
  EnumEnterpriseWalletAccessTextForSettle,
  EnumPagedListOrder,
  EnumSettlementCycle,
  EnumTaskCheckReceiveStatus,
@@ -7,11 +9,13 @@
  EnumTaskReleaseStatus,
  EnumTaskStatus,
  EnumUserGender,
  EnumTaskUserApplyStatus,
} from '@12333/constants';
import _ from 'lodash';
import { trim } from '@12333/utils';
import { MaybeRef, reactive, ref, unref } from 'vue';
import { computed, MaybeRef, reactive, ref, unref } from 'vue';
import * as taskServices from '@12333/services/apiV2/task';
import * as enterpriseWalletServices from '@12333/services/apiV2/enterpriseWallet';
import dayjs from 'dayjs';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
@@ -34,13 +38,15 @@
    enterpriseId?: string;
    time?: Date;
  };
  beforeRequest?: (params: API.GetTaskInfosQuery) => API.GetTaskInfosQuery;
};
/**
 * @description 仅C端使用
 */
export function useTaskList(options: UseTaskListOptions = {}) {
  const { cityCode = '', enabled = true, defaultQueryMenuState = {} } = options;
  const { cityCode = '', enabled = true, defaultQueryMenuState = {}, beforeRequest } = options;
  const searchValue = ref('');
@@ -53,6 +59,7 @@
    checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus,
    enterpriseId: '',
    time: '' as any as Date,
    applyStatus: '' as any as EnumTaskUserApplyStatus,
    ...defaultQueryMenuState,
  });
@@ -72,10 +79,13 @@
          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),
@@ -92,7 +102,12 @@
        endTime: queryMenuState.time
          ? dayjs(queryMenuState.time).format('YYYY-MM-DD 23:59:59')
          : '',
        applyStatus: queryMenuState.applyStatus,
      };
      if (beforeRequest) {
        params = beforeRequest(params);
      }
      return taskServices.getOpenTaskInfos(params, {
        showLoading: false,
@@ -177,3 +192,31 @@
    infiniteLoadingProps,
  };
}
export function useEnterpriseWalletAccessSelect() {
  const { data } = useQuery({
    queryKey: ['enterpriseWalletServices/getEnterpriseWalletAccessSelect'],
    queryFn: () => {
      return enterpriseWalletServices.getEnterpriseWalletAccessSelect(
        {},
        {
          showLoading: false,
        }
      );
    },
    placeholderData: () => [] as API.SelectOptionGuidGetEnterpriseWalletAccessSelectQueryOption[],
  });
  const enterpriseWalletAccessSelect = computed(() => data.value?.map((x) => x.data));
  const settlementAccessList = computed(() => {
    return enterpriseWalletAccessSelect.value?.length > 0
      ? enterpriseWalletAccessSelect.value.map((x) => ({
          label: EnumEnterpriseWalletAccessTextForSettle[x.access],
          value: x.access,
        }))
      : [];
  });
  return { settlementAccessList };
}