index.tsx 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import { Button, showToast, Image } from 'vant'
  2. import { defineComponent, onMounted, reactive } from 'vue'
  3. import { useRoute } from 'vue-router'
  4. import styles from './index.module.less'
  5. import wxBg from './images/wx_bg.png'
  6. import { browser } from '@/helpers/utils'
  7. import student from './images/student-center.png'
  8. import teacher from './images/teacher-center.png'
  9. import manage from './images/manage-center.png'
  10. import request from '@/helpers/request'
  11. // 唤起前缀
  12. // BandMusicTeam:// 管乐团
  13. // BandMusicTeamTeacher://
  14. // BandMusicTeamManager://
  15. export default defineComponent({
  16. name: 'download',
  17. setup() {
  18. const route = useRoute()
  19. const state = reactive({
  20. wxStatus: false,
  21. androidUrl: '',
  22. type: 'student',
  23. buttonText: '下载管乐团学员端'
  24. })
  25. const onDownload = () => {
  26. if (browser().weixin) {
  27. state.wxStatus = true
  28. return
  29. }
  30. let urlIos = ''
  31. let urlAndroid = ''
  32. if (location.origin.indexOf('online.lexiaoya.cn') > -1) {
  33. if (state.type === 'student') {
  34. urlIos = 'https://apps.apple.com/cn/app/%E7%AE%A1%E4%B9%90%E5%9B%A2/id1671474346?uo=4 '
  35. urlAndroid = state.androidUrl //'https://oss.dayaedu.com/appstore/gyt-student.apk'
  36. } else if (state.type === 'teacher') {
  37. urlIos =
  38. 'https://apps.apple.com/cn/app/%E7%AE%A1%E4%B9%90%E5%9B%A2%E4%BC%B4%E5%AD%A6%E7%AB%AF/id1670584741?uo=4'
  39. urlAndroid = state.androidUrl //'https://oss.dayaedu.com/appstore/gyt-teacher.apk'
  40. } else if (state.type === 'manage') {
  41. urlIos =
  42. 'https://apps.apple.com/cn/app/%E7%AE%A1%E4%B9%90%E5%9B%A2%E7%AE%A1%E7%90%86%E7%AB%AF/id1671473981?uo=4'
  43. urlAndroid = state.androidUrl //'https://oss.dayaedu.com/appstore/gyt-manager.apk'
  44. }
  45. } else {
  46. if (state.type === 'student') {
  47. urlIos = 'https://www.pgyer.com/2Wg2'
  48. urlAndroid = state.androidUrl //'https://www.pgyer.com/9NBz'
  49. } else if (state.type === 'teacher') {
  50. urlIos = 'https://www.pgyer.com/v5yB'
  51. urlAndroid = state.androidUrl //'https://www.pgyer.com/BQeE'
  52. } else if (state.type === 'manage') {
  53. urlIos = 'https://www.pgyer.com/DGrR'
  54. urlAndroid = state.androidUrl //'https://www.pgyer.com/TEWv'
  55. }
  56. }
  57. if (browser().ios || /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
  58. urlIos && (window.location.href = urlIos)
  59. } else if (/(Android)/i.test(navigator.userAgent)) {
  60. window.location.href = urlAndroid
  61. } else {
  62. showToast('请用手机或移动设备打开')
  63. }
  64. }
  65. onMounted(async () => {
  66. const type: any = route.query.type
  67. state.type = type ? type : 'student'
  68. let platform = 'android-student'
  69. if (type === 'student') {
  70. state.buttonText = '下载管乐团学员端'
  71. platform = 'android-student'
  72. } else if (type === 'teacher') {
  73. state.buttonText = '下载管乐团伴学端'
  74. platform = 'android-teacher'
  75. } else if (type === 'manage') {
  76. state.buttonText = '下载管乐团管理端'
  77. platform = 'android-school'
  78. }
  79. try {
  80. const { data } = await request.get(
  81. '/api-student/open/appVersionInfo/queryLatestByPlatform',
  82. {
  83. params: {
  84. platform,
  85. status: 'history'
  86. }
  87. }
  88. )
  89. state.androidUrl = data.downloadUrl
  90. } catch {
  91. //
  92. }
  93. document.title = state.buttonText
  94. })
  95. return () => (
  96. <div class={[styles.downloadContainer]}>
  97. {state.type !== 'teacher' && state.type !== 'manage' && <Image src={student} />}
  98. {state.type === 'teacher' && <Image src={teacher} />}
  99. {state.type === 'manage' && <Image src={manage} />}
  100. <div class={styles.buttonGroup}>
  101. <Button round size="large" color="#FF8057" class={styles.btn} onClick={onDownload}>
  102. {state.buttonText}
  103. </Button>
  104. </div>
  105. {state.wxStatus && (
  106. <div
  107. class={styles.wxpopup}
  108. onClick={() => {
  109. state.wxStatus = false
  110. }}
  111. >
  112. <img src={wxBg} alt="" />
  113. </div>
  114. )}
  115. </div>
  116. )
  117. }
  118. })