当前位置: 首页 > news >正文

Vue3 封装 element-plus 图标选择器

一、实现效果

二、实现步骤

2.1. 全局注册 icon 组件

// main.ts
import App from './App.vue';
import { createApp } from 'vue';
import * as ElementPlusIconsVue from '@element-plus/icons-vue'const app = createApp(App);// 全局挂载和注册 element-plus 的所有 icon
app.config.globalProperties.$icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.config.globalProperties.$icons.push(key)app.component(key, component)
}app.mount('#app');

2.2. 组件实现

<script setup lang="ts">
import { ComponentInternalInstance, defineEmits, defineProps, getCurrentInstance } from 'vue'const { appContext: {app: { config: { globalProperties } } } } = getCurrentInstance() as ComponentInternalInstanceinterface Props {modelValue: string
}
const props = defineProps<Props>()const emits = defineEmits(['update:modelValue'])
</script><template><el-popover trigger="focus" :width="256"><template #reference><el-button :icon="modelValue">{{ modelValue }}</el-button></template><div class="el-icon-picker"><component v-for="icon in globalProperties.$icons" :key="icon":class="[icon, 'icon', { 'icon-active': icon == modelValue }]":is="icon"@click="emits('update:modelValue', icon)"></component></div></el-popover>
</template><style scoped>
.el-icon-picker {height: 256px;overflow-y: scroll;display: flex;justify-content: space-around;flex-wrap: wrap;
}.icon {display: inline-block;width: 24px;height: 24px;color: var(--el-text-color-regular);font-size: 20px;border-radius: 4px;cursor: pointer;text-align: center;line-height: 45px;margin: 5px;
}.icon:hover {color: var(--el-color-primary);
}.icon-active {color: var(--el-color-primary);
}
</style>

2.3. 使用

<script setup lang="ts">
import { ref } from 'vue';
import ElIconPicker from './components/el-icon-picker.vue';const icon = ref<string>('');
</script><template><el-form><el-form-item label="图标"><ElIconPicker v-model="icon"></ElIconPicker></el-form-item></el-form>
</template>

相关文章:

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…...

超详细C语言实现——通讯录

目录 一、介绍 二、源代码 test.c: Contact.c: Contact.h: 代码运行结果&#xff1a; 三、开始实现 1.基本框架&#xff1a; 2.添加联系人&#xff1a; 3.显示联系人信息&#xff1a; 4.删除联系人信息&#xff1a; 5.查看指定联系人信息&#xff1a; 6.修改联系人…...

zabbix监控添加监控项及其监控Mysql、nginx

本届主要介绍添加监控项和修改中文乱码&#xff0c;监控mysql&#xff0c;nginx服务 一、zabbix监控添加监控项 1、配置agent服务器 在配置文件中添加&#xff1a; UserParameterlsq_userd,free -m | grep Mem | awk { print $3 } 服务器内存使用量 UserParameterdu,…...

Docker 部署 MongoDB 服务

拉取最新版本的 MongoDB 镜像&#xff1a; $ sudo docker pull mongo:latest在本地预先创建好 db 和 configdb 目录, 用于映射 MongoDB 容器内的 /data/db 和 /data/configdb 目录。 使用以下命令来运行 MongoDB 容器: $ sudo docker run -itd --name mongo --privilegedtru…...

QUIC协议报文解析(三)

在前面的两篇文字里我们简单介绍了QUIC的发展历史&#xff0c;优点以及QUIC协议的连接原理。本篇文章将会以具体的QUIC报文为例&#xff0c;详细介绍QUIC报文的结构以及各个字段的含义。 早期QUIC版本众多&#xff0c;主要有谷歌家的gQUIC&#xff0c;以及IETF致力于将QUIC标准…...

pytorch迁移学习训练图像分类

pytorch迁移学习训练图像分类 一、环境配置二、迁移学习关键代码三、完整代码四、结果对比 代码和图片等资源均来源于哔哩哔哩up主&#xff1a;同济子豪兄 讲解视频&#xff1a;Pytorch迁移学习训练自己的图像分类模型 一、环境配置 1&#xff0c;安装所需的包 pip install …...

