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判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
jquery mobile changepage的三种传参方法介绍
Sep 13 Javascript
jQuery 和 CSS 的文本特效插件集锦
Dec 12 Javascript
JavaScript中Array对象用法实例总结
Nov 29 Javascript
实例浅析js的this
Dec 11 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
Jan 11 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
巧妙运用v-model实现父子组件传值的方法示例
Apr 07 Javascript
vue实现修改图片后实时更新
Nov 14 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
python实现目录树生成示例
2014/03/28 Python
Python3实现生成随机密码的方法
2014/08/23 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
钳工实习自我鉴定
2013/09/19 职场文书
厂长助理岗位职责
2013/12/27 职场文书
致800米运动员广播稿
2014/02/16 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
小学教研工作总结2015
2015/05/13 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL