v1.0.77: авто-парсинг после загрузки с таймером

This commit is contained in:
2026-06-21 07:32:42 +04:00
parent e049d28515
commit c25864ea61
+29 -2
View File
@@ -71,7 +71,7 @@
<body> <body>
<div class="topbar"> <div class="topbar">
<img src="/nubes-logo.svg" alt="Nubes"> <img src="/nubes-logo.svg" alt="Nubes">
<span class="title">Сверка договоров — LLM <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.0.76 — Lucee</span></span> <span class="title">Сверка договоров — LLM <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.0.77 — Lucee</span></span>
</div> </div>
<div class="content"> <div class="content">
@@ -234,6 +234,26 @@ fileInput.addEventListener('change', async function() {
fileQueue[rowIdx].doc_id = resp.DOC_ID; fileQueue[rowIdx].doc_id = resp.DOC_ID;
fileQueue[rowIdx].status = '<span class="status-ok">✓</span>'; fileQueue[rowIdx].status = '<span class="status-ok">✓</span>';
fileQueue[rowIdx].uploaded = true; fileQueue[rowIdx].uploaded = true;
// Авто-парсинг сразу после загрузки
var t0 = Date.now();
fileQueue[rowIdx].status = '⏳ парсинг...';
renderTable();
try {
var pr = await fetch('/parser.cfm?doc_id=' + resp.DOC_ID);
var pd = await pr.json();
var elapsed = ((Date.now() - t0) / 1000).toFixed(1);
if (pd.OK && pd.STATUS === 'parsed') {
fileQueue[rowIdx].parsed = true;
fileQueue[rowIdx].parseInfo = pd;
fileQueue[rowIdx].status = '<span class="status-ok">✓ ' + pd.ELEMENT_COUNT + ' эл. (' + elapsed + 'с)</span>';
} else {
fileQueue[rowIdx].status = '<span class="status-err">✗ ' + (pd.ERROR_COUNT > 0 ? (pd.ERRORS && pd.ERRORS[0] || 'ошибка') : 'ошибка') + '</span>';
fileQueue[rowIdx].parseInfo = pd;
}
} catch(pe) {
fileQueue[rowIdx].status = '<span class="status-err">✗ парсинг: сеть</span>';
}
} catch(err) { } catch(err) {
fileQueue[rowIdx].status = '<span class="status-err">✗ ' + err.message + '</span>'; fileQueue[rowIdx].status = '<span class="status-err">✗ ' + err.message + '</span>';
} }
@@ -244,8 +264,15 @@ fileInput.addEventListener('change', async function() {
fileInput.value = ''; fileInput.value = '';
fileInput.disabled = false; fileInput.disabled = false;
parseBtn.disabled = (contractId === null); parseBtn.disabled = false;
parseBtn.innerHTML = '<i data-lucide="play" style="width:16px;height:16px;"></i> Парсинг'; parseBtn.innerHTML = '<i data-lucide="play" style="width:16px;height:16px;"></i> Парсинг';
// Показать кнопки LLM после авто-парсинга
var llmBtn = document.getElementById('llmBtn');
llmBtn.style.display = 'flex';
llmBtn.disabled = false;
var llmBtnV2 = document.getElementById('llmBtnV2');
llmBtnV2.style.display = 'flex';
llmBtnV2.disabled = false;
lucide.createIcons(); lucide.createIcons();
}); });