useRootSetting.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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<
  6. ProjectConfig,
  7. 'locale' | 'headerSetting' | 'menuSetting' | 'multiTabsSetting'
  8. >;
  9. export function useRootSetting() {
  10. const appStore = useAppStore();
  11. const getPageLoading = computed(() => appStore.getPageLoading);
  12. const getOpenKeepAlive = computed(() => appStore.getProjectConfig.openKeepAlive);
  13. const getSettingButtonPosition = computed(() => appStore.getProjectConfig.settingButtonPosition);
  14. const getCanEmbedIFramePage = computed(() => appStore.getProjectConfig.canEmbedIFramePage);
  15. const getPermissionMode = computed(() => appStore.getProjectConfig.permissionMode);
  16. const getShowLogo = computed(() => appStore.getProjectConfig.showLogo);
  17. const getContentMode = computed(() => appStore.getProjectConfig.contentMode);
  18. const getUseOpenBackTop = computed(() => appStore.getProjectConfig.useOpenBackTop);
  19. const getShowSettingButton = computed(() => appStore.getProjectConfig.showSettingButton);
  20. const getUseErrorHandle = computed(() => appStore.getProjectConfig.useErrorHandle);
  21. const getShowFooter = computed(() => appStore.getProjectConfig.showFooter);
  22. const getShowApp = computed(() => appStore.getProjectConfig.showApp);
  23. const getShowBreadCrumb = computed(() => appStore.getProjectConfig.showBreadCrumb);
  24. const getThemeColor = computed(() => appStore.getProjectConfig.themeColor);
  25. const getShowBreadCrumbIcon = computed(() => appStore.getProjectConfig.showBreadCrumbIcon);
  26. const getFullContent = computed(() => appStore.getProjectConfig.fullContent);
  27. const getColorWeak = computed(() => appStore.getProjectConfig.colorWeak);
  28. const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
  29. const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
  30. const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
  31. const getDarkMode = computed(() => appStore.getDarkMode);
  32. const getLayoutContentMode = computed(() =>
  33. appStore.getProjectConfig.contentMode === ContentEnum.FULL
  34. ? ContentEnum.FULL
  35. : ContentEnum.FIXED,
  36. );
  37. function setRootSetting(setting: Partial<RootSetting>) {
  38. appStore.setProjectConfig(setting);
  39. }
  40. function setDarkMode(mode: ThemeEnum) {
  41. appStore.setDarkMode(mode);
  42. }
  43. return {
  44. setRootSetting,
  45. getSettingButtonPosition,
  46. getFullContent,
  47. getColorWeak,
  48. getGrayMode,
  49. getLayoutContentMode,
  50. getPageLoading,
  51. getOpenKeepAlive,
  52. getCanEmbedIFramePage,
  53. getPermissionMode,
  54. getShowLogo,
  55. getUseErrorHandle,
  56. getShowApp,
  57. getShowBreadCrumb,
  58. getShowBreadCrumbIcon,
  59. getUseOpenBackTop,
  60. getShowSettingButton,
  61. getShowFooter,
  62. getContentMode,
  63. getLockTime,
  64. getThemeColor,
  65. getDarkMode,
  66. setDarkMode,
  67. getShowDarkModeToggle,
  68. };
  69. }