usent_ref.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. var _usent_buffer = new Array();
  2. var now_time = new Date()
  3. class USentResult {
  4. constructor(filter = {}) {
  5. this.filter = filter;
  6. this.sentList = new Array();
  7. this.buffer = new Array();
  8. }
  9. getSent() {
  10. return this.sentList;
  11. }
  12. pushSent(book, para, start, end) {
  13. for (const iterator of this.sentList) {
  14. if (
  15. iterator.book == book &&
  16. iterator.para == para &&
  17. iterator.start == start &&
  18. iterator.end == end
  19. ) {
  20. return;
  21. }
  22. }
  23. this.sentList.push({ book: book, para: para, start: start, end: end });
  24. }
  25. newSent(sent) {
  26. this.buffer.push(sent);
  27. }
  28. queryCallback(data, status) {
  29. switch (status) {
  30. case "success":
  31. try {
  32. let arrSent = JSON.parse(data);
  33. _usent_buffer = arrSent;
  34. } catch (e) { }
  35. break;
  36. case "":
  37. break;
  38. }
  39. }
  40. refresh() {
  41. $.post(
  42. "../usent/sent_query.php",
  43. {
  44. sent: JSON.stringify(this.sentList),
  45. filter: JSON.stringify(this.filter),
  46. },
  47. this.queryCallback
  48. );
  49. }
  50. getSentNum(book, para, start, end) {
  51. for (const iterator of _usent_buffer) {
  52. if (
  53. iterator.info.book == book &&
  54. iterator.info.para == para &&
  55. iterator.info.start == start &&
  56. iterator.info.end == end
  57. ) {
  58. return iterator.count;
  59. }
  60. }
  61. return 0;
  62. }
  63. getSentText(book, para, start, end, channal = 0) {
  64. for (const iterator of _usent_buffer) {
  65. if (
  66. iterator.info.book == book &&
  67. iterator.info.para == para &&
  68. iterator.info.start == start &&
  69. iterator.info.end == end
  70. ) {
  71. if (channal == 0) {
  72. return iterator.data;
  73. } else {
  74. for (const sent of iterator.data) {
  75. if (sent.channal == channal) {
  76. return sent;
  77. }
  78. }
  79. return false;
  80. }
  81. }
  82. }
  83. return false;
  84. }
  85. setSent(objSent) {
  86. for (let iterator of _usent_buffer) {
  87. if (
  88. iterator.info.book == objSent.book &&
  89. iterator.info.para == objSent.paragraph &&
  90. iterator.info.start == objSent.begin &&
  91. iterator.info.end == objSent.end
  92. ) {
  93. let sendSents = new Array();
  94. if (objSent.id == "") {
  95. //新建
  96. objSent.sendId = com_uuid();
  97. objSent.try = 1;
  98. objSent.saveSuccess = false; //是否保存成功
  99. iterator.data.push(objSent);
  100. sendSents.push(objSent);
  101. } else {
  102. for (let sent of iterator.data) {
  103. if (sent.id == objSent.id) {
  104. sent = objSent;
  105. sent.sendId = com_uuid();
  106. sent.try = 1;
  107. sent.saveSuccess = false; //是否保存成功
  108. sendSents.push(sent);
  109. }
  110. }
  111. }
  112. if (sendSents.length > 0) {
  113. for (const oneSent of sendSents) {
  114. $(
  115. "#send_" +
  116. oneSent.book +
  117. "_" +
  118. oneSent.paragraph +
  119. "_" +
  120. oneSent.begin +
  121. "_" +
  122. oneSent.end +
  123. "_" +
  124. oneSent.channal
  125. ).html("<svg class='icon icon_spin' style='fill: var(--detail-color); '><use xlink='http://www.w3.org/1999/xlink' href='svg/icon.svg#loading'>");
  126. }
  127. $.post(
  128. "../usent/update.php",
  129. {
  130. data: JSON.stringify(sendSents),
  131. },
  132. function (data, status) {
  133. if (status == "success") {
  134. let result = JSON.parse(data);
  135. console.log(result);
  136. for (const iterator of result.update) {
  137. $(
  138. "#send_" +
  139. iterator.book +
  140. "_" +
  141. iterator.paragraph +
  142. "_" +
  143. iterator.begin +
  144. "_" +
  145. iterator.end +
  146. "_" +
  147. iterator.channal
  148. ).html(now_time.toLocaleTimeString() + "<svg class='icon' style='fill: var(--detail-color);'><use xlink='http://www.w3.org/1999/xlink' href='svg/icon.svg#ic_done'>");
  149. }
  150. }
  151. }
  152. );
  153. } else {
  154. return false;
  155. }
  156. }
  157. }
  158. return false;
  159. }
  160. }
  161. var _user_sent_buffer = new USentResult(); //数据库中的全部参考译文句子