fix(DeviceDetailDrawer): 优先从customFields获取字段值并处理空值显示

当字段值在device对象中不存在时,从customFields中获取。同时优化空值显示逻辑,明确区分undefined/null和空字符串的情况
This commit is contained in:
zhang1106
2026-02-09 14:54:18 +08:00
parent aca229ea91
commit 1c9a9a28b5
@@ -59,12 +59,16 @@ function DeviceDetailDrawer({ device, visible, onClose, cables, onRefreshCables,
const fieldKey = field.field;
if (fieldKey === 'status') return getStatusTag(device.status);
// 优先从device对象获取值,如果没有则从customFields中获取
let value = device[fieldKey];
if ((value === undefined || value === null) && device.customFields && typeof device.customFields === 'object') {
value = device.customFields[fieldKey];
}
if (fieldKey === 'type') value = getDeviceTypeName(value);
else if (fieldKey === 'position') value = `U${device.position} ${device.height ? `(${device.height}U)` : ''}`;
return <Text strong style={{ fontSize: '14px' }}>{value || '-'}</Text>;
return <Text strong style={{ fontSize: '14px' }}>{value !== undefined && value !== null ? value : '-'}</Text>;
}, [getStatusTag, getDeviceTypeName]);
const displayFields = useMemo(() => {