usent_ref.js 4.4 KB

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