完善实名认证、钱包与打卡点模块 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

@ -330,7 +330,7 @@ private final class CloudPickCell: UICollectionViewCell {
private let imageView = UIImageView()
private let nameLabel = UILabel()
private let badgeView = UIView()
private let selectionIconView = UIImageView(image: UIImage(systemName: "checkmark.circle.fill"))
private let folderIconView = UIImageView()
override init(frame: CGRect) {
@ -351,14 +351,14 @@ private final class CloudPickCell: UICollectionViewCell {
nameLabel.numberOfLines = 2
nameLabel.textAlignment = .center
badgeView.backgroundColor = AppColor.primary
badgeView.layer.cornerRadius = 10
badgeView.isHidden = true
selectionIconView.tintColor = AppColor.primary
selectionIconView.contentMode = .scaleAspectFit
selectionIconView.isHidden = true
contentView.addSubview(imageView)
contentView.addSubview(folderIconView)
contentView.addSubview(nameLabel)
contentView.addSubview(badgeView)
contentView.addSubview(selectionIconView)
imageView.snp.makeConstraints { make in
make.top.leading.trailing.equalToSuperview()
@ -372,7 +372,7 @@ private final class CloudPickCell: UICollectionViewCell {
make.top.equalTo(imageView.snp.bottom).offset(AppSpacing.xxs)
make.leading.trailing.bottom.equalToSuperview().inset(AppSpacing.xxs)
}
badgeView.snp.makeConstraints { make in
selectionIconView.snp.makeConstraints { make in
make.top.trailing.equalToSuperview().inset(AppSpacing.xxs)
make.width.height.equalTo(20)
}
@ -388,7 +388,7 @@ private final class CloudPickCell: UICollectionViewCell {
imageView.kf.cancelDownloadTask()
imageView.image = nil
folderIconView.isHidden = true
badgeView.isHidden = true
selectionIconView.isHidden = true
contentView.alpha = 1
}
@ -396,7 +396,7 @@ private final class CloudPickCell: UICollectionViewCell {
nameLabel.text = file.name
contentView.layer.borderWidth = isSelected ? 2 : 0
contentView.layer.borderColor = AppColor.primary.cgColor
badgeView.isHidden = !isSelected
selectionIconView.isHidden = !isSelected
if isGridMode {
imageView.snp.remakeConstraints { make in