elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择

news/2024/12/13 0:47:47/

效果展示(多列可以配置)

  一、icon下拉框的多列选择:

在这里插入图片描述
在这里插入图片描述

  二、常规、通用下拉框的多列选择:

在这里插入图片描述

【注】第二种常规、通用下拉框的多列选择,是在第一种的前端代码上删除几行代码就行(把icon显示标签删去),所以下面着重介绍第一种icon下拉框的多列选择。

思路

  不使用下拉框标签<el-option>来做,使用elementUI提供的popover弹窗来做。

  popover弹窗官方文档以及演示地址:https://element.eleme.cn/#/zh-CN/component/popover#events。

具体代码(复制粘贴即可使用)

   一、html代码:

<el-form-item label="icon" prop="icon"><el-popover placement="bottom-start" width="460" trigger="click" @show="resetIconName()" ><div class="icon-body"><el-input v-model="icon_name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input.native="filterIcons"><i slot="suffix" class="el-icon-search el-input__icon" ></i></el-input><div class="icon-list"><div v-for="(item, index) in iconList" :key="index" @click="selectedIcon(item)"><i :class="item" style="height: 30px;width: 16px;" ></i><span>{{ item }}</span></div></div></div><el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly><i v-if="form.icon" slot="prefix" :class="form.icon" style="height: 32px;width: 16px;"></i><i v-else slot="prefix" class="el-icon-search" style="height: 32px;width: 16px;" ></i></el-input></el-popover>
</el-form-item>

【代码讲解】首先,肯定是在一个<el-form>下的<el-form-item>里面的表单项做的;<el-popover>标签的API可以参考上面贴的官方地址,主要是提供一个点击之后在下面附带的弹窗;弹窗中,我们设置一个输入框来进行选择值的搜索,下方(即<div class="icon-list">部分)用于多列显示我们想选择的值。

  二、vue代码:

	new Vue({data: {// 表单: 收集`新增和修改弹窗`的表单数据form: {"icon": ''},// icon的搜索关键字icon_name:'',// 可选icon列表icons: ["el-icon-platform-eleme","el-icon-eleme","el-icon-delete-solid","el-icon-delete","el-icon-s-tools"],// 用于在页面显示的icon列表iconList: []},mounted: function () {   //自动触发写入的函数this.iconList = this.icons;},methods: {/** 过滤搜索icon */filterIcons() {this.iconList = this.icons;if (this.icon_name) {this.iconList = this.iconList.filter(item => item.includes(this.icon_name))}},/** 选中icon */selectedIcon(name) {this.form.icon = name;document.body.click()},/** 重置搜索icon的关键值 */resetIconName(){this.icon_name = '';}}})

  三、css代码:

<style rel="stylesheet/scss" >.icon-body {width: 100%;padding: 10px;}.icon-body .icon-list {height: 200px;overflow-y: scroll;}.icon-body .icon-list div {height: 30px;line-height: 30px;margin-bottom: -5px;cursor: pointer;// 这里是控制显示几列的地方 3列就是 1/3 = 33%width: 49%;float: left;}.icon-body .icon-list span {fill: currentColor;overflow: hidden;}</style>

其他(把icon图表显示删除,非必须)

  删除html代码里面有关icon的就行,其他不用动,删除后代码如下:

<el-form-item label="icon" prop="icon"><el-popover placement="bottom-start" width="460" trigger="click" @show="resetIconName()" ><div class="icon-body"><el-input v-model="icon_name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input.native="filterIcons"></el-input><div class="icon-list"><div v-for="(item, index) in iconList" :key="index" @click="selectedIcon(item)"><span>{{ item }}</span></div></div></div><el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly></el-input></el-popover>
</el-form-item>

http://www.ppmy.cn/news/109842.html

相关文章

root 密码破解(rd.break)

在Linux系统中&#xff0c;忘记root密码时&#xff0c;可以用此方法进行暴力修改root密码 示例&#xff1a; 设置一个新的记不住的密码 $ echo cnakdnvf | passwd --stdin root $ poweroff 1.启动此虚拟机&#xff0c;选中以下行&#xff0c;并按 【 e 】进入内核编辑页面 …

数据库服务器

数据库服务器&#xff0c;联系Web服务器与DBMS的中间件是负责处理所有的应用程序服务器&#xff0c;包括在web服务器和后台的应用程序或数据库之间的事务处理和数据访问。 基本信息 中文名 数据库服务器 外文名 database server 功能 数据库服务器建立在数据库系统基础上&a…

pycharm内置Git操作失败的原因

文章目录 问题简介解决方案DNS缓存机制知识的自我理解 问题简介 最近在pycharm中进行代码改动递交的时候&#xff0c;总是出现了连接超时或者推送被rejected的情况&#xff0c;本以为是开了代理导致的&#xff0c;但是关闭后还是推送失败&#xff0c;于是上网查了以后&#xf…

微信小程序授权登录

微信小程序—授权登录 一、小程序登录 登录流程时序 说明: 1.小程序端调用 wx.login() 获取临时登录凭证code &#xff0c;并回传到开发者服务器。 2.服务器调用 code2Session 接口&#xff0c;换取 用户唯一标识 OpenID 和 会话密钥 session_key。 之后开发者服务器可以根…

【C++入门】什么是内联函数?

目录 一、概念 为什么要有内联函数&#xff1f; 内联函数设计的初衷是为了替代部分 #define 宏定义 二、特性 1.空间换时间 2.编译器做主 3.声明定义放一起 总结 一、概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用函数的地方展开&#xff0c;没有…

【22-23 春学期】AI作业12-LSTM

网络 LSTM&#xff08;输入门、遗忘门、输出门&#xff09; LSTM&#xff08;长短时记忆网络&#xff09;是一种特殊的RNN&#xff08;循环神经网络&#xff09;&#xff0c;能够学习长期的依赖关系。它通过原始 RNN 的隐藏层只有一个状态&#xff0c;它对于短期的输入非常敏感…

Spring Cloud Alibaba - 服务注册与发现(Nacos)

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;微服务 &#x1f96d;本文内容&…

Maven jar 包下载失败问题处理【配置Maven国内源】

前言 很多同学在Maven里下载一些依赖的时候&#xff0c;即下载【jar 包】的时候总是会出现一些问题&#xff0c;这里专门做一个教程讲解一下 其实这和你的Maven配置是有关系的&#xff0c;因为Maven是一个国际站点&#xff0c;它的仓库是在国外的&#xff0c;所以我们有时候在下…