diff --git a/apps/web/src/pages/health/components/VitalSignsChart.tsx b/apps/web/src/pages/health/components/VitalSignsChart.tsx index f9835f8..d6ddc21 100644 --- a/apps/web/src/pages/health/components/VitalSignsChart.tsx +++ b/apps/web/src/pages/health/components/VitalSignsChart.tsx @@ -8,13 +8,14 @@ const { Text } = Typography; interface Props { patientId: string; + refreshKey?: number; } const DEFAULT_INDICATOR = 'systolic_bp_morning'; const UNIT = 'mmHg'; const LABEL = '收缩压(晨)'; -export function VitalSignsChart({ patientId }: Props) { +export function VitalSignsChart({ patientId, refreshKey }: Props) { const [data, setData] = useState<{ date: string; value: number }[]>([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(false); @@ -32,7 +33,7 @@ export function VitalSignsChart({ patientId }: Props) { }) .catch(() => setError(true)) .finally(() => setLoading(false)); - }, [patientId]); + }, [patientId, refreshKey]); if (loading) { return ( diff --git a/apps/web/src/pages/health/components/VitalSignsTab.tsx b/apps/web/src/pages/health/components/VitalSignsTab.tsx index 91504a6..216441e 100644 --- a/apps/web/src/pages/health/components/VitalSignsTab.tsx +++ b/apps/web/src/pages/health/components/VitalSignsTab.tsx @@ -68,6 +68,7 @@ const columns = [ export function VitalSignsTab({ patientId }: Props) { const [modalOpen, setModalOpen] = useState(false); + const [chartRefreshKey, setChartRefreshKey] = useState(0); const [form] = Form.useForm(); const [submitting, setSubmitting] = useState(false); @@ -108,7 +109,7 @@ export function VitalSignsTab({ patientId }: Props) { setModalOpen(false); form.resetFields(); refresh(); - } catch { + setChartRefreshKey((k) => k + 1); } catch { message.error('录入失败'); } finally { setSubmitting(false); @@ -121,8 +122,8 @@ export function VitalSignsTab({ patientId }: Props) { return (
{/* 趋势图 */} -
- +
+
{/* 最新记录摘要条 */} @@ -131,13 +132,13 @@ export function VitalSignsTab({ patientId }: Props) { display: 'flex', gap: 16, marginBottom: 12, - padding: '8px 12px', + padding: '6px 12px', background: 'var(--ant-color-bg-container, #fafafa)', borderRadius: 8, border: '1px solid var(--ant-color-border-secondary, #f0f0f0)', flexWrap: 'wrap', }}> - + 最新记录({latest.record_date})