Commit 69dba93ae5f0db0060e8c3ad9f587ed2dde82d19
1 parent
3d090880
v3.7.0 页签新增关闭左侧
Showing
1 changed file
with
15 additions
and
0 deletions
yudao-ui-admin/src/layout/components/TagsView/index.vue
| @@ -21,6 +21,7 @@ | @@ -21,6 +21,7 @@ | ||
| 21 | <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li> | 21 | <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li> |
| 22 | <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li> | 22 | <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li> |
| 23 | <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li> | 23 | <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li> |
| 24 | + <li v-if="!isFirstView()" @click="closeLeftTags"><i class="el-icon-back"></i> 关闭左侧</li> | ||
| 24 | <li v-if="!isLastView()" @click="closeRightTags"><i class="el-icon-right"></i> 关闭右侧</li> | 25 | <li v-if="!isLastView()" @click="closeRightTags"><i class="el-icon-right"></i> 关闭右侧</li> |
| 25 | <li @click="closeAllTags(selectedTag)"><i class="el-icon-circle-close"></i> 全部关闭</li> | 26 | <li @click="closeAllTags(selectedTag)"><i class="el-icon-circle-close"></i> 全部关闭</li> |
| 26 | </ul> | 27 | </ul> |
| @@ -84,6 +85,13 @@ export default { | @@ -84,6 +85,13 @@ export default { | ||
| 84 | isAffix(tag) { | 85 | isAffix(tag) { |
| 85 | return tag.meta && tag.meta.affix | 86 | return tag.meta && tag.meta.affix |
| 86 | }, | 87 | }, |
| 88 | + isFirstView() { | ||
| 89 | + try { | ||
| 90 | + return this.selectedTag.fullPath === this.visitedViews[1].fullPath || this.selectedTag.fullPath === '/index' | ||
| 91 | + } catch (err) { | ||
| 92 | + return false | ||
| 93 | + } | ||
| 94 | + }, | ||
| 87 | isLastView() { | 95 | isLastView() { |
| 88 | try { | 96 | try { |
| 89 | return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath | 97 | return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath |
| @@ -167,6 +175,13 @@ export default { | @@ -167,6 +175,13 @@ export default { | ||
| 167 | } | 175 | } |
| 168 | }) | 176 | }) |
| 169 | }, | 177 | }, |
| 178 | + closeLeftTags() { | ||
| 179 | + this.$store.dispatch('tagsView/delLeftTags', this.selectedTag).then(visitedViews => { | ||
| 180 | + if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) { | ||
| 181 | + this.toLastView(visitedViews) | ||
| 182 | + } | ||
| 183 | + }) | ||
| 184 | + }, | ||
| 170 | closeOthersTags() { | 185 | closeOthersTags() { |
| 171 | this.$router.push(this.selectedTag).catch(()=>{}); | 186 | this.$router.push(this.selectedTag).catch(()=>{}); |
| 172 | this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { | 187 | this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { |