import common from '../../utils/util'; import main from '../../utils/main'; const app = getApp(); var field = [[], [], [], []]; var arrTag = []; var tempCursor = 0, btnName = ""; var arrSoundMark = []; var isUnload = true; var isEdit = true; Page({ data: { PracticeTimeStr:"智能安排", HiddenFieldEdit:true, FieldContent: "", SoundSign: "[读]", LineSign: "[线]", BtnArray: ["+", "-", "×", "÷", "=", "<", ">"], }, onLoad: function (options) { wx.hideShareMenu(); var that = this; that.setData({ Containnerheight: main.getWindowHeight(), UpdateType: options.type, MiaoguoCardID: options.id, }); var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) { wx.setStorageSync("TempCardInfo", list[i]); break; } } app.globalData.TempFieldNumber=0; app.globalData.TempMiaoguoCardID=that.data.MiaoguoCardID; }, onShow: function () { var that = this; if (that.data.UpdateType == "add") { that.initAddCard(); } else { var card = {},content=""; var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) { card = main.changeStringToView(list[i].Content); card.MiaoguoCardID = list[i].MiaoguoCardID; card.LimitTime = list[i].LimitTime; if (that.data.FieldNumber && that.data.FieldNumber>0) content = main.encryptUrl(list[i].Content[that.data.FieldNumber].Content); break; } } that.setData({ MiaoguoCardID: card.MiaoguoCardID, Field: card.Field, Tags: card.Tags, FieldContent:content, }); if (that.data.UpdateType != "add2") { wx.setNavigationBarTitle({ title: '编辑题卡' }); } } }, onUnload: function () { field = [[], [], [], []]; var card = wx.getStorageSync("TempCardInfo"); if (card) { var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) { list[i] = card; break; } } app.globalData.CardList=list; wx.removeStorageSync("TempCardInfo"); } }, onClose: function () { wx.navigateBack({ delta: 1, }); }, gotoAddItem: function (e) { var that=this; var fieldid = e.currentTarget.dataset.fieldid; var content; var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) { content = main.encryptUrl(list[i].Content[fieldid].Content); break; } } that.setData({ HiddenFieldEdit: false, Focus: true, FieldNumber: fieldid, FieldContent:content, }); wx.setNavigationBarTitle({ title: '编辑 段落' + fieldid, }); }, onSearch: function (e) { app.globalData.TempFieldNumber = 0; wx.navigateTo({ url: './searchWeb', }) }, onPreview: function (e) { var that = this; if (that.data.Field[1] == "") { wx.showToast({ title: '第一段必填', image: "../images/universalpic_wrong_white_120x120.png", }); } else { wx.navigateTo({ url: './preview?type=preview&id=' + this.data.MiaoguoCardID, }); } }, switch1Change(e) { var str="智能安排"; if (e.detail.value){ str="今日必练"; } this.setData({ IsTodayStudy: e.detail.value, }); }, saveCard: function () { var that = this; if (that.data.Field[1] == "") { wx.showToast({ title: '第一段必填', image: "../images/universalpic_wrong_white_120x120.png", }); } else { that.uploadImageAll(that.data.Field, function (field) { that.data.Field=field; var userid = app.globalData.userInfo.UserID; var isTodayStudy = 0; if (that.data.IsTodayStudy && that.data.UpdateType == "add2") isTodayStudy = 1; var tags = []; for (var i = 0; i < that.data.Tags.length; i++) { if (that.data.Tags[i]) tags.push(that.data.Tags[i]); } var param1 = { Tags: tags, Field1: "", Field2: "", Field3: "", IsTodayStudy: isTodayStudy, ID: that.data.MiaoguoCardID, }; for (var i = 1; i <= 3; i++) { for (var key in that.data.Field[i]) { var item = that.data.Field[i][key]; var str = ""; if (item.Type == "image") { str = "[图]" + item.Content + "[/图]"; } else if (item.Type == "line") { for (var j = 0; j < item.Content.length; j++) { if (item.Content[j].key == "normal") str += item.Content[j].value; if (item.Content[j].key == "line") { str += "[线]" + item.Content[j].value + "[/线]"; } } } else if (item.Type == "sound") { if (item.SoundMark) str = "[读 src='" + item.SoundMark + "']" + item.Content + "[/读]"; else str = "[读]" + item.Content + "[/读]"; } else if (item.Type == "normal") { str = item.Content; } else if (item.Type == "return") { str = "\n"; } param1["Field" + i] += str; } param1["Field" + i] = main.changeViewToString(param1["Field" + i]); } that.saveLocalCardList(param1); // var param2 = { // param: common.Encrypt(JSON.stringify(param1)) // } main.postData('AddMiaoguoCard?Type=' + that.data.UpdateType + '&UserID=' + userid, param1, function (data) { if (that.data.UpdateType == "edit" || that.data.UpdateType == "edit2") { that.onClose(); } else { wx.showToast({ title: '已保存!', image: "../images/universalpic_saved_white_120x120.png", }); if (that.data.UpdateType == "add2") { that.initAddCard(); } var taskToday = app.globalData.TaskToday; taskToday.CardNumber++; app.globalData.TaskToday=taskToday; that.setData({ IsTodayStudy:false, }) } wx.removeStorageSync("TempCardInfo"); }); }); } }, uploadImageAll: function (arr, callback) { var that=this; var arrSource=[], arrResult=[]; for(var i=0;i=0 || arr[i][j].ContentServer.indexOf("baidu.com")>=0 ){ arrResult.push(arr[i][j].ContentServer); } else{ that.uploadImage(arr[i][j].Content, function (data) { //console.log("Target:"+data); data = app.globalData.uploadImageUrl + data; arrResult.push(data); }); } } } } var interval=setInterval(function(){ //console.log(arrResult.length); if (arrResult.length >= arrSource.length){ clearInterval(interval); var ari=0; for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr[i].length; j++) { if (arr[i][j].Type == "image" && arr[i][j].Content) { var tempUrl = arr[i][j].Content; var serverUrl = arrResult[ari++]; main.saveTempImage(serverUrl, tempUrl); arr[i][j].Content = serverUrl; arr[i][j].ContentServer = serverUrl; } } } //console.log(JSON.stringify(arr)); callback(arr); } },500); }, uploadImage:function(file,callback){ var url = common.Encrypt("MiaoguoUploadFile"); wx.uploadFile({ url: app.globalData.serverUrl + url, filePath: file, name: 'file', success(res) { wx.hideLoading(); callback(res.data); }, fail: function (err) { wx.hideLoading(); wx.showModal({ title: '上传图片失败', showCancel: false, content: JSON.stringify(err), }); } }); }, saveLocalCardList:function(param1){ var that=this; var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) { for (var j = 0; j < 4; j++) { if (j == 0){ if (param1.tags && param1.tags.length > 0) list[i].Content[j].Content = param1.tags.join(","); } else list[i].Content[j].Content = param1["Field" + j]; } app.globalData.CardList=list; break; } } }, initAddCard: function () { var card = {}; card.MiaoguoCardID = 0; card.Content = []; for (var i = 0; i < 4; i++) { var obj = {}; obj.ContentType = i; obj.Content = []; card.Content.push(obj); } app.globalData.CardList=[card]; this.setData({ MiaoguoCardID: 0, Field: [[], [], [], []], Tags: [], UpdateType: "add2", }); }, onBindError: function (e) { for (var i = 1; i < this.data.Field.length; i++) { for (var j = 0; j < this.data.Field[i].length; j++) { if (this.data.Field[i][j].Type == "image") { this.data.Field[i][j].Url = this.data.Field[i][j].Content; } } } this.setData({ Field: this.data.Field, }); }, deleteItem: function (e) { var that = this; var index = e.currentTarget.dataset.id; wx.showModal({ title: '提醒', content: '记号“'+that.data.Tags[index]+'”要删除吗?', success(res) { if (res.confirm) { that.data.Tags.splice(index, 1); that.setData({ Tags: that.data.Tags, }); var list = app.globalData.CardList; for (var i = 0; i < list.length; i++) { if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) { list[i].Content[0].Content = that.data.Tags; break; } } app.globalData.CardList = list; } } }); }, //段落编辑************************** //字段输入 bindinputField: function (e) { console.log("bindinputField:" + e.detail.value + " isEdit:" + isEdit); var that = this; if (app.globalData.IsAndroid && !isEdit) { return; } this.setData({ FieldContent: e.detail.value, }); //this.updateField(); }, //加符号 addSymbol: function (e) { //console.log("addSymbol"); isEdit = true; var that = this; btnName = e.currentTarget.dataset.id; if (btnName == "[读]") { this.setData({ SoundSign: "[/读]", }); } else if (btnName == "[/读]") { this.setData({ SoundSign: "[读]", }); } else if (btnName == "[线]") { this.setData({ LineSign: "[/线]", }); } else if (btnName == "[/线]") { this.setData({ LineSign: "[线]", }); } if (!this.data.Focus) { this.data.FieldContent = this.data.FieldContent + btnName; this.setData({ FieldContent: this.data.FieldContent, }); } //console.log("addSymbol:" + this.data.FieldContent); setTimeout(function () { that.setData({ Focus: true, }); }, 300); }, //焦点聚焦 onBindFocus: function () { this.setData({ Focus: true, }); }, //失焦 onBindblur: function (e) { var that = this; //console.log("onBindblur:" + isEdit + " Filed:" + this.data.FieldContent); if (app.globalData.IsAndroid && !isEdit) { setTimeout(function () { isEdit = true; console.log("onBindblur2:" + isEdit); }, 500); return; } isEdit = false; if (app.globalData.IsAndroid && !isEdit) { setTimeout(function () { isEdit = true; console.log("onBindblur2:" + isEdit); }, 500); } //console.log("onBindblur:"+isEdit); this.updateField(); tempCursor = e.detail.cursor; //console.log("tempCursor:" + tempCursor); if (tempCursor == undefined) tempCursor = this.data["FieldContent"].length; var str1 = "", str2 = ""; if (this.data.FieldContent.length > 0) { str1 = this.data.FieldContent.substr(0, tempCursor); str2 = this.data.FieldContent.substring(tempCursor, this.data.FieldContent.length); } //console.log("str1:" + str1); //console.log("str2:" + str2); var cur = 1; if (btnName == "[读]" || btnName == "[线]") { cur = 3; } else if (btnName == "[/读]" || btnName == "[/线]") { cur = 4; } else if (btnName == "(   )") { cur = 5; } else if (btnName == "_____") { cur = 5; } this.data.FieldContent = str1 + btnName + str2; this.setData({ FieldContent: this.data.FieldContent, Focus: false, Cursor: tempCursor + cur, }); btnName = ""; }, onSearchField: function (e) { app.globalData.TempFieldNumber = this.data.FieldNumber; wx.navigateTo({ url: './searchWeb', }); this.updateField(); setTimeout(function () { isEdit = true; //console.log("onSearchEnd"); }, 1000); }, clear: function () { var that = this; //console.log("clear"); this.setData({ FieldContent: "", Focus: true, Cursor: 0, }); btnName = ""; isEdit = false; this.updateField(); }, closeAddItem: function (e) { var that=this; var isSave = e.currentTarget.dataset.idsave; if (isSave == "true") { isUnload = false; wx.removeStorageSync("TempCardInfoAddItem"); this.updateField(); var title ="编辑题卡"; if (that.data.UpdateType == "add2") { title = "添加题卡"; } wx.setNavigationBarTitle({ title: title, }); } this.setData({ HiddenFieldEdit:true, }); }, updateField: function (history) { var str = this.data.FieldContent; str = main.decryptUrl(str); str = str.replace(/\[读\]/g, "\n[读]"); str = str.replace(/\[图\]/g, "\n[图]"); str = str.replace(/\[\/读\]/g, "[\/读]\n"); str = str.replace(/\[\/图\]/g, "[\/图]\n"); str = str.replace(/\n\n/g, "\n"); var list = app.globalData.CardList; var card={}; for (var i = 0; i < list.length; i++) { if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) { if (history != undefined) list[i].Content[this.data.FieldNumber].Content = history; else list[i].Content[this.data.FieldNumber].Content = str; card = main.changeStringToView(list[i].Content); break; } } app.globalData.CardList = list; this.setData({ Field: card.Field, Tags: card.Tags, }); }, uploadImageField: function () { //console.log("uploadImageStart"); var that = this; wx.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['album', 'camera'], success(res) { // tempFilePath可以作为img标签的src属性显示图片 const tempFilePaths = res.tempFilePaths; //console.log(tempFilePaths[0]); //that.data.FieldContent = that.data.FieldContent + "[图 url='" + tempFilePaths[0] + "']" + tempFilePaths[0] + "[/图]"; if (tempCursor == undefined) tempCursor = that.data.FieldContent.length; var str1 = "", str2 = ""; if (that.data.FieldContent.length > 0) { str1 = that.data.FieldContent.substr(0, tempCursor); str2 = that.data.FieldContent.substring(tempCursor, that.data.FieldContent.length); } var str0 = "[图]" + tempFilePaths[0] + "[/图]"; that.data.FieldContent = str1 + str0 + str2; //console.log("uploadImageEnd:" + that.data.FieldContent); that.setData({ FieldContent: that.data.FieldContent, Focus: false, }); that.updateField(); }, fail: function () { } }); }, onShareAppMessage: function () { return { title: app.globalData.ShareTitle, path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID, imageUrl: app.globalData.ShareImage, } }, })