import type { ProjectConfig } from '#/config';
|
|
import { computed } from 'vue';
|
|
import { useAppStore } from '@/store/modules/app';
|
import { ContentEnum, ThemeEnum } from '@/enums/appEnum';
|
|
type RootSetting = Omit<
|
ProjectConfig,
|
'locale' | 'headerSetting' | 'menuSetting' | 'multiTabsSetting'
|
>;
|
|
export function useRootSetting() {
|
const appStore = useAppStore();
|
|
const getPageLoading = computed(() => appStore.getPageLoading);
|
|
const getOpenKeepAlive = computed(() => appStore.getProjectConfig.openKeepAlive);
|
|
const getSettingButtonPosition = computed(() => appStore.getProjectConfig.settingButtonPosition);
|
|
const getCanEmbedIFramePage = computed(() => appStore.getProjectConfig.canEmbedIFramePage);
|
|
const getPermissionMode = computed(() => appStore.getProjectConfig.permissionMode);
|
|
const getShowLogo = computed(() => appStore.getProjectConfig.showLogo);
|
|
const getContentMode = computed(() => appStore.getProjectConfig.contentMode);
|
|
const getUseOpenBackTop = computed(() => appStore.getProjectConfig.useOpenBackTop);
|
|
const getShowSettingButton = computed(() => appStore.getProjectConfig.showSettingButton);
|
|
const getUseErrorHandle = computed(() => appStore.getProjectConfig.useErrorHandle);
|
|
const getShowFooter = computed(() => appStore.getProjectConfig.showFooter);
|
|
const getShowBreadCrumb = computed(() => appStore.getProjectConfig.showBreadCrumb);
|
|
const getThemeColor = computed(() => appStore.getProjectConfig.themeColor);
|
|
const getShowBreadCrumbIcon = computed(() => appStore.getProjectConfig.showBreadCrumbIcon);
|
|
const getFullContent = computed(() => appStore.getProjectConfig.fullContent);
|
|
const getColorWeak = computed(() => appStore.getProjectConfig.colorWeak);
|
|
const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
|
|
const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
|
|
const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
|
|
const getDarkMode = computed(() => appStore.getDarkMode);
|
|
const getLayoutContentMode = computed(() =>
|
appStore.getProjectConfig.contentMode === ContentEnum.FULL
|
? ContentEnum.FULL
|
: ContentEnum.FIXED,
|
);
|
|
function setRootSetting(setting: Partial<RootSetting>) {
|
appStore.setProjectConfig(setting);
|
}
|
|
function setDarkMode(mode: ThemeEnum) {
|
appStore.setDarkMode(mode);
|
}
|
return {
|
setRootSetting,
|
|
getSettingButtonPosition,
|
getFullContent,
|
getColorWeak,
|
getGrayMode,
|
getLayoutContentMode,
|
getPageLoading,
|
getOpenKeepAlive,
|
getCanEmbedIFramePage,
|
getPermissionMode,
|
getShowLogo,
|
getUseErrorHandle,
|
getShowBreadCrumb,
|
getShowBreadCrumbIcon,
|
getUseOpenBackTop,
|
getShowSettingButton,
|
getShowFooter,
|
getContentMode,
|
getLockTime,
|
getThemeColor,
|
getDarkMode,
|
setDarkMode,
|
getShowDarkModeToggle,
|
};
|
}
|