This commit is contained in:
windingwind 2023-08-20 10:04:20 +08:00
parent 3572897aed
commit 12a104f001

View File

@ -73,6 +73,7 @@
style="background-color: inherit; overflow: hidden"
>
<script id="code">
var cachedNodes = null;
function init() {
window.addEventListener("message", handler, false);
window.parent.postMessage({ type: "ready" }, "*");
@ -265,12 +266,6 @@
return null;
}
const noteIcon = `<svg t="1652008007954" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10521" width="18" height="18"><defs><style>path{fill:currentColor;}</style></defs><path d="M574.3 896H159.7c-17.6 0-31.9-14.3-31.9-32V160c0-17.7 14.3-32 31.9-32h382.7v160c0 35.3 28.6 64 63.8 64h159.5v192c0 17.7 14.3 32 31.9 32 17.6 0 31.9-14.3 31.9-32V270.2c0-8.5-3.3-16.6-9.3-22.6L647.4 73.4c-6-6-14.1-9.4-22.6-9.4h-497C92.6 64 64 92.7 64 128v768c0 35.3 28.6 64 63.8 64h446.5c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM638.1 288c-17.6 0-31.9-14.3-31.9-32V128l159.5 160H638.1z" p-id="10522"></path><path d="M418.8 673H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32h193.3c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM608.2 481H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32h382.7c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM225.5 353h191.4c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32zM862.7 959.4c-23.6 0-47-8.8-64.8-26.6l-24.4-24.4c-12.5-12.5-12.5-32.8 0-45.3s32.7-12.5 45.1 0l24.4 24.4c11.3 11.4 30.7 10.4 43.2-2.1 12.5-12.5 13.4-31.9 2.1-43.3L749.2 702.6c-11.3-11.4-30.7-10.4-43.2 2.1-6.2 6.3-9.8 14.4-10 22.8-0.2 7.9 2.6 15.1 7.9 20.4 12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.1 0c-36.2-36.3-35.2-96.3 2.1-133.8 37.4-37.5 97.2-38.4 133.4-2.1l139.1 139.5c36.2 36.3 35.2 96.3-2.1 133.8-19 19.2-43.9 28.8-68.6 28.8z" p-id="10523"></path><path d="M696.3 883.1c-23.6 0-47-8.8-64.8-26.6l-139-139.6c-17.7-17.8-27.2-41.7-26.6-67.2 0.6-25 10.8-48.6 28.7-66.6 17.9-17.9 41.5-28.2 66.4-28.8 25.5-0.6 49.3 8.9 67 26.6l24.4 24.4c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.1 0l-24.4-24.4c-5.3-5.3-12.5-8.1-20.4-7.9-8.4 0.2-16.5 3.8-22.8 10-6.2 6.3-9.8 14.4-10 22.8-0.2 7.9 2.6 15.1 7.9 20.4L676.7 811c11.3 11.4 30.7 10.4 43.2-2.1 12.5-12.5 13.4-31.9 2.1-43.3-12.5-12.5-12.5-32.8 0-45.3s32.7-12.5 45.1 0c36.2 36.3 35.3 96.3-2.1 133.8-19.1 19.3-44 29-68.7 29z" p-id="10524"></path></svg>`;
function getData() {
window.parent.postMessage({ type: "getMindMapData" }, "*");
}
function walkNode(node, callback) {
if (!node) {
return;
@ -279,44 +274,6 @@
node.children.forEach((child) => walkNode(child, callback));
}
function setData(nodes, expandLevel) {
console.log(nodes);
const tree = getTreeView();
const expandedStatus = {};
if (tree) {
const rootNodes = tree.getNodes();
console.log(tree, rootNodes);
rootNodes.forEach((root) => {
walkNode(root, (node) => {
expandedStatus[node.itemData.name] = node.itemData.expanded;
});
});
}
console.log(expandedStatus);
const treeData = [];
nodes.map((node) => {
treeData.push({
id: String(node.model.id),
name: node.model.name,
level: node.model.level,
icon: node.model.level === 7 ? noteIcon : undefined,
lineIndex: node.model.lineIndex,
endIndex: node.model.endIndex,
isDirectory: node.children.length > 0,
expanded:
node.model.name in expandedStatus
? expandedStatus[node.model.name]
: node.model.level < expandLevel,
parentId:
node.model.level > 1 ? String(node.parent.model.id) : undefined,
});
});
$(() => {
createTreeView("#treeview", treeData);
createSortable("#treeview", "treeData");
});
}
function jumpNode(e) {
var itemData = e.itemData;
if (itemData.noteLink) {
@ -341,6 +298,70 @@
}
}
const noteIcon = `<svg t="1652008007954" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10521" width="18" height="18"><defs><style>path{fill:currentColor;}</style></defs><path d="M574.3 896H159.7c-17.6 0-31.9-14.3-31.9-32V160c0-17.7 14.3-32 31.9-32h382.7v160c0 35.3 28.6 64 63.8 64h159.5v192c0 17.7 14.3 32 31.9 32 17.6 0 31.9-14.3 31.9-32V270.2c0-8.5-3.3-16.6-9.3-22.6L647.4 73.4c-6-6-14.1-9.4-22.6-9.4h-497C92.6 64 64 92.7 64 128v768c0 35.3 28.6 64 63.8 64h446.5c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM638.1 288c-17.6 0-31.9-14.3-31.9-32V128l159.5 160H638.1z" p-id="10522"></path><path d="M418.8 673H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32h193.3c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM608.2 481H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32h382.7c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32zM225.5 353h191.4c17.6 0 31.9-14.3 31.9-32s-14.3-32-31.9-32H225.5c-17.6 0-31.9 14.3-31.9 32s14.3 32 31.9 32zM862.7 959.4c-23.6 0-47-8.8-64.8-26.6l-24.4-24.4c-12.5-12.5-12.5-32.8 0-45.3s32.7-12.5 45.1 0l24.4 24.4c11.3 11.4 30.7 10.4 43.2-2.1 12.5-12.5 13.4-31.9 2.1-43.3L749.2 702.6c-11.3-11.4-30.7-10.4-43.2 2.1-6.2 6.3-9.8 14.4-10 22.8-0.2 7.9 2.6 15.1 7.9 20.4 12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.1 0c-36.2-36.3-35.2-96.3 2.1-133.8 37.4-37.5 97.2-38.4 133.4-2.1l139.1 139.5c36.2 36.3 35.2 96.3-2.1 133.8-19 19.2-43.9 28.8-68.6 28.8z" p-id="10523"></path><path d="M696.3 883.1c-23.6 0-47-8.8-64.8-26.6l-139-139.6c-17.7-17.8-27.2-41.7-26.6-67.2 0.6-25 10.8-48.6 28.7-66.6 17.9-17.9 41.5-28.2 66.4-28.8 25.5-0.6 49.3 8.9 67 26.6l24.4 24.4c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.1 0l-24.4-24.4c-5.3-5.3-12.5-8.1-20.4-7.9-8.4 0.2-16.5 3.8-22.8 10-6.2 6.3-9.8 14.4-10 22.8-0.2 7.9 2.6 15.1 7.9 20.4L676.7 811c11.3 11.4 30.7 10.4 43.2-2.1 12.5-12.5 13.4-31.9 2.1-43.3-12.5-12.5-12.5-32.8 0-45.3s32.7-12.5 45.1 0c36.2 36.3 35.3 96.3-2.1 133.8-19.1 19.3-44 29-68.7 29z" p-id="10524"></path></svg>`;
function getData() {
window.parent.postMessage({ type: "getMindMapData" }, "*");
}
function setData(nodes, expandLevel) {
console.log(nodes);
const tree = getTreeView();
const expandedStatus = {};
if (tree) {
const rootNodes = tree.getNodes();
console.log(tree, rootNodes);
rootNodes.forEach((root) => {
walkNode(root, (node) => {
expandedStatus[node.itemData.name] = node.itemData.expanded;
});
});
}
if (cachedNodes?.length === nodes?.length) {
let isSame = true;
for (let i = 0; i < nodes.length; i += 1) {
const current = nodes[i];
const cached = cachedNodes[i];
if (
current.model.name !== cached.model.name ||
current.model.level !== cached.model.level ||
current.model.lineIndex !== cached.model.lineIndex ||
current.model.endIndex !== cached.model.endIndex
) {
isSame = false;
break;
}
}
if (isSame) {
return;
}
}
cachedNodes = nodes;
console.log(expandedStatus);
const treeData = [];
nodes.map((node) => {
treeData.push({
id: String(node.model.id),
name: node.model.name,
level: node.model.level,
icon: node.model.level === 7 ? noteIcon : undefined,
lineIndex: node.model.lineIndex,
endIndex: node.model.endIndex,
isDirectory: node.children.length > 0,
expanded:
node.model.name in expandedStatus
? expandedStatus[node.model.name]
: node.model.level < expandLevel,
parentId:
node.model.level > 1 ? String(node.parent.model.id) : undefined,
});
});
$(() => {
createTreeView("#treeview", treeData);
createSortable("#treeview", "treeData");
});
}
function handler(e) {
console.log(e);
if (e.data.type === "setMindMapData") {