paste.js 3.3 KB

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