diff --git a/index.html b/index.html index 8ef1df9..5a11f21 100644 --- a/index.html +++ b/index.html @@ -270,856 +270,9 @@ function subResp(r,letter){ } }else{ if(found)cur+=String.fromCharCode(10)+p - } - } - return cur||"" -} - -function init(){ - try{ - var su=localStorage.getItem("su"); - if(su)cu=JSON.parse(su); - }catch(e){} - loadEv(); - var fb=document.getElementById("fb"); - if(fb){ - for(var i=0;i"; - h+="
"+esc(secs[e.sec])+"
"; - lastSec=e.sec - } - var dr=daysRem(e.due); - var rowCl=e.s==="done"?"tr-green":dr<=0&&e.s!=="done"?"tr-red":dr<=14?"tr-amber":""; - var cl=stc[e.s]||"w"; - var drText=dr<=0&&e.s!=="done"?"Просрочено на "+Math.abs(dr)+" дн.":e.s==="done"?"Готово":dr===999?"\u2014":dr+" дн."; - var hasSub=e.sub&&e.sub.length>0; - h+=""; - h+=""+e.id+""; - h+="
"+esc(e.t)+"
"+esc(e.dname)+"
"; - h+=""+esc(nl2c(e.r))+""; - h+=""+e.due+" ("+drText+")"; - if(hasSub){h+=""} - else{ - h+=""+stn[e.s]+""; - h+="" - } - h+=""; - if(hasSub){ - for(var si=0;si"+e.id+"."+esc(e.sub[si].l)+""; - h+=""+esc(e.sub[si].t)+""; - h+=""+esc(sr)+""; - h+=""+e.due+""; - h+=""+stn[ss]+""; - h+="" - } - } - } - if(!h)h="

Нет мероприятий

"; - document.getElementById("ev_content").innerHTML=""+h+"
NМероприятиеОтветственныеСрокСтатус
" -} - -function togSub(id){ - var el=document.getElementById("sub_"+id); - if(!el)return; - var arr=document.getElementById("arr_"+id); - if(el.style.display==="none"){ - el.style.display="block"; - if(arr)arr.innerHTML="▼" - }else{ - el.style.display="none"; - if(arr)arr.innerHTML="▸" - } -} -function chkSub(id,idx,val){ - var key="ss_"+id; - var ss=localStorage.getItem(key); - var arr=[]; - if(ss){try{arr=JSON.parse(ss)}catch(e){}} - arr[idx]=val?true:false; - try{localStorage.setItem(key,JSON.stringify(arr))}catch(e){} - renderEv() -} - -function openEv(id,subIdx){ - curSub=subIdx!==undefined?subIdx:null; - var e=null; - for(var i=0;i"; - h+="
Ответственный: "+esc(nl2c(e.r))+"
"; - h+="
Филиал: "+brs[e.b]+" | Срок: "+e.due; - if(e.done&&e.done!=="\u2014")h+=" | Исполнено: "+e.done; - h+="
"; - h+="
Статус:
"; - if(e.h&&e.h.length){ - h+="
История:
    "; - for(var hi=0;hi"+esc(e.h[hi])+""} - h+="
