el-tree实现菜单功能

news2025/1/12 10:41:36

用到element tree组件,需要了解他的一些方法

<template>
  <div>
    <!-- default-expand-all 默认展开全部数据 -->
    <!-- expand-on-click-node 只有点击箭头才会收缩节点 -->
    <!-- check-on-click-node 点击文本选中 -->
    <!-- show-checkbox 复选框 -->
    <el-tree ref="tree" :data="list" default-expand-all :expand-on-click-node='false' check-on-click-node show-checkbox node-key="menuId" :props="defaultProps"></el-tree>
    <el-button @click="getCheckedKeys">通过 key 获取</el-button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      list: [
        {
          "menuId": 1,
          "menuName": "首页(首页)",
          "menuCode": "首页",
          "parentId": 0,
          "orderNum": 0,
          "path": "/page",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-shouye",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 2,
              "menuName": "首页(首页)",
              "menuCode": "首页",
              "parentId": 1,
              "orderNum": 1,
              "path": "/welcome",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 3,
          "menuName": "随访数据查询(随访数据查询)",
          "menuCode": "随访数据查询",
          "parentId": 0,
          "orderNum": 1,
          "path": "/followUpDataQuery",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-shengwuxuejiance",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 4,
              "menuName": "随访数据查询(随访数据查询)",
              "menuCode": "随访数据查询",
              "parentId": 3,
              "orderNum": 1,
              "path": "index",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 5,
              "menuName": "随访详情(随访详情)",
              "menuCode": "随访详情",
              "parentId": 3,
              "orderNum": 2,
              "path": "detail",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 21,
          "menuName": "此单名称(11)",
          "menuCode": "11",
          "parentId": 0,
          "orderNum": 1,
          "path": "请问请问饿```",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "321",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": null
        },
        {
          "menuId": 6,
          "menuName": "调查数据查询(调查数据查询)",
          "menuCode": "调查数据查询",
          "parentId": 0,
          "orderNum": 2,
          "path": "/surveyDataQuery",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-shaichaxinxichaxun",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 7,
              "menuName": "调查数据查询(调查数据查询)",
              "menuCode": "调查数据查询",
              "parentId": 6,
              "orderNum": 1,
              "path": "index",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 8,
              "menuName": "新建问卷(新建问卷)",
              "menuCode": "新建问卷",
              "parentId": 6,
              "orderNum": 2,
              "path": "evaluationreport",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 9,
              "menuName": "随访详情(随访详情)",
              "menuCode": "随访详情",
              "parentId": 6,
              "orderNum": 3,
              "path": "evaluationlook",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 10,
          "menuName": "任务配置(任务配置)",
          "menuCode": "任务配置",
          "parentId": 0,
          "orderNum": 3,
          "path": "/taskSet",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-renwuguanli",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 11,
              "menuName": "任务配置(任务配置)",
              "menuCode": "任务配置",
              "parentId": 10,
              "orderNum": 1,
              "path": "index",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 12,
          "menuName": "数据统计(数据统计)",
          "menuCode": "数据统计",
          "parentId": 0,
          "orderNum": 4,
          "path": "/dataStatistics",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-shujutongji",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 13,
              "menuName": "数据统计(数据统计)",
              "menuCode": "数据统计",
              "parentId": 12,
              "orderNum": 1,
              "path": "index",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 14,
          "menuName": "数据导出(数据导出)",
          "menuCode": "数据导出",
          "parentId": 0,
          "orderNum": 5,
          "path": "/dataExport",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-suifangrenwuguanli",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 15,
              "menuName": "数据导出(数据导出)",
              "menuCode": "数据导出",
              "parentId": 14,
              "orderNum": 1,
              "path": "index",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        },
        {
          "menuId": 16,
          "menuName": "系统管理(系统管理)",
          "menuCode": "系统管理",
          "parentId": 0,
          "orderNum": 6,
          "path": "/systemManage",
          "component": null,
          "query": null,
          "isFrame": 0,
          "isCache": 0,
          "menuType": 0,
          "visible": 1,
          "perms": null,
          "icon": "iconfont icon-xitongguanli",
          "status": 1,
          "remark": null,
          "roleId": null,
          "selected": true,
          "level": 1,
          "children": [
            {
              "menuId": 17,
              "menuName": "用户管理(用户管理)",
              "menuCode": "用户管理",
              "parentId": 16,
              "orderNum": 1,
              "path": "usersManage",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 18,
              "menuName": "角色管理(角色管理)",
              "menuCode": "角色管理",
              "parentId": 16,
              "orderNum": 2,
              "path": "roleManage",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 19,
              "menuName": "权限配置(权限配置)",
              "menuCode": "权限配置",
              "parentId": 16,
              "orderNum": 3,
              "path": "permissionSetting",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            },
            {
              "menuId": 20,
              "menuName": "菜单管理(菜单管理)",
              "menuCode": "菜单管理",
              "parentId": 16,
              "orderNum": 4,
              "path": "menuManage",
              "component": null,
              "query": null,
              "isFrame": 0,
              "isCache": 0,
              "menuType": 1,
              "visible": 1,
              "perms": null,
              "icon": "",
              "status": 1,
              "remark": null,
              "roleId": null,
              "selected": true,
              "level": 2,
              "children": null
            }
          ]
        }
      ],
      defaultProps: {
        children: 'children', // 子级
        label: 'menuName' // 名称
      }
    }
  },
  mounted () {
    // 回显菜单
    this.setCheckedKeys()
  },
  methods: {
    // 提交数据
    getCheckedKeys () {
      // 获取子级的key
      const childMenu = this.$refs.tree.getCheckedKeys()
      // 获取父级的key
      const partMenu = this.$refs.tree.getHalfCheckedKeys()
      // 合并数据
      const menu = partMenu.concat(childMenu)
      console.log(menu)
    },

    // 回显菜单
    setCheckedKeys () {
      // 一般是调接口,拿到菜单数据和回显的菜单数组

      // 如果default-expand-all没有展开列表时,可以使用下面代码,设置展开所有行,
      // const nodesMap = this.$refs.tree.store.nodesMap
      // const keys = Object.keys(nodesMap)
      // keys.forEach(key => {
      //   nodesMap[key].expanded = true
      // })

      // 设置回显的菜单
      this.$nextTick(() => {
        this.$refs.tree.setCheckedKeys([3])
      })
    },
  }
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1037214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装

