mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	v3.5.0 页签新增关闭右侧
This commit is contained in:
		| @@ -21,6 +21,7 @@ | ||||
|       <li @click="refreshSelectedTag(selectedTag)">刷新页面</li> | ||||
|       <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">关闭当前</li> | ||||
|       <li @click="closeOthersTags">关闭其他</li> | ||||
|       <li v-if="!isLastView()" @click="closeRightTags">关闭右侧</li> | ||||
|       <li @click="closeAllTags(selectedTag)">关闭所有</li> | ||||
|     </ul> | ||||
|   </div> | ||||
| @@ -83,6 +84,13 @@ export default { | ||||
|     isAffix(tag) { | ||||
|       return tag.meta && tag.meta.affix | ||||
|     }, | ||||
|     isLastView() { | ||||
|       try { | ||||
|         return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath | ||||
|       } catch (err) { | ||||
|         return false | ||||
|       } | ||||
|     }, | ||||
|     filterAffixTags(routes, basePath = '/') { | ||||
|       let tags = [] | ||||
|       routes.forEach(route => { | ||||
| @@ -152,6 +160,13 @@ export default { | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     closeRightTags() { | ||||
|       this.$store.dispatch('tagsView/delRightTags', this.selectedTag).then(visitedViews => { | ||||
|         if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) { | ||||
|           this.toLastView(visitedViews) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     closeOthersTags() { | ||||
|       this.$router.push(this.selectedTag).catch(()=>{}); | ||||
|       this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { | ||||
|   | ||||
| @@ -62,6 +62,23 @@ const mutations = { | ||||
|         break | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|   DEL_RIGHT_VIEWS: (state, view) => { | ||||
|     const index = state.visitedViews.findIndex(v => v.path === view.path) | ||||
|     if (index === -1) { | ||||
|       return | ||||
|     } | ||||
|     state.visitedViews = state.visitedViews.filter((item, idx) => { | ||||
|       if (idx <= index || (item.meta && item.meta.affix)) { | ||||
|         return true | ||||
|       } | ||||
|       const i = state.cachedViews.indexOf(item.name) | ||||
|       if (i > -1) { | ||||
|         state.cachedViews.splice(i, 1) | ||||
|       } | ||||
|       return false | ||||
|     }) | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -148,6 +165,13 @@ const actions = { | ||||
|  | ||||
|   updateVisitedView({ commit }, view) { | ||||
|     commit('UPDATE_VISITED_VIEW', view) | ||||
|   }, | ||||
|  | ||||
|   delRightTags({ commit }, view) { | ||||
|     return new Promise(resolve => { | ||||
|       commit('DEL_RIGHT_VIEWS', view) | ||||
|       resolve([...state.visitedViews]) | ||||
|     }) | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV