wupengfei
2025-03-21 1bbd7061dac79cacf5513234a04cac8ba0be5c6f
packages/hooks/area.ts
@@ -1,5 +1,5 @@
import { flattenAreaTree, formatAreaListToTree } from '@12333/utils';
import * as areaServices from '@12333/services/api/Area';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import { computed, onMounted, onUnmounted, ref } from 'vue';
import { AreaType } from '@12333/constants';
@@ -14,14 +14,14 @@
  const queryClient = useQueryClient();
  const { data: areaStore } = useQuery({
    queryKey: ['areaServices/getRegionalManagementList'],
    queryKey: ['flexWorkerServices/getAreaList'],
    queryFn: async () => {
      return await areaServices.getRegionalManagementList({ showLoading: false });
      return await flexWorkerServices.getAreaList({}, { showLoading: false });
    },
    placeholderData: () => [] as API.AreaInfo[],
    placeholderData: () => [] as API.AreaDto[],
    staleTime: Infinity,
    select(data) {
      const areaItemMap: Record<API.AreaInfo['areaCode'], API.AreaInfo> = {};
      const areaItemMap: Record<API.AreaDto['areaCode'], API.AreaDto> = {};
      data.forEach((item) => {
        areaItemMap[item.areaCode] = item;
      });
@@ -63,7 +63,15 @@
  return {
    completeAreaList: computed(() => areaStore.value.completeAreaList),
    completeAreaTree: computed(() => areaStore.value.completeAreaTree),
    // cityAreaTree: computed(() => areaStore.value.cityAreaTree),
    cityAreaTree: computed(() =>
      areaStore.value.completeAreaTree.map((x) => ({
        ...x,
        children: x.children.map((y) => ({
          ...y,
          children: undefined,
        })),
      }))
    ),
    provinceList: computed(() => areaStore.value.provinceList),
    areaItemMap: computed(() => areaStore.value.areaItemMap),
    getAreaFromCompleteAreaList,
@@ -72,7 +80,7 @@
}
export function useAllAreaList() {
  const { completeAreaTree, provinceList, completeAreaList } = useArea();
  const { completeAreaTree, provinceList, completeAreaList, cityAreaTree } = useArea();
  const findAreaCodeFromName = (areaName: string) => {
    const areaItem = completeAreaList.value.find((x) => x.areaName === areaName);
@@ -95,6 +103,7 @@
    findAreaItemFromCode,
    areaTreeList: completeAreaTree,
    provinceList,
    cityAreaTree,
  };
}