import { useUserStore } from '@/store/modules/user';
|
import { UserUtils } from '@bole-core/core';
|
import * as userRoleServices from '@/services/api/UserRole';
|
import * as userServices from '@/services/api/User';
|
import { useQuery, useQueryClient } from '@tanstack/vue-query';
|
import { formatRoleName } from '@/utils';
|
import { EnumMenuScene } from '@/constants';
|
|
export function useIsSystemAdmin() {
|
const userStore = useUserStore();
|
const { accountInfo } = storeToRefs(userStore);
|
const isSystemAdmin = computed(() => UserUtils.isSystemRole(accountInfo.value));
|
return isSystemAdmin;
|
}
|
|
export function useUser() {
|
const userStore = useUserStore();
|
|
const { userId, userInfo } = storeToRefs(userStore);
|
|
return {
|
user: userInfo,
|
userId: userId,
|
};
|
}
|
|
type UseAllRoleListOptions = {
|
menuScene?: EnumMenuScene;
|
};
|
|
export function useAllRoleList(options: UseAllRoleListOptions = {}) {
|
const { menuScene = EnumMenuScene.Goverment } = options;
|
const { data: allRoleList } = useQuery({
|
queryKey: ['userRoleServices/getRoles', menuScene],
|
queryFn: async () => {
|
let res = await userRoleServices.getRoles({ menuScene }, { showLoading: false });
|
return res.data;
|
},
|
select(data) {
|
return data.map((x) => ({
|
...x,
|
name: formatRoleName(x.name),
|
realName: x.name,
|
}));
|
},
|
});
|
|
const enableRoleList = computed(() => {
|
return allRoleList.value.filter((x) => x.isEnable);
|
});
|
|
return {
|
allRoleList,
|
enableRoleList,
|
};
|
}
|