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 相关文章推荐
js删除所有的cookie的代码
Nov 25 Javascript
jquery中ajax学习笔记3
Oct 16 Javascript
JavaScript实现瀑布流以及加载效果
Feb 11 Javascript
利用n工具轻松管理Node.js的版本
Apr 21 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
如何重置vue打印变量的显示方式
Dec 06 Javascript
解决vue 绑定对象内点击事件失效问题
Sep 05 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
详解Python中的元组与逻辑运算符
2015/10/13 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
pandas 对group进行聚合的例子
2019/12/27 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
优秀员工自荐书范文
2013/12/08 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
电影雷锋观后感
2015/06/10 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
python Django框架快速入门教程(后台管理)
2021/07/21 Python