main.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import dayjs from 'dayjs'
  4. import 'dayjs/locale/zh-cn'
  5. import router from '../router/index-tenant'
  6. import vueFilter from '@/helpers/vueFilter'
  7. import { postMessage, promisefiyPostMessage } from '@/helpers/native-message'
  8. import 'normalize.css'
  9. import '../styles/index.less'
  10. import '../styles/tenant.less'
  11. import { state } from '@/state'
  12. import { browser, setAuth } from '@/helpers/utils'
  13. import ResizeObserver from 'resize-observer-polyfill'
  14. // 增加判断如果不支持当前依赖再设置即可
  15. if (window.ResizeObserver === undefined) {
  16. window.ResizeObserver = ResizeObserver;
  17. }
  18. const app = createApp(App)
  19. // import Vconsole from 'vconsole'
  20. // const vconsole = new Vconsole()
  21. postMessage({ api: 'setBarStatus', content: { status: 0 } })
  22. postMessage({
  23. api: 'backIconChange',
  24. content: { backIconHide: true }
  25. })
  26. postMessage(
  27. {
  28. api: 'getVersion'
  29. },
  30. (res: any) => {
  31. state.version = res.content.version
  32. }
  33. )
  34. // 判断是否是管乐团学生端,用来获取基础数据
  35. if (browser().isOrchestraStudent) {
  36. // await promisefiyPostMessage({
  37. // api: 'setCache',
  38. // content: {
  39. // key: 'h5-colexiu-token',
  40. // value: ''
  41. // }
  42. // })
  43. // 获取管乐团token
  44. promisefiyPostMessage({ api: 'getUserAccount' }).then((res: any) => {
  45. const content = res.content
  46. state.orchestraInfo.token = content.token.split(' ')[1]
  47. state.orchestraInfo.phone = content.phone
  48. state.orchestraInfo.nickname = content.nickname
  49. state.orchestraInfo.avatar = content.avatar
  50. state.orchestraInfo.unionId = content.unionId || 0
  51. })
  52. // 从缓存里面获取token
  53. promisefiyPostMessage({
  54. api: 'getCache',
  55. content: { key: 'h5-colexiu-token' }
  56. }).then((res: any) => {
  57. const content = res.content
  58. if (content.value) {
  59. setAuth(content.value)
  60. }
  61. })
  62. }
  63. if (browser().isTeacher) {
  64. state.platformType = 'TEACHER'
  65. } else if (browser().isStudent) {
  66. state.platformType = 'STUDENT'
  67. } else {
  68. state.platformType = 'STUDENT'
  69. }
  70. if (state.platformType === 'TEACHER') {
  71. state.platformApi = '/api-teacher'
  72. } else {
  73. state.platformApi = '/api-student'
  74. }
  75. state.projectType = 'tenant'
  76. dayjs.locale('zh-ch')
  77. app.config.globalProperties.$dayjs = dayjs
  78. app.config.globalProperties.$filters = vueFilter
  79. app.use(router)
  80. app.mount('#app')