diff --git a/docs/mockup_manager.html b/docs/mockup_manager.html index 5f8a567..298a099 100644 --- a/docs/mockup_manager.html +++ b/docs/mockup_manager.html @@ -1900,24 +1900,26 @@ function screenHome() { var idx = all.indexOf(o); if (!o.isLead) { // Блокер в заказе - var hiTask = (_TASKS[3]||[]).filter(function(t){return !t.done && t.order===o.contract && t.hi;}); - var taskLabel = hiTask.length ? hiTask[0].text : o.blocker; + var bi = _blockerInfo(o); urgentHtml += '
' - +'
' + +'
' +'
' - +'
' + +'
' +''+o.client+'' +''+stN[o.stage||1]+'' +'
' - +'
⚠️ '+o.blocker+'
' - +(o.techNote?'
'+o.techNote+'
':'') + +'
' + +''+bi.icon+'' + +''+bi.label+'' + +'
' + +(o.techNote?'
'+o.techNote+'
':'') +'
' +'
' +'' +'' +'' - +'' + +'' +'
' +'
'; } else { @@ -2157,7 +2159,8 @@ function screenHome() { +''+ldN2[o.leadStage]+'' +'
'; } else { - var hasB2 = !!o.blocker; + var hasB2 = !!o.blocker || (o.tech && o.tech.some(function(t){return t.status==='waiting_client'||t.status==='client_chosen';})); + var bi2 = hasB2 ? _blockerInfo(o) : null; allHtml += '
' +'
'+stIc[o.stage||1]+'
' +'
' @@ -2165,7 +2168,7 @@ function screenHome() { +'
'+o.contract+' · '+o.amount.toLocaleString('ru')+' ₽
' +'
' +(hasB2 - ? '⚠ блокер' + ? ''+bi2.icon+' '+bi2.label+'' : ''+stN[o.stage||1]+'') +'
'; } @@ -2188,6 +2191,28 @@ function _homeToggleSched(){ document.getElementById('screen').innerHTML = renderScreen('manager_home'); document.getElementById('nav').innerHTML = navBar(); } +// ── Blocker classifier ──────────────────────────────────────────────────────── +function _blockerInfo(o){ + // Приоритет: реальное состояние техники > текст blocker + if(o.tech && o.tech.length){ + var wc=o.tech.filter(function(t){return t.status==='waiting_client';}).length; + var cc=o.tech.filter(function(t){return t.status==='client_chosen';}).length; + if(cc>0) return {icon:'👆',color:'#059669',bg:'#ECFDF5',bar:'#059669', + label:'Клиент выбрал · подтвердить '+cc+' поз.', + cta:'Принять выбор'}; + if(wc>0) return {icon:'⏳',color:'#D97706',bg:'#FEF3C7',bar:'#D97706', + label:'Ждём клиента · '+wc+' поз.', + cta:'Напомнить клиенту'}; + } + var txt=(o.blocker||'').toLowerCase(); + if(txt.indexOf('технолог')>=0) return {icon:'🔧',color:'#2563EB',bg:'#EFF6FF',bar:'#3B82F6', + label:o.blocker, cta:'Открыть заказ'}; + if(txt.indexOf('техника')>=0) return {icon:'⚙️',color:'#D97706',bg:'#FFFBEB',bar:'#F59E0B', + label:o.blocker, cta:'Разобрать блокер'}; + return {icon:'⚠️',color:'#92400E',bg:'#FFFBEB',bar:'var(--warn)', + label:o.blocker||'Блокер', cta:'Разобрать блокер'}; +} + function _openOrder(i){ window._activeOrder=i; var o=window._managerOrders[i];