|
@@ -1,93 +1,52 @@
|
|
|
-import { onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
|
|
-import appState from '/src/state'
|
|
|
-import detailState from '/src/pages/detail/state'
|
|
|
-import runtime, * as RuntimeUtils from '/src/pages/detail/runtime'
|
|
|
-import { IPostMessage, listenerMessage, removeListenerMessage } from '/src/helpers/native-message'
|
|
|
-import { permissionPopup } from '/src/subpages/colexiu/popups/permission/permission'
|
|
|
-import { browser } from '/src/helpers/utils'
|
|
|
-import { OrderStatus } from '../index.d'
|
|
|
-import { useClientType, useOriginSearch } from '.'
|
|
|
+import { browser, getDevelopment } from '/src/helpers/utils'
|
|
|
+import { userInfo } from '../App'
|
|
|
+import { Dialog } from 'vant'
|
|
|
+import { postMessage } from '/src/helpers/native-message'
|
|
|
|
|
|
-const browserInfo = browser()
|
|
|
+/** 去会员中心 */
|
|
|
+const gotoMemberCenter = () => {
|
|
|
+ const isDev = getDevelopment()
|
|
|
+ const url = isDev
|
|
|
+ ? `https://ponline.colexiu.com/orchestra-student/#/memberCenter`
|
|
|
+ : `${location.origin}/orchestra-student/#/memberCenter`
|
|
|
+ postMessage({
|
|
|
+ api: 'back',
|
|
|
+ })
|
|
|
+ postMessage({
|
|
|
+ api: 'openWebView',
|
|
|
+ content: {
|
|
|
+ url: url,
|
|
|
+ orientation: 1,
|
|
|
+ },
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* 效验是否开通会员
|
|
|
- * @param type VIP收费或者单曲收费类型
|
|
|
- * @param status 订单状态
|
|
|
- * @param play 后端验证是否可以播放
|
|
|
*/
|
|
|
-export const useFee = (type?: string, status?: OrderStatus) => {
|
|
|
- // console.log('maxtime', type, status)
|
|
|
- const orderStatus: OrderStatus = detailState.activeDetail?.orderStatus || status
|
|
|
- const search = useOriginSearch()
|
|
|
- const setting = (search.setting || {}) as any
|
|
|
- /** 后端返回状态优先级最高 */
|
|
|
- if (detailState.activeDetail?.play || setting.feeType === 'FREE') {
|
|
|
- return
|
|
|
- }
|
|
|
- const clientType = useClientType()
|
|
|
- /** web端无需验证权限 */
|
|
|
- if (!browserInfo.isApp && clientType === 'web') {
|
|
|
- return
|
|
|
- }
|
|
|
- /** VIP收费并且时长大于0天 */
|
|
|
- if (type?.includes('VIP') && appState.user?.membershipDays > 0) {
|
|
|
- return
|
|
|
- }
|
|
|
- /** 单曲收费并且订单状态已付费 */
|
|
|
- if (type?.includes('CHARGE') && orderStatus === 'PAID') {
|
|
|
- return
|
|
|
- }
|
|
|
- /** 获取收费时间 */
|
|
|
- const endtime = ref(-1)
|
|
|
- const lastTime = detailState.times[detailState.times.length - 1]
|
|
|
- if (lastTime) {
|
|
|
- endtime.value = Math.max(10, lastTime.time * detailState.freeRate)
|
|
|
- }
|
|
|
- // if (lastTime && lastTime.noteElement.sourceMeasure.MeasureNumberXML > 5) {
|
|
|
- // for (const time of detailState.times) {
|
|
|
- // if (time.noteElement.sourceMeasure.MeasureNumberXML === 5) {
|
|
|
- // endtime.value = time.time
|
|
|
- // break
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- const onTimeUpdate = (evt?: IPostMessage) => {
|
|
|
- const orderStatus: OrderStatus = detailState.activeDetail?.orderStatus || status
|
|
|
- if (clientType == 'web') {
|
|
|
- return
|
|
|
+export const useFee = () => {
|
|
|
+ const browserInfo = browser()
|
|
|
+ // 学生端验证
|
|
|
+ if (browserInfo.isStudent) {
|
|
|
+ //学生有待激活会员
|
|
|
+ if (!userInfo.membershipDays && userInfo.purchaseMemberRecord) {
|
|
|
+ Dialog.alert({
|
|
|
+ title: '温馨提示',
|
|
|
+ message: '您的团练宝暂未激活,请激活后使用',
|
|
|
+ }).then((val) => {
|
|
|
+ gotoMemberCenter()
|
|
|
+ })
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- if (endtime.value >= 0 && runtime.currentTimeNum >= endtime.value) {
|
|
|
- if (type?.includes('CHARGE') && type.includes('VIP')) { // 会员和单曲购买
|
|
|
- if(orderStatus !== 'PAID' && !(appState.user?.membershipDays > 0)) {
|
|
|
- permissionPopup.active = 'memberAndDemand'
|
|
|
- permissionPopup.show = true
|
|
|
- RuntimeUtils.pause()
|
|
|
- }
|
|
|
- } else if (type === 'CHARGE') { // 单曲购买
|
|
|
- if (orderStatus !== 'PAID') {
|
|
|
- permissionPopup.active = 'demand'
|
|
|
- permissionPopup.show = true
|
|
|
- RuntimeUtils.pause()
|
|
|
- }
|
|
|
- } else if (type === 'VIP') { // 会员
|
|
|
- if (!(appState.user?.membershipDays > 0)) {
|
|
|
- permissionPopup.active = 'member'
|
|
|
- permissionPopup.show = true
|
|
|
- RuntimeUtils.pause()
|
|
|
- }
|
|
|
- }
|
|
|
+ //学生没有会员
|
|
|
+ if (!userInfo.vipMember) {
|
|
|
+ Dialog.alert({
|
|
|
+ title: '温馨提示',
|
|
|
+ message: '您暂未开通团练宝,请开通后使用',
|
|
|
+ }).then(() => {
|
|
|
+ gotoMemberCenter()
|
|
|
+ })
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- // runtime.audiosInstance.event.on('timeupdate', onTimeUpdate)
|
|
|
- // listenerMessage('cloudTimeUpdae', onTimeUpdate)
|
|
|
-
|
|
|
- // onBeforeUnmount(() => {
|
|
|
- // runtime.audiosInstance.event.off('timeupdate', onTimeUpdate)
|
|
|
- // removeListenerMessage('cloudTimeUpdae', onTimeUpdate)
|
|
|
- // })
|
|
|
}
|