state.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. orchestraInfo: {
  11. token: '' as any, phone: '' as any,
  12. installStatus: 0 as any,
  13. nickname: '',
  14. avatar: '',
  15. unionId: 0 // 是否已关联账号
  16. } as any, // 管乐团信息
  17. platformType: '' as 'STUDENT' | 'TEACHER',
  18. platformApi: '/api-student' as '/api-student' | '/api-teacher',
  19. version: '', // 版本号 例如: 1.0.0
  20. ossUploadUrl: 'https://ks3-cn-beijing.ksyuncs.com/',
  21. musicCertStatus: false as boolean, // 是否音乐认证
  22. openLiveStatus: false as boolean // 是否开通直播
  23. })
  24. // 预览上传到oss的地址
  25. export const getOssUploadUrl = (bucket: string) => {
  26. const tmpBucket = bucket || 'daya'
  27. return `https://${tmpBucket}.ks3-cn-beijing.ksyuncs.com/`
  28. }
  29. export const setLoginInit = () => {
  30. state.user.status = 'init'
  31. state.user.data = null
  32. }
  33. export const setLogin = (data: any) => {
  34. state.user.status = 'login'
  35. state.user.data = data
  36. }
  37. export const setLogout = () => {
  38. state.user.status = 'logout'
  39. state.user.data = null
  40. }
  41. export const setLoginError = () => {
  42. state.user.status = 'error'
  43. state.user.data = null
  44. }
  45. // 用于处理跳转地址,如果是在app内,则打开一个新的webview, 否则跳转连接
  46. export const openDefaultWebView = (url?: string, callBack?: any) => {
  47. if (browser().isApp) {
  48. postMessage({
  49. api: 'openWebView',
  50. content: {
  51. url,
  52. orientation: 1,
  53. isHideTitle: false
  54. }
  55. })
  56. } else {
  57. callBack && callBack()
  58. }
  59. }