|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|