src/components/page/GlobalLayout.vue
@@ -1,60 +1,46 @@
<template>
  <a-layout class="layout" :class="[device]">
  <a-layout class="layout" :class="[device]"
            :style="{backgroundImage:$route.meta.title==='首页'?`url(${require('../../assets/page/index/background.svg')}) !important`:`url(${require('../../assets/page/login/background.svg')})!important`}">
    <template v-if="layoutMode === 'sidemenu'">
      <a-drawer
        v-if="device === 'mobile'"
        :wrapClassName="'drawer-sider ' + navTheme"
        placement="left"
        @close="() => this.collapsed = false"
        :closable="false"
        :visible="collapsed"
        width="200px"
      >
        <side-menu
          mode="inline"
          v-if="device === 'mobile'"
          :menus="menus"
          @menuSelect="menuSelect"
          @updateMenuTitle="handleUpdateMenuTitle"
          :theme="navTheme"
          :collapsed="false"
          :collapsible="true"></side-menu>
      </a-drawer>
    <!--<a-drawer-->
    <!--v-if="device === 'mobile'"-->
    <!--:wrapClassName="'drawer-sider ' + navTheme"-->
    <!--placement="left"-->
    <!--@close="() => this.collapsed = false"-->
    <!--:closable="false"-->
    <!--:visible="collapsed"-->
    <!--width="200px"-->
    <!--&gt;-->
    <!--<side-menu-->
    <!--mode="inline"-->
    <!--v-if="device === 'mobile'"-->
    <!--:menus="menus"-->
    <!--@menuSelect="menuSelect"-->
    <!--@updateMenuTitle="handleUpdateMenuTitle"-->
    <!--:theme="navTheme"-->
    <!--:collapsed="false"-->
    <!--:collapsible="true"></side-menu>-->
    <!--</a-drawer>-->
      <side-menu
        v-show="device === 'desktop'"
        mode="inline"
        :menus="menus"
        @menuSelect="myMenuSelect"
        @updateMenuTitle="handleUpdateMenuTitle"
        :theme="navTheme"
        :collapsed="collapsed"
        :collapsible="true"></side-menu>
    </template>
    <side-menu
      mode="inline"
      :menus="menus"
      @menuSelect="myMenuSelect"
      @updateMenuTitle="handleUpdateMenuTitle"
      :theme="navTheme"
      :collapsed="true"
      :collapsible="true"></side-menu>
    <a-layout
      :class="[layoutMode, `content-width-${contentWidth}`]"
      :style="{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 200 : 80}px` : '0' }">
      <!-- layout header -->
      <global-header
        :mode="layoutMode"
        :menus="menus"
        :theme="navTheme"
        :collapsed="collapsed"
        :device="device"
        @toggle="toggle"
        @updateMenuTitle="handleUpdateMenuTitle"
      />
      :class="[layoutMode, `content-width-${contentWidth}`]">
      <!-- layout content -->
      <a-layout-content :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' }">
      <a-layout-content :style="{ height: '100%' }">
        <slot></slot>
      </a-layout-content>
      <!-- layout footer -->
      <a-layout-footer style="padding: 0px">
      <a-layout-footer style="padding: 0px;background-color: transparent">
        <global-footer/>
      </a-layout-footer>
    </a-layout>
@@ -82,7 +68,7 @@
    components: {
      SideMenu,
      GlobalHeader,
      GlobalFooter,
      GlobalFooter
      // update-start---- author:os_chengtgen -- date:20190830 --  for:issues/463 -编译主题颜色已生效,但还一直转圈,显示主题 正在编译 ------
      // // SettingDrawer
      // 注释这个因为在个人设置模块已经加载了SettingDrawer页面
@@ -93,7 +79,7 @@
    data() {
      return {
        collapsed: false,
        activeMenu:{},
        activeMenu: {},
        menus: []
      }
    },
@@ -116,7 +102,7 @@
      this.menus = this.permissionMenuList
      //--update-begin----author:liusq---date:20210223------for:关于测边菜单遮挡内容问题详细说明 #2255
      this.collapsed=!this.sidebarOpened;
      this.collapsed = !this.sidebarOpened
      //--update-begin----author:liusq---date:20210223------for:关于测边菜单遮挡内容问题详细说明 #2255
      // 根据后台配置菜单,重新排序加载路由信息
@@ -139,17 +125,17 @@
        }
      },
      //update-begin-author:taoyan date:20190430 for:动态路由title显示配置的菜单title而不是其对应路由的title
      myMenuSelect(value){
      myMenuSelect(value) {
        //此处触发动态路由被点击事件
        this.findMenuBykey(this.menus,value.key)
        this.$emit("dynamicRouterShow",value.key,this.activeMenu.meta.title)
        this.findMenuBykey(this.menus, value.key)
        this.$emit('dynamicRouterShow', value.key, this.activeMenu.meta.title)
      },
      findMenuBykey(menus,key){
        for(let i of menus){
          if(i.path==key){
            this.activeMenu = {...i}
          }else if(i.children && i.children.length>0){
            this.findMenuBykey(i.children,key)
      findMenuBykey(menus, key) {
        for (let i of menus) {
          if (i.path == key) {
            this.activeMenu = { ...i }
          } else if (i.children && i.children.length > 0) {
            this.findMenuBykey(i.children, key)
          }
        }
      },
@@ -160,7 +146,7 @@
        this.findMenuBykey(this.menus, value.path)
        this.activeMenu.meta.title = value.meta.title
        this.$emit('dynamicRouterShow', value.path, this.activeMenu.meta.title)
      },
      }
      // update-end-author:sunjianlei date:20210409 for: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题
    }
@@ -182,6 +168,8 @@
  .layout {
    min-height: 100vh !important;
    overflow-x: hidden;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    &.mobile {
@@ -278,6 +266,8 @@
    }
    .sidemenu {
      background-color: transparent;
      .ant-header-fixedHeader {
        position: fixed;
        top: 0;
@@ -555,16 +545,11 @@
    position: relative;
    z-index: 10;
    &.ant-fixed-sidemenu {
      position: fixed;
      height: 100%;
    }
    .logo {
      height: 64px;
      position: relative;
      line-height: 64px;
      padding-left: 24px;
      text-align: center;
      -webkit-transition: all .3s;
      transition: all .3s;
      background: #002140;
@@ -589,8 +574,8 @@
    }
    &.light {
      background-color: #fff;
      box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05);
      background-color: transparent;
      box-shadow: none;
      .logo {
        background: #fff;
@@ -677,3 +662,4 @@
    }
  }
</style>