| | |
| | | <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li>
|
| | | <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li>
|
| | | <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li>
|
| | | <li v-if="!isFirstView()" @click="closeLeftTags"><i class="el-icon-back"></i> 关闭左侧</li>
|
| | | <li v-if="!isLastView()" @click="closeRightTags"><i class="el-icon-right"></i> 关闭右侧</li>
|
| | | <li @click="closeAllTags(selectedTag)"><i class="el-icon-circle-close"></i> 全部关闭</li>
|
| | | </ul>
|
| | |
| | | },
|
| | | isAffix(tag) {
|
| | | return tag.meta && tag.meta.affix
|
| | | },
|
| | | isFirstView() {
|
| | | try {
|
| | | return this.selectedTag.fullPath === this.visitedViews[1].fullPath || this.selectedTag.fullPath === '/index'
|
| | | } catch (err) {
|
| | | return false
|
| | | }
|
| | | },
|
| | | isLastView() {
|
| | | try {
|
| | |
| | | }
|
| | | })
|
| | | },
|
| | | closeLeftTags() {
|
| | | this.$store.dispatch('tagsView/delLeftTags', 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(() => {
|
| | |
| | | }
|
| | | return false
|
| | | })
|
| | | },
|
| | |
|
| | | DEL_LEFT_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
|
| | | })
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | commit('DEL_RIGHT_VIEWS', view)
|
| | | resolve([...state.visitedViews])
|
| | | })
|
| | | }
|
| | | },
|
| | |
|
| | | delLeftTags({ commit }, view) {
|
| | | return new Promise(resolve => {
|
| | | commit('DEL_LEFT_VIEWS', view)
|
| | | resolve([...state.visitedViews])
|
| | | })
|
| | | },
|
| | | }
|
| | |
|
| | | export default {
|