新增自定义主 TabBar 与全局扫码核销流程

引入可配置的自定义 TabBar(含订单角标)、中央扫码入口跳转核销订单页,并更新迁移清单中最近完成的模块。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-23 10:52:45 +08:00
parent b766ad8270
commit 5541a0b106
25 changed files with 740 additions and 34 deletions

View File

@ -93,12 +93,16 @@ struct OrdersView: View {
.task {
viewModel.selectedEntry = appRouter.selectedOrdersEntry
await reload()
await consumePendingScanCodeIfNeeded()
}
.onChange(of: appRouter.selectedOrdersEntry) { _, entry in
guard viewModel.selectedEntry != entry else { return }
viewModel.selectedEntry = entry
Task { await reload() }
}
.onChange(of: appRouter.pendingOrderScanCode) { _, _ in
Task { await consumePendingScanCodeIfNeeded() }
}
.onChange(of: accountContext.currentScenic?.id) { _, _ in
Task { await reload() }
}
@ -575,6 +579,15 @@ struct OrdersView: View {
}
}
/// TabBar
private func consumePendingScanCodeIfNeeded() async {
guard let rawCode = appRouter.consumePendingOrderScanCode() else { return }
viewModel.selectedEntry = .verificationOrders
appRouter.selectOrders(entry: .verificationOrders)
await reload(showLoading: false)
handleScanResult(rawCode)
}
///
private func handleScanResult(_ rawCode: String) {
guard let result = viewModel.matchedWriteOffOrder(for: rawCode) else {