vue菜单

1、创建组件 TreeMenu

<template><template v-for="item in menuTree" :key="item._id"><el-sub-menu v-if="item.children && item.children.length > 0" :key="item._id" :index="item.name"><template #title><el-icon><component class="icons" :is="item.meta.icon"></component></el-icon><!-- <component class="icons"  :is="item.icon" style="font-size: 5px; " width="20"></component> --><span>{{ item.meta.title }}</span></template><el-menu-item-group><tree-menu :menuTree="item.children" /></el-menu-item-group></el-sub-menu><!-- v-else-if="item.ismenu == 1"  --><el-menu-item v-else :index="item.name" @click="clickMenu(item)" style=""><el-icon><component class="icons" :is="item.meta.icon"></component></el-icon><!--  --><span>{{ item.meta.title }}</span></el-menu-item></template>
</template><script>
export default {name: 'TreeMenu',props: {menuTree: {type: Array,default: () => []}},methods: {//点击把菜单的名字传出去clickMenu(val) {// alert(1);this.$store.commit("pushtags", val)}}}
</script><style>.el-menu-item,.el-menu-item{width: 230px;
}</style>

2、conf.json 菜单数据

{"code": 1,"msg": "成功","time": 1683615337,"data": {"config": {"site_name": "real-tinke","beian": "备案","configgroup": [],"mail_type": "","mail_smtp_host": "q","mail_smtp_port": "","mail_smtp_user": "","mail_smtp_pass": "","mail_verify_type": "1","mail_from": "","": "备案2"},"menu": [{"id": 1,"pid": 0,"name": "/welcome","title": "控制台","remark": "","ismenu": 1,"createtime": 1491635035,"updatetime": 1652348263,"weigh": 9999,"status": "1","apipath": "dashboard\/index","icon": "user-filled","component": 0,"menuCode": 0,"spacer": "","childlist": []},{"id": 2,"pid": 0,"name": "general","title": "常规管理","remark": "","ismenu": 1,"createtime": 1491635035,"updatetime": 1491635035,"weigh": 0,"status": "1","apipath": "0","icon": "user-filled","component": 0,"menuCode": 0,"spacer": "","childlist": [{"id": 3,"pid": 2,"name": "config","title": "配置","remark": "","ismenu": 1,"createtime": 1491635035,"updatetime": 1491635035,"weigh": 0,"status": "1","apipath": "general\/Configs\/index","icon": "user-filled","component": 0,"menuCode": 0,"spacer": " ├","childlist": []},{"id": 7,"pid": 2,"name": "profile","title": "个人信息","remark": "","ismenu": 1,"createtime": 1491635035,"updatetime": 1491635035,"weigh": 0,"status": "1","apipath": "general\/profile\/index","icon": "user-filled","component": 0,"menuCode": 0,"spacer": " ├","childlist": []},{"id": 9,"pid": 2,"name": "database","title": "数据库列表","remark": "","ismenu": 1,"createtime": 1491635035,"updatetime": 1491635035,"weigh": 0,"status": "1","apipath": "general\/database\/index","icon": "user-filled","component": 0,"menuCode": 0,"spacer": " └","childlist": []}]} ],"getUserinfo": {"id": 1,"group_id": 1,"username": "admin","nickname": "极梦测试1","password": "8f72fa6ae8f467ec362d24c437b0fbef","salt": "ltcuEk","email": "admin@qq.com","mobile": "18354393242","avatar": "http:\/\/real-think.jmwl51.com\/storage\/upload\/20220511\/e9ccc0994c0bb8f40f4483304c3f6dc2.jpg","level": 1,"gender": 0,"birthday": "1996-02-01","bio": "","money": "0.00","score": 0,"successions": 1,"maxsuccessions": 5,"prevtime": 1652851903,"logintime": 1683614107,"loginip": "27.209.133.148","loginfailure": 0,"joinip": "47.103.65.214","jointime": 1631927605,"createtime": 1631927605,"updatetime": 1632638617,"token": "","status": "1","verification": "","group": {"id": 1,"name": "默认组","rules": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55","createtime": 1491635035,"updatetime": 1652824082,"status": "1"}}}
}

3、引用组件

<template><div class="basic-layout" style="display: flex;"><!-- , isCollapse ? 'fold' : 'unfold' --><el-aside :class="['nav']" ref="navmenuwin"><!-- 导航菜单 --><el-menu :default-active="activeMenu" class="nav-menu" :router="true" :show-timeout="3000" :collapse="isCollapse"><!-- 系统logo --><div class="logo"><img src="../assets/img/logo-small.png" /><span v-if="!isCollapse" style="display: block;width: 110px;white-space: nowrap;">{{ site.site_name }}</span></div><tree-menu :menuTree="menuTree" /></el-menu></el-aside><el-container class="content"><!-- 头部 --><el-header></el-header><!-- 内容 --><el-main></el-main></el-container></div>
</template><script>//   import confjson from "../cpmponets/framework/conf.json";
import confjson from "../components/framework/conf.json"; 
import TreeMenu from "../components/framework/TreeMenu.vue"; 
import { useRouter } from 'vue-router'
export default {name: "home",components: { TreeMenu, Topcrumb, confjson },data() {return {confjson,islogo: true,activeMenu: location.hash.slice(1),isCollapse: false,site: {},menuTree: [],userInfo: {},noticeCount: 0,isFullScreen: false,};},watch: {//监视路由,一开始就监视,获取routeName,来判断是否激活$route: {immediate: true,handler(val) {// this.routeName=val.nameconsole.log(val);this.activeMenu = val.name;}}},mounted() {this.getNoticeCount();this.getMenuList();const Router = useRouter()this.menuTree = Router.options.routes[0].children;console.log(this.menuTree)},methods: {toggleNav() {this.isCollapse = !this.isCollapse;},async getNoticeCount() {this.noticeCount = 5;},async getMenuList() {if (this.menuTree.length === 0) {try {const res = this.confjson.dataconsole.log(res, "1111")// const res = await this.$api.getMenuList(); this.userInfo = res.getUserinfo;// this.menuTree = res.menu; this.site = res.config;this.$store.commit("pushtags", "")// this.$store.commit('changeMenuList',res.data.menu)} catch (error) {console.error(error);}}},},
};
</script>

备注:可以加个判断;是网页还是vue内部路径

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

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

相关文章

第5步---MySQL的DQL查询语句

第5步---MySQL的DQL查询语句 DQL 数据库查询语言 1.基本的查询语句 1.完整得查询得语句 简化版的查询语句 select * from 表名 where 条件; 2.创建用于测试的表 1.创建测试数据 -- DQL -- 创建测试表 DROP TABLE IF EXISTS product; CREATE TABLE IF NOT EXISTS product( pi…

一文详解4种聚类算法及可视化(Python)

在这篇文章中&#xff0c;基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性&#xff0c;看一下对这些公司进行聚类的四种不同方式。 苹果&#xff08;AAPL&#xff09;&#xff0c;亚马逊&#xff08;AMZN&#xff09;&#xff0c;Facebook&#xff08;META&…

计算机毕设项目之基于django+mysql的疫情实时监控大屏系统(前后全分离)

系统阐述的是一款新冠肺炎疫情实时监控系统的设计与实现&#xff0c;对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体…

多线程实现与管理

进程与线程 进程 &#xff1a; 进程是操作系统进行资源分配的最小单位&#xff0c;每执行一个程序、一条命令操作系统都会启动一个进程&#xff0c;进程是一个程序的执行过程&#xff0c;当程序启动时&#xff0c;操作系统会把进程的代码加载到内存中&#xff0c;并为新进程分配…

uni-app根据经纬度逆解析详细地址

uni-app中的getLocation()方法可以获取到用户当前的地理位置&#xff08;经纬度&#xff09;、速度。 但是返回参数中的address在app中才会显示&#xff0c;小程序中不会显示&#xff0c;所以我们需要进行逆解析其地址&#xff0c;解析出它的地址信息。 1.首先要在腾讯位置服务…

ahooks.js:一款强大的React Hooks库及其API使用教程(二)

一、ahooks.js简介二、ahooks.js安装三、继续ahooks.js API的介绍与使用教程21. useLocalStorageState22. useSessionStorageState23. useClickAway24. usePersistFn25. useCreation26. useFullscreen27. useInViewport28. useInfiniteScroll29. usePagination30. useDynamicLi…

如何正确地设置Outlook SMTP发送电子邮件(wordpress配置)

如何正确地设置Outlook SMTP发送电子邮件&#xff08;wordpress配置&#xff09; 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://pay.xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 正在寻找正确的Outlook SMTP设置&#xff1f…

LRU 算法

LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used&#xff0c;也就是说我们认为最近使用过的数据应该是是「有用的」&#xff0c;很久都没用过的数据应该是无用的&#xff0c;内存满了就优先删那些很久没用过的数据。 力扣&#xff08;LeetCode&#xff09…

[Linux] C获取键盘输入值

检测指令&#xff1a;cat /dev/input/event1 | hexdump 当键盘有输入时&#xff0c;会有对应的一堆16进制输出。它其实对应着input_event结构体【24字节】。 struct input_event ​​​​​​​{struct timeval time;__u16 type;__u16 code;__s32 value; }; #include <st…

自动方向识别式 TXB型电平转换芯片

大家好,这里是大话硬件。 在上一篇文章分析了LSF型的电平转换芯片,LSF型电平转换芯片最常见是应用在I2C总线上。I2C为OD型总线,LSF使用时增加电阻。 对于不是OD型总线的电平转换,比如UART,SPI,普通GPIO口信号,这些信号在进行双向电平转换使用什么样的芯片呢? 从上面…

面试之快速学习STL-deuqe和list

1. deque deque 容器用数组&#xff08;数组名假设为 map&#xff09;存储着各个连续空间的首地址。也就是说&#xff0c;map 数组中存储的都是指针如果 map 数组满了怎么办&#xff1f;很简单&#xff0c;再申请一块更大的连续空间供 map 数组使用&#xff0c;将原有数据&…

每天一道leetcode:433. 最小基因变化(图论中等广度优先遍历)

今日份题目&#xff1a; 基因序列可以表示为一条由 8 个字符组成的字符串&#xff0c;其中每个字符都是 A、C、G 和 T 之一。 假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。 例如&#xff0c;&quo…

Xcode build和version

参考 一个叫做Version&#xff0c;一个叫做Build&#xff0c;&#xff08;version是版本号&#xff0c;build是打正式包每次Archive时的都增加的值&#xff09;这两个值都可以在Xcode中选中target&#xff0c;点击“Summary”后看到。 Version在plist文件中的key是“CFBundleSh…

博弈论 | 斐波那契博弈

斐波那契博弈 博弈论是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达…

计算机提示mfc120u.dll缺失(找不到)怎么解决

在计算机领域&#xff0c;mfc120u.dll是一个重要的动态链接库文件。它包含了Microsoft Foundation Class (MFC) 库的特定版本&#xff0c;用于支持Windows操作系统中的应用程序开发。修复mfc120u.dll可能涉及到解决与该库相关的问题或错误。这可能包括程序崩溃、运行时错误或其…

13.实现业务功能--板块信息

目录 获取在首页中显示的版块 1. 实现逻辑 2. 创建扩展 Mapper.xml 3. 修改 DAO 4. 创建 Service 接口 5. 实现 Service 接口 6. 生成测试方法 7. 实现 Controller 8. 实现前端页面 在数据库中执行以下 SQL 语句&#xff1a; INSERT INTO t_board (id, name, article…

PostgreSQL 查询数据表、视图信息

--获得指定schema范围内的所有表和视图的列表&#xff0c;可指定一个排除表前缀模式with param as (select public,iit as schema_name,db2g% as exclude_pattern),base_info as (--获得所有基表select pg_namespace.nspname as schema_name, a.relname as tbl_name ,TBL as tb…

浅析Linux SCSI子系统:调试方法

文章目录 SCSI日志调试功能scsi_logging_level调整SCSI日志等级 SCSI trace events使能SCSI trace events方式一&#xff1a;通过set_event接口方式二&#xff1a;通过enable 跟踪trace信息 相关参考 SCSI日志调试功能 SCSI子系统支持内核选项CONFIG_SCSI_LOGGING配置日志调试…

kafka晋升之路-理论+场景

kafka晋升之路 一&#xff1a;故事背景二&#xff1a;核心概念2.1 系统架构2.2 生产者&#xff08;Producer&#xff09;2.2.1 生产者分区2.2.2 生产者分区策略 2.3 经纪人&#xff08;Broker&#xff09;2.3.1 主题&#xff08;Topic&#xff09;2.3.2 分区&#xff08;Partit…

vue数据修改失效

问题 vue2中如果修改深层的数据的值时&#xff0c;页面不显示最新数据。 解决办法&#xff1a; 强制刷新。 #更改数据后&#xff0c;调用vue强制刷新 this.$forceUpdate();