diff --git a/index.html b/index.html index 7a6f96d..10aec1f 100644 --- a/index.html +++ b/index.html @@ -214,21 +214,45 @@ function renderDashboard(){ h+='

📥 Скачать сводный отчёт

'; h+=''; h+=''; - h+='
'; + h+=''; + h+=''; document.getElementById("tab-dashboard").innerHTML=h; } function downloadReport(){ var from=parseInt(document.getElementById("rptFrom").value),to=parseInt(document.getElementById("rptTo").value); - var my=getMy(),csv="№;Мероприятие;Раздел;Дивизион;Статус;Прогресс;Срок;Факт;Отчёт (текст)\n"; + var my=getMy(),csv="№;Мероприятие;Раздел;Дивизион;Статус;Прогресс;Срок;Факт;Отчёты по месяцам (текст);Файлы по месяцам (названия)\n"; my.forEach(function(e){ - var rep="";for(var i=from;i<=to;i++){var m=months[i],d=getMD(e.id);if(d[m]&&d[m].report)rep+=M(i)+": "+d[m].report.replace(/"/g,'""')+"; "} - csv+=e.id+';"'+e.t.replace(/"/g,'""')+'";'+sections[e.sec]+';'+branches[e.b]+';'+statusMap[e.s]+';'+e.p+'%;'+e.due+';'+(e.done||"—")+';"'+rep+'"\n'; + var rep="",fls="",d=getMD(e.id); + for(var i=from;i<=to;i++){var m=months[i];if(d[m]){if(d[m].report)rep+=M(i)+": "+d[m].report.replace(/"/g,'""')+"; ";if(d[m].files&&d[m].files.length)fls+=M(i)+": "+d[m].files.map(function(f){return f.name}).join(", ")+"; "}} + csv+=e.id+';"'+e.t.replace(/"/g,'""')+'";'+sections[e.sec]+';'+branches[e.b]+';'+statusMap[e.s]+';'+e.p+'%;'+e.due+';'+(e.done||"—")+';"'+rep+'";"'+fls+'"\n'; }); var blob=new Blob(["\uFEFF"+csv],{type:"text/csv;charset=utf-8"}),a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="otchet_pb_"+M(from)+"-"+M(to)+".csv";a.click() } +function downloadHTML(){ + var from=parseInt(document.getElementById("rptFrom").value),to=parseInt(document.getElementById("rptTo").value); + var my=getMy(),h='Сводный отчёт ПБ'; + h+='

ИИ-Агент ПБ — Сводный отчёт

Период: '+M(from)+' — '+M(to)+' · Дивизион: '+branches[curUser.branch]+' · Сформирован: '+new Date().toLocaleDateString()+'

'; + my.forEach(function(e){ + var scls={done:"g",warn:"a",late:"r",wait:"w"}[e.s]; + h+='

'+e.id+'. '+esc(e.t)+'

'; + h+='
Раздел: '+sections[e.sec]+'Дивизион: '+branches[e.b]+'Срок: '+e.due+'Факт: '+(e.done||"—")+'Прогресс: '+e.p+'%'+statusMap[e.s]+'
'; + h+='
Ответственный: '+esc(e.r)+'
'; + var d=getMD(e.id),has=false; + for(var i=from;i<=to;i++){var m=months[i];if(d[m]&&(d[m].report||(d[m].files&&d[m].files.length))){ + has=true;h+='
'+M(i)+''; + if(d[m].report)h+='

'+esc(d[m].report)+'

'; + if(d[m].files&&d[m].files.length)h+='
    '+d[m].files.map(function(f){return'
  • '+esc(f.name)+(f.desc?' — '+esc(f.desc):'')+' ('+(f.size/1024).toFixed(0)+' КБ)
  • '}).join("")+'
'; + h+='
'}} + if(!has)h+='

Нет отчётов за выбранный период

'; + h+='
🤖 ИИ: '+esc(e.ai)+'
'; + }); + h+=''; + var blob=new Blob(["\uFEFF"+h],{type:"text/html;charset=utf-8"}),a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="otchet_pb_"+M(from)+"-"+M(to)+".html";a.click() +} + // ===== MY EVENTS ===== function renderMyEvents(){ var my=getMy(),h='
';