item.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. import common from '../../utils/util';
  2. import server from '../../utils/main';
  3. const app = getApp();
  4. var currentIndex = 0, tempCurrentIndex = -1;
  5. var audioArray = [];
  6. Page({
  7. data: {
  8. version: app.globalData.version,
  9. IsPlaying: 0,
  10. PlayStr: "本",
  11. selectTab0: "btn1",
  12. selectTab1: "",
  13. selectTab2: "",
  14. },
  15. onLoad: function (options) {
  16. var that=this;
  17. this.audioCtxNumber = wx.createAudioContext('numberAudio');
  18. this.setData({
  19. Containnerheight: server.getWindowHeight(),
  20. IsPlaying: 0,
  21. });
  22. audioArray = [];
  23. currentIndex=0;
  24. tempCurrentIndex = -1;
  25. var id = options.id;
  26. this.getItem(id);
  27. wx.setNavigationBarTitle({
  28. title: "试卷答案 " + id,
  29. });
  30. common.getStorageValue(this, "HelpHidden6", false, function () {
  31. that.showHelp();
  32. });
  33. },
  34. onUnload:function(){
  35. this.closeHelp();
  36. },
  37. scrollTop: function (e) {
  38. var id = Number(e.currentTarget.dataset.id);
  39. var selectTab0 = "", selectTab1 = "", selectTab2 = "";
  40. if (id == 0)
  41. selectTab0 = "btn1";
  42. else if (id == 1)
  43. selectTab1 = "btn1";
  44. else if (id == 2)
  45. selectTab2 = "btn1";
  46. this.setData({
  47. selectTab0: selectTab0,
  48. selectTab1: selectTab1,
  49. selectTab2: selectTab2,
  50. });
  51. var top = 0;
  52. var query = wx.createSelectorQuery();
  53. query.select('#panelRowTop' + id).boundingClientRect();
  54. query.selectViewport().scrollOffset();
  55. query.exec(function (res) {
  56. top = res[0].top + res[1].scrollTop
  57. wx.pageScrollTo({
  58. scrollTop: top,
  59. duration: 500
  60. });
  61. });
  62. },
  63. getItem: function (id) {
  64. var that = this;
  65. var list = wx.getStorageSync("AnswerList");
  66. if (list && list.length > 0) {
  67. var item;
  68. for (var i = 0; i < list.length; i++) {
  69. if (id == list[i].AnswerID) {
  70. item = list[i];
  71. break;
  72. }
  73. }
  74. var list = item.QuestionList;
  75. for (var i = 0; i < list.length; i++) {
  76. if (i == 0 && list[i].Vertical) {
  77. list[i].IsShowVertical = true;
  78. break;
  79. }
  80. }
  81. var list = item.QuestionList;
  82. for (var i = 0; i < list.length; i++) {
  83. if (list[i].OperateAB == '÷' && list[i].Vertical) {
  84. list[i].LineLength = list[i].A.toString().length;
  85. for (var k = 0; k < list[i].Vertical[1].Array.length; k++) {
  86. list[i].Vertical[1].Array[k] = "";
  87. }
  88. for (var k = 0; k < list[i].Vertical[2].Array.length; k++) {
  89. if (list[i].Vertical[2].Array[k] =="√"){
  90. list[i].Vertical[2].Array[k]="";
  91. list[i].Vertical[2].Array.push("√");
  92. break;
  93. }
  94. }
  95. }
  96. }
  97. that.setData({
  98. AnswerItem: item,
  99. });
  100. }
  101. },
  102. selectedItem: function (e) {
  103. var id = e.currentTarget.dataset.id;
  104. var list = this.data.AnswerItem.QuestionList;
  105. for (var i = 0; i < list.length; i++) {
  106. if (id == list[i].ID) {
  107. list[i].IsShowVertical = !list[i].IsShowVertical;
  108. } else {
  109. list[i].IsShowVertical = false;
  110. }
  111. }
  112. this.data.AnswerItem.QuestionList = list;
  113. this.setData({
  114. AnswerItem: this.data.AnswerItem,
  115. });
  116. },
  117. showImage: function (e) {
  118. var that = this;
  119. wx.previewImage({
  120. current: that.data.AnswerItem.TempImagePath, // 当前显示图片的http链接
  121. urls: [that.data.AnswerItem.TempImagePath] // 需要预览的图片http链接列表
  122. });
  123. },
  124. playAudioStart: function () {
  125. if (this.data.IsPlaying == 1) {
  126. this.audioCtxNumber.pause();
  127. }
  128. else if (this.data.IsPlaying == -1) {
  129. this.audioCtxNumber.play();
  130. }
  131. else if (this.data.IsPlaying == 0) {
  132. var arr = [];
  133. var item = this.data.AnswerItem;
  134. var list = item.QuestionList;
  135. for (var i = 0; i < list.length; i++) {
  136. if ((i % (list.length / 3)) == 0) {
  137. if (i > 0) {
  138. arr.push("");
  139. audioArray.push(arr);
  140. arr = [];
  141. }
  142. arr.push("第" + (1 + i / (list.length / 3)) + "列");
  143. }
  144. var str = list[i].Result;
  145. if (str.toString().indexOf("......") > 0) {
  146. str = str.toString().replace("......", "”余数");
  147. str = "商“" + str;
  148. }
  149. arr.push(str);
  150. }
  151. arr.push("");
  152. audioArray.push(arr);
  153. this.playAudioAll();
  154. }
  155. if (this.data.IsPlaying == 1)
  156. this.data.IsPlaying = -1;
  157. else
  158. this.data.IsPlaying = 1;
  159. this.setData({
  160. IsPlaying: this.data.IsPlaying,
  161. });
  162. },
  163. playAudioAll: function () {
  164. if (currentIndex >= 3) {
  165. currentIndex = 0;
  166. this.setData({
  167. IsPlaying: true,
  168. });
  169. return;
  170. } else {
  171. server.playAudio(this.audioCtxNumber, audioArray[currentIndex].join(","));
  172. }
  173. },
  174. onPlayEnded: function (e) {
  175. currentIndex++;
  176. this.playAudioAll();
  177. },
  178. playPrev: function () {
  179. var playstr = "本";
  180. if (currentIndex > 0 && tempCurrentIndex == currentIndex) {
  181. currentIndex--;
  182. }
  183. else {
  184. tempCurrentIndex = currentIndex;
  185. playstr = "前";
  186. if (currentIndex <= 0)
  187. playstr = "本";
  188. }
  189. this.playAudioAll();
  190. this.setData({
  191. PlayStr: playstr,
  192. });
  193. },
  194. showHelp: function () {
  195. if (!this.data.HelpHidden6) {
  196. this.audioCtx = wx.createAudioContext('myAudio');
  197. var str = "Nice,让我用30秒讲完最后的帮助。答案靠左,题目居右,如果发现题目右侧有图标,说明这是一道竖式题,点击图标可以检查解题步骤,这是独门神器,对找出问题所在非常有效。期待你的好成绩,拜拜!";
  198. server.playAudio(this.audioCtx, str);
  199. }
  200. },
  201. closeHelp: function () {
  202. this.setData({
  203. HelpHidden6: true,
  204. });
  205. wx.setStorageSync("HelpHidden6", true);
  206. this.audioCtx = wx.createAudioContext('myAudio');
  207. this.audioCtx.pause();
  208. },
  209. onShareAppMessage: function () {
  210. return {
  211. title: app.globalData.ShareTitle,
  212. path: 'pages/index/index?UserID=' + app.globalData.userInfo.UserID,
  213. imageUrl: app.globalData.ShareImageUrl,
  214. }
  215. },
  216. })