Sfoglia il codice sorgente

fix(disability-person): 修复电话数据保存失败问题

- 将 disabled-person.schema.ts 中某些可选字段的 .optional() 改为 .nullish()
- 修复表单 Select 组件返回 null 时 Zod 验证失败的问题
- 影响字段: nation, district, detailedAddress, specificDisability, isMarried
- 现在监护人电话和本人电话可以正确保存到数据库

测试结果:
- 监护人电话数据保存验证通过
- 本人电话数据保存验证通过
- 5个电话限制功能验证通过
- 主要联系人切换功能验证通过

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 4 giorni fa
parent
commit
6805e3022b

+ 10 - 10
allin-packages/disability-module/src/schemas/disabled-person.schema.ts

@@ -132,15 +132,15 @@ export const CreateDisabledPersonSchema = BaseDisabledPersonSchema.extend({
     description: '是否已婚:1-是,0-否,null-未知',
     example: 1
   }),
-  nation: z.string().max(20).optional().openapi({
+  nation: z.string().max(20).nullish().openapi({
     description: '民族',
     example: '汉族'
   }),
-  district: z.string().max(50).optional().openapi({
+  district: z.string().max(50).nullish().openapi({
     description: '区县级',
     example: '东城区'
   }),
-  detailedAddress: z.string().max(200).optional().openapi({
+  detailedAddress: z.string().max(200).nullish().openapi({
     description: '详细地址',
     example: '东城区某街道某号'
   }),
@@ -152,7 +152,7 @@ export const CreateDisabledPersonSchema = BaseDisabledPersonSchema.extend({
     description: '在职状态:0-未在职,1-已在职',
     example: 1
   }),
-  specificDisability: z.string().max(500).optional().openapi({
+  specificDisability: z.string().max(500).nullish().openapi({
     description: '具体残疾部位和情况',
     example: '左眼视力0.1,右眼视力0.2,需要助听器'
   })
@@ -212,11 +212,11 @@ export const UpdateDisabledPersonSchema = z.object({
     description: '是否可直接联系:1-是,0-否',
     example: 1
   }),
-  isMarried: z.number().int().min(0).max(1).optional().openapi({
-    description: '是否已婚:1-是,0-否',
+  isMarried: z.number().int().min(0).max(1).nullable().optional().openapi({
+    description: '是否已婚:1-是,0-否,null-未知',
     example: 1
   }),
-  nation: z.string().max(20).optional().openapi({
+  nation: z.string().max(20).nullish().openapi({
     description: '民族',
     example: '汉族'
   }),
@@ -228,11 +228,11 @@ export const UpdateDisabledPersonSchema = z.object({
     description: '市级',
     example: '北京市'
   }),
-  district: z.string().max(50).optional().openapi({
+  district: z.string().max(50).nullish().openapi({
     description: '区县级',
     example: '东城区'
   }),
-  detailedAddress: z.string().max(200).optional().openapi({
+  detailedAddress: z.string().max(200).nullish().openapi({
     description: '详细地址',
     example: '东城区某街道某号'
   }),
@@ -244,7 +244,7 @@ export const UpdateDisabledPersonSchema = z.object({
     description: '在职状态:0-未在职,1-已在职',
     example: 1
   }),
-  specificDisability: z.string().max(500).optional().openapi({
+  specificDisability: z.string().max(500).nullish().openapi({
     description: '具体残疾部位和情况',
     example: '左眼视力0.1,右眼视力0.2,需要助听器'
   })