| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- import common from '../../utils/util';
- import main from '../../utils/main';
- const app = getApp();
- 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],
- });
- innerAudioContext1 = wx.createInnerAudioContext();
- this.audioCtx = wx.createAudioContext('playAudio');
- this.getList();
- },
- onShow: function () {
- var that = this;
- if (wx.getStorageSync("CardUpdateOK")) {
- var item = wx.getStorageSync("CardEditItem");
- this.data.TaskList[0].Content = item.Content;
- this.setData({
- TaskList: this.data.TaskList,
- });
- wx.removeStorageSync("CardUpdateOK");
- }
- if (that.data.NumberNew == 0 &&
- that.data.NumberReview == 0 &&
- that.data.NumberHistory == 0) {
- listTaskFinished = [];
- that.setBackColor(1);
- }
- else
- that.setBackColor(-1);
- },
- setBackColor: function (isFinish) {//isFinish=1 结束 =0正常 =-1开始
- var that = this;
- var url = "/pages/sounds/";
- if (isFinish == 1) {
- wx.setNavigationBarColor({
- frontColor: '#ffffff',
- backgroundColor: '#47413D',
- });
- if (wx.canIUse('setBackgroundColor')) {
- wx.setBackgroundColor({
- backgroundColor: '#47413D',
- });
- }
- url += "end.mp3";
- }
- else {
- wx.setNavigationBarColor({
- frontColor: '#ffffff',
- backgroundColor: "#A5656E",
- });
- if (wx.canIUse('setBackgroundColor')) {
- wx.setBackgroundColor({
- backgroundColor: "#A5656E",
- });
- }
- }
- 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);
- wx.setStorageSync("CardEditItem", list[0]);
- //处理列表
- list = formatList(list);
- listTaskReview = formatList(listTaskReview);
- that.setData({
- NumberNew: arrNew.length,
- NumberReview: that.data.NumberReview,
- NumberHistory: arrHistory.length,
- TaskList: list,
- FontSize:list[0].FontSize,
- CanUndo: 0,
- });
- listTaskFinished = [];
- timeStart = new Date(); //起始时间
- function formatList(list) {
- for (var i = 0; i < list.length; i++) {
- list[i].Content = 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].Content.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) {
- console.log(res.tapIndex);
- wx.setStorageSync("CardEditItem", that.data.TaskList[0]);
- if (res.tapIndex == 0) {
- wx.navigateTo({
- url: './cardInfo',
- });
- }
- else if (res.tapIndex == 1) {
- wx.navigateTo({
- url: './add?type=edit'
- });
- }
- else if (res.tapIndex == 2) {
- that.data.TaskList[0].FontSize=46;
- that.setData({
- TaskList: that.data.TaskList,
- });
- }
- else if (res.tapIndex == 3) {
- that.data.TaskList[0].FontSize = 68;
- that.setData({
- TaskList: that.data.TaskList,
- });
- }
- else if (res.tapIndex == 4) {
- that.data.TaskList[0].FontSize = 108;
- that.setData({
- TaskList: that.data.TaskList,
- });
- }
- },
- })
- },
- gotoPrev: function () {
- if (listTaskFinished.length > 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();
- }
- wx.setStorageSync("CardEditItem", card.Card);
- 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,
- });
- });
- }
- that.setBackColor(0);
- },
- gotoNext: function (e) {
- var that = this;
- 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);
- }
- }
- //修改学习任务个数
- 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 () {
- //添加完成列表,去掉任务列表数据
- 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]));
- wx.setStorageSync("CardEditItem", 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.setBackColor(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.setBackColor(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 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();
- },
- showNumberContainner: function () {
- this.setData({
- IsShowNumberInfo: true,
- });
- },
- closeNumberContainner: function () {
- this.setData({
- IsShowNumberInfo: false,
- });
- },
- onShareAppMessage: function () {
- return {
- title: '',
- path: 'pages/miaoguo/default',
- success: function (res) { },
- fail: function (err) {
- console.log(err);
- },
- complete: function (res) {
- console.log(res);
- },
- }
- },
- });
|