zoukankan      html  css  js  c++  java
  • 解决Element 远程搜索el-select 选项过多问题

    Element 远程搜索el-select,显示特定条数,不会导致选项过多 ,导致页面丑化。

     引用:

    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    
    <script src="https://unpkg.com/vue/dist/vue.js"></script>

    页面代码:

    <div id="app">
            <el-select @@blur="hideMask" @@focus="showMask" @@visible-change="visibleChange($event)" @@change="selectChanged" style="100%;top:0;z-index:20000;margin-top:43px; position: fixed; _position: relative;" placeholder="门店快捷搜索"
                       v-model="contents"
                       filterable
                       remote
                       :remote-method="remoteMethod"
                       no-data-text="无匹配数据">
                <el-option v-for="item in regionDataList"
                           :key="item.id"
                           :label="item.value"
                           :value="item.value">
                </el-option>
                <div v-if="regionDataList.length > 14" class="search-keyword">
                    <span style="margin-left:10%;font-size:15px;color:darkgrey">当前只显示前15条结果,请完善搜索关键字</span>
                </div>
            </el-select>
        </div>

    script:

     var app = new Vue({
            el: '#app',
            data:{
            contents: "",//
            regionDataList: [],//渲染页面的 区域选项数据
            region_DataList: [],//区域选项所有数据
    
        },
            //Element 远程搜索组件
            setDistrict() {
            var jia = this;
            $.ajax({
                type: "Post",
                url: "/DashBoard/Region",
                success: function (res) {
                    jia.region_DataList = res.Data // 先存一份完整的
                    jia.regionDataList = res.Data.slice(0, 15) // 然后渲染到页面上的是截取前面n条的
                }
            })
        },
            remoteMethod(query) {
                var jia = this;
                if(query !== '') {
                    query = query.trim();
        jia.regionDataList = jia.region_DataList.filter(item => {
            return item.value.indexOf(query) > -1
        }).slice(0, 15) // 用户搜索的时, 根据完整的列表来搜, 搜到的结果同样截取前n条, 不足n条忽略
    } else {
            jia.regionDataList = jia.region_DataList.slice(0, 15) // 关键字为空的时候又将完整的列表数据截取前n条渲染回去
        }
    },
    })

    效果图:

    官方文档:https://element.eleme.cn/#/zh-CN/component/select

    学如逆水行舟 不进 则退!
  • 相关阅读:
    vue脚手架引入MD5加密函数
    mysql 使用 MD5函数 校验账号密码
    iview引用自定义的图标
    vue 生命周期钩子
    mysql: show processlist 详解
    vue脚手架中动态引用图片的办法
    jsp 获取后端配置文件.properties的某个配置内容
    mybatis update 返回值
    python_判断缩写
    python_深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/jmf0529/p/14026281.html
Copyright © 2011-2022 走看看