fix: harden panel entry bootstrap

This commit is contained in:
Youzini-afk
2026-04-14 16:59:26 +08:00
parent 663bf2ad50
commit 6c808ed5ad
2 changed files with 82 additions and 34 deletions

View File

@@ -1021,21 +1021,21 @@ function _bindFabToggle() {
}
function _initFloatingBall() {
const existing = document.getElementById("bme-floating-ball");
if (existing) {
_fabEl = existing;
ensureFabMountedAtRoot();
syncFabPosition();
return;
let fab = document.getElementById("bme-floating-ball");
if (!fab) {
fab = document.createElement("div");
fab.id = "bme-floating-ball";
fab.setAttribute("data-status", "idle");
fab.innerHTML = `
<i class="fa-solid fa-brain bme-fab-icon"></i>
<span class="bme-fab-tooltip">BME 记忆图谱</span>
`;
} else if (!fab.querySelector(".bme-fab-icon")) {
fab.innerHTML = `
<i class="fa-solid fa-brain bme-fab-icon"></i>
<span class="bme-fab-tooltip">BME 记忆图谱</span>
`;
}
const fab = document.createElement("div");
fab.id = "bme-floating-ball";
fab.setAttribute("data-status", "idle");
fab.innerHTML = `
<i class="fa-solid fa-brain bme-fab-icon"></i>
<span class="bme-fab-tooltip">BME 记忆图谱</span>
`;
_fabEl = fab;
ensureFabMountedAtRoot();
@@ -1047,11 +1047,17 @@ function _initFloatingBall() {
if (saved) {
fab.dataset.positionMode = "saved";
applyFabPosition(saved, fab);
} else {
} else if (!fab.style.left || !fab.style.top) {
fab.dataset.positionMode = "default";
syncFabPosition();
}
if (fab.dataset.bmeFabBound === "true") {
return;
}
fab.dataset.bmeFabBound = "true";
delete fab.dataset.bmeBootstrap;
// 拖拽 + 点击逻辑
let isDragging = false;
let hasMoved = false;