keep edit

This commit is contained in:
edwinQQQ
2025-10-17 14:52:29 +08:00
parent 22185d799e
commit 517365879a
622 changed files with 40518 additions and 7298 deletions

View File

@@ -0,0 +1,305 @@
//
// EPLoginConfig.swift
// YuMi
//
// Created by AI on 2025-01-27.
// 统一配置文件 - 消除硬编码
//
import UIKit
/// 登录模块统一配置
struct EPLoginConfig {
// MARK: - Layout 布局尺寸
struct Layout {
/// 标准按钮宽度
static let buttonWidth: CGFloat = 294
/// 标准按钮高度
static let buttonHeight: CGFloat = 46
/// 登录按钮高度
static let loginButtonHeight: CGFloat = 56
/// 登录按钮间距
static let loginButtonSpacing: CGFloat = 24
/// 登录按钮左右边距
static let loginButtonHorizontalPadding: CGFloat = 30
/// 输入框/按钮统一高度
static let uniformHeight: CGFloat = 56
/// 输入框/按钮统一左右边距
static let uniformHorizontalPadding: CGFloat = 29
/// 输入框/按钮统一圆角
static let uniformCornerRadius: CGFloat = 28
/// 标准圆角半径(按钮/输入框)
static let cornerRadius: CGFloat = 23
/// Logo 尺寸
static let logoHeight: CGFloat = 400
/// Logo 距离顶部的距离
static let logoTopOffset: CGFloat = 80
/// E-PARTY 标题字号
static let epartiTitleFontSize: CGFloat = 56
/// E-PARTY 标题距离 view leading
static let epartiTitleLeading: CGFloat = 40
/// E-PARTY 标题距离 logoImage bottom 的偏移(负值表示向上)
static let epartiTitleBottomOffset: CGFloat = -30
/// 输入框之间的垂直间距
static let inputVerticalSpacing: CGFloat = 16
/// 输入框距离标题的距离
static let inputTitleSpacing: CGFloat = 60
/// 按钮距离输入框的距离
static let buttonTopSpacing: CGFloat = 40
/// 页面左右边距
static let horizontalPadding: CGFloat = 40
/// 紧凑左右边距
static let compactHorizontalPadding: CGFloat = 16
/// 标题字体大小
static let titleFontSize: CGFloat = 28
/// 按钮字体大小
static let buttonFontSize: CGFloat = 16
/// 输入框字体大小
static let inputFontSize: CGFloat = 14
/// 小字体大小(提示文字等)
static let smallFontSize: CGFloat = 12
/// 图标尺寸
static let iconSize: CGFloat = 24
/// 登录按钮图标尺寸
static let loginButtonIconSize: CGFloat = 30
/// 登录按钮图标左边距(距离白色背景)
static let loginButtonIconLeading: CGFloat = 33
/// 图标左边距
static let iconLeading: CGFloat = 15
/// 图标与文字间距
static let iconTextSpacing: CGFloat = 12
/// Checkbox 尺寸
static let checkboxSize: CGFloat = 18
/// 返回按钮尺寸
static let backButtonSize: CGFloat = 44
/// Feedback 按钮高度
static let feedbackButtonHeight: CGFloat = 22
static let feedbackButtonCornerRadius: CGFloat = 10.5
/// 输入框高度
static let inputHeight: CGFloat = 56
/// 输入框圆角
static let inputCornerRadius: CGFloat = 28
/// 输入框左右内边距
static let inputHorizontalPadding: CGFloat = 24
/// 输入框 icon 尺寸
static let inputIconSize: CGFloat = 20
/// 输入框边框宽度
static let inputBorderWidth: CGFloat = 1
/// 验证码按钮宽度
static let codeButtonWidth: CGFloat = 102
/// 验证码按钮高度
static let codeButtonHeight: CGFloat = 38
}
// MARK: - Colors 颜色主题
struct Colors {
/// 主题色(按钮背景)
static let primary = UIColor.systemPurple
/// 背景色
static let background = UIColor.white
static let backgroundTransparent = UIColor.white.withAlphaComponent(0.5)
/// 文字颜色
static let text = UIColor.darkText
static let textSecondary = UIColor.darkGray
static let textLight = UIColor.white
/// 图标颜色
static let icon = UIColor.darkGray
static let iconDisabled = UIColor.gray
/// 输入框颜色
static let inputBackground = UIColor.white.withAlphaComponent(0.1)
static let inputText = UIColor(red: 0x1F/255.0, green: 0x1B/255.0, blue: 0x4F/255.0, alpha: 1.0)
static let inputBorder = UIColor.white
static let inputBorderFocused = UIColor.systemPurple
/// 渐变色Login/Confirm按钮
static let gradientStart = UIColor(red: 0xF8/255.0, green: 0x54/255.0, blue: 0xFC/255.0, alpha: 1.0) // #F854FC
static let gradientEnd = UIColor(red: 0x50/255.0, green: 0x0F/255.0, blue: 0xFF/255.0, alpha: 1.0) // #500FFF
/// 验证码按钮颜色
static let codeButtonBackground = UIColor(red: 0x91/255.0, green: 0x68/255.0, blue: 0xFA/255.0, alpha: 1.0)
/// 按钮状态颜色
static let buttonEnabled = UIColor.systemPurple
static let buttonDisabled = UIColor.lightGray
/// 错误提示色
static let error = UIColor.systemRed
static let success = UIColor.systemGreen
/// 链接颜色
static let link = UIColor.black
static let linkUnderline = UIColor.black
}
// MARK: - Animation 动画配置
struct Animation {
/// 标准动画时长
static let duration: TimeInterval = 0.3
/// 短动画时长
static let shortDuration: TimeInterval = 0.15
/// 长动画时长
static let longDuration: TimeInterval = 0.5
/// 弹簧动画阻尼
static let springDamping: CGFloat = 0.75
/// 弹簧动画初速度
static let springVelocity: CGFloat = 0.5
/// 按钮点击缩放比例
static let buttonPressScale: CGFloat = 0.95
/// 错误抖动距离
static let shakeOffset: CGFloat = 10
/// 错误抖动次数
static let shakeCount: Int = 3
}
// MARK: - Validation 验证规则
struct Validation {
/// 密码最小长度
static let passwordMinLength = 6
/// 密码最大长度
static let passwordMaxLength = 16
/// 验证码长度
static let codeLength = 6
/// 手机号最小长度
static let phoneMinLength = 10
/// 手机号最大长度
static let phoneMaxLength = 15
/// 邮箱正则表达式
static let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
/// 手机号正则表达式
static let phoneRegex = "^[0-9]{10,15}$"
}
// MARK: - Timing 时间配置
struct Timing {
/// 验证码倒计时秒数
static let codeCountdownSeconds = 60
/// Toast 显示时长
static let toastDuration: TimeInterval = 2.0
/// 加载超时时间
static let requestTimeout: TimeInterval = 30.0
}
// MARK: - API 接口配置
struct API {
/// Client Secret
static let clientSecret = "uyzjdhds"
/// Client ID
static let clientId = "erban-client"
/// Grant Type
static let grantType = "password"
/// 版本号
static let version = "1"
/// 验证码类型:登录
static let codeTypeLogin = 1
/// 验证码类型:找回密码
static let codeTypeReset = 2
}
// MARK: - UserDefaults Keys
struct Keys {
/// 隐私协议已同意
static let policyAgreed = "HadAgreePrivacy"
/// 首次启动标识
static let hasLaunchedBefore = "HasLaunchedBefore"
}
// MARK: - Images 图片资源名称
struct Images {
/// 背景图
static let background = "vc_bg"
/// Logo 背景图
static let loginBg = "login_bg"
/// 登录按钮图标 - ID
static let iconLoginId = "icon_login_id"
/// 登录按钮图标 - Email
static let iconLoginEmail = "icon_login_email"
/// 图标 - 用户
static let iconPerson = "person.circle"
static let iconPersonFill = "person"
/// 图标 - 邮箱
static let iconEmail = "envelope.circle"
static let iconEmailFill = "envelope"
/// 图标 - 手机
static let iconPhone = "phone.circle"
static let iconPhoneFill = "phone"
/// 图标 - Apple
static let iconApple = "apple.logo"
/// 图标 - 锁
static let iconLock = "lock"
/// 图标 - 数字
static let iconNumber = "number"
/// 密码可见性图标
static let iconPasswordSee = "icon_password_see"
static let iconPasswordUnsee = "icon_password_unsee"
/// 图标 - 返回
static let iconBack = "chevron.left"
/// 图标 - 眼睛(隐藏)
static let iconEyeSlash = "eye.slash"
/// 图标 - 眼睛(显示)
static let iconEye = "eye"
/// Checkbox - 未选中
static let checkboxEmpty = "circle"
/// Checkbox - 已选中
static let checkboxFilled = "checkmark.circle"
}
// MARK: - Localized Strings Keys
struct LocalizedKeys {
/// ID 登录
static let idLogin = "1.0.37_text_26"
/// 邮箱登录
static let emailLogin = "20.20.51_text_1"
/// 隐私协议完整文本
static let policyFullText = "XPLoginViewController6"
/// 用户协议
static let userAgreement = "XPLoginViewController7"
/// 隐私政策
static let privacyPolicy = "XPLoginViewController9"
/// 反馈
static let feedback = "XPMineFeedbackViewController0"
}
}