vue自定义实现icon选择器

<template>

  <div>

    <span class="iconStyle" @click="selectIcon">

      <i :class="value" />

    </span>

    <div class="iconTitle">选择图标</div>

    <el-dialog

      title=""

      :visible.sync="dialogVisible"

      width="40%"

      :close-on-click-modal="false"

      :modal="false"

      :show-close="false"

    >

      <div class="iconList">

        <el-tabs v-model="activeName">

          <el-tab-pane

            v-for="item in list"

            :key="item.label"

            :name="item.label"

            :label="item.label"

          >

            <el-scrollbar wrap-class="scrollbar-wrapper">

              <span class="icon" v-for="(item, index) in item.list" :key="item">

                <i

                  :key="item"

                  :class="[item]"

                  :style="{ color: showIndex == index ? '#3a84ff' : '' }"

                  @click="setIcon(item, index)"

                ></i>

              </span>

            </el-scrollbar>

          </el-tab-pane>

        </el-tabs>

      </div>

      <span slot="footer" class="dialog-footer">

        <el-button type="primary" @click="dialogVisible = false"

          >确定</el-button

        >

        <el-button @click="cancel">取消</el-button>

      </span>

    </el-dialog>

  </div>

</template>

  <script>

export default {

  name: "selectIcon",

  model: {

    prop: "value",

    event: "input",

  },

  props: {

    value: {

      type: String,

      default: "",

    },

  },

  data() {

    return {

      dialogVisible: false,

      activeName: "系统图标",

      showIndex: 0,

      list: [

        // {

        //   label: "线框",

        //   list: [

        //     "el-icon-eleme",

        //     "el-icon-delete",

        //     "el-icon-setting",

        //     "el-icon-user",

        //     "el-icon-phone-outline",

        //     "el-icon-more-outline",

        //     "el-icon-star-off",

        //     "el-icon-goods",

        //     "el-icon-warning-outline",

        //     "el-icon-zoom-in",

        //     "el-icon-zoom-out",

        //     "el-icon-remove-outline",

        //     "el-icon-circle-plus-outline",

        //     "el-icon-circle-check",

        //     "el-icon-circle-close",

        //     "el-icon-help",

        //     "el-icon-minus",

        //     "el-icon-plus",

        //     "el-icon-check",

        //     "el-icon-close",

        //     "el-icon-picture-outline",

        //     "el-icon-picture-outline-round",

        //     "el-icon-upload2",

        //     "el-icon-download",

        //     "el-icon-camera",

        //     "el-icon-video-camera",

        //     "el-icon-bell",

        //     "el-icon-bottom-left",

        //     "el-icon-bottom-right",

        //     "el-icon-back",

        //     "el-icon-right",

        //     "el-icon-bottom",

        //     "el-icon-top",

        //     "el-icon-top-left",

        //     "el-icon-top-right",

        //     "el-icon-arrow-left",

        //     "el-icon-arrow-right",

        //     "el-icon-arrow-down",

        //     "el-icon-arrow-up",

        //     "el-icon-d-arrow-left",

        //     "el-icon-d-arrow-right",

        //     "el-icon-video-pause",

        //     "el-icon-video-play",

        //     "el-icon-refresh",

        //     "el-icon-refresh-right",

        //     "el-icon-refresh-left",

        //     "el-icon-finished",

        //     "el-icon-sort",

        //     "el-icon-sort-up",

        //     "el-icon-sort-down",

        //     "el-icon-rank",

        //     "el-icon-loading",

        //     "el-icon-view",

        //     "el-icon-c-scale-to-original",

        //     "el-icon-date",

        //     "el-icon-edit",

        //     "el-icon-edit-outline",

        //     "el-icon-folder",

        //     "el-icon-folder-opened",

        //     "el-icon-folder-add",

        //     "el-icon-folder-remove",

        //     "el-icon-folder-delete",

        //     "el-icon-folder-checked",

        //     "el-icon-tickets",

        //     "el-icon-document-remove",

        //     "el-icon-document-delete",

        //     "el-icon-document-copy",

        //     "el-icon-document-checked",

        //     "el-icon-document",

        //     "el-icon-document-add",

        //     "el-icon-printer",

        //     "el-icon-paperclip",

        //     "el-icon-takeaway-box",

        //     "el-icon-search",

        //     "el-icon-monitor",

        //     "el-icon-attract",

        //     "el-icon-mobile",

        //     "el-icon-scissors",

        //     "el-icon-umbrella",

        //     "el-icon-headset",

        //     "el-icon-brush",

        //     "el-icon-mouse",

        //     "el-icon-coordinate",

        //     "el-icon-magic-stick",

        //     "el-icon-reading",

        //     "el-icon-data-line",

        //     "el-icon-data-board",

        //     "el-icon-pie-chart",

        //     "el-icon-data-analysis",

        //     "el-icon-collection-tag",

        //     "el-icon-film",

        //     "el-icon-suitcase",

        //     "el-icon-suitcase-1",

        //     "el-icon-receiving",

        //     "el-icon-collection",

        //     "el-icon-files",

        //     "el-icon-notebook-1",

        //     "el-icon-notebook-2",

        //     "el-icon-toilet-paper",

        //     "el-icon-office-building",

        //     "el-icon-school",

        //     "el-icon-table-lamp",

        //     "el-icon-house",

        //     "el-icon-no-smoking",

        //     "el-icon-smoking",

        //     "el-icon-shopping-cart-full",

        //     "el-icon-shopping-cart-1",

        //     "el-icon-shopping-cart-2",

        //     "el-icon-shopping-bag-1",

        //     "el-icon-shopping-bag-2",

        //     "el-icon-sold-out",

        //     "el-icon-sell",

        //     "el-icon-present",

        //     "el-icon-box",

        //     "el-icon-bank-card",

        //     "el-icon-money",

        //     "el-icon-coin",

        //     "el-icon-wallet",

        //     "el-icon-discount",

        //     "el-icon-price-tag",

        //     "el-icon-news",

        //     "el-icon-guide",

        //     "el-icon-male",

        //     "el-icon-female",

        //     "el-icon-thumb",

        //     "el-icon-cpu",

        //     "el-icon-link",

        //     "el-icon-connection",

        //     "el-icon-open",

        //     "el-icon-turn-off",

        //     "el-icon-set-up",

        //     "el-icon-chat-round",

        //     "el-icon-chat-line-round",

        //     "el-icon-chat-square",

        //     "el-icon-chat-dot-round",

        //     "el-icon-chat-dot-square",

        //     "el-icon-chat-line-square",

        //     "el-icon-message",

        //     "el-icon-postcard",

        //     "el-icon-position",

        //     "el-icon-turn-off-microphone",

        //     "el-icon-microphone",

        //     "el-icon-close-notification",

        //     "el-icon-bangzhu",

        //     "el-icon-time",

        //     "el-icon-odometer",

        //     "el-icon-crop",

        //     "el-icon-aim",

        //     "el-icon-switch-button",

        //     "el-icon-full-screen",

        //     "el-icon-copy-document",

        //     "el-icon-mic",

        //     "el-icon-stopwatch",

        //     "el-icon-medal-1",

        //     "el-icon-medal",

        //     "el-icon-trophy",

        //     "el-icon-trophy-1",

        //     "el-icon-first-aid-kit",

        //     "el-icon-discover",

        //     "el-icon-place",

        //     "el-icon-location",

        //     "el-icon-location-outline",

        //     "el-icon-location-information",

        //     "el-icon-add-location",

        //     "el-icon-delete-location",

        //     "el-icon-map-location",

        //     "el-icon-alarm-clock",

        //     "el-icon-timer",

        //     "el-icon-watch-1",

        //     "el-icon-watch",

        //     "el-icon-lock",

        //     "el-icon-unlock",

        //     "el-icon-key",

        //     "el-icon-service",

        //     "el-icon-mobile-phone",

        //     "el-icon-bicycle",

        //     "el-icon-truck",

        //     "el-icon-ship",

        //     "el-icon-basketball",

        //     "el-icon-football",

        //     "el-icon-soccer",

        //     "el-icon-baseball",

        //     "el-icon-wind-power",

        //     "el-icon-light-rain",

        //     "el-icon-lightning",

        //     "el-icon-heavy-rain",

        //     "el-icon-sunrise",

        //     "el-icon-sunrise-1",

        //     "el-icon-sunset",

        //     "el-icon-sunny",

        //     "el-icon-cloudy",

        //     "el-icon-partly-cloudy",

        //     "el-icon-cloudy-and-sunny",

        //     "el-icon-moon",

        //     "el-icon-moon-night",

        //     "el-icon-dish",

        //     "el-icon-dish-1",

        //     "el-icon-food",

        //     "el-icon-chicken",

        //     "el-icon-fork-spoon",

        //     "el-icon-knife-fork",

        //     "el-icon-burger",

        //     "el-icon-tableware",

        //     "el-icon-sugar",

        //     "el-icon-dessert",

        //     "el-icon-ice-cream",

        //     "el-icon-hot-water",

        //     "el-icon-water-cup",

        //     "el-icon-coffee-cup",

        //     "el-icon-cold-drink",

        //     "el-icon-goblet",

        //     "el-icon-goblet-full",

        //     "el-icon-goblet-square",

        //     "el-icon-goblet-square-full",

        //     "el-icon-refrigerator",

        //     "el-icon-grape",

        //     "el-icon-watermelon",

        //     "el-icon-cherry",

        //     "el-icon-apple",

        //     "el-icon-pear",

        //     "el-icon-orange",

        //     "el-icon-coffee",

        //     "el-icon-ice-tea",

        //     "el-icon-ice-drink",

        //     "el-icon-milk-tea",

        //     "el-icon-potato-strips",

        //     "el-icon-lollipop",

        //     "el-icon-ice-cream-square",

        //     "el-icon-ice-cream-round",

        //   ],

        // },

        {

          label: "系统图标",

          list: [

            "el-icon-question",

            "el-icon-platform-eleme",

            "el-icon-delete-solid",

            "el-icon-s-tools",

            "el-icon-user-solid",

            "el-icon-phone",

            "el-icon-more",

            "el-icon-star-on",

            "el-icon-s-goods",

            "el-icon-warning",

            "el-icon-info",

            "el-icon-remove",

            "el-icon-circle-plus",

            "el-icon-success",

            "el-icon-error",

            "el-icon-s-help",

            "el-icon-picture",

            "el-icon-upload",

            "el-icon-camera-solid",

            "el-icon-video-camera-solid",

            "el-icon-message-solid",

            "el-icon-s-cooperation",

            "el-icon-s-order",

            "el-icon-s-platform",

            "el-icon-s-fold",

            "el-icon-s-unfold",

            "el-icon-s-operation",

            "el-icon-s-promotion",

            "el-icon-s-home",

            "el-icon-s-release",

            "el-icon-s-ticket",

            "el-icon-s-management",

            "el-icon-s-open",

            "el-icon-s-shop",

            "el-icon-s-marketing",

            "el-icon-s-flag",

            "el-icon-s-comment",

            "el-icon-s-finance",

            "el-icon-s-claim",

            "el-icon-s-custom",

            "el-icon-s-opportunity",

            "el-icon-s-data",

            "el-icon-s-check",

            "el-icon-s-grid",

            "el-icon-menu",

            "el-icon-share",

            "el-icon-d-caret",

            "el-icon-caret-left",

            "el-icon-caret-right",

            "el-icon-caret-bottom",

            "el-icon-caret-top",

          ],

        },

      ],

    };

  },

  methods: {

    setIcon(row, index) {

      this.showIndex = index;

      this.$emit("input", row);

    },

    cancel() {

        this.dialogVisible = false

        this.showIndex = 0;

        this.$emit('cancelIcon')

    },

    selectIcon() {

      this.dialogVisible = true;

    },

  },

};

