all files / src/stores/modules/ project.js

20% Statements 4/20
0% Branches 0/8
0% Functions 0/2
20% Lines 4/20
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                                                                                                                  
const state = {
  all: {},
  active: null
}
 
const getters = {
  all: state => state.all,
  active: state => state.active
}
 
const actions = {
  setProjects ({ commit }, data) {
    commit('SET_PROJECTS', data)
  },
 
  addProject ({ commit }, data) {
    commit('ADD_PROJECT', data)
  },
 
  setProject ({ commit }, data) {
    commit('SET_PROJECT', data)
  }
}
 
const mutations = {
  SET_PROJECTS (state, data) {
    state.all = data
 
    if (!state.all.projects) {
      state.active = null
      return
    }
 
    // 删除了当前项目
    if (state.active) {
      if (!state.all.projects[state.active.slug]) {
        state.active = null
      }
    } else {
      // 重置当前项目
      const keys = Object.keys(state.all.projects)
 
      if (keys.length > 0) {
        state.active = state.all.projects[keys[0]]
      }
    }
  },
 
  SET_PROJECT (state, data) {
    state.active = data
  }
}
 
export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations
}