import { nextTick } from 'vue'
|
import NProgress from 'nprogress'
|
import 'nprogress/nprogress.css'
|
import router from '@/router'
|
import store from '@/store'
|
|
export default {
|
//刷新标签
|
refresh() {
|
NProgress.start()
|
const route = router.currentRoute.value
|
store.commit("removeKeepLive", route.name)
|
store.commit("setRouteShow", false)
|
nextTick(() => {
|
store.commit("pushKeepLive", route.name)
|
store.commit("setRouteShow", true)
|
NProgress.done()
|
})
|
},
|
//关闭标签
|
close(tag) {
|
const route = tag || router.currentRoute.value
|
store.commit("removeViewTags", route)
|
store.commit("removeIframeList", route)
|
store.commit("removeKeepLive", route.name)
|
const tagList = store.state.viewTags.viewTags
|
const latestView = tagList.slice(-1)[0]
|
if (latestView) {
|
router.push(latestView)
|
} else {
|
router.push('/')
|
}
|
},
|
//关闭标签后处理
|
closeNext(next) {
|
const route = router.currentRoute.value
|
store.commit("removeViewTags", route)
|
store.commit("removeIframeList", route)
|
store.commit("removeKeepLive", route.name)
|
if(next){
|
const tagList = store.state.viewTags.viewTags
|
next(tagList)
|
}
|
},
|
//关闭其他
|
closeOther() {
|
const route = router.currentRoute.value
|
const tagList = [...store.state.viewTags.viewTags]
|
tagList.forEach(tag => {
|
if(tag.meta&&tag.meta.affix || route.fullPath==tag.fullPath){
|
return true
|
}else{
|
this.close(tag)
|
}
|
})
|
},
|
//设置标题
|
setTitle(title){
|
store.commit("updateViewTagsTitle", title)
|
}
|
}
|