怎么在vue中使用Element构建一个自定义树

这期内容当中小编将会给大家带来有关怎么在vue中使用Element构建一个自定义树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

为鹤壁等地区用户提供了全套网页设计制作服务,及鹤壁网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、外贸网站建设、鹤壁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

控件使用

概要

  • 基于element-ui树形控件的二次封装

  • 提供编辑、删除节点的接口

  • 提供一个next钩子,在业务处理失败时可使用next(false)回滚操作

  • 控件源码见 github

文档

props

属性说明类型
value源数据,可使用v-model双向绑定Array

events

事件名说明参数
SaveEdit点击编辑或者添加树节点后的保存事件(父节点数据、当前节点数据、next)
DelNode删除节点事件(父节点数据、当前节点数据、next)
NodeClick节点点击事件(当前节点数据)

源数据描述

属性说明
value树节点的唯一标识
label树节点的显示名称
status(1:编辑状态)(0:显示状态)(-1不可编辑状态)
children子节点数据

调用示例

 

SaveEdit(parentNode,data,next){
  var param = {
   parentNode:parentNode,
   node:data
  }
  this.$http.post(URL,param).then((response) => {
   if(response.status == 200){
    next(true,response.body.data.nodeId)
   }else{
    next(false)
   }
  })
}

实现方式

构建子节点的模板

 
  
   
   
   
   {{node.label}}
  
  
   确认
   取消
  
  
    
    
    
  
 

子节点通过$emit通知父节点事件

SaveEdit(){
  //保存节点事件
  this.$emit('SaveEdit',this.nodeData)
},

父节点核心实现,使用renderContent函数加载子节点模板,点击保存节点时将业务参数保存在runParam中用于在业务操作失败(网络请求失败、服务端异常等情况)的数据回滚

  
  
  //子节点模板
  renderContent(h, { node, data, store }) {
    return h(TreeItem,{
     props:{
      value:data,
      treeNode:node
     },
     on:{
      input:(node)=>{
       data = node
      },
      Append: () => {
       node.expanded = true
       data.children.push({ value: this.$utilHelper.generateUUID(), label: '请输入模块名称', children: [],status:1,isAdd:true })
      },
      //保存节点
      SaveEdit:(nodeData)=> {
       //递归查找父节点
       var parentNode = this.$utilHelper.getNode(this.treeData,data.value).parentNode
       this.runParam.parentNode = parentNode
       this.runParam.data = data
       this.runParam.nodeData = nodeData
       this.$emit('SaveEdit',parentNode,data,this.CanSaveNext)
      }
     }
    })
   }

上述就是小编为大家分享的怎么在vue中使用Element构建一个自定义树了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


网站名称:怎么在vue中使用Element构建一个自定义树
本文链接:http://hbruida.cn/article/ishcop.html