Commit 98db674d3911e8a99513ad6365b37f4792a15620

Authored by 后端研发-倪永富
1 parent 76134058

搜索页增加历史搜索记录

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 +}