// 车检器测试基准参数管理 let editId = null; // null=新增, number=编辑 // ─── Toast ─────────────────────────────────── function toast(msg, isError = false) { const el = document.getElementById("toast"); el.textContent = msg; el.className = "msg-toast " + (isError ? "error" : "") + " show"; clearTimeout(el._timeout); el._timeout = setTimeout(() => { el.className = "msg-toast"; }, 3000); } // ─── 列表加载 ──────────────────────────────── async function loadList() { const search = document.getElementById("search-input").value; try { const resp = await fetch(`/api/vehicle-base-test?search=${encodeURIComponent(search)}`); const data = await resp.json(); renderTable(data); } catch (e) { console.error("加载失败:", e); } } function renderTable(data) { const tbody = document.querySelector("#vbt-table tbody"); if (!data.length) { tbody.innerHTML = '暂无数据,点右上角「新增」添加'; return; } tbody.innerHTML = data.map(t => ` ${t.type_num} ${esc(t.dev_name)} ${t.SensMin} ~ ${t.SensMax} ${t.FreMin} ~ ${t.FreMax} ${t.PeakMin} ~ ${t.PeakMax} ${esc(t.remark || '-')} `).join(""); } // ─── 弹窗 ──────────────────────────────────── function openModal(id = null) { editId = id; document.getElementById("modal-title").textContent = id ? "编辑车检器测试基准" : "新增车检器测试基准"; document.getElementById("edit-modal").style.display = "flex"; if (id) { // 编辑:加载数据 fetch(`/api/vehicle-base-test/${id}`) .then(r => r.json()) .then(data => { document.getElementById("edit-type-num").value = data.type_num; document.getElementById("edit-dev-name").value = data.dev_name; document.getElementById("edit-sens-min").value = data.SensMin; document.getElementById("edit-sens-max").value = data.SensMax; document.getElementById("edit-fre-min").value = data.FreMin; document.getElementById("edit-fre-max").value = data.FreMax; document.getElementById("edit-peak-min").value = data.PeakMin; document.getElementById("edit-peak-max").value = data.PeakMax; document.getElementById("edit-remark").value = data.remark || ""; }); } else { // 新增:清空 document.getElementById("edit-type-num").value = ""; document.getElementById("edit-dev-name").value = ""; document.getElementById("edit-sens-min").value = "0"; document.getElementById("edit-sens-max").value = "0"; document.getElementById("edit-fre-min").value = "0"; document.getElementById("edit-fre-max").value = "0"; document.getElementById("edit-peak-min").value = "0"; document.getElementById("edit-peak-max").value = "0"; document.getElementById("edit-remark").value = ""; } } function closeModal() { document.getElementById("edit-modal").style.display = "none"; editId = null; } // ─── 保存 ──────────────────────────────────── async function saveRecord() { const data = { type_num: parseInt(document.getElementById("edit-type-num").value) || 0, dev_name: document.getElementById("edit-dev-name").value.trim(), SensMin: parseInt(document.getElementById("edit-sens-min").value) || 0, SensMax: parseInt(document.getElementById("edit-sens-max").value) || 0, FreMin: parseInt(document.getElementById("edit-fre-min").value) || 0, FreMax: parseInt(document.getElementById("edit-fre-max").value) || 0, PeakMin: parseInt(document.getElementById("edit-peak-min").value) || 0, PeakMax: parseInt(document.getElementById("edit-peak-max").value) || 0, remark: document.getElementById("edit-remark").value.trim(), }; if (!data.dev_name) { toast("请输入型号/名称", true); return; } try { let resp; if (editId) { resp = await fetch(`/api/vehicle-base-test/${editId}`, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data), }); } else { resp = await fetch("/api/vehicle-base-test", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data), }); } const result = await resp.json(); if (result.ok || resp.ok) { toast(editId ? "更新成功" : "新增成功"); closeModal(); loadList(); } else { toast("保存失败: " + (result.error || "未知错误"), true); } } catch (e) { toast("保存失败: " + e.message, true); } } // ─── 删除 ──────────────────────────────────── async function deleteRecord(id, name) { if (!confirm(`确定要删除「${name}」吗?`)) return; try { const resp = await fetch(`/api/vehicle-base-test/${id}`, { method: "DELETE" }); const result = await resp.json(); if (result.ok) { toast("删除成功"); loadList(); } else { toast("删除失败: " + (result.error || "未知错误"), true); } } catch (e) { toast("删除失败: " + e.message, true); } } function esc(s) { return (s || "").replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); } loadList();