import SwiftUI import UIKit /// 邀请好友(mock:后端暂无邀请接口,用 user.id 当邀请码占位,对齐安卓 InviteScreen 的 mock 状态)。 struct InviteView: View { @Environment(SessionStore.self) private var session @State private var copied = false private var inviteCode: String { if let id = session.user?.id { return String(format: "%06d", id) } return "------" } var body: some View { VStack(spacing: 20) { Image(systemName: "gift.fill") .font(.system(size: 56)) .foregroundStyle(AppColors.brand) Text("邀请好友一起省钱").font(.title3.bold()) Text("把傻瓜比价推荐给好友,一起比价领券") .font(.subheadline).foregroundStyle(.secondary) .multilineTextAlignment(.center) VStack(spacing: 6) { Text("我的邀请码").font(.caption).foregroundStyle(.secondary) Text(inviteCode).font(.system(.largeTitle, design: .monospaced).bold()) } .padding(24) .frame(maxWidth: .infinity) .background(AppColors.primaryBg) .clipShape(RoundedRectangle(cornerRadius: 14)) .padding(.horizontal, 32) Button { UIPasteboard.general.string = inviteCode copied = true } label: { Text(copied ? "已复制" : "复制邀请码") .font(.headline) .frame(maxWidth: .infinity) .padding(.vertical, 14) .background(AppColors.primary) .foregroundStyle(.black) .clipShape(RoundedRectangle(cornerRadius: 12)) } .padding(.horizontal, 32) Spacer() } .padding(.top, 40) .navigationTitle("邀请好友") .navigationBarTitleDisplayMode(.inline) } }