state.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { reactive } from 'vue'
  2. import { browser, setAuth } from './helpers/utils'
  3. import { postMessage } from './helpers/native-message'
  4. type status = 'init' | 'login' | 'logout' | 'error'
  5. export const state = reactive({
  6. user: {
  7. status: 'init' as status,
  8. data: {} as any
  9. },
  10. platformType: 'STUDENT' as 'STUDENT' | 'TEACHER' | 'SCHOOL',
  11. clientId: {
  12. STUDENT: 'jmedu-student',
  13. TEACHER: 'jmedu-teacher',
  14. SCHOOL: 'jmedu-school'
  15. },
  16. platformApi: '/api-student' as '/api-student' | '/api-teacher' | '/api-school',
  17. version: '', // 版本号 例如: 1.0.0
  18. ossUploadUrl: 'https://ks3-cn-beijing.ksyuncs.com/',
  19. musicCertStatus: false as boolean, // 是否音乐认证
  20. openLiveStatus: false as boolean // 是否开通直播
  21. })
  22. // 预览上传到oss的地址
  23. export const getOssUploadUrl = (bucket: string) => {
  24. const tmpBucket = bucket || 'gyt'
  25. return `https://${tmpBucket}.ks3-cn-beijing.ksyuncs.com/`
  26. }
  27. export const setLoginInit = () => {
  28. state.user.status = 'init'
  29. state.user.data = null
  30. }
  31. export const setLogin = (data: any) => {
  32. state.user.status = 'login'
  33. state.user.data = data
  34. }
  35. export const setLogout = () => {
  36. state.user.status = 'logout'
  37. state.user.data = null
  38. }
  39. export const setLoginError = () => {
  40. state.user.status = 'error'
  41. state.user.data = null
  42. }
  43. // 用于处理跳转地址,如果是在app内,则打开一个新的webview, 否则跳转连接
  44. export const openDefaultWebView = (url?: string, callBack?: any) => {
  45. if (browser().isApp) {
  46. postMessage({
  47. api: 'openWebView',
  48. content: {
  49. url,
  50. orientation: 1,
  51. isHideTitle: false
  52. }
  53. })
  54. } else {
  55. callBack && callBack()
  56. }
  57. }