vue-element-admin 路由动态绑定

Vue及Element UI&vue-element-admin简记 文章目录概念索引安装vue基本语法声明式渲染动态参数双向绑定数据绑定中进行数据处理使用JS表达式计算属性侦听器Class 与 Style 的数据绑定Class的数据绑定Style的数据绑定条件与循环条件渲染v-if指令v-show指令列表(数组)渲染数据更新检测事件监听器修饰符事件修饰符按键修饰符按键码系统修饰键指令的缩写组件化应用构建vue实例实例生命周期的钩子模板语法高级语法相关概念HTML ... 阅读详情

需求: vue-element-admin 实现 后台获取菜单, 然后动态绑定到 左侧菜单

代码中的 . 代表上下文, 下面代码只显示修改的部分!

1. 在 src/api/admin-menu.js 新增一个后台获取路由的接口
.
.
export function getAdminMenu(query) {
  return request({
    url: '/admin_menu/menu',
    method: 'post',
    params: query
  })
}

.
.
2. 注意返回的数据格式, 这个格式是根据 路由文件 src/router/index.js 中的 动态路由 asyncRoutes 的格式
{
    "code": 200,
    "msg": "success",
    "data": [
        {
            "id": 1,
            "path": "system",
            "component": "#",
            "name": "系统管理",
            "meta": {
                "title": "系统管理",
                "icon": "el-icon-menu"
            },
            "children": [
                {
                    "id": 2,
                    "path": "/admin-user/index",
                    "component": "/admin-user/index",
                    "name": "管理员管理",
                    "meta": {
                        "title": "管理员管理",
                        "icon": "el-icon-user"
                    }
                },
                {
                    "id": 7,
                    "path": "/admin-role/index",
                    "component": "/admin-role/index",
                    "name": "角色管理",
                    "meta": {
                        "title": "角色管理",
                        "icon": "el-icon-s-cooperation"
                    }
                },
                {
                    "id": 12,
                    "path": "/admin-menu/index",
                    "component": "/admin-menu/index",
                    "name": "菜单管理",
                    "meta": {
                        "title": "菜单管理",
                        "icon": "el-icon-menu"
                    }
                }
            ]
        }
    ]
}
3. 将路由文件 src/router/index.js 中 asyncRoutes 不需要的部分删除, 如下
export const asyncRoutes = [

  {
    path: '/error',
    component: Layout,
    redirect: 'noRedirect',
    name: 'ErrorPages',
    meta: {
      title: 'Error Pages',
      icon: '404'
    },
    children: [
      {
        path: '401',
        component: () => import('@/views/error-page/401'),
        name: 'Page401',
        meta: { title: '401', noCache: true }
      },
      {
        path: '404',
        component: () => import('@/views/error-page/404'),
        name: 'Page404',
        meta: { title: '404', noCache: true }
      }
    ]
  },

  // 404 page must be placed at the end !!!
  { path: '*', redirect: '/404', hidden: true }
]
4. 修改文件 src/store/modules/permission.js [注意路径!!!], generaMenu 是新加入的方法, 用来处理路由. actions 是在之前的方法上改写, 用来获取路由.注意: 这里的数据放在 data.list 中
.
import {getAdminMenu} from "@/api/admin-menu";
import Layout from "@/layout";
.
.
/**
 * 后台查询的菜单数据拼装成路由格式的数据
 */
