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 相关文章推荐
javascript 树控件 比较好用
Jun 11 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
Dec 18 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
javascript中Date对象应用之简易日历实现
Jul 12 Javascript
javascript 跨域问题以及解决办法
Jul 17 Javascript
详解10分钟学会vue滚动行为
Sep 21 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 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网站基础优化方法小结
2008/09/29 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php 文件上传实例代码
2012/04/19 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
Angular2中监听数据更新的方法
2018/08/31 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
通过C++学习Python
2015/01/20 Python
python的pstuil模块使用方法总结
2019/07/26 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python小项目之五子棋游戏
2019/12/26 Python
python开发一款翻译工具
2020/10/10 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
应届大学生简历中的自我评价
2014/01/15 职场文书
法学院方阵解说词
2014/01/29 职场文书
西门豹教学反思
2014/02/04 职场文书
就业协议书范本
2014/04/11 职场文书
一年级小学生评语
2014/04/22 职场文书
升学宴演讲稿
2014/09/01 职场文书
繁星春水读书笔记
2015/06/30 职场文书
入队仪式主持词
2015/07/04 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
Python中的pprint模块
2021/11/27 Python