kit.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import router from '@/router'
  2. export default {
  3. state: {
  4. sheet: null
  5. },
  6. mutations: {
  7. 'SET_KIT_SHEET' (state, id) {
  8. state.sheet = id
  9. }
  10. },
  11. actions: {
  12. async 'INIT_KIT' ({ state, commit, dispatch, getters }) {
  13. const ids = await dispatch('GET_ALL_NODES_IDS', { variant: 'kit', dataLevel: 'partial' })
  14. return dispatch('GET_NODES', { ids, dataLevel: 'partial' })
  15. },
  16. async 'INIT_KIT_VIEW' ({ state, commit, dispatch, getters }, id) {
  17. await dispatch('INIT_KIT')
  18. const node = await dispatch('GET_NODE', { id, dataLevel: 'full' })
  19. commit('SET_KIT_SHEET', id)
  20. commit('ADD_HISTORY_ENTRIES', [id])
  21. return node
  22. },
  23. async 'OPEN_KIT_NODE' ({ state, commit, dispatch }, id) {
  24. if (router.currentRoute.name !== 'kit-view') {
  25. router.push({ name: 'kit-view', params: { id } })
  26. } else {
  27. router.push({ params: { id } })
  28. }
  29. },
  30. 'CLOSE_KIT_NODE' ({ state, commit }) {
  31. router.push({ name: 'kit' })
  32. commit('SET_KIT_SHEET', null)
  33. }
  34. },
  35. getters: {
  36. sheets: (state, getters, rootState) => {
  37. const ids = rootState.ids.kit
  38. if (ids === undefined) return
  39. const nodes = ids.map(id => rootState.nodes[id])
  40. if (nodes.some(node => node === undefined)) return
  41. return nodes
  42. },
  43. sheet: (state, getters, rootState) => {
  44. if (state.sheet === undefined || state.sheet === null) return state.sheet
  45. return rootState.nodes[state.sheet]
  46. }
  47. }
  48. }