Vue+element ui 可编辑树结构

程序员不易,且干且珍惜!

后管项目中,树形图是我们经常用到的一个组件,很多还要求用户可以编辑,增删改查子级。原来一直都是着急忙慌的写上该功能,现在终于有时间整理一下了。

其实,百度上有很多该功能的实现方法,提供给我们开发过程中借鉴,我也尝试过不同的写法,有的效果不佳,有的已经不能用了,本篇文章,是我总结后的自认为比较好用的,我以后遇到此类的需求就可以直接用,在这里,也算是记录一下:

1,实现效果和逻辑

效果:树结构未操作时,所有层级展开,操作按钮隐藏;鼠标移入某层级,该层级显示要求的操作按钮,比如:最后一层级不可添加,其他层级可以增删改。

逻辑:实现树结构可以编辑主要思想就是 - 树结构开启可自定义模式,操作某一层级的时候显示不同的内容(其实也就是不同的操作按钮和输入框),在我们操作结束时,将更改数据存入后端,完成增删改功能,树结构刷新。

2,效果图

未编辑状态                                                              编辑状态:

 

 3,实现代码

<template>
<div class="type-tree">
/
*
*typeData: 树结构数据
*defaultProps:树结构层级配置项
*default-expand-all:默认展开所有层级
*:expand-on-click-node="false":关闭层级默认点击方法(点击收缩展开层级)
*@node-click="handleNodeClick":自定义层级点击方法
*slot-scope="{ node, data }":开启层级内容自定模式
*@mouseenter="mouseenter(data)":鼠标移入某层级方法:改变数据的del变量值,控制操作图标显示
*@mouseleave="mouseleave(data)":鼠标移入某层级方法:改变数据的del变量值,控制操作图标隐藏
*
/
    <el-tree 
    :data="typeData" 
    :props="defaultProps" 
    node-key="id"
    default-expand-all
    :expand-on-click-node="false"
    @node-click="handleNodeClick">
        <div slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)" style="width: 100%;">
            <div>
                <!-- 不可编辑情况 -->
                <span v-if="data.id != operationVis" class="custom-tree-node">
                 
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值