searchList.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. // pages/searchList/searchList.js
  2. const app = getApp()
  3. var host = app.globalData.host;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. act:0,
  10. data:[],
  11. keyword:'',
  12. type:'',
  13. left:0,
  14. top:0,
  15. title:'',
  16. value:'',
  17. list:[],
  18. page:1,
  19. loading:true
  20. },
  21. /**
  22. * 生命周期函数--监听页面加载
  23. */
  24. onLoad: function (options) {
  25. // options.keyword='科学'
  26. wx.request({
  27. url: host + '/api/search/default',
  28. method: 'GET',
  29. success: res=>{
  30. this.setData({
  31. info: res.data.data
  32. })
  33. }
  34. })
  35. // this.setData({
  36. // keyword: options.keyword ? options.keyword:'',
  37. // type: options.type ? options.type:'',
  38. // act: options.act
  39. // })
  40. // if (options.keyword||true ){
  41. // this.getData()
  42. // }
  43. },
  44. getData:function(){
  45. wx.showNavigationBarLoading()
  46. wx.request({
  47. url: host + '/api/search',
  48. method: 'GET',
  49. data: {
  50. keyword: this.data.keyword,
  51. type: this.data.type,
  52. page_size:20,
  53. page:this.data.page
  54. },
  55. success: res => {
  56. wx.hideNavigationBarLoading()
  57. if(this.data.act>0){
  58. let list = this.data.list, data = res.data.data[0].list;
  59. if (data.length<=0){
  60. this.setData({
  61. loading:false
  62. })
  63. return;
  64. }
  65. for (let i = 0; i <data.length;i++) {
  66. data[i]._name = data[i].name.replace(this.data.keyword, '<span style="color:#3780CD;">' + this.data.keyword+'</span>')
  67. data[i]._name = "<div style='overflow:hidden;white-space:nowrap;text-overflow:ellipsis;'>" + data[i]._name + "</div>"
  68. list.push(data[i])
  69. }
  70. this.setData({
  71. title: res.data.data[0].name,
  72. value: res.data.data[0].value,
  73. list:list
  74. })
  75. }else{
  76. let data = res.data.data
  77. for(let i=0;i<data.length;i++){
  78. for (let j = 0; j < data[i].list.length; j++) {
  79. data[i].list[j]._name = data[i].list[j].name.replace(this.data.keyword, '<span style="color:#3780CD;">' + this.data.keyword + '</span>')
  80. data[i].list[j]._name = "<div style='overflow:hidden;white-space:nowrap;text-overflow:ellipsis;'>" + data[i].list[j]._name+"</div>"
  81. }
  82. }
  83. this.setData({
  84. data: data
  85. })
  86. }
  87. },
  88. fail: function () {
  89. wx.hideLoading();
  90. wx.showToast({
  91. title: '服务器开小差啦!',
  92. icon: 'none'
  93. })
  94. }
  95. })
  96. },
  97. next:function(){
  98. if(this.data.act>0 && this.data.loading){
  99. this.setData({
  100. page:this.data.page+1
  101. })
  102. this.getData()
  103. }
  104. },
  105. search:function(e){
  106. this.setData({
  107. keyword: e.target.dataset.value,
  108. act:0
  109. })
  110. this.getData();
  111. },
  112. inputChange:function(e){
  113. this.setData({
  114. keyword:e.detail.value,
  115. page: 1,
  116. list: [],
  117. data: [],
  118. top: 0
  119. })
  120. this.getData();
  121. },
  122. search1: function () {
  123. this.setData({
  124. page:1,
  125. list:[],
  126. data:[],
  127. top:0
  128. })
  129. this.getData();
  130. },
  131. tab:function(e){
  132. var i=e.target.dataset.id;
  133. var array = ['', 'organizer', 'article', 'conference', 'journal','subject'];
  134. this.setData({
  135. type: array[i],
  136. act:i,
  137. top:0,
  138. list:[],
  139. page:1,
  140. loading:true
  141. })
  142. this.getData()
  143. },
  144. more: function (e) {
  145. var value = e.target.dataset.id;
  146. this.setData({
  147. type: value,
  148. act: e.target.dataset.index,
  149. left: e.target.dataset.index>3?250:0,
  150. list: [],
  151. top:0,
  152. page: 1,
  153. loading: true
  154. })
  155. this.getData()
  156. },
  157. /**organizer/article/conference/journal/subject
  158. * 生命周期函数--监听页面初次渲染完成
  159. */
  160. onReady: function () {
  161. },
  162. /**
  163. * 生命周期函数--监听页面显示
  164. */
  165. onShow: function () {
  166. },
  167. /**
  168. * 生命周期函数--监听页面隐藏
  169. */
  170. onHide: function () {
  171. },
  172. /**
  173. * 生命周期函数--监听页面卸载
  174. */
  175. onUnload: function () {
  176. },
  177. /**
  178. * 页面相关事件处理函数--监听用户下拉动作
  179. */
  180. onPullDownRefresh: function () {
  181. },
  182. /**
  183. * 页面上拉触底事件的处理函数
  184. */
  185. onReachBottom: function () {
  186. },
  187. /**
  188. * 用户点击右上角分享
  189. */
  190. onShareAppMessage: function () {
  191. }
  192. })