0
点赞
收藏
分享

微信扫一扫

vue+elementUI实现搜索框历史记录

芒果六斤半 2022-04-19 阅读 22
            <el-autocomplete
              v-model="smallcx.appid"
              placeholder="appid"
              :fetch-suggestions="querySearch" //重点!!!!!
              style="margin-bottom: 10px"
            />
data(){
  return{
       noRoNameHistory: []  //定义一个存放历史搜索记录的数组
   }
}
querySearch(queryString, cb) {
          // 调用 callback 返回建议列表的数据
          const noRoNameHistory = JSON.parse(localStorage.getItem('array'))
          const results = queryString ? noRoNameHistory.filter(this.createFilter(queryString)) : noRoNameHistory
          cb(results)
      },
createFilter(queryString) {
          return (noRoNameHistory) => {
              return (noRoNameHistory.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
          }
      },
**这段代码根据我们的需求,我是放在请求后的。**
          const noArr = []; // 历史记录数组
          //value是必须的,type最好也加上,我不加出了异常。值就是记录
          const value = this.smallcx.appid;
          const cnoOrName = "coOrName";
          noArr.push({ value: value, type: cnoOrName });
          if (JSON.parse(localStorage.getItem("array"))) {
            // 判断是否已有xxx查询记录的localStorage
            if (localStorage.getItem("array").indexOf(value) > -1) {
              // 判断是否已有此条查询记录,若已存在,则不需再存储
              return;
            }
            if (JSON.parse(localStorage.getItem("array")).length >= 10) {
              let arr = JSON.parse(localStorage.getItem("array"));
              arr.pop();
              //pop移除最后一个数组元素
              localStorage.setItem("array", JSON.stringify(arr));
            }
            //concat合并数组的值:
            localStorage.setItem(
              "array",
              JSON.stringify(
                noArr.concat(JSON.parse(localStorage.getItem("array")))
              )
            );
          } else {
            // 首次创建
            localStorage.setItem("array", JSON.stringify(noArr));
          }```

举报

相关推荐

0 条评论