diff --git a/site/app.py b/site/app.py index fbdde64..0973b7d 100644 --- a/site/app.py +++ b/site/app.py @@ -151,6 +151,10 @@ class ContractsApp: paragraphs = sum(1 for e in elements if e.get("type") == "paragraph") tables = sum(1 for e in elements if e.get("type") == "table") table_rows = sum(len(e.get("rows", [])) for e in elements if e.get("type") == "table") + table_headers = [ + e["rows"][0] if e.get("rows") else [] + for e in elements if e.get("type") == "table" + ] return { "type": "file_done", "name": name, @@ -159,6 +163,7 @@ class ContractsApp: "paragraphs": paragraphs, "tables": tables, "table_rows": table_rows, + "table_headers": table_headers, "errors": errors, "text_len": len(text) if text else 0, "text_preview": text[:200] if text else "", diff --git a/site/templates/upload.html b/site/templates/upload.html index 2c38d96..c3c88cf 100644 --- a/site/templates/upload.html +++ b/site/templates/upload.html @@ -60,7 +60,7 @@
Nubes - Сверка договоров v1.10 + Сверка договоров v1.11
@@ -425,6 +425,14 @@ html += '
' + d.text_preview + '
'; } + if (d.table_headers && d.table_headers.length > 0) { + html += '
Первые строки таблиц:
'; + d.table_headers.forEach(function(hdr, ti) { + html += '
Таблица ' + (ti+1) + ':
'; + html += '
' + hdr.map(function(c) { return c || '(пусто)'; }).join(' | ') + '
'; + }); + } + document.getElementById('modalBody').innerHTML = html; document.getElementById('modalOverlay').classList.add('open'); }