refactor: use conventional Bell alert modules (#33)

This commit is contained in:
QiuSW
2026-08-12 15:15:07 +08:00
parent 2248eba485
commit 8d1875caff
2 changed files with 60 additions and 102 deletions
+27 -29
View File
@@ -27,25 +27,30 @@
}));
let started = false;
const startButton = qs("[data-action='start-alert']");
startButton?.addEventListener("click", () => {
if (started) return;
const startButtons = qsa("[data-action='start-alert'], [data-action='table-start-alert']");
const startAlert = () => {
if (started) {
toast("该预警已由王值班员开始处理");
return;
}
started = true;
startButton.disabled = true;
startButton.textContent = "已由你开始处理";
const state = qs("[data-alert-state]");
state.textContent = "处理中";
state.className = "status status-warning el-tag";
startButtons.forEach((button) => {
button.disabled = true;
button.textContent = "已确认";
});
const dashboardState = qs("[data-alert-state]");
dashboardState.textContent = "处理中";
dashboardState.className = "status status-warning el-tag";
const tableState = qs("[data-table-alert-state]");
tableState.textContent = "处理中";
tableState.className = "status status-warning el-tag";
qs("[data-table-owner]").textContent = "王值班员";
qs("[data-finish-from-table]").disabled = false;
qs("[data-pending-count]").textContent = String(Math.max(0, number("[data-pending-count]") - 1));
qs("[data-working-count]").textContent = String(number("[data-working-count]") + 1);
qs("[data-owned-alert]").hidden = false;
qs("[data-working-total]").textContent = "3 条";
toast("已开始处理;其他人会看到这条预警由王老师负责");
});
qs("[data-simulate-conflict]")?.addEventListener("click", () => {
toast("这条预警已由李老师开始处理,你可以查看进展但不能重复领取");
});
toast("预警已确认并由王值班员开始处理");
};
startButtons.forEach((button) => button.addEventListener("click", startAlert));
qsa("input[name='result']").forEach((input) => input.addEventListener("change", () => {
qs("[data-result-error]").hidden = true;
@@ -59,20 +64,13 @@
qs("input[name='result']")?.focus();
return;
}
const note = qs("#result-note").value.trim();
const tbody = qs("[data-history-body]");
const row = document.createElement("tr");
const statusClass = selected.value === "确认有危险" ? "status-danger" : selected.value === "现场正常" ? "status-success" : "status-neutral";
row.innerHTML = `<td><span class="table-title">危险区域有人进入</span><span class="table-subtitle"></span></td><td>北围墙 01</td><td><span class="status ${statusClass} el-tag"></span></td><td>王老师</td><td>刚刚</td><td><button class="btn btn-quiet el-button-link">查看记录</button></td>`;
qs(".table-subtitle", row).textContent = note || "未填写补充说明";
qs(".status", row).textContent = selected.value;
qs("button", row).addEventListener("click", () => toast("已打开完整处理记录"));
tbody.prepend(row);
qs("[data-owned-alert]").hidden = true;
qs("[data-working-total]").textContent = "2 条";
qs("[data-working-count]").textContent = String(Math.max(0, number("[data-working-count]") - 1));
const tableState = qs("[data-table-alert-state]");
tableState.textContent = "已关闭";
tableState.className = "status status-success el-tag";
qs("[data-finish-from-table]").disabled = true;
qs("[data-completed-count]").textContent = String(number("[data-completed-count]") + 1);
qs("[data-working-count]").textContent = String(Math.max(0, number("[data-working-count]") - 1));
qs("[data-close-modal]", qs("#finish-alert"))?.click();
toast(`处理已完成,现场结果:${selected.value}`);
toast(`预警已关闭,处理结果:${selected.value}`);
});
})();