</script>

  <style scoped lang="scss">

.iconList {

  .el-tab-pane {

    .el-scrollbar {

      width: 600px;

      height: 388px;

      overflow-x: hidden !important;

      .icon {

        display: inline-block;

        width: calc((100% - 60px) / 6);

        height: 40px;

        border: 1px solid #ededed;

        text-align: center;

        box-sizing: border-box;

        line-height: 38px;

        margin-right: 10px;

        border-radius: 3px;

        margin-top: 10px;

        cursor: pointer;

        &:nth-child(-n + 6) {

          margin-top: 0;

        }

        i {

          font-size: 16px;

          color: #303133;

          transition: all 100ms;

        }

        &:hover {

          box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.15);

          i {

            transform: scale(1.5);

          }

        }

      }

    }

  }

}

.iconStyle {

  display: inline-block;

  width: 85px;

  height: 85px;

  border-radius: 50%;

  border: 1px solid #ccc;

  text-align: center;

  line-height: 116px;

  cursor: pointer;

  i {

    font-size: 60px;

    color: #3a84ff;

  }

}

.iconTitle {

    margin-left: 15px;

    margin-top: 3px;

}

</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 商机管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 商机管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目&#xff0c;于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 这个可以分为两大步去写&#xff0c;首先要判断链表是否有环&#xff0c;然后如果有环就去找到环的入口&#xff0c;没有环返…

