用element中的el-tree做横向显示遇到的bug

需求:使用elment ,Tree 树形控件做一个自定义节点横向显示

把左图做成右图效果:

过程:

json数据我放在最后了,有需要测试的可以拿去

代码:

<template>
  <section style="padding:10px;">
	<el-tree :data="testJsonData" show-checkbox default-expand-all node-key="nodeId" ref="tree"
	  highlight-current :default-checked-keys='checkeds' :props="defaultProps" @check="currentChecked" :render-content="renderContents">
	</el-tree>
  </section>
</template>

<script>

export default {
  data() {
    return {
	  testJson:[],
	  testJsonData:[],
	  defaultProps: {
	    children: 'children',
	    label: 'name'
	  },
	  checkeds: [],
    }
  },

  mounted() {
	//实时刷新函数
	this.$nextTick(() => {
	  this.changeCss();
	});
	//引用自己的json数据
	this.testJson = require('../../static/text.json');
	this.testJsonData=[this.testJson.data];
  },
  methods: {
	  renderContents(h, {node,data,store}) { //树节点的内容区的渲染 Function
	    let classname = "";
	    // 判断是否为权限点
	    if (data.isMenu ==false) {
	      classname = "authoritypoint";
	    }
	    return(
	      data.isMenu?<div classs={classname}>{data.name}</div>
	        : <el-tooltip effect='dark' placement='bottom-start' effect="light">
	          <div slot='content'>{data.remark}({data.nodeId})</div>
	          <div class={classname}>{data.name}</div>
	        </el-tooltip>
	    )
	  },
	  changeCss() {
	    var levelName = document.getElementsByClassName("authoritypoint"); // levelname是上面的最底层节点的名字
	    for (var i = 0; i < levelName.length; i++) {
	      // cssFloat 兼容 ie6-8  styleFloat 兼容ie9及标准浏览器
	      levelName[i].parentNode.style.cssFloat = "left"; // 最底层的节点,包括多选框和名字都让他左浮动
	      levelName[i].parentNode.style.styleFloat = "left";
	      levelName[i].parentNode.style.color = "blue";
	      levelName[i].parentNode.onmouseover = function() {
	        this.style.backgroundColor = "#fff";
	      };
	    }
	  },
	  //勾选的项
	  currentChecked() {
	    
	  },
  }
}
</script>

<style scoped>

</style>

Bug:用上面的render-content方法如果遇到在同一节点下首个内容是需要Float的,而下一个内容是不用Float的,但是这个内容的节点需要Float,就会出现下面这种情况

原因:Float会影响下一个节点,所以要在不需要浮动点加上clear属性,而通过调试发现在原有的树形结构上定位不到不需要浮动的点,所以得改变树形的结构

 消除Bug:

在查看文档的时候看到可以自定义树节点,于是我把树形结构拆分了

 

<template>
  <section style="padding:10px;">
	<el-tree :data="testJsonData" show-checkbox default-expand-all node-key="nodeId" ref="tree"
	  highlight-current :default-checked-keys='checkeds' :props="defaultProps" @check="currentChecked">
	  <div :id="data.nodeId" slot-scope="{ node, data }"
	    :class="data.isMenu ==false ? 'authoritypoint' : 'org'">
	    <div v-if="data.isMenu">{{ node.label }}</div>
	    <el-tooltip placement="bottom-start" effect="light" v-if="!data.isMenu">
	      <div slot="content">{{data.remark}}({{data.nodeId}})</div>
	      <div>{{ node.label }}</div>
	    </el-tooltip>
	  </div>
	</el-tree>
  </section>
</template>

<script>

