• vue实现搜索功能


    vue实现搜索功能

    template 部分

    <!-- 搜索页面 -->
    <template>
      <div>
        <div class="goback">
          <el-button type="danger" @click="goback">返回</el-button>
        </div>
    
        <div>
          <el-input v-model="search" placeholder="请输入内容"></el-input>
          <el-button type="primary" @click="Search">搜索</el-button>
        </div>
        <!-- 搜索后的 -->
        <div v-if="searchData.length>0">
          <ul v-for="(item, index) in searchData" :key="index">
            <li>
              <span>{{item.contact_name}}</span>
              <span>{{item.address}}</span>
              <span>{{item.phone}}</span>
            </li>
          </ul>
        </div>
        <!-- 搜索前的 -->
        <div v-else>
          <ul v-for="(item, index) in list" :key="index">
            <li>
              <span>{{item.contact_name}}</span>
              <span>{{item.address}}</span>
              <span>{{item.phone}}</span>
            </li>
          </ul>
        </div>
      </div>
    </template>

    JS 部分

    <script>
    import { mapGetters } from "vuex";
    import api from "../../api/axiosConfig.js";
    export default {
      data() {
        return {
          search: "",
          // 原本展示数据
          list: [],
          // 搜索后的展示数据
          searchData: []
        };
      },
    
      components: {},
    
      computed: {
        ...mapGetters(["getAddressList", "getLoginUser"])
      },
    
      created() {
        // 获取的接口数据
        this.getList();
      },
    
      mounted() {},
    
      methods: {
        goback() {
          this.$router.go(-1);
        },
    
        // 获取接口中数据的方法
        getList() {
          let params = {
            id: this.getLoginUser.id,
            token_sc: this.getLoginUser.token_sc
          };
          api.AddressList(params).then(res => {
            // list 就是原始数据
            this.list = res.data;
          });
        },
    
        Search() {
          // search 是 v-model="search" 的 search
          var search = this.search;
          if (search) {
            this.searchData = this.list.filter(function(product) {
              // 每一项数据
              // console.log(product)
              return Object.keys(product).some(function(key) {
                // 每一项数据的参数名
                // console.log(key)
                return (
                  String(product[key])
                    // toLowerCase() 方法用于把字符串转换为小写。
                    .toLowerCase()
                    // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
                    .indexOf(search) > -1
                );
              });
            });
          }
        }
      }
    };
    </script>

    看看效果

      这是初始样式

    看看输入内容,搜索之后的

    但是,如果输入栏没了内容,下面啥也不显示里,那我来加工一下

  • 相关阅读:
    【转】网络字节序与主机字节序
    VC之美化界面篇 (转)
    VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题(转)
    符验手记
    一友人昨夜接到电话,发生何事
    [转]众VC论道IT峰会:投资是否靠运气
    路过一个小摊,看到一个有趣的现象
    PJSUA提示要注册线程的解决办法
    彩票股票金融与运气之研究(五) 明敌
    随手测一局婚姻,留验
  • 原文地址:https://www.cnblogs.com/mica/p/10870185.html
Copyright © 2020-2023  润新知