feat: новая функция

This commit is contained in:
2025-10-08 18:01:14 +03:00
parent 2c53bce32a
commit 725e7fd5a2
60 changed files with 5427 additions and 3921 deletions

View File

@@ -8,7 +8,7 @@
# This software is proprietary and confidential.
# For licensing inquiries: info@hb3-accelerator.com
FROM node:20-alpine
FROM node:20-slim
# Добавляем метки для авторских прав
LABEL maintainer="Тарабанов Александр Викторович <info@hb3-accelerator.com>"
@@ -18,8 +18,12 @@ LABEL website="https://hb3-accelerator.com"
WORKDIR /app
# Устанавливаем дополнительные зависимости
RUN apk add --no-cache python3 make g++
# Устанавливаем системные зависимости для компиляции нативных модулей
RUN apt-get update && apt-get install -y \
python3 \
make \
g++ \
&& rm -rf /var/lib/apt/lists/*
# Копируем package.json и yarn.lock для установки зависимостей
COPY package.json yarn.lock ./

View File

@@ -23,8 +23,8 @@ RUN apk add --no-cache curl
# Копируем собранный frontend из первого этапа
COPY --from=frontend-builder /app/dist/ /usr/share/nginx/html/
# Копируем конфигурацию nginx
COPY nginx-simple.conf /etc/nginx/nginx.conf.template
# Копируем конфигурацию nginx (используем dev версию для локальной разработки)
COPY nginx-dev.conf /etc/nginx/nginx.conf.template
# Копируем скрипт запуска
COPY docker-entrypoint.sh /docker-entrypoint.sh

View File

@@ -491,7 +491,12 @@ async function handleAiReply() {
}
} catch (e) {
console.error('Ошибка генерации ответа ИИ:', e);
alert('Ошибка генерации ответа ИИ');
// Используем более дружелюбное уведомление вместо alert
emit('error', {
type: 'ai-generation-error',
message: 'Не удалось сгенерировать ответ ИИ. Попробуйте еще раз.',
details: e.message
});
} finally {
isAiLoading.value = false;
}

View File

@@ -431,7 +431,7 @@ async function handleSendMessage({ message, attachments }) {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert('Пользователь заблокирован. Отправка сообщений невозможна.', 'Ошибка', { type: 'error' });
} else {
alert('Пользователь заблокирован. Отправка сообщений невозможна.');
console.error('Пользователь заблокирован. Отправка сообщений невозможна.');
}
return;
}
@@ -441,7 +441,7 @@ async function handleSendMessage({ message, attachments }) {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert('У пользователя нет ни одного идентификатора (email, telegram, wallet). Сообщение не может быть отправлено.', 'Ошибка', { type: 'warning' });
} else {
alert('У пользователя нет ни одного идентификатора (email, telegram, wallet). Сообщение не может быть отправлено.');
console.error('У пользователя нет ни одного идентификатора (email, telegram, wallet). Сообщение не может быть отправлено.');
}
return;
}
@@ -464,14 +464,14 @@ async function handleSendMessage({ message, attachments }) {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert(resultText, 'Результат рассылки', { type: 'info' });
} else {
alert(resultText);
console.log('Результат рассылки:', resultText);
}
await loadMessages();
} catch (e) {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert('Ошибка отправки: ' + (e?.response?.data?.error || e?.message || e), 'Ошибка', { type: 'error' });
} else {
alert('Ошибка отправки: ' + (e?.response?.data?.error || e?.message || e));
console.error('Ошибка отправки:', e?.response?.data?.error || e?.message || e);
}
}
}