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