paste.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import common from '../../utils/util';
  2. import main from '../../utils/main';
  3. const COUNT_MAX=10;
  4. const app = getApp();
  5. let EntryWords="";//进来的单词,用于返回恢复
  6. let IsEdit=false; //是否编辑过,编辑过不恢复
  7. Page({
  8. data: {
  9. Words:"",
  10. importWordStr:"",//输入过的单词
  11. inputThreshold: 5000, // 时间阈值,单位毫秒,可根据实际情况调整
  12. },
  13. onLoad: function (options) {
  14. let that = this;
  15. EntryWords=app.globalData.SelectedWords;
  16. let words=app.globalData.SelectedWords.join("\n");
  17. that.setData({
  18. Containnerheight: main.getWindowHeight(),
  19. Words:words,
  20. });
  21. main.checkGenerating();
  22. },
  23. handlePaste: function(e) {
  24. let that = this;
  25. // 获取剪贴板内容
  26. wx.getClipboardData({
  27. success: function(res) {
  28. let str="";
  29. if (that.data.Words)
  30. str+=that.data.Words+"\n";
  31. //str+=that.setWordsArr(res.data).join("\n");
  32. str+=res.data;
  33. that.setData({
  34. Words: str,
  35. importWordStr:str,
  36. });
  37. IsEdit=true;
  38. },
  39. fail: function(err) {
  40. console.error('获取剪贴板失败', err);
  41. }
  42. });
  43. },
  44. bindKeyInput:function(e){
  45. let that=this;
  46. let words = e.detail.value;
  47. let currentTime = new Date().getTime();
  48. let timeDiff = currentTime - this.data.lastInputTime;
  49. if (timeDiff > this.data.inputThreshold && words.length>that.data.Words.length+2) {
  50. console.log("可能是粘贴操作");
  51. let str=that.data.importWordStr;
  52. let str2=words.substring(str.length);
  53. str+="\n"+str2;
  54. // let arr=that.setWordsArr(str);
  55. // words=arr.join("\n");
  56. word=str;
  57. } else {
  58. console.log("可能是键盘输入");
  59. }
  60. this.setData({
  61. Words: words,
  62. //importWordStr:words,
  63. //lastInputTime: currentTime
  64. });
  65. IsEdit=true;
  66. },
  67. onUnload:function(e){
  68. if (!IsEdit){
  69. app.globalData.SelectedWords=EntryWords;
  70. }
  71. },
  72. showExample:function(){
  73. this.setData({
  74. IsShowExample:!this.data.IsShowExample,
  75. });
  76. },
  77. setWordsArr:function(data){
  78. let that=this;
  79. let words=[];
  80. words=data.split(/[\r\n]+/);
  81. if (words.length==0)
  82. words = data.split(" "); // 按空格分割
  83. // 过滤掉空字符串和非单词内容
  84. words = common.filterWordsWithSpecialChars(words);
  85. words = common.removeDuplicateAndTrimStrings(words);
  86. //debugger;
  87. let arr2=[];
  88. if (words.length>10){
  89. for(let i=0;i<10;i++){
  90. arr2.push(words[i]);
  91. }
  92. words=arr2;
  93. }
  94. return words;
  95. },
  96. submit:function(){
  97. if (IsEdit){
  98. let words=this.setWordsArr(this.data.Words);
  99. app.globalData.SelectedWords=words;
  100. }
  101. wx.navigateBack({
  102. delta: 1
  103. });
  104. },
  105. clearInput:function(){
  106. app.globalData.SelectedWords=[];
  107. this.setData({
  108. Words:"",
  109. });
  110. IsEdit=false;
  111. },
  112. // 阻止示例面板的触摸事件传递到底层
  113. catchTouchMove: function(e) {
  114. // 这个函数不需要做任何事情,只需要捕获事件防止冒泡
  115. return false;
  116. },
  117. onShareAppMessage: function () {
  118. return {
  119. title: app.globalData.ShareTitle,
  120. path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID,
  121. imageUrl: app.globalData.ShareImage,
  122. }
  123. },
  124. })