export function generaMenu(routes, data) {
  data.forEach(item => {
    // alert(JSON.stringify(item))
    const menu = {
      path: item.path === '#' ? item.id + '_key' : item.path, // component: item.component === '#' ? Layout : () => import('@/views${item.compent}'),
      component: item.component === '#' ? Layout : (resolve) => require([`@/views${item.component}`], resolve),
      // hidden: item.hidden,
      // redirect: item.redirect,
      children: [],
      name: item.name,
      meta: item.meta
      // meta: {title: item.name, id:item.id, roles:['admin']}
    }

    if (item.children) {
      generaMenu(menu.children, item.children)
    }

    routes.push(menu)
  })
}
.
.
const actions = {
  generateRoutes({commit}, roles) {
    return new Promise(resolve => {
      const loadMenuData = []
      // 先查询后台并返回左侧菜单数据并把数据添加到路由
      getAdminMenu().then(response => {
        let data = response
        if (response.code !== 200) {
          alert(JSON.stringify('菜单数据加载异常'))
          // throw new Error('菜单数据加载异常')
        } else {

          data = response.data
          Object.assign(loadMenuData, data)
          const tempAsyncRoutes = Object.assign([], asyncRoutes)
          // tempAsyncRoutes = asyncRoutes
          generaMenu(tempAsyncRoutes, loadMenuData)
          let accessedRoutes
          if (roles.includes('admin')) {
            // alert(JSON.stringify(asyncRoutes)
            accessedRoutes = tempAsyncRoutes || []
          } else {
            accessedRoutes = filterAsyncRoutes(tempAsyncRoutes, roles)
          }
          commit('SET_ROUTES', accessedRoutes)
          resolve(accessedRoutes)
        }
        // generaMenu(asyncRoutes, data
      }).catch(error => {
        console.log(error)
      })
    })
  }
}
.
.
5. 展示

在这里插入图片描述

C#读取CAD文件(dwg/dxf)并处理 项目要求识别CAD图纸(图纸内容与现实事物比例是1:1)中的内容,并提取出一些关键信息。这里的CAD图纸是指CAD文件,包含多种格式,dwg/dxf/dwf/stl/pdf等等。识别其中内容,主要指文件中的图元信息(也叫实体Entity),指线段、圆弧、矩形等图形元素。得到图元基础信息(比如长度、坐标、粗细)后,进一步做处理(如得到交点、得到线段间间隔、圆弧与线段切点等)。听起来有点难,因为作为软件工程师,对CAD相关事物并不了解,它是未知的; 阅读详情

相关推荐

从原理到实践:手把手教你用XY2-100协议控制激光振镜(含引脚定义图)

本文详细解析了XY2-100协议在激光振镜控制中的应用,从硬件接口定义到时序分析,再到Verilog硬件逻辑实现,提供了完整的开发指南。通过实际案例和优化策略,帮助开发者快速掌握高精度激光振镜控制技术,提升加工质量和效率。

weixin_30505225的博客 401

vue-element-admin 后台动态加载菜单

前言 做后台项目,权限验证与安全性是非常重要的,vue-element-admin官方主要介绍了前端控制用户菜单加载显示,以及权限控制。这就带来一些不便,服务端无法(这里可能说的绝对了,起码实现起来不太友好)控制菜单的动态展示,用户权限跟菜单相互关系的绑定。 这里我们通过分析go-admin 代码来让大家一步步了解如何实现服务端控制前端菜单的展示的。 项目地址: github: https://g...

无风的雨 2万+

图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用

本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。

weixin_30369041的博客 406

Vue 爬坑之路(五)—— 组件进阶

组件(Component)是 Vue.js 最强大的功能之一,之前的文章都只是用到了基本的封装功能,这次将介绍一些更强大的扩展。 一、基本用法 在使用 vue-cli 创建的项目中,组件的创建非常方便,只需要新建一个 .vue 文件,然后在 <template> 中写好 HTML 代码,一个简单的组件就完成了 一个完整的组件,除了 <template> 以...

weixin_34241036的博客 637

从零搭建Python接口自动化测试框架:pytest+requests+Allure实战指南

