app.js 760 B

1234567891011121314151617181920212223242526272829303132333435
  1. import Vue from 'vue'
  2. import { mapGetters } from 'vuex'
  3. import store from '@/store/index'
  4. import platform from '@/core/platform'
  5. // 字符串驼峰转中划线
  6. const formatToLine = value => {
  7. return value.replace(/([A-Z])/g, '-$1').toLowerCase()
  8. }
  9. // 主题样式 (因小程序端不支持styleObject语法,所以需要转换成字符串)
  10. const appTheme2Str = appTheme => {
  11. let str = ''
  12. for (const index in appTheme) {
  13. const name = formatToLine(index)
  14. str += `--${name}:${appTheme[index]};`
  15. }
  16. return str
  17. }
  18. export default {
  19. data() {
  20. return {
  21. platform
  22. }
  23. },
  24. computed: {
  25. ...mapGetters(['appTheme']),
  26. appThemeStyle() {
  27. const appTheme = store.getters.appTheme
  28. return appTheme2Str(appTheme)
  29. }
  30. }
  31. }