import common from '../../utils/util'; import main from '../../utils/main'; const COUNT_MAX=10; const app = getApp(); let EntryWords="";//进来的单词,用于返回恢复 let IsEdit=false; //是否编辑过,编辑过不恢复 Page({ data: { Words:"", importWordStr:"",//输入过的单词 inputThreshold: 100, // 时间阈值,单位毫秒,可根据实际情况调整 }, onLoad: function (options) { let that = this; EntryWords=app.globalData.SelectedWords; let words=app.globalData.SelectedWords.join("\n"); that.setData({ Containnerheight: main.getWindowHeight(), Words:words, }); }, handlePaste: function(e) { let that = this; // 获取剪贴板内容 wx.getClipboardData({ success: function(res) { let str=""; if (that.data.Words) str+=that.data.Words+"\n"; str+=that.setWordsArr(res.data).join("\n"); // let arr=that.setWordsArr(str); // str=arr.join("\n"); that.setData({ Words: str, importWordStr:str, }); }, fail: function(err) { console.error('获取剪贴板失败', err); } }); }, bindKeyInput:function(e){ let that=this; let words = e.detail.value; let currentTime = new Date().getTime(); let timeDiff = currentTime - this.data.lastInputTime; if (timeDiff > this.data.inputThreshold && words.length>that.data.Words.length+2) { console.log("可能是粘贴操作"); let str=that.data.importWordStr; let str2=words.substring(str.length); str+="\n"+str2; let arr=that.setWordsArr(str); words=arr.join("\n"); } else { console.log("可能是键盘输入"); } this.setData({ Words: words, importWordStr:words, lastInputTime: currentTime }); IsEdit=true; }, onUnload:function(e){ if (!IsEdit){ app.globalData.SelectedWords=EntryWords; } }, showExample:function(){ this.setData({ IsShowExample:!this.data.IsShowExample, }); }, setWordsArr:function(data){ let that=this; // 这里可以处理粘贴的数据,比如按空格分割成单词 let words = data.split(/[\r\n]+/); // 按换行分割 let words2 = data.split(" "); // 按空格分割 //debugger; if (words2.length>20 || words2.length>words.length) words=words2; else if (typeof data === 'string' && data.indexOf(",")>0) words = data.split(","); // 过滤掉空字符串和非单词内容 words = common.filterWordsWithSpecialChars(words); words = common.removeDuplicateAndTrimStrings(words); //debugger; let arr2=[]; if (words.length>10){ for(let i=0;i<10;i++) arr2.push(words[i]); words=arr2; } return words; }, submit:function(){ if (IsEdit){ let words=this.setWordsArr(this.data.Words); app.globalData.SelectedWords=words; } wx.navigateBack({ delta: 1 }); }, clearInput:function(){ app.globalData.SelectedWords=[]; this.setData({ Words:"", }); IsEdit=false; }, // 阻止示例面板的触摸事件传递到底层 catchTouchMove: function(e) { // 这个函数不需要做任何事情,只需要捕获事件防止冒泡 return false; }, onShareAppMessage: function () { return { title: app.globalData.ShareTitle, path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID, imageUrl: app.globalData.ShareImage, } }, })