fix: Elena context and upload offer logic

This commit is contained in:
WASRUSGEN 2026-05-29 01:06:56 +03:00
parent 9f564889b0
commit a16f18e862

View File

@ -3904,23 +3904,24 @@ function elenaIntent(intent) {
+ '<div class="bubble"><div class="nm">Елена</div>' + replyText + '</div>'; + '<div class="bubble"><div class="nm">Елена</div>' + replyText + '</div>';
wrap.appendChild(mb); wrap.appendChild(mb);
// Через паузу — мягкое предложение загрузить // Предлагаем загрузить только если intent=check И договора ещё нет
setTimeout(function() { var hasContract = ((document.getElementById('el-paste') || {}).value || '').length > 50;
var ob = document.createElement('div'); if (intent === 'check' && !hasContract) {
ob.className = 'msg'; setTimeout(function() {
ob.innerHTML = '<div class="av"><img src="logos/elena-photo.jpg"></div>' var ob = document.createElement('div');
+ '<div class="bubble"><div class="nm">Елена</div>' ob.className = 'msg';
+ 'Есть договор? Загрузите — разберу подробно.' ob.innerHTML = '<div class="av"><img src="logos/elena-photo.jpg"></div>'
+ '<div style="margin-top:10px;display:flex;gap:8px;flex-wrap:wrap">' + '<div class="bubble"><div class="nm">Елена</div>'
+ '<button class="btn btn-p" style="padding:7px 16px;font-size:13px" onclick="' + 'Если у вас есть текст договора — загрузите, разберу детально.'
+ ' document.querySelectorAll(\'.chatwrap .msg\').forEach(function(e){e.style.opacity=\'1\'});' + '<div style="margin-top:10px">'
+ ' var up=document.getElementById(\'el-step-upload\');if(up){up.style.display=\'\';up.scrollIntoView({behavior:\'smooth\'});}' + '<button class="btn btn-p" style="padding:7px 16px;font-size:13px" onclick="'
+ '">📂 Загрузить договор</button>' + ' var up=document.getElementById(\'el-step-upload\');if(up){up.style.display=\'\';up.scrollIntoView({behavior:\'smooth\'});}'
+ '<button class="svc-btn-detail" onclick="this.closest(\'.bubble\').innerHTML+=\'<br>Хорошо — задавайте вопросы, отвечу по нормам ГК/ТК.\'; this.parentNode.remove()">💬 Задам вопрос</button>' + '">📂 Загрузить договор</button>'
+ '</div></div></div>'; + '</div></div></div>';
wrap.appendChild(ob); wrap.appendChild(ob);
ob.scrollIntoView({behavior:'smooth'}); ob.scrollIntoView({behavior:'smooth'});
}, 600); }, 800);
}
}); });
} }
@ -4553,16 +4554,15 @@ function _buildElenaContext() {
} }
} catch(e) {} } catch(e) {}
// Контекст дела из активного дедлайна // Контекст дела — ТОЛЬКО если пользователь реально загрузил договор в этой сессии
if (_rcLastContext && _rcLastContext.dl) { // НЕ берём из demo-дедлайнов/_rcLastContext чтобы не путать Елену чужим контекстом
var dl = _rcLastContext.dl; var contractText = (document.getElementById('el-paste') || {}).value || '';
caseContext = (dl.type || '') + (dl.title ? ': ' + dl.title : ''); if (contractText && contractText.length > 50) {
if (_rcLastContext.caseName) caseContext += ' · ' + _rcLastContext.caseName; // Есть реальный текст договора — используем первые 300 символов как контекст
} caseContext = contractText.slice(0, 300);
// Или из textarea договора } else if (_rcLastContext && _rcLastContext.caseName && _rcLastContext._userLoaded) {
if (!caseContext) { // _userLoaded = флаг что пользователь сам загрузил, не demo
var contractText = (document.getElementById('el-paste') || {}).value || ''; caseContext = _rcLastContext.caseName;
if (contractText) caseContext = contractText.slice(0, 300);
} }
return { return {