diff --git a/mockup.html b/mockup.html index 92af00d..3055481 100644 --- a/mockup.html +++ b/mockup.html @@ -1415,6 +1415,17 @@ body{font-family:var(--font-ui);background:var(--surf);color:var(--ink);line-hei + + + @@ -5891,59 +5902,63 @@ function _rcTransferToElena(intent) { } } -// Показывает поле ввода в chatwrap без picker'а (для продолжения разговора после deadline-перехода) +// Показывает постоянный чат-бар внизу экрана Елены function _elenaShowInput() { - var wrap = document.querySelector('.chatwrap') || document.getElementById('el-step1'); - if (!wrap) return; - var old = document.getElementById('el-continue-input'); - if (old) { var oi = old.querySelector('input'); if (oi) { oi.focus(); } return; } - var div = document.createElement('div'); - div.id = 'el-continue-input'; - div.className = 'elena-dialog-wrap'; - div.style.cssText = 'margin-top:12px;margin-bottom:80px'; - div.innerHTML = '
' - + '' - + '' - + '' - + '
'; - wrap.appendChild(div); - div.scrollIntoView({behavior:'smooth'}); - setTimeout(function(){ var i = document.getElementById('intake-custom-cont'); if (i) i.focus(); }, 300); + var bar = document.getElementById('el-chat-bar'); + if (bar) { + bar.style.display = ''; + setTimeout(function(){ + var inp = document.getElementById('el-chat-inp'); + if (inp) inp.focus(); + }, 200); + } } -function _elenaContinueSend() { - var inp = document.getElementById('intake-custom-cont'); +// Отправка из чат-бара +function _elChatSend() { + var inp = document.getElementById('el-chat-inp'); if (!inp) return; var txt = inp.value.trim(); if (!txt) return; inp.value = ''; - var wrap = document.querySelector('.chatwrap') || document.getElementById('el-step1'); + + var wrap = document.querySelector('.chatwrap'); if (!wrap) return; + // Пузырь пользователя var uDiv = document.createElement('div'); uDiv.className = 'msg msg-user'; - uDiv.innerHTML = '
' + txt.replace(/'; - var cont = document.getElementById('el-continue-input'); - if (cont) wrap.insertBefore(uDiv, cont); else wrap.appendChild(uDiv); - if (cont) cont.remove(); + uDiv.innerHTML = '
' + txt.replace(/'; + wrap.appendChild(uDiv); + wrap.scrollTop = wrap.scrollHeight; + // Елена отвечает - _hcAddTyping(); - _elenaApi(txt, 'create', function(apiReply, apiActions) { - _hcRemoveTyping(); - var reply = apiReply || 'Уточните, пожалуйста, детали документа.'; + var tDiv = document.createElement('div'); + tDiv.className = 'msg'; tDiv.id = 'el-chat-typing'; + tDiv.innerHTML = '
' + + '
Елена
' + + '
'; + wrap.appendChild(tDiv); + wrap.scrollTop = wrap.scrollHeight; + + _elenaApi(txt, 'question', function(apiReply, apiActions) { + var t = document.getElementById('el-chat-typing'); if (t) t.remove(); + var reply = apiReply || 'Уточните, пожалуйста.'; _chatHistory.push({role:'user', content: txt}); _chatHistory.push({role:'assistant', content: reply}); + _saveHistory(); + var eDiv = document.createElement('div'); eDiv.className = 'msg'; - eDiv.innerHTML = '
' - + '
Елена
' + _rcEscape(reply) + '
'; + eDiv.innerHTML = '
' + + '
Елена
' + _rcEscape(reply) + '
'; wrap.appendChild(eDiv); if (apiActions && apiActions.length) _renderElenaActions(apiActions, wrap); wrap.scrollTop = wrap.scrollHeight; - _elenaShowInput(); }); } +// _elenaContinueSend → заменён на _elChatSend через постоянный чат-бар + function _getElenaCtxReply(intent, dl) { var name = dl.title || 'срок'; if (intent === 'create') {