fix: 登录后顶栏名称错误
This commit is contained in:
parent
b0452cfb96
commit
4918d99218
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<!-- 通栏布局 -->
|
||||
<template v-if="layout=='header'">
|
||||
<template v-if="layout == 'header'">
|
||||
<header class="adminui-header">
|
||||
<div class="adminui-header-left">
|
||||
<div class="logo-bar">
|
||||
|
@ -10,8 +10,10 @@
|
|||
<span>{{ baseName }}</span>
|
||||
</div>
|
||||
<ul v-if="!ismobile" class="nav">
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path==item.path?'active':''" @click="showMenu(item)">
|
||||
<el-icon><component :is="item.meta.icon || 'el-icon-menu'" /></el-icon>
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path == item.path ? 'active' : ''" @click="showMenu(item)">
|
||||
<el-icon>
|
||||
<component :is="item.meta.icon || 'el-icon-menu'" />
|
||||
</el-icon>
|
||||
<span>{{ item.meta.title }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -21,19 +23,21 @@
|
|||
</div>
|
||||
</header>
|
||||
<section class="aminui-wrapper">
|
||||
<div v-if="!ismobile && nextMenu.length>0 || !pmenu.component" :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
|
||||
<div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
|
||||
:class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
|
||||
<div v-if="!menuIsCollapse" class="adminui-side-top">
|
||||
<h2>{{ pmenu.meta.title }}</h2>
|
||||
</div>
|
||||
<div class="adminui-side-scroll">
|
||||
<el-scrollbar>
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse" :unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse"
|
||||
:unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<NavMenu :navMenus="nextMenu"></NavMenu>
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse"/><el-icon-fold v-else /></el-icon>
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Side-m v-if="ismobile"></Side-m>
|
||||
|
@ -42,9 +46,9 @@
|
|||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow"/>
|
||||
</keep-alive>
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
</div>
|
||||
|
@ -53,7 +57,7 @@
|
|||
</template>
|
||||
|
||||
<!-- 经典布局 -->
|
||||
<template v-else-if="layout=='menu'">
|
||||
<template v-else-if="layout == 'menu'">
|
||||
<header class="adminui-header">
|
||||
<div class="adminui-header-left">
|
||||
<div class="logo-bar" style="width: 202px;background: #ffffff;margin-right: 10px;border-radius: 5px;">
|
||||
|
@ -69,16 +73,17 @@
|
|||
</div>
|
||||
</header>
|
||||
<section class="aminui-wrapper">
|
||||
<div v-if="!ismobile" :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
|
||||
<div v-if="!ismobile" :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
|
||||
<div class="adminui-side-scroll">
|
||||
<el-scrollbar>
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse" :unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse"
|
||||
:unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<NavMenu :navMenus="menu"></NavMenu>
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse"/><el-icon-fold v-else /></el-icon>
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Side-m v-if="ismobile"></Side-m>
|
||||
|
@ -87,9 +92,9 @@
|
|||
<!-- <Tags v-if="!ismobile && layoutTags"></Tags> -->
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow"/>
|
||||
</keep-alive>
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
</div>
|
||||
|
@ -98,7 +103,7 @@
|
|||
</template>
|
||||
|
||||
<!-- 功能坞布局 -->
|
||||
<template v-else-if="layout=='dock'">
|
||||
<template v-else-if="layout == 'dock'">
|
||||
<header class="adminui-header">
|
||||
<div class="adminui-header-left">
|
||||
<div class="logo-bar">
|
||||
|
@ -108,7 +113,8 @@
|
|||
</div>
|
||||
<div class="adminui-header-right">
|
||||
<div v-if="!ismobile" class="adminui-header-menu">
|
||||
<el-menu mode="horizontal" :default-active="active" router background-color="#222b45" text-color="#fff" active-text-color="var(--el-color-primary)">
|
||||
<el-menu mode="horizontal" :default-active="active" router background-color="#222b45" text-color="#fff"
|
||||
active-text-color="var(--el-color-primary)">
|
||||
<NavMenu :navMenus="menu"></NavMenu>
|
||||
</el-menu>
|
||||
</div>
|
||||
|
@ -121,9 +127,9 @@
|
|||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow"/>
|
||||
</keep-alive>
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
</div>
|
||||
|
@ -143,28 +149,32 @@
|
|||
<div class="adminui-side-split-scroll">
|
||||
<el-scrollbar>
|
||||
<ul>
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path==item.path?'active':''"
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path == item.path ? 'active' : ''"
|
||||
@click="showMenu(item)">
|
||||
<el-icon><component :is="item.meta.icon || el-icon-menu" /></el-icon>
|
||||
<el-icon>
|
||||
<component :is="item.meta.icon || el-icon-menu" />
|
||||
</el-icon>
|
||||
<p>{{ item.meta.title }}</p>
|
||||
</li>
|
||||
</ul>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!ismobile && nextMenu.length>0 || !pmenu.component" :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
|
||||
<div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
|
||||
:class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
|
||||
<div v-if="!menuIsCollapse" class="adminui-side-top">
|
||||
<h2>{{ pmenu.meta.title }}</h2>
|
||||
</div>
|
||||
<div class="adminui-side-scroll">
|
||||
<el-scrollbar>
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse" :unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<el-menu :default-active="active" router :collapse="menuIsCollapse"
|
||||
:unique-opened="$CONFIG.MENU_UNIQUE_OPENED">
|
||||
<NavMenu :navMenus="nextMenu"></NavMenu>
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse"/><el-icon-fold v-else /></el-icon>
|
||||
<el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Side-m v-if="ismobile"></Side-m>
|
||||
|
@ -175,9 +185,9 @@
|
|||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow"/>
|
||||
</keep-alive>
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" :key="$route.fullPath" v-if="$store.state.keepAlive.routeShow" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
</div>
|
||||
|
@ -197,129 +207,129 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import SideM from './components/sideM.vue';
|
||||
import Topbar from './components/topbar.vue';
|
||||
import Tags from './components/tags.vue';
|
||||
import NavMenu from './components/NavMenu.vue';
|
||||
import userbar from './components/userbar.vue';
|
||||
import setting from './components/setting.vue';
|
||||
import iframeView from './components/iframeView.vue';
|
||||
import autoExit from './other/autoExit.js';
|
||||
import data from './../utils/baseJson';
|
||||
export default {
|
||||
name: 'index',
|
||||
components: {
|
||||
SideM,
|
||||
Topbar,
|
||||
Tags,
|
||||
NavMenu,
|
||||
userbar,
|
||||
setting,
|
||||
iframeView,
|
||||
autoExit
|
||||
import SideM from './components/sideM.vue';
|
||||
import Topbar from './components/topbar.vue';
|
||||
import Tags from './components/tags.vue';
|
||||
import NavMenu from './components/NavMenu.vue';
|
||||
import userbar from './components/userbar.vue';
|
||||
import setting from './components/setting.vue';
|
||||
import iframeView from './components/iframeView.vue';
|
||||
import autoExit from './other/autoExit.js';
|
||||
import data from './../utils/baseJson';
|
||||
export default {
|
||||
name: 'index',
|
||||
components: {
|
||||
SideM,
|
||||
Topbar,
|
||||
Tags,
|
||||
NavMenu,
|
||||
userbar,
|
||||
setting,
|
||||
iframeView,
|
||||
autoExit
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
settingDialog: false,
|
||||
menu: [],
|
||||
nextMenu: [],
|
||||
pmenu: {},
|
||||
active: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
baseName() {
|
||||
// let baseInFo = data[data.current];
|
||||
let baseName = this.$TOOL.data.get("BASE_INFO") !== null ? this.$TOOL.data.get("BASE_INFO").base.base_name : '智能管理平台';
|
||||
// let baseName = baseInFo!==null?baseInFo.base.base_name:'智能管理平台';
|
||||
return baseName;
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
settingDialog: false,
|
||||
menu: [],
|
||||
nextMenu: [],
|
||||
pmenu: {},
|
||||
active: ''
|
||||
}
|
||||
baseLogo() {
|
||||
// let baseInFo = data[data.current];
|
||||
let base_logo = this.$TOOL.data.get("BASE_INFO") !== null ? this.$TOOL.data.get("BASE_INFO").base.base_logo : 'img/logo.png';
|
||||
// let base_logo = baseInFo!==null?baseInFo.base.base_logo:'img/logo.png';
|
||||
return base_logo
|
||||
},
|
||||
computed:{
|
||||
baseName(){
|
||||
let baseInFo = data[data.current];
|
||||
// let baseName = this.$TOOL.data.get("BASE_INFO")!==null?this.$TOOL.data.get("BASE_INFO").base.base_name:'智能管理平台';
|
||||
let baseName = baseInFo!==null?baseInFo.base.base_name:'智能管理平台';
|
||||
return baseName;
|
||||
},
|
||||
baseLogo(){
|
||||
// let baseInFo = data[data.current];
|
||||
let base_logo = this.$TOOL.data.get("BASE_INFO")!==null?this.$TOOL.data.get("BASE_INFO").base.base_logo:'img/logo.png';
|
||||
// let base_logo = baseInFo!==null?baseInFo.base.base_logo:'img/logo.png';
|
||||
return base_logo
|
||||
},
|
||||
ismobile(){
|
||||
return this.$store.state.global.ismobile
|
||||
},
|
||||
layout(){
|
||||
return this.$store.state.global.layout
|
||||
},
|
||||
layoutTags(){
|
||||
return this.$store.state.global.layoutTags
|
||||
},
|
||||
menuIsCollapse(){
|
||||
return this.$store.state.global.menuIsCollapse
|
||||
}
|
||||
ismobile() {
|
||||
return this.$store.state.global.ismobile
|
||||
},
|
||||
created() {
|
||||
document.title = this.$store.state.global.baseName
|
||||
this.onLayoutResize();
|
||||
window.addEventListener('resize', this.onLayoutResize);
|
||||
var menu = this.$router.sc_getMenu();
|
||||
this.menu = this.filterUrl(menu);
|
||||
layout() {
|
||||
return this.$store.state.global.layout
|
||||
},
|
||||
layoutTags() {
|
||||
return this.$store.state.global.layoutTags
|
||||
},
|
||||
menuIsCollapse() {
|
||||
return this.$store.state.global.menuIsCollapse
|
||||
}
|
||||
},
|
||||
created() {
|
||||
document.title = this.$store.state.global.baseName
|
||||
this.onLayoutResize();
|
||||
window.addEventListener('resize', this.onLayoutResize);
|
||||
var menu = this.$router.sc_getMenu();
|
||||
this.menu = this.filterUrl(menu);
|
||||
this.showThis()
|
||||
},
|
||||
watch: {
|
||||
$route() {
|
||||
this.showThis()
|
||||
},
|
||||
watch: {
|
||||
$route() {
|
||||
this.showThis()
|
||||
layout: {
|
||||
handler(val) {
|
||||
document.body.setAttribute('data-layout', val)
|
||||
},
|
||||
layout: {
|
||||
handler(val){
|
||||
document.body.setAttribute('data-layout', val)
|
||||
},
|
||||
immediate: true,
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openSetting() {
|
||||
this.settingDialog = true;
|
||||
},
|
||||
onLayoutResize() {
|
||||
this.$store.commit("SET_ismobile", document.body.clientWidth < 992)
|
||||
},
|
||||
//路由监听高亮
|
||||
showThis() {
|
||||
this.pmenu = this.$route.meta.breadcrumb ? this.$route.meta.breadcrumb[0] : {}
|
||||
this.nextMenu = this.filterUrl(this.pmenu.children);
|
||||
this.$nextTick(() => {
|
||||
this.active = this.$route.meta.active || this.$route.fullPath;
|
||||
})
|
||||
},
|
||||
//点击显示
|
||||
showMenu(route) {
|
||||
this.pmenu = route;
|
||||
this.nextMenu = this.filterUrl(route.children);
|
||||
if ((!route.children || route.children.length == 0) && route.component) {
|
||||
this.$router.push({ path: route.path })
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openSetting(){
|
||||
this.settingDialog = true;
|
||||
},
|
||||
onLayoutResize(){
|
||||
this.$store.commit("SET_ismobile", document.body.clientWidth < 992)
|
||||
},
|
||||
//路由监听高亮
|
||||
showThis(){
|
||||
this.pmenu = this.$route.meta.breadcrumb ? this.$route.meta.breadcrumb[0] : {}
|
||||
this.nextMenu = this.filterUrl(this.pmenu.children);
|
||||
this.$nextTick(()=>{
|
||||
this.active = this.$route.meta.active || this.$route.fullPath;
|
||||
})
|
||||
},
|
||||
//点击显示
|
||||
showMenu(route) {
|
||||
this.pmenu = route;
|
||||
this.nextMenu = this.filterUrl(route.children);
|
||||
if((!route.children || route.children.length == 0) && route.component){
|
||||
this.$router.push({path: route.path})
|
||||
//转换外部链接的路由
|
||||
filterUrl(map) {
|
||||
var newMap = []
|
||||
map && map.forEach(item => {
|
||||
item.meta = item.meta ? item.meta : {};
|
||||
//处理隐藏
|
||||
if (item.meta.hidden || item.meta.type == "button") {
|
||||
return false
|
||||
}
|
||||
},
|
||||
//转换外部链接的路由
|
||||
filterUrl(map){
|
||||
var newMap = []
|
||||
map && map.forEach(item => {
|
||||
item.meta = item.meta?item.meta:{};
|
||||
//处理隐藏
|
||||
if(item.meta.hidden || item.meta.type=="button"){
|
||||
return false
|
||||
}
|
||||
//处理http
|
||||
if(item.meta.type=='iframe'){
|
||||
item.path = `/i/${item.name}`;
|
||||
}
|
||||
//递归循环
|
||||
if(item.children&&item.children.length > 0){
|
||||
item.children = this.filterUrl(item.children)
|
||||
}
|
||||
newMap.push(item)
|
||||
})
|
||||
return newMap;
|
||||
},
|
||||
//退出最大化
|
||||
exitMaximize(){
|
||||
document.getElementById('app').classList.remove('main-maximize')
|
||||
}
|
||||
//处理http
|
||||
if (item.meta.type == 'iframe') {
|
||||
item.path = `/i/${item.name}`;
|
||||
}
|
||||
//递归循环
|
||||
if (item.children && item.children.length > 0) {
|
||||
item.children = this.filterUrl(item.children)
|
||||
}
|
||||
newMap.push(item)
|
||||
})
|
||||
return newMap;
|
||||
},
|
||||
//退出最大化
|
||||
exitMaximize() {
|
||||
document.getElementById('app').classList.remove('main-maximize')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue