Commit 1e6103b0 by luoqi

feat(web): 隐藏「关键事实·牙位」与「历史联系·详情」两个入口

业务要求(2026-07-29)。两处都做成**不传回调即不渲染**,抽屉本体
(kind='teeth' / 'return-visits')一行没动 —— 想恢复就是把 onOpenTeeth /
onOpenDetail 传回去,注释里写好了原样。

顺带改了历史联系的兜底文案:原来是「N 条历史联系 · 点「详情」查看」,
详情入口一隐藏就成了指路指向不存在的东西,现在只留「N 条历史联系」。

web typecheck 通过;本地实测关键事实卡只剩「详情 →」。
(历史联系卡本地这个患者没有回访记录、不渲染,那处未实测。)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
parent 5c8dcff4
......@@ -556,7 +556,8 @@ export function PlanDetailApp({
facts={facts}
focusedReason={focusedReason}
onOpenDetail={() => setDrawerOpen('facts')}
onOpenTeeth={() => setDrawerOpen('teeth')}
// 「牙位 →」按业务要求隐藏(2026-07-29):不传 onOpenTeeth 即不渲染。
// 恢复只需 onOpenTeeth={() => setDrawerOpen('teeth')} —— 抽屉本身没动。
/>
<TreatmentHistoryCard
facts={facts}
......@@ -579,7 +580,8 @@ export function PlanDetailApp({
<ReturnVisitsCard
planId={plan.id}
visits={returnVisits}
onOpenDetail={() => setDrawerOpen('return-visits')}
// 「详情 →」按业务要求隐藏(2026-07-29):不传 onOpenDetail 即不渲染。
// 恢复:onOpenDetail={() => setDrawerOpen('return-visits')}
/>
)}
{/* 治疗链卡片已隐藏(链已弃用;chains 仍传 drawer 备用)*/}
......@@ -1748,7 +1750,8 @@ function KeyFactsCard({
/// 本次召回聚焦的 reason(priorityScore 最高那条)— 主治医生取它触发诊断的医生
focusedReason?: PlanReason;
onOpenDetail: () => void;
onOpenTeeth: () => void;
/** 未传 = 不渲染「牙位 →」(业务要求隐藏;抽屉逻辑保留,传回来即恢复) */
onOpenTeeth?: () => void;
}) {
// ─ 主治医生(口径 A)─ = 触发本次召回的诊断的【真实】医生(focusedReason 证据 fact)。
// 而非"全量最高频医生"——召回是冲某诊断来的,该露出做出该诊断的医生。
......@@ -1839,9 +1842,13 @@ function KeyFactsCard({
title="关键事实"
action={
<span className="inline-flex items-center gap-2.5">
<button onClick={onOpenTeeth} className="text-[10.5px] text-teal-700 hover:underline">
牙位 →
</button>
{/* 「牙位 →」按业务要求隐藏(2026-07-29)。抽屉(kind='teeth')整套留着,
把 onOpenTeeth 传回来就恢复 —— 不删是因为牙位图本身没问题,只是这一屏不需要。 */}
{onOpenTeeth && (
<button onClick={onOpenTeeth} className="text-[10.5px] text-teal-700 hover:underline">
牙位 →
</button>
)}
<button onClick={onOpenDetail} className="text-[10.5px] text-teal-700 hover:underline">
详情 →
</button>
......@@ -2169,7 +2176,8 @@ function ReturnVisitsCard({
}: {
planId: string;
visits: ReturnVisitItem[];
onOpenDetail: () => void;
/** 未传 = 不渲染「详情 →」(业务要求隐藏;抽屉 kind='return-visits' 保留,传回来即恢复) */
onOpenDetail?: () => void;
}) {
const [summary, setSummary] = useState<string | null>(null);
const [loading, setLoading] = useState(true);
......@@ -2198,9 +2206,11 @@ function ReturnVisitsCard({
title="历史联系"
meta={`${visits.length} `}
action={
<button onClick={onOpenDetail} className="text-[10.5px] text-teal-700 hover:underline">
详情 →
</button>
onOpenDetail ? (
<button onClick={onOpenDetail} className="text-[10.5px] text-teal-700 hover:underline">
详情 →
</button>
) : undefined
}
>
{summary ? (
......@@ -2213,8 +2223,8 @@ function ReturnVisitsCard({
<div className="h-3 w-3/4 rounded bg-slate-100" />
</div>
) : (
// 兜底(生成失败/无摘要)
<p className="text-[12px] text-slate-400">{visits.length} 条历史联系 · 点「详情」查看</p>
// 兜底(生成失败/无摘要)。⚠️ 别写「点详情查看」—— 详情入口已按业务隐藏,指了个不存在的东西
<p className="text-[12px] text-slate-400">{visits.length} 条历史联系</p>
)}
</SidebarCard>
);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment