Use the el-tree in element to do horizontal display bugs encountered

Requirement: use elment, Tree tree control to make a custom node horizontal display

Make the left picture into the right picture effect:

process:

I put the json data at the end, if you need to test, you can take it

code:

<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: Using the above render-content method, if the first content under the same node needs Float, and the next content does not need Float, but the node of this content needs Float, the following situation will occur

Reason: Float will affect the next node, so the clear attribute should be added to the point that does not need floating, but through debugging, it is found that the point that does not need floating can not be located on the original tree structure, so the tree structure has to be changed

 Eliminate bugs:

When viewing the document, I saw that the tree nodes can be customized, so I split the tree structure

 

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

then you can

Summary: 1. The Float attribute will affect the next node, so you have to add clear: both

           2. The elment tree control { node, data } can customize the display data

           3. Refresh in real time after rendering the page

JSON data:

{
    "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
                    }
                ]
            }
        ]
    }
}

Guess you like

Origin blog.csdn.net/ferwagrea/article/details/124764031