完善实名认证、钱包与打卡点模块 UI 与业务逻辑。

对齐 Android 实名认证流程与审核页、钱包提现/积分兑换界面,优化打卡点列表与详情交互,并补充相关资源、主题 token 与单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-13 16:28:10 +08:00
parent 07b2b9d459
commit 5138c1c11a
63 changed files with 3101 additions and 745 deletions

View File

@ -0,0 +1,82 @@
//
// WalletTokens.swift
// suixinkan
//
import CoreGraphics
import UIKit
/// Android
enum WalletTokens {
// MARK: - Colors
static let pageBackground = UIColor(hex: 0xF5F6F8)
static let withdrawPageBackground = UIColor(hex: 0xF9FAFB)
static let summaryBackground = UIColor(hex: 0x1677FF)
static let primary = UIColor(hex: 0x0073FF)
static let contentBackground = UIColor.white
static let filterBackground = UIColor(hex: 0xF6F6F6)
static let inputBackground = UIColor(hex: 0xF4F4F4)
static let inputFocusedBackground = UIColor(hex: 0xF4F5F9)
static let border = UIColor(hex: 0xEEEEEE)
static let cardBorder = UIColor(hex: 0xF3F4F6)
static let progressTrack = UIColor(hex: 0xF2F4F8)
static let textPrimary = UIColor.black
static let text333 = UIColor(hex: 0x333333)
static let textSecondary = UIColor(hex: 0x4B5563)
static let textMuted = UIColor(hex: 0x7B8EAA)
static let textTertiary = UIColor(hex: 0x9CA3AF)
static let textDisabled = UIColor(hex: 0xB3B8C2)
static let tabNormal = UIColor(hex: 0x666666)
static let points = UIColor(hex: 0xFF7B00)
static let danger = UIColor(hex: 0xEF4444)
static let progressDanger = UIColor(hex: 0xFF4D4F)
static let success = UIColor(hex: 0x22C55E)
static let settlementSuccess = UIColor(hex: 0x16C26D)
static let warning = UIColor(hex: 0xFF8A00)
static let successBackground = UIColor(hex: 0xF0FDF4)
static let settlementSuccessBackground = UIColor(hex: 0xEBFFF5)
static let warningBackground = UIColor(hex: 0xFFF3E8)
static let dangerBackground = UIColor(hex: 0xFFE7E7)
static let settlementDangerBackground = UIColor(hex: 0xFFF1F0)
static let infoBackground = UIColor(hex: 0xE6F1FF)
static let pointsPendingBackground = UIColor(hex: 0xFFF0E2)
static let orderBackground = UIColor(hex: 0xEFF6FF)
static let neutralChipBackground = UIColor(hex: 0xF4F4F4)
// MARK: - Layout
static let screenInset: CGFloat = 16
static let cardPadding: CGFloat = 16
static let cardGap: CGFloat = 16
static let rowGap: CGFloat = 12
static let compactGap: CGFloat = 8
static let tinyGap: CGFloat = 4
static let summaryHorizontalPadding: CGFloat = 24
static let summaryRadius: CGFloat = 24
static let contentRadius: CGFloat = 16
static let cardRadius: CGFloat = 12
static let innerRadius: CGFloat = 8
static let chipRadius: CGFloat = 4
static let inputHeight: CGFloat = 46
static let filterFieldHeight: CGFloat = 56
static let filterFieldMaxWidth: CGFloat = 148
static let progressHeight: CGFloat = 6
static let bottomButtonRadius: CGFloat = 12
static let bottomButtonHeight: CGFloat = 46
// MARK: - Typography
static let displayFont = UIFont.systemFont(ofSize: 36, weight: .bold)
static let metricBoldFont = UIFont.systemFont(ofSize: 18, weight: .bold)
static let metricMediumFont = UIFont.systemFont(ofSize: 18, weight: .medium)
static let titleFont = UIFont.systemFont(ofSize: 18, weight: .medium)
static let subtitleFont = UIFont.systemFont(ofSize: 16, weight: .medium)
static let tabFont = UIFont.systemFont(ofSize: 16)
static let tabSelectedFont = UIFont.systemFont(ofSize: 16, weight: .semibold)
static let bodyFont = UIFont.systemFont(ofSize: 14)
static let bodyMediumFont = UIFont.systemFont(ofSize: 14, weight: .medium)
static let captionFont = UIFont.systemFont(ofSize: 12)
static let captionMediumFont = UIFont.systemFont(ofSize: 12, weight: .medium)
static let stepFont = UIFont.systemFont(ofSize: 11)
}