| | |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as dictionaryServices from '@12333/services/apiV2/dictionary'; |
| | | import { MaybeRef, unref } from 'vue'; |
| | | import { MaybeRef, unref, computed } from 'vue'; |
| | | import { CategoryCode } from '@12333/constants'; |
| | | |
| | | export function useGetDictionaryCategorySelect() { |
| | |
| | | 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', categoryId, categoryCode], |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect', params], |
| | | queryFn: async () => { |
| | | let res = await dictionaryServices.getDictionaryDataSelect( |
| | | { |
| | | categoryId: unref(categoryId), |
| | | categoryCode: unref(categoryCode), |
| | | }, |
| | | { showLoading: false } |
| | | ); |
| | | 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) { |
| | |
| | | }); |
| | | } |
| | | |
| | | function updateDictionaryDataSelect(categoryId?: string) { |
| | | queryClient.invalidateQueries({ |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect'], |
| | | }); |
| | | } |
| | | |
| | | return { |
| | | dictionaryDataList, |
| | | ensureQueryData, |
| | |
| | | getDictionaryDataNameById, |
| | | getDictionaryDataNameByCode, |
| | | getDictionaryDataByCode, |
| | | updateDictionaryDataSelect, |
| | | }; |
| | | } |