Commit 98db674d3911e8a99513ad6365b37f4792a15620
1 parent
76134058
搜索页增加历史搜索记录
Showing
3 changed files
with
90 additions
and
2 deletions
pages/goods/search/search.js
@@ -22,7 +22,12 @@ Page({ | @@ -22,7 +22,12 @@ Page({ | ||
22 | tabname: "sort", //排序的字段 | 22 | tabname: "sort", //排序的字段 |
23 | adname: "asc", //升降的字段 | 23 | adname: "asc", //升降的字段 |
24 | rq_data:null, | 24 | rq_data:null, |
25 | + | ||
26 | + | ||
27 | + searchRecord: [], | ||
28 | + keyword: '', | ||
25 | }, | 29 | }, |
30 | + | ||
26 | onLoad: function(t) { | 31 | onLoad: function(t) { |
27 | this.data.rq_data=t; | 32 | this.data.rq_data=t; |
28 | 33 | ||
@@ -104,6 +109,9 @@ Page({ | @@ -104,6 +109,9 @@ Page({ | ||
104 | if (0 != t.max_price && t.max_price!=undefined) { url += "&min_pirce=" + t.min_pirce + "&max_price=" + t.max_price;} | 109 | if (0 != t.max_price && t.max_price!=undefined) { url += "&min_pirce=" + t.min_pirce + "&max_price=" + t.max_price;} |
105 | if (url != this.data.baseUrl) return this.requestSearch(url); | 110 | if (url != this.data.baseUrl) return this.requestSearch(url); |
106 | this.openSearchModal(); | 111 | this.openSearchModal(); |
112 | + | ||
113 | + // 获取历史搜索记录 | ||
114 | + this.getHistorySearch(); | ||
107 | }, | 115 | }, |
108 | changeTab: function(t) { | 116 | changeTab: function(t) { |
109 | var ord = t.currentTarget.dataset.href; | 117 | var ord = t.currentTarget.dataset.href; |
@@ -176,18 +184,23 @@ Page({ | @@ -176,18 +184,23 @@ Page({ | ||
176 | }); | 184 | }); |
177 | }, | 185 | }, |
178 | submitSearch: function(t) { | 186 | submitSearch: function(t) { |
187 | + console.log(111); | ||
179 | this.search(t.detail.value.word); | 188 | this.search(t.detail.value.word); |
189 | + | ||
190 | + | ||
180 | }, | 191 | }, |
181 | 192 | ||
182 | //热搜关键字 | 193 | //热搜关键字 |
183 | searchHotWord: function(t) { | 194 | searchHotWord: function(t) { |
184 | - this.search(t.currentTarget.dataset.word); | 195 | + this.historyRecord(); |
196 | + this.search(t.currentTarget.dataset.word); | ||
185 | }, | 197 | }, |
186 | 198 | ||
187 | //-----点击搜索按钮---- | 199 | //-----点击搜索按钮---- |
188 | search: function(t) { | 200 | search: function(t) { |
189 | if ("string" != typeof t || "" == t) return a.showWarning("请输入搜索关键词"); | 201 | if ("string" != typeof t || "" == t) return a.showWarning("请输入搜索关键词"); |
190 | this.data.key_str=t; | 202 | this.data.key_str=t; |
203 | + this.historyRecord(); | ||
191 | this.resetData(), this.requestSearch(this.data.baseUrl + "&key_str=" + encodeURIComponent(t)); | 204 | this.resetData(), this.requestSearch(this.data.baseUrl + "&key_str=" + encodeURIComponent(t)); |
192 | }, | 205 | }, |
193 | 206 | ||
@@ -253,4 +266,56 @@ Page({ | @@ -253,4 +266,56 @@ Page({ | ||
253 | func(ob); | 266 | func(ob); |
254 | }) | 267 | }) |
255 | }, | 268 | }, |
269 | + | ||
270 | + | ||
271 | + getInput(e) { | ||
272 | + this.setData({ | ||
273 | + keyword: e.detail.value | ||
274 | + }); | ||
275 | + }, | ||
276 | + | ||
277 | + historyRecord() { | ||
278 | + let self = this; | ||
279 | + let keyword = this.data.key_str; | ||
280 | + let searchRecord = this.data.searchRecord; | ||
281 | + | ||
282 | + if(keyword) { | ||
283 | + if(searchRecord.indexOf(keyword) > -1) { | ||
284 | + // 已经存在该值 | ||
285 | + return; | ||
286 | + } else { | ||
287 | + if(searchRecord.length >= 10) { | ||
288 | + searchRecord.pop(); // 删除最早的一条记录 | ||
289 | + }; | ||
290 | + searchRecord.unshift(keyword); | ||
291 | + | ||
292 | + // // 将历史记录添加到缓存中 | ||
293 | + wx.setStorage({ | ||
294 | + key: 'searchRecord', | ||
295 | + data: searchRecord, | ||
296 | + success: function(res) { | ||
297 | + self.setData({ | ||
298 | + searchRecord, | ||
299 | + }) | ||
300 | + } | ||
301 | + }) | ||
302 | + }; | ||
303 | + }; | ||
304 | + }, | ||
305 | + | ||
306 | + | ||
307 | + | ||
308 | + | ||
309 | + getHistorySearch() { | ||
310 | + this.setData({ | ||
311 | + searchRecord: wx.getStorageSync('searchRecord') || [] //若无存储则为空 | ||
312 | + }); | ||
313 | + }, | ||
314 | + | ||
315 | + clearSearchRecord() { | ||
316 | + wx.clearStorageSync('searchRecord'); | ||
317 | + this.setData({ | ||
318 | + searchRecord: [] | ||
319 | + }); | ||
320 | + }, | ||
256 | }); | 321 | }); |
257 | \ No newline at end of file | 322 | \ No newline at end of file |
pages/goods/search/search.wxml
@@ -162,7 +162,7 @@ | @@ -162,7 +162,7 @@ | ||
162 | <view class="search-modal"> | 162 | <view class="search-modal"> |
163 | <view class="search-bar"> | 163 | <view class="search-bar"> |
164 | <form bindsubmit="submitSearch"> | 164 | <form bindsubmit="submitSearch"> |
165 | - <input autoFocus class="search-input" name="word" placeholder="搜索商品"></input> | 165 | + <input autoFocus class="search-input" name="word" placeholder="搜索商品" bindinput="getInput"></input> |
166 | <button class="search-btn" formType="submit"> | 166 | <button class="search-btn" formType="submit"> |
167 | <image class="wh100 search-img" src="{{url}}/miniapp/images/sea.png"></image> | 167 | <image class="wh100 search-img" src="{{url}}/miniapp/images/sea.png"></image> |
168 | </button> | 168 | </button> |
@@ -176,5 +176,17 @@ | @@ -176,5 +176,17 @@ | ||
176 | </view> | 176 | </view> |
177 | </block> | 177 | </block> |
178 | </view> | 178 | </view> |
179 | + <view class="search-hot"> | ||
180 | + <view class="hot-title flex jc_sb ai_c"> | ||
181 | + <text>历史搜索</text> | ||
182 | + <text class="iconfont icon-shanchu xc-ash" bindtap="clearSearchRecord" wx:if="{{searchRecord.length != 0}}"></text> | ||
183 | + </view> | ||
184 | + <block wx:if="{{searchRecord.length>0}}"> | ||
185 | + <view class="hot-row flex flex-wrap" wx:key="{{index}}"> | ||
186 | + <view class="hot-item history ellipsis-1" bindtap="searchHotWord" data-word="{{item}}" wx:for="{{searchRecord}}" wx:key="{{index}}">{{item}}</view> | ||
187 | + </view> | ||
188 | + </block> | ||
189 | + <view wx:else class="fs24">暂无历史搜索记录</view> | ||
190 | + </view> | ||
179 | </view> | 191 | </view> |
180 | </view> | 192 | </view> |
181 | \ No newline at end of file | 193 | \ No newline at end of file |
pages/goods/search/search.wxss
@@ -298,3 +298,14 @@ | @@ -298,3 +298,14 @@ | ||
298 | /* line-height: 38rpx; */ | 298 | /* line-height: 38rpx; */ |
299 | flex-grow: 1; | 299 | flex-grow: 1; |
300 | } | 300 | } |
301 | + | ||
302 | +.history { | ||
303 | + background-color: #f0f0f0; | ||
304 | + color: #7b7b7b; | ||
305 | + border: none; | ||
306 | + margin-bottom: 8rpx; | ||
307 | +} | ||
308 | + | ||
309 | +.history:first-of-type { | ||
310 | + margin-left: 0; | ||
311 | +} |