export default {
  data() {
    return {
	  testJson:[],
	  testJsonData:[],
	  defaultProps: {
	    children: 'children',
	    label: 'name'
	  },
	  checkeds: [],
    }
  },

  mounted() {
	//实时刷新函数
	this.$nextTick(() => {
	  this.changeCss();
	});
	//引用自己的json数据
	this.testJson = require('../../static/text.json');
	this.testJsonData=[this.testJson.data];
  },
  methods: {
	  changeCss() {
	    var levelName = document.getElementsByClassName("authoritypoint"); // levelname是上面的最底层节点的名字
	    // console.log('levelName',levelName)
	    for (var i = 0; i < levelName.length; i++) {
	      // cssFloat 兼容 ie6-8  styleFloat 兼容ie9及标准浏览器
	      levelName[i].parentNode.style.cssFloat = "left"; // 最底层的节点,包括多选框和名字都让他左浮动
	      levelName[i].parentNode.style.styleFloat = "left";
	      levelName[i].parentNode.style.color = "blue";
	      levelName[i].parentNode.onmouseover = function() {
	        this.style.backgroundColor = "#fff";
	      };
	    }
	    var levelName = document.getElementsByClassName("org"); // levelname是上面的最底层节点的名字
	    // console.log('levelName',levelName)
	    for (var i = 0; i < levelName.length; i++) {
	      // cssFloat 兼容 ie6-8  styleFloat 兼容ie9及标准浏览器
	      levelName[i].parentNode.style.clear = "both"; // 清空Float属性
	    }
	  },
	  //勾选的项
	  currentChecked() {
	    
	  },
  }
}
</script>

<style scoped>

</style>

然后就可以了

总结:1.Float属性会影响下一个节点,所以得加clear:both

           2.elment树形控件 { node, data }可以自定义显示数据

           3.渲染页面后得实时刷新

json数据:

