• 解决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

    学如逆水行舟 不进 则退!
  • 相关阅读:
    [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++
    [No0000138]软件开发基础知识
    [No0000137]字符编码详解
    [No0000144]深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing)理解堆与栈1/4
    [No0000136]6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
    [No0000135]程序员修炼之道 Tips
    phpstorm 调试时浏览器显示The requested resource / was not found on this server
    php注解
    phpStorm 配置PHP_CodeSniffer自动检查代码
    php
  • 原文地址:https://www.cnblogs.com/jmf0529/p/14026281.html
Copyright © 2020-2023  润新知