接口自动化测试是现代软件工程中保障交付质量、提升测试效率的核心实践。其基本原理是通过脚本模拟客户端请求,对服务端接口进行自动化的功能验证、性能探测与回归测试,从而替代重复的手工操作。在技术实现上,Python凭借其简洁语法和丰富的生态,成为构建此类框架的主流选择,其中pytest测试框架、requests HTTP库和Allure报告工具构成了技术栈的黄金组合。这套技术方案的价值在于,它能将测试用例数据(如YAML文件)与执行逻辑分离,实现数据驱动测试,并通过持续集成(如Jenkins)无缝融入DevOps

weixin_31822733的博客 378

MATLAB编程实战:通过SCPI命令高效读取普源示波器数据

本文详细介绍了如何利用MATLAB通过SCPI命令高效读取普源示波器数据,实现自动化测试与数据分析。文章从硬件连接到软件配置,再到核心代码编写与数据解析,提供了完整的实战指南,帮助工程师和科研人员摆脱手动操作,直接从示波器内存中精准读取数据,并利用MATLAB进行FFT频谱分析,大幅提升工作效率。

weixin_29176179的博客 544

vue-element-admin 动态路由 vue-element-admin 配置 动态路由 vue-element-admin 实现 动态路由 vue-element-admin自定义路由

建议刚开始开发先别实现这个功能,因为这个功能后续实现很简单很快,等全部功能开发好,直接把路由。这一步是最后一步,拿到vuex保存的当前用户菜单JSON数组,实现动态路由。登录成功后,逻辑代码写在哪个方法都可以,这两个方法都是处理登录成功后的操作。这一步作用是把用户的菜单json信息保存在vuex中。,路径src/store/modules/user.js。信息保存到数据库直接就可以用了。调用的是login接口。调用的是info接口。...

半只 1万+

K8s入门教程(一)

本教程提供了Kubernetes(K8s)的入门指南,涵盖了从基础概念到实战操作的全面内容。首先介绍了Kubernetes的定义和核心功能,如自动化部署、弹性伸缩、自我修复等。接着,详细讲解了如何在macOS上安装Minikube和kubectl工具,以及如何使用这些工具创建和管理Pod、Deployment和Service等核心资源。教程还包括了实战案例,如部署Nginx应用,并介绍了高级特性如滚动更新和自动伸缩。最后,提供了常见问题的解决方案,帮助用户快速上手和解决实际使用中的问题。

2401_82505179的博客 1689

循序渐进VUE+Element 前端应用开发(3)— 动态菜单和路由的关联处理

在我开发的很多系统里面,包括Winform混合框架、Bootstrap开发框架等系列产品中,我都倾向于动态配置菜单,并管理对应角色的菜单权限和页面权限,实现系统对用户权限的控制,菜单一般包括有名称、图标、顺序、URL连接等相关信息,对于VUE+Element 前端应用来说,应该原理上差不多,本篇随笔介绍结合服务端的动态菜单配置和本地路由的关联处理,实现动态菜单的维护和展示的处理。 1、菜...

weixin_40453615的博客 1165

Ubuntu 20.04 + CARLA 0.9.13 长时运行崩溃?手把手教你定位和缓解Segmentation fault

本文详细解析了Ubuntu 20.04环境下CARLA 0.9.13仿真平台长时运行崩溃问题,提供了从内存监控到核心转储分析的系统级诊断方法,并分享内存泄漏缓解、稳定性优化配置等实用解决方案,帮助开发者构建更稳定的自动驾驶仿真环境。

weixin_28362173的博客 252

实战!C#整合YOLO+Halcon做玻璃瓶口缺陷检测:裂纹识别+尺寸测量一步到位(附DLL交互代码)

AI擅长语义识别(裂纹、缺陷),传统机器视觉擅长精密测量(尺寸、位置),C#做整合层,才能满足工业生产的“精度+效率+稳定性”要求。这套方案不只是玻璃瓶检测能用,改改模型和测量逻辑,还能用到瓶盖缺陷检测、饮料瓶液位检测等场景。如果你们厂也有类似的质检痛点,评论区留个言,我帮你看看怎么调整算法参数。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 868

