123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- // pages/taskDetail/taskDetail.js
- const app = getApp()
- const util = require("../../utils/util")
- const urlDef = require("../../utils/urls")
- const recordManager = wx.getRecorderManager() //录音对象
- const audioContext = wx.createInnerAudioContext() //音频播放对象
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- curStu: null,
- homeworkId: null,
- curVideo: '',
- videoFlag: 0,
- videoContext: '',
- curAudio: '',
- curAudioIndex: -1,
- audioPause: false,
- doTaskFlag: false,
- entity: null,
- teacherFace: '/images/head.png',
- },
- bindfullscreenchange: function () {
- if (this.data.videoFlag == 0) {
- this.setData({
- videoFlag: 1
- })
- } else {
- this.setData({
- videoFlag: 0,
- curVideo: ""
- })
- }
- },
- videoShow: function (e) {
- this.setData({
- curVideo: e.currentTarget.dataset.url
- })
- this.videoContext.requestFullScreen({ // 设置全屏时视频的方向,不指定则根据宽高比自动判断。
- direction: 90 // 屏幕逆时针90度
- });
- },
- showImg: function (e) {
- var list = [];
- this.data.entity.images.map(o => {
- list.push(o.url);
- });
- wx.previewImage({
- urls: list,
- current: e.currentTarget.dataset.url
- })
- },
- showDoneImg: function (e) {
- var list = [];
- this.data.entity.done.images.map(o => {
- list.push(o.url);
- });
- wx.previewImage({
- urls: list,
- current: e.currentTarget.dataset.url
- })
- },
- showMarkImg: function (e) {
- var list = [];
- this.data.entity.mark.images.map(o => {
- list.push(o.url);
- });
- wx.previewImage({
- urls: list,
- current: e.currentTarget.dataset.url
- })
- },
- showAudio: function (e) {
- const index = e.currentTarget.dataset.index
- if (this.data.curAudioIndex != index) {
- this.setData({
- curAudioIndex: index,
- })
- audioContext.src = this.data.entity.records[index].url
- audioContext.play()
- audioContext.onEnded((res) => {
- this.setData({
- curAudioIndex: '-1',
- })
- })
- } else {
- if (this.data.audioPause) {
- audioContext.play()
- this.setData({
- audioPause: false
- })
- } else {
- audioContext.pause()
- this.setData({
- audioPause: true
- })
- }
- }
- },
- bindended: function () {
- this.setData({
- audioPause: 0,
- curAudioIndex: -1,
- curAudio: ''
- })
- },
- bindpause: function () {
- this.setData({
- audioPause: 1
- })
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- let id = options.id;
- this.setData({ homeworkId: id });
- // this.audioContext = wx.createAudioContext('audio-play')
- this.videoContext = wx.createVideoContext('play-video');// 创建 video 上下文 VideoContext 对象。
- const type = options.type
- if (type == 0) {
- this.setData({
- doTaskFlag: true
- })
- }
- this.loadHomework()
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- audioContext.stop()
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- },
- loadHomework: function () {
- const urls = urlDef.urls;
- let stu = wx.getStorageSync('student');
- if (stu) {
- const body = { 'q.homeworkId': this.data.homeworkId, 'q.studentId': stu.studentId }
- // 接收作业(第一次查看有效)
- util.apiPost(urls.homework_receive, body).then((rs) => {
- console.log('接收作业')
- })
- util.apiPost(urls.my_homework, body).then((rs) => {
- let o = rs[0];
- // 解析内容
- let workContents;
- try {
- workContents = JSON.parse(o.homeworkContent);
- } catch (e) {
- workContents = {
- content: o.homeworkContent,
- images: [],
- records: [],
- videos: []
- };
- console.error(e);
- }
- o.homeworkContent = workContents.content;
- if (o.receiveDate) {
- o.receiveDate = o.receiveDate.substring(0, 16).replace('T', ' ')
- }
- o.images = workContents.images == null ? [] : workContents.images;
- o.images.forEach(rs => {
- rs.url = urls.oss_file + 'image/' + rs.url
- });
- o.records = workContents.records == null ? [] : workContents.records;
- o.records.forEach(rs => {
- rs.url = urls.oss_file + 'file/' + rs.url
- });
- o.videos = workContents.videos == null ? [] : workContents.videos;
- o.videos.forEach(v => {
- util.apiPost(urls.video_loadInfo + v.url).then((rs) => {
- v.imgUrl = rs.img
- v.playUrl = rs.url
- this.reloadVideo(v)
- });
- });
- // 完成情况
- let doneContents;
- try {
- doneContents = o.content ? JSON.parse(o.content) : {};
- } catch (e) {
- doneContents = {
- images: [],
- records: [],
- videos: [],
- content: ''
- };
- console.error(e);
- }
- o.done = doneContents;
- o.done.images = doneContents.images == null ? [] : doneContents.images;
- o.done.images.forEach(rs => {
- rs.url = urls.oss_file + 'image/' + rs.url
- });
- o.done.records = doneContents.records == null ? [] : doneContents.records;
- o.done.records.forEach(rs => {
- rs.url = urls.oss_file + 'file/' + rs.url
- });
- o.done.videos = doneContents.videos == null ? [] : doneContents.videos;
- o.done.videos.forEach(v => {
- util.apiPost(urls.video_loadInfo + v.url).then((rs) => {
- v.imgUrl = rs.img
- v.playUrl = rs.url
- this.reloadDoneVideo(v)
- });
- });
- // 批阅情况
- let markContents;
- try {
- markContents = o.markResult ? JSON.parse(o.markResult) : {};
- } catch (e) {
- markContents = {
- images: [],
- records: [],
- videos: [],
- content: ''
- };
- console.error(e);
- }
- o.mark = markContents;
- o.mark.score = o.markScore ? o.markScore : 0
- o.mark.images = markContents.images == null ? [] : markContents.images;
- o.mark.images.forEach(rs => {
- rs.url = urls.oss_file + 'image/' + rs.url
- });
- o.mark.records = markContents.records == null ? [] : markContents.records;
- o.mark.records.forEach(rs => {
- rs.url = urls.oss_file + 'file/' + rs.url
- });
- o.mark.videos = markContents.videos == null ? [] : markContents.videos;
- o.mark.videos.forEach(v => {
- util.apiPost(urls.video_loadInfo + v.url).then((rs) => {
- v.imgUrl = rs.img
- v.playUrl = rs.url
- this.reloadMarkVideo(v)
- });
- });
- this.setData({ entity: o })
- util.apiPost(urls.get_user_head + '&q.personId=' + rs[0].teacherId).then((fs) => {
- if (fs && fs.length > 0) {
- this.setData({ teacherFace: urls.oss_file + 'image/' + fs[0] })
- }
- });
- })
- }
- },
- reloadVideo: function (t) {
- let o = this.data.entity
- let vs = o.videos
- vs.map(v => {
- if (t.url == v.url) {
- v.imgUrl = t.imgUrl
- v.playUrl = t.playUrl
- }
- })
- this.setData({ entity: o })
- },
- reloadDoneVideo: function (t) {
- let o = this.data.entity
- let vs = o.done.videos
- vs.map(v => {
- if (t.url == v.url) {
- v.imgUrl = t.imgUrl
- v.playUrl = t.playUrl
- }
- })
- this.setData({ entity: o })
- },
- reloadMarkVideo: function (t) {
- let o = this.data.entity
- let vs = o.mark.videos
- vs.map(v => {
- if (t.url == v.url) {
- v.imgUrl = t.imgUrl
- v.playUrl = t.playUrl
- }
- })
- this.setData({ entity: o })
- },
- toTask: function(e) {
- wx.navigateTo({
- url: '/pages/doTask/doTask?homeworkId='+ this.data.homeworkId
- })
- }
- })
|