element-ui源码修改记录

element,ui,源码,修改,记录 · 浏览次数 : 11

小编点评

**基于element-ui@2.15.14二次修改的UI组件** **简介** 该组件是一个基于element-ui@2.15.14的基础上二次修改的UI组件,它封装了多个UI元素,包括组件、选择器和表单等,使其更加易于使用和维护。 **主要特性** * 支持多级选择 * 只允许最后一级选择 * 可配置只允许最后一级选择 **使用方法** 1. 下载依赖:`npm i @heyu3913/element-ui-customized -S` 2. 在 `main.js` 中按需使用: ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' import { Cascader } from '@heyu3913/element-ui-customized'; import '@heyu3913/element-ui-customized/theme-chalk/index.css' Vue.config.productionTip = false Vue({ render: h => h(App), router, }).$mount('#app') ``` **代码** ```js export default { data() { return { value: [], props: { multiple: true, onlyLastMultiple: true, }, options: [ // ... ], } }, components: { // ... }, methods: { handleChange(value) { console.log(value); } }, mounted() { // ... } }; ``` **注意** * `onlyLastMultiple`属性用于控制最后一级的选择是否允许选择。 * 如果未解决问题,请加入群主微信iverson96i备注问题。

正文

1、介绍

本项目是基于element-ui@2.15.14的基础上,二次修改源码,封装的ui组件,在此特别感谢elemen-ui组件库

2、更新功能

2.1在el-cascader组件的基础上,添加了只多选最后一级的功能,效果图如下:

使用方式:

  • 下载依赖:
 cnpm i @heyu3913/element-ui-customized -S
  • 可以在main.js中按需使用:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import { Cascader } from '@heyu3913/element-ui-customized';
import '@heyu3913/element-ui-customized/theme-chalk/index.css'; //很重要,一定要引入

Vue.use(Cascader)
Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  router,

}).$mount('#app')
  • 组件:
<template>
  <div id="app">
    <el-cascader
        :options="options"
        :props="props"
        @change="handleChange"
        clearable>
    </el-cascader>
    <h2>
      visibleData: {{value}}
    </h2>
  </div>
</template>

<script>
export default {
  data() {
    return {
      value: [],
      props: { multiple: true,onlyLastMultiple:true },
      options: [
        {
          value: 'zhinan',
          label: '指南',
          children: [{
            value: 'shejiyuanze',
            label: '设计原则',
            children: [{
              value: 'yizhi',
              label: '一致'
            }, {
              value: 'fankui',
              label: '反馈'
            }, {
              value: 'xiaolv',
              label: '效率'
            }, {
              value: 'kekong',
              label: '可控'
            }]
          }, {
            value: 'daohang',
            label: '导航',
            children: [{
              value: 'cexiangdaohang',
              label: '侧向导航'
            }, {
              value: 'dingbudaohang',
              label: '顶部导航'
            }]
          }]
        }, {
          value: 'zujian',
          label: '组件',
          children: [{
            value: 'basic',
            label: 'Basic',
            children: [{
              value: 'layout',
              label: 'Layout 布局'
            }, {
              value: 'color',
              label: 'Color 色彩'
            }, {
              value: 'typography',
              label: 'Typography 字体'
            }, {
              value: 'icon',
              label: 'Icon 图标'
            }, {
              value: 'button',
              label: 'Button 按钮'
            }]
          }, {
            value: 'form',
            label: 'Form',
            children: [{
              value: 'radio',
              label: 'Radio 单选框'
            }, {
              value: 'checkbox',
              label: 'Checkbox 多选框'
            }, {
              value: 'input',
              label: 'Input 输入框'
            }, {
              value: 'input-number',
              label: 'InputNumber 计数器'
            }, {
              value: 'select',
              label: 'Select 选择器'
            }, {
              value: 'cascader',
              label: 'Cascader 级联选择器'
            }, {
              value: 'switch',
              label: 'Switch 开关'
            }, {
              value: 'slider',
              label: 'Slider 滑块'
            }, {
              value: 'time-picker',
              label: 'TimePicker 时间选择器'
            }, {
              value: 'date-picker',
              label: 'DatePicker 日期选择器'
            }, {
              value: 'datetime-picker',
              label: 'DateTimePicker 日期时间选择器'
            }, {
              value: 'upload',
              label: 'Upload 上传'
            }, {
              value: 'rate',
              label: 'Rate 评分'
            }, {
              value: 'form',
              label: 'Form 表单'
            }]
          }, {
            value: 'data',
            label: 'Data',
            children: [{
              value: 'table',
              label: 'Table 表格'
            }, {
              value: 'tag',
              label: 'Tag 标签'
            }, {
              value: 'progress',
              label: 'Progress 进度条'
            }, {
              value: 'tree',
              label: 'Tree 树形控件'
            }, {
              value: 'pagination',
              label: 'Pagination 分页'
            }, {
              value: 'badge',
              label: 'Badge 标记'
            }]
          }, {
            value: 'notice',
            label: 'Notice',
            children: [{
              value: 'alert',
              label: 'Alert 警告'
            }, {
              value: 'loading',
              label: 'Loading 加载'
            }, {
              value: 'message',
              label: 'Message 消息提示'
            }, {
              value: 'message-box',
              label: 'MessageBox 弹框'
            }, {
              value: 'notification',
              label: 'Notification 通知'
            }]
          }, {
            value: 'navigation',
            label: 'Navigation',
            children: [{
              value: 'menu',
              label: 'NavMenu 导航菜单'
            }, {
              value: 'tabs',
              label: 'Tabs 标签页'
            }, {
              value: 'breadcrumb',
              label: 'Breadcrumb 面包屑'
            }, {
              value: 'dropdown',
              label: 'Dropdown 下拉菜单'
            }, {
              value: 'steps',
              label: 'Steps 步骤条'
            }]
          }, {
            value: 'others',
            label: 'Others',
            children: [{
              value: 'dialog',
              label: 'Dialog 对话框'
            }, {
              value: 'tooltip',
              label: 'Tooltip 文字提示'
            }, {
              value: 'popover',
              label: 'Popover 弹出框'
            }, {
              value: 'card',
              label: 'Card 卡片'
            }, {
              value: 'carousel',
              label: 'Carousel 走马灯'
            }, {
              value: 'collapse',
              label: 'Collapse 折叠面板'
            }]
          }]
        }, {
          value: 'ziyuan',
          label: '资源',
          children: [{
            value: 'axure',
            label: 'Axure Components'
          }, {
            value: 'sketch',
            label: 'Sketch Templates'
          }, {
            value: 'jiaohu',
            label: '组件交互文档'
          }]
        }]
    };
  },
  components: {
  },
  methods: {
    handleChange(value) {
      console.log(value);
    }
  },
  mounted() {

  }

};
</script>
  • 备注:
    所有使用方式几乎和element-ui官方使用文档一致,唯一区别就是:
    开启最后一级多选,需要在props配置中将 onlyLastMultiple设置为true
    配置如下:
      props: { multiple: true,onlyLastMultiple:true },
  • ps:如果还没解决你问题,加群主微信iverson96i 备注问题

