相关文章推荐
有腹肌的卡布奇诺  ·  js ...·  4 周前    · 
活泼的卤蛋  ·  东阳市巍山高级中学·  11 月前    · 
刚分手的足球  ·  琐罗亚斯德教二元论_百度百科·  1 年前    · 
一身肌肉的大葱  ·  有没有人有宠物捕捉大师的三d漫画【方舟生存进 ...·  1 年前    · 
傲视众生的领带  ·  学军录取率超杭二?!杭州前三所高考录取数据汇 ...·  1 年前    · 
无邪的丝瓜  ·  金龙鱼食用油要上市!你知道它的真面目吗? 日 ...·  2 年前    · 
Code  ›  vue+Element实现Tree树形(是否默认展开所有节点属性: default-expand-all)开发者社区
data
https://cloud.tencent.com/developer/article/1819445
有情有义的蟠桃
2 年前
作者头像
王小婷
0 篇文章

vue+Element实现Tree树形(是否默认展开所有节点属性: default-expand-all)

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 编程微刊 > vue+Element实现Tree树形(是否默认展开所有节点属性: default-expand-all)

vue+Element实现Tree树形(是否默认展开所有节点属性: default-expand-all)

作者头像
王小婷
发布 于 2021-04-29 14:55:49
1.5K 0
发布 于 2021-04-29 14:55:49
举报

vue-element-admin一个基于 vue2.0 和 Eelement 的控制面板 UI 框架,这是使用vue技术栈开发的前端程序员的首选管理系统模板,模板以及非常的成熟了,并且有相关的社区和维护人员,开发时候遇到问题也不要慌。

推荐指数:star:62.1k Github 地址: https://github.com/PanJiaChen/vue-element-admin Demo体验: https://panjiachen.github.io/vue-element-admin/#/dashboard 官方文档: https://panjiachen.github.io/vue-element-admin-site/zh/

今天就来说一下,怎么使用Tree Table 树形表格。废话不多说,首先看一下官方文档吧,看看官方文档是怎么给到的例子吧: 组件: https://element.eleme.cn/#/zh-CN/component/tree

分别通过default-expanded-keys和default-checked-keys设置默认展开和默认选中的节点。需要注意的是,此时必须设置node-key,其值为节点数据中的一个字段名,该字段在整棵树中是唯一的。

静态 在文档上选一颗自己想要的树的demo

<template>
  <div class="grid-content bg-purple">
    <el-tree
      :data="data"
      show-checkbox
      node-key="id"
      :default-expanded-keys="[2, 3]"
      :default-checked-keys="[5]"
    </el-tree>
</template>
<script>
export default {
  data() {
    return {
      data: [
          id: 1,
          label: "一级 2",
          children: [
              id: 3,
              label: "二级 2-1",
              children: [
                  id: 4,
                  label: "三级 3-1-1",
                  id: 5,
                  label: "三级 3-1-2",
                  disabled: true,
              id: 2,
              label: "二级 2-2",
              disabled: true,
              children: [
                  id: 6,
                  label: "三级 3-2-1",
                  id: 7,
                  label: "三级 3-2-2",
                  disabled: true,
      defaultProps: {
        children: "children",
        label: "label",
</script>

效果是这个样子的

在实际应用之中,需要从后端请求过来json数据,然后再对json数据进行一些处理,渲染在界面。 我这里有一些json数据,但是并不是我想要的格式,并不是以上代码中的格式,需要做一些处理,对json的格式的转化。

json数据

{
    "msg": "success",
    "code": 1,
    "data": [{
        "id": 1,
        "organName": "住部门",
        "parentId": null,
        "manager": "zs",
        "phone": null,
        "companyId": 1,
        "address": null
        "id": 19,
        "organName": "uiui",
        "parentId": 1,
        "manager": "iuui",
        "phone": "ui",
        "companyId": 1,
        "address": null
        "id": 20,
        "organName": "3223",
        "parentId": 19,
        "manager": "32",
        "phone": "3232",
        "companyId": 1,
        "address": null
    },  {
        "id": 22,
        "organName": "测试部",
        "parentId": 1,
        "manager": "李云泥",
        "phone": "18117166505",
        "companyId": 1,
        "address": null
        "id": 23,
        "organName": "123",
        "parentId": 19,
        "manager": "1",
        "phone": "12",
        "companyId": 1,
        "address": null
        "id": 24,
        "organName": "www",
        "parentId": 19,
        "manager": "",
        "phone": "",
        "companyId": 1,
        "address": null
}

动态demo如下:

<template>
  <div class="grid-content bg-purple">
    <el-tree
      :data="treeData"
      show-checkbox
      default-expand-all
      node-key="id"
      ref="tree"
      highlight-current
      :props="defaultProps"
    </el-tree>
</template>
<script>
//调用接口
import { getQuerycheckList } from "@/api/data/organ";
export default {
  data() {
    return {
      setTree: [],
      defaultProps: {
        children: "children",
        label: "organName",
      treeData: [],
      organList: [],
  created() {
    //加载部门管理节点接口定义
    this.getQuerycheckList();
  methods: {
    //部门管理节点接口定义
    getQuerycheckList() {
      const params = {};
      this.dataLoading = true;
      getQuerycheckList(params).then((res) => {
        this.setTree = res.data;
        this.organList = res.data.map((a) => ({
          label: a.organName,
          value: a.id,
        //debugger;
        this.getListData();
        this.dataLoading = false;
    //对json的格式的转化
    getListData() {
      let dataArray = [];
      this.setTree.forEach(function (data) {
        //  debugger;
        let parentId = data.parentId;
        if (parentId === null) {
          let objTemp = {
            id: data.id,
            organName: data.organName,
            manager: data.manager,
            phone: data.manager,
            parentId: parentId,
          dataArray.push(objTemp);
      this.treeData = this.data2treeDG(this.setTree, dataArray);
    data2treeDG(datas, dataArray) {
      for (let j = 0; j < dataArray.length; j++) {
        let dataArrayIndex = dataArray[j];
        let childrenArray = [];
        let Id = dataArrayIndex.id;
        for (let i = 0; i < datas.length; i++) {
          let data = datas[i];
          let parentId = data.parentId;
          if (parentId == Id) {
            //判断是否为儿子节点
            let objTemp = {
              id: data.id,
              organName: data.organName,
              manager: data.manager,
              phone: data.phone,
              parentId: parentId,
            childrenArray.push(objTemp);
        dataArrayIndex.children = childrenArray;
        if (childrenArray.length > 0) {
          this.data2treeDG(datas, childrenArray);
 
推荐文章
有腹肌的卡布奇诺  ·  js jquery-ajax/fetch请求时数据文本丢失加号和连接号的问题 - 深入学习ing
4 周前
活泼的卤蛋  ·  东阳市巍山高级中学
11 月前
刚分手的足球  ·  琐罗亚斯德教二元论_百度百科
1 年前
一身肌肉的大葱  ·  有没有人有宠物捕捉大师的三d漫画【方舟生存进化手游吧】_百度贴吧
1 年前
傲视众生的领带  ·  学军录取率超杭二?!杭州前三所高考录取数据汇总!_复交_浙大_录取人数
1 年前
无邪的丝瓜  ·  金龙鱼食用油要上市!你知道它的真面目吗? 日前,上海证监局披露,益海嘉里 金龙鱼 粮油食品股份有限公司正在接受上市辅导,欲在A股独立上市。 中信建投证券 股份有限... - 雪球
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号