Vue2在一个页面内动态切换菜单显示对应的路由组件

项目的需求是在一个页面内动态获取导航菜单,导航菜单切换的时候显示对应的路由页面,类似于tab切换的形式,切换的导航菜单和页面左侧导航菜单是同一个路由组件,只是放到了一个页面上,显示的个数不同,所有是动态获取的;效果如下图:

 使用动态加载路由方式import('@/views/pmc/info/index')import里面的是固定值,不能是变量,写变量就会报错,但我的需求是需要动态获取,所以找到了一个可行的方法,具体代码示例如下:

<template>
  <div class="app-container">
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tab-pane v-for="(item,index) in list" :key="index" :label="item.dictName" :name="item.signName"></el-tab-pane>
      <!-- <el-tab-pane label="基本信息" name="second"></el-tab-pane>
      <el-tab-pane label="历史沿革" name="third"></el-tab-pane>-->
    </el-tabs>
    <keep-alive>  
      <!-- <component :is="currentComponent"></component> -->
      <component :is="asyncComponent" :mydeptId="deptId"></component>
    </keep-alive>
  </div>
</template>
<script>
import { menulist } from "@/api/pmc/MenuTab";

  export default {
    data() {
      return {
        activeName: 'second',//当前显示的tab的name
        currentComponent:"",// 当前组件的名字
        list:[],//菜单数组
        curdizhi:"",//当前菜单的路径,例如:"pmc/DeptBaseInfo/index"
        deptId:"",//公司的id,从路由地址传过来的
      };
    },
    components: { },
    computed: {  
      asyncComponent() {  
        // console.log("`@/views/${this.curdizhi}`--15:",`@/views/${this.curdizhi}`) 
        return () => require.ensure([], (require) => require(`@/views/${this.curdizhi}`))
      }  
    },
    created(){
      this.deptId=this.$route.query.deptId
      console.log("页面地址传来的参数:",this.deptId)
      //获取菜单列表
      this.getList();
      // this.currentComponent= () => import('@/views/pmc/info/index'); //第一个的组件地址路径,这里为了测试,应该写到getList()
      //方法的成功回调里面,当前组件currentComponent赋初值,还要给activeName赋初值
    },
    methods: {
      /** 查询菜单列表 */
      getList() {
        this.loading = true;
        menulist().then(response => {
          this.loading = false;
          console.log("菜单列表response3-13",response)
          this.list = response.rows;
          let oneobj=response.rows[0] //第一个路由对象
          // let one='@/views/'+response.rows[0].dictPath;//第一个数组中的对象路径
          //  that.currentComponent= () => import(one); //第一个的组件地址路径,这样写报错,import里面不能写变量
           this.activeName=oneobj.signName;//当前显示的标签的name赋值
           this.curdizhi=oneobj.dictPath //当前的路由页面
          
        });
      },
      //tab切换点击事件
      handleClick(tab, event) {
        // console.log("点击事件3-12:tab",tab);
        // console.log("点击事件3-12:event",event);
        console.log("点击的第几项index",tab.index)
        let index=tab.index;//tab选项在数组中的下标值
        let list=this.list;//菜单数组
        let curobj=list[index];//当前点击的路由对象
        let curdizhi=list[index].dictPath;//当前显示的菜单路由是点击的这条数据的路由地址
        this.curdizhi=curdizhi;//当前路由地址赋初值
        // if(index==0){
        //   this.currentComponent= () => import('@/views/pmc/info/index'); 
        // }
      }
    }
  };
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT下跨平台库实现及移植经验分享

最近在移植公司一个QT桌面软件到android上&#xff0c;有一些公司自定义的库&#xff0c;用了很多windows的api&#xff0c;移植过程很是曲折&#xff0c;在此有一些感悟分享一下~ 一.自编写跨平台库 1.有时候为了程序给第三方用需要编译一些qt封装库&#xff0c;并可能跨平台…

AI智慧校园电子班牌云平台源码

目录 家长端 学校端 电子围栏 亲情通话 课堂答题 移动化管理模式 统一资源管理平台 模板内容智能更换 家校互联 家长端 多场景通话:上学放学联系、紧急遇险求助联系、日常亲情通话关注孩子人身安全:到校离校情况、进入危险区域预警等。 学校端 课堂秩序管理:提高教…

canvas绘制时,画布上有一个镂空的圆形(即背景可见),然后随着动画的进行,这个圆形的边界逐渐扩大至充满整个屏幕

<canvas id"myCanvas" width"800" height"600"></canvas>在不同宽高比的屏幕上&#xff0c;如果canvas元素没有被强制保持与窗口同样的宽高比&#xff08;例如通过CSS设置其宽度和高度百分比或者响应式布局&#xff09;&#xff0c;…

【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议(ICBADS 2024)

【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议&#xff08;ICBADS 2024) 征稿主题 &#xff08;以下主题包括但不限于&#xff09; 多媒体决策 决策理论与决策科学 数字市场设计与运营 降维 电子商务 道德决策 财务分析 群体决策与软件 医疗保…

【Linux-网络编程】

