search.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. // pages/index/search/search.js
  2. const app = getApp();
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. hotsearch:"在家兼职",
  9. hotsearchList:[],
  10. searchValue:"",
  11. searchRecordList:[],
  12. isSearch:false,
  13. searchResList:[]
  14. },
  15. // 点击搜索结果的每项
  16. clickRes(e){
  17. console.log("1")
  18. wx.navigateTo({
  19. url: '../../commodity-detail/commodity-detail?id=' + e.currentTarget.dataset.id,
  20. })
  21. },
  22. //清除事件
  23. clearValue(e){
  24. this.setData({
  25. searchValue: ""
  26. });
  27. },
  28. //输入事件
  29. input(e){
  30. this.setData({
  31. searchValue: e.detail.value
  32. });
  33. },
  34. // 从数组头添加数据
  35. prepend(arr, item) {
  36. return [item].concat(arr);
  37. // console.log(arr)
  38. // console.log(item)
  39. // if(arr.length == 0){
  40. // console.log("不包含1")
  41. // this.setData({
  42. // searchRecordList: [item].concat(arr)
  43. // });
  44. // }else{
  45. // for (let i = 0; i < arr.length; i++) {
  46. // //如果找到相同的
  47. // if (arr[i].message === item.message) {
  48. // console.log("包含")
  49. // //删除该重复元素
  50. // var newarr = arr.splice(i+1, 1)
  51. // console.log(newarr)
  52. // //再添加到首项并赋值
  53. // this.setData({
  54. // searchRecordList: [item].concat(newarr)
  55. // });
  56. // break
  57. // }
  58. // }
  59. // }
  60. },
  61. // 删除搜索历史
  62. deleteRecord(e){
  63. this.setData({
  64. searchRecordList: []
  65. });
  66. wx.setStorage({
  67. key: "searchRecordList",
  68. data: []
  69. })
  70. },
  71. // 点击搜索按钮
  72. search(e){
  73. var _this = this
  74. wx.request({
  75. url: app.globalData.baseURL + '/job/search',
  76. method: 'GET',
  77. data: {
  78. "key": _this.data.searchValue
  79. },
  80. success(res) {
  81. _this.setData({
  82. searchResList: res.data.data,
  83. });
  84. //如果当前为未搜索时
  85. if (!_this.data.isSearch){
  86. _this.setData({
  87. isSearch: !_this.data.isSearch
  88. });
  89. }
  90. console.log(res.data.data)
  91. }
  92. })
  93. },
  94. // 点击热门搜索热词
  95. clickHot(e){
  96. //获取点击的词的内容,并赋值给搜索框
  97. var value = this.data.hotsearchList[e.currentTarget.dataset.index].message
  98. //赋值给搜索历史数组并更新缓存
  99. var item = { message: value}
  100. this.setData({
  101. searchValue: value,
  102. searchRecordList: this.prepend(this.data.searchRecordList, item)
  103. });
  104. wx.setStorage({
  105. key: "searchRecordList",
  106. data: this.data.searchRecordList
  107. })
  108. },
  109. // 点击搜索历史记录词
  110. clickRecord(e){
  111. // console.log(this.data.searchRecordList)
  112. this.setData({
  113. searchValue: this.data.searchRecordList[e.currentTarget.dataset.index].message
  114. });
  115. },
  116. /**
  117. * 生命周期函数--监听页面加载
  118. */
  119. onLoad: function (options) {
  120. var _this = this
  121. wx.request({
  122. url: app.globalData.baseURL + '/job/hot',
  123. method: 'GET',
  124. success(res) {
  125. _this.setData({
  126. hotsearchList: res.data.data
  127. });
  128. }
  129. })
  130. },
  131. /**
  132. * 生命周期函数--监听页面显示
  133. */
  134. onShow: function () {
  135. try {
  136. var value = wx.getStorageSync('searchRecordList')
  137. if (value) {
  138. // Do something with return value
  139. this.setData({
  140. searchRecordList: value,
  141. });
  142. }
  143. } catch (e) {
  144. // Do something when catch error
  145. }
  146. },
  147. /**
  148. * 生命周期函数--监听页面隐藏
  149. */
  150. onHide: function () {
  151. },
  152. /**
  153. * 生命周期函数--监听页面卸载
  154. */
  155. onUnload: function () {
  156. },
  157. /**
  158. * 页面相关事件处理函数--监听用户下拉动作
  159. */
  160. onPullDownRefresh: function () {
  161. },
  162. /**
  163. * 页面上拉触底事件的处理函数
  164. */
  165. onReachBottom: function () {
  166. },
  167. /**
  168. * 用户点击右上角分享
  169. */
  170. onShareAppMessage: function () {
  171. }
  172. })