|
@@ -6,6 +6,7 @@ import {
|
|
|
parseNodesQueryParams,
|
|
|
getUniqueNodesIds,
|
|
|
getRelatedNodesIds,
|
|
|
+ getRandomIds,
|
|
|
buildTree
|
|
|
} from '@/store/utils.js'
|
|
|
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
export default {
|
|
|
state: {
|
|
|
trees: {},
|
|
|
+ randomNodes: undefined,
|
|
|
nodebook: undefined,
|
|
|
|
|
|
// LibraryOptions options
|
|
@@ -89,6 +91,10 @@ export default {
|
|
|
state.nodeDepartId = id
|
|
|
},
|
|
|
|
|
|
+ 'SET_RANDOM_NODES' (state, ids) {
|
|
|
+ state.randomNodes = ids
|
|
|
+ },
|
|
|
+
|
|
|
'SET_SEARCH' (state, str) {
|
|
|
state.search = str
|
|
|
}
|
|
@@ -114,14 +120,8 @@ export default {
|
|
|
},
|
|
|
|
|
|
async 'INIT_LIBRARY_MAP' ({ state, commit, dispatch }) {
|
|
|
- const departIds = await dispatch('INIT_LIBRARY')
|
|
|
- const ids = departIds.slice(0, 3)
|
|
|
- const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
|
|
- const relatedIds = getRelatedNodesIds(departNodes, ids)
|
|
|
- const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' })
|
|
|
- const nodes = [...departNodes, ...relatedNodes]
|
|
|
- commit('SET_TAGS_OPTIONS', nodes)
|
|
|
- return nodes
|
|
|
+ await dispatch('INIT_LIBRARY')
|
|
|
+ return dispatch('ROLL_RANDOM_NODES')
|
|
|
},
|
|
|
|
|
|
async 'INIT_LIBRARY_LIST' ({ state, commit, dispatch }) {
|
|
@@ -186,6 +186,17 @@ export default {
|
|
|
return getters.nodeTree
|
|
|
},
|
|
|
|
|
|
+ async 'ROLL_RANDOM_NODES' ({ state, rootState, commit, dispatch }) {
|
|
|
+ commit('SET_RANDOM_NODES', undefined)
|
|
|
+ const ids = getRandomIds(rootState.ids.depart)
|
|
|
+ const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
|
|
+ const relatedIds = getRelatedNodesIds(departNodes, ids)
|
|
|
+ const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' })
|
|
|
+ const nodes = [...departNodes, ...relatedNodes]
|
|
|
+ commit('SET_RANDOM_NODES', [...ids, ...relatedIds])
|
|
|
+ commit('SET_TAGS_OPTIONS', nodes)
|
|
|
+ },
|
|
|
+
|
|
|
'UPDATE_QUERY_MODE' (store, mode) {
|
|
|
if (router.currentRoute.query.mode === mode) return
|
|
|
router.push({ query: { mode } })
|
|
@@ -255,8 +266,14 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
+ // LibraryMap
|
|
|
+ randomNodes: (state, getters, rootState) => {
|
|
|
+ if (state.randomNodes === undefined) return
|
|
|
+ return state.randomNodes.map(id => rootState.nodes[id])
|
|
|
+ },
|
|
|
+
|
|
|
// LibraryTree
|
|
|
- nodeTree: (state, rootState) => {
|
|
|
+ nodeTree: state => {
|
|
|
return state.trees[state.nodeDepartId] || { nodes: [], links: [] }
|
|
|
},
|
|
|
|