vue项目点击左侧子菜单,不打开默认二级页面,直接打开一个新的浏览器标签页,且隐藏默认二级页面导航

在不改变路由的状态下,直接在默认的二级菜单页面中打开新的浏览器标签页,在二级页面的创建状态created下使用window.resolve({path:‘/路径’})打开新的路径

二级菜单路由

import Layout from '@/layout'
export const routeGroup = {
  Task: 'A', //任务
};
const TaskRoute = {
  app: true,
  group: routeGroup.Task,
  hidden: false,
  path: '/Task',
  component: Layout,
  redirect: 'Task',
    children: [ {
      hidden: true,
      path: 'TaskOverView',
      component: () => import('@/views/TaskOverView/index2'),
      name: 'TaskOverView',
      TitleValue: '概览',
      meta: {
        title: '概览',
        MySqlPower: 'TaskOverView',
        mark: '任务',
        redirect: '/TaskOverView',
        standalone: true
      },
    }]
    export default TaskRoute

新标签页面路由

import Layout from '@/layout'
const IndependentRoute = [{
    hidden: true,
    path: '/TaskOverViewDetails',
    name: 'TaskOverViewDetails',
    meta: {
      MySqlPower: 'TaskOverView',//角色访问权限
      title: '概览',
    },
    component: () => import('@/views/TaskOverView/index')//新标签页路径,
  }]

export default IndependentRoute

二级菜单页面创建状态时,打开新标签页面

import {mapState} from "vuex";
created() {
    let RouterData = this.$router.resolve({
      path: "/TaskOverViewDetails",
    });
    window.open(RouterData.href, "_blank");//隐藏传参信息上上篇有
    this.handleTabRemove()
  },

并且关闭默认打开的二级页面菜单,数字字典便利路由数组,将上一个路由进行删除,并且重定向到其他路由上

computed: {
			...mapState({
				visitedRoutes: (state) => state.tabsBar.visitedRoutes
			}),
		},
  methods: {
    async handleTabRemove(tabActive) {
      const route = this.$route
      const { visitedRoutes } = this
				await this.$store.dispatch("delRoute",route);
				if (this.isActive(route)) {
					this.toLastTag(visitedRoutes, route);
				}
			},
      isActive(route) {
				return route.path === this.$route.path;
			},
      toLastTag(visitedRoutes, view) {
				const latestView = visitedRoutes.slice(-1)[0];
				if (latestView) {
					this.$router.push(latestView);
				} else {
					this.$router.push("/重定向到的路由路径");
				}
			},
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值