缺少代码差异信息,无法生成具体的commit message。请提供code differences内容以便分析并生成符合Angular规范的提交信息。
当您提供代码差异后,我将按照以下格式生成: ``` <type>(<scope>): <subject> <body> ``` 其中type会根据更改类型选择(feat、fix、docs、style、refactor等),scope表示影响范围,subject简要描述变更内容,body详细说明修改内容。
This commit is contained in:
@@ -40,7 +40,7 @@ struct CaptureReviewForm: View {
|
||||
.foregroundStyle(Tj.Palette.amber)
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
Text(text)
|
||||
.font(.system(size: 12))
|
||||
.font(.tjScaled( 12))
|
||||
.foregroundStyle(Tj.Palette.text2)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
if let onReanalyze {
|
||||
@@ -48,7 +48,7 @@ struct CaptureReviewForm: View {
|
||||
onReanalyze()
|
||||
} label: {
|
||||
Label("重新识别", systemImage: "arrow.clockwise")
|
||||
.font(.system(size: 12, weight: .semibold))
|
||||
.font(.tjScaled( 12, weight: .semibold))
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
.foregroundStyle(Tj.Palette.ink)
|
||||
@@ -131,7 +131,7 @@ struct CaptureReviewForm: View {
|
||||
private func labeledField<C: View>(_ label: String, @ViewBuilder content: () -> C) -> some View {
|
||||
VStack(alignment: .leading, spacing: 4) {
|
||||
Text(label)
|
||||
.font(.system(size: 11, weight: .medium))
|
||||
.font(.tjScaled( 11, weight: .medium))
|
||||
.foregroundStyle(Tj.Palette.text3)
|
||||
content()
|
||||
}
|
||||
@@ -150,14 +150,14 @@ struct CaptureReviewForm: View {
|
||||
)
|
||||
} label: {
|
||||
Label("加一项", systemImage: "plus.circle")
|
||||
.font(.system(size: 12, weight: .medium))
|
||||
.font(.tjScaled( 12, weight: .medium))
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
.foregroundStyle(Tj.Palette.ink)
|
||||
}
|
||||
if parsed.indicators.isEmpty {
|
||||
Text("没有指标 — 点上方「加一项」补一行,或直接保存只存图片")
|
||||
.font(.system(size: 12))
|
||||
.font(.tjScaled( 12))
|
||||
.foregroundStyle(Tj.Palette.text3)
|
||||
.padding(.vertical, 8)
|
||||
} else {
|
||||
@@ -175,7 +175,7 @@ struct CaptureReviewForm: View {
|
||||
return VStack(spacing: 8) {
|
||||
HStack(spacing: 8) {
|
||||
TextField("指标名", text: binding.name)
|
||||
.font(.system(size: 14, weight: .medium))
|
||||
.font(.tjScaled( 14, weight: .medium))
|
||||
Button(role: .destructive) {
|
||||
parsed.indicators.removeAll { $0.id == id }
|
||||
} label: {
|
||||
@@ -187,7 +187,7 @@ struct CaptureReviewForm: View {
|
||||
HStack(spacing: 8) {
|
||||
TextField("数值", text: binding.value)
|
||||
.keyboardType(.decimalPad)
|
||||
.font(.system(size: 14, weight: .semibold, design: .monospaced))
|
||||
.font(.tjScaled( 14, weight: .semibold, design: .monospaced))
|
||||
.frame(maxWidth: 90)
|
||||
TextField("单位", text: binding.unit)
|
||||
.frame(maxWidth: 80)
|
||||
@@ -247,7 +247,7 @@ struct CaptureReviewForm: View {
|
||||
|
||||
private func sectionLabel(_ t: String) -> some View {
|
||||
Text(t)
|
||||
.font(.system(size: 12, weight: .semibold))
|
||||
.font(.tjScaled( 12, weight: .semibold))
|
||||
.tracking(0.3)
|
||||
.foregroundStyle(Tj.Palette.text2)
|
||||
}
|
||||
|
||||
@@ -13,10 +13,10 @@ struct PhotoPickerSheet: View {
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Image(systemName: "photo.on.rectangle.angled")
|
||||
.font(.system(size: 56))
|
||||
.font(.tjScaled( 56))
|
||||
.foregroundStyle(Tj.Palette.text3)
|
||||
Text("模拟器没有摄像头,从相册选一张化验单/体检报告")
|
||||
.font(.system(size: 13))
|
||||
.font(.tjScaled( 13))
|
||||
.foregroundStyle(Tj.Palette.text2)
|
||||
.multilineTextAlignment(.center)
|
||||
|
||||
@@ -24,7 +24,7 @@ struct PhotoPickerSheet: View {
|
||||
maxSelectionCount: 5,
|
||||
matching: .images) {
|
||||
Text("从相册选 ≤5 张")
|
||||
.font(.system(size: 14, weight: .semibold))
|
||||
.font(.tjScaled( 14, weight: .semibold))
|
||||
.frame(maxWidth: .infinity)
|
||||
.padding(.vertical, 12)
|
||||
.background(Tj.Palette.ink)
|
||||
|
||||
@@ -300,7 +300,12 @@ struct UnifiedCaptureFlow: View {
|
||||
status: ind.status,
|
||||
capturedAt: final.reportDate,
|
||||
report: report,
|
||||
source: .report
|
||||
source: .report,
|
||||
sourcePageIndex: ind.sourcePageIndex,
|
||||
sourceBoxX: ind.sourceBoxX,
|
||||
sourceBoxY: ind.sourceBoxY,
|
||||
sourceBoxWidth: ind.sourceBoxWidth,
|
||||
sourceBoxHeight: ind.sourceBoxHeight
|
||||
)
|
||||
ctx.insert(i)
|
||||
}
|
||||
@@ -346,16 +351,16 @@ private struct AnalyzingView: View {
|
||||
.font(.tjH2())
|
||||
.foregroundStyle(Tj.Palette.text)
|
||||
Text("\(images.count) 页 · 100% 本地推理 · 已用 \(elapsed)s")
|
||||
.font(.system(size: 12))
|
||||
.font(.tjScaled( 12))
|
||||
.foregroundStyle(Tj.Palette.text3)
|
||||
if elapsed >= timeoutSeconds - 5 {
|
||||
Text("快超时了,>\(timeoutSeconds)s 会自动转为手动录入")
|
||||
.font(.system(size: 11))
|
||||
.font(.tjScaled( 11))
|
||||
.foregroundStyle(Tj.Palette.amber)
|
||||
}
|
||||
}
|
||||
Button("取消识别 · 改为手动录入", action: onCancel)
|
||||
.font(.system(size: 13, weight: .medium))
|
||||
.font(.tjScaled( 13, weight: .medium))
|
||||
.foregroundStyle(Tj.Palette.text3)
|
||||
.padding(.top, 4)
|
||||
Spacer()
|
||||
@@ -375,7 +380,7 @@ private struct CaptureTipSheet: View {
|
||||
VStack(alignment: .leading, spacing: 16) {
|
||||
HStack(spacing: 10) {
|
||||
Image(systemName: "doc.viewfinder")
|
||||
.font(.system(size: 28))
|
||||
.font(.tjScaled( 28))
|
||||
.foregroundStyle(Tj.Palette.ink)
|
||||
Text("拍报告的小贴士")
|
||||
.font(.tjH2())
|
||||
|
||||
Reference in New Issue
Block a user