import common from '../../utils/util'; import server from '../../utils/main'; const app = getApp(); var currentIndex = 0, tempCurrentIndex = -1; var audioArray = []; var AnswerID = 0; Page({ data: { version: app.globalData.version, IsPlaying: 0, PlayStr: "本", selectTab0: "btn1", selectTab1: "", selectTab2: "", }, onLoad: function (options) { var that = this; this.audioCtxNumber = wx.createAudioContext('numberAudio'); this.setData({ Containnerheight: server.getWindowHeight(), IsPlaying: 0, }); audioArray = []; currentIndex = 0; tempCurrentIndex = -1; AnswerID = options.id; this.getItem(); wx.setNavigationBarTitle({ title: "试卷答案 " + AnswerID, }); common.getStorageValue(this, "HelpHidden6", false, function () { that.showHelp(); }); }, onUnload: function () { this.closeHelp(); var list = wx.getStorageSync("AnswerList"); if (list && list.length > 0) { for (var i = 0; i < list.length; i++) { if (AnswerID == list[i].AnswerID) { list[i] = this.data.AnswerItem; wx.setStorageSync("AnswerList", list); break; } } } }, scrollTop: function (e) { var id = Number(e.currentTarget.dataset.id); var selectTab0 = "", selectTab1 = "", selectTab2 = ""; if (id == 0) selectTab0 = "btn1"; else if (id == 1) selectTab1 = "btn1"; else if (id == 2) selectTab2 = "btn1"; this.setData({ selectTab0: selectTab0, selectTab1: selectTab1, selectTab2: selectTab2, }); var top = 0; var query = wx.createSelectorQuery(); query.select('#panelRowTop' + id).boundingClientRect(); query.selectViewport().scrollOffset(); query.exec(function (res) { top = res[0].top + res[1].scrollTop wx.pageScrollTo({ scrollTop: top, duration: 500 }); }); }, getItem: function () { var that = this; var list = wx.getStorageSync("AnswerList"); if (list && list.length > 0) { var item; for (var i = 0; i < list.length; i++) { if (AnswerID == list[i].AnswerID) { item = list[i]; break; } } var list = item.QuestionList; for (var i = 0; i < list.length; i++) { if (i == 0 && list[i].Vertical && item.Category > 0) { list[i].IsShowVertical = true; } if (item.Category == -1) list[i].ErrorClass = ""; } var list = item.QuestionList; for (var i = 0; i < list.length; i++) { if (list[i].OperateAB == '÷' && list[i].Vertical) { list[i].LineLength = list[i].A.toString().length; for (var k = 0; k < list[i].Vertical[1].Array.length; k++) { list[i].Vertical[1].Array[k] = ""; } for (var k = 0; k < list[i].Vertical[2].Array.length; k++) { if (list[i].Vertical[2].Array[k] == "√" && list[i].Vertical[2].Array[list[i].Vertical[2].Array.length - 1] != "√") { list[i].Vertical[2].Array[k] = ""; list[i].Vertical[2].Array.push("√"); break; } } } } var pageNum = 0; if (item.QuestionList.length % 3 == 0) pageNum = item.QuestionList.length / 3; else if (item.QuestionList.length % 3 == 1) pageNum = (item.QuestionList.length + 2) / 3; else if (item.QuestionList.length % 3 == 2) pageNum = (item.QuestionList.length + 1) / 3; that.setData({ AnswerItem: item, PageColumnNum: pageNum, }); } }, selectedItem: function (e) { var id = e.currentTarget.dataset.id; var list = this.data.AnswerItem.QuestionList; for (var i = 0; i < list.length; i++) { if (id == list[i].ID) { list[i].IsShowVertical = !list[i].IsShowVertical; } else { list[i].IsShowVertical = false; } } this.data.AnswerItem.QuestionList = list; this.setData({ AnswerItem: this.data.AnswerItem, }); }, setErrorItem: function (e) { var id = e.currentTarget.dataset.id; var list = this.data.AnswerItem.QuestionList; for (var i = 0; i < list.length; i++) { if (id == list[i].ID) { if (!list[i].ErrorClass || list[i].ErrorClass == "") { list[i].ErrorClass = "ErrorClass"; wx.showToast({ title: "记号已保存", duration: 1000 }); this.saveErrorList(list[i], "add"); } else { list[i].ErrorClass = ""; wx.showToast({ title: "记号已消除", duration: 1000 }); this.saveErrorList(list[i], "delete"); } break; } } this.data.AnswerItem.QuestionList = list; this.setData({ AnswerItem: this.data.AnswerItem, }); }, saveErrorList: function (item, action) { var list = wx.getStorageSync("ErrorList"); if (!list) list = []; var b = false; for (var i = 0; i < list.length; i++) { if (item.A == list[i].A && item.B == list[i].B && item.R == list[i].R && item.OperateAB == list[i].OperateAB) { if (item.C) { if (item.C == list[i].C && item.OperateBC == list[i].OperateBC) { if (item.D) { if (item.D == list[i].D && item.OperateCD == list[i].OperateCD) { b = true; } } else b = true; } } else b = true; } if (b) { list.splice(i, 1); break; } } if (action == "add") { item.ID = new Date().getTime(); list.unshift(item); } wx.setStorageSync("ErrorList", list); }, showImage: function (e) { var that = this; wx.previewImage({ current: that.data.AnswerItem.TempImagePath, // 当前显示图片的http链接 urls: [that.data.AnswerItem.TempImagePath] // 需要预览的图片http链接列表 }); }, playAudioStart: function () { if (this.data.IsPlaying == 1) { this.audioCtxNumber.pause(); } else if (this.data.IsPlaying == -1) { this.audioCtxNumber.play(); } else if (this.data.IsPlaying == 0) { server.playSound("/sounds/startend.mp3"); var arr = []; var item = this.data.AnswerItem; var list = item.QuestionList; for (var i = 0; i < list.length; i++) { if (i % this.data.PageColumnNum == 0) { if (i > 0) { arr.push(""); audioArray.push(arr); arr = []; } arr.push("第" + (1 + Math.floor(i / this.data.PageColumnNum)) + "列"); } var str = list[i].Result; if (str.toString().indexOf("......") > 0) { str = str.toString().replace("......", "”余数"); str = "商“" + str; } arr.push(str); } arr.push(""); audioArray.push(arr); this.playAudioAll(); } if (this.data.IsPlaying == 1) this.data.IsPlaying = -1; else this.data.IsPlaying = 1; this.setData({ IsPlaying: this.data.IsPlaying, }); }, playAudioAll: function () { if (currentIndex >= 3) { currentIndex = 0; this.setData({ IsPlaying: true, }); server.playSound("/sounds/startend.mp3"); return; } else { server.playAudio(this.audioCtxNumber, audioArray[currentIndex].join(","), 1); } }, onPlayEnded: function (e) { currentIndex++; this.playAudioAll(); }, playPrev: function () { var playstr = "本"; if (currentIndex > 0 && tempCurrentIndex == currentIndex) { currentIndex--; } else { tempCurrentIndex = currentIndex; playstr = "前"; if (currentIndex <= 0) playstr = "本"; } this.playAudioAll(); this.setData({ PlayStr: playstr, }); }, showHelp: function () { if (!this.data.HelpHidden6) { this.audioCtx = wx.createAudioContext('myAudio'); var str = "对答案可以用听的也可以用看的。答案在左边,题目在右边。想给做错的题目打记号,就点击答案左侧的1、2、3……题目序号,这样就可以去首页的错题集里复习它们了。还有一个特殊功能!在有竖式题目的情况下,题目右侧会有这样的图标 ,点它就能提供完整的解题步骤,这个独门神器是倾力为你准备的,对找出错误所在非常有效。"; server.playAudio(this.audioCtx, str); } }, closeHelp: function () { this.setData({ HelpHidden6: true, }); wx.setStorageSync("HelpHidden6", true); this.audioCtx = wx.createAudioContext('myAudio'); this.audioCtx.pause(); }, onShareAppMessage: function () { return { title: app.globalData.ShareTitle, path: 'pages/index/index?UserID=' + app.globalData.userInfo.UserID, imageUrl: app.globalData.ShareImageUrl, } }, })