фикс
This commit is contained in:
parent
6bcd41d43b
commit
38aad59317
@ -268,6 +268,7 @@ const toggleUserActive = async (req, res) => {
|
||||
res.json({
|
||||
message: user.blocked ? 'Пользователь заблокирован' : 'Пользователь разблокирован',
|
||||
blocked: user.blocked,
|
||||
isActive: !user.blocked, // Добавляем isActive для совместимости с клиентом
|
||||
blockReason: user.blockReason
|
||||
});
|
||||
} catch (error) {
|
||||
|
@ -199,8 +199,6 @@ export default {
|
||||
// Изменение статуса пользователя (блокировка/разблокировка)
|
||||
const toggleUserStatus = async () => {
|
||||
try {
|
||||
const originalStatus = user.value.isActive;
|
||||
|
||||
const token = localStorage.getItem('userToken');
|
||||
const response = await axios.put(
|
||||
`/api/admin/users/${props.id}/toggle-active`,
|
||||
@ -212,20 +210,20 @@ export default {
|
||||
}
|
||||
);
|
||||
|
||||
// Принудительно обновляем статус пользователя для реактивности
|
||||
// Обновляем объект пользователя напрямую из ответа сервера
|
||||
if (response.data && typeof response.data.isActive !== 'undefined') {
|
||||
user.value.isActive = response.data.isActive;
|
||||
user.value.blocked = !response.data.isActive;
|
||||
|
||||
// Форсируем реактивное обновление
|
||||
user.value = { ...user.value };
|
||||
user.value = {
|
||||
...user.value,
|
||||
isActive: response.data.isActive,
|
||||
blocked: response.data.blocked
|
||||
};
|
||||
}
|
||||
|
||||
// Показываем уведомление об успехе
|
||||
const actionText = user.value.isActive ? 'разблокирован' : 'заблокирован';
|
||||
const actionText = response.data.isActive ? 'разблокирован' : 'заблокирован';
|
||||
toastService.add(
|
||||
response.data.message || `Пользователь успешно ${actionText}`,
|
||||
user.value.isActive ? 'success' : 'warning',
|
||||
response.data.isActive ? 'success' : 'warning',
|
||||
3000
|
||||
);
|
||||
} catch (err) {
|
||||
|
@ -252,13 +252,9 @@ export default {
|
||||
// Изменение статуса пользователя (блокировка/разблокировка)
|
||||
const toggleUserStatus = async (userId, currentStatus) => {
|
||||
try {
|
||||
// Показываем индикатор загрузки для конкретного пользователя
|
||||
const userIndex = users.value.findIndex(user => user._id === userId);
|
||||
if (userIndex === -1) return;
|
||||
|
||||
// Временно отключаем кнопку, чтобы предотвратить множественные клики
|
||||
const originalStatus = users.value[userIndex].isActive;
|
||||
|
||||
const token = localStorage.getItem('userToken');
|
||||
const response = await axios.put(
|
||||
`/api/admin/users/${userId}/toggle-active`,
|
||||
@ -270,14 +266,17 @@ export default {
|
||||
}
|
||||
);
|
||||
|
||||
// Обновляем статус пользователя в списке с использованием реактивности Vue
|
||||
if (userIndex !== -1 && response.data) {
|
||||
// Принудительно обновляем свойство для реактивности
|
||||
users.value[userIndex].isActive = response.data.isActive;
|
||||
users.value[userIndex].blocked = !response.data.isActive;
|
||||
// Обновляем пользователя в списке напрямую из ответа сервера
|
||||
if (response.data && typeof response.data.isActive !== 'undefined') {
|
||||
// Создаем новый объект пользователя с обновленными данными
|
||||
const updatedUser = {
|
||||
...users.value[userIndex],
|
||||
isActive: response.data.isActive,
|
||||
blocked: response.data.blocked
|
||||
};
|
||||
|
||||
// Форсируем реактивное обновление Vue
|
||||
users.value = [...users.value];
|
||||
// Заменяем пользователя в массиве
|
||||
users.value.splice(userIndex, 1, updatedUser);
|
||||
}
|
||||
|
||||
// Показываем уведомление об успехе
|
||||
@ -290,13 +289,6 @@ export default {
|
||||
} catch (err) {
|
||||
console.error('Ошибка при изменении статуса пользователя:', err);
|
||||
|
||||
// Восстанавливаем исходный статус в случае ошибки
|
||||
const userIndex = users.value.findIndex(user => user._id === userId);
|
||||
if (userIndex !== -1) {
|
||||
users.value[userIndex].isActive = currentStatus;
|
||||
users.value = [...users.value];
|
||||
}
|
||||
|
||||
// Показываем ошибку
|
||||
const errorMessage = err.response?.data?.message || 'Ошибка при изменении статуса пользователя';
|
||||
toastService.add(errorMessage, 'error', 5000);
|
||||
|
Loading…
x
Reference in New Issue
Block a user