import { formatSeconds } from '../../../utils/util.js' let app = getApp() Page({ data: { list: [], preList:["A","B","C", "D"], info:{}, timer: null, doTime: 0, remainTime: 0, remainTimeStr: '', modalShow: false, result: {}, startTime: "", timeOutShow: false }, onLoad: function(options) { let groupId = +options.id||3 let _this = this app.formPost('Exam.examStart', {groupId}).then(res => { let list = res.data.list.map(item=>{ delete( item["select"]) return item }).sort( (i,j) =>{ return i.type > j.type?1:-1; }) if (res.code ==200) { _this.setData({ list: list, info: res.data.info, startTime: res.data.startTime, remainTime: res.data.info.duration }); _this.timeReduce() } }) }, timeReduce() { let _this = this let timer = setInterval(function() { let remainTime = _this.data.remainTime if (remainTime <= 0) { _this.timeOut() } else { _this.setData({ remainTime: remainTime - 1, remainTimeStr: formatSeconds(remainTime), doTime: _this.data.doTime + 1 }); } }, 1000) _this.setData({ timer: timer }); }, onUnload() { clearInterval(this.data.timer) }, returnRecord() { wx.reLaunch({ url: '/pages/record/index', }); }, timeOut() { clearInterval(this.data.timer) this.setData({ timeOutShow: true }); }, radioChange( e ){ let index = e.currentTarget.dataset.index; let list = this.data.list list[index].select = +e.detail.value this.setData( {list} ); }, checkboxChange( e ){ let index = e.currentTarget.dataset.index; let list = this.data.list list[index].select = e.detail.value.sort() this.setData( {list} ); }, formSubmit: function(e) { let _this = this let force = this.data.remainTime < 3; let isFinish = true; wx.showLoading({ title: '提交中', mask: true }) let info = this.data.info; let param ={}; param.groupId = info.groupId; param.answers = []; param.result = []; param.correct = 0; param.errIds = [] param.counter = this.data.list.length param.groupName = info.title; param.useTime = this.data.doTime param.duration = info.duration param.startTime = this.data.startTime; for( let i=0; i< this.data.list.length; i++){ let item = this.data.list[i]; param.answers.push( item.answerId ); if( !item.select ){ param.result.push(0); }else if( item.type ==1 || item.type == 3 ){ param.result.push( parseInt(item.select) || 0) }else{ param.result.push( parseInt(item.select.join("")) ||0 ) } if( param.result[i] == item.result){ param.correct += 1 }else{ param.errIds.push( item.answerId) } if( !item.select ) isFinish = false } if( !isFinish && !force){ app.message("还未完成", 'error') wx.hideLoading() return } if (this.data.timer) { clearInterval(this.data.timer) } param.result = param.result.join(",") param.answers = param.answers.join(",") app.formPost('Exam.ExamSubmit', param) .then(res => { if (res.code === 200) { _this.setData({ modalShow: true, result:param, }); } else { app.message(res.data, 'error') } wx.hideLoading() }).catch(e => { wx.hideLoading() app.message(e, 'error') }) } })