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

This commit is contained in:
2025-07-04 16:48:56 +03:00
parent 3adb469a37
commit 6182c2ced1
13 changed files with 2364 additions and 27 deletions

View File

@@ -63,6 +63,27 @@
</span>
<button class="add-tag-btn" @click="openTagModal">Добавить тег</button>
</div>
<div class="block-user-section">
<strong>Статус блокировки:</strong>
<span v-if="contact.is_blocked" class="blocked-status">Заблокирован</span>
<span v-else class="unblocked-status">Не заблокирован</span>
<template v-if="isAdmin">
<el-button
v-if="!contact.is_blocked"
type="danger"
size="small"
@click="blockUser"
style="margin-left: 1em;"
>Заблокировать</el-button>
<el-button
v-else
type="success"
size="small"
@click="unblockUser"
style="margin-left: 1em;"
>Разблокировать</el-button>
</template>
</div>
<button class="delete-btn" @click="deleteContact">Удалить контакт</button>
</div>
<div class="messages-block">
@@ -326,6 +347,14 @@ function goBack() {
async function handleSendMessage({ message, attachments }) {
if (!contact.value || !contact.value.id) return;
if (contact.value.is_blocked) {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert('Пользователь заблокирован. Отправка сообщений невозможна.', 'Ошибка', { type: 'error' });
} else {
alert('Пользователь заблокирован. Отправка сообщений невозможна.');
}
return;
}
// Проверка наличия хотя бы одного идентификатора
const hasAnyId = contact.value.email || contact.value.telegram || contact.value.wallet;
if (!hasAnyId) {
@@ -395,6 +424,36 @@ async function handleAiReply(selectedMessages = []) {
}
}
function showBlockStatusMessage(msg, type = 'info') {
if (typeof ElMessageBox === 'function') {
ElMessageBox.alert(msg, 'Статус блокировки', { type });
} else {
alert(msg);
}
}
async function blockUser() {
if (!contact.value) return;
try {
await contactsService.blockContact(contact.value.id);
contact.value.is_blocked = true;
showBlockStatusMessage('Пользователь заблокирован', 'success');
} catch (e) {
showBlockStatusMessage('Ошибка блокировки пользователя', 'error');
}
}
async function unblockUser() {
if (!contact.value) return;
try {
await contactsService.unblockContact(contact.value.id);
contact.value.is_blocked = false;
showBlockStatusMessage('Пользователь разблокирован', 'success');
} catch (e) {
showBlockStatusMessage('Ошибка разблокировки пользователя', 'error');
}
}
onMounted(async () => {
await reloadContact();
await loadMessages();
@@ -582,4 +641,16 @@ watch(userId, async () => {
.add-tag-btn:hover {
background: #27ae38;
}
.block-user-section {
margin-top: 1em;
margin-bottom: 1em;
}
.blocked-status {
color: #d32f2f;
font-weight: bold;
}
.unblocked-status {
color: #388e3c;
font-weight: bold;
}
</style>