ваше сообщение коммита

This commit is contained in:
2025-08-01 16:33:10 +03:00
parent 3ee29f16bd
commit e30d672c52
69 changed files with 690 additions and 2130 deletions

View File

@@ -93,24 +93,24 @@ function connectWebSocket() {
const wsProtocol = window.location.protocol === 'https:' ? 'wss' : 'ws';
ws = new WebSocket(`${wsProtocol}://${window.location.host}/ws`);
ws.onopen = () => {
console.log('[CRM] WebSocket соединение установлено');
// console.log('[CRM] WebSocket соединение установлено');
};
ws.onmessage = (event) => {
try {
const msg = JSON.parse(event.data);
if (msg.type === 'contacts-updated') {
console.log('[CRM] Получено событие contacts-updated, обновляем контакты');
// console.log('[CRM] Получено событие contacts-updated, обновляем контакты');
loadContacts();
}
} catch (e) {
console.error('[CRM] Ошибка обработки сообщения WebSocket:', e);
// console.error('[CRM] Ошибка обработки сообщения WebSocket:', e);
}
};
ws.onclose = () => {
console.log('[CRM] WebSocket соединение закрыто');
// console.log('[CRM] WebSocket соединение закрыто');
};
ws.onerror = (e) => {
console.error('[CRM] WebSocket ошибка:', e);
// console.error('[CRM] WebSocket ошибка:', e);
};
}
@@ -136,7 +136,7 @@ const loadDLEs = async () => {
selectedDleIndex.value = 0;
}
} catch (error) {
console.error('Ошибка при загрузке списка DLE:', error);
// console.error('Ошибка при загрузке списка DLE:', error);
} finally {
isLoading.value = false;
}
@@ -144,7 +144,7 @@ const loadDLEs = async () => {
// Обработчик события изменения авторизации
const handleAuthEvent = (eventData) => {
console.log('[CrmView] Получено событие изменения авторизации:', eventData);
// console.log('[CrmView] Получено событие изменения авторизации:', eventData);
if (eventData.isAuthenticated) {
loadDLEs();
}
@@ -154,7 +154,7 @@ const handleAuthEvent = (eventData) => {
let unsubscribe = null;
onMounted(() => {
console.log('[CrmView] Компонент загружен');
// console.log('[CrmView] Компонент загружен');
// Если пользователь авторизован, загружаем данные
if (auth.isAuthenticated.value) {

View File

@@ -52,7 +52,7 @@
import BaseLayout from '../components/BaseLayout.vue';
import ChatInterface from '../components/ChatInterface.vue';
console.log('HomeView.vue: Using BaseLayout');
// console.log('HomeView.vue: Using BaseLayout');
// Определяем props, переданные из App.vue через RouterView
const props = defineProps({
@@ -99,7 +99,7 @@
let unsubscribe = null;
onMounted(() => {
console.log('[HomeView] Компонент загружен (обновленная версия)');
// console.log('[HomeView] Компонент загружен (обновленная версия)');
// Подписка на события авторизации
unsubscribe = eventBus.on('auth-state-changed', handleAuthEvent);
@@ -118,7 +118,7 @@
// Функция обновления сообщений после авторизации
const handleAuthEvent = async (eventData) => {
console.log('[HomeView] Получено событие изменения авторизации:', eventData);
// console.log('[HomeView] Получено событие изменения авторизации:', eventData);
if (eventData.isAuthenticated) {
// Сначала связываем гостевые сообщения, если есть
await linkGuestMessagesAfterAuth();

View File

@@ -58,7 +58,7 @@ async function loadContact() {
error.value = 'Контакт не найден';
}
} catch (e) {
console.error('Ошибка загрузки контакта:', e);
// console.error('Ошибка загрузки контакта:', e);
contact.value = null;
error.value = 'Контакт не найден';
} finally {
@@ -72,7 +72,7 @@ async function deleteContact() {
error.value = '';
try {
const result = await contactsService.deleteContact(contact.value.id);
console.log('Результат удаления:', result);
// console.log('Результат удаления:', result);
// Если удаление успешно или пользователь уже удален
if (result.success || result.message === 'Пользователь уже удален') {
@@ -81,7 +81,7 @@ async function deleteContact() {
error.value = 'Ошибка при удалении контакта';
}
} catch (e) {
console.error('Ошибка при удалении:', e);
// console.error('Ошибка при удалении:', e);
error.value = 'Ошибка при удалении контакта';
} finally {
isDeleting.value = false;

View File

@@ -470,9 +470,9 @@ async function handleSendMessage({ message, attachments }) {
}
async function handleAiReply(selectedMessages = []) {
console.log('[AI-ASSISTANT] Кнопка нажата, messages:', messages.value);
// console.log('[AI-ASSISTANT] Кнопка нажата, messages:', messages.value);
if (isAiLoading.value) {
console.log('[AI-ASSISTANT] Уже идёт генерация, выход');
// console.log('[AI-ASSISTANT] Уже идёт генерация, выход');
return;
}
if (!Array.isArray(selectedMessages) || selectedMessages.length === 0) {
@@ -485,7 +485,7 @@ async function handleAiReply(selectedMessages = []) {
const draftResp = await messagesService.generateAiDraft(conversationId.value, selectedMessages);
if (draftResp && draftResp.success && draftResp.aiMessage) {
chatNewMessage.value = draftResp.aiMessage;
console.log('[AI-ASSISTANT] Черновик сгенерирован:', draftResp.aiMessage);
// console.log('[AI-ASSISTANT] Черновик сгенерирован:', draftResp.aiMessage);
} else {
alert('Не удалось сгенерировать ответ ИИ.');
}
@@ -493,7 +493,7 @@ async function handleAiReply(selectedMessages = []) {
alert('Ошибка генерации ответа ИИ: ' + (e?.message || e));
} finally {
isAiLoading.value = false;
console.log('[AI-ASSISTANT] Генерация завершена');
// console.log('[AI-ASSISTANT] Генерация завершена');
}
}
@@ -536,9 +536,9 @@ async function createTag() {
const descCol = table.columns[1];
// 1. Создаём строку
const newRow = await tablesService.addRow(tableId);
console.log('DEBUG newRow:', newRow);
// console.log('DEBUG newRow:', newRow);
if (!newRow || !newRow.id) {
console.error('Ошибка: не удалось получить id новой строки', newRow);
// console.error('Ошибка: не удалось получить id новой строки', newRow);
alert('Ошибка: не удалось получить id новой строки. См. консоль.');
return;
}
@@ -618,7 +618,7 @@ onMounted(async () => {
// Подписываемся на обновления тегов
unsubscribeFromTags = onTagsUpdate(async () => {
console.log('[ContactDetailsView] Получено обновление тегов, перезагружаем списки тегов');
// console.log('[ContactDetailsView] Получено обновление тегов, перезагружаем списки тегов');
await loadAllTags();
await loadUserTags();
});

File diff suppressed because it is too large Load Diff

View File

@@ -1006,10 +1006,10 @@ const getOkvedLevel = (code) => {
// Функция для загрузки ОКВЭД кодов определенного уровня
const fetchOkvedCodes = async (level, parentCode, optionsRef, loadingRef) => {
console.log(`🔍 fetchOkvedCodes вызвана: level=${level}, parentCode=${parentCode || 'root'}`);
// console.log(`🔍 fetchOkvedCodes вызвана: level=${level}, parentCode=${parentCode || 'root'}`);
if (!optionsRef || !loadingRef) {
console.error('[DleDeployForm] fetchOkvedCodes requires optionsRef and loadingRef');
// console.error('[DleDeployForm] fetchOkvedCodes requires optionsRef and loadingRef');
return;
}
@@ -1017,8 +1017,8 @@ const fetchOkvedCodes = async (level, parentCode, optionsRef, loadingRef) => {
optionsRef.value = [];
try {
console.log(`[DleDeployForm] Загрузка ОКВЭД уровень ${level}, родитель: ${parentCode || 'root'}`);
console.log(`[DleDeployForm] Доступно ОКВЭД кодов: ${russianClassifiers.okved?.length || 0}`);
// console.log(`[DleDeployForm] Загрузка ОКВЭД уровень ${level}, родитель: ${parentCode || 'root'}`);
// console.log(`[DleDeployForm] Доступно ОКВЭД кодов: ${russianClassifiers.okved?.length || 0}`);
// Фильтруем коды из уже загруженных данных
let filteredCodes = [];
@@ -1042,11 +1042,11 @@ const fetchOkvedCodes = async (level, parentCode, optionsRef, loadingRef) => {
text: `${code.code} - ${code.title}`
}));
console.log(`[DleDeployForm] Загружено ОКВЭД кодов уровня ${level}: ${optionsRef.value.length}`);
console.log(`[DleDeployForm] Первые 3 кода:`, optionsRef.value.slice(0, 3));
// console.log(`[DleDeployForm] Загружено ОКВЭД кодов уровня ${level}: ${optionsRef.value.length}`);
// console.log(`[DleDeployForm] Первые 3 кода:`, optionsRef.value.slice(0, 3));
} catch (error) {
console.error('[DleDeployForm] Ошибка при загрузке ОКВЭД кодов:', error);
// console.error('[DleDeployForm] Ошибка при загрузке ОКВЭД кодов:', error);
} finally {
loadingRef.value = false;
}
@@ -1083,7 +1083,7 @@ const updateCurrentOkvedSelection = () => {
// Watchers для 2-уровневой загрузки ОКВЭД
watch(selectedOkvedLevel1, (newVal) => {
console.log('[DleDeployForm] selectedOkvedLevel1 changed to:', newVal);
// console.log('[DleDeployForm] selectedOkvedLevel1 changed to:', newVal);
selectedOkvedLevel2.value = '';
okvedLevel2Options.value = [];
@@ -1094,7 +1094,7 @@ watch(selectedOkvedLevel1, (newVal) => {
});
watch(selectedOkvedLevel2, () => {
console.log('[DleDeployForm] selectedOkvedLevel2 changed to:', selectedOkvedLevel2.value);
// console.log('[DleDeployForm] selectedOkvedLevel2 changed to:', selectedOkvedLevel2.value);
updateCurrentOkvedSelection();
});
@@ -1297,9 +1297,9 @@ const saveFormData = () => {
showUnifiedKey: showUnifiedKey.value
};
localStorage.setItem(STORAGE_KEY, JSON.stringify(dataToSave));
console.log('[DleDeployForm] Данные формы сохранены в localStorage');
// console.log('[DleDeployForm] Данные формы сохранены в localStorage');
} catch (error) {
console.error('[DleDeployForm] Ошибка сохранения данных:', error);
// console.error('[DleDeployForm] Ошибка сохранения данных:', error);
}
}, 500); // Задержка 500мс
};
@@ -1362,11 +1362,11 @@ const loadFormData = () => {
Object.assign(keyValidation, parsedData.keyValidation || {});
showUnifiedKey.value = parsedData.showUnifiedKey || false;
console.log('[DleDeployForm] Данные формы восстановлены из localStorage');
// console.log('[DleDeployForm] Данные формы восстановлены из localStorage');
return true;
}
} catch (error) {
console.error('[DleDeployForm] Ошибка восстановления данных:', error);
// console.error('[DleDeployForm] Ошибка восстановления данных:', error);
}
return false;
};
@@ -1375,9 +1375,9 @@ const loadFormData = () => {
const clearStoredData = () => {
try {
localStorage.removeItem(STORAGE_KEY);
console.log('[DleDeployForm] Данные формы удалены из localStorage');
// console.log('[DleDeployForm] Данные формы удалены из localStorage');
} catch (error) {
console.error('[DleDeployForm] Ошибка очистки localStorage:', error);
// console.error('[DleDeployForm] Ошибка очистки localStorage:', error);
}
};
@@ -1463,7 +1463,7 @@ const searchByPostalCode = async () => {
params.append('countrycodes', 'RU');
}
console.log(`[SearchByPostalCode] Querying Nominatim: ${params.toString()}`);
// console.log(`[SearchByPostalCode] Querying Nominatim: ${params.toString()}`);
const response = await axios.get(`/geocoding/nominatim-search?${params.toString()}`);
if (response.data && Array.isArray(response.data) && response.data.length > 0) {
@@ -1483,18 +1483,18 @@ const searchByPostalCode = async () => {
rawData: result.address // Сохраняем все сырые данные для анализа
}));
console.log(`[SearchByPostalCode] Found ${searchResults.value.length} results`);
// console.log(`[SearchByPostalCode] Found ${searchResults.value.length} results`);
// Автоматически заполняем поля первым результатом
if (searchResults.value.length > 0) {
fillFromSearchResult(searchResults.value[0]);
console.log('[SearchByPostalCode] Auto-filled with first result');
// console.log('[SearchByPostalCode] Auto-filled with first result');
}
} else {
console.log('[SearchByPostalCode] No results found');
// console.log('[SearchByPostalCode] No results found');
}
} catch (error) {
console.error('Ошибка при поиске по индексу:', error);
// console.error('Ошибка при поиске по индексу:', error);
} finally {
isSearchingAddress.value = false;
}
@@ -1509,7 +1509,7 @@ const findOktmoByAddress = (result) => {
return '';
}
console.log(`[FindOktmo] Searching OKTMO for region: "${region}"`);
// console.log(`[FindOktmo] Searching OKTMO for region: "${region}"`);
// Ищем совпадение по названию региона
const foundOktmo = russianClassifiers.oktmo.find(oktmo => {
@@ -1523,11 +1523,11 @@ const findOktmoByAddress = (result) => {
});
if (foundOktmo) {
console.log(`[FindOktmo] Found OKTMO: ${foundOktmo.code} - ${foundOktmo.title}`);
// console.log(`[FindOktmo] Found OKTMO: ${foundOktmo.code} - ${foundOktmo.title}`);
return foundOktmo.code;
}
console.log(`[FindOktmo] No OKTMO found for region: "${region}"`);
// console.log(`[FindOktmo] No OKTMO found for region: "${region}"`);
return '';
};
@@ -1549,13 +1549,13 @@ const fillFromSearchResult = (result) => {
if (autoOktmo) {
dleSettings.selectedOktmo = autoOktmo;
autoSelectedOktmo.value = true; // Помечаем как автовыбранный
console.log(`[FillFromSearchResult] Auto-selected OKTMO: ${autoOktmo}`);
// console.log(`[FillFromSearchResult] Auto-selected OKTMO: ${autoOktmo}`);
} else {
autoSelectedOktmo.value = false;
}
console.log('[FillFromSearchResult] Filled address data:', dleSettings.addressData);
console.log('[FillFromSearchResult] Saved API result:', result);
// console.log('[FillFromSearchResult] Filled address data:', dleSettings.addressData);
// console.log('[FillFromSearchResult] Saved API result:', result);
};
// Проверка адреса (повторный запрос для валидации)

View File

@@ -99,15 +99,15 @@ function validatePrivateKey(key) {
if (!key) return false;
const trimmed = key.trim();
if (!trimmed.startsWith('-----BEGIN OPENSSH PRIVATE KEY-----')) {
console.error('Ключ не начинается с -----BEGIN OPENSSH PRIVATE KEY-----');
// console.error('Ключ не начинается с -----BEGIN OPENSSH PRIVATE KEY-----');
return false;
}
if (!trimmed.endsWith('-----END OPENSSH PRIVATE KEY-----')) {
console.error('Ключ не заканчивается на -----END OPENSSH PRIVATE KEY-----');
// console.error('Ключ не заканчивается на -----END OPENSSH PRIVATE KEY-----');
return false;
}
if (trimmed.split('\n').length < 3) {
console.error('Ключ слишком короткий или не содержит переносов строк');
// console.error('Ключ слишком короткий или не содержит переносов строк');
return false;
}
return true;
@@ -124,15 +124,15 @@ const handleSubmit = async () => {
}
// Логирование ключа (только для отладки!)
console.log('SSH ключ (начало):', form.sshKey.slice(0, 40));
console.log('SSH ключ (конец):', form.sshKey.slice(-40));
console.log('Длина ключа:', form.sshKey.length);
// console.log('SSH ключ (начало):', form.sshKey.slice(0, 40));
// console.log('SSH ключ (конец):', form.sshKey.slice(-40));
// console.log('Длина ключа:', form.sshKey.length);
// Логирование отправляемых данных (без самого ключа)
console.log('Данные для агента:', {
...form,
sshKey: form.sshKey ? `[скрыто, длина: ${form.sshKey.length}]` : 'нет ключа'
});
// console.log('Данные для агента:', {
// ...form,
// sshKey: form.sshKey ? `[скрыто, длина: ${form.sshKey.length}]` : 'нет ключа'
// });
isLoading.value = true;
addLog('info', 'Запуск публикации...');
@@ -228,7 +228,7 @@ const checkConnectionStatus = async () => {
? `Подключено к ${status.domain}`
: 'Не подключено';
} catch (error) {
console.error('Ошибка проверки статуса:', error);
// console.error('Ошибка проверки статуса:', error);
}
};

View File

@@ -467,7 +467,7 @@ async function addModule() {
alert('✅ Модуль успешно добавлен!');
} catch (error) {
console.error('Ошибка при добавлении модуля:', error);
// console.error('Ошибка при добавлении модуля:', error);
alert('❌ Ошибка при добавлении модуля: ' + error.message);
} finally {
isAdding.value = false;
@@ -486,7 +486,7 @@ async function removeModule(moduleId) {
alert('✅ Модуль успешно удален!');
} catch (error) {
console.error('Ошибка при удалении модуля:', error);
// console.error('Ошибка при удалении модуля:', error);
alert('❌ Ошибка при удалении модуля: ' + error.message);
}
}
@@ -495,7 +495,7 @@ async function removeModule(moduleId) {
async function installAvailableModule(availableModule) {
// Здесь должна быть логика установки модуля
// Например, деплой модуля и добавление в DLE
console.log('Установка модуля:', availableModule);
// console.log('Установка модуля:', availableModule);
alert(`Модуль "${availableModule.name}" будет установлен`);
}

View File

@@ -454,7 +454,7 @@ async function createMultisigOperation() {
alert('✅ Операция мультиподписи успешно создана!');
} catch (error) {
console.error('Ошибка при создании операции мультиподписи:', error);
// console.error('Ошибка при создании операции мультиподписи:', error);
alert('❌ Ошибка при создании операции: ' + error.message);
} finally {
isCreating.value = false;
@@ -471,7 +471,7 @@ async function signOperation(operationId, support) {
alert('✅ Ваша подпись учтена!');
} catch (error) {
console.error('Ошибка при подписании операции:', error);
// console.error('Ошибка при подписании операции:', error);
alert('❌ Ошибка при подписании: ' + error.message);
}
}
@@ -486,7 +486,7 @@ async function executeOperation(operationId) {
alert('✅ Операция успешно исполнена!');
} catch (error) {
console.error('Ошибка при исполнении операции:', error);
// console.error('Ошибка при исполнении операции:', error);
alert('❌ Ошибка при исполнении операции: ' + error.message);
}
}
@@ -498,7 +498,7 @@ async function loadOperations() {
// Пока используем заглушку
operations.value = [];
} catch (error) {
console.error('Ошибка при загрузке операций:', error);
// console.error('Ошибка при загрузке операций:', error);
}
}
@@ -520,7 +520,7 @@ function resetForm() {
function viewOperationDetails(operationId) {
// Открыть модальное окно с деталями операции
console.log('Просмотр деталей операции:', operationId);
// console.log('Просмотр деталей операции:', operationId);
}
onMounted(() => {

View File

@@ -497,7 +497,7 @@ async function createProposal() {
alert('✅ Предложение успешно создано!');
} catch (error) {
console.error('Ошибка при создании предложения:', error);
// console.error('Ошибка при создании предложения:', error);
alert('❌ Ошибка при создании предложения: ' + error.message);
} finally {
isCreating.value = false;
@@ -555,7 +555,7 @@ async function voteForProposal(proposalId, support) {
alert('✅ Ваш голос учтен!');
} catch (error) {
console.error('Ошибка при голосовании:', error);
// console.error('Ошибка при голосовании:', error);
alert('❌ Ошибка при голосовании: ' + error.message);
}
}
@@ -570,7 +570,7 @@ async function executeProposal(proposalId) {
alert('✅ Предложение успешно исполнено!');
} catch (error) {
console.error('Ошибка при исполнении предложения:', error);
// console.error('Ошибка при исполнении предложения:', error);
alert('❌ Ошибка при исполнении предложения: ' + error.message);
}
}
@@ -582,7 +582,7 @@ async function loadProposals() {
// Пока используем заглушку
proposals.value = [];
} catch (error) {
console.error('Ошибка при загрузке предложений:', error);
// console.error('Ошибка при загрузке предложений:', error);
}
}
@@ -603,7 +603,7 @@ function resetForm() {
function viewProposalDetails(proposalId) {
// Открыть модальное окно с деталями предложения
console.log('Просмотр деталей предложения:', proposalId);
// console.log('Просмотр деталей предложения:', proposalId);
}
onMounted(() => {

View File

@@ -200,7 +200,7 @@ const createProposal = async () => {
isCreatingProposal.value = true;
// Здесь будет создание предложения в смарт-контракте
console.log('Создание предложения:', newProposal.value);
// console.log('Создание предложения:', newProposal.value);
// Временная логика
const proposal = {
@@ -225,7 +225,7 @@ const createProposal = async () => {
};
} catch (error) {
console.error('Ошибка создания предложения:', error);
// console.error('Ошибка создания предложения:', error);
} finally {
isCreatingProposal.value = false;
}
@@ -238,7 +238,7 @@ const signProposal = async (proposalId) => {
isSigning.value = true;
// Здесь будет подписание предложения в смарт-контракте
console.log('Подписание предложения:', proposalId);
// console.log('Подписание предложения:', proposalId);
const proposal = proposals.value.find(p => p.id === proposalId);
if (proposal) {
@@ -247,7 +247,7 @@ const signProposal = async (proposalId) => {
}
} catch (error) {
console.error('Ошибка подписания предложения:', error);
// console.error('Ошибка подписания предложения:', error);
} finally {
isSigning.value = false;
}
@@ -260,7 +260,7 @@ const executeProposal = async (proposalId) => {
isExecuting.value = true;
// Здесь будет выполнение предложения в смарт-контракте
console.log('Выполнение предложения:', proposalId);
// console.log('Выполнение предложения:', proposalId);
const proposal = proposals.value.find(p => p.id === proposalId);
if (proposal) {
@@ -268,7 +268,7 @@ const executeProposal = async (proposalId) => {
}
} catch (error) {
console.error('Ошибка выполнения предложения:', error);
// console.error('Ошибка выполнения предложения:', error);
} finally {
isExecuting.value = false;
}

View File

@@ -246,7 +246,7 @@ const updateSettings = async () => {
isUpdating.value = true;
// Здесь будет логика обновления настроек в смарт-контракте
console.log('Обновление настроек:', newSettings.value);
// console.log('Обновление настроек:', newSettings.value);
// Временная логика
const change = {
@@ -291,7 +291,7 @@ const updateSettings = async () => {
alert('Настройки успешно обновлены!');
} catch (error) {
console.error('Ошибка обновления настроек:', error);
// console.error('Ошибка обновления настроек:', error);
alert('Ошибка при обновлении настроек');
} finally {
isUpdating.value = false;

View File

@@ -368,7 +368,7 @@ const saveMainSettings = async () => {
isSaving.value = true;
// Здесь будет логика сохранения основных настроек
console.log('Сохранение основных настроек:', mainSettings.value);
// console.log('Сохранение основных настроек:', mainSettings.value);
// Временная логика
await new Promise(resolve => setTimeout(resolve, 1000));
@@ -376,7 +376,7 @@ const saveMainSettings = async () => {
alert('Основные настройки успешно сохранены!');
} catch (error) {
console.error('Ошибка сохранения основных настроек:', error);
// console.error('Ошибка сохранения основных настроек:', error);
alert('Ошибка при сохранении настроек');
} finally {
isSaving.value = false;
@@ -390,7 +390,7 @@ const saveSecuritySettings = async () => {
isSaving.value = true;
// Здесь будет логика сохранения настроек безопасности
console.log('Сохранение настроек безопасности:', securitySettings.value);
// console.log('Сохранение настроек безопасности:', securitySettings.value);
// Временная логика
await new Promise(resolve => setTimeout(resolve, 1000));
@@ -398,7 +398,7 @@ const saveSecuritySettings = async () => {
alert('Настройки безопасности успешно сохранены!');
} catch (error) {
console.error('Ошибка сохранения настроек безопасности:', error);
// console.error('Ошибка сохранения настроек безопасности:', error);
alert('Ошибка при сохранении настроек безопасности');
} finally {
isSaving.value = false;
@@ -412,7 +412,7 @@ const saveNetworkSettings = async () => {
isSaving.value = true;
// Здесь будет логика сохранения настроек сети
console.log('Сохранение настроек сети:', networkSettings.value);
// console.log('Сохранение настроек сети:', networkSettings.value);
// Временная логика
await new Promise(resolve => setTimeout(resolve, 1000));
@@ -420,7 +420,7 @@ const saveNetworkSettings = async () => {
alert('Настройки сети успешно сохранены!');
} catch (error) {
console.error('Ошибка сохранения настроек сети:', error);
// console.error('Ошибка сохранения настроек сети:', error);
alert('Ошибка при сохранении настроек сети');
} finally {
isSaving.value = false;
@@ -463,7 +463,7 @@ const importSettings = (event) => {
alert('Настройки успешно импортированы!');
} catch (error) {
console.error('Ошибка импорта настроек:', error);
// console.error('Ошибка импорта настроек:', error);
alert('Ошибка при импорте настроек');
}
};
@@ -513,7 +513,7 @@ const deleteDLE = () => {
}
// Здесь будет логика удаления DLE
console.log('Удаление DLE...');
// console.log('Удаление DLE...');
alert('DLE будет удален. Это действие может занять некоторое время.');
};
</script>

View File

@@ -245,7 +245,7 @@ const transferTokens = async () => {
isTransferring.value = true;
// Здесь будет логика трансфера токенов
console.log('Трансфер токенов:', transferData.value);
// console.log('Трансфер токенов:', transferData.value);
// Временная логика
const amount = parseFloat(transferData.value.amount);
@@ -266,7 +266,7 @@ const transferTokens = async () => {
alert('Токены успешно переведены!');
} catch (error) {
console.error('Ошибка трансфера токенов:', error);
// console.error('Ошибка трансфера токенов:', error);
alert('Ошибка при переводе токенов');
} finally {
isTransferring.value = false;
@@ -280,7 +280,7 @@ const distributeTokens = async () => {
isDistributing.value = true;
// Здесь будет логика распределения токенов
console.log('Распределение токенов:', distributionData.value);
// console.log('Распределение токенов:', distributionData.value);
// Временная логика
const totalAmount = distributionData.value.recipients.reduce((sum, recipient) => {
@@ -303,7 +303,7 @@ const distributeTokens = async () => {
alert('Токены успешно распределены!');
} catch (error) {
console.error('Ошибка распределения токенов:', error);
// console.error('Ошибка распределения токенов:', error);
alert('Ошибка при распределении токенов');
} finally {
isDistributing.value = false;

View File

@@ -380,7 +380,7 @@ const performDeposit = async () => {
isProcessing.value = true;
// Здесь будет логика депозита
console.log('Депозит:', depositData.value);
// console.log('Депозит:', depositData.value);
// Временная логика
const asset = assets.value.find(a => a.id === depositData.value.asset);
@@ -414,7 +414,7 @@ const performDeposit = async () => {
alert('Депозит успешно выполнен!');
} catch (error) {
console.error('Ошибка депозита:', error);
// console.error('Ошибка депозита:', error);
alert('Ошибка при выполнении депозита');
} finally {
isProcessing.value = false;
@@ -428,7 +428,7 @@ const performWithdraw = async () => {
isProcessing.value = true;
// Здесь будет логика вывода
console.log('Вывод:', withdrawData.value);
// console.log('Вывод:', withdrawData.value);
// Временная логика
const asset = assets.value.find(a => a.id === withdrawData.value.asset);
@@ -469,7 +469,7 @@ const performWithdraw = async () => {
alert('Вывод успешно выполнен!');
} catch (error) {
console.error('Ошибка вывода:', error);
// console.error('Ошибка вывода:', error);
alert('Ошибка при выполнении вывода');
} finally {
isProcessing.value = false;