{
    "success": true,
    "code": 1,
    "msg": null,
    "data": {
        "nodeId": "AAAA.0",
        "parentId": null,
        "isMenu": true,
        "name": "系统管理",
        "menuNo": "AAAA",
        "permissionId": 0,
        "isPermit": false,
        "sortNo": 1,
        "remark": "",
        "children": [
            {
                "nodeId": "AAAAAA.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "用户管理",
                "menuNo": "AAAAAA",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 1,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAA1.0",
                        "parentId": "AAAAAA.0",
                        "isMenu": true,
                        "name": "人员管理",
                        "menuNo": "AAAAAA1",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAA1.1",
                                "parentId": "AAAAAA1.0",
                                "isMenu": false,
                                "name": "查看",
                                "menuNo": "AAAAAA1",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "查看用户",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAA1.2",
                                "parentId": "AAAAAA1.0",
                                "isMenu": false,
                                "name": "新增",
                                "menuNo": "AAAAAA1",
                                "permissionId": 2,
                                "isPermit": false,
                                "sortNo": 2,
                                "remark": "新增用户",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAA1.3",
                                "parentId": "AAAAAA1.0",
                                "isMenu": false,
                                "name": "修改",
                                "menuNo": "AAAAAA1",
                                "permissionId": 3,
                                "isPermit": false,
                                "sortNo": 3,
                                "remark": "修改用户",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAA1.4",
                                "parentId": "AAAAAA1.0",
                                "isMenu": false,
                                "name": "软删除/恢复",
                                "menuNo": "AAAAAA1",
                                "permissionId": 4,
                                "isPermit": false,
                                "sortNo": 4,
                                "remark": "软删除/恢复用户",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAA1.5",
                                "parentId": "AAAAAA1.0",
                                "isMenu": false,
                                "name": "更改他人密码",
                                "menuNo": "AAAAAA1",
                                "permissionId": 5,
                                "isPermit": false,
                                "sortNo": 5,
                                "remark": "拥有更改他人密码的权限",
                                "children": null
                            }
                        ]
                    },
                    {
                        "nodeId": "AAAAAA2.0",
                        "parentId": "AAAAAA.0",
                        "isMenu": true,
                        "name": "部门人员",
                        "menuNo": "AAAAAA2",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 2,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAA2.1",
                                "parentId": "AAAAAA2.0",
                                "isMenu": false,
                                "name": "查看",
                                "menuNo": "AAAAAA2",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "查看部门人员",
                                "children": null
                            }
                        ]
                    }
                ]
            },
            {
                "nodeId": "AAAAAB.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "组织架构",
                "menuNo": "AAAAAB",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 1,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAB.1",
                        "parentId": "AAAAAB.0",
                        "isMenu": false,
                        "name": "查看",
                        "menuNo": "AAAAAB",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看组织架构",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAB.2",
                        "parentId": "AAAAAB.0",
                        "isMenu": false,
                        "name": "新增",
                        "menuNo": "AAAAAB",
                        "permissionId": 2,
                        "isPermit": false,
                        "sortNo": 2,
                        "remark": "新增组织架构",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAB.3",
                        "parentId": "AAAAAB.0",
                        "isMenu": false,
                        "name": "修改",
                        "menuNo": "AAAAAB",
                        "permissionId": 3,
                        "isPermit": false,
                        "sortNo": 3,
                        "remark": "修改组职架构",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAB.4",
                        "parentId": "AAAAAB.0",
                        "isMenu": false,
                        "name": "软删除/恢复",
                        "menuNo": "AAAAAB",
                        "permissionId": 4,
                        "isPermit": false,
                        "sortNo": 4,
                        "remark": "软删除/恢复组织架构",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAB.5",
                        "parentId": "AAAAAB.0",
                        "isMenu": false,
                        "name": "查看/管理所有机构",
                        "menuNo": "AAAAAB",
                        "permissionId": 5,
                        "isPermit": false,
                        "sortNo": 5,
                        "remark": "查看/管理所有机构(即查看和所有管理机构及其部门、岗位)",
                        "children": null
                    }
                ]
            },
            {
                "nodeId": "AAAAAC.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "权限管理",
                "menuNo": "AAAAAC",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 3,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAC.1",
                        "parentId": "AAAAAC.0",
                        "isMenu": false,
                        "name": "查看",
                        "menuNo": "AAAAAC",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看权限",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAC1.0",
                        "parentId": "AAAAAC.0",
                        "isMenu": true,
                        "name": "角色权限设置",
                        "menuNo": "AAAAAC1",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAC1.2",
                                "parentId": "AAAAAC1.0",
                                "isMenu": false,
                                "name": "新增角色",
                                "menuNo": "AAAAAC1",
                                "permissionId": 2,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "新增角色",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAC1.3",
                                "parentId": "AAAAAC1.0",
                                "isMenu": false,
                                "name": "修改角色",
                                "menuNo": "AAAAAC1",
                                "permissionId": 3,
                                "isPermit": false,
                                "sortNo": 2,
                                "remark": "修改角色",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAC1.4",
                                "parentId": "AAAAAC1.0",
                                "isMenu": false,
                                "name": "删除角色",
                                "menuNo": "AAAAAC1",
                                "permissionId": 4,
                                "isPermit": false,
                                "sortNo": 3,
                                "remark": "删除角色",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAC1.5",
                                "parentId": "AAAAAC1.0",
                                "isMenu": false,
                                "name": "保存角色权限",
                                "menuNo": "AAAAAC1",
                                "permissionId": 5,
                                "isPermit": false,
                                "sortNo": 4,
                                "remark": "保存角色对应的权限",
                                "children": null
                            }
                        ]
                    },
                    {
                        "nodeId": "AAAAAC2.0",
                        "parentId": "AAAAAC.0",
                        "isMenu": true,
                        "name": "角色用户设置",
                        "menuNo": "AAAAAC2",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 2,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAC2.1",
                                "parentId": "AAAAAC2.0",
                                "isMenu": false,
                                "name": "保存角色用户",
                                "menuNo": "AAAAAC2",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "保存角色对应的用户",
                                "children": null
                            }
                        ]
                    }
                ]
            },
            {
                "nodeId": "AAAAAD.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "设置管理",
                "menuNo": "AAAAAD",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 4,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAD.1",
                        "parentId": "AAAAAD.0",
                        "isMenu": false,
                        "name": "查看",
                        "menuNo": "AAAAAD",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看设置信息",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAD1.0",
                        "parentId": "AAAAAD.0",
                        "isMenu": true,
                        "name": "个人设置",
                        "menuNo": "AAAAAD1",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAD1.1",
                                "parentId": "AAAAAD1.0",
                                "isMenu": false,
                                "name": "管理",
                                "menuNo": "AAAAAD1",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "管理自己的个人设置",
                                "children": null
                            }
                        ]
                    },
                    {
                        "nodeId": "AAAAAD2.0",
                        "parentId": "AAAAAD.0",
                        "isMenu": true,
                        "name": "工作站设置",
                        "menuNo": "AAAAAD2",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 2,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAD2.1",
                                "parentId": "AAAAAD2.0",
                                "isMenu": false,
                                "name": "查看",
                                "menuNo": "AAAAAD2",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "查看工作站设置",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAD2.2",
                                "parentId": "AAAAAD2.0",
                                "isMenu": false,
                                "name": "管理",
                                "menuNo": "AAAAAD2",
                                "permissionId": 2,
                                "isPermit": false,
                                "sortNo": 2,
                                "remark": "管理工作站设置",
                                "children": null
                            }
                        ]
                    },
                    {
                        "nodeId": "AAAAAD3.0",
                        "parentId": "AAAAAD.0",
                        "isMenu": true,
                        "name": "系统设置",
                        "menuNo": "AAAAAD3",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 3,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAD3.1",
                                "parentId": "AAAAAD3.0",
                                "isMenu": false,
                                "name": "查看",
                                "menuNo": "AAAAAD3",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "查看系统设置",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAD3.2",
                                "parentId": "AAAAAD3.0",
                                "isMenu": false,
                                "name": "管理",
                                "menuNo": "AAAAAD3",
                                "permissionId": 2,
                                "isPermit": false,
                                "sortNo": 2,
                                "remark": "管理系统设置",
                                "children": null
                            }
                        ]
                    },
                    {
                        "nodeId": "AAAAAD4.0",
                        "parentId": "AAAAAD.0",
                        "isMenu": true,
                        "name": "活动字典",
                        "menuNo": "AAAAAD4",
                        "permissionId": 0,
                        "isPermit": false,
                        "sortNo": 4,
                        "remark": "",
                        "children": [
                            {
                                "nodeId": "AAAAAD4.1",
                                "parentId": "AAAAAD4.0",
                                "isMenu": false,
                                "name": "查看",
                                "menuNo": "AAAAAD4",
                                "permissionId": 1,
                                "isPermit": false,
                                "sortNo": 1,
                                "remark": "查看用户字典",
                                "children": null
                            },
                            {
                                "nodeId": "AAAAAD4.2",
                                "parentId": "AAAAAD4.0",
                                "isMenu": false,
                                "name": "管理",
                                "menuNo": "AAAAAD4",
                                "permissionId": 2,
                                "isPermit": false,
                                "sortNo": 2,
                                "remark": "管理用户字典",
                                "children": null
                            }
                        ]
                    }
                ]
            },
            {
                "nodeId": "AAAAAE.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "操作日志",
                "menuNo": "AAAAAE",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 5,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAE.1",
                        "parentId": "AAAAAE.0",
                        "isMenu": false,
                        "name": "查看本机构",
                        "menuNo": "AAAAAE",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看本机构的日志",
                        "children": null
                    },
                    {
                        "nodeId": "AAAAAE.2",
                        "parentId": "AAAAAE.0",
                        "isMenu": false,
                        "name": "查看全部机构",
                        "menuNo": "AAAAAE",
                        "permissionId": 2,
                        "isPermit": false,
                        "sortNo": 2,
                        "remark": "查看全部机构的日志",
                        "children": null
                    }
                ]
            },
            {
                "nodeId": "AAAAAF.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "接口日志",
                "menuNo": "AAAAAF",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 6,
                "remark": "",
                "children": [
                    {
                        "nodeId": "AAAAAF.1",
                        "parentId": "AAAAAF.0",
                        "isMenu": false,
                        "name": "查看",
                        "menuNo": "AAAAAF",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看接口日志",
                        "children": null
                    }
                ]
            },
            {
                "nodeId": "AAAAAG.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "图标管理",
                "menuNo": "AAAAAG",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 7,
                "remark": "",
                "children": []
            },
            {
                "nodeId": "ZAAAAA.0",
                "parentId": "AAAA.0",
                "isMenu": true,
                "name": "博客测试",
                "menuNo": "ZAAAAA",
                "permissionId": 0,
                "isPermit": false,
                "sortNo": 100,
                "remark": "",
                "children": [
                    {
                        "nodeId": "ZAAAAA.1",
                        "parentId": "ZAAAAA.0",
                        "isMenu": false,
                        "name": "查看",
                        "menuNo": "ZAAAAA",
                        "permissionId": 1,
                        "isPermit": false,
                        "sortNo": 1,
                        "remark": "查看博客信息",
                        "children": null
                    }
                ]
            }
        ]
    }
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值