iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现三级页面跳转功能
  • 231
分享到

vue实现三级页面跳转功能

vue三级页面跳转vue页面跳转 2023-10-18 11:10:50 231人浏览 八月长安
摘要

问题描述:在二级页面点击按钮,打开新的标签页 实现: 在router目录下的index.js文件添加对应组件 { path: '/offices', compon

问题描述:在二级页面点击按钮,打开新的标签页

实现:

在router目录下的index.js文件添加对应组件

{
    path: '/offices',
    component: <strong>'Layout'</strong><strong>,</strong>
    hidden: true,
    redirect: 'noRedirect',
    permission: 'sys:office:launch',
    meta: { title: '办公管理',roles: ['sys:office'] },
    children: [
      {
        path: '/flows',
        component: <strong>'/office/launch/flows'</strong><strong>,</strong>
        name: 'flows',
        hidden: true,
        meta: { title: '转正', activeMenu: '/office/launch' }
      },
    ]
  }

说明:上述黄色标记部分代码和以外自定义的component不一样,主要原因是自定义路由解析方法所致

修改store目录下permission.js

以下是之前定义的方法,该方法主要是生成从后端返回来的对应菜单的路由信息

export function filterAsyncRoutes(routes, roles) {
  const res = []
  routes.forEach(route => {
    const tmp = { ...route }
    if (hasPermission(roles, tmp)) {
      // 获取组件
      const component = tmp.component
      // 判断该路由使用组件
      if(route.component){
        // 判断是否是根组件
        if(component === 'Layout'){
          tmp.component = Layout
          tmp.redirect = 'noRedirect'
        }else{
          // 获取对应的具体组件信息
          tmp.component = (resolve) => require([`@/views${component}`],resolve)
        }
      }
      // 判断是否有子菜单
      if(tmp.children){
        const child = tmp.children
        child.forEach(e => {
          e.path = tmp.path + e.path
        })
        tmp.children = filterAsyncRoutes(tmp.children, roles)
      }
       res.push(tmp)
    }
  })
  return res
}
const actions = {
  // 动态生成路由
  generateRoutes({ commit }, roles) {
    return new Promise((resolve,reject) => {
      getMenuList().then(res=>{
        let accessedRoutes;//存放对应权限的路由信息
        //如果状态码为200,则表示成功
        if(res.code === 200){
          accessedRoutes = filterAsyncRoutes(res.data, roles)
        }
        //将路由信息保存到store中
        commit("SET_ROUTES",accessedRoutes);
        resolve(accessedRoutes);
      }).catch(error=>{
        reject(error);
      });
    })
  }
}

修改之后的方法

export function filterAsyncRoutes(routes, roles, <strong>type = false</strong>) {
  const res = []
  routes.forEach(route => {
    const tmp = { ...route }
    if (hasPermission(roles, tmp)) {
      // 获取组件
      const component = tmp.component
      // 判断该路由使用组件
      if(route.component){
        // 判断是否是根组件
        if(component === 'Layout'){
          tmp.component = Layout
          tmp.redirect = 'noRedirect'
        }else{
          // 获取对应的具体组件信息
          tmp.component = (resolve) => require([`@/views${component}`],resolve)
        }
      }
      // 判断是否有子菜单
      if(tmp.children){
        const child = tmp.children
        child.forEach(e => {
          e.path = tmp.path + e.path
        })
        tmp.children = filterAsyncRoutes(tmp.children, roles, false)
      }
      if(type && roles.includes(tmp.permission) || tmp.permission === 'all'){
        res.push(tmp)
      }else if(!type){
        res.push(tmp)
      }
    }
  })
  return res
}
const actions = {
  // 动态生成路由
  generateRoutes({ commit }, roles) {
    return new Promise((resolve,reject) => {
      getMenuList().then(res=>{
        let accessedRoutes;//存放对应权限的路由信息
        //如果状态码为200,则表示成功
        if(res.code === 200){
          accessedRoutes = filterAsyncRoutes(res.data, roles, false)
          // asyncRoutes 该参数就是上面添加的路由信息
          accessedRoutes = accessedRoutes.concat(filterAsyncRoutes(asyncRoutes,roles,true))
        }
        //将路由信息保存到store中
        commit("SET_ROUTES",accessedRoutes);
        resolve(accessedRoutes);
      }).catch(error=>{
        reject(error);
      });
    })
  }
}

黄色部分就是新增部分

修改面包屑和标签名

title: view.query && view.query.metaTitle?view.query.metaTitle:(view.meta.title || 'no-name')

--结束END--

本文标题: vue实现三级页面跳转功能

本文链接: https://www.lsjlt.com/news/430787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现三级页面跳转功能
    问题描述:在二级页面点击按钮,打开新的标签页 实现: 在router目录下的index.js文件添加对应组件 { path: '/offices', compon...
    99+
    2023-10-18
    vue三级页面跳转 vue页面跳转
  • Vue如何实现关联页面多级跳转功能
    小编给大家分享一下Vue如何实现关联页面多级跳转功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景在项目开发过程中,经常会遇到从上一个页面跳转到下一个页面的需...
    99+
    2023-06-14
  • Vue实现关联页面多级跳转(页面下钻)功能的完整实例
    背景 在项目开发过程中,经常会遇到从上一个页面跳转到下一个页面的需求,俗称 下钻 。比如在概览页面的数据,需要查看详情,点击某个图表或按钮,即可跳转到详情页面查看详情数据。 目前为...
    99+
    2024-04-02
  • html5怎么实现页面跳转功能
    本篇内容主要讲解“html5怎么实现页面跳转功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5怎么实现页面跳转功能”吧! ...
    99+
    2024-04-02
  • html怎么实现页面跳转功能
    这篇文章主要讲解了“html怎么实现页面跳转功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html怎么实现页面跳转功能”吧! ...
    99+
    2024-04-02
  • Ajax post实现请求跳转页面功能
    本篇内容主要讲解“Ajax post实现请求跳转页面功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax post实现请求跳转页面功能”吧!最近因为公司需...
    99+
    2024-04-02
  • jquery实现登陆跳转页面跳转页面跳转
    在Web开发中,很常见的一种需求是用户通过输入账号和密码完成登陆操作后,跳转到不同的页面。这一过程中需要用到Javascript库中非常流行的jQuery来实现。jQuery是一个快速、简洁的JavaScript库,其设计思想是“写更少,做...
    99+
    2023-05-25
  • JavaScript怎么实现网页传参跳转页面功能
    随着互联网的快速发展,越来越多的网页需要将信息从一个页面传递到另一个页面。传统的方法是使用GET或POST请求,但这种方式需要服务器端的支持,并且不能直接跳转页面。而JavaScript实现网页传参跳转页面,无需服务器支持,可以直接跳转到目...
    99+
    2023-05-14
  • 如何在 Golang 中实现页面跳转功能
    在 Golang 中实现页面跳转功能通常涉及 Web 开发领域,主要是通过使用路由实现页面之间的跳转。下面将具体介绍如何在 Golang 中实现页面跳转功能,并提供代码示例。 首先,我...
    99+
    2024-03-06
    页面 golang 跳转
  • PHP代码示例:实现页面跳转功能
    在PHP中,我们可以使用header()函数来实现页面跳转功能。下面是一个简单的示例:<php   // 检查某个条件是否满足,例如用户是否登录   if (!isset...
    99+
    2024-03-07
    php 示例 页面跳转
  • 怎么使用ThinkPHP实现页面跳转到首页功能
    今天小编给大家分享一下怎么使用ThinkPHP实现页面跳转到首页功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。配置路由在...
    99+
    2023-07-05
  • jquery如何实现点击按钮跳转页面功能
    今天小编给大家分享一下jquery如何实现点击按钮跳转页面功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,在 HTM...
    99+
    2023-07-05
  • 微信小程序怎么实现页面跳转功能
    这篇“微信小程序怎么实现页面跳转功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现页面跳转功能”文章吧。实...
    99+
    2023-07-05
  • Android 实现页面跳转
    android使用Intent来实现页面跳转,Intent通过startActivity(Intent intent)或startActivityForResult(Intent intent,int resquestCode)方法来启动A...
    99+
    2023-05-30
    android 页面 跳转
  • Android实现页面跳转
    本文实例为大家分享了Android实现页面跳转的具体代码,供大家参考,具体内容如下 一. Android实现页面跳转有两种方式,一种为.MainActivity跳转;第二种是Rela...
    99+
    2024-04-02
  • vue3配置router路由并实现页面跳转功能
    目录1、安装vue-router2、根目录下新建router文件夹,下面新建index.js文件和routes.js2.1文件中引入vue方法、配置页面具体路径3、main.js文件...
    99+
    2023-05-17
    vue3页面跳转 vue3配置router路由
  • jquery怎么实现点击按钮跳转页面功能
    在网站开发中,经常会有一些需要使用到按钮(button)来实现页面跳转的场景。今天我们就来讲一下如何使用 jQuery 实现点击按钮进行页面跳转的功能。首先,在 HTML 文件头部 加入 jQuery 库,代码如下:<script s...
    99+
    2023-05-14
  • PHP页面跳转教程:如何实现页面跳转到新页面
    标题:PHP页面跳转教程:如何实现页面跳转到新页面,需要具体代码示例 在Web开发中,页面跳转是一个常见的操作,通过页面跳转可以实现用户在不同页面间进行流畅的切换,提升用户体验和网站功...
    99+
    2024-03-04
    教程 php 页面跳转 a标签
  • vue项目实现页面跳转的方法
    目录1.创建一个vue-cli默认项目(仅包含babel)2.进入创建文件3.检查配置4.创建views文件夹5.设置APP.vue6.进行main.js的配置7.运行结果问题描述:...
    99+
    2024-04-02
  • Vue实现路由跳转至外界页面
    目录Vue路由跳转至外界页面解决办法Vue路由跳转页面的几种方式总结Vue路由跳转至外界页面 用法 如果使用路由是在 vue 页面中来回跳转,可以使用 this.$router.pu...
    99+
    2022-12-09
    Vue路由 Vue路由跳转 Vue路由跳转页面
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作