diff --git a/script.js b/script.js index a87fa60..9ce7ba7 100644 --- a/script.js +++ b/script.js @@ -228,7 +228,7 @@ function vUpload() { for (var i = 0; i < D.files.length; i++) if (D.files[i].s === "ready") readyCount++; var all = readyCount === D.files.length; - var head = ""; + var head = headReady; if (all && !D.running) { head = '
"; }).join("") + "" + 'Перед запуском анализа проверьте комплектность: для сверки нужны пояснительная записка и подтверждающие материалы. " + - "Анализ идёт по пяти источникам — законодательству и внутренним правилам. Статус «Готово к анализу» появляется после проверки каждого файла.
Строками идёт по заявке и пакету документов. Статусы файлов: «Ожидает проверки» — файл ещё получен не был, «Готово к анализу» — файл проверен и получен. " + + "Когда собран весь пакет, вверху экрана появляется кнопка «Запустить анализ ИИ».
"; } /* ---------- Экран 2. Результаты анализа ИИ ---------- */ @@ -477,6 +485,50 @@ function nowTime() { } /* ---------- Действия ---------- */ +S.uploadFiles = function () { + var input = document.createElement("input"); + input.type = "file"; + input.multiple = true; + input.accept = ".pdf,.docx,.xlsx,.csv,.txt,.doc"; + input.onchange = function () { + var files = input.files || []; + if (files.length === 0) return; + var added = 0; + for (var i = 0; i < files.length; i++) { + var f = files[i]; + var exists = false; + for (var j = 0; j < D.files.length; j++) { + if (D.files[j].s === "wait" && D.files[j].n.toLowerCase().indexOf(f.name.toLowerCase().slice(0, 20)) >= 0) { + D.files[j].s = "ready"; + D.files[j].d = nowTime(); + exists = true; + added++; + break; + } + } + if (!exists) { + var ext = (f.name.lastIndexOf(".") >= 0) ? f.name.slice(f.name.lastIndexOf(".")) : ""; + var typeLabel = "Подтверждающий документ"; + if (f.name.toLowerCase().indexOf("записк") >= 0) typeLabel = "Пояснительная записка"; + D.files.push({ n: f.name, t: typeLabel, d: nowTime() + " (загрузка)", s: "ready" }); + added++; + } + } + save(); + render(); + toast(added + " файл(ов) добавлено в пакет", "ok"); + var allNow = D.files.every(function (x) { return x.s === "ready"; }); + if (allNow) toast("Пакет собран — анализ стал доступен", "ok"); + }; + input.click(); +}; + +S.fileReady = function (i) { + D.files[i].s = "ready"; + render(); + toast("Файл отмечен как готовый к анализу", "ok"); +}; + S.go = function (id) { D.view = id; render(); }; S.analyze = function () { diff --git a/style.css b/style.css index 37a77a8..433609b 100644 --- a/style.css +++ b/style.css @@ -8,6 +8,8 @@ /* Кнопки в строке таблицы */ .row-act { display: flex; align-items: center; justify-content: flex-end; gap: var(--kt-ai-space-2); } +tr[data-wait="true"] td { opacity: .7; } +tr[data-wait="true"] td:first-child { color: var(--kt-ai-status-warn-fg); font-weight: var(--kt-ai-weight-medium); } /* Шапка приложения: заголовок + подзаголовок */ .tb-title { display: flex; flex-direction: column; gap: 1px; min-width: 0; }