import common from '../../utils/util'; import main from '../../utils/main'; const app = getApp(); const arrFontSize=[46,68,108]; var innerAudioContext1; var listTaskFinished = []; //完成的任务 var listTaskReview = []; //需重新复习的任务 var timeStart; //计算时长 Page({ data: { NumberNew: 0, NumberReview: 0, NumberHistory: 0, IsShowNumberInfo: false, }, onLoad: function () { var that = this; that.setData({ Containnerheight: main.getWindowHeight(), IsShowAnswer: [0, 0], CanUndo: 1, }); innerAudioContext1 = wx.createInnerAudioContext(); this.audioCtx = wx.createAudioContext('playAudio'); this.getList(); }, onShow: function () { var that = this; if (that.data.NumberNew == 0 && that.data.NumberReview == 0 && that.data.NumberHistory == 0) { listTaskFinished = []; that.setSoundFile(1); } else{ that.setSoundFile(-1); var list = wx.getStorageSync("CardList"); if (list && list.length>0){ for (var i = 0; i < list.length; i++) { if (that.data.TaskList[0].MiaoguoCardID == list[i].MiaoguoCardID) { var card = {}; that.data.TaskList[0].Content = list[i].Content; that.data.TaskList[0].ContentNew = main.changeStringToView(list[i].Content); that.setData({ TaskList:that.data.TaskList, }); wx.removeStorageSync("CardList"); break; } } } } }, onPullDownRefresh: function () { this.gotoEdit(1); }, setSoundFile: function (isFinish) {//isFinish=1 结束 =0正常 =-1开始 var that = this; var url = "/pages/sounds/"; if (isFinish == 1) { url += "end.mp3"; if (wx.canIUse('setBackgroundColor')) { wx.setBackgroundColor({ backgroundColor: "#a5656e", }); } that.getTaskTime(); } else { url += "short2.mp3"; } if (isFinish>=0){ innerAudioContext1.src = url; innerAudioContext1.play(); } wx.pageScrollTo({ scrollTop: 0, }); }, getList: function () { var task = wx.getStorageSync("TaskToday"); var that = this; var arrNew = task.ListNew; var arrHistory = task.ListHistory; listTaskReview = task.ListReview; var nMax = [1, 1]; if (arrNew.length == 0 || arrHistory.length == 0) { if (arrNew.length == 0) { nMax[0] = 0; } if (arrHistory.length == 0) { nMax[1] = 0; } } else if (arrNew.length >= arrHistory.length) { nMax[0] = Math.floor(arrNew.length / arrHistory.length); } else if (arrNew.length < arrHistory.length) { nMax[1] = Math.floor(arrHistory.length / arrNew.length); } arrNew = common.randomArray(arrNew); arrHistory = common.randomArray(arrHistory); var Len = arrNew.length + arrHistory.length; var list = [], indexNew = 0, indexHistory = 0; for (var i = 0; i < Len; i++) { for (var j = 0; j < nMax[0]; j++) { if (indexNew < arrNew.length) { arrNew[indexNew].IsNew = true; list.push(arrNew[indexNew++]); } } for (var j = 0; j < nMax[1]; j++) { if (indexHistory < arrHistory.length) { arrHistory[indexHistory].IsHistory = true; list.push(arrHistory[indexHistory++]); } } } that.data.NumberReview = listTaskReview.length; if (list.length == 0 && listTaskReview.length > 0) { list.push(listTaskReview.shift()); } list = updateNumberStr(list); listTaskReview = updateNumberStr(listTaskReview); //处理列表 list = formatList(list); listTaskReview = formatList(listTaskReview); var fontSize=0; if (list.length>0) fontSize = list[0].FontSize; that.setData({ NumberNew: arrNew.length, NumberReview: that.data.NumberReview, NumberHistory: arrHistory.length, TaskList: list, FontSize: fontSize, CanUndo: 0, }); listTaskFinished = []; timeStart = new Date(); //起始时间 function formatList(list) { for (var i = 0; i < list.length; i++) { list[i].ContentNew = main.changeStringToView(list[i].Content); } return list; } function replaceStr(data) { var result = ""; if (data.indexOf("d") > 0) { var dayNum = Number(data.replace("d", "")); if (dayNum >= 365) { var year1 = Math.floor(dayNum / 365); var year = year1 + Math.round(10 * (dayNum - year1 * 365) / 365) / 10; result = year + "年"; } else { if (dayNum > 31) { var month1 = Math.floor(dayNum / 30); var month = month1 + Math.round(10 * (dayNum - month1 * 30) / 30) / 10; result = month + "月"; } else result = data.replace("d", "天"); } } else if (data.indexOf("m") > 0) result = data.replace("m", "分钟"); return result; } function updateNumberStr(list) { for (var i = 0; i < list.length; i++) { if (list[i].Number0) list[i].Number0Str = replaceStr(list[i].Number0); if (list[i].Number1) list[i].Number1Str = replaceStr(list[i].Number1); if (list[i].Number2) list[i].Number2Str = replaceStr(list[i].Number2); if (list[i].Number3) list[i].Number3Str = replaceStr(list[i].Number3); } return list; } }, onShowAnswer: function (e) { var start = e.currentTarget.dataset.start; var that = this; if (!(that.data.NumberNew == 0 && that.data.NumberReview == 0 && that.data.NumberHistory == 0)) { if (start) { that.data.IsShowAnswer[0] = 0; that.data.IsShowAnswer[1] = 0; } else { if (!that.data.IsShowAnswer[0] && !that.data.IsShowAnswer[1]) { that.data.IsShowAnswer[0] = 1; if (that.data.TaskList[0].ContentNew.Field[3].length == 0) { that.data.IsShowAnswer[1] = 1; } } else if (that.data.IsShowAnswer[0] && !that.data.IsShowAnswer[1]) { that.data.IsShowAnswer[1] = 1; } } that.setData({ IsShowAnswer: that.data.IsShowAnswer, }); } }, onAddQuestion: function () { wx.navigateTo({ url: './add' }); }, onMore: function () { var that = this; wx.showActionSheet({ itemList: ["详细信息", "编辑笔记"], success(res) { that.gotoEdit(res.tapIndex); }, }) }, gotoEdit:function(tapIndex){ var that = this; //console.log(res.tapIndex); var list = []; that.data.TaskList[0].MiaoguoCardID = that.data.TaskList[0].ID; list.push(that.data.TaskList[0]); wx.setStorageSync("CardList", list); if (tapIndex == 0) { wx.navigateTo({ url: './cardInfo?id=' + that.data.TaskList[0].MiaoguoCardID, }); } else if (tapIndex == 1) { wx.navigateTo({ url: './add?type=edit&id=' + that.data.TaskList[0].MiaoguoCardID, }); } }, onFontSize:function(){ for(var i=0;i 0) { var card = listTaskFinished.pop(); //console.log(card); var that = this; var url = "UndoMiaoguoCard?"; url += "ID=" + card.Card.ID; url += "&UserID=" + app.globalData.userInfo.UserID; url += "&IntervalTime=" + card.IntervalTime; url += "&IntervalDay=" + card.IntervalDay; url += "&RepetitionCoefficient=" + card.RepetitionCoefficient; if (card.Card.FirstTime) url += "&FirstTime=" + card.Card.FirstTime; if (card.Card.LastTime) url += "&LastTime=" + card.Card.LastTime; main.getData(url, function (data) { timeStart = new Date(); card.Card.Number0 = card.Number0Old; card.Card.Number0Str = card.Number0StrOld; card.Card.Number1 = card.Number1Old; card.Card.Number1Str = card.Number1StrOld; card.Card.Number2 = card.Number2Old; card.Card.Number2Str = card.Number2StrOld; card.Card.Number3 = card.Number3Old; card.Card.Number3Str = card.Number3StrOld; if (card.NumberReview < that.data.NumberReview) { listTaskReview.pop(); } that.data.TaskList.unshift(card.Card); var canUndo = 1; if (listTaskFinished.length == 0) canUndo = 0; that.setData({ IsShowAnswer: [0, 0], TaskList: that.data.TaskList, NumberNew: card.NumberNew, NumberReview: card.NumberReview, NumberHistory: card.NumberHistory, CanUndo: canUndo, }); }); wx.showToast({ title: '已返回', icon:'none', }); } that.setSoundFile(0); }, gotoNext: function (e) { var that = this; wx.showLoading({ title: '请稍候', }); var btnnumber = e.currentTarget.dataset.btnnumber; var time = e.currentTarget.dataset.time; var finishCard = {}; finishCard.Card = that.data.TaskList[0]; finishCard.NumberNew = this.data.NumberNew; finishCard.NumberReview = this.data.NumberReview; finishCard.NumberHistory = this.data.NumberHistory; finishCard.Number0Old = this.data.TaskList[0].Number0; finishCard.Number0StrOld = this.data.TaskList[0].Number0Str; finishCard.Number1Old = this.data.TaskList[0].Number1; finishCard.Number1StrOld = this.data.TaskList[0].Number1Str; finishCard.Number2Old = this.data.TaskList[0].Number2; finishCard.Number2StrOld = this.data.TaskList[0].Number2Str; finishCard.Number3Old = this.data.TaskList[0].Number3; finishCard.Number3StrOld = this.data.TaskList[0].Number3Str; //若不是搁置 if (btnnumber != "1") { //若是分钟,则进入复习列表 if (time.lastIndexOf("m") == time.length - 1) { var minute = Number(time.substr(0, time.indexOf("m"))); this.data.TaskList[0].LimitTime = common.formatTime(common.addDate("n", minute, new Date())); //若是新增,则10m 1d 4d if (this.data.TaskList[0].IsNew) { this.data.TaskList[0].Number0 = "10m"; this.data.TaskList[0].Number0Str = "10分钟"; delete this.data.TaskList[0].Number1; delete this.data.TaskList[0].Number1Str; this.data.TaskList[0].Number2 = "1d"; this.data.TaskList[0].Number2Str = "1天"; this.data.TaskList[0].Number3 = "4d"; this.data.TaskList[0].Number3Str = "4天"; this.data.TaskList[0].FirstTime = null; this.data.TaskList[0].LastTime = null; } //若是历史的,则10m 1d else if (this.data.TaskList[0].IsHistory) { this.data.TaskList[0].Number0 = "10m"; this.data.TaskList[0].Number0Str = "10分钟"; delete this.data.TaskList[0].Number1; delete this.data.TaskList[0].Number1Str; this.data.TaskList[0].Number2 = "1d"; this.data.TaskList[0].Number2Str = "1天"; delete this.data.TaskList[0].Number3; delete this.data.TaskList[0].Number3Str; } this.data.TaskList[0].IsReview = true; listTaskReview.push(this.data.TaskList[0]); } //若是天月年 else { var dayNum = Number(time.substr(0, time.indexOf("d"))); var date = common.addDate("d", dayNum, new Date()); this.data.TaskList[0].LimitTime = common.formatTime(date); } } else{ wx.showToast({ title: '已搁置', icon: 'none', }); } //修改学习任务个数 var learningType = 0; if (this.data.TaskList[0].IsReview) { learningType = 2; this.data.NumberReview = listTaskReview.length; } if (this.data.TaskList[0].IsNew) { learningType = 0; this.data.NumberNew--; if (this.data.NumberNew < 0) this.data.NumberNew = 0; } else if (this.data.TaskList[0].IsHistory) { learningType = 1; this.data.NumberHistory--; if (this.data.NumberHistory < 0) this.data.NumberHistory = 0; } if (btnnumber == "1") { learningType = 3; } finishCard.IntervalTime = time; finishCard.BtnNumber = btnnumber; finishCard.LearningType = learningType; //保存上传 var obj = { ID: this.data.TaskList[0].ID, IntervalTime: time, BtnNumber: btnnumber, LearningType: learningType, IsUndo: 0, } this.saveCard(obj, function () { wx.hideLoading(); //添加完成列表,去掉任务列表数据 listTaskFinished.push(finishCard); that.data.TaskList.shift(); that.data.NumberReview = listTaskReview.length; //查看复习卡是否到时间 if (listTaskReview.length > 0 && listTaskReview[0].LimitTime < common.formatTime(new Date()) || that.data.TaskList.length == 0) { that.data.TaskList.unshift(listTaskReview.shift()); } //console.log(JSON.stringify(that.data.TaskList[0])); if (that.data.NumberNew == 0 && that.data.NumberReview == 0 && that.data.NumberHistory == 0) { that.setData({ IsShowAnswer: [0, 0], NumberNew: 0, NumberReview: 0, NumberHistory: 0, CanUndo: 1, }); that.setSoundFile(1); } else { //任务没有完成,下一张卡片 that.setData({ IsShowAnswer: [0, 0], TaskList: that.data.TaskList, NumberNew: that.data.NumberNew, NumberReview: that.data.NumberReview, NumberHistory: that.data.NumberHistory, FontSize: that.data.TaskList[0].FontSize, CanUndo: 1, }); that.setSoundFile(0); } }); }, saveCard: function (obj, callback) { var url = "UpdateMiaoguoCardToday?"; url += "ID=" + obj.ID; url += "&UserID=" + app.globalData.userInfo.UserID; url += "&IntervalTime=" + obj.IntervalTime; url += "&BtnNumber=" + obj.BtnNumber; url += "&LearningType=" + obj.LearningType; url += "&FontSize=" + this.data.TaskList[0].FontSize; var duration = common.diffDate("s", timeStart, new Date()); url += "&Duration=" + duration; url += "&IsUndo=" + obj.IsUndo; if (obj.LastTime) url += "&LastTime=" + obj.LastTime; main.getData(url, function (data) { timeStart = new Date(); callback(); }); }, playSound: function (e) { var that=this; var str = e.currentTarget.dataset.content; var url; if (str.indexOf("英 [") >= 0 || str.indexOf("美 [") >= 0) { str = str.replace("英 [", "["); str = str.replace("美 [", "["); url = e.currentTarget.dataset.soundmark; } else { var url = app.globalData.audioUrlBaidu; url = url.replace("[token]", app.globalData.BaiduToken); url = url.replace("[word]", str); } this.audioCtx.setSrc(url); this.audioCtx.play(); var fieldid = e.currentTarget.dataset.fieldid; var content = that.data.TaskList[0].ContentNew.Field[fieldid]; var selectIndex=0; for (var i = 0; i < content.length;i++){ if (content[i].Type == 'sound'){ if (content[i].Content == e.currentTarget.dataset.content) { content[i].SoundImageName="gif"; selectIndex=i; break; } } } that.setData({ TaskList: that.data.TaskList, }); setTimeout(function(){ content[selectIndex].SoundImageName = "png"; that.data.TaskList[0].ContentNew.Field[fieldid]=content; that.setData({ TaskList: that.data.TaskList, }); },2000); }, getTaskTime: function () { var that=this; var url = "GetMiaoguoTaskTime?"; url += "UserID=" + app.globalData.userInfo.UserID; main.getData(url, function (data) { if (data){ data = common.getMinuteSecond(data); that.setData({ TodayTime: data, }); } }); }, showNumberContainner: function () { this.setData({ IsShowNumberInfo: true, }); }, closeNumberContainner: function () { this.setData({ IsShowNumberInfo: false, }); }, onShareAppMessage: function () { return { title: app.globalData.ShareTitle, path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID, imageUrl: app.globalData.ShareImage, } }, });