122 lines
2.9 KiB
JavaScript
122 lines
2.9 KiB
JavaScript
// mycomponent/searchHistory/searchHistory.js
|
|
Component({
|
|
properties: {
|
|
storageName: {
|
|
type: String,
|
|
value: 'searchHistory'
|
|
},
|
|
showHistory: {
|
|
type: Boolean,
|
|
value: false,
|
|
}
|
|
},
|
|
data: {
|
|
// 搜索历史
|
|
searchHistoryList: [],
|
|
// 标记显示搜索历史
|
|
showFlag: false,
|
|
loadShow: false,
|
|
},
|
|
|
|
lifetimes: {
|
|
attached() {
|
|
console.log(this.properties.storageName,'1212');
|
|
this.initKeywords();
|
|
this.showHistory();
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
showHistory() {
|
|
if (this.data.searchHistoryList.length > 0) {
|
|
this.setData({
|
|
showFlag: true
|
|
});
|
|
}
|
|
},
|
|
|
|
initKeywords () {
|
|
try {
|
|
var localStorageobj = wx.getStorageSync(this.data.storageName);
|
|
if (localStorageobj) {
|
|
this.setData({
|
|
searchHistoryList: JSON.parse(localStorageobj)
|
|
});
|
|
} else {
|
|
wx.setStorageSync(this.data.storageName, "[]");
|
|
}
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
},
|
|
|
|
// 清空历史记录
|
|
clearHistoryItems() {
|
|
try {
|
|
this.triggerEvent("popTag");
|
|
wx.removeStorageSync(this.data.storageName);
|
|
this.setData({
|
|
searchHistoryList: [],
|
|
showFlag: false
|
|
});
|
|
} catch (err){
|
|
console.log(err);
|
|
}
|
|
},
|
|
|
|
// 删除一项历史记录
|
|
popHistoryItems(event) {
|
|
try {
|
|
let value = event.target.dataset.item;
|
|
let arr = this.data.searchHistoryList;
|
|
let index = this.data.searchHistoryList.findIndex((item) => item.name == value);
|
|
if (value !== "" && index >= 0) {
|
|
arr.splice(index, 1);
|
|
this.triggerEvent("popTag");
|
|
this.setData({
|
|
searchHistoryList: arr
|
|
});
|
|
wx.setStorageSync(this.data.storageName, JSON.stringify(arr));
|
|
}
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
return false;
|
|
},
|
|
|
|
appendKeywords(value) {
|
|
var appendFlag = true;
|
|
if (!value) {
|
|
return;
|
|
}
|
|
value = value.trim();
|
|
if (this.data.searchHistoryList && this.data.searchHistoryList.length > 0) {
|
|
this.data.searchHistoryList.forEach((item, index) => {
|
|
if (item.name === value) {
|
|
appendFlag = false;
|
|
return;
|
|
}
|
|
});
|
|
}
|
|
|
|
if (appendFlag && value !== '') {
|
|
let arr = this.data.searchHistoryList;
|
|
let len = this.data.searchHistoryList.length;
|
|
if (len >= 10) {
|
|
arr.pop();
|
|
}
|
|
let timer = Date.parse(new Date());
|
|
arr.unshift({name: value, key: timer});
|
|
wx.setStorageSync(this.data.storageName, JSON.stringify(arr));
|
|
this.setData({
|
|
searchHistoryList: arr
|
|
});
|
|
}
|
|
},
|
|
|
|
clickTag (event) {
|
|
let value = event.currentTarget.dataset.item;
|
|
this.triggerEvent("clickTag",value);
|
|
},
|
|
}
|
|
}); |