开启TopNav没有子菜单情况隐藏侧边栏
This commit is contained in:
		
							parent
							
								
									9f944c043f
								
							
						
					
					
						commit
						6130bebbb3
					
				@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
#foreach($column in $columns)
 | 
			
		||||
#if($column.query)
 | 
			
		||||
#set($dictType=$column.dictType)
 | 
			
		||||
 | 
			
		||||
@ -176,7 +176,7 @@ public class SysMenuServiceImpl implements ISysMenuService
 | 
			
		||||
            else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
 | 
			
		||||
            {
 | 
			
		||||
                router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
 | 
			
		||||
                router.setPath("/inner");
 | 
			
		||||
                router.setPath("/");
 | 
			
		||||
                List<RouterVo> childrenList = new ArrayList<RouterVo>();
 | 
			
		||||
                RouterVo children = new RouterVo();
 | 
			
		||||
                String routerPath = innerLinkReplaceEach(menu.getPath());
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,10 @@
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .sidebarHide {
 | 
			
		||||
    margin-left: 0!important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .sidebar-container {
 | 
			
		||||
    -webkit-transition: width .28s;
 | 
			
		||||
    transition: width 0.28s;
 | 
			
		||||
 | 
			
		||||
@ -71,7 +71,7 @@ export default {
 | 
			
		||||
        for (var item in router.children) {
 | 
			
		||||
          if (router.children[item].parentPath === undefined) {
 | 
			
		||||
            if(router.path === "/") {
 | 
			
		||||
              router.children[item].path = "/redirect/" + router.children[item].path;
 | 
			
		||||
              router.children[item].path = "/" + router.children[item].path;
 | 
			
		||||
            } else {
 | 
			
		||||
              if(!this.ishttp(router.children[item].path)) {
 | 
			
		||||
                router.children[item].path = router.path + "/" + router.children[item].path;
 | 
			
		||||
@ -87,22 +87,23 @@ export default {
 | 
			
		||||
    // 默认激活的菜单
 | 
			
		||||
    activeMenu() {
 | 
			
		||||
      const path = this.$route.path;
 | 
			
		||||
      let activePath = this.defaultRouter();
 | 
			
		||||
      let activePath = path;
 | 
			
		||||
      if (path.lastIndexOf("/") > 0) {
 | 
			
		||||
        const tmpPath = path.substring(1, path.length);
 | 
			
		||||
        activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/"));
 | 
			
		||||
        this.$store.dispatch('app/toggleSideBarHide', false);
 | 
			
		||||
      } else if ("/index" == path || "" == path) {
 | 
			
		||||
        if (!this.isFrist) {
 | 
			
		||||
          this.isFrist = true;
 | 
			
		||||
        } else {
 | 
			
		||||
          activePath = "index";
 | 
			
		||||
        }
 | 
			
		||||
        this.$store.dispatch('app/toggleSideBarHide', true);
 | 
			
		||||
      } else if(!this.$route.children) {
 | 
			
		||||
        activePath = path;
 | 
			
		||||
        this.$store.dispatch('app/toggleSideBarHide', true);
 | 
			
		||||
      }
 | 
			
		||||
      var routes = this.activeRoutes(activePath);
 | 
			
		||||
      if (routes.length === 0) {
 | 
			
		||||
        activePath = this.currentIndex || this.defaultRouter()
 | 
			
		||||
      this.activeRoutes(activePath);
 | 
			
		||||
      }
 | 
			
		||||
      return activePath;
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
@ -121,29 +122,21 @@ export default {
 | 
			
		||||
      const width = document.body.getBoundingClientRect().width / 3;
 | 
			
		||||
      this.visibleNumber = parseInt(width / 85);
 | 
			
		||||
    },
 | 
			
		||||
    // 默认激活的路由
 | 
			
		||||
    defaultRouter() {
 | 
			
		||||
      let router;
 | 
			
		||||
      Object.keys(this.routers).some((key) => {
 | 
			
		||||
        if (!this.routers[key].hidden) {
 | 
			
		||||
          router = this.routers[key].path;
 | 
			
		||||
          return true;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      return router;
 | 
			
		||||
    },
 | 
			
		||||
    // 菜单选择事件
 | 
			
		||||
    handleSelect(key, keyPath) {
 | 
			
		||||
      this.currentIndex = key;
 | 
			
		||||
      const route = this.routers.find(item => item.path === key);
 | 
			
		||||
      if (this.ishttp(key)) {
 | 
			
		||||
        // http(s):// 路径新窗口打开
 | 
			
		||||
        window.open(key, "_blank");
 | 
			
		||||
      } else if (key.indexOf("/redirect") !== -1) {
 | 
			
		||||
        // /redirect 路径内部打开
 | 
			
		||||
        this.$router.push({ path: key.replace("/redirect", "") });
 | 
			
		||||
      } else if (!route || !route.children) {
 | 
			
		||||
        // 没有子路由路径内部打开
 | 
			
		||||
        this.$router.push({ path: key });
 | 
			
		||||
        this.$store.dispatch('app/toggleSideBarHide', true);
 | 
			
		||||
      } else {
 | 
			
		||||
        // 显示左侧联动菜单
 | 
			
		||||
        this.activeRoutes(key);
 | 
			
		||||
        this.$store.dispatch('app/toggleSideBarHide', false);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    // 当前激活的路由
 | 
			
		||||
@ -159,7 +152,6 @@ export default {
 | 
			
		||||
      if(routes.length > 0) {
 | 
			
		||||
        this.$store.commit("SET_SIDEBAR_ROUTERS", routes);
 | 
			
		||||
      }
 | 
			
		||||
      return routes;
 | 
			
		||||
    },
 | 
			
		||||
    ishttp(url) {
 | 
			
		||||
      return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@ export default {
 | 
			
		||||
          value: val
 | 
			
		||||
        })
 | 
			
		||||
        if (!val) {
 | 
			
		||||
          this.$store.dispatch('app/toggleSideBarHide', false);
 | 
			
		||||
          this.$store.commit("SET_SIDEBAR_ROUTERS", this.$store.state.permission.defaultRoutes);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
 | 
			
		||||
    <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
 | 
			
		||||
    <sidebar class="sidebar-container"/>
 | 
			
		||||
    <div :class="{hasTagsView:needTagsView}" class="main-container">
 | 
			
		||||
    <sidebar v-if="!sidebar.hide" class="sidebar-container" />
 | 
			
		||||
    <div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
 | 
			
		||||
      <div :class="{'fixed-header':fixedHeader}">
 | 
			
		||||
        <navbar />
 | 
			
		||||
        <tags-view v-if="needTagsView" />
 | 
			
		||||
 | 
			
		||||
@ -164,6 +164,12 @@ export const dynamicRoutes = [
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
// 防止连续点击多次路由报错
 | 
			
		||||
let routerPush = Router.prototype.push;
 | 
			
		||||
Router.prototype.push = function push(location) {
 | 
			
		||||
  return routerPush.call(this, location).catch(err => err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default new Router({
 | 
			
		||||
  mode: 'history', // 去掉url中的#
 | 
			
		||||
  scrollBehavior: () => ({ y: 0 }),
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,8 @@ import Cookies from 'js-cookie'
 | 
			
		||||
const state = {
 | 
			
		||||
  sidebar: {
 | 
			
		||||
    opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,
 | 
			
		||||
    withoutAnimation: false
 | 
			
		||||
    withoutAnimation: false,
 | 
			
		||||
    hide: false
 | 
			
		||||
  },
 | 
			
		||||
  device: 'desktop',
 | 
			
		||||
  size: Cookies.get('size') || 'medium'
 | 
			
		||||
@ -30,6 +31,9 @@ const mutations = {
 | 
			
		||||
  SET_SIZE: (state, size) => {
 | 
			
		||||
    state.size = size
 | 
			
		||||
    Cookies.set('size', size)
 | 
			
		||||
  },
 | 
			
		||||
  SET_SIDEBAR_HIDE: (state, status) => {
 | 
			
		||||
    state.sidebar.hide = status
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -45,6 +49,9 @@ const actions = {
 | 
			
		||||
  },
 | 
			
		||||
  setSize({ commit }, size) {
 | 
			
		||||
    commit('SET_SIZE', size)
 | 
			
		||||
  },
 | 
			
		||||
  toggleSideBarHide({ commit }, status) {
 | 
			
		||||
    commit('SET_SIDEBAR_HIDE', status)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -22,12 +22,7 @@ const permission = {
 | 
			
		||||
      state.defaultRoutes = constantRoutes.concat(routes)
 | 
			
		||||
    },
 | 
			
		||||
    SET_TOPBAR_ROUTES: (state, routes) => {
 | 
			
		||||
      // 顶部导航菜单默认添加统计报表栏指向首页
 | 
			
		||||
      const index = [{
 | 
			
		||||
        path: 'index',
 | 
			
		||||
        meta: { title: '统计报表', icon: 'dashboard' }
 | 
			
		||||
      }]
 | 
			
		||||
      state.topbarRouters = routes.concat(index);
 | 
			
		||||
      state.topbarRouters = routes
 | 
			
		||||
    },
 | 
			
		||||
    SET_SIDEBAR_ROUTERS: (state, routes) => {
 | 
			
		||||
      state.sidebarRouters = routes
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="任务名称" prop="jobName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.jobName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="任务名称" prop="jobName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.jobName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="登录地址" prop="ipaddr">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.ipaddr"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
 | 
			
		||||
      <el-form-item label="登录地址" prop="ipaddr">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.ipaddr"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="系统模块" prop="title">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.title"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="参数名称" prop="configName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.configName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
 | 
			
		||||
      <el-form-item label="部门名称" prop="deptName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.deptName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="字典名称" prop="dictType">
 | 
			
		||||
        <el-select v-model="queryParams.dictType">
 | 
			
		||||
          <el-option
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="字典名称" prop="dictName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.dictName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
 | 
			
		||||
      <el-form-item label="菜单名称" prop="menuName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.menuName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="公告标题" prop="noticeTitle">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.noticeTitle"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="岗位编码" prop="postCode">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.postCode"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
     <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch">
 | 
			
		||||
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
 | 
			
		||||
      <el-form-item label="用户名称" prop="userName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.userName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
 | 
			
		||||
      <el-form-item label="角色名称" prop="roleName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.roleName"
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <!-- 授权用户 -->
 | 
			
		||||
  <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
 | 
			
		||||
      <el-form-item label="用户名称" prop="userName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.userName"
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <!--用户数据-->
 | 
			
		||||
      <el-col :span="20" :xs="24">
 | 
			
		||||
        <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
          <el-form-item label="用户名称" prop="userName">
 | 
			
		||||
            <el-input
 | 
			
		||||
              v-model="queryParams.userName"
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <!-- 导入表 -->
 | 
			
		||||
  <el-dialog title="导入表" :visible.sync="visible" width="800px" top="5vh" append-to-body>
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
 | 
			
		||||
      <el-form-item label="表名称" prop="tableName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.tableName"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
			
		||||
      <el-form-item label="表名称" prop="tableName">
 | 
			
		||||
        <el-input
 | 
			
		||||
          v-model="queryParams.tableName"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user