import SwiftUI extension IndicatorQuickSheet.Prefill { /// 从一条已有指标推断「再记一条」的预选目标: /// seriesKey 命中长期监测 / 自定义指标则预选对应预设(进趋势 + 自动判异常),否则按 name/unit/range 自由预填。 init(indicator i: Indicator) { self.init(seriesKey: i.seriesKey, name: i.name, unit: i.unit, range: i.range) } } /// 指标详情 / 同类聚合详情底部「再记一条」按钮:打开预选同款指标的录入表单(数值留空,由用户填新读数)。 /// 自带弹窗状态,`TimelineEntryDetailView` 与 `IndicatorSeriesDetailView` 共用同一组件。 struct RecordAnotherButton: View { /// 按钮文案里显示的指标名(如「空腹血糖」「血压」)。 let name: String /// 打开录入表单时的预选目标。 let prefill: IndicatorQuickSheet.Prefill @State private var showSheet = false var body: some View { Button { showSheet = true } label: { Label(String(appLoc: "再记一条「\(name)」"), systemImage: "plus.circle.fill") .font(.tjScaled( 13, weight: .semibold)) .foregroundStyle(Tj.Palette.ink) .frame(maxWidth: .infinity) .padding(.vertical, 12) .background( RoundedRectangle(cornerRadius: Tj.Radius.md, style: .continuous) .fill(Tj.Palette.leaf.opacity(0.16)) ) .contentShape(Rectangle()) } .buttonStyle(.plain) .sheet(isPresented: $showSheet) { IndicatorQuickSheet(prefill: prefill) } } }