index.ts 997 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { localCache } from '@/store'
  2. import { AppTheme } from '@/constants/enum'
  3. import plus from '@/utils/h5plus'
  4. /**
  5. * 系统主题类
  6. */
  7. export default new (class {
  8. constructor() {
  9. document.addEventListener('DOMContentLoaded', this.loadTheme, false);
  10. }
  11. /**
  12. * 加载主题
  13. */
  14. private loadTheme() {
  15. const theme = localCache.getValue('appTheme');
  16. const statusBarStyle = AppTheme[theme];
  17. document.documentElement.setAttribute('theme', theme);
  18. plus.setStatusBarStyle(statusBarStyle);
  19. document.removeEventListener('DOMContentLoaded', this.loadTheme);
  20. }
  21. /**
  22. * 设置主题
  23. * @param theme
  24. */
  25. setTheme(theme: keyof typeof AppTheme) {
  26. const statusBarStyle = AppTheme[theme];
  27. document.documentElement.setAttribute('theme', theme);
  28. localCache.setValue('appTheme', theme);
  29. if (statusBarStyle) {
  30. plus.setStatusBarStyle(statusBarStyle);
  31. }
  32. }
  33. })