vue-element-admin 实现动态路由(从后台查询出菜单)

vue-element-admin 实现动态路由(从后台查询出菜单)

weixin_44678368的博客 2556

VTK:vtkAssembly用法实战

VTK:vtkAssembly用法实战程序输出程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkAssembly.h> #include <vtkAxesActor.h> #include <vtkCubeSource.h> #include <vtkNamedColors.h> #include <vtkNew.h> #include <vtkOrientation

希望我的博客,能帮上你解决学习中工作中所遇到的问题 932

vue-element-admin 实现动态路由(通过接口查询菜单列表绑定)

由于项目需求,菜单需要通过接口查询,并动态绑定,从网查了很多资料,发现所有文档都好像同一个人写的,而且不好用,老是出问题,通过两个小时努力,我重新做了一套,共大家参考 具体步骤如下: 1、获取接口提供在菜单,我做法如下 文件store->modules->user.js,添加如下代码 //在state中添加menus数组 const state = { menus:[] } //在mutations中添加SET_MENUS方法 const mutations = { SET

huanxiang121的专栏 1421

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

提升Vue应用体验:vue-element-admin路由动画的5个性能优化技巧

vue-element-admin作为一款基于Vue和Element UI的企业级后台管理系统框架,其路由动画功能不仅能提升用户体验,还能通过合理优化带来流畅的页面过渡效果。本文将分享五个实用的性能优化技巧,帮助开发者在使用vue-element-admin时打造既美观又高效的路由动画效果。 ## 1. 基础路由动画实现:从过渡组件开始 在vue-element-admin中,路由动画的核心实

gitblog_00960的博客 753

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

终极指南:vue-element-admin标签页缓存策略,提升用户体验的完整方案

在现代后台管理系统开发中,标签页缓存是提升用户体验的关键技术之一。vue-element-admin作为一款功能强大的Vue后台解决方案,提供了完善的标签页缓存机制,能够有效减少页面加载时间、保留用户操作状态,让系统交互更加流畅。本文将深入解析vue-element-admin的标签页缓存实现原理,帮助开发者掌握这一提升用户体验的核心技术。 ## 为什么标签页缓存对后台系统至关重要? 后台系统

gitblog_00750的博客 693

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

「vue3-element-admin」Vue3 + TypeScript 项目整合 Animate.css 动画效果实战指南

本文介绍了如何在 Vue3 + TypeScript 项目中整合 Animate.css,涵盖依赖安装、全局引入、组件应用及与 Vue 过渡组件结合的实现,帮助提升用户体验和界面交互效果。

有来技术 3341

D2Admin 项目指南

