state.ts 1.5 KB

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