WxApp/page/component/search/search.js

85 lines
2.2 KiB
JavaScript
Raw Normal View History

2024-08-29 14:36:16 +08:00
let timeId = null;
Page({
data: {
history: [],
hot: ['新鲜芹菜', '大红枣', '滋补桂圆干'],
result: [
{
id: 1,
url: '../details/details',
thumb: '/image/s4.png',
title: '瓜子 100g',
price: 0.01
},
{
id: 2,
url: '../details/details',
thumb: '/image/s5.png',
title: '新鲜芹菜 500g',
price: 0.02
}
],
showKeywords: false,
keywords: ['山东肚脐橙', '湖南冰糖橙', '麻涌香蕉', '冰糖心苹果'],
value: '',
showResult: false,
},
cancelSearch() {
this.setData({
showResult: false,
showKeywords: false,
value: ''
})
},
searchInput(e) {
if(!e.detail.value){
this.setData({
showKeywords: false
})
}else{
if(!this.data.showKeywords){
timeId && clearTimeout(timeId);
timeId = setTimeout(() => {
this.setData({
showKeywords: true
})
}, 1000)
}
}
},
keywordHandle(e) {
const text = e.target.dataset.text;
this.setData({
value: text,
showKeywords: false,
showResult: true
})
this.historyHandle(text);
},
historyHandle(value) {
let history = this.data.history;
const idx = history.indexOf(value);
if (idx === -1) {
// 搜索记录只保留8个
if (history.length > 7) {
history.pop();
}
} else {
history.splice(idx, 1);
}
history.unshift(value);
wx.setStorageSync('history', JSON.stringify(history));
this.setData({
history
});
},
onLoad() {
const history = wx.getStorageSync('history');
if (history) {
this.setData({
history: JSON.parse(history)
})
console.log(this.data.history);
}
}
})