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