usent_ref.js 3.8 KB

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