From 57fde3d0f254e15a11a47daea47003c995201dee Mon Sep 17 00:00:00 2001 From: zhangzhuoqiong Date: Thu, 20 Feb 2025 11:54:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B9=E6=B3=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=96=B0=E5=BB=BA=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/constants/defaultOptions.js | 10 ++++++--- simple-mind-map/src/core/render/Render.js | 21 +++++++++++++------ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index 86e7a0f5..3f63971c 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -307,7 +307,7 @@ export const defaultOpt = { /* { // 返回要添加的DOM元素详细 - create: (node) => { + create: (node) => { return { el, // DOM节点 width: 20, // 宽高 @@ -316,7 +316,7 @@ export const defaultOpt = { }, // 处理生成的@svgdotjs/svg.js库的ForeignObject节点实例,可以设置其在节点内的位置 handle: ({ content, element, node }) => { - + } } */ @@ -518,5 +518,9 @@ export const defaultOpt = { // 默认为内置图标,你可以传递一个svg字符串,或者其他的html字符串 // 整体大小请使用上面的minImgResizeWidth和minImgResizeHeight选项设置 customDeleteBtnInnerHTML: '', - customResizeBtnInnerHTML: '' + customResizeBtnInnerHTML: '', + + // NewAdd + customNewNodeParams: null, + } diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 43561942..00481cc6 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -871,14 +871,23 @@ class Render { if (alreadyIsRichText && params.resetRichText) { delete params.resetRichText } + let nodeData = { + text: text, + uid: createUid(), + // ...this.mindMap.opt.customNewNodeParams, + ...params, + ...(appointData || {}) + } + if ( typeof this.mindMap.opt.customNewNodeParams === 'function'){ + const return_value = this.mindMap.opt.customNewNodeParams() + nodeData = { + ...nodeData, + ...return_value + } + } const newNode = { inserting, - data: { - text: text, - uid: createUid(), - ...params, - ...(appointData || {}) - }, + data: nodeData, children: [...createUidForAppointNodes(appointChildren, createNewId)] } createNewId = true