1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| import md5 from 'js-md5' const state = { cacheView: [], cacheViewKeys: [], tabList: [] }
const actions = { addCacheView({commit}, viewName) { commit('ADD_CACHE_VIEW', viewName) }, removeCacheView({commit}, viewName) { commit('REMOVE_CACHE_VIEW', viewName) }, clearCacheView({commit}, viewName) { commit('CLEAR_CACHE_VIEW', viewName) }, setCacheViewKey({commit}, fullPath) { commit('SET_CACHE_VIEW_KEY', md5(fullPath)) }, removeCacheViewKey({commit}, fullPath) { commit('REMOVE_CACHE_VIEW_KEY', md5(fullPath)) }, clearCacheViewKey({commit}, fullPath) { commit('CLEAR_CACHE_VIEW_KEY', md5(fullPath)) }, setPosition({commit}, {fullPath, position}) { commit('SET_POSITION', {fullPath, position}) } }
const getters = {}
const mutations = { ADD_CACHE_VIEW(state, viewName) { let cacheView = state.cacheView if (!cacheView.some(item => item === viewName)) { cacheView.push(viewName) state.cacheView = cacheView } }, REMOVE_CACHE_VIEW(state, viewName) { let cacheView = state.cacheView let index = cacheView.findIndex(item => item === viewName) if (index >= 0) { cacheView.splice(index, 1) state.cacheView = cacheView } }, CLEAR_CACHE_VIEW(state, viewName) { if (viewName) { let cacheView = state.cacheView state.cacheView = cacheView.filter(item => item === viewName) } else { state.cacheView = [] } }, SET_CACHE_VIEW_KEY(state, key) { if (key && !state.cacheViewKeys.some(item => item === key)) { let keyList = state.cacheViewKeys keyList.push(key) state.cacheViewKeys = keyList } }, REMOVE_CACHE_VIEW_KEY(state, key) { if (key) { let keyList = state.cacheViewKeys let index = keyList.findIndex(item => item === key); if (index >= 0) { keyList.splice(index, 1) state.cacheViewKeys = keyList } } }, CLEAR_CACHE_VIEW_KEY(state, key) { if (key) { let cacheViewKeys = state.cacheViewKeys state.cacheViewKeys = cacheViewKeys.filter(item => item === key) } else { state.cacheViewKeys = [] } }, SET_POSITION(state, {fullPath, position}) { let list = state.tabList state.tabList = list.map(item => { if (item.fullPath === fullPath) { item.position = position } return item }) } }
export default { namespace: true, state, actions, getters, mutations }
|