56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import {createStore} from 'vuex'
|
|
|
|
export default createStore({
|
|
state: {
|
|
tagsList: [],
|
|
collapse: false
|
|
},
|
|
mutations: {
|
|
delTagsItem(state, data) {
|
|
state
|
|
.tagsList
|
|
.splice(data.index, 1);
|
|
},
|
|
setTagsItem(state, data) {
|
|
state
|
|
.tagsList
|
|
.push(data)
|
|
},
|
|
clearTags(state) {
|
|
state.tagsList = []
|
|
},
|
|
closeTagsOther(state, data) {
|
|
state.tagsList = data;
|
|
},
|
|
closeCurrentTag(state, data) {
|
|
for (let i = 0, len = state.tagsList.length; i < len; i++) {
|
|
const item = state.tagsList[i];
|
|
if (item.path === data.$route.fullPath) {
|
|
if (i < len - 1) {
|
|
data
|
|
.$router
|
|
.push(state.tagsList[i + 1].path);
|
|
} else if (i > 0) {
|
|
data
|
|
.$router
|
|
.push(state.tagsList[i - 1].path);
|
|
} else {
|
|
data
|
|
.$router
|
|
.push("/");
|
|
}
|
|
state
|
|
.tagsList
|
|
.splice(i, 1);
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
// 侧边栏折叠
|
|
handleCollapse(state, data) {
|
|
state.collapse = data;
|
|
}
|
|
},
|
|
actions: {},
|
|
modules: {}
|
|
}) |