// pages/subject/subject.js const app = getApp() const host = app.globalData.host; Page({ /** * 页面的初始数据 */ data: { data:{}, idx:1, ans:[], id:'', show:0, flag:[ {name:'正确',value:'对'}, {name:'错误',value:'错'} ], rePost:0 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // options.id=58 // options.status=1 wx.request({ url: host+'/api/wx/paper/info', data: { id: options.id,order_id:options.order_id}, header: { openid: app.globalData.openid }, method:'GET', success:res=>{ this.setData({ data:res.data.data, ans:res.data.data.post_answer, id:options.id, status:res.data.data.mark_status, time:res.data.data.time_limit, class_id:options.class_id, order_id:options.order_id }) if(this.data.mark_status == 1) return this.countDown(res.data.data.time_limit) } }) }, countDown:function(time){ var m=time-1,s=59,_this=this; var down=setInterval(function(){ s-- if(s==0 && m>0){ m--; s=59 } if(s==0 && m == 0){ clearInterval(down) _this.post(); } _this.setData({ time:m+"分"+s+"秒" }) },1000) }, openAns(){ this.setData({ show:1 }) }, closeAns(){ this.setData({ show:0 }) }, //重做 reDo(){ let data=this.data.data data.questions.forEach(item=>{ item.post_answer='' }) this.setData({ idx:1, status:0, rePost:1, data:data }) this.countDown(this.data.time) }, answer:function(e){ let id = e.target.dataset.id, value = e.detail.value let ans = this.data.ans let data=this.data.data let old=ans.filter(item=>item.id == id) if (old.length>0){ for (let i = 0; i < ans.length; i++) { if (ans[i].id == id) { ans[i].answer = e.detail.value } } }else{ ans.push({ id:id, answer:value }) } data.questions.forEach(item=>{ if(id == item.id){ item.post_answer=value item.post_answer_str='' } }) this.setData({ ans:ans, data:data }) }, // 答题卡题目跳转 skip(e){ this.setData({ idx:e.target.dataset.id+1, show:0 }) }, next:function(){ const idx=this.data.idx+1 const cur = this.data.idx -1 this.setData({ idx:idx }) // if (!this.data.ans[cur].answer){ // wx.showToast({ // title: '请选择答案', // icon: 'none', // duration: 2000 // }) // }else{ // this.setData({ // idx:idx // }) // } }, prev: function () { const idx = this.data.idx - 1 this.setData({ idx: idx }) }, post:function(){ var _this=this,txt='您确认要交卷吗?' if(this.data.ans.length < this.data.data.questions.length){ if(this.data.data.paper_type == 'exam'){ wx.showToast({ title: '您还有题目没有作答,请完成后再交卷!', icon:'none' }) return } txt='您还有题目没有作答,确认要交卷吗?' } let url=host + '/api/wx/postpaper' if(this.data.rePost){ url=host + '/api/wx/paper/retry' } wx.showModal({ title: '交卷确认', content: txt, success(res) { if (res.confirm) { wx.request({ url: url, data: { paper_id: _this.data.id, questions: _this.data.ans }, header: { openid: app.globalData.openid }, method: 'POST', success: res => { console.log(res.data) if (res.data.code == 0) { wx.showModal({ title: res.data.data.score+'分', content: '您本次考试得分', showCancel: false, success(res) { if (res.confirm) { wx.navigateTo({ url: '../online/online?tab=1&class_id='+_this.data.class_id+'&id='+_this.data.order_id, }) } } }) } } }) } } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })