выполнить

This commit is contained in:
2026-02-12 19:52:41 +05:00
parent 139b53ffbd
commit 155687f3bb
2 changed files with 217 additions and 57 deletions

View File

@@ -227,7 +227,32 @@ function openReworkAssignmentModal(taskId, userId, userName) {
setTimeout(() => textarea.focus(), 100);
}
}
// Функция для принудительного завершения задачи исполнителя
async function forceCompleteAssignment(taskId, userId, userName) {
if (!confirm(`Вы уверены, что хотите отметить задачу как выполненную для сотрудника ${userName}?\nЭто действие нельзя отменить.`)) {
return;
}
try {
const response = await fetch(`/api/tasks/${taskId}/force-complete/${userId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
}
});
if (response.ok) {
alert(`✅ Задача отмечена как выполненная для сотрудника ${userName}`);
loadTasks(); // Перезагружаем задачи
} else {
const error = await response.json();
alert(`❌ Ошибка: ${error.error || 'Неизвестная ошибка'}`);
}
} catch (error) {
console.error('❌ Ошибка:', error);
alert('Сетевая ошибка при выполнении операции');
}
}
// Вспомогательная функция для экранирования HTML
function escapeHtml(text) {
if (!text) return '';
@@ -426,7 +451,9 @@ ${isCurrentUser && assignment.status === 'assigned' ?
${isCurrentUser && (assignment.status === 'in_progress' || assignment.status === 'overdue' || assignment.status === 'rework') ?
`<button onclick="updateStatus(${taskId}, ${assignment.user_id}, 'completed')">Выполнено</button>` : ''}
${isTaskCreator && assignment.status !== 'assigned' ?
`<button class="rework-btn" onclick="openReworkAssignmentModal(${taskId}, ${assignment.user_id}, '${assignment.user_name}')" title="Отправить на доработку">🔄</button>` : ''}
`<button class="rework-btn" onclick="openReworkAssignmentModal(${taskId}, ${assignment.user_id}, '${assignment.user_name}')" title="Отправить на доработку">🔄Переделать</button>` : ''}
${isTaskCreator && assignment.status !== 'completed' ?
`<button class="force-complete-btn" onclick="forceCompleteAssignment(${taskId}, ${assignment.user_id}, '${assignment.user_name}')" title="Принудительно отметить как выполненное">✅ Завершить</button>` : ''}
${canEdit ?
`<button class="edit-date-btn" onclick="openEditAssignmentModal(${taskId}, ${assignment.user_id})" title="Редактировать сроки">📅</button>` : ''}
</div>