mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
переработка модальных окон3
This commit is contained in:
@@ -4,7 +4,10 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||
from . import models
|
||||
from .routers import admin, employees, requests, auth, statistics
|
||||
|
||||
app = FastAPI()
|
||||
app = FastAPI(
|
||||
# Отключаем автоматическое перенаправление со слэшем
|
||||
redirect_slashes=False
|
||||
)
|
||||
|
||||
# CORS configuration
|
||||
app.add_middleware(
|
||||
|
||||
@@ -11,6 +11,7 @@ from passlib.context import CryptContext
|
||||
router = APIRouter()
|
||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||
|
||||
@router.get("", response_model=List[EmployeeResponse])
|
||||
@router.get("/", response_model=List[EmployeeResponse])
|
||||
def get_employees(db: Session = Depends(get_db), _: dict = Depends(get_current_admin)):
|
||||
"""Get all employees"""
|
||||
@@ -25,6 +26,7 @@ def get_employee(employee_id: int, db: Session = Depends(get_db), _: dict = Depe
|
||||
raise HTTPException(status_code=404, detail="Сотрудник не найден")
|
||||
return employee
|
||||
|
||||
@router.post("", response_model=EmployeeResponse)
|
||||
@router.post("/", response_model=EmployeeResponse)
|
||||
def create_employee(employee: EmployeeCreate, db: Session = Depends(get_db), _: dict = Depends(get_current_admin)):
|
||||
"""Create new employee"""
|
||||
|
||||
@@ -126,15 +126,40 @@ export default {
|
||||
this.isLoading = true
|
||||
|
||||
try {
|
||||
await axios.post('/api/employees', this.formData, {
|
||||
const response = await axios.post('/api/employees', this.formData, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${localStorage.getItem('admin_token')}`
|
||||
Authorization: `Bearer ${localStorage.getItem('admin_token')}`,
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
validateStatus: function (status) {
|
||||
return status < 500 // Разрешаем все статусы < 500
|
||||
}
|
||||
})
|
||||
|
||||
this.$emit('employee-added')
|
||||
this.closeModal()
|
||||
if (response.status === 307) {
|
||||
// Если получили редирект, делаем запрос по новому URL
|
||||
const redirectUrl = response.headers.location
|
||||
const finalResponse = await axios.post(redirectUrl, this.formData, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${localStorage.getItem('admin_token')}`,
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
|
||||
if (finalResponse.status === 200 || finalResponse.status === 201) {
|
||||
this.$emit('employee-added')
|
||||
this.closeModal()
|
||||
} else {
|
||||
this.error = finalResponse.data?.detail || 'Ошибка при добавлении сотрудника'
|
||||
}
|
||||
} else if (response.status === 200 || response.status === 201) {
|
||||
this.$emit('employee-added')
|
||||
this.closeModal()
|
||||
} else {
|
||||
this.error = response.data?.detail || 'Ошибка при добавлении сотрудника'
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error creating employee:', error)
|
||||
this.error = error.response?.data?.detail || 'Ошибка при добавлении сотрудника'
|
||||
} finally {
|
||||
this.isLoading = false
|
||||
|
||||
Reference in New Issue
Block a user