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 ui(接口)介绍
Sep 17 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
Dec 14 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
网站404页面3秒后跳到首页的实例代码
Aug 16 Javascript
js实现进度条的方法
Feb 13 Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 Javascript
js返回顶部实例分享
Dec 21 Javascript
BootStrap select2 动态改变值的方法
Feb 10 Javascript
微信小程序wx:for和wx:for-item的用法详解
Apr 01 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
Vue axios 将传递的json数据转为form data的例子
Oct 29 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 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中的函数-- foreach()的用法详解
2013/06/24 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
内科护士实习自我鉴定
2013/10/17 职场文书
幼儿园家长寄语
2014/04/02 职场文书
单位授权委托书范文
2014/08/02 职场文书
大学军训决心书
2015/02/05 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server