From d245499e3405d18ce3ca6b6021274f82dbfe2550 Mon Sep 17 00:00:00 2001 From: iven Date: Sun, 26 Apr 2026 09:46:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E6=96=B0=E5=A2=9E=E4=BD=93?= =?UTF-8?q?=E5=BE=81=E6=95=B0=E6=8D=AE=E5=90=8E=E8=B6=8B=E5=8A=BF=E5=9B=BE?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VitalSignsChart 增加 refreshKey prop,录入成功后递增触发 useEffect 重新加载趋势数据 --- .../src/pages/health/components/VitalSignsChart.tsx | 5 +++-- .../web/src/pages/health/components/VitalSignsTab.tsx | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) 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})