编辑页面

修改后将从当前时间重新计算过期时间
`], part: ["配件信息", "维护配件基础资料、库存和供货商", `
`], claim: ["索赔订单", "客户、车辆、供货商与索赔商品信息", `
索赔单与车辆档案共用 VIN 主键,选择或输入 VIN 后会同步车牌、车型、客户和电话。
${vehicleFields("cl")}
`], vehicle: ["车辆档案", "首次进站创建,后续按 VIN 自动带出", `
`], customer: ["用户信息", "留存用户资料并绑定车辆档案", `
用户与车辆通过 VIN 建立绑定关系;录入 VIN 后可同步车辆基础档案,并在配件订单、保养、索赔场景中复用。
${vehicleFields("cu")}
`], repairManual: ["维修手册", "维护诊断、拆装和质检标准", `
`], maintenanceManual: ["保养手册", "维护保养周期、项目和材料清单", `
`] }; const config = map[type] || map.workorder; document.getElementById("drawerTitle").textContent = config[0]; document.getElementById("drawerSub").textContent = config[1]; document.getElementById("drawerBody").innerHTML = config[2]; document.getElementById("drawerMask").classList.add("open"); refreshIcons(); ["wo", "cl", "cu"].forEach(prefix => { const input = document.getElementById(`${prefix}vinInput`); const vehicle = input ? findVehicleByVin(input.value) : null; if (vehicle) fillVehicleFields(prefix, vehicle); }); } document.addEventListener("click", (event) => { const navButton = event.target.closest("[data-view]"); if (navButton) switchView(navButton.dataset.view); const drawerButton = event.target.closest("[data-open-drawer]"); if (drawerButton) openDrawer(drawerButton.dataset.openDrawer); if (event.target.closest("[data-close-drawer]")) { document.getElementById("drawerMask").classList.remove("open"); } const save = event.target.closest("#saveDrawer"); if (save) { document.getElementById("drawerMask").classList.remove("open"); showToast("保存成功,列表已更新为演示状态"); } const toastButton = event.target.closest("[data-toast]"); if (toastButton) showToast(toastButton.dataset.toast); const exportButton = event.target.closest("[data-export]"); if (exportButton) showToast(`${exportButton.dataset.export} 已生成导出文件`); const importButton = event.target.closest("[data-import]"); if (importButton) showToast(`${importButton.dataset.import} 导入模板已打开`); if (event.target.closest("[data-batch-delete]")) showToast("已删除选中的索赔订单"); const deleteButton = event.target.closest("[data-delete]"); if (deleteButton) showToast("已删除当前演示记录"); const showVehicleButton = event.target.closest("[data-show-vehicle]"); if (showVehicleButton) showVehicle(vehicles[Number(showVehicleButton.dataset.showVehicle)]); const fillVinButton = event.target.closest("[data-fill-vin]"); if (fillVinButton) { const prefix = fillVinButton.dataset.fillVin; const vin = document.getElementById(`${prefix}vinInput`).value; const v = findVehicleByVin(vin); if (v) { fillVehicleFields(prefix, v); showToast(`已带出 ${v.owner} 的车辆和客户信息`); } else { showToast("VIN 不存在,将按首次进站流程建档"); } } }); document.querySelectorAll("[data-search]").forEach(button => { button.addEventListener("click", () => { const scope = button.dataset.search; const filters = [...document.querySelectorAll(`[data-filter-scope="${scope}"] [data-filter]`)] .map(el => String(el.value).trim().toLowerCase()) .filter(Boolean); const rowTargets = { workorders: "workorderRows", parts: "partRows", claims: "claimRows", vehicles: "vehicleRows", customers: "customerRows", repairManuals: "repairManualRows", maintenanceManuals: "maintenanceManualRows" }; const rows = document.querySelectorAll(`#${rowTargets[scope]} tr`); let count = 0; rows.forEach(row => { const hay = row.dataset.search.toLowerCase(); const ok = filters.every(filter => hay.includes(filter)); row.style.display = ok ? "" : "none"; if (ok) count += 1; }); showToast(`查询完成,共 ${count} 条匹配记录`); }); }); document.getElementById("globalVinBtn").addEventListener("click", () => { lookupVin(document.getElementById("globalVin").value, { openIfMissing: true }); }); document.getElementById("globalVin").addEventListener("keydown", (event) => { if (event.key === "Enter") lookupVin(event.currentTarget.value, { openIfMissing: true }); }); document.querySelectorAll("[data-toggle]").forEach(toggle => { toggle.addEventListener("click", () => { toggle.classList.toggle("on"); showToast(toggle.classList.contains("on") ? "规则已启用" : "规则已停用"); }); }); document.querySelectorAll(".tabs button").forEach(button => { button.addEventListener("click", () => { button.parentElement.querySelectorAll("button").forEach(el => el.classList.remove("active")); button.classList.add("active"); }); }); renderTables(); showVehicle(vehicles[0]); refreshIcons();
取消
访问码: 8jwzxfk3