0.3.9修复onlyoffice 的打开问题

This commit is contained in:
liaibo
2026-01-26 13:19:48 +08:00
parent 0f22a3ff0b
commit d1f055f51a
12 changed files with 364 additions and 221 deletions
@@ -2176,47 +2176,53 @@ const MindmapBlockView = ({
};
// 处理图片删除(将 asset 移到垃圾桶)
const deleteImageAssets = async (assetIds: string[]) => {
if (!assetIds.length || !docId) return;
try {
const response = await fetch("/api/media/batch", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ action: "delete", assetIds }),
});
if (response.ok) {
// 记录到已删除列表
assetIds.forEach(id => deletedAssetIdsRef.current.add(id));
// 通知文件树刷新,传递被删除的 assetIds
emitAssetsChanged(docId, undefined, assetIds);
} else {
const payload = await response.json().catch(() => null);
console.error("删除图片资源失败", payload?.error);
const deleteImageAssets = useCallback(
async (assetIds: string[]) => {
if (!assetIds.length || !docId) return;
try {
const response = await fetch("/api/media/batch", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ action: "delete", assetIds }),
});
if (response.ok) {
// 记录到已删除列表
assetIds.forEach((id) => deletedAssetIdsRef.current.add(id));
// 通知文件树刷新,传递被删除的 assetIds
emitAssetsChanged(docId, undefined, assetIds);
} else {
const payload = await response.json().catch(() => null);
console.error("删除图片资源失败", payload?.error);
}
} catch (e) {
console.error("删除图片资源失败", e);
}
} catch (e) {
console.error("删除图片资源失败", e);
}
};
},
[docId],
);
// 处理图片恢复(从垃圾桶恢复)
const restoreImageAssets = async (assetIds: string[]) => {
if (!assetIds.length || !docId) return;
try {
const response = await fetch("/api/media/batch", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ action: "restore", assetIds }),
});
if (response.ok) {
// 从已删除列表移除
assetIds.forEach(id => deletedAssetIdsRef.current.delete(id));
// 通知文件树刷新,传递恢复的 assetIds(空列表表示需要重新获取)
emitAssetsChanged(docId);
const restoreImageAssets = useCallback(
async (assetIds: string[]) => {
if (!assetIds.length || !docId) return;
try {
const response = await fetch("/api/media/batch", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ action: "restore", assetIds }),
});
if (response.ok) {
// 从已删除列表移除
assetIds.forEach((id) => deletedAssetIdsRef.current.delete(id));
// 通知文件树刷新,传递恢复的 assetIds(空列表表示需要重新获取)
emitAssetsChanged(docId);
}
} catch (e) {
console.error("恢复图片资源失败", e);
}
} catch (e) {
console.error("恢复图片资源失败", e);
}
};
},
[docId],
);
const imgToolbarRef = useRef<HTMLDivElement | null>(null);
const [imgToolbarState, setImgToolbarState] = useState({
show: false,
@@ -2414,7 +2420,7 @@ const MindmapBlockView = ({
mindmap.off?.("back_forward", handleDataChange);
mindmap.off?.("node_data_change", handleDataChange);
};
}, [mindmap, docId]);
}, [deleteImageAssets, docId, mindmap, restoreImageAssets]);
// 悬浮图片位置工具条(参考 NodeImgPlacementToolbar.vue
const renderImgToolbar = () => {