diff --git a/apps/miniprogram/src/pages/pkg-health/input/index.scss b/apps/miniprogram/src/pages/pkg-health/input/index.scss index 61259e5..30bbdae 100644 --- a/apps/miniprogram/src/pages/pkg-health/input/index.scss +++ b/apps/miniprogram/src/pages/pkg-health/input/index.scss @@ -149,6 +149,12 @@ margin-bottom: var(--tk-gap-xs); } +.input-field-ref { + color: var(--tk-text-secondary); + font-size: var(--tk-font-cap); + margin-left: 8px; +} + .input-bp-divider { display: flex; flex-direction: column; diff --git a/apps/miniprogram/src/pages/pkg-health/input/index.tsx b/apps/miniprogram/src/pages/pkg-health/input/index.tsx index f2ee0cd..4ece65d 100644 --- a/apps/miniprogram/src/pages/pkg-health/input/index.tsx +++ b/apps/miniprogram/src/pages/pkg-health/input/index.tsx @@ -67,6 +67,8 @@ export default function HealthInput() { const [submitting, setSubmitting] = useState(false); const { safeSetTimeout } = useSafeTimeout(); const [loadingThresholds, setLoadingThresholds] = useState(true); + const [focusedField, setFocusedField] = useState(null); + const [lastBp, setLastBp] = useState<{ systolic: number; diastolic: number } | null>(null); const currentPatient = useAuthStore((s) => s.currentPatient); const clearCache = useHealthStore((s) => s.clearCache); @@ -102,7 +104,24 @@ export default function HealthInput() { } catch { // 解析失败则忽略,不影响正常使用 } - }, []); + + // 加载上次血压参考值 + try { + const pid = currentPatient?.id; + if (pid) { + const res = await import('../../../services/request').then((m) => m.api); + const data = await res.get<{ data: Array<{ morning_bp_systolic?: number; morning_bp_diastolic?: number }> }>( + `/health/patients/${pid}/daily-monitoring`, + { page: 1, page_size: 1 }, + ); + const items = Array.isArray(data) ? data : (data as Record)?.data; + const latest = Array.isArray(items) ? items[0] : null; + if (latest?.morning_bp_systolic && latest?.morning_bp_diastolic) { + setLastBp({ systolic: latest.morning_bp_systolic, diastolic: latest.morning_bp_diastolic }); + } + } + } catch { /* 不影响主流程 */ } + }, [currentPatient?.id]); usePageData(loadThresholdsAndSync, { throttleMs: 10000 }); @@ -226,13 +245,18 @@ export default function HealthInput() { 血压数值 - 收缩压 + + 收缩压 + {lastBp && 上次 {lastBp.systolic}} + setSystolic(e.detail.value)} + onConfirm={() => setFocusedField('diastolic')} /> @@ -241,13 +265,18 @@ export default function HealthInput() { - 舒张压 + + 舒张压 + {lastBp && 上次 {lastBp.diastolic}} + setDiastolic(e.detail.value)} + onConfirm={() => setFocusedField(null)} />