| import { useQuery, useQueryClient } from '@tanstack/vue-query'; | 
| import * as dictionaryServices from '@12333/services/apiV2/dictionary'; | 
| import { MaybeRef, unref, computed } from 'vue'; | 
| import { CategoryCode } from '@12333/constants'; | 
|   | 
| export function useGetDictionaryCategorySelect() { | 
|   const { data: dictionaryCategoryList, refetch } = useQuery({ | 
|     queryKey: ['dictionaryServices/getDictionaryCategorySelect'], | 
|     queryFn: async () => { | 
|       let res = await dictionaryServices.getDictionaryCategorySelect({}, { showLoading: false }); | 
|       return res.map((x) => ({ | 
|         ...x, | 
|         fieldNamesMap: x.data.fieldNames ? JSON.parse(x.data.fieldNames) : {}, | 
|       })); | 
|     }, | 
|     placeholderData: () => [] as API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[], | 
|   }); | 
|   | 
|   const queryClient = useQueryClient(); | 
|   | 
|   function ensureQueryData() { | 
|     return queryClient.ensureQueryData< | 
|       API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[] | 
|     >({ | 
|       queryKey: ['dictionaryServices/getDictionaryCategorySelect'], | 
|     }); | 
|   } | 
|   | 
|   function getDictionaryCategoryById(id: string) { | 
|     return dictionaryCategoryList.value.find((x) => x.data?.id === id); | 
|   } | 
|   | 
|   function getDictionaryCategoryByCode(code: string) { | 
|     return dictionaryCategoryList.value.find((x) => x.data?.code === code); | 
|   } | 
|   | 
|   function getDictionaryCategoryNameByCode(code: string) { | 
|     return getDictionaryCategoryByCode(code)?.label ?? ''; | 
|   } | 
|   | 
|   return { | 
|     dictionaryCategoryList, | 
|     ensureQueryData, | 
|     getDictionaryCategoryById, | 
|     getDictionaryCategoryNameByCode, | 
|     getDictionaryCategoryByCode, | 
|   }; | 
| } | 
|   | 
| type UseDictionaryDataSelectOptions = { | 
|   categoryId?: MaybeRef<string>; | 
|   categoryCode?: MaybeRef<CategoryCode>; | 
|   parentId?: MaybeRef<string>; | 
|   staleTime?: number; | 
|   /** 关键字 */ | 
|   keywords?: MaybeRef<string>; | 
|   /** 查询所有 */ | 
|   all?: MaybeRef<boolean>; | 
|   maxDeep?: number; | 
| }; | 
|   | 
| export function useDictionaryDataSelect({ | 
|   categoryId, | 
|   categoryCode, | 
|   parentId, | 
|   staleTime, | 
|   keywords, | 
|   all, | 
|   maxDeep, | 
| }: UseDictionaryDataSelectOptions) { | 
|   const params = computed(() => ({ | 
|     categoryId: unref(categoryId), | 
|     categoryCode: unref(categoryCode), | 
|     parentId: unref(parentId), | 
|     keywords: unref(keywords), | 
|     all: unref(all), | 
|     maxDeep: maxDeep, | 
|   })); | 
|   const { data: dictionaryDataList, refetch } = useQuery({ | 
|     queryKey: ['dictionaryServices/getDictionaryDataSelect', params], | 
|     queryFn: async () => { | 
|       let res = await dictionaryServices.getDictionaryDataSelect(params.value, { | 
|         showLoading: false, | 
|       }); | 
|       return res.map((x) => ({ | 
|         ...x, | 
|         code: x.data?.code ?? '', | 
|       })); | 
|     }, | 
|     placeholderData: () => [] as API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[], | 
|     staleTime, | 
|   }); | 
|   | 
|   function getDictionaryDataNameById(id: string) { | 
|     return dictionaryDataList.value?.find((x) => x.data?.id === id)?.label; | 
|   } | 
|   | 
|   function getDictionaryDataByCode(code: string) { | 
|     return dictionaryDataList.value?.find((x) => x.data?.code === code); | 
|   } | 
|   | 
|   function getDictionaryDataNameByCode(code: string) { | 
|     return getDictionaryDataByCode(code)?.label ?? ''; | 
|   } | 
|   | 
|   const queryClient = useQueryClient(); | 
|   | 
|   function ensureQueryData() { | 
|     return queryClient.ensureQueryData< | 
|       API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[] | 
|     >({ | 
|       queryKey: ['dictionaryServices/getDictionaryDataSelect'], | 
|     }); | 
|   } | 
|   | 
|   function updateDictionaryDataSelect(categoryId?: string) { | 
|     queryClient.invalidateQueries({ | 
|       queryKey: ['dictionaryServices/getDictionaryDataSelect'], | 
|     }); | 
|   } | 
|   | 
|   return { | 
|     dictionaryDataList, | 
|     ensureQueryData, | 
|     refetch, | 
|     getDictionaryDataNameById, | 
|     getDictionaryDataNameByCode, | 
|     getDictionaryDataByCode, | 
|     updateDictionaryDataSelect, | 
|   }; | 
| } |