SQL 如何提取多级分类目录

前言 POI数据处理&#xff0c;原始数据为csv格式&#xff0c;整理入库至PostGreSQL&#xff0c;本例使用PostGreSQL13版本。 一、POI POI&#xff08;一般作为Point of Interest的缩写&#xff0c;也有Point of Information的说法&#xff09;&#xff0c;通常称作兴趣点&am…...

从中序遍历和后序遍历构建二叉树

题目描述 106. 从中序与后序遍历序列构造二叉树 中等 1.1K 相关企业 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1…...

《计算机视觉中的多视图几何》笔记(11)

11 Computation of the Fundamental Matrix F F F 本章讲述如何用数值方法在已知若干对应点的情况下求解基本矩阵 F F F。 文章目录 11 Computation of the Fundamental Matrix F F F11.1 Basic equations11.1.1 The singularity constraint11.1.2 The minimum case – sev…...

UE5 ChaosVehicles载具研究

一、基本组成 载具Actor类名称&#xff1a;WheeledVehiclePawn Actor最原始的结构 官方增加了两个摇臂相机&#xff0c;可以像驾驶游戏那样切换多机位、旋转观察 选择骨骼网格体、动画蓝图类、开启物理模拟 二、SportsCar_Pawn 角阻尼&#xff1a;物体旋转的阻力。数值越大…...

数据通信——应用层(域名系统)

引言 TCP到此就告一段落&#xff0c;这也意味着传输层结束了&#xff0c;紧随其后的就是TCP/IP五层架构的应用层。操作系统、编程语言、用户的可视化界面等等都要通过应用层来体现。应用层和我们息息相关&#xff0c;我们使用电子设备娱乐或办公时&#xff0c;接触到的就是应用…...

Visual Studio 更新:远程文件管理器

Visual Studio 中的远程文件管理器可以用来访问远程机器上的文件和文件夹&#xff0c;通过 Visual Studio 自带的连接管理器&#xff0c;可以实现不离开开发环境直接访问远程系统&#xff0c;这确实十分方便。 自从此功能发布以来&#xff0c;VS 开发团队努力工作&#xff0c;…...

ChatGPT追祖寻宗:GPT-3技术报告要点解读

论文地址&#xff1a;Language Models are Few-Shot Learners 往期相关文章&#xff1a; ChatGPT追祖寻宗&#xff1a;GPT-1论文要点解读_五点钟科技的博客-CSDN博客ChatGPT追祖寻宗&#xff1a;GPT-2论文要点解读_五点钟科技的博客-CSDN博客 本文的标题之所以取名技术报告而不…...

java easyexcel 导出多级表头

maven <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version> </dependency> 导出行的对象 import com.alibaba.excel.annotation.ExcelIgnore; import …...

rar格式转换zip格式,如何做?

平时大家压缩文件时对压缩包格式可能没有什么要求&#xff0c;但是&#xff0c;可能因为工作需要&#xff0c;我们要将压缩包格式进行转换&#xff0c;那么我们如何将rar格式转换为其他格式呢&#xff1f;方法如下&#xff1a; 工具&#xff1a;WinRAR 打开WinRAR&#xff0c…...

Java中的构造方法

在Java中&#xff0c;构造方法是类的特殊方法&#xff0c;用于初始化对象的实例变量和执行其他必要的操作&#xff0c;以便使对象能够正确地工作。构造方法与类同名&#xff0c;没有返回类型&#xff0c;并且在创建对象时自动调用。 以下是构造方法的一些基本特性&#xff1a;…...

【Java】fastjson

Fastjson简介 Fastjson是阿里巴巴的团队开发的一款Java语言实现的JSON解析器和生成器&#xff0c;它具有简单易用、高性能、高可用性等优点&#xff0c;适用于Java开发中的数据解析和生成。Fastjson的主要特点包括&#xff1a; 简单易用&#xff1a;Fastjson提供了简单易用的…...

JMeter之脚本录制

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 前言&#xff1a; 对于一些JMeter初学者来说&#xff0c;录制脚本可能是最容易掌握的技能之一。…...

