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 相关文章推荐
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
JavaScript动态改变表格单元格内容的方法
Mar 30 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
BootStrap Select清除选中的状态恢复默认状态
Jun 20 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
Jul 18 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 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中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
javascript中Function类型详解
2015/04/28 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
简单的三步vuex入门
2018/05/20 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Python类super()及私有属性原理解析
2020/06/15 Python
浅析Python中字符串的intern机制
2020/10/03 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
高级销售求职信
2014/02/21 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
房产公证书格式
2015/01/26 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python