zoukankan      html  css  js  c++  java
  • 前端搜索

    记录1

    后端接口返回一个list列表,然后前端模拟实时搜索 用的是elementui组件

     <el-input placeholder="输入银行名称检索"
                        v-model.lazy="filterText"
                        ref="searchInput"
                        type="search"
                        @keyup.enter.native="filterNode"
                        @focus="changeText()"></el-input>
    
    

    接口过来的list付给一个新的 数组 ,专门用来做搜索的处理,用watch监测输入的值用filter进行过滤 返回,中间的if判断是为了处理字母大小写,至于else(输入内容撤销后,没有搜索的内容再重新赋值)代码如下:

        watch: {
          filterText: function (data) {
            if (data !== '') {
              this.$nextTick(function () {
                this.loanLists = this.loanLists2.filter(function (item) {
                  if (item.bank_name.toLowerCase().indexOf(data.toLowerCase()) != -1) {
                    console.log(item);
                    return item
                  }
                })
              })
            } else {
              this.loanLists = this.loanLists2
            
            }
          }
        }
    

    记录2

    首先是并列关系 选完点确定才有搜索结果;把返回的数据存起来,使用存起来的数据做处理,直接上代码

          //  过滤事件
          dataListChange(val){
            this.loadingShow.isloading = true
            this.tabData=JSON.parse(localStorage.getItem('tabData'))
            let newArr = []
            for (let i = 0; i < this.tabData.length; i++) {
              let arr = this.tabData[i].list
              newArr.push(this.tabData[i])
              if (val.unitFilter !== undefined && val.unitFilter !== '' && val.unitFilter !== '全部单位') {
                arr = arr.filter(item => {
                  return (item.sqdwdesc == val.unitFilter)
                }, this)
              }
              if ( val.moneyFilter!==undefined && val.moneyFilter !== '' && val.moneyFilter !== '全部金额') {
                let temp = val.moneyFilter.split('-')
                if (arr.length > 0) {
                  arr = arr.filter(item => {
                    return temp[1] > parseFloat(item.sqjecny) && parseFloat(item.sqjecny) >= temp[0]
                  })
                }
              }
              if (val.fzrFilter!==undefined && val.fzrFilter !== ''  && val.fzrFilter !== '全部负责人') {
                arr = arr.filter(item => {
                  return item.sqrdesc == val.fzrFilter
                }, this)
              }
              if (val.searchText!==undefined && val.searchText !== '') {
                if (arr.length > 0) {
                  arr = this.util.arrayFilter(arr, val.searchText)
                }
              }
              newArr[i].list = arr
            }
            this.tabData = newArr
            let self=this
            setTimeout(function(){
              self.loadingShow.isloading = false
            },500)
          }
    
    
  • 相关阅读:
    JAVA NIO 结合多线程
    ios即时通讯客户端开发之-mac上安装MySQL
    使用第三方库AFNetworking时遇到的问题
    用CocoaPods做iOS程序的依赖管理(转载)
    IOS8 设置TableView Separatorinset 分割线从边框顶端开始
    (转)UIViewController中各方法调用顺序及功能详解
    iOS中遍历数组的几种方法
    取消tableView上面多出来20个像素
    UIView动画中的一些坑
    ios build时,Undefined symbols for architecture xxx问题的总结(转)
  • 原文地址:https://www.cnblogs.com/ljh--/p/9449251.html
Copyright © 2011-2022 走看看