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 concat数组累加 示例
Sep 03 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
JS对象转换为Jquery对象实现代码
Dec 29 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
Sep 07 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 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编程语言开发动态WAP页面
2006/10/09 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
js Dialog 实践分享
2012/10/22 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
element实现合并单元格通用方法
2019/11/13 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
js实现拖拽与碰撞检测
2020/09/18 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
建龙钢铁面试总结
2014/04/15 面试题
管理科学大学生求职信
2013/11/13 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
厨师长岗位职责
2014/03/02 职场文书
学校政风行风整改方案
2014/10/25 职场文书
入伍通知书
2015/04/23 职场文书
四年级语文教学反思
2016/03/03 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL