|
@@ -18,9 +18,12 @@ import queryString from 'query-string';
|
|
|
import { state } from '@/state';
|
|
|
import {
|
|
|
api_lessonDetailCourseware,
|
|
|
- api_classDetailCourseware
|
|
|
+ api_classDetailCourseware,
|
|
|
+ api_coursewareCheckUpdate
|
|
|
} from '../../api';
|
|
|
import SelectCoursewarePop from '@/components/select-courseware-pop';
|
|
|
+import request from '@/helpers/request';
|
|
|
+import CoursewareReload from '../../courseware-reload';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'the-book',
|
|
@@ -29,6 +32,10 @@ export default defineComponent({
|
|
|
type: Object as PropType<any>,
|
|
|
default: () => ({})
|
|
|
},
|
|
|
+ bookLessonId: {
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
+ },
|
|
|
tab: {
|
|
|
type: String,
|
|
|
default: ''
|
|
@@ -46,10 +53,9 @@ export default defineComponent({
|
|
|
default: ''
|
|
|
}
|
|
|
},
|
|
|
- emits: ['close'],
|
|
|
+ emits: ['close', 'confirm'],
|
|
|
setup(props, { emit }) {
|
|
|
const router = useRouter();
|
|
|
- console.log(state.user.data.phone);
|
|
|
const lastTimeKey = 'lastTime' + (state?.user?.data?.phone ?? '');
|
|
|
const debounceSkip = ref(false);
|
|
|
const data = reactive({
|
|
@@ -63,6 +69,7 @@ export default defineComponent({
|
|
|
coursewareList: [] as any
|
|
|
});
|
|
|
const showSelectCourseware = ref(false);
|
|
|
+ const reloadStatus = ref(false);
|
|
|
const showGuide = ref(false);
|
|
|
const isend = ref(false);
|
|
|
const step = ref(0);
|
|
@@ -282,14 +289,32 @@ export default defineComponent({
|
|
|
}
|
|
|
);
|
|
|
|
|
|
+ // 检测是否更新
|
|
|
+ const checkCoursewareUpdate = async () => {
|
|
|
+ if (props.tab === 'course') {
|
|
|
+ const { data } = await api_coursewareCheckUpdate({
|
|
|
+ id: props.bookLessonId
|
|
|
+ });
|
|
|
+ return data || false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ };
|
|
|
+
|
|
|
// 检测有几个课件
|
|
|
const checkCourseware = async (item: any) => {
|
|
|
+ console.log(props.tab, 'tab');
|
|
|
if (item.id) {
|
|
|
if (!item.containMaterial) {
|
|
|
showToast('暂无资源');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ const isUpdate = await checkCoursewareUpdate();
|
|
|
+ if (isUpdate) {
|
|
|
+ reloadStatus.value = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (item.coursewareNum) {
|
|
|
try {
|
|
|
const res =
|
|
@@ -325,6 +350,12 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
const handleOpenPlay = async (item: any) => {
|
|
|
+ const isUpdate = await checkCoursewareUpdate();
|
|
|
+ if (isUpdate) {
|
|
|
+ reloadStatus.value = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (item.id) {
|
|
|
if (debounceSkip.value) return;
|
|
|
debounceSkip.value = true;
|
|
@@ -494,6 +525,18 @@ export default defineComponent({
|
|
|
}}
|
|
|
onSelect={item => handleOpenPlay(item)}></SelectCoursewarePop>
|
|
|
)}
|
|
|
+
|
|
|
+ {reloadStatus.value && (
|
|
|
+ <CoursewareReload
|
|
|
+ onClose={() => {
|
|
|
+ reloadStatus.value = false;
|
|
|
+ }}
|
|
|
+ onConfirm={() => {
|
|
|
+ handleClose();
|
|
|
+ showSelectCourseware.value = false;
|
|
|
+ emit('confirm');
|
|
|
+ }}></CoursewareReload>
|
|
|
+ )}
|
|
|
</div>
|
|
|
);
|
|
|
}
|