From f72645225adbf2feac64879826a6664953337d05 Mon Sep 17 00:00:00 2001 From: Certificate System Date: Thu, 13 Aug 2026 15:41:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E8=AF=81=E4=B9=A6=E5=8F=91?= =?UTF-8?q?=E8=AF=81=E5=8D=95=E4=BD=8D=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/routes/admin_certificates.py | 2 +- backend/app/schemas/certificate.py | 1 - backend/tests/test_import_rules.py | 13 ++++++++++++- frontend/src/views/AdminCertificates.vue | 9 ++------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/backend/app/api/routes/admin_certificates.py b/backend/app/api/routes/admin_certificates.py index 99402df..7afbfe3 100644 --- a/backend/app/api/routes/admin_certificates.py +++ b/backend/app/api/routes/admin_certificates.py @@ -85,7 +85,7 @@ def create_certificate( course_start_date=payload.course_start_date, course_end_date=payload.course_end_date, issue_date=payload.issue_date, - issuer_name=payload.issuer_name or project.default_issuer_name, + issuer_name=project.default_issuer_name, remark=payload.remark, ) db.add(certificate) diff --git a/backend/app/schemas/certificate.py b/backend/app/schemas/certificate.py index 395004a..ed05d4d 100644 --- a/backend/app/schemas/certificate.py +++ b/backend/app/schemas/certificate.py @@ -13,7 +13,6 @@ class CertificateCreate(BaseModel): course_start_date: date course_end_date: date issue_date: date - issuer_name: str = Field(min_length=1, max_length=128) remark: str | None = None @field_validator("project_code") diff --git a/backend/tests/test_import_rules.py b/backend/tests/test_import_rules.py index c790846..ba8d297 100644 --- a/backend/tests/test_import_rules.py +++ b/backend/tests/test_import_rules.py @@ -84,5 +84,16 @@ def test_certificate_create_rejects_reversed_course_period(): course_start_date="2026-06-30", course_end_date="2026-06-01", issue_date="2026-07-05", - issuer_name="测试单位", ) + + +def test_certificate_create_uses_project_issuer_without_manual_input(): + certificate = CertificateCreate( + learner_id=1, + project_code="DBY", + course_start_date="2026-06-01", + course_end_date="2026-06-30", + issue_date="2026-07-05", + ) + + assert "issuer_name" not in certificate.model_dump() diff --git a/frontend/src/views/AdminCertificates.vue b/frontend/src/views/AdminCertificates.vue index 7c4445c..58aec6e 100644 --- a/frontend/src/views/AdminCertificates.vue +++ b/frontend/src/views/AdminCertificates.vue @@ -35,9 +35,6 @@
证书上将显示为「{输入内容}课程的专业学习」,留空则默认显示「初级课程的专业学习」
- - - @@ -174,7 +171,6 @@ const form = reactive({ course_start_date: "", course_end_date: "", issue_date: "", - issuer_name: "", remark: "", }); @@ -223,8 +219,8 @@ function handleSelectionChange(rows: AdminCertificate[]) { } async function createCertificate() { - if (!form.learner_id || !form.project_code || !form.course_start_date || !form.course_end_date || !form.issue_date || !form.issuer_name) { - ElMessage.warning("请填写学员ID、项目、课程起止日期、发证日期和发证单位"); + if (!form.learner_id || !form.project_code || !form.course_start_date || !form.course_end_date || !form.issue_date) { + ElMessage.warning("请填写学员ID、项目、课程起止日期和发证日期"); return; } if (form.course_end_date < form.course_start_date) { @@ -239,7 +235,6 @@ async function createCertificate() { course_start_date: form.course_start_date, course_end_date: form.course_end_date, issue_date: form.issue_date, - issuer_name: form.issuer_name, remark: form.remark || null, }); ElMessage.success("证书已创建");