From db517152915052bb83e04e5f79d1926716e2852b Mon Sep 17 00:00:00 2001 From: tore Date: Fri, 25 Sep 2026 07:31:21 +0000 Subject: [PATCH] =?UTF-8?q?v1.1:=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20?= =?UTF-8?q?=C2=AB=D0=AD=D0=BA=D1=81=D0=BF=D0=BE=D1=80=D1=82=20=D0=B2=20Exc?= =?UTF-8?q?el=C2=BB=20=E2=80=94=20=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B5=D0=B9=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20SheetJS=20(xlsx)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 ++ script.js | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/index.html b/index.html index 60e4ffb..6c6cc13 100644 --- a/index.html +++ b/index.html @@ -57,6 +57,7 @@
+
@@ -143,6 +144,7 @@
+ diff --git a/script.js b/script.js index 1205fc6..b0a7a36 100644 --- a/script.js +++ b/script.js @@ -262,6 +262,44 @@ toast("Заявка " + rec.id + " добавлена"); }); + document.getElementById("btn-export").addEventListener("click", function () { + var rows = []; + for (var i = 0; i < requests.length; i++) { + if (!rowMatches(requests[i])) continue; + var r = requests[i]; + rows.push({ + "Заявка": r.id, + "Оборудование": r.equip, + "Расположение": r.loc, + "Описание": r.desc, + "Создана": fmtDate(r.created), + "Статус": STATUS[r.status] ? STATUS[r.status].label : r.status + }); + } + if (!rows.length) { + toast("Нечего выгружать — по фильтрам нет записей"); + return; + } + var wb = XLSX.utils.json_to_sheet(rows); + var widths = ["Заявка", "Оборудование", "Расположение", "Описание"].map(function (h) { + var w = h.length; + rows.forEach(function (row) { + var v = String(row[h] || ""); + if (v.length > w) w = v.length; + }); + return { wch: Math.min(w + 2, 60) }; + }); + widths.push({ wch: 12 }, { wch: 20 }); + wb["!cols"] = widths; + var sheetName = state.status === "all" ? "Заявки" : STATUS[state.status].label; + var wbout = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wbout, wb, sheetName.slice(0, 31)); + var d = new Date(); + var name = "Journal_" + String(d.getDate()).padStart(2, "0") + String(d.getMonth() + 1).padStart(2, "0") + d.getFullYear() + ".xlsx"; + XLSX.writeFile(wbout, name); + toast("Выгружено записей: " + rows.length); + }); + document.getElementById("btn-apply").addEventListener("click", function () { if (!state.editId) return; for (var i = 0; i < requests.length; i++) {