useRootSetting.ts 3.0 KB

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