zoukankan      html  css  js  c++  java
  • 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>
    复制代码

    看看效果

      这是初始样式

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

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

  • 相关阅读:
    MathType输入框怎么调整
    几何画板中去除画出的线段的教程
    MathType怎么编辑半开半闭区间
    几何画板给月牙图形填充颜色的技巧
    MathType调整矩阵分隔线粗细的方法
    帮你深入理解OAuth2.0协议
    phalapi
    Spring松耦合实例
    让前端工程师糟心的正则表达式到底是什么?
    composer安装
  • 原文地址:https://www.cnblogs.com/zbl3033/p/13394854.html
Copyright © 2011-2022 走看看