<template>
<view>
<input type="text" v-model="text" placeholder="输入..........">
<button type="default" @click="serachFn">搜索</button>
<view>
<view class="title">历史记录 <text @click="deleteFn">shanchu</text></view>
<view>
<block v-for="( item,index) in history">
<text class="box">
{{item}}
</text>
</block>
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
history:[], //历史记录数组
text:"" //搜索内容
}
},
onShow(){
var that=this;
// 页面显示获取搜索历史记录信息
uni.getStorage({
key: 'history_key',
success:function(res) {
console.log(res.data);
console.log("获取缓存成功");
that.history=res.data;
}
});
},
methods:{
serachFn(){
// 如果为空则不判断直接返回
if(!this.text.trim()){
return
}
// 查找关键字是否已存在 存在返回第一个查找到的内容 不存在返回undefined
let index=this.history.find(item=>item==this.text.trim());
if(!index){
// 未查找到情况下 历史记录前面增加一条信息
this.history.unshift(this.text);
// 超过5条删除最后一个 保证一直是显示5条内容
if(this.history.length>5){
this.history.pop();
}
// 存入缓存
uni.setStorage({
key: 'history_key',
data: this.history,
success: function () {
console.log('success');
}
});
}
},
deleteFn(){
var that=this;
uni.showModal({
title: '提示',
content: '这是一个模态弹窗',
success: function (res) {
if (res.confirm) {
that.history=[];
uni.setStorage({
key: 'history_key',
data: that.history,
success: function () {
console.log('success');
}
});
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
}
</script>
<style>
input{ height: 40px; margin: 10px; outline: 1px solid red; padding-left: 10px;}
.box{ padding: 5px 10px; border: 1px solid #ddd; margin: 10px;}
.title{ margin: 20px;}
</style>