vue-vben-admin/src/hooks/setting/useRootSetting.ts

96 lines
2.8 KiB
TypeScript
Raw Normal View History

import type { ProjectConfig } from '#/config';
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
import { computed } from 'vue';
2020-11-23 23:24:13 +08:00
import { useAppStore } from '@/store/modules/app';
import { ContentEnum, ThemeEnum } from '@/enums/appEnum';
2020-11-23 23:24:13 +08:00
type RootSetting = Omit<
ProjectConfig,
'locale' | 'headerSetting' | 'menuSetting' | 'multiTabsSetting'
>;
2021-04-10 19:25:49 +08:00
export function useRootSetting() {
const appStore = useAppStore();
2020-12-07 22:18:57 +08:00
2021-04-10 19:25:49 +08:00
const getPageLoading = computed(() => appStore.getPageLoading);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getOpenKeepAlive = computed(() => appStore.getProjectConfig.openKeepAlive);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getSettingButtonPosition = computed(() => appStore.getProjectConfig.settingButtonPosition);
2021-04-10 19:25:49 +08:00
const getCanEmbedIFramePage = computed(() => appStore.getProjectConfig.canEmbedIFramePage);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getPermissionMode = computed(() => appStore.getProjectConfig.permissionMode);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getShowLogo = computed(() => appStore.getProjectConfig.showLogo);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getContentMode = computed(() => appStore.getProjectConfig.contentMode);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getUseOpenBackTop = computed(() => appStore.getProjectConfig.useOpenBackTop);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getShowSettingButton = computed(() => appStore.getProjectConfig.showSettingButton);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getUseErrorHandle = computed(() => appStore.getProjectConfig.useErrorHandle);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getShowFooter = computed(() => appStore.getProjectConfig.showFooter);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getShowBreadCrumb = computed(() => appStore.getProjectConfig.showBreadCrumb);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getThemeColor = computed(() => appStore.getProjectConfig.themeColor);
2021-02-03 23:52:55 +08:00
2021-04-10 19:25:49 +08:00
const getShowBreadCrumbIcon = computed(() => appStore.getProjectConfig.showBreadCrumbIcon);
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
const getFullContent = computed(() => appStore.getProjectConfig.fullContent);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getColorWeak = computed(() => appStore.getProjectConfig.colorWeak);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
2021-04-10 19:25:49 +08:00
const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
2021-04-07 23:14:51 +08:00
2021-04-10 19:25:49 +08:00
const getDarkMode = computed(() => appStore.getDarkMode);
2021-04-07 23:14:51 +08:00
2021-04-10 19:25:49 +08:00
const getLayoutContentMode = computed(() =>
appStore.getProjectConfig.contentMode === ContentEnum.FULL
? ContentEnum.FULL
2021-08-24 22:41:48 +08:00
: ContentEnum.FIXED,
2021-04-10 19:25:49 +08:00
);
2020-11-24 22:59:29 +08:00
2021-04-10 19:25:49 +08:00
function setRootSetting(setting: Partial<RootSetting>) {
appStore.setProjectConfig(setting);
}
2020-11-23 23:24:13 +08:00
2021-04-10 19:25:49 +08:00
function setDarkMode(mode: ThemeEnum) {
appStore.setDarkMode(mode);
}
2020-11-23 23:24:13 +08:00
return {
setRootSetting,
getSettingButtonPosition,
2020-11-24 22:59:29 +08:00
getFullContent,
getColorWeak,
getGrayMode,
getLayoutContentMode,
getPageLoading,
2020-11-23 23:24:13 +08:00
getOpenKeepAlive,
getCanEmbedIFramePage,
getPermissionMode,
getShowLogo,
getUseErrorHandle,
getShowBreadCrumb,
getShowBreadCrumbIcon,
2020-11-24 22:59:29 +08:00
getUseOpenBackTop,
getShowSettingButton,
getShowFooter,
getContentMode,
getLockTime,
2021-02-03 23:52:55 +08:00
getThemeColor,
2021-04-07 23:14:51 +08:00
getDarkMode,
setDarkMode,
getShowDarkModeToggle,
2020-11-23 23:24:13 +08:00
};
}