mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-22 02:47:46 +08:00
77 lines
2.0 KiB
JavaScript
77 lines
2.0 KiB
JavaScript
import exampleData from "simple-mind-map/example/exampleData"
|
|
import { simpleDeepClone } from 'simple-mind-map/src/utils/index'
|
|
import Vue from 'vue'
|
|
|
|
const SIMPLE_MIND_MAP_DATA = 'SIMPLE_MIND_MAP_DATA'
|
|
|
|
/**
|
|
* @Author: 王林
|
|
* @Date: 2021-08-02 22:36:48
|
|
* @Desc: 克隆思维导图数据,去除激活状态
|
|
*/
|
|
const copyMindMapTreeData = (tree, root) => {
|
|
tree.data = simpleDeepClone(root.data)
|
|
// tree.data.isActive = false
|
|
tree.children = []
|
|
if (root.children && root.children.length > 0) {
|
|
root.children.forEach((item, index) => {
|
|
tree.children[index] = copyMindMapTreeData({}, item)
|
|
})
|
|
}
|
|
return tree;
|
|
}
|
|
|
|
/**
|
|
* @Author: 王林
|
|
* @Date: 2021-08-01 10:10:49
|
|
* @Desc: 获取缓存的思维导图数据
|
|
*/
|
|
export const getData = () => {
|
|
let store = localStorage.getItem(SIMPLE_MIND_MAP_DATA)
|
|
if (store === null) {
|
|
return simpleDeepClone(exampleData)
|
|
} else {
|
|
try {
|
|
return JSON.parse(store)
|
|
} catch (error) {
|
|
return simpleDeepClone(exampleData)
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @Author: 王林
|
|
* @Date: 2021-08-01 10:14:28
|
|
* @Desc: 存储思维导图数据
|
|
*/
|
|
export const storeData = (data) => {
|
|
try {
|
|
let originData = getData()
|
|
originData.root = copyMindMapTreeData({}, data)
|
|
Vue.prototype.$bus.$emit('write_local_file', originData)
|
|
let dataStr = JSON.stringify(originData)
|
|
localStorage.setItem(SIMPLE_MIND_MAP_DATA, dataStr)
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @Author: 王林
|
|
* @Date: 2021-08-01 10:24:56
|
|
* @Desc: 存储思维导图配置数据
|
|
*/
|
|
export const storeConfig = (config) => {
|
|
try {
|
|
let originData = getData()
|
|
originData = {
|
|
...originData,
|
|
...config
|
|
}
|
|
Vue.prototype.$bus.$emit('write_local_file', originData)
|
|
let dataStr = JSON.stringify(originData)
|
|
localStorage.setItem(SIMPLE_MIND_MAP_DATA, dataStr)
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
} |