v1.0.177: группы независимы — изменения в одной не касаются других
This commit is contained in:
+23
-3
@@ -405,7 +405,7 @@ async function loadGroups() {
|
|||||||
'<div style="font-size:12px;">' + docsHtml + '</div>' +
|
'<div style="font-size:12px;">' + docsHtml + '</div>' +
|
||||||
'<div style="font-size:11px;color:var(--muted);margin-top:4px;">Загрузите недостающие базовые договоры для этих номеров.</div>';
|
'<div style="font-size:11px;color:var(--muted);margin-top:4px;">Загрузите недостающие базовые договоры для этих номеров.</div>';
|
||||||
} else {
|
} else {
|
||||||
card.innerHTML = '<div style="font-weight:600;margin-bottom:6px;">📄 Договор №' + escHtml(g.contract_number || '?') + ' — ' + escHtml(g.counterparty || 'контрагент не определён') + '</div>' +
|
card.innerHTML = '<div class="cmp-header" style="font-weight:600;margin-bottom:6px;cursor:pointer;"><span class="cmp-arrow" id="cmpArrow_' + gi + '" style="font-size:10px;margin-right:4px;">▸</span>📄 Договор №' + escHtml(g.contract_number || '?') + ' — ' + escHtml(g.counterparty || 'контрагент не определён') + '</div>' +
|
||||||
'<div style="font-size:12px;">' +
|
'<div style="font-size:12px;">' +
|
||||||
g.documents.map(function(d) {
|
g.documents.map(function(d) {
|
||||||
var typeLabel = {contract: 'договор', supplement: 'допсоглашение', specification: 'спецификация'}[d.doc_type] || d.doc_type;
|
var typeLabel = {contract: 'договор', supplement: 'допсоглашение', specification: 'спецификация'}[d.doc_type] || d.doc_type;
|
||||||
@@ -417,6 +417,20 @@ async function loadGroups() {
|
|||||||
}).join('') + '</div>' +
|
}).join('') + '</div>' +
|
||||||
'<button class="btn btn-primary cmp-btn" style="margin-top:6px;font-size:12px;height:28px;" data-gi="' + gi + '">▶ Сравнить эту группу</button>' +
|
'<button class="btn btn-primary cmp-btn" style="margin-top:6px;font-size:12px;height:28px;" data-gi="' + gi + '">▶ Сравнить эту группу</button>' +
|
||||||
'<div class="cmp-body" id="cmpBody_' + gi + '" style="display:none;margin-top:8px;"></div>';
|
'<div class="cmp-body" id="cmpBody_' + gi + '" style="display:none;margin-top:8px;"></div>';
|
||||||
|
// Клик на заголовок → свернуть/развернуть результаты
|
||||||
|
card.querySelector('.cmp-header').addEventListener('click', function() {
|
||||||
|
var body = document.getElementById('cmpBody_' + gi);
|
||||||
|
var arrow = document.getElementById('cmpArrow_' + gi);
|
||||||
|
if (body) {
|
||||||
|
if (body.style.display === 'none') {
|
||||||
|
body.style.display = 'block';
|
||||||
|
if (arrow) arrow.textContent = '▾';
|
||||||
|
} else {
|
||||||
|
body.style.display = 'none';
|
||||||
|
if (arrow) arrow.textContent = '▸';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
diffBody.appendChild(card);
|
diffBody.appendChild(card);
|
||||||
});
|
});
|
||||||
@@ -442,8 +456,11 @@ window.runCompareForGroup = async function(gi, btn) {
|
|||||||
if (_activeCompareES) { _activeCompareES.close(); _activeCompareES = null; }
|
if (_activeCompareES) { _activeCompareES.close(); _activeCompareES = null; }
|
||||||
if (_activeCompareTimer) { clearInterval(_activeCompareTimer); _activeCompareTimer = null; }
|
if (_activeCompareTimer) { clearInterval(_activeCompareTimer); _activeCompareTimer = null; }
|
||||||
|
|
||||||
// Свернуть все раскрытые сравнения, кроме текущей группы
|
// Свернуть ТОЛЬКО тело текущей группы
|
||||||
document.querySelectorAll('.cmp-body').forEach(function(el) { el.style.display = 'none'; });
|
var curBody = document.getElementById('cmpBody_' + gi);
|
||||||
|
if (curBody) curBody.style.display = 'none';
|
||||||
|
var curArrow = document.getElementById('cmpArrow_' + gi);
|
||||||
|
if (curArrow) curArrow.textContent = '▸';
|
||||||
// Заменить span «✓ Готово» обратно на кнопку ТОЛЬКО для текущей группы
|
// Заменить span «✓ Готово» обратно на кнопку ТОЛЬКО для текущей группы
|
||||||
var doneSpan = document.querySelector('.cmp-done[data-gi="' + gi + '"]');
|
var doneSpan = document.querySelector('.cmp-done[data-gi="' + gi + '"]');
|
||||||
if (doneSpan) {
|
if (doneSpan) {
|
||||||
@@ -549,6 +566,9 @@ window.runCompareForGroup = async function(gi, btn) {
|
|||||||
btn.parentNode.replaceChild(span, btn);
|
btn.parentNode.replaceChild(span, btn);
|
||||||
// Разблокировать остальные кнопки
|
// Разблокировать остальные кнопки
|
||||||
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
|
document.querySelectorAll('.cmp-btn').forEach(function(b) { b.disabled = false; });
|
||||||
|
// Показать стрелку раскрытия
|
||||||
|
var arrow = document.getElementById('cmpArrow_' + gi);
|
||||||
|
if (arrow) arrow.textContent = '▾';
|
||||||
stepDone('stepCompare');
|
stepDone('stepCompare');
|
||||||
}
|
}
|
||||||
else if (d.type === 'error') {
|
else if (d.type === 'error') {
|
||||||
|
|||||||
Reference in New Issue
Block a user