|
@@ -12,7 +12,7 @@ import {
|
|
|
import styles from './index.module.less';
|
|
|
import 'plyr/dist/plyr.css';
|
|
|
import request from '@/helpers/request';
|
|
|
-import { state } from '@/state';
|
|
|
+import { handleShowVip, state } from '@/state';
|
|
|
import { useRoute } from 'vue-router';
|
|
|
import iconBack from '../coursewarePlay/image/back.svg';
|
|
|
import {
|
|
@@ -20,13 +20,11 @@ import {
|
|
|
postMessage,
|
|
|
promisefiyPostMessage
|
|
|
} from '@/helpers/native-message';
|
|
|
-// import { browser } from '@/helpers/utils';
|
|
|
import { Vue3Lottie } from 'vue3-lottie';
|
|
|
import playLoadData from '../coursewarePlay/datas/data.json';
|
|
|
import VideoClass from './video-class';
|
|
|
import { usePageVisibility } from '@vant/use';
|
|
|
import { useInterval, useIntervalFn } from '@vueuse/core';
|
|
|
-import { handleCheckVip, hasVip } from '../hook/useFee';
|
|
|
|
|
|
// const materialType = {
|
|
|
// 视频: 'VIDEO',
|
|
@@ -103,7 +101,7 @@ export default defineComponent({
|
|
|
item: null as any
|
|
|
});
|
|
|
// 获取课后练习记录
|
|
|
- const getTrainingRecord = async () => {
|
|
|
+ const getTrainingRecord = async (materialId?: any) => {
|
|
|
try {
|
|
|
// ?${query.courseScheduleId}?userId=${state.user?.data?.id}
|
|
|
const res: any = await request.post(
|
|
@@ -131,7 +129,7 @@ export default defineComponent({
|
|
|
if (item.times > item.trainingTimes) {
|
|
|
data.isPlayAll = false;
|
|
|
}
|
|
|
- if (item.id + '' == route.query.materialId) {
|
|
|
+ if (item.id + '' == (materialId || route.query.materialId)) {
|
|
|
popupData.tabName = item.musicScoreName;
|
|
|
}
|
|
|
});
|
|
@@ -142,7 +140,7 @@ export default defineComponent({
|
|
|
}
|
|
|
return [];
|
|
|
};
|
|
|
- const setRecord = async (trainings: any[]) => {
|
|
|
+ const setRecord = async (trainings: any[], materialId?: any) => {
|
|
|
if (Array.isArray(trainings)) {
|
|
|
data.trainings = trainings.map((n: any) => {
|
|
|
// const materialRefs = n.materialRefs ? n.materialRefs : [];
|
|
@@ -157,13 +155,13 @@ export default defineComponent({
|
|
|
loop: false,
|
|
|
videoEle: null,
|
|
|
timer: null,
|
|
|
- muted: hasVip() ? false : true, // 静音
|
|
|
+ muted: n.useStatus === "LOCK" ? false : true, // 静音
|
|
|
// muted: true,
|
|
|
- autoplay: hasVip() ? true : false //自动播放
|
|
|
+ autoplay: n.useStatus === "LOCK" ? true : false //自动播放
|
|
|
};
|
|
|
});
|
|
|
data.itemList = data.trainings.filter(
|
|
|
- (n: any) => n.id == route.query.materialId
|
|
|
+ (n: any) => n.id == materialId || route.query.materialId
|
|
|
);
|
|
|
data.videoData = data.itemList[0];
|
|
|
if (data.disableScreenRecordingFlag === '1') {
|
|
@@ -201,7 +199,7 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- // 获取支付渠道
|
|
|
+ // 获取是否录屏
|
|
|
const sysParamConfig = async () => {
|
|
|
try {
|
|
|
const res = await request.get(
|
|
@@ -284,13 +282,12 @@ export default defineComponent({
|
|
|
await sysParamConfig();
|
|
|
const trainings = await getTrainingRecord();
|
|
|
// 初始化状态
|
|
|
- // console.log(trainings, 'trainings');
|
|
|
+
|
|
|
setRecord(trainings);
|
|
|
- // 是否为会员
|
|
|
+ // 是否解锁
|
|
|
if (state.platformType === 'STUDENT') {
|
|
|
- data.isMember = handleCheckVip();
|
|
|
- // console.log(data.isMember, 'isMember');
|
|
|
- if (!data.isMember) {
|
|
|
+ if(data.videoData.useStatus === "LOCK") {
|
|
|
+ handleShowVip(data.videoData.lessonCoursewareId, "LESSON", "exercise")
|
|
|
nextTick(() => {
|
|
|
postMessage({
|
|
|
api: 'courseLoading',
|
|
@@ -418,7 +415,6 @@ export default defineComponent({
|
|
|
data.visiableConfirmText = isLastIndex ? '完成' : '下一题';
|
|
|
data.visiableStatus = true;
|
|
|
data.itemIndex = itemIndex;
|
|
|
- console.log(itemIndex, 'index');
|
|
|
data.isLastIndex = isLastIndex;
|
|
|
}
|
|
|
};
|
|
@@ -431,7 +427,11 @@ export default defineComponent({
|
|
|
}
|
|
|
data.itemList = [nextItem];
|
|
|
data.videoData = nextItem;
|
|
|
- handleExerciseCompleted();
|
|
|
+ if(data.videoData.useStatus === "UNLOCK") {
|
|
|
+ handleShowVip(data.videoData.lessonCoursewareId, "LESSON", "exercise")
|
|
|
+ } else {
|
|
|
+ handleExerciseCompleted();
|
|
|
+ }
|
|
|
} else {
|
|
|
postMessage({ api: 'goBack' });
|
|
|
}
|
|
@@ -447,6 +447,28 @@ export default defineComponent({
|
|
|
data.visiableStatus = false;
|
|
|
};
|
|
|
|
|
|
+ const reloadPage = async () => {
|
|
|
+ if(state.vipShow) return
|
|
|
+ const trainings = await getTrainingRecord(data.videoData.lessonCoursewareId);
|
|
|
+ setRecord(trainings, data.videoData.lessonCoursewareId);
|
|
|
+ // 是否解锁
|
|
|
+ if (state.platformType === 'STUDENT') {
|
|
|
+ if(data.videoData.useStatus === "LOCK") {
|
|
|
+ handleShowVip(data.videoData.lessonCoursewareId, "LESSON", "exercise")
|
|
|
+ nextTick(() => {
|
|
|
+ postMessage({
|
|
|
+ api: 'courseLoading',
|
|
|
+ content: {
|
|
|
+ show: false,
|
|
|
+ type: 'fullscreen'
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
watch(pageVisibility, (value: any) => {
|
|
|
handleStopVideo();
|
|
|
if (value == 'visible') {
|
|
@@ -462,6 +484,7 @@ export default defineComponent({
|
|
|
// console.log(234);
|
|
|
}
|
|
|
);
|
|
|
+ reloadPage()
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -513,7 +536,6 @@ export default defineComponent({
|
|
|
clearTimeout(activeData.timer);
|
|
|
activeData.model = true;
|
|
|
videoIntervalRef.pause();
|
|
|
- console.log('11111');
|
|
|
}}
|
|
|
onEnded={() => addTrainingRecord()}
|
|
|
onChangeModal={(status: boolean) => {
|