| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | 
							- const state = {
 
-   visitedViews: [],
 
-   cachedViews: []
 
- }
 
- const mutations = {
 
-   ADD_VISITED_VIEW: (state, view) => {
 
-     if (state.visitedViews.some(v => v.path === view.path)) return
 
-     state.visitedViews.push(
 
-       Object.assign({}, view, {
 
-         title: view.meta.title || 'no-name'
 
-       })
 
-     )
 
-   },
 
-   ADD_CACHED_VIEW: (state, view) => {
 
-     if (state.cachedViews.includes(view.name)) return
 
-     if (!view.meta.noCache) {
 
-       state.cachedViews.push(view.name)
 
-     }
 
-   },
 
-   DEL_VISITED_VIEW: (state, view) => {
 
-     for (const [i, v] of state.visitedViews.entries()) {
 
-       if (v.path === view.path) {
 
-         state.visitedViews.splice(i, 1)
 
-         break
 
-       }
 
-     }
 
-   },
 
-   DEL_CACHED_VIEW: (state, view) => {
 
-     for (const i of state.cachedViews) {
 
-       if (i === view.name) {
 
-         const index = state.cachedViews.indexOf(i)
 
-         state.cachedViews.splice(index, 1)
 
-         break
 
-       }
 
-     }
 
-   },
 
-   DEL_OTHERS_VISITED_VIEWS: (state, view) => {
 
-     state.visitedViews = state.visitedViews.filter(v => {
 
-       return v.meta.affix || v.path === view.path
 
-     })
 
-   },
 
-   DEL_OTHERS_CACHED_VIEWS: (state, view) => {
 
-     for (const i of state.cachedViews) {
 
-       if (i === view.name) {
 
-         const index = state.cachedViews.indexOf(i)
 
-         state.cachedViews = state.cachedViews.slice(index, index + 1)
 
-         break
 
-       }
 
-     }
 
-   },
 
-   DEL_ALL_VISITED_VIEWS: state => {
 
-     // keep affix tags
 
-     const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
 
-     state.visitedViews = affixTags
 
-   },
 
-   DEL_ALL_CACHED_VIEWS: state => {
 
-     state.cachedViews = []
 
-   },
 
-   UPDATE_VISITED_VIEW: (state, view) => {
 
-     for (let v of state.visitedViews) {
 
-       if (v.path === view.path) {
 
-         v = Object.assign(v, view)
 
-         break
 
-       }
 
-     }
 
-   }
 
- }
 
- const actions = {
 
-   addView({ dispatch }, view) {
 
-     dispatch('addVisitedView', view)
 
-     dispatch('addCachedView', view)
 
-   },
 
-   addVisitedView({ commit }, view) {
 
-     commit('ADD_VISITED_VIEW', view)
 
-   },
 
-   addCachedView({ commit }, view) {
 
-     commit('ADD_CACHED_VIEW', view)
 
-   },
 
-   delView({ dispatch, state }, view) {
 
-     return new Promise(resolve => {
 
-       dispatch('delVisitedView', view)
 
-       dispatch('delCachedView', view)
 
-       resolve({
 
-         visitedViews: [...state.visitedViews],
 
-         cachedViews: [...state.cachedViews]
 
-       })
 
-     })
 
-   },
 
-   delVisitedView({ commit, state }, view) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_VISITED_VIEW', view)
 
-       resolve([...state.visitedViews])
 
-     })
 
-   },
 
-   delCachedView({ commit, state }, view) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_CACHED_VIEW', view)
 
-       resolve([...state.cachedViews])
 
-     })
 
-   },
 
-   delOthersViews({ dispatch, state }, view) {
 
-     return new Promise(resolve => {
 
-       dispatch('delOthersVisitedViews', view)
 
-       dispatch('delOthersCachedViews', view)
 
-       resolve({
 
-         visitedViews: [...state.visitedViews],
 
-         cachedViews: [...state.cachedViews]
 
-       })
 
-     })
 
-   },
 
-   delOthersVisitedViews({ commit, state }, view) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_OTHERS_VISITED_VIEWS', view)
 
-       resolve([...state.visitedViews])
 
-     })
 
-   },
 
-   delOthersCachedViews({ commit, state }, view) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_OTHERS_CACHED_VIEWS', view)
 
-       resolve([...state.cachedViews])
 
-     })
 
-   },
 
-   delAllViews({ dispatch, state }, view) {
 
-     return new Promise(resolve => {
 
-       dispatch('delAllVisitedViews', view)
 
-       dispatch('delAllCachedViews', view)
 
-       resolve({
 
-         visitedViews: [...state.visitedViews],
 
-         cachedViews: [...state.cachedViews]
 
-       })
 
-     })
 
-   },
 
-   delAllVisitedViews({ commit, state }) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_ALL_VISITED_VIEWS')
 
-       resolve([...state.visitedViews])
 
-     })
 
-   },
 
-   delAllCachedViews({ commit, state }) {
 
-     return new Promise(resolve => {
 
-       commit('DEL_ALL_CACHED_VIEWS')
 
-       resolve([...state.cachedViews])
 
-     })
 
-   },
 
-   updateVisitedView({ commit }, view) {
 
-     commit('UPDATE_VISITED_VIEW', view)
 
-   }
 
- }
 
- export default {
 
-   namespaced: true,
 
-   state,
 
-   mutations,
 
-   actions
 
- }
 
 
  |