新增景区权限模块,集成 AMap CocoaPods 并支持模拟器
将景区选择与权限申请流程接入首页路由,集成高德 SDK 用于真机构建,并通过 Podfile post_install 钩子保证 arm64 模拟器可编译。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -25,7 +25,7 @@ Home 模块负责登录后的首页工作台,包括当前景区展示、工作
|
||||
|
||||
`HomeMenuRouter` 将权限 URI 分为四类:
|
||||
- `tab`:切换到订单或数据 Tab。
|
||||
- `destination`:进入已接入的本地页面,如个人信息、景区选择、全部功能。
|
||||
- `destination`:进入已接入的本地页面,如个人信息、景区选择、权限申请、全部功能。
|
||||
- `unsupported`:已知 iOS 不支持的入口,进入占位说明。
|
||||
- `placeholder`:未知或未迁移入口,记录诊断并进入占位说明。
|
||||
|
||||
@ -33,6 +33,6 @@ Home 模块负责登录后的首页工作台,包括当前景区展示、工作
|
||||
|
||||
## 后续迁移
|
||||
|
||||
目前 `payment_collection`、`payment_qr`、`payment_code` 已由 `Features/Payment` 的真实收款页面接管,`wallet` 已由 `Features/Wallet` 的真实钱包页面接管。`withdrawal_audit` 仍属于后台性质的提现审核管理模块,本轮保留占位,后续应作为独立功能迁移。
|
||||
目前 `payment_collection`、`payment_qr`、`payment_code` 已由 `Features/Payment` 的真实收款页面接管,`wallet` 已由 `Features/Wallet` 的真实钱包页面接管,`scenicselection`、`permission_apply`、`permission_apply_status`、`scenicapplication` 已由 `Features/ScenicPermission` 接管。`withdrawal_audit` 仍属于后台性质的提现审核管理模块,`scenic_settlement` 和 `scenic_settlement_review` 仍属于独立结算模块,本轮保留占位,后续应作为独立功能迁移。
|
||||
|
||||
后续迁移具体首页子模块时,应先在 `HomeRoute` 增加目标页面,再更新 `HomeMenuRouter.resolve` 对应 URI 的映射,并同步补充单元测试。
|
||||
|
||||
@ -22,6 +22,9 @@ struct HomeMenuItem: Equatable, Identifiable {
|
||||
enum HomeRoute: Hashable {
|
||||
case profileSpace
|
||||
case scenicSelection
|
||||
case permissionApply
|
||||
case permissionApplyStatus
|
||||
case scenicApplication
|
||||
case moreFunctions
|
||||
case settings
|
||||
case paymentCollection
|
||||
|
||||
@ -81,6 +81,12 @@ enum HomeMenuRouter {
|
||||
return .destination(.settings)
|
||||
case "scenicselection":
|
||||
return .destination(.scenicSelection)
|
||||
case "permission_apply":
|
||||
return .destination(.permissionApply)
|
||||
case "permission_apply_status":
|
||||
return .destination(.permissionApplyStatus)
|
||||
case "scenicapplication":
|
||||
return .destination(.scenicApplication)
|
||||
case "wallet":
|
||||
return .destination(.wallet)
|
||||
case "payment_collection", "payment_qr", "payment_code":
|
||||
@ -118,9 +124,6 @@ enum HomeMenuRouter {
|
||||
"sample_upload",
|
||||
"live_stream_management",
|
||||
"live_album",
|
||||
"scenicapplication",
|
||||
"permission_apply",
|
||||
"permission_apply_status",
|
||||
"scenic_settlement",
|
||||
"scenic_settlement_review",
|
||||
"operating-area",
|
||||
|
||||
@ -15,7 +15,13 @@ extension HomeRoute {
|
||||
case .profileSpace:
|
||||
ProfileView()
|
||||
case .scenicSelection:
|
||||
HomeScenicSelectionView()
|
||||
ScenicSelectionView()
|
||||
case .permissionApply:
|
||||
PermissionApplyView()
|
||||
case .permissionApplyStatus:
|
||||
PermissionApplyStatusView()
|
||||
case .scenicApplication:
|
||||
ScenicApplicationView()
|
||||
case .moreFunctions:
|
||||
HomeMoreFunctionsView()
|
||||
case .settings:
|
||||
@ -58,31 +64,3 @@ struct HomeMigrationModuleView: View {
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
||||
/// 首页景区选择视图,允许用户切换当前账号上下文中的景区。
|
||||
struct HomeScenicSelectionView: View {
|
||||
@Environment(AccountContext.self) private var accountContext
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
|
||||
var body: some View {
|
||||
List(accountContext.scenicScopes) { scenic in
|
||||
Button {
|
||||
accountContext.selectScenic(id: scenic.id)
|
||||
dismiss()
|
||||
} label: {
|
||||
HStack {
|
||||
Text(scenic.name)
|
||||
.foregroundStyle(AppDesign.textPrimary)
|
||||
Spacer()
|
||||
if accountContext.currentScenic?.id == scenic.id {
|
||||
Image(systemName: "checkmark")
|
||||
.font(.system(size: AppMetrics.ControlSize.smallIcon, weight: .semibold))
|
||||
.foregroundStyle(AppDesign.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationTitle("景区选择")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user