From 06f31825f3430d9998b9233f99d700127e404c1d Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 1 Nov 2025 19:32:50 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BD=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/auth.js | 2 +- backend/routes/chat.js | 10 +- backend/services/consentService.js | 3 +- frontend/src/App.vue | 3 + frontend/src/components/ChatInterface.vue | 415 +++++++++++++----- frontend/src/components/Header.vue | 110 ++++- frontend/src/components/Message.vue | 7 +- frontend/src/composables/useFooterDle.js | 160 +++++++ frontend/src/services/wallet.js | 2 +- frontend/src/utils/wallet.js | 2 +- frontend/src/views/HomeView.vue | 2 - .../src/views/settings/DleDeployFormView.vue | 3 + .../src/views/smartcontracts/SettingsView.vue | 204 ++++++++- 13 files changed, 784 insertions(+), 139 deletions(-) create mode 100644 frontend/src/composables/useFooterDle.js diff --git a/backend/routes/auth.js b/backend/routes/auth.js index 2bd1b48..63c021f 100644 --- a/backend/routes/auth.js +++ b/backend/routes/auth.js @@ -194,7 +194,7 @@ router.post('/verify', async (req, res) => { // Добавляем ссылки на документы в resources documents.forEach(doc => { - resources.push(`${origin}/content/published/${doc.id}`); + resources.push(`${origin}/public/page/${doc.id}`); }); } diff --git a/backend/routes/chat.js b/backend/routes/chat.js index 2389f01..6b10ff6 100644 --- a/backend/routes/chat.js +++ b/backend/routes/chat.js @@ -24,14 +24,8 @@ const aiAssistantSettingsService = require('../services/aiAssistantSettingsServi const aiAssistantRulesService = require('../services/aiAssistantRulesService'); const botManager = require('../services/botManager'); const universalMediaProcessor = require('../services/UniversalMediaProcessor'); - -// Маппинг названий документов на типы согласий -const DOCUMENT_CONSENT_MAP = { - 'Политика конфиденциальности': 'privacy_policy', - 'Права субъектов персональных данных и отзыв согласия': 'personal_data', - 'Согласие на использование файлов cookie': 'cookies', - 'Согласие на обработку персональных данных': 'personal_data_processing', -}; +const consentService = require('../services/consentService'); +const { DOCUMENT_CONSENT_MAP } = consentService; // Настройка multer для обработки файлов в памяти const storage = multer.memoryStorage(); diff --git a/backend/services/consentService.js b/backend/services/consentService.js index 33e6f70..5ca7149 100644 --- a/backend/services/consentService.js +++ b/backend/services/consentService.js @@ -16,7 +16,6 @@ const logger = require('../utils/logger'); // Маппинг названий документов на типы согласий const DOCUMENT_CONSENT_MAP = { 'Политика конфиденциальности': 'privacy_policy', - 'Права субъектов персональных данных и отзыв согласия': 'personal_data', 'Согласие на использование файлов cookie': 'cookies', 'Согласие на обработку персональных данных': 'personal_data_processing' }; @@ -119,7 +118,7 @@ async function getConsentDocuments(missingConsents = []) { title: doc.title, summary: doc.summary, consentType: DOCUMENT_CONSENT_MAP[doc.title], - url: `/content/published/${doc.id}` + url: `/public/page/${doc.id}` })); } catch (error) { logger.error('[ConsentService] Ошибка получения документов:', error); diff --git a/frontend/src/App.vue b/frontend/src/App.vue index d700769..d973ee1 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -42,6 +42,7 @@ import { ref, watch, onMounted, computed, onUnmounted } from 'vue'; import { RouterView } from 'vue-router'; import { useAuth, provideAuth } from './composables/useAuth'; + import { provideFooterDle } from './composables/useFooterDle'; import { useTokenBalancesWebSocket } from './composables/useTokenBalancesWebSocket'; import eventBus from './utils/eventBus'; import wsClient from './utils/websocket'; @@ -64,6 +65,8 @@ // --- Логика загрузки баланса токенов через WebSocket --- // Предоставляем auth контекст provideAuth(); + // Предоставляем контекст для выбранного DLE в футере + provideFooterDle(); // Инициализируем WebSocket composable const { diff --git a/frontend/src/components/ChatInterface.vue b/frontend/src/components/ChatInterface.vue index cac70d3..074be56 100644 --- a/frontend/src/components/ChatInterface.vue +++ b/frontend/src/components/ChatInterface.vue @@ -12,7 +12,13 @@