paste.js 3.3 KB

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