当前位置: 萬仟网 > IT编程>脚本编程>vue.js > vue.js element-ui tree树形控件改iview的方法

vue.js element-ui tree树形控件改iview的方法

2018年04月17日 13:36  | 萬仟网IT编程  | 我要评论

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插件

使用方法

必须安装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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com