python3.x的在线与离线安装纯净版

由于计划搭建一套使用python自动分析日志的流程&#xff0c;发现我们的测试环境CentOS 7仍然没有安装python3&#xff0c;无法使用这些新的库。Python 3在设计上着重提升了语言的一致性和易用性&#xff0c;它引入了许多关键改进&#xff0c;此外&#xff0c;Python 3环境拥有丰…

基于springboot+html实现的衣物捐赠平台

一、系统架构 前端&#xff1a;html | layui | jquery | css 后端&#xff1a;springboot | thymeleaf | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 注册 03. web页-首页 04. web页-捐赠衣服 05. web页-论坛交流…

MYSQL--锁机制*

一.对锁机制的大概介绍: 1.大概的来说,MYSQL当中的锁实际上就是合理的管理多个服务器对于同一个共享资源的使用,是计算机协调多个进程或者是线程并发访问某一资源的机制(避免争抢资源的现象发生) 2.在数据库当中,数据是一种可以供许多的用户进行共享使用的资源,如何保证数据并发…

曲线的凹凸性与拐点【高数笔记】

1.什么是曲线的凹凸性 2.什么是曲线的拐点 3.拐点的特征 4.拐点与驻点有什么不同 5.拐点的表示方法与驻点有什么不一样 6.拐点与凹凸区间怎么求

