useRootSetting.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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 getShowBreadCrumb = computed(() => appStore.getProjectConfig.showBreadCrumb);
  23. const getThemeColor = computed(() => appStore.getProjectConfig.themeColor);
  24. const getShowBreadCrumbIcon = computed(() => appStore.getProjectConfig.showBreadCrumbIcon);
  25. const getFullContent = computed(() => appStore.getProjectConfig.fullContent);
  26. const getColorWeak = computed(() => appStore.getProjectConfig.colorWeak);
  27. const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
  28. const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
  29. const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
  30. const getDarkMode = computed(() => appStore.getDarkMode);
  31. const getLayoutContentMode = computed(() =>
  32. appStore.getProjectConfig.contentMode === ContentEnum.FULL
  33. ? ContentEnum.FULL
  34. : ContentEnum.FIXED
  35. );
  36. function setRootSetting(setting: Partial<RootSetting>) {
  37. appStore.setProjectConfig(setting);
  38. }
  39. function setDarkMode(mode: ThemeEnum) {
  40. appStore.setDarkMode(mode);
  41. }
  42. return {
  43. setRootSetting,
  44. getSettingButtonPosition,
  45. getFullContent,
  46. getColorWeak,
  47. getGrayMode,
  48. getLayoutContentMode,
  49. getPageLoading,
  50. getOpenKeepAlive,
  51. getCanEmbedIFramePage,
  52. getPermissionMode,
  53. getShowLogo,
  54. getUseErrorHandle,
  55. getShowBreadCrumb,
  56. getShowBreadCrumbIcon,
  57. getUseOpenBackTop,
  58. getShowSettingButton,
  59. getShowFooter,
  60. getContentMode,
  61. getLockTime,
  62. getThemeColor,
  63. getDarkMode,
  64. setDarkMode,
  65. getShowDarkModeToggle,
  66. };
  67. }