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对表单的操作代码集合
Apr 06 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
May 08 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
基于jQuery实现放大镜特效
Oct 19 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
May 12 Javascript
JS实现按钮颜色切换效果
Sep 05 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
ES6知识点整理之对象解构赋值应用示例
Apr 17 Javascript
Element Badge标记的使用方法
Jul 27 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制作图型计数器的例子
2006/10/09 PHP
菜鸟学PHP之Smarty入门
2007/01/04 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
浅谈PHP封装CURL
2019/03/06 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python3 操作符重载方法示例
2017/11/23 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
2015元旦节寄语
2014/12/08 职场文书
教师个人师德总结
2015/02/06 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
python简单验证码识别的实现过程
2021/06/20 Python