Mathtype安装时word启动显示“文件未找到:MathPage.WLL”

背景 由于老板布置的临时工作&#xff0c;需要安装Mathtype&#xff0c;但尝试了3个不同的版本后&#xff08;每次都卸载干净了&#xff09;&#xff0c;均未能成功安装&#xff0c;出现的报错3个版本各不相同&#xff1a; ①解压安装过程中失败&#xff08;这个版本不再尝试…

GoFrame:如何简单地搭建一个简单地微服务

一切资料来源于GoFrame官网, 感兴趣的, 可以直接去官网查阅相关资料。 首先下载框架工具, 下载地址:https://github.com/gogf/gf/releases 然后进入你想要放置的项目文件夹, 执行命令行 gf init {project_name} #project_name为你的项目名 执行完后项目结构如图所示 然…

同等学力申硕专业介绍——教育学硕士

同等学力申硕的专业很多。 目前有十三大门类&#xff0c;分别是医学、法学、管理学、工学、教育学、经济学、艺术学、文学、历史学、理学、哲学、农学、军事学等&#xff0c;每个大门类中都有很多的细分专业。 今天为大家介绍同等学力申硕专业——教育学。 专业介绍 教育学该…

基于java+springboot动物检疫信息管理系统设计和实现

基于java SSM springboot动物检疫信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

【Vue3】自定义 Vue3 插件(全局实现页面加载动画)

// main.ts import { createApp } from vue import App from ./App.vue import Loading from "./components/Loading/index.ts";const app createApp(App) type Lod {show: () > void,hide: () > void } //编写ts loading 声明文件放置报错 和 智能提示 decl…

python实现常见一元随机变量的概率分布

一. 随机变量 随机变量是一个从样本空间 Ω \Omega Ω到实数空间 R R R的函数&#xff0c;比如随机变量 X X X可以表示投骰子的点数。随机变量一般可以分为两类&#xff1a; 离散型随机变量&#xff1a;随机变量的取值为有限个。连续型随机变量&#xff1a;随机变量的取值是连…

Redis 群集部署

1.关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型基础上&#xff0c;-般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。现实世界中…

(2024,MixLoRA,任务干扰,独立因子选择,条件因子选择)使用 LoRA 的条件混合进行多模态指令调优

Multimodal Instruction Tuning with Conditional Mixture of LoRA 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 任务干扰在多模态指令调优中的 LoRA 应用 3.1 背景&am…

小甲鱼Python07 函数初级

一、创建和调用函数 pass语句表示一个空的代码块&#xff0c;我们经常先写好函数&#xff0c;pass占一个坑&#xff0c;等规划好之后再来填坑。 函数也是可以指定参数的&#xff0c;我们会把参数传进去用来替代形参。 在Python里如果想要返回值&#xff0c;不需要指定函数的返…

仿牛客网项目---显示评论和添加评论功能的实现

这篇文章&#xff0c;我来介绍一下我的项目中的另外一个功能&#xff1a;显示评论和添加评论。 其实这两个功能都不怎么重要&#xff0c;我感觉最重要的应该是用户注册登录功能&#xff0c;这个也了解一下&#xff0c;知道这么一回事儿就好。 首先设计DAO层。 Mapper public …

python实现AES加密解密

1. 前言 AES是一种对称加密&#xff0c;所谓对称加密就是加密与解密使用的秘钥是一个。 之前写过一片关于python AES加密解密的文章&#xff0c;但是这里面细节实在很多&#xff0c;这次我从 参数类型、加密模式、编码模式、补全模式、等等方面 系统的说明如何使用AES加密解密…

直观理解卷积

卷积直观理解 原文来自最容易理解的对卷积(convolution)的解释 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致…

AVL 树

AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。因此&#xff0c;两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年 发明了一种解决…

k8s笔记26--快速实现prometheus监控harbor

k8s笔记26--快速实现prometheus监控harbor 简介采集指标&配置grafana面板采集指标配置grafana面板 说明 简介 harbor是当前最流行的开源容器镜像仓库项目&#xff0c;被大量IT团队广泛应用于生产、测试环境的项目中。本文基于Harbor、Prometheus、Grafana介绍快速实现监控…