usent_ref.js 4.3 KB

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