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) { + // Отмена + } +}