| | |
| | | <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"--> |
| | | <!-->--> |
| | | <!--<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> |
| | |
| | | components: { |
| | | SideMenu, |
| | | GlobalHeader, |
| | | GlobalFooter, |
| | | GlobalFooter |
| | | // update-start---- author:os_chengtgen -- date:20190830 -- for:issues/463 -编译主题颜色已生效,但还一直转圈,显示主题 正在编译 ------ |
| | | // // SettingDrawer |
| | | // 注释这个因为在个人设置模块已经加载了SettingDrawer页面 |
| | |
| | | data() { |
| | | return { |
| | | collapsed: false, |
| | | activeMenu:{}, |
| | | activeMenu: {}, |
| | | menus: [] |
| | | } |
| | | }, |
| | |
| | | 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 |
| | | |
| | | // 根据后台配置菜单,重新排序加载路由信息 |
| | |
| | | } |
| | | }, |
| | | //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) |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题 |
| | | |
| | | } |
| | |
| | | .layout { |
| | | min-height: 100vh !important; |
| | | overflow-x: hidden; |
| | | background-size: cover !important; |
| | | background-repeat: no-repeat !important; |
| | | |
| | | &.mobile { |
| | | |
| | |
| | | } |
| | | |
| | | .sidemenu { |
| | | background-color: transparent; |
| | | |
| | | .ant-header-fixedHeader { |
| | | position: fixed; |
| | | top: 0; |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | &.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; |
| | |
| | | } |
| | | } |
| | | </style> |
| | | |