[D2Admin](https://github.com/FairyEver/d2-admin.git) 是一款基于最新前端技术栈的开源免费的企业中后台管理框架。它集成了许多实用功能,如登录注册、权限管理、动态路由等,以加速企业级应用的开发进程。D2Admin 使用 Vue.js、Element UI 和现代化的前端工具链,旨在提供优雅的界面和高效的工作流。 ## 2. 项目快速启动 ### ...

gitblog_00584的博客 574

agile-admin高级技巧:自定义主题与组件封装提升用户体验

agile-admin作为一款功能强大的Vue3+Element Plus后台管理框架,不仅提供了丰富的基础功能,还支持高度定制化开发。本文将分享自定义主题与组件封装的实用技巧,帮助开发者打造更具个性化和专业感的管理界面,提升整体用户体验。 ## 一、自定义主题:打造专属视觉风格 ### 1.1 主题变量配置 agile-admin通过SCSS变量系统实现主题定制,核心配置文件位于[src/

gitblog_02872的博客 458

Vue-next-admin核心组件详解:SvgIcon、表格与权限管理组件实战教程

Vue-next-admin是基于Vue3.x、TypeScript、Vite和Element Plus构建的后台管理模板库,提供了丰富的组件和功能,帮助开发者快速搭建适配手机、平板和PC的管理系统。本文将详细介绍三个核心组件:SvgIcon、表格组件和权限管理组件,带你掌握它们的使用方法和实战技巧。 ## 一、SvgIcon组件:轻量级图标解决方案 SvgIcon组件是Vue-next-ad

gitblog_02087的博客 869

Vue开发框架全景:从Vue.js核心到企业级解决方案

Vue开发框架全景:从Vue.js核心到企业级解决方案 本文全面解析Vue.js生态系统,从核心框架特性到企业级解决方案。首先深入分析Vue.js的响应式数据绑定、虚拟DOM、组件化开发等核心技术,然后探讨Electron-Vue跨平台开发实践,详细讲解Vue-element-admin后台管理系统的架构设计,最后提供企业级Vue框架选型指南,帮助开发者根据业务需求选择合适的技术方案。 Vue.j...

gitblog_00371的博客 415

在线教育_Day05-项目讲师管理模块前端开发

JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调适。ESLint 是一个语法规则和代码风格的检查工具,可以用来保证写出语法正确、风格统一的代码。让程序员在编码的过程中发现问题而不是在执行的过程中。通过一个地址去访问另外一个地址,这个过程如果有三个地方有任何一个地方不一样,就会出现跨域问题。访问协议ip地址端口号在api文件夹下,创建js文件,定义接口地址和参数。

BS009的博客 342

2021-01-06

vue-element-admin左侧导航栏显示新消息提示 我们都知道,左侧导航栏是通过遍历路由显示出来的,就先找到遍历路由的那个页面,再一层层去找。 这个框架是通过layout布局的,找到layout中的Sidebar/index.vue页面,就会发现 图中的sidebar-item标签用了v-for循环遍历了permission_router,permission_router可以去store中的可以找到,但是想实现左侧导航栏消息提醒还是要往下挖一层,从import中可以看到在这个页面中引用了子组件Si

DINGHHJIBU的博客 226

vue 中router-link属性设置

<router-link>组件的属性有: to 、replace、 append、 tag、 active-class、 exact 、 event、 exact-active-class to(必选参数):类型string/location 表示目标路由的链接,该值可以是一个字符串,也可以是动态绑定的描述目标位置的对象 <!-- 字符串 --> <router-link to="home">Home</router-link> <!-- 渲染

weixin_43837268的博客 2110

Vue 完整版系统知识文档

《Vue全栈开发实战手册》摘要 本手册系统整合Vue2/Vue3全栈知识体系,涵盖基础语法、组件开发、状态管理、工程化等核心内容,适合从入门到精通的完整学习路径。主要特点: 基础核心 详解MVVM架构和响应式原理(Vue2的Object.defineProperty vs Vue3的Proxy) 完整模板语法规则与16种内置指令解析 组件系统核心:通信机制(8种方案)、插槽、动态组件、递归组件 进阶实战 状态管理:Vuex/Pinia完整解决方案 路由开发:动态路由、权限控制、懒加载 工程化:Webpack

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 400

Vue自定义权限指令v-permission实现与最佳实践

权限控制是前端工程中保障系统安全与数据隔离的核心机制,尤其在Vue.js等现代前端框架构建的中后台管理系统中。其基本原理是通过比对用户权限标识与界面元素所需权限,动态控制元素的渲染与交互。在技术实现上,自定义指令提供了一种声明式、高内聚的解决方案,能够将分散的权限判断逻辑集中管理,显著提升代码的可维护性与可读性。从工程实践角度看,结合Vuex或Pinia进行全局状态管理,可以确保权限数据的响应式与一致性。本文聚焦于如何设计并实现一个健壮的Vue自定义权限指令(v-permission),深入探讨其与Vue

weixin_30696427的博客 382
上一篇: mac php7.3 odbc安装
下一篇: 编写自己的composer包
自娱自乐22
博客等级 码龄18年 241粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值