修复自定义首页bug
This commit is contained in:
parent
c21cf1bb01
commit
5223e771a5
|
|
@ -35,7 +35,7 @@
|
|||
:name="item.name"
|
||||
@on-close="handleClose(item)"
|
||||
@click.native="handleClick(item)"
|
||||
:closable="item.name !== 'home'"
|
||||
:closable="item.name !== $config.homeName"
|
||||
:color="isCurrentTag(item) ? 'primary' : 'default'"
|
||||
@contextmenu.prevent.native="contextMenu(item, $event)"
|
||||
>{{ showTitleInside(item) }}</Tag>
|
||||
|
|
@ -108,11 +108,11 @@ export default {
|
|||
handleTagsOption (type) {
|
||||
if (type.includes('all')) {
|
||||
// 关闭所有,除了home
|
||||
let res = this.list.filter(item => item.name === 'home')
|
||||
let res = this.list.filter(item => item.name === this.$config.homeName)
|
||||
this.$emit('on-close', res, 'all')
|
||||
} else if (type.includes('others')) {
|
||||
// 关闭除当前页和home页的其他页
|
||||
let res = this.list.filter(item => routeEqual(this.currentRouteObj, item) || item.name === 'home')
|
||||
let res = this.list.filter(item => routeEqual(this.currentRouteObj, item) || item.name === this.$config.homeName)
|
||||
this.$emit('on-close', res, 'others', this.currentRouteObj)
|
||||
setTimeout(() => {
|
||||
this.getTagElementByName(this.currentRouteObj.name)
|
||||
|
|
@ -171,7 +171,7 @@ export default {
|
|||
})
|
||||
},
|
||||
contextMenu (item, e) {
|
||||
if (item.name === 'home') {
|
||||
if (item.name === this.$config.homeName) {
|
||||
return
|
||||
}
|
||||
this.visible = true
|
||||
|
|
|
|||
|
|
@ -152,27 +152,12 @@ export default {
|
|||
this.setBreadCrumb(this.$route)
|
||||
// 设置初始语言
|
||||
this.setLocal(this.$i18n.locale)
|
||||
// 文档提示
|
||||
this.$Notice.info({
|
||||
title: '想快速上手,去看文档吧',
|
||||
duration: 0,
|
||||
render: (h) => {
|
||||
return h('p', {
|
||||
style: {
|
||||
fontSize: '13px'
|
||||
}
|
||||
}, [
|
||||
'点击',
|
||||
h('a', {
|
||||
attrs: {
|
||||
href: 'https://lison16.github.io/iview-admin-doc/#/',
|
||||
target: '_blank'
|
||||
}
|
||||
}, 'iview-admin2.0文档'),
|
||||
'快速查看'
|
||||
])
|
||||
}
|
||||
})
|
||||
// 如果当前打开页面不在标签栏中,跳到homeName页
|
||||
if (!this.tagNavList.find(item => item.name === this.$route.name)) {
|
||||
this.$router.push({
|
||||
name: this.$config.homeName
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ export const getMenuByRouter = (list, access) => {
|
|||
*/
|
||||
export const getBreadCrumbList = (route, homeRoute) => {
|
||||
let routeMetched = route.matched
|
||||
if (routeMetched.some(item => item.name === homeRoute.name)) return [homeRoute]
|
||||
let res = routeMetched.filter(item => {
|
||||
return item.meta === undefined || !item.meta.hide
|
||||
}).map(item => {
|
||||
|
|
@ -107,7 +108,7 @@ export const getHomeRoute = (routers, homeName = 'home') => {
|
|||
while (++i < len) {
|
||||
let item = routers[i]
|
||||
if (item.children && item.children.length) {
|
||||
let res = getHomeRoute(item.children)
|
||||
let res = getHomeRoute(item.children, homeName)
|
||||
if (res.name) return res
|
||||
} else {
|
||||
if (item.name === homeName) homeRoute = item
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import routes from './routers'
|
|||
import store from '@/store'
|
||||
import iView from 'iview'
|
||||
import { getToken, canTurnTo } from '@/libs/util'
|
||||
import config from '@/config'
|
||||
const { homeName } = config
|
||||
|
||||
Vue.use(Router)
|
||||
const router = new Router({
|
||||
|
|
@ -31,7 +33,7 @@ router.beforeEach((to, from, next) => {
|
|||
} else if (token && to.name === LOGIN_PAGE_NAME) {
|
||||
// 已登录且要跳转的页面是登录页
|
||||
next({
|
||||
name: 'home' // 跳转到home页
|
||||
name: homeName // 跳转到homeName页
|
||||
})
|
||||
} else {
|
||||
if (store.state.user.hasGetInfo) {
|
||||
|
|
|
|||
|
|
@ -40,10 +40,18 @@ export default {
|
|||
state.breadCrumbList = getBreadCrumbList(route, state.homeRoute)
|
||||
},
|
||||
setTagNavList (state, list) {
|
||||
let tagList = []
|
||||
if (list) {
|
||||
state.tagNavList = [...list]
|
||||
setTagNavListInLocalstorage([...list])
|
||||
} else state.tagNavList = getTagNavListFromLocalstorage()
|
||||
tagList = [...list]
|
||||
} else tagList = getTagNavListFromLocalstorage()
|
||||
if (tagList[0].name !== homeName) tagList.shift()
|
||||
let homeTagIndex = tagList.findIndex(item => item.name === homeName)
|
||||
if (homeTagIndex !== 0) {
|
||||
let homeTag = tagList.splice(homeTagIndex, 1)[0]
|
||||
tagList.unshift(homeTag)
|
||||
}
|
||||
state.tagNavList = tagList
|
||||
setTagNavListInLocalstorage([...tagList])
|
||||
},
|
||||
closeTag (state, route) {
|
||||
let tag = state.tagNavList.filter(item => routeEqual(item, route))
|
||||
|
|
@ -64,7 +72,7 @@ export default {
|
|||
if (!routeHasExist(state.tagNavList, router)) {
|
||||
if (type === 'push') state.tagNavList.push(router)
|
||||
else {
|
||||
if (router.name === 'home') state.tagNavList.unshift(router)
|
||||
if (router.name === homeName) state.tagNavList.unshift(router)
|
||||
else state.tagNavList.splice(1, 0, router)
|
||||
}
|
||||
setTagNavListInLocalstorage([...state.tagNavList])
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export default {
|
|||
methods: {
|
||||
backHome () {
|
||||
this.$router.replace({
|
||||
name: 'home'
|
||||
name: this.$config.homeName
|
||||
})
|
||||
},
|
||||
backPrev () {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export default {
|
|||
this.handleLogin({ userName, password }).then(res => {
|
||||
this.getUserInfo().then(res => {
|
||||
this.$router.push({
|
||||
name: 'home'
|
||||
name: this.$config.homeName
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue