index.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. const getHeight = require("../../utils/getRheRemainingHeight");
  2. const _Http = getApp().globalData.http;
  3. let dowmCount = null;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. optionList: [],
  10. scrollHeight: 0, //滚动区域高度
  11. searchContent: "", //搜索内容
  12. mainActiveIndex: 0, //分类选择器打开分类的下标
  13. activeId: "", //分类选择器选择id
  14. showText: null, //左上显示文本
  15. items: [], //分类列表
  16. list: [], //列表
  17. sort: [],
  18. content: {
  19. pageNumber: 1,
  20. pageSize: 20,
  21. pageTotal: 1,
  22. where: {
  23. condition: ""
  24. }
  25. }
  26. },
  27. /**
  28. * 生命周期函数--监听页面加载
  29. */
  30. onLoad(options) {
  31. if (options.auth) {
  32. let auth = JSON.parse(options.auth)[0].meta.auth;
  33. this.setData({
  34. optionList: auth.map(v => v.optionname)
  35. })
  36. }
  37. this.selectMenu(0);
  38. this.selectList();
  39. },
  40. /* 查询菜单分类 */
  41. selectMenu(index) {
  42. if (index == '5') return wx.showToast({
  43. title: '加载失败,请稍后再试',
  44. icon: "none"
  45. })
  46. _Http.basic({
  47. "classname": "saletool.courseware.courseware",
  48. "method": "selectMenu",
  49. "content": {}
  50. }).then(res => {
  51. if (res.msg != '成功') return this.selectMenu(index + 1)
  52. let str = JSON.stringify(res.data).replace(/classname/g, 'text').replace(/sat_courseware_classid/g, 'id');
  53. this.setData({
  54. items: JSON.parse(str)
  55. })
  56. })
  57. },
  58. toDetail(e) {
  59. const {
  60. item
  61. } = e.currentTarget.dataset;
  62. wx.navigateTo({
  63. url: `./detail?id=${item.sat_coursewareid}&auth=${this.data.optionList}`,
  64. })
  65. },
  66. /* 获取列表 */
  67. selectList(init = false) {
  68. if (init.detail != undefined) init = init.detail;
  69. if (init) this.setData({
  70. ['content.pageNumber']: 1
  71. })
  72. if (this.data.content.pageNumber > this.data.content.pageTotal) return;
  73. let content = this.data.content;
  74. (this.data.activeId == "") ? delete(content.where.sat_courseware_classid): content.where.sat_courseware_classid = this.data.activeId;
  75. if (this.data.sort[0]) content.sort = this.data.sort;
  76. _Http.basic({
  77. "classname": "saletool.courseware.courseware",
  78. "method": "selectList",
  79. content
  80. }).then(res => {
  81. this.selectComponent('#ListBox').RefreshToComplete();
  82. if (res.msg != '成功') return wx.showToast({
  83. title: res.data,
  84. icon: "none"
  85. })
  86. this.setData({
  87. list: (res.pageNumber == 1) ? res.data : this.data.list.concat(res.data),
  88. ['content.pageNumber']: res.pageNumber + 1,
  89. ['content.pageTotal']: res.pageTotal,
  90. total: res.total,
  91. sort: res.sort
  92. })
  93. })
  94. },
  95. /* 开始搜索 */
  96. startSearch({
  97. detail
  98. }) {
  99. clearTimeout(dowmCount);
  100. this.setData({
  101. "content.where.condition": detail.trim()
  102. })
  103. dowmCount = setTimeout(() => {
  104. this.selectList(true);
  105. }, 1000);
  106. },
  107. /* 关闭搜索 */
  108. closeSearch() {
  109. this.setData({
  110. "content.where.condition": ""
  111. })
  112. this.selectList(true);
  113. },
  114. switchChange({
  115. detail
  116. }) {
  117. this.setData({
  118. sort: detail
  119. })
  120. this.selectList(true);
  121. },
  122. onClickNav({
  123. detail = {}
  124. }) {
  125. this.setData({
  126. mainActiveIndex: detail.index || 0,
  127. });
  128. },
  129. onClickItem({
  130. detail = {}
  131. }) {
  132. const activeId = this.data.activeId === detail.id ? "" : detail.id,
  133. showText = this.data.showText === detail.text ? null : detail.text;
  134. this.setData({
  135. activeId,
  136. showText
  137. });
  138. this.selectComponent('#item').toggle();
  139. this.selectList(true);
  140. },
  141. /**
  142. * 生命周期函数--监听页面初次渲染完成
  143. */
  144. onReady() {
  145. //滚动区域高度
  146. getHeight.getHeight('.menu', this).then(res => {
  147. this.setData({
  148. scrollHeight: res
  149. })
  150. })
  151. },
  152. /**
  153. * 生命周期函数--监听页面显示
  154. */
  155. onShow() {
  156. },
  157. /**
  158. * 生命周期函数--监听页面隐藏
  159. */
  160. onHide() {
  161. },
  162. /**
  163. * 生命周期函数--监听页面卸载
  164. */
  165. onUnload() {
  166. },
  167. /**
  168. * 页面相关事件处理函数--监听用户下拉动作
  169. */
  170. onPullDownRefresh() {
  171. },
  172. /**
  173. * 页面上拉触底事件的处理函数
  174. */
  175. onReachBottom() {
  176. },
  177. /**
  178. * 用户点击右上角分享
  179. */
  180. onShareAppMessage() {
  181. }
  182. })