import { useQuery, useQueryClient } from '@tanstack/vue-query';
|
import * as dictionaryServices from '@12333/services/apiV2/dictionary';
|
import { MaybeRef, unref } 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.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[],
|
});
|
|
const queryClient = useQueryClient();
|
|
function ensureQueryData() {
|
return queryClient.ensureQueryData<
|
API.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[]
|
>({
|
queryKey: ['dictionaryServices/getDictionaryCategorySelect'],
|
});
|
}
|
|
function getDictionaryCategoryById(id: string) {
|
return dictionaryCategoryList.value.find((x) => x.value === id);
|
}
|
|
function getDictionaryCategoryByCode(code: string) {
|
return dictionaryCategoryList.value.find((x) => x.code === code);
|
}
|
|
function getDictionaryCategoryNameByCode(code: string) {
|
return getDictionaryCategoryByCode(code)?.label ?? '';
|
}
|
|
return {
|
dictionaryCategoryList,
|
ensureQueryData,
|
getDictionaryCategoryById,
|
getDictionaryCategoryNameByCode,
|
getDictionaryCategoryByCode,
|
};
|
}
|
|
type UseDictionaryDataSelectOptions = {
|
categoryId?: MaybeRef<string>;
|
categoryCode?: MaybeRef<CategoryCode>;
|
};
|
|
export function useDictionaryDataSelect({
|
categoryId,
|
categoryCode,
|
}: UseDictionaryDataSelectOptions) {
|
const { data: dictionaryDataList, refetch } = useQuery({
|
queryKey: ['dictionaryServices/getDictionaryDataSelect', categoryId, categoryCode],
|
queryFn: async () => {
|
let res = await dictionaryServices.getDictionaryDataSelect(
|
{
|
categoryId: unref(categoryId),
|
categoryCode: unref(categoryCode),
|
},
|
{ showLoading: false }
|
);
|
return res.map((x) => ({
|
...x,
|
code: x.data?.code ?? '',
|
}));
|
},
|
placeholderData: () =>
|
[] as API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[],
|
});
|
|
function getDictionaryDataNameById(id: string) {
|
return dictionaryDataList.value?.find((x) => x.value === id)?.label;
|
}
|
|
function getDictionaryDataByCode(code: string) {
|
return dictionaryDataList.value?.find((x) => x.code === code);
|
}
|
|
function getDictionaryDataNameByCode(code: string) {
|
return getDictionaryDataByCode(code)?.label ?? '';
|
}
|
|
const queryClient = useQueryClient();
|
|
function ensureQueryData() {
|
return queryClient.ensureQueryData<
|
API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[]
|
>({
|
queryKey: ['dictionaryServices/getDictionaryDataSelect'],
|
});
|
}
|
|
return {
|
dictionaryDataList,
|
ensureQueryData,
|
refetch,
|
getDictionaryDataNameById,
|
getDictionaryDataNameByCode,
|
getDictionaryDataByCode,
|
};
|
}
|