paste.js 3.1 KB

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