文章目录 cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装概述笔记做PCB封装出报告 - Padstack Usage Report做原理图封装END cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装 概述 现在做封装, 还是手工弄. 在…

1 MySQL 高级(进阶) SQL 语句(一)

目录 1 MySQL SQL 语句 1.1SELECT 1.2 DISTINCT 1.3 WHERE 1.4 AND OR 1.5 in 1.6 BETWEEN 2 通配符 ----通常通配符都是跟 LIKE 一起使用的 2.1 LIKE 2.2 ORDER BY 3函数 3.1数学函数 3.2 聚合函数 3.3 字符串函数 4 GROUP BY 4.1 HAVING 5 别名 6 子查询 …

《开发实战》17 | 异步处理好用,但非常容易用错

大多数业务项目都是由同步处理、异步处理和定时任务处理三种模式相辅相成实现的。区别于同步处理&#xff0c;异步处理无需同步等待流程处理完毕&#xff0c;因此适用场景主要包括&#xff1a; 服务于主流程的分支流程。比如&#xff0c;在注册流程中&#xff0c;把数据写入数…

基于微信小程序的健身私教预约系统设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)

文章目录 前言运行环境说明用户微信小程序端主要功能有&#xff1a;教练微信小程序的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考…

浅谈基于LoRa技术下智能建筑能耗管理系统的分析与设计

安科瑞 华楠 摘要&#xff1a;城市建设步伐加快背景下&#xff0c;对城市建筑能耗管理系统的应用提出更高要求。从当前各类公共建筑物运营情况看&#xff0c;能源消耗问题仍较为突出&#xff0c;传统依托于计算机、测控单元与通讯设备单位工具的系统管理模式&#xff0c;并不能…

会声会影2023mac电脑免费永久版视频编辑软件

会声会影是由Corel公司制作的一款功能强大的视频编辑软件&#xff0c;具有图像抓取和编修功能&#xff0c;可以抓取、转换MV、DV、V8、TV和实时记录抓取画面文件&#xff0c;并提供有超过100种的编制功能与效果&#xff0c;可导出多种常见的视频格式&#xff0c;甚至可以直接制…

调用ecology的webservice创建流程

开发过程 一、用超级管理员账号登录系统。 二、在地址栏为查看接口地址 IP:端口号/services 三、进入WorkflowServicesAPI 四、打开IDEA编译器&#xff0c;创建项目。 五、选择创建webservice客户端 六、进入项目工程后&#xff0c;检查配置是否正确。代码生成的路径&#x…