计算机网络的相关知识点总结

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解&#xff1f; 不管是OSI七层模型亦或是TCP/IP四层模型&#xff0c;它们的提出都有一个共同的目的&#xff1a;通过分层来将复杂问题细化&#xff0c;通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层&#xf…...

WPF实现轮播图(图片、视屏)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

轻量化开源方案解放Alienware潜能:从硬件控制到场景革命

轻量化开源方案解放Alienware潜能&#xff1a;从硬件控制到场景革命 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 当你启动电脑却要等待臃肿的Alienw…...

DS4Windows:突破手柄限制,打造跨平台游戏控制体验

DS4Windows&#xff1a;突破手柄限制&#xff0c;打造跨平台游戏控制体验 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 在PC游戏世界中&#xff0c;手柄兼容性一直是玩家面临的主要障碍…...

PX4飞控系统架构深度解析:从模块化设计到自主飞行实战

PX4飞控系统架构深度解析&#xff1a;从模块化设计到自主飞行实战 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot PX4作为开源无人机飞控系统的行业标准&#xff0c;为开发者提供了从多旋翼到固定翼…...

春节前必看:春联生成模型-中文-base部署教程,轻松制作专属对联

春节前必看&#xff1a;春联生成模型-中文-base部署教程&#xff0c;轻松制作专属对联 春节将至&#xff0c;家家户户都开始准备贴春联。但每年想一副既传统又有新意的对联可不容易&#xff0c;要么是市场上买的千篇一律&#xff0c;要么自己创作又缺乏灵感。今天&#xff0c;…...

QWEN-AUDIO与其他AI工具共存:如何合理分配GPU资源?

QWEN-AUDIO与其他AI工具共存&#xff1a;如何合理分配GPU资源&#xff1f; 1. 多AI工具共存的挑战与解决方案 在当前的AI应用场景中&#xff0c;单一GPU服务器往往需要同时运行多个AI模型。QWEN-AUDIO作为一款高性能语音合成系统&#xff0c;如何与其他视觉、语言模型和谐共存…...

Qwen3-ASR-1.7B车载场景应用:驾驶语音助手开发

Qwen3-ASR-1.7B车载场景应用&#xff1a;驾驶语音助手开发 1. 引言 开车时操作导航、切歌、调音量&#xff0c;这些看似简单的操作却暗藏风险。低头一秒&#xff0c;车辆就能开出几十米&#xff0c;事故往往就发生在这瞬间。传统的触屏操作不仅分心&#xff0c;还让驾驶变得不…...

如何用11款开源字体解锁创作可能?宝藏资源轻松上手游戏文字设计

如何用11款开源字体解锁创作可能&#xff1f;宝藏资源轻松上手游戏文字设计 【免费下载链接】HoYo-Glyphs Constructed scripts by HoYoverse 米哈游的架空文字 项目地址: https://gitcode.com/gh_mirrors/ho/HoYo-Glyphs 你是否曾在创作同人作品时&#xff0c;苦于找不…...

第198章 万物编译(秀秀)

弦光研究院物质科学中心的环形实验室内&#xff0c;空气仿佛凝固成了某种可见的期待&#xff0c;每一立方厘米都承载着对技术突破的深切盼望。秀秀独自站立在主控制台前&#xff0c;目光穿透层层防护屏障&#xff0c;聚焦在那个被超导磁体环绕的圆柱形真空腔内。腔内&#xff0…...

Qwen3.5-9B部署教程:CentOS 7兼容方案(glibc升级+systemd服务模板)

Qwen3.5-9B部署教程&#xff1a;CentOS 7兼容方案&#xff08;glibc升级systemd服务模板&#xff09; 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解&#xff08;图文输入&#x…...

intv_ai_mk11惊艳效果展示:Llama中型模型在中文解释说明任务中的表现

intv_ai_mk11惊艳效果展示&#xff1a;Llama中型模型在中文解释说明任务中的表现 1. 模型核心能力概览 intv_ai_mk11作为基于Llama架构的中等规模文本生成模型&#xff0c;在中文解释说明任务中展现出令人印象深刻的能力。这个开箱即用的解决方案特别适合需要清晰、准确表达的…...