From f4800746a3c7f506eb64d014c45bd3c3a5bfb10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Tue, 28 May 2024 17:27:19 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E5=AF=BC=E5=85=A5=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=A4=9A=E4=B8=AA=E7=94=BB=E5=B8=83=E7=9A=84xmind?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=94=AF=E6=8C=81=E9=80=89=E6=8B=A9=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E7=9A=84=E7=94=BB=E5=B8=83=E8=BF=9B=E8=A1=8C=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/parse/xmind.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/simple-mind-map/src/parse/xmind.js b/simple-mind-map/src/parse/xmind.js index 294e8ded..3040e26a 100644 --- a/simple-mind-map/src/parse/xmind.js +++ b/simple-mind-map/src/parse/xmind.js @@ -15,7 +15,7 @@ import { } from '../utils/xmind' // 解析.xmind文件 -const parseXmindFile = file => { +const parseXmindFile = (file, handleMultiCanvas) => { return new Promise((resolve, reject) => { JSZip.loadAsync(file).then( async zip => { @@ -25,7 +25,7 @@ const parseXmindFile = file => { let xmlFile = zip.files['content.xml'] || zip.files['/content.xml'] if (jsonFile) { let json = await jsonFile.async('string') - content = await transformXmind(json, zip.files) + content = await transformXmind(json, zip.files, handleMultiCanvas) } else if (xmlFile) { let xml = await xmlFile.async('string') let json = xmlConvert.xml2json(xml) @@ -48,8 +48,15 @@ const parseXmindFile = file => { } // 转换xmind数据 -const transformXmind = async (content, files) => { - const data = JSON.parse(content)[0] +const transformXmind = async (content, files, handleMultiCanvas) => { + content = JSON.parse(content) + let data = null + if (content.length > 1 && typeof handleMultiCanvas === 'function') { + data = await handleMultiCanvas(content) + } + if (!data) { + data = content[0] + } const nodeTree = data.rootTopic const newTree = {} const waitLoadImageList = []