vue.js element-ui tree树形控件改iview的方法


Posted in Javascript onMarch 29, 2018

element-ui组件的tree树形控件修改源码改为iview组件

实现原理

修改了element-ui源码,把源码里面的tree模块提取出来

然后修改element自带checkbox等组件为iview的checkbox,并且兼容方法

最后修改element样式,改为iview风格,自己也添加了一些样式

新的tree组件可以说是element的逻辑,iview的风格

<template>
 <div
  @click.stop="handleClick"
  v-show="node.visible">
  <div class="chu-tree-node__content"
   :style="{ 'padding-left': (node.level - 1) * tree.indent + 'px' }">
   <span :class="arrowClasses" @click.stop="handleExpandIconClick">
     <Icon v-if="!node.isLeaf" type="arrow-right-b"></Icon>
   </span>
   <Checkbox
    v-if="showCheckbox"
    :value="node.checked"
    :indeterminate="node.indeterminate"
    :disabled="!!node.disabled"
    @click.native.stop
    @on-change="handleCheckChange"></Checkbox>
   <span
    v-if="node.loading"
    class="ivu-load-loop">
   </span>
   <node-content :node="node"></node-content>
  </div>
  <collapse-transition>
   <div
    v-show="expanded">
    <el-tree-node
     :render-content="renderContent"
     v-for="child in node.childNodes"
     :key="getNodeKey(child)"
     :node="child"
     @node-expand="handleChildNodeExpand">
    </el-tree-node>
   </div>
  </collapse-transition>
 </div>
</template>

修改handleCheckChange,因为iview的checkbox组件逻辑不同,函数的返回不一样,需要兼容

handleCheckChange(ev) {
    this.node.setChecked(ev, !this.tree.checkStrictly);
   },

提取完成后的项目结构,以及封装成npm插件

vue.js element-ui tree树形控件改iview的方法

使用方法

必须安装iview

样式风格全部替换成了ivew

功能全部按照element-ui原先一样

npm i chu-tree-iview
import chuView from 'chu-tree-iview'

Vue.use(chuView)

<chu-tree></chu-tree>

使用文档跟element-ui一模一样

http://element-cn.eleme.io/#/zh-CN/component/tree

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
Mar 15 Javascript
javascript alert乱码的解决方法
Nov 05 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
JQuery悬停控制图片轮播——代码简单
Aug 05 Javascript
javascript滚轮事件基础实例讲解(37)
Feb 14 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
JavaScript函数中的this四种绑定形式
Aug 15 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
小程序实现层叠卡片滑动效果
Aug 26 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
Vue 源码分析之 Observer实现过程
Mar 29 #Javascript
vue 实现全选全不选的示例代码
Mar 29 #Javascript
Angular开发实践之服务端渲染
Mar 29 #Javascript
使用vue2实现购物车和地址选配功能
Mar 29 #Javascript
vue axios请求拦截实例代码
Mar 29 #Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 #Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 #jQuery
You might like
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
喜之郎果冻广告词
2014/03/20 职场文书
保险公司早会主持词
2014/03/22 职场文书
负责人任命书范本
2014/06/04 职场文书
责任书范本
2014/08/25 职场文书
表彰大会新闻稿
2015/07/17 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
Python进程间的通信之语法学习
2022/04/11 Python