import SwiftUI import UIKit /// 设置。iOS 无无障碍/悬浮窗那套权限卡(安卓特有),只保留账户/通用。 struct SettingsView: View { @Environment(SessionStore.self) private var session @State private var showDeleteConfirm = false @State private var deleting = false private let service = UserService() var body: some View { List { Section("通用") { NavigationLink { AboutView() } label: { Label("关于傻瓜比价", systemImage: "info.circle") } NavigationLink { PrivacyPolicyView() } label: { Label("隐私政策", systemImage: "lock.shield") } Button { if let url = URL(string: UIApplication.openSettingsURLString) { UIApplication.shared.open(url) } } label: { Label("通知设置", systemImage: "bell") } } Section { Button(role: .destructive) { showDeleteConfirm = true } label: { Text(deleting ? "注销中…" : "注销账号") } .disabled(deleting) } footer: { Text("注销后,你的资料、金币、记录将被删除或匿名化,不可恢复。") } } .navigationTitle("设置") .navigationBarTitleDisplayMode(.inline) .alert("确认注销账号?", isPresented: $showDeleteConfirm) { Button("注销", role: .destructive) { Task { await deleteAccount() } } Button("取消", role: .cancel) {} } message: { Text("此操作不可恢复。") } } private func deleteAccount() async { deleting = true defer { deleting = false } _ = try? await service.deleteAccount() await session.logout() // 注销后登出;ProfileView 切回登录引导,导航栈自动重置 } }