dataease/frontend/src/components/canvas/store/snapshot.js

34 lines
1.1 KiB
JavaScript
Raw Normal View History

2021-03-30 15:38:32 +08:00
import store from '@/store/index'
import { deepCopy } from '@/components/canvas/utils/utils'
2021-03-25 19:16:32 +08:00
export default {
state: {
snapshotData: [], // 编辑器快照数据
snapshotIndex: -1, // 快照索引
},
mutations: {
undo(state) {
if (state.snapshotIndex >= 0) {
state.snapshotIndex--
store.commit('setComponentData', deepCopy(state.snapshotData[state.snapshotIndex]))
}
},
redo(state) {
if (state.snapshotIndex < state.snapshotData.length - 1) {
state.snapshotIndex++
store.commit('setComponentData', deepCopy(state.snapshotData[state.snapshotIndex]))
}
},
recordSnapshot(state) {
// 添加新的快照
state.snapshotData[++state.snapshotIndex] = deepCopy(state.componentData)
// 在 undo 过程中,添加新的快照时,要将它后面的快照清理掉
if (state.snapshotIndex < state.snapshotData.length - 1) {
state.snapshotData = state.snapshotData.slice(0, state.snapshotIndex + 1)
}
},
},
2021-03-30 15:38:32 +08:00
}