Linux-网络编程 ■ 网络结构■ C/S结构■ B/S结构 ■ 网络模型■ OSI七层模型■ TCP/IP四层模型 ■ TCP■ TCP通信流程■ TCP三次握手■ TCP四次挥手 ■ 套接字&#xff1a;socket 主机IP 主机上的进程&#xff08;端口号&#xff09;■ TCP传输文件 ■ 网络结构 ■ C/S结构…

MATLAB中visdiff函数用法

目录 语法 说明 示例 比较两个文件 比较两个文件并指定类型 发布比较报告 visdiff函数的功能是比较两个文件或文件夹。 语法 visdiff(filename1,filename2) visdiff(filename1,filename2,type) comparison visdiff(___) 说明 visdiff(filename1,filename2) 打开比较工…

cdo求多年平均教程

问题描述&#xff1a; 现有模式的输出数据&#xff0c;是以每个月一个文件的方式输出的&#xff0c;现在我想要十年的平均。 解决方法&#xff1a; 求这些数据十年的平均只需要这一行就可以了&#xff0c;首先将2000年到2009年的所有数据选出来&#xff0c;然后用xargs 命令传…

计算机设计大赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

hot100 -- 矩阵

&#x1f442; Peter Pan - kidult. - 单曲 - 网易云音乐 &#x1f442; Bibliothque&#xff08;图书馆&#xff09; - Jasing Rye - 单曲 - 网易云音乐 目录 &#x1f33c;前言 &#x1f33c;二分模板 &#x1f382;矩阵置零 AC 标记数组 AC 标记变量 &#x1f6a9;…

AI新工具(20240313) 用户输入提示词创建任何GIF; 将任意人脸图片转换为另一幅图像的模型

✨ 1: GifShift 用户输入提示词创建任何GIF gifshift是一种工具&#xff0c;可以帮助用户创建任何GIF的新版本。使用gifshift的步骤如下&#xff1a; 上传一个GIF文件或者使用库中的一个GIF。 提供您想要的场景描述&#xff0c;最好选择一些具有代表性的角色&#xff0c;并进…

linux下重启ORACLE

切换到oracle用户 su - oracle 登录oracle sqlplus / as sysdba 启动数据库 startup 退出数据库 exit 启动监听 lsnrctl start FINISH

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Badge)

可以附加在单个组件上用于信息标记的容器组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明&#xff1a; 子组件类型&#xff1a;系统组件和自定义组件&#xf…

【JS】parseInt与Math.floor的区别

获取两数区间随机整数的函数如下 function getRandom(min,max){return Math.floor(Math.random() * (max - min) min) }这个函数中&#xff0c;只可以使用Math.random&#xff0c;parseInt会出问题&#xff0c;二者虽然都是取整&#xff0c;但又有一些区别。 parseInt是「向…

单片机FLASH深度解析和编程实践(上)

本篇文章主要针对单片机FLASH编程和FLASH基本原理进行学习分享。以STM32单片机作为实例进行编程实训。 关于FLASH操作的相关寄存器及编程&#xff0c;大家可以参考下一篇文章: 单片机FLASH深度解析和编程实践&#xff08;下&#xff09;-CSDN博客 目录 一、STM32编程方式 二、…

挑战杯 机器视觉人体跌倒检测系统 - opencv python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器视觉人体跌倒检测系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&…

Wmware安装Linux(centerOS、Ubuntu版本)

目录 1、安装wmware 2、center版本 3、ubuntu版本 1、安装wmware 此处不做展开。 2、center版本 需要提前下载的文件&#xff1a; 无图形化界面https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso 有图形化界面https://mirrors.a…

实现更高能效的汽车级低边驱动器NRVB140ESFT1G 带温度和电流限制 自保护低压侧驱动器

一起去了解关于汽车电子AEC Q101车规认证&#xff01;&#xff01;! 是一种针对分立半导体的可靠性测试认证程序&#xff0c;由汽车电子协会发布。这个认证程序主要是为了确保汽车电子产品在各种严苛的条件下能够正常工作和可靠运行。它包括了对分立半导体的可靠性、环境适应性…

树和二叉树的介绍

树 树是一种数据结构&#xff0c;它是由n(n≥0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 它具有以下的特点&#xff1a; 每个节点有零个或多个子节点&#xff1b;没有父节点…

nmcli --help(nmcli -h)nmcli文档、nmcli手册

文章目录 nmcli --helpOPTION解释OBJECT解释1. g[eneral]&#xff1a;查看NetworkManager的状态2. n[etworking]&#xff1a;启用或禁用网络3. r[adio]&#xff1a;查看无线电状态&#xff08;例如&#xff0c;Wi-Fi&#xff09;4. c[onnection]&#xff1a;列出所有的网络连接…

AIGC: 3. AI时代程序员的生存模式思考

AI跟程序员关系思考 在 3 月 9 日央视的《对话》的开年说节目上&#xff0c;百度创始人、董事长兼 CEO 李彦宏先生表示&#xff1a; 1.基本上以后不会存在“程序员”这种职业了&#xff0c;因为只要会说话&#xff0c;人人都会具备程序员的能力。 2.“未来的编程语言只会剩下…