Files
crm.clientright.ru/AI_DRAWER_UI_IMPROVEMENTS.md

12 KiB
Raw Permalink Blame History

AI Drawer - Улучшения интерфейса

📋 Выполненные улучшения

1. Управление размером шрифта

  • Добавлена панель управления с кнопками: Мелкий, Обычный, Крупный, Очень крупный
  • Сохранение настроек в localStorage браузера
  • Динамическое изменение размера шрифта без перезагрузки страницы
  • Визуальная обратная связь - активная кнопка подсвечивается

2. Дружелюбные аватарки ассистента

  • 4 варианта аватарок: 🤖 (робот), 😊 (дружелюбный), 💡 (помощник), 🧠 (умный)
  • Анимированные аватарки с пульсацией и подпрыгиванием
  • Панель управления с круглыми кнопками для смены аватарки
  • Сохранение выбора в localStorage браузера
  • Градиентный фон с тенью для красивого вида

3. Убрано излишнее затемнение

  • Изменен фон с темного (#1a1a1a) на светлый (#f8f9fa)
  • Максимальная читаемость - очень темный текст (#212529) на светлом фоне
  • Увеличен межстрочный интервал (line-height: 1.6) для комфортного чтения
  • Улучшена толщина шрифта (font-weight: 400) для лучшей видимости
  • Цветовое разделение сообщений - пользователь (синий) и ассистент (с синей полоской)

4. Плавающий индикатор загрузки

  • Центрированное позиционирование - появляется в центре экрана
  • Высокий z-index (10000) - всегда поверх других элементов
  • Красивый дизайн с полупрозрачным фоном и тенью
  • Анимированный спиннер для визуальной обратной связи
  • Настраиваемый текст сообщения

5. Улучшенный скролл

  • Стилизованные полосы прокрутки с современным дизайном
  • Автоматическая прокрутка к новым сообщениям
  • Плавная прокрутка с улучшенной производительностью
  • Адаптивная ширина полос прокрутки (8px)

6. Поле ввода сообщений

  • Удобное поле ввода внизу панели с плейсхолдером
  • Кнопка "Отправить" с красивым дизайном и анимациями
  • Поддержка клавиши Enter для быстрой отправки
  • Автоматическая очистка поля после отправки
  • Интеграция с плавающим индикатором загрузки

7. Интеграция с n8n

  • Восстановлена связка с n8n через n8n_proxy.php
  • Передача контекста CRM (модуль, запись, пользователь)
  • Обработка ошибок с fallback сообщениями
  • Логирование запросов для отладки
  • Поддержка сессий для непрерывного диалога

8. Автоматическая инициализация

  • Автоматический запрос при открытии drawer'а
  • Передача контекста CRM в n8n при инициализации
  • Умное формирование сообщения с информацией о текущей записи/модуле
  • Fallback сообщение при ошибках инициализации

9. Умное скрытие кнопки AI

  • Автоматическое скрытие кнопки AI когда drawer открыт
  • Показ кнопки только когда drawer закрыт
  • Улучшенный UX - нет дублирования элементов управления

10. Стриминг сообщений

  • Постепенное появление текста символ за символом
  • Настраиваемая скорость печатания (по умолчанию 25мс)
  • Автоматическая прокрутка во время печатания
  • Эффект живого общения - как будто ассистент реально печатает

11. Индикатор печатания

  • Красивая анимация с тремя точками
  • Текст "печатает..." с курсивом
  • Автоматическое скрытие при появлении ответа
  • Интеграция с аватаркой ассистента

🎨 Дополнительные улучшения

Стили для сообщений чата

  • Разделение сообщений пользователя и ассистента
  • Цветовое кодирование:
    • Сообщения пользователя: синий фон (#e3f2fd) с темно-синим текстом (#1565c0)
    • Сообщения ассистента: светлый фон (#f8f9fa) с темным текстом (#212529) и синей полоской слева
  • Временные метки для каждого сообщения (серый цвет #6c757d)
  • Улучшенная типографика с правильными отступами
  • Автоматический перенос слов для длинных сообщений

Улучшенная структура HTML

  • Панель управления шрифтом в заголовке drawer'а
  • Семантическая разметка для лучшей доступности
  • Готовность к интеграции с существующими системами

📁 Измененные файлы

1. layouts/v7/resources/css/ai-drawer.css

  • Добавлены стили для управления шрифтом
  • Улучшены цвета и контрастность
  • Добавлены стили для плавающего индикатора
  • Улучшены стили скролла

2. layouts/v7/resources/js/ai-drawer.js

  • Добавлены методы управления размером шрифта
  • Реализован плавающий индикатор загрузки
  • Добавлены методы для работы с сообщениями
  • Интеграция с localStorage для сохранения настроек

3. ai_drawer_improvements.js

  • Добавлены демонстрационные функции
  • Интеграция с новыми возможностями
  • Расширенный API для внешнего использования

4. test_ai_drawer_ui_improvements.html (новый)

  • Демонстрационная страница для тестирования
  • Интерактивные кнопки для проверки функций
  • Подробные инструкции по использованию

🚀 Как использовать

Открытие AI Drawer

// Открыть drawer
aiDrawerInstance.open();

// Закрыть drawer
aiDrawerInstance.close();

Управление размером шрифта

// Изменить размер шрифта
aiDrawerInstance.setFontSize('large'); // small, normal, large, extra-large

Управление аватаркой ассистента

// Изменить аватарку ассистента
aiDrawerInstance.setAvatarType('friendly'); // default, friendly, helpful, smart

Плавающий индикатор загрузки

// Показать индикатор
aiDrawerInstance.showLoading('Обрабатываю запрос...');

// Скрыть индикатор
aiDrawerInstance.hideLoading();

Добавление сообщений

// Добавить сообщение пользователя
aiDrawerInstance.addMessage('Привет!', true);

// Добавить сообщение ассистента
aiDrawerInstance.addMessage('Привет! Чем могу помочь?', false);

🔧 Технические детали

CSS классы для размеров шрифта

  • .font-small - 12px
  • .font-normal - 14px (по умолчанию)
  • .font-large - 16px
  • .font-extra-large - 18px

localStorage ключи

  • ai-drawer-font-size - сохраненный размер шрифта
  • ai-drawer-avatar-type - сохраненный тип аватарки ассистента

Z-index значения

  • AI Drawer: 1000
  • Toggle button: 999999
  • Loading overlay: 10000

Цветовая палитра

  • Основной фон: #f8f9fa (светло-серый)
  • Основной текст: #212529 (очень темный)
  • Заголовок: #007bff (синий) с белым текстом
  • Сообщения пользователя: #e3f2fd (светло-синий фон) + #1565c0 (темно-синий текст)
  • Сообщения ассистента: #f8f9fa (светлый фон) + #212529 (темный текст) + #007bff (синяя полоска)
  • Время сообщений: #6c757d (серый)
  • Панель управления: #e9ecef (светло-серый фон) + #495057 (темный текст)

📱 Адаптивность

Все улучшения полностью адаптивны и работают на:

  • Десктопных браузерах
  • Планшетах
  • Мобильных устройствах

🎯 Результат

Интерфейс AI ассистента стал:

  • Более удобным для глаз благодаря светлой теме
  • Настраиваемым с возможностью изменения размера шрифта
  • Информативным с плавающими уведомлениями
  • Функциональным с улучшенным скроллом

Все изменения обратно совместимы и не нарушают существующую функциональность.

🔧 API для стриминга

Методы для стриминга сообщений

// Добавить сообщение со стримингом
window.aiDrawerInstance.addStreamingMessage('Текст сообщения', false, 25); // скорость в мс

// Показать индикатор печатания
window.aiDrawerInstance.showTypingIndicator();

// Скрыть индикатор печатания
window.aiDrawerInstance.hideTypingIndicator();

Демонстрационные функции

// Демонстрация стриминга
window.demonstrateStreaming();

// Демонстрация индикатора печатания
window.demonstrateTypingIndicator();

CSS классы для стриминга

  • .ai-typing-indicator - контейнер индикатора печатания
  • .ai-typing-dots - контейнер для точек
  • .ai-typing-dot - отдельная точка с анимацией
  • .ai-typing-text - текст "печатает..."