mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-21 10:27:44 +08:00
Feat:增加协同编辑节点操作同步前的生命周期函数配置信息
This commit is contained in:
parent
a72d2e6748
commit
f3fe2dbc7b
@ -279,5 +279,14 @@ export const defaultOpt = {
|
||||
// 是否仅搜索当前渲染的节点,被收起的节点不会被搜索到
|
||||
isOnlySearchCurrentRenderNodes: false,
|
||||
// 协同编辑时,同一个节点不能同时被多人选中
|
||||
onlyOneEnableActiveNodeOnCooperate: false
|
||||
onlyOneEnableActiveNodeOnCooperate: false,
|
||||
// 协同编辑时,节点操作即将更新到其他客户端前的生命周期函数
|
||||
// 函数接收一个对象作为参数:
|
||||
/*
|
||||
{
|
||||
type: createOrUpdate(创建节点或更新节点)、delete(删除节点)
|
||||
data: 1.当type=createOrUpdate时,代表被创建或被更新的节点数据,即将同步到其他客户端,所以你可以修改该数据;2.当type=delete时,代表被删除的节点数据
|
||||
}
|
||||
*/
|
||||
beforeCooperateUpdate: null
|
||||
}
|
||||
|
||||
@ -131,6 +131,7 @@ class Cooperate {
|
||||
|
||||
// 找出更新点
|
||||
updateChanges(data) {
|
||||
const { beforeCooperateUpdate } = this.mindMap.opt
|
||||
const oldData = this.currentData
|
||||
this.currentData = data
|
||||
this.ydoc.transact(() => {
|
||||
@ -138,12 +139,24 @@ class Cooperate {
|
||||
Object.keys(data).forEach(uid => {
|
||||
// 新增的或已经存在的,如果数据发生了改变
|
||||
if (!oldData[uid] || !isSameObject(oldData[uid], data[uid])) {
|
||||
if (beforeCooperateUpdate) {
|
||||
beforeCooperateUpdate({
|
||||
type: 'createOrUpdate',
|
||||
data: data[uid]
|
||||
})
|
||||
}
|
||||
this.ymap.set(uid, data[uid])
|
||||
}
|
||||
})
|
||||
// 找出删除的
|
||||
Object.keys(oldData).forEach(uid => {
|
||||
if (!data[uid]) {
|
||||
if (beforeCooperateUpdate) {
|
||||
beforeCooperateUpdate({
|
||||
type: 'delete',
|
||||
data: oldData[uid]
|
||||
})
|
||||
}
|
||||
this.ymap.delete(uid)
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user