import { useQuery, useQueryClient } from '@tanstack/vue-query';
|
import * as electronSignServices from '@/services/api/electronSign';
|
|
type UseEnabledElectronSignSettingsOptions = {
|
enterpriseId?: MaybeRef<string>;
|
all?: MaybeRef<boolean>;
|
};
|
|
export function useEnabledElectronSignSettings(
|
options: UseEnabledElectronSignSettingsOptions = {}
|
) {
|
const { enterpriseId, all } = options;
|
|
const queryClient = useQueryClient();
|
|
const { data } = useQuery({
|
queryKey: ['electronSignServices/getEnabledElectronSignSettings', enterpriseId, all],
|
queryFn: async () => {
|
let res = await electronSignServices.getEnabledElectronSignSettings(
|
{ enterpriseId: unref(enterpriseId), all: unref(all) },
|
{ showLoading: false }
|
);
|
return res;
|
},
|
select(data) {
|
const showDisabledName = !!unref(enterpriseId) && unref(all);
|
return data.map((x) => ({
|
...x,
|
accessName:
|
showDisabledName && x.isDisabled
|
? '该通道无法使用'
|
: EnumElectronSignAccessText[x.access],
|
}));
|
},
|
placeholderData: () => [] as API.GetEnabledElectronSignSettingsQueryResultItem[],
|
});
|
|
function invalidateQueries() {
|
return queryClient.invalidateQueries({
|
queryKey: ['electronSignServices/getEnabledElectronSignSettings'],
|
});
|
}
|
|
return {
|
enabledElectronSignSettings: data,
|
invalidateQueries,
|
};
|
}
|