v32: сводка по филиалам для куратора — что загружено

This commit is contained in:
Dauren777 2026-06-05 08:33:06 +00:00
parent 758f4eb72b
commit c7a3911abc

View File

@ -282,11 +282,12 @@ function renderDashboard(){
h+='<input type="file" id="impF" accept=".json" style="display:none" onchange="importAll(this)">';
h+='<button class="btn btn-sm" style="margin-top:6px;margin-left:4px;background:var(--red);color:#fff" onclick="clearAllFiles()">🗑 Очистить файлы</button></div></div>';
// Regional breakdown (for curator/admin)
// Branch detail for curator
if(curUser.role==="curator"||curUser.role==="admin"){
h+='<div class="panel"><h3>🌍 Исполнение по регионам</h3><table><tr><th>Регион</th><th>Всего</th><th>Исполнено</th><th>%</th></tr>';
regions.forEach(function(r,ri){var items=events.filter(function(e){return branchRegion[e.b]===ri}),d=items.filter(function(e){return e.s==="done"}).length;
h+='<tr><td><strong>'+r+'</strong></td><td>'+items.length+'</td><td>'+d+'</td><td>'+pct(items.length?Math.round(d/items.length*100):0)+'</td></tr>';
h+='<div class="panel"><h3>📋 Сводка по филиалам — что загружено</h3><table><tr><th>Филиал</th><th>Регион</th><th>Меропр.</th><th>С отчётами</th><th>Файлов</th><th>Прогресс</th></tr>';
branches.forEach(function(b,bi){var items=events.filter(function(e){return e.b===bi}),withRpt=0,totalFiles=0;
items.forEach(function(e){var d=getMD(e.id,-1);var has=false;for(var k in d){if(d.hasOwnProperty(k)&&d[k]&&(d[k].report||(d[k].files&&d[k].files.length))){has=true;totalFiles+=(d[k].files||[]).length}}if(e.sub)e.sub.forEach(function(s,si){var sd=getMD(e.id,si);for(var sk in sd){if(sd.hasOwnProperty(sk)&&sd[sk]&&(sd[sk].report||(sd[sk].files&&sd[sk].files.length))){has=true;totalFiles+=(sd[sk].files||[]).length}}});if(has)withRpt++});
h+='<tr style="cursor:pointer" onclick="setFilter(\'b_'+bi+'\');document.getElementById(\'branchFilter\').value=\'b_'+bi+'\'"><td><strong>'+b+'</strong></td><td style="font-size:11px">'+regions[branchRegion[bi]]+'</td><td>'+items.length+'</td><td>'+(withRpt?withRpt+' ✅':'—')+'</td><td>'+(totalFiles||'—')+'</td><td>'+pct(items.length?Math.round(withRpt/items.length*100):0)+'</td></tr>';
});
h+='</table></div>';
}