1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

переработка модальных окон3

This commit is contained in:
MoonTestUse1
2025-01-03 02:38:57 +06:00
parent 0a1de2539e
commit 50631b8c30
3 changed files with 35 additions and 5 deletions

View File

@@ -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(

View File

@@ -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"""

View File

@@ -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