与element-ui源码修改记录相似的内容:

element-ui源码修改记录

## 1、介绍 本项目是基于element-ui@2.15.14的基础上,二次修改源码,封装的ui组件,在此特别感谢[elemen-ui组件库](https://github.com/ElemeFE/element) ## 2、更新功能 ### 2.1在el-cascader组件的基础上,添加了只多

Element-ui源码解析(一):项目目录解析

开始看原码了,我们要开始一些准备工作, 既然是拆代码,那么我们要先把代码搞到手 1.如何下载原码 随便开个项目 npm i element-ui -S 将源码下载到本地 随后在node_modules中找到element-ui文件夹 开搞 2.目录结构解析 目录结构如下: 1.lib:该目录包含了

Element-ui源码解析(二):最简单的组件Button

好家伙,为了有足够的能力去开发组件,先研究一下别人的组件 开始抄袭模仿我们的行业标杆element-ui 找到Button组件的源码 只有三个文件,看上去非常易读,开搞 其中最重要的部分,自然是button.vue

QShop商城-开发规范

QShop商城-项目介绍 QShop商城,是全新推出的一款轻量级、高性能、前后端分离的电商系统,支持微信小程序,前后端源码100%开源,完美支持二次开发,让您快速搭建个性化独立商城。 技术架构:.Net6/7、WebAPI、Swagger、NUnit、VUE、Element-UI、Ant Desig

element-ui使用el-date-picker日期组件常见场景

开始 最近一直在使用 element-ui中的日期组件。 所以想对日期组件常用的做一个简单的总结; 1.处理日期组件选择的时候面板联动问题 2.限制时间范围 解除两个日期面板之间的联动 我们发现2个日期面板之间其实是有联动关系的; 开始时间面板和结束时间面板始终只能相邻; 不能出现开始时间选择3月,

WPF实现Element UI风格的日期时间选择器

### 背景 业务开发过程中遇到一个日期范围选择的需求,和Element UI的DateTimePicker组件比较类似,由两个日历控件组成,联动选择起始时间和结束时间。 ### 问题 WPF中提供了一个`DatePicker`的控件,主要由`DatePickerTextBox`、`Button`和

跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)

基于 Vue、Element UI 和 Spring Boot + MyBatis 的动态表单系统前端实现解析 在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于 Vue、Element UI 和 S

我的第一个项目(十四) :完成数据保存功能(前端,增查改接口)

好家伙,天天拖,终于写完了 代码已开源(Gitee) PH-planewar: 个人开发的全栈小游戏 前端:vue2 + element-ui 后端: Springboot + mybatis-plus 数据库: mysql 目前实现功能: 1.注册登陆 2.游戏数据保存 3.游戏运行 (gitee

我的第一个项目(十五) :完成数据保存功能(后端,改update)

好家伙, 代码已开源(Gitee) PH-planewar: 个人开发的全栈小游戏 前端:vue2 + element-ui 后端: Springboot + mybatis-plus 数据库: mysql 目前实现功能: 1.注册登陆 2.游戏数据保存 3.游戏运行 (gitee.com) 后端这

CAS前后端分离解决方案

CAS前后端分离解决方案 关于CSS服务器的搭建和整合SpringBoot参考:CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 环境与需求 后端:springboot 前端: vue + element UI 在登录后之后登录状态在系统中自主控制。 问题 当接口在CAS过滤器中时