import request from '@/helpers/request' import { state } from '@/state' import { Button, Empty, Grid, GridItem, Icon, showToast } from 'vant' import { defineComponent, onMounted, reactive } from 'vue' import styles from './index.module.less' import { useRoute, useRouter } from 'vue-router' import { postMessage, promisefiyPostMessage } from '@/helpers/native-message' import iconLook from './image/look.svg' import iconCourse from './image/icon-course.png' import { browser } from '@/helpers/utils' export default defineComponent({ name: 'lessonCourseware', setup() { const route = useRoute() const router = useRouter() const browserInfo = browser() // const catchList = store const data = reactive({ loading: true, list: [] as any }) const getList = async () => { data.loading = true if (route.query.courseScheduleId) { try { const res: any = await request.post( state.platformApi + '/courseSchedule/getCoursewareDetail', { params: { courseScheduleId: route.query.courseScheduleId, coursewareId: route.query.id } } ) if (Array.isArray(res?.data)) { data.list = res.data } } catch (error) {} } else { try { const res: any = await request.post( state.platformApi + '/courseSchedule/myCoursewareDetail/' + route.query.id ) if (Array.isArray(res?.data)) { data.list = res.data } } catch (error) {} } data.loading = false } onMounted(() => { getList() }) const handleClick = async (item: any) => { if (route.query.code === 'select') { console.log('选择课时') setCoursewareDetail(item) return } // const isCache = await checkCache(item) // if (!isCache) return router.push({ path: '/coursewarePlay', query: { id: item.lessonCoursewareDetailId } }) } // 检查课时是否有缓存 const checkCache = async (item: any) => { if (browserInfo.isApp) { const res = await promisefiyPostMessage({ api: 'checkCoursewareCache', content: { lessonCoursewareDetailId: item.lessonCoursewareDetailId, finish: true, rate: 0.2 } }) console.log(res) return res } return true } // 绑定课时 const setCoursewareDetail = async (item: any) => { try { const res: any = await request.post( state.platformApi + '/courseSchedule/setCoursewareDetail', { params: { courseScheduleId: route.query.courseScheduleId, coursewareDetailId: item.lessonCoursewareDetailId } } ) if (res.code === 200) { showToast('保存成功') postMessage({ api: 'back' }) } } catch (error) {} } return () => (
{data.list.map((item: any) => { return (
handleClick(item)}>
{item.coursewareDetailName}
{route.query.code !== 'select' &&
已使用 {item.useNum} 次
}
{route.query.code !== 'select' ? (
{ e.stopPropagation() }}> 缓存
) : (
选择
)} {route.query.code == 'select' && !item.unlock && (
e.stopPropagation()}> 未解锁
)}
) })}
{!data.loading && !data.list.length && }
) } })