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判断输入是否为数字的具体实例
Aug 03 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
关于vue路由缓存清除在main.js中的设置
Nov 06 Javascript
element-ui中按需引入的实现
Dec 25 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
JavaScript 对象创建的3种方法
Nov 17 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
模拟xcopy的函数
2006/10/09 PHP
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP正则验证Email的方法
2015/06/15 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python多线程扫描端口(线程池)
2019/09/04 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
详解Python中的Lock和Rlock
2021/01/26 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
应聘编辑自荐信范文
2014/03/12 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
聘任合同书
2015/09/21 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers