diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index b494b7b..7a0b819 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -29,6 +29,18 @@ const router = createRouter({ name: 'admin-dashboard', component: () => import('@/views/AdminDashboardView.vue'), meta: { requiresAdmin: true } + }, + { + path: '/admin/employees', + name: 'admin-employees', + component: () => import('@/views/admin/EmployeesView.vue'), + meta: { requiresAdmin: true } + }, + { + path: '/admin/employees/add', + name: 'admin-employees-add', + component: () => import('@/views/admin/AddEmployeeView.vue'), + meta: { requiresAdmin: true } } ] }); diff --git a/frontend/src/views/AdminDashboardView.vue b/frontend/src/views/AdminDashboardView.vue index 672f36c..8d32968 100644 --- a/frontend/src/views/AdminDashboardView.vue +++ b/frontend/src/views/AdminDashboardView.vue @@ -465,17 +465,8 @@ const openRequestDetails = (request: Request) => { } const openAddEmployeeModal = () => { - isEditingEmployee.value = false - employeeForm.value = { - id: null, - first_name: '', - last_name: '', - department: '', - office: '', - password: '' - } - showEmployeeModal.value = true -} + router.push('/admin/employees/add'); +}; const openEditEmployeeModal = (employee: Employee) => { isEditingEmployee.value = true diff --git a/frontend/src/views/admin/AddEmployeeView.vue b/frontend/src/views/admin/AddEmployeeView.vue index cf08666..68a722e 100644 --- a/frontend/src/views/admin/AddEmployeeView.vue +++ b/frontend/src/views/admin/AddEmployeeView.vue @@ -114,6 +114,13 @@ const handleSubmit = async () => { try { isSubmitting.value = true; const token = localStorage.getItem('admin_token'); + + if (!token) { + throw new Error('Не найден токен авторизации'); + } + + console.log('Отправляем данные:', form.value); + const response = await fetch('/api/employees/', { method: 'POST', headers: { @@ -123,14 +130,21 @@ const handleSubmit = async () => { body: JSON.stringify(form.value) }); + console.log('Статус ответа:', response.status); + if (!response.ok) { - throw new Error('Ошибка при создании сотрудника'); + const errorData = await response.json(); + console.error('Ошибка от сервера:', errorData); + throw new Error(errorData.detail || 'Ошибка при создании сотрудника'); } - router.push('/admin/employees'); + const data = await response.json(); + console.log('Успешный ответ:', data); + + router.push('/admin/dashboard'); } catch (error) { console.error('Error creating employee:', error); - alert('Произошла ошибка при создании сотрудника'); + alert(error instanceof Error ? error.message : 'Произошла ошибка при создании сотрудника'); } finally { isSubmitting.value = false; }