// pages/IndexFreeCourseDetails/IndexFreeCourseDetails.js const api = require('../../utils/api'); const format = require('../../utils/format'); const store = require('../../utils/store'); Page({ data: { VideoTitle: '', playdata: [], VideoPlayerSrc: '', HiddenVideoControl: true, top: 0, /** 列表上方的更新期数文案,整句来自后台配置 */ updatedText: '', }, onLoad(options) { const seriesNo = options.seriesNo; if (!seriesNo) { wx.switchTab({ url: '/pages/index/index' }); return; } api .getFreeLessons(Number(seriesNo)) .then((list) => { const rows = (list || []).map((item) => ({ coverUrl: item.coverUrl, videoTitle: item.videoTitle, intro: item.intro, publishedAt: format.toDateString(item.publishedAt), duration: item.duration, videoUrl: item.videoUrl, })); this.setData({ playdata: rows, VideoTitle: rows.length ? rows[0].videoTitle || '' : '', updatedText: store.cfg('course.lesson.updated').replace('{n}', rows.length), }); }) .catch((err) => { console.error('[IndexFreeCourseDetails] 加载失败', err); this.setData({ playdata: [] }); }); }, onTapLesson(e) { const item = this.data.playdata[e.currentTarget.dataset.index]; if (!item || !item.videoUrl) { wx.showToast({ title: store.cfg('course.tip.lessonNoVideo'), icon: 'none' }); return; } this.setData({ VideoPlayerSrc: item.videoUrl, HiddenVideoControl: false, top: 420 }); }, onShareAppMessage() { return { title: store.cfg('share.title'), path: '/pages/index/index' }; }, });