index.js 785 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const appTheme = uni.getStorageSync('AppTheme') || ''
  2. // #ifdef VUE2
  3. import Vue from 'vue'
  4. const shared = Vue.observable({ appTheme })
  5. // #endif
  6. // #ifdef VUE3
  7. import { reactive } from 'vue'
  8. // #endif
  9. export default (V, options = {}) => {
  10. const { initAppTheme = '' } = options
  11. // #ifdef VUE3
  12. const shared = reactive({ appTheme })
  13. // #endif
  14. // shared.appTheme = shared.appTheme
  15. // ? shared.appTheme
  16. // : initAppTheme
  17. shared.appTheme = initAppTheme
  18. V.mixin({
  19. computed: {
  20. // app主题
  21. AppTheme() {
  22. const { appTheme } = shared
  23. const AppTheme = appTheme ? `theme-${appTheme}` : ''
  24. uni.setStorageSync('AppTheme', AppTheme)
  25. return AppTheme
  26. }
  27. },
  28. methods: {
  29. // 切换app主题
  30. ToggleAppTheme(t) {
  31. shared.appTheme = t
  32. }
  33. }
  34. })
  35. }