" - } - h+="
AI-анализ: "+esc(e.ai||"\u2014")+"
"; - h+="
Отчётность:
"; - h+="
"; - h+="Количество: "; - var now=new Date(); - var curMonth=now.getMonth(); - h+="Месяц:
"; - h+="
"; - h+="
Файлы:"; - if(cu&&cu.bg===0){ - for(var bi=0;bi
"; - for(var fi=0;fi("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")СкачатьУдалить" - } - }catch(ex){} - } - } - }else{ - var bk=fk+"_b"+(cu?cu.bg:0); - var fd=localStorage.getItem(bk); - if(fd){ - try{ - var fa=JSON.parse(fd); - for(var fi=0;fi("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")СкачатьУдалить" - } - }catch(ex){} - } - } - h+="
"; - h+=""; - if(subIdx===undefined&&e.sub&&e.sub.length>0){ - h+="
Подпункты:"; - var ss=localStorage.getItem("ss_"+e.id); - for(var si=0;si "+esc(e.sub[si].l)+") "+esc(e.sub[si].t)+"
" - } - h+="" - } - h+="
"; - h+="
"; - h+=""; - showModal(h) -} - -function showModal(html){ - var mb=document.getElementById("modal_body"); - var m=document.getElementById("modal"); - if(!mb||!m)return; - mb.innerHTML=html; - m.style.display="flex" -} -function closeModal(){ - document.getElementById("modal").style.display="none" -} - -function saveEvModal(id){ - var sel=document.getElementById("evs_"+id); - var inq=document.getElementById("evq_"+id); - var inn=document.getElementById("evn_"+id); - for(var i=0;i3145728){alert("\u0424\u0430\u0439\u043B \u0431\u043E\u043B\u044C\u0448\u0435 3MB");return} - var fr=new FileReader(); - var subKey=curSub!==null?"_s"+curSub:""; - var brKey="_b"+(cu?cu.bg:0); - fr.onload=function(){ - var key="sf_"+id+subKey+brKey; - var arr=[]; - var ex=localStorage.getItem(key); - if(ex){try{arr=JSON.parse(ex)}catch(e){}} - var d=new Date(); - arr.push({n:f.name,s:f.size,d:d.getDate()+"."+String(d.getMonth()+1).padStart(2,"0")+"."+d.getFullYear(),u:cu?cu.n:"",data:fr.result}); - try{localStorage.setItem(key,JSON.stringify(arr))}catch(e){alert("\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F")} - openEv(id,curSub!==null?curSub:undefined) - }; - fr.readAsDataURL(f) -} -function dlFile(id,idx){ - var key="sf_"+id+(curSub!==null?"_s"+curSub:"")+"_b"+(cu?cu.bg:0); - var ex=localStorage.getItem(key); - if(!ex)return; - try{ - var arr=JSON.parse(ex); - var f=arr[idx]; - if(!f||!f.data)return; - var a=document.createElement("a"); - a.href=f.data; - a.download=f.n; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a) - }catch(e){} -} -function delFile(id,idx){ - if(!confirm("\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B?"))return; - var key="sf_"+id+(curSub!==null?"_s"+curSub:"")+"_b"+(cu?cu.bg:0); - var ex=localStorage.getItem(key); - if(!ex)return; - try{ - var arr=JSON.parse(ex); - arr.splice(idx,1); - if(arr.length){localStorage.setItem(key,JSON.stringify(arr))} - else{localStorage.removeItem(key)} - openEv(id,curSub!==null?curSub:undefined) - }catch(e){} -} - -function saveBackup(){ - saveEv(); - var blob=new Blob([JSON.stringify(evs,null,2)],{type:"application/json"}); - var a=document.createElement("a"); - a.href=URL.createObjectURL(blob); - a.download="backup_"+new Date().toISOString().slice(0,10)+".json"; - a.click() -} -function loadBackup(inp){ - if(!inp.files||!inp.files[0])return; - var fr=new FileReader(); - fr.onload=function(){ - try{ - var d=JSON.parse(fr.result); - if(!d||!d.length){alert("\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442");return} - var out=[]; - for(var i=0;i"; - html+="
\u0418\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u043E
"+done+"
"+Math.round(done/total*100)+"%
"; - html+="
\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E
"+late+"
"; - html+="
В процессе
"+warn+"
"; - document.getElementById("an_stats").innerHTML=html; - - var problem=[]; - for(var i=0;i"+esc(pt[i].t)+""+brs[pt[i].b]+""+stn[pt[i].s]+""+(pt[i].dr<=0?"\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E":pt[i].dr+" \u0434\u043D.")+"" - } - ph+=""; - document.getElementById("an_top").innerHTML=ph - }else{ - document.getElementById("an_top").innerHTML="

\u041F\u0440\u043E\u0431\u043B\u0435\u043C \u043D\u0435\u0442

" - } -} - -function getFilteredEvs(){ - var period=document.getElementById("rp_period").value; - var statusF=document.getElementById("rp_status").value; - var year=parseInt(document.getElementById("rp_year").value,10)||2026; - var month=parseInt(document.getElementById("rp_month").value,10)||0; - var months=[]; - if(period==="month"){months=[month]} - else if(period==="q1"){months=[0,1,2]} - else if(period==="q2"){months=[3,4,5]} - else if(period==="q3"){months=[6,7,8]} - else if(period==="q4"){months=[9,10,11]} - else if(period==="h1"){months=[0,1,2,3,4,5]} - else if(period==="h2"){months=[6,7,8,9,10,11]} - else if(period==="year"){months=[0,1,2,3,4,5,6,7,8,9,10,11]} - var r=[]; - for(var i=0;i

План производственной безопасности

QAZAQtelecom HSE за "+month+"."+year+"


"; - for(var i=0;i=0?"_s"+si:""; - for(var bk=0;bk"+esc(f.n)+" ("+Math.round((f.s||0)/1024)+" KB"+", "+esc(f.u||"")+")" - }}catch(ex){} - } - } - if(fhtml)fhtml="
"+fhtml+"
"; - hh+="
" - } - hh+="
NМероприятиеСрокСтатусКол-воПримечание / Файлы
"+e.id+""+esc(e.t)+""+e.due+""+stn[e.s]+""+(e.q||"")+""+notes+fhtml+"


Отчёт сформирован: "+new Date().toLocaleDateString("ru-RU")+"

"; - var blob=new Blob([hh],{type:"text/html"}); - var a=document.createElement("a"); - a.href=URL.createObjectURL(blob); - a.download="report_pb_"+year+"_"+month+".html"; - a.click() -} -function dlWord(){ - var fl=getFilteredEvs(); - var month=parseInt(document.getElementById("rp_month").value,10)+1; - var year=document.getElementById("rp_year").value; - var hh="Отчёт План ПБ "+month+"."+year+"

План производственной безопасности

AO «Казахтелеком» за "+month+"."+year+"


"; - for(var i=0;i" - } - hh+="
NМероприятиеФилиалСрокСтатусПрогрессКол-воПримечание
"+esc(e.t)+""+brs[e.b]+""+e.due+""+stn[e.s]+""+(e.p||0)+"%"+(e.q||"")+""+esc(e.n||"")+"


Отчёт сформирован: "+new Date().toLocaleDateString("ru-RU")+"

"; - var blob=new Blob([hh],{type:"application/msword"}); - var a=document.createElement("a"); - a.href=URL.createObjectURL(blob); - a.download="report_pb_"+year+"_"+month+".doc"; - a.click() -} -function dlPdf(){ - var fl=getFilteredEvs(); - var month=parseInt(document.getElementById("rp_month").value,10)+1; - var year=document.getElementById("rp_year").value; - var hh="Отчёт План ПБ "+month+"."+year+"

План производственной безопасности

AO «Казахтелеком» за "+month+"."+year+"


"; - for(var i=0;i" - } - hh+="
NМероприятиеФилиалСрокСтатусПрогрессКол-воПримечание
"+esc(e.t)+""+brs[e.b]+""+e.due+""+stn[e.s]+""+(e.p||0)+"%"+(e.q||"")+""+esc(e.n||"")+"


Отчёт сформирован: "+new Date().toLocaleDateString("ru-RU")+"