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 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
改进:论坛UBB代码自动插入方式
Dec 22 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
js propertychange和oninput事件
Sep 28 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
JS开发中基本数据类型具体有哪几种
Oct 19 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
vue等两个接口都返回结果再执行下一步的实例
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
一个数据采集类
2007/02/14 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
python GUI实例学习
2017/11/21 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python多图片合并PDF的方法
2019/01/03 Python
python opencv实现图像边缘检测
2019/04/29 Python
python如何实现复制目录到指定目录
2020/02/13 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
古驰英国官网:GUCCI英国
2020/03/07 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
给海归自荐信的建议
2013/12/13 职场文书
公司司机岗位职责
2014/02/07 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
计生工作先进事迹
2014/08/15 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
投资入股协议书
2016/03/22 职场文书
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
python读取mat文件生成h5文件的实现
2022/07/15 Python