-
-
+
+
diff --git a/web/src/pages/Edit/components/Toolbar.vue b/web/src/pages/Edit/components/Toolbar.vue
index 775f0bed..c4e03c9f 100644
--- a/web/src/pages/Edit/components/Toolbar.vue
+++ b/web/src/pages/Edit/components/Toolbar.vue
@@ -134,6 +134,16 @@
{{ $t('toolbar.associativeLine') }}
+
+
+ {{ $t('toolbar.formula') }}
+
@@ -259,6 +269,11 @@ export default {
this.setActiveSidebar('nodeIconSidebar')
},
+ // 打开公式侧边栏
+ showFormula() {
+ this.setActiveSidebar('formulaSidebar')
+ },
+
/**
* @Author: 王林25
* @Date: 2022-11-14 19:17:40
diff --git a/web/src/utils/handleClipboardText.js b/web/src/utils/handleClipboardText.js
index 4a9f5623..35671c72 100644
--- a/web/src/utils/handleClipboardText.js
+++ b/web/src/utils/handleClipboardText.js
@@ -1,57 +1,69 @@
import { imgToDataUrl } from 'simple-mind-map/src/utils/index'
// 处理知犀
-const handleZHIXI = async text => {
- text = text.replace('', '')
+const handleZHIXI = async data => {
try {
- // 只处理一项
- const node = JSON.parse(text)[0]
- const newNode = {}
- const waitLoadImageList = []
- const walk = async (root, newRoot) => {
- newRoot.data = {
- text: root.data.text,
- hyperlink: root.data.hyperlink,
- hyperlinkTitle: root.data.hyperlinkTitle,
- note: root.data.note
- }
- // 图片
- if (root.data.image) {
- let resolve = null
- let promise = new Promise(_resolve => {
- resolve = _resolve
- })
- waitLoadImageList.push(promise)
- try {
- newRoot.data.image = await imgToDataUrl(root.data.image)
- newRoot.data.imageSize = root.data.imageSize
- resolve()
- } catch (error) {
- resolve()
- }
- }
- // 子节点
- newRoot.children = []
- if (root.children && root.children.length > 0) {
- root.children.forEach(item => {
- // 概要
- if (item.data.type === 'generalize') {
- newRoot.data.generalization = {
- text: item.data.text
- }
- return
- }
- let newChild = {}
- newRoot.children.push(newChild)
- walk(item, newChild)
- })
+ try {
+ if (!Array.isArray(data)) {
+ data = String(data).replace('', '')
+ data = JSON.parse(data)
}
+ } catch (error) {
+ console.log(error)
}
- walk(node, newNode)
+ if (!Array.isArray(data)) {
+ data = []
+ }
+ const newNodeList = []
+ const waitLoadImageList = []
+ const walk = (list, newList) => {
+ list.forEach(async item => {
+ let newRoot = {}
+ newList.push(newRoot)
+ newRoot.data = {
+ text: item.data.text,
+ hyperlink: item.data.hyperlink,
+ hyperlinkTitle: item.data.hyperlinkTitle,
+ note: item.data.note
+ }
+ // 图片
+ if (item.data.image) {
+ let resolve = null
+ let promise = new Promise(_resolve => {
+ resolve = _resolve
+ })
+ waitLoadImageList.push(promise)
+ try {
+ newRoot.data.image = await imgToDataUrl(item.data.image)
+ newRoot.data.imageSize = item.data.imageSize
+ resolve()
+ } catch (error) {
+ resolve()
+ }
+ }
+ // 子节点
+ newRoot.children = []
+ if (item.children && item.children.length > 0) {
+ const children = []
+ item.children.forEach(item2 => {
+ // 概要
+ if (item2.data.type === 'generalize') {
+ newRoot.data.generalization = {
+ text: item2.data.text
+ }
+ } else {
+ children.push(item2)
+ }
+ })
+ walk(children, newRoot.children)
+ }
+ })
+ }
+ walk(data, newNodeList)
await Promise.all(waitLoadImageList)
return {
simpleMindMap: true,
- data: newNode
+ data: newNodeList
}
} catch (error) {
return ''
@@ -59,7 +71,15 @@ const handleZHIXI = async text => {
}
const handleClipboardText = async text => {
- // 处理知犀数据
+ // 知犀数据格式1
+ try {
+ let parsedData = JSON.parse(text)
+ if (parsedData.__c_zx_v !== undefined) {
+ const res = await handleZHIXI(parsedData.children)
+ return res
+ }
+ } catch (error) {}
+ // 知犀数据格式2
if (text.includes('')) {
const res = await handleZHIXI(text)
return res