useRootSetting.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import type { ProjectConfig } from '@jeesite/types/config';
  2. import { computed } from 'vue';
  3. import { useAppStore } from '@jeesite/core/store/modules/app';
  4. import { ContentEnum, ThemeEnum } from '@jeesite/core/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 getTableSize = computed(() => appStore.getProjectConfig.tableSize);
  27. const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
  28. const getDarkMode = computed(() => appStore.getDarkMode);
  29. const getLayoutContentMode = computed(() =>
  30. appStore.getProjectConfig.contentMode === ContentEnum.FULL ? ContentEnum.FULL : ContentEnum.FIXED,
  31. );
  32. function setRootSetting(setting: Partial<RootSetting>) {
  33. appStore.setProjectConfig(setting);
  34. }
  35. function setDarkMode(mode: ThemeEnum) {
  36. appStore.setDarkMode(mode);
  37. }
  38. return {
  39. setRootSetting,
  40. getSettingButtonPosition,
  41. getFullContent,
  42. getColorWeak,
  43. getGrayMode,
  44. getLayoutContentMode,
  45. getPageLoading,
  46. getOpenKeepAlive,
  47. getCanEmbedIFramePage,
  48. getPermissionMode,
  49. getShowLogo,
  50. getUseErrorHandle,
  51. getShowBreadCrumb,
  52. getShowBreadCrumbIcon,
  53. getUseOpenBackTop,
  54. getShowSettingButton,
  55. getShowFooter,
  56. getContentMode,
  57. getLockTime,
  58. getTableSize,
  59. getThemeColor,
  60. getDarkMode,
  61. setDarkMode,
  62. getShowDarkModeToggle,
  63. };
  64. }