update Kit to display a node
This commit is contained in:
+44
-3
@@ -1,18 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="kit">
|
<div class="kit">
|
||||||
<kit-list />
|
<kit-list @open-node="openNode" />
|
||||||
|
|
||||||
|
<kit-view
|
||||||
|
v-if="sheet !== null"
|
||||||
|
:sheet="sheet"
|
||||||
|
@close-node="closeNode"
|
||||||
|
@open-node="openLibrary"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { KitList } from '@/pages/kit'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
|
import { KitList, KitView } from '@/pages/kit'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Kit',
|
name: 'Kit',
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
KitList
|
KitList,
|
||||||
|
KitView
|
||||||
},
|
},
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
@@ -20,6 +30,25 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['sheet'])
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
openNode (id) {
|
||||||
|
this.$store.dispatch('OPEN_KIT_NODE', id)
|
||||||
|
},
|
||||||
|
|
||||||
|
openLibrary (ids) {
|
||||||
|
this.$store.dispatch('OPEN_NODE', ids)
|
||||||
|
this.$store.dispatch('CLOSE_KIT_NODE')
|
||||||
|
},
|
||||||
|
|
||||||
|
closeNode () {
|
||||||
|
this.$store.dispatch('CLOSE_KIT_NODE')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
created () {
|
created () {
|
||||||
this.$store.dispatch('INIT_KIT')
|
this.$store.dispatch('INIT_KIT')
|
||||||
}
|
}
|
||||||
@@ -30,5 +59,17 @@ export default {
|
|||||||
.kit {
|
.kit {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
&-view {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: -100%;
|
||||||
|
// compensate header border
|
||||||
|
height: calc(100% + 2px);
|
||||||
|
top: calc(-100% - 2px);
|
||||||
|
|
||||||
|
@include media-breakpoint-down($layout-bp-down) {
|
||||||
|
margin-bottom: -100vh;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
v-for="node in filteredNodes" :key="'kit-' + node.id"
|
v-for="node in filteredNodes" :key="'kit-' + node.id"
|
||||||
:node="node"
|
:node="node"
|
||||||
mode="card"
|
mode="card"
|
||||||
|
@click.native.capture="$emit('open-node', node.id)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -59,6 +60,8 @@ export default {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.kit-list {
|
.kit-list {
|
||||||
padding: 1.15rem;
|
padding: 1.15rem;
|
||||||
|
overflow-y: auto;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
@include media-breakpoint-up($size-bp) {
|
@include media-breakpoint-up($size-bp) {
|
||||||
padding: 2.15rem;
|
padding: 2.15rem;
|
||||||
@@ -84,5 +87,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.node-view {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,14 +1,28 @@
|
|||||||
export default {
|
export default {
|
||||||
state: {
|
state: {
|
||||||
|
sheet: null
|
||||||
},
|
},
|
||||||
|
|
||||||
mutations: {
|
mutations: {
|
||||||
|
'SET_KIT_SHEET' (state, id) {
|
||||||
|
state.sheet = id
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
async 'INIT_KIT' ({ state, commit, dispatch, getters }, payload) {
|
async 'INIT_KIT' ({ state, commit, dispatch, getters }, payload) {
|
||||||
const ids = await dispatch('GET_ALL_NODES_IDS', 'kit')
|
const ids = await dispatch('GET_ALL_NODES_IDS', 'kit')
|
||||||
return dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
return dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
||||||
|
},
|
||||||
|
|
||||||
|
async 'OPEN_KIT_NODE' ({ state, commit, dispatch }, id) {
|
||||||
|
commit('SET_KIT_SHEET', id)
|
||||||
|
commit('ADD_HISTORY_ENTRIES', [id])
|
||||||
|
return dispatch('GET_NODE', { id, dataLevel: 'full' })
|
||||||
|
},
|
||||||
|
|
||||||
|
'CLOSE_KIT_NODE' ({ state, commit }) {
|
||||||
|
commit('SET_KIT_SHEET', null)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -17,6 +31,11 @@ export default {
|
|||||||
const kitIds = rootState.ids.kit
|
const kitIds = rootState.ids.kit
|
||||||
if (kitIds === undefined || rootState.nodes[kitIds[0]] === undefined) return
|
if (kitIds === undefined || rootState.nodes[kitIds[0]] === undefined) return
|
||||||
return kitIds.map(id => rootState.nodes[id])
|
return kitIds.map(id => rootState.nodes[id])
|
||||||
|
},
|
||||||
|
|
||||||
|
sheet: (state, getters, rootState) => {
|
||||||
|
if (state.sheet === undefined || state.sheet === null) return state.sheet
|
||||||
|
return rootState.nodes[state.sheet]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user