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) } }