application.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /**
  2. * Application configuration
  3. */
  4. import type { ProjectConfig } from '/@/types/config';
  5. import type { App } from 'vue';
  6. import { computed, ref } from 'vue';
  7. import { ThemeModeEnum } from '/@/enums/appEnum';
  8. import { PROJ_CFG_KEY } from '/@/enums/cacheEnum';
  9. import projectSetting from '/@/settings/projectSetting';
  10. import { getLocal } from '/@/utils/helper/persistent';
  11. import { isUnDef, isNull } from '/@/utils/is';
  12. import {
  13. updateGrayMode,
  14. updateColorWeak,
  15. updateHeaderBgColor,
  16. updateSidebarBgColor,
  17. } from '/@/setup/theme';
  18. import { appStore } from '/@/store/modules/app';
  19. // Used to share global app instances
  20. let app: App;
  21. export function setApp(_app: App): void {
  22. app = _app;
  23. }
  24. export function getApp(): App {
  25. return app;
  26. }
  27. // TODO Theme switching
  28. export function useThemeMode(mode: ThemeModeEnum) {
  29. const modeRef = ref(mode);
  30. const html = document.documentElement;
  31. const clsList = html.classList;
  32. const change = () => {
  33. clsList.contains(mode) ? clsList.remove(mode) : clsList.add(mode);
  34. };
  35. return {
  36. runChangeThemeMode: change,
  37. mode: computed(() => modeRef.value),
  38. };
  39. }
  40. // Initial project configuration
  41. export function initAppConfigStore() {
  42. let projCfg: ProjectConfig = getLocal(PROJ_CFG_KEY) as ProjectConfig;
  43. if (!projCfg) {
  44. projCfg = projectSetting;
  45. }
  46. const { colorWeak, grayMode, headerBgColor, menuBgColor } = projCfg;
  47. try {
  48. // if (
  49. // themeColor !== primaryColor &&
  50. // themeColor &&
  51. // process.env.VUE_APP_USE_THEME_REPLACER !== 'TRUE'
  52. // ) {
  53. // updateTheme(themeColor);
  54. // }
  55. headerBgColor && updateHeaderBgColor(headerBgColor);
  56. menuBgColor && updateSidebarBgColor(menuBgColor);
  57. grayMode && updateGrayMode(grayMode);
  58. colorWeak && updateColorWeak(colorWeak);
  59. } catch (error) {
  60. console.log(error);
  61. }
  62. appStore.commitProjectConfigState(projCfg);
  63. }
  64. // antdv Config Provider
  65. export function getConfigProvider() {
  66. function transformCellText({ text }: { text: string }) {
  67. if (isNull(text) || isUnDef(text)) {
  68. return ' - ';
  69. }
  70. return text;
  71. }
  72. return {
  73. transformCellText,
  74. };
  75. }