useRootSetting.ts 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import type { ProjectConfig } from '/#/config';
  2. import { computed } from 'vue';
  3. import { useAppStore } from '/@/store/modules/app';
  4. import { ContentEnum, ThemeEnum } from '/@/enums/appEnum';
  5. type RootSetting = Omit<ProjectConfig, 'locale' | 'headerSetting' | 'menuSetting' | 'multiTabsSetting'>;
  6. export function useRootSetting() {
  7. const appStore = useAppStore();
  8. const getPageLoading = computed(() => appStore.getPageLoading);
  9. const getOpenKeepAlive = computed(() => appStore.getProjectConfig.openKeepAlive);
  10. const getSettingButtonPosition = computed(() => appStore.getProjectConfig.settingButtonPosition);
  11. const getCanEmbedIFramePage = computed(() => appStore.getProjectConfig.canEmbedIFramePage);
  12. const getPermissionMode = computed(() => appStore.getProjectConfig.permissionMode);
  13. const getShowLogo = computed(() => appStore.getProjectConfig.showLogo);
  14. const getContentMode = computed(() => appStore.getProjectConfig.contentMode);
  15. const getUseOpenBackTop = computed(() => appStore.getProjectConfig.useOpenBackTop);
  16. const getShowSettingButton = computed(() => appStore.getProjectConfig.showSettingButton);
  17. const getUseErrorHandle = computed(() => appStore.getProjectConfig.useErrorHandle);
  18. const getShowFooter = computed(() => appStore.getProjectConfig.showFooter);
  19. const getShowBreadCrumb = computed(() => appStore.getProjectConfig.showBreadCrumb);
  20. const getThemeColor = computed(() => appStore.getProjectConfig.themeColor);
  21. const getShowBreadCrumbIcon = computed(() => appStore.getProjectConfig.showBreadCrumbIcon);
  22. const getFullContent = computed(() => appStore.getProjectConfig.fullContent);
  23. const getColorWeak = computed(() => appStore.getProjectConfig.colorWeak);
  24. const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
  25. const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
  26. const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
  27. const getDarkMode = computed(() => appStore.getDarkMode);
  28. const getLayoutContentMode = computed(() => (appStore.getProjectConfig.contentMode === ContentEnum.FULL ? ContentEnum.FULL : ContentEnum.FIXED));
  29. function setRootSetting(setting: Partial<RootSetting>) {
  30. appStore.setProjectConfig(setting);
  31. }
  32. function setDarkMode(mode: ThemeEnum) {
  33. appStore.setDarkMode(mode);
  34. }
  35. return {
  36. setRootSetting,
  37. getSettingButtonPosition,
  38. getFullContent,
  39. getColorWeak,
  40. getGrayMode,
  41. getLayoutContentMode,
  42. getPageLoading,
  43. getOpenKeepAlive,
  44. getCanEmbedIFramePage,
  45. getPermissionMode,
  46. getShowLogo,
  47. getUseErrorHandle,
  48. getShowBreadCrumb,
  49. getShowBreadCrumbIcon,
  50. getUseOpenBackTop,
  51. getShowSettingButton,
  52. getShowFooter,
  53. getContentMode,
  54. getLockTime,
  55. getThemeColor,
  56. getDarkMode,
  57. setDarkMode,
  58. getShowDarkModeToggle,
  59. };
  60. }