feat(ui): UI 骨架基线 — 3 Tab + RecordSheet + Quick/Archive 流程占位

替换 Xcode 默认模板:
- 删除 ContentView/Item/__App
- 新增 App/TijiApp(SwiftData ModelContainer)、RootView(3 Tab + RecordSheet)
- DesignSystem:Tokens(色板/字体/圆角)+ Components(卡片/按钮/Chip)
- Models:Indicator / Report / DiaryEntry @Model 初版
- Features:Home / Quick(A1-A3)/ Archive(B1-B5)/ Record / Trends / Me 静态 UI

W2 AI 基座工作将在此基线上叠加。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
link2026
2026-05-25 14:49:21 +08:00
parent 96cae73d8f
commit c050865db5
23 changed files with 2586 additions and 97 deletions

View File

@@ -0,0 +1,60 @@
import SwiftUI
private enum QuickStep: Hashable {
case viewfinder
case confirm
case batch
}
struct QuickCaptureFlow: View {
var onClose: () -> Void
@State private var step: QuickStep = .viewfinder
@State private var snapCount = 0
var body: some View {
ZStack {
switch step {
case .viewfinder:
A1ViewfinderView(
onShoot: {
snapCount += 1
withAnimation(.easeInOut(duration: 0.25)) { step = .confirm }
},
onClose: onClose
)
.transition(.opacity)
case .confirm:
A2ConfirmView(
onSave: {
if snapCount >= 2 {
withAnimation { step = .batch }
} else {
onClose()
}
},
onNext: {
withAnimation { step = .viewfinder }
},
onBack: {
withAnimation { step = .viewfinder }
}
)
.transition(.opacity)
case .batch:
A3BatchView(
onAddMore: {
withAnimation { step = .viewfinder }
},
onFinish: onClose,
onBack: {
withAnimation { step = .confirm }
}
)
.transition(.opacity)
}
}
}
}