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];