From 1588e879edc4701305b76d5e4542acb99855f163 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 18 Jul 2025 12:10:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B0=D1=88=D0=B5=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/ContactTable.vue | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/frontend/src/components/ContactTable.vue b/frontend/src/components/ContactTable.vue index a23e89f..4487f3f 100644 --- a/frontend/src/components/ContactTable.vue +++ b/frontend/src/components/ContactTable.vue @@ -2,6 +2,7 @@
Рассылка + Удалить сообщения Удалить Импорт @@ -97,6 +98,7 @@ import { ElSelect, ElOption, ElForm, ElFormItem, ElInput, ElDatePicker, ElCheckb import ImportContactsModal from './ImportContactsModal.vue'; import BroadcastModal from './BroadcastModal.vue'; import tablesService from '../services/tablesService'; +import messagesService from '../services/messagesService'; const props = defineProps({ contacts: { type: Array, default: () => [] }, newContacts: { type: Array, default: () => [] }, @@ -257,6 +259,38 @@ async function deleteSelected() { // Отмена } } + +async function deleteMessagesSelected() { + if (!selectedIds.value.length) return; + try { + await ElMessageBox.confirm( + `Вы действительно хотите удалить историю сообщений для ${selectedIds.value.length} контакт(ов)? Это действие необратимо.`, + 'Подтверждение удаления сообщений', + { type: 'warning' } + ); + + let deletedMessages = 0; + let deletedConversations = 0; + + for (const id of selectedIds.value) { + try { + const result = await messagesService.deleteMessagesHistory(id); + if (result.success) { + deletedMessages += result.deletedMessages || 0; + deletedConversations += result.deletedConversations || 0; + } + } catch (error) { + console.error(`Ошибка при удалении сообщений для контакта ${id}:`, error); + } + } + + ElMessage.success(`Удалено сообщений: ${deletedMessages}, бесед: ${deletedConversations}`); + selectedIds.value = []; + selectAll.value = false; + } catch (e) { + // Отмена + } +}