| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574 |
- 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 () {
- wx.hideShareMenu();
- 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 () {
- },
- 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'
- });
- },
- gotoEdit:function(){
- 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);
- wx.navigateTo({
- url: './add?type=edit&id=' + that.data.TaskList[0].MiaoguoCardID,
- });
- },
- onFontSize:function(){
- for(var i=0;i<arrFontSize.length;i++){
- if (arrFontSize[i] == this.data.TaskList[0].FontSize){
- i++;
- if (i==arrFontSize.length)
- i=0;
- this.data.TaskList[0].FontSize = arrFontSize[i];
- break;
- }
- }
-
- this.setData({
- TaskList: this.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();
- }
- 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,
- }
- },
- });
|