Oracle数据库故障处理-swap占用较高,AIX内存溢出

1 故障现象 主机hang死&#xff0c;而且使用vmstat命令发现b列产生大量的值 2 故障分析 关于AIX操作系统的参数maxclient%和maxperm%&#xff0c;该参数主要是限制aix filesystem使用或者直接占用os 物理内存的比例。 # vmo -p -o maxclient%20 Modification to restricted t…

STL-常用容器

string容器 string构造函数 string本质&#xff1a;类 string和char*区别&#xff1a; char* 是一个指针 string是一个类&#xff0c;类内部封装了char*&#xff0c;管理这个字符串&#xff0c;是一个char*型的容器。 特点&#xff1a; string类内部封装了很多成员方法 …

C++初始

想要学习了解C&#xff0c;首先需要了解是C是什么&#xff1f;需要对C有一个明确的定位。 这时候很多人都会说C不就是编程语言吗&#xff0c;有啥可了解的。确实C就是一个编程语言&#xff0c;但是我们在学习的时候要将其当成一种工具&#xff0c;而不是一种技术。简单来说C就…

8应用服务与领域服务

本系列包含以下文章&#xff1a; DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务&#xff08;本文&#xff09;领域事件CQRS 案例项目介绍 # 既然DDD是“领域”驱动&#xff0c;那么我们便不能抛开业务而只讲技术&…

rk3399 linux4.19 ubuntu mpv播放概率性内核崩溃在vop_crtc_atomic_flush

现象&#xff1a;使用 mpv播放视频时&#xff0c;播放一段时间后内核core 环境&#xff1a; linux sdk版本&#xff1a;4.19.172 ubuntu18系统 验证&#xff1a; 1. /etc/mpv/mpv.conf 默认配置voxv 播放一段时间后&#xff0c;内核core 2. /etc/mpv/mpv.conf vogpu播放稳定…

Python 逢七拍手小游戏2.0

"""逢七拍手游戏介绍&#xff1a;逢七拍手游戏的规则是&#xff1a;从1开始顺序数数&#xff0c;数到有7&#xff0c;或者是7的倍数时&#xff0c;就拍一手。例如&#xff1a;7、14、17......70......知识点&#xff1a;1、循环语句for2、嵌套条件语句if/elif/e…

贪心算法-

代码随想录 什么是贪心 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 这么说有点抽象&#xff0c;来举一个例子&#xff1a; 例如&#xff0c;有一堆钞票&#xff0c;你可以拿走十张&#xff0c;如果想达到最大的金额&#xff0c;你要怎么拿&#xff…

Oracle分区的使用详解:创建、修改和删除分区,处理分区已满或不存在的插入数据,以及分区历史数据与近期数据的操作指南

一、前言 什么是表分区: Oracle的分区是一种将表或索引数据分割为更小、更易管理的部分的技术。它可以提高查询性能、简化维护操作,并提供更好的数据组织和管理。 表分区和表空间的区别和联系: 在Oracle数据库中,表空间(Tablespace)是用于存储表、索引和其他数据库对…

set和数组的区别

set&#xff08;创建可迭代对象&#xff09;&#xff1a; 伪数组(创建类数组对象)&#xff1a;

关于x=x++注意事项

一、问题提出。 输出0123456789 输出12345678910 输出0123456789 输出全部为0 二、解释。 x对应一个变量表的槽位&#xff0c;初始值为0&#xff0c;x对应两条字节码指令iload_x&#xff08;将x槽位对应的值加载到操作数栈&#xff09;&#xff0c;iinc x1&#xff08;对x所…

【从0学习Solidity】45. 时间锁

【从0学习Solidity】45. 时间锁 博主简介&#xff1a;不写代码没饭吃&#xff0c;一名全栈领域的创作者&#xff0c;专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构&#xff0c;分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#xff0c;探索全栈开…

Visual Studio首次运行报错

在Visual Studio 运行代码时候&#xff0c;经常会报方法不安全 错误 C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. demo01 D:\vs_worrkp…

ProConOS协议的服务端模拟程序

问题&#xff1a; 实现ProConOS协议的服务端模拟程序&#xff0c;参考https://github.com/fofapro/fapro的实现&#xff0c;写一个命令行工具&#xff0c;通过配置文件制定协议相关配置&#xff0c;启动后&#xff0c;使用nmap扫描可以返回指定的模拟设备信息&#xff0c;比如…