Explorar el Código

fix(disability-person-management-ui): 修复残疾人详情页面崩溃问题

修复了残疾人详情对话框中因直接渲染枚举对象导致的 React 错误。
当 disabilityType 和 disabilityLevel 字段从 API 返回为对象时,
现在会正确显示其 name 或 code 属性。

影响范围:
- 残疾类型 (disabilityType)
- 残疾等级 (disabilityLevel)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname hace 6 días
padre
commit
956c668f82

+ 30 - 4
allin-packages/disability-person-management-ui/src/components/DisabilityPersonManagement.tsx

@@ -1695,11 +1695,21 @@ const DisabilityPersonManagement: React.FC = () => {
                 </div>
                 <div>
                   <label className="text-sm font-medium">残疾类型</label>
-                  <p className="text-sm text-muted-foreground">{viewData.personInfo.disabilityType}</p>
+                  <p className="text-sm text-muted-foreground">
+                    {(viewData.personInfo.disabilityType as any)?.name
+                      || (viewData.personInfo.disabilityType as any)?.code
+                      || viewData.personInfo.disabilityType
+                      || '未填写'}
+                  </p>
                 </div>
                 <div>
                   <label className="text-sm font-medium">残疾等级</label>
-                  <p className="text-sm text-muted-foreground">{viewData.personInfo.disabilityLevel}</p>
+                  <p className="text-sm text-muted-foreground">
+                    {(viewData.personInfo.disabilityLevel as any)?.name
+                      || (viewData.personInfo.disabilityLevel as any)?.code
+                      || viewData.personInfo.disabilityLevel
+                      || '未填写'}
+                  </p>
                 </div>
                 <div>
                   <label className="text-sm font-medium">联系电话</label>
@@ -1787,7 +1797,11 @@ const DisabilityPersonManagement: React.FC = () => {
                           <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
                             <div>
                               <Label>银行名称</Label>
-                              <p className="text-sm text-muted-foreground">{card.bankName}</p>
+                              <p className="text-sm text-muted-foreground">
+                                {typeof card.bankName === 'object'
+                                  ? card.bankName?.name || card.bankName?.code || '未填写'
+                                  : card.bankName || '未填写'}
+                              </p>
                             </div>
                             <div>
                               <Label>发卡支行</Label>
@@ -1801,6 +1815,14 @@ const DisabilityPersonManagement: React.FC = () => {
                               <Label>持卡人姓名</Label>
                               <p className="text-sm text-muted-foreground">{card.cardholderName}</p>
                             </div>
+                            <div>
+                              <Label>银行卡类型</Label>
+                              <p className="text-sm text-muted-foreground">
+                                {typeof card.cardType === 'object'
+                                  ? card.cardType?.name || card.cardType?.code || '未填写'
+                                  : card.cardType || '未填写'}
+                              </p>
+                            </div>
                             <div>
                               <Label>是否默认</Label>
                               <p className="text-sm text-muted-foreground">
@@ -1876,7 +1898,11 @@ const DisabilityPersonManagement: React.FC = () => {
                             </div>
                             <div>
                               <Label>回访类型</Label>
-                              <p className="text-sm text-muted-foreground">{visit.visitType}</p>
+                              <p className="text-sm text-muted-foreground">
+                                {typeof visit.visitType === 'object'
+                                  ? visit.visitType?.name || visit.visitType?.code || '未填写'
+                                  : visit.visitType || '未填写'}
+                              </p>
                             </div>
                             <div className="md:col-span-2">
                               <Label>回访内容</Label>