diff --git a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py index a6a0ef3..54a9ad1 100644 --- a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py +++ b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py @@ -32,7 +32,10 @@ except ImportError: try: from .job import router as job_router -except ImportError: +except ImportError as e: + import traceback + print(f"[ERROR] Failed to import job router: {e}") + traceback.print_exc() from fastapi import APIRouter job_router = APIRouter() diff --git a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py index 8f16b3c..17856b7 100644 --- a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py +++ b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py @@ -14,7 +14,7 @@ from ..schemas import ( EvaluationSchemaResponse, EvaluationSchemaListResponse ) from ...domain.job import Job -from ...domain.enums import CandidateSource +from ...domain.candidate import CandidateSource from ...mapper.job_mapper import JobMapper from ...mapper.evaluation_mapper import EvaluationMapper @@ -24,6 +24,16 @@ router = APIRouter(prefix="/api/jobs", tags=["职位管理"]) def _job_to_response(job: Job) -> JobPositionResponse: """将领域实体转换为响应模型""" + # 将 JobRequirement 对象转换为字典 + requirements_dict = None + if job.requirements is not None: + if hasattr(job.requirements, 'to_dict'): + requirements_dict = job.requirements.to_dict() + elif hasattr(job.requirements, '__dict__'): + requirements_dict = job.requirements.__dict__ + else: + requirements_dict = job.requirements + return JobPositionResponse( id=job.id, title=job.title, @@ -35,7 +45,7 @@ def _job_to_response(job: Job) -> JobPositionResponse: location=job.location, salary_min=job.salary_min, salary_max=job.salary_max, - requirements=job.requirements, + requirements=requirements_dict, description=job.description, candidate_count=job.candidate_count, new_candidate_count=job.new_candidate_count, diff --git a/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue b/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue index c421eac..3d179fd 100644 --- a/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue +++ b/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue @@ -2,10 +2,6 @@