From 13f485a0494e484526914d0060f5dd25f698f1a9 Mon Sep 17 00:00:00 2001 From: selfrelease Date: Sun, 16 Aug 2026 09:28:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20contractType=20zod=20=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E4=B8=8E=20Prisma/=E5=89=8D=E7=AB=AF=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit zod schema 只允许 FIXED|UNFIXED|UNSIGNED 三种,但 Prisma 枚举和 前端 /contract-types 接口返回 8 种(含 LABOR/INTERNSHIP/DISPATCH/ OUTSOURCING/PARTTIME),导致选择劳务协议等类型时校验失败。 扩展 createEmployeeSchema 和 addContractSchema 的 contractType 枚举为全部 8 种,与 Prisma ContractType 枚举一致。 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- backend/src/schemas/contract.schema.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/schemas/contract.schema.ts b/backend/src/schemas/contract.schema.ts index c330c71..8387ded 100644 --- a/backend/src/schemas/contract.schema.ts +++ b/backend/src/schemas/contract.schema.ts @@ -19,7 +19,7 @@ export const createEmployeeSchema = z.object({ signDate: z.string().datetime().nullable(), startDate: z.string().datetime(), endDate: z.string().datetime().nullable(), - contractType: z.enum(['FIXED', 'UNFIXED', 'UNSIGNED']), + contractType: z.enum(['FIXED', 'UNFIXED', 'UNSIGNED', 'LABOR', 'INTERNSHIP', 'DISPATCH', 'OUTSOURCING', 'PARTTIME']), signMethod: z.enum(['PAPER', 'ELECTRONIC']).default('PAPER'), contractYears: z.number().int().min(1).max(10).default(3), probationMonths: z.number().int().min(0).max(6).default(0), @@ -64,7 +64,7 @@ export const addContractSchema = z.object({ signDate: z.string().datetime().nullable(), startDate: z.string().datetime(), endDate: z.string().datetime().nullable(), - contractType: z.enum(['FIXED', 'UNFIXED', 'UNSIGNED']), + contractType: z.enum(['FIXED', 'UNFIXED', 'UNSIGNED', 'LABOR', 'INTERNSHIP', 'DISPATCH', 'OUTSOURCING', 'PARTTIME']), signMethod: z.enum(['PAPER', 'ELECTRONIC']).default('PAPER'), contractYears: z.number().int().min(1).max(10).default(3), probationMonths: z.number().int().min(0).max(6).default(0),