hailin
c826da164c
fix(mobile-app): 支付成功后跳转到合同签署页面
...
修改认种支付成功后的流程:
- 合同签署启用且已完成实名认证 → 跳转到合同签署页面
- 合同签署启用但未完成实名认证 → 弹窗提示去做实名认证
- 合同签署未启用 → 显示成功提示返回个人中心
符合设计流程: 支付(冻结) → 签合同 → 24小时内签署完成/超时取消
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 01:04:00 -08:00
hailin
0c6e73de85
fix(mobile-app): 修复实名认证响应解析层级错误
...
后端返回嵌套结构 { data: { data: {...} } },
前端需要双层解析才能获取实际数据
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 00:45:52 -08:00
hailin
181d11d656
feat(kyc): 升级实名认证为三要素验证(姓名+身份证号+手机号)
...
- 后端 aliyun-kyc.provider.ts: 改用 ID_CARD_THREE 类型,添加 PhoneNumber 参数
- 后端 kyc-application.service.ts: 从用户账户获取手机号传递给 KYC provider
- 前端 kyc_id_page.dart: 更新文案为"三要素验证"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 23:54:13 -08:00
hailin
2edcfc3d0d
fix(kyc): 修复KYC状态接口响应解析错误
...
后端返回的数据结构是嵌套的 data.data,修复前端解析逻辑以正确读取 phoneVerified 等字段。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 22:40:51 -08:00
hailin
b10a158684
fix(kyc): 验证成功后刷新KYC状态
...
在跳转到实名认证页面前调用 ref.invalidate(kycStatusProvider)
确保手机号验证状态能正确更新
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 22:27:59 -08:00
hailin
1c62a8cb29
fix(kyc): 验证成功后点击完成跳转到实名认证页面
...
使用 context.go() 替代 context.pop(),直接跳转到实名认证页面
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 22:25:42 -08:00
hailin
a51fa39a2d
feat(kyc): 首次验证手机号成功后显示选择页面
...
- 添加 verifySuccess 步骤替代弹窗
- 显示"恭喜您!手机号已验证成功"
- 提供两个选择按钮:
- "仅验证手机号,不更换" - 返回上一页
- "继续更换手机号" - 进入输入新手机号步骤
- 已验证过的用户直接进入更换流程
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 22:23:13 -08:00
hailin
59e9cddf5b
feat(planting): 认种成功后检查实名认证状态
...
当CONTRACT_SIGNING_ENABLED=true时,认种成功后检查用户是否已完成实名认证:
- 如果未完成实名认证,显示提示弹窗引导用户去认证
- 如果已完成或功能未启用,按原有流程返回个人中心
新增:
- KycRequiredDialog 实名认证提示弹窗组件
- ContractSigningConfig 配置类和getConfig()方法
- kycServiceProvider 依赖注入
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 21:10:55 -08:00
hailin
bc34907a84
fix(auth): 注册验证码页面显示完整手机号
...
验证码页面不再隐藏手机号中间数字,改为完整显示
格式: 138 1234 5678
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 21:03:30 -08:00
hailin
1d6cbf9335
feat(kyc): 实名认证前检查手机号验证状态
...
- 点击实名认证时检查手机号是否已验证
- 未验证时显示提示弹窗,引导用户先验证手机号
- 实名认证卡片显示"请先验证手机号"提示
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 21:00:53 -08:00
hailin
a7dc85d8e1
fix(frontend): 添加 geolocator 依赖并移除未使用的 webview_flutter
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 20:45:51 -08:00
hailin
5b8c6bc317
feat(frontend): 添加电子合同签署功能前端实现
...
- 添加 ContractSigningService 合同签署 API 调用服务
- 添加 ContractCheckService App 启动时检查待签署合同
- 添加 ContractSigningPage 完整签署流程页面
- 24小时倒计时
- 滚动阅读 → 确认法律效力 → 手写签名
- 支持超时后补签
- 添加 PendingContractsPage 待签署合同列表
- 添加 SignaturePad 手写签名板组件
- HomeShellPage 启动时检查未签署合同,强制签署
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 20:15:13 -08:00
hailin
934323e4c6
feat(kyc): 优化手机号验证/更换流程
...
- 将入口重命名为"验证/更换手机号"
- 验证旧手机成功后更新 phoneVerified 状态
- 首次验证成功时显示恭喜弹窗,用户可选择完成或继续更换
- 已验证过的用户验证通过后直接进入下一步
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 07:50:54 -08:00
hailin
0a4ec49c8a
fix(kyc): 修复更换手机号页面发送验证码按钮可重复点击的问题
...
- 添加 _isSendingCode 状态检查,防止发送中重复点击
- 发送中显示 loading 指示器
- 倒计时期间和发送中均禁用按钮
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 07:38:26 -08:00
hailin
0f745a17fd
feat(kyc): 实现完整三层KYC认证功能
...
实现三层KYC认证系统,支持后台配置开关:
- 层级1: 实名认证 (二要素: 姓名+身份证号)
- 层级2: 实人认证 (人脸活体检测)
- 层级3: KYC (证件照上传验证)
后端变更:
- 更新 Schema 添加三层认证字段和 KycConfig 表
- 添加 migration 支持增量字段和配置表
- 重写 AliyunKycProvider 支持阿里云实人认证 API
- 重写 KycApplicationService 实现三层认证逻辑
- 更新 KycController 添加用户端和管理端 API
前端变更:
- 更新 KycService 支持三层认证 API
- 重构 KycEntryPage 显示三层认证状态
- 重构 KycIdPage 用于层级1实名认证
- 新增 KycFacePage 用于层级2人脸认证
- 新增 KycIdCardPage 用于层级3证件照上传
- 添加 uploadFile 方法到 ApiClient
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 07:14:11 -08:00
hailin
a549768de4
feat(kyc): 实现实名认证和更换手机号功能
...
主要变更:
- 注册流程: 添加跳过短信验证选项(3分钟后显示)
- KYC功能: 手机号验证 + 身份证实名认证(阿里云二要素)
- 更换手机号: 四步验证流程(旧手机验证→输入新号→新手机验证→确认)
- 独立管控: phoneVerified, emailVerified, kycStatus 三个状态分别管理
后端:
- 新增 KYC 控制器和服务
- 新增更换手机号 API 端点
- Schema 添加 KYC 和验证状态字段
- 集成阿里云身份二要素验证
前端:
- 新增 KYC 入口页、手机验证页、身份证验证页
- 新增更换手机号页面
- Profile 页面添加实名认证入口
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:38:39 -08:00
hailin
50bc5a5a20
fix(stickman): 使用顶部对齐实现昵称与数量标签的中心对齐
...
昵称标签和数量标签高度相同,顶部对齐即可实现水平中心对齐
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 04:06:33 -08:00
hailin
d4b802502e
fix: 修复验证码竞态条件和火柴人对齐问题
...
1. 修复验证码发送的竞态条件:
- 调整执行顺序,先存储验证码到 Redis,再发送短信/邮件
- 避免用户收到验证码后立即输入但 Redis 中尚未存储的情况
- 影响:sendSmsCode、sendWithdrawSmsCode、sendResetPasswordSmsCode、sendEmailCode
2. 修复火柴人组件昵称与数量标签对齐问题:
- 使用底部对齐 + Padding 让昵称标签与数量标签在同一水平线
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:54:25 -08:00
hailin
ee4cac59c7
fix(profile): 修复嵌套 Row 无界约束导致的白屏问题
...
在 _buildSettlementSection 的"已结算"区域,内层 Row 中使用了 Flexible,
但内层 Row 没有宽度约束,导致 RenderFlex unbounded width constraints 错误。
通过在内层 Row 外添加 Expanded 包裹来提供宽度约束。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:41:23 -08:00
hailin
1cd4b352a4
debug(mobile): 添加火柴人组件调试日志
...
- 记录宽度计算的各个参数
- 添加clamp保护防止负值宽度
- 打印排名数据详情
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:32:22 -08:00
hailin
ba3e96c606
fix(mobile): 修复SVG头像渲染导致的布局问题
...
- 使用RepaintBoundary隔离SVG渲染
- 添加placeholderBuilder防止加载时闪烁
- 确保SizedBox固定尺寸约束
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:26:24 -08:00
hailin
a38727eb7f
Revert "revert(profile): 回滚profile_page.dart到稳定版本"
...
This reverts commit b06f186836 .
2025-12-24 03:16:39 -08:00
hailin
b06f186836
revert(profile): 回滚profile_page.dart到稳定版本
...
修复SVG头像渲染导致的白屏问题
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:11:24 -08:00
hailin
e2872b13fb
revert(mobile): 回滚火柴人组件到稳定版本
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 03:00:52 -08:00
hailin
27bee6d7f1
fix(mobile): 修复火柴人组件布局错误,避免嵌套Stack
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 02:53:21 -08:00
hailin
0623169d19
fix(mobile): 修正火柴人进度计算,使用固定目标值
...
- 省公司: 目标固定5万,达到或超过5万停在红旗
- 市公司: 目标固定1万,达到或超过1万停在红旗
- 进度 = completedCount / targetCount,clamp到0-1
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 02:16:54 -08:00
hailin
7d1a392d9e
fix(mobile): 调整火柴人终点位置,停在红旗左边
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 02:14:27 -08:00
hailin
a823490c96
fix(mobile): 修正火柴人终点位置计算
...
- 起点: 70 (昵称区域右边)
- 终点: containerWidth - 92 (红旗左边 - 火柴人宽度)
- 100%时火柴人右边对齐红旗左边
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 02:12:36 -08:00
hailin
3e59d56f92
fix(mobile): 简化火柴人位置计算逻辑
...
使用简单直接的比例计算:
- 起点 = 昵称区域右边 (70px)
- 终点 = 红旗左边 (containerWidth - 62px)
- 火柴人位置 = 起点 + (终点 - 起点) * 进度
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:48:08 -08:00
hailin
71304dbb69
fix(mobile): 改进用户详情页风格和火柴人进度计算
...
- 用户详情页使用与"我的"页面一致的浅黄色渐变背景
- 移除深金棕色AppBar,改用简洁的顶部导航栏
- 火柴人进度使用后端返回的progressPercentage而非前端计算
- 添加finalTarget和progressPercentage字段到排名响应
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:41:41 -08:00
hailin
906279ee8a
fix(mobile): 修复用户详情页头像和用户ID显示问题
...
- 修复avatarUrl为SVG数据时的渲染问题,添加SVG检测逻辑
- 修复后端getUserInfoBySequence响应解析,处理包装格式
- 将用户详情弹窗改为全屏页面,提供更好的用户体验
- 新增统计数据卡片展示直推人数、伞下用户、认种数量
- 改进卡片样式,添加图标和阴影效果
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:28:28 -08:00
hailin
12c0c796f4
fix(mobile): 修正火柴人100%进度时到达红旗位置的计算
...
- 精确计算终点位置:火柴人列右边缘对齐红旗左边缘
- 起点从昵称标签右边4px间距开始
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:18:27 -08:00
hailin
c1c4a52ad3
fix(mobile): 优化火柴人动画布局避免标签重叠
...
- 昵称和数量标签顶部对齐在同一水平高度
- 添加4px最小间距防止起步阶段标签重叠
- 火柴人从昵称右边开始移动到红旗位置
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:09:27 -08:00
hailin
6745721399
fix: 修复火柴人排名点击查看用户详情功能
...
- 后端DTO添加accountSequence字段
- 后端服务返回accountSequence
- 前端映射accountSequence到StickmanRankingData
- 优化错误提示样式与页面风格一致
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:05:18 -08:00
hailin
f73e477041
fix(mobile-app): 待领取奖励卡片也去掉重复的权益类型前缀
...
与可结算卡片保持一致,只显示"来自用户xxx的认种"部分
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:02:38 -08:00
hailin
e8f65f3fcd
fix(mobile-app): 可结算奖励卡片去掉重复的权益类型前缀
...
memo 中已包含权益类型(如"分享权益:来自用户xxx的认种"),
卡片标题也显示了权益类型,所以只显示"来自用户xxx的认种"部分
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:01:19 -08:00
hailin
93f6a53bdb
feat(mobile): 优化火柴人赛跑组件布局
...
- 将昵称移到左侧固定位置,与右边红旗相呼应
- 保持数量标签在火柴人上方,间距2像素
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:37:42 -08:00
hailin
5ed1a0b143
feat(mobile): 优化火柴人赛跑组件布局
...
- 将昵称移到左侧固定位置,与右边红旗相呼应
- 缩小数量标签与动画之间的间距
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:28:01 -08:00
hailin
f0f4aa474a
feat(mobile-app): 可结算奖励卡片显示来源信息
...
在"我的"页面可结算板块中,每笔收益现在会显示来源信息(通过 memo 字段)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:21:58 -08:00
hailin
27a4bbfbef
feat(authorization): 实现火柴人排名用户详情查看功能
...
后端:
- identity-service: 新增内部API获取用户详情(手机号、邮箱、KYC等)
- referral-service: 新增内部API获取用户团队统计(直推人数、伞下用户数、认种数量)
- authorization-service:
- 新增用户公开资料和私密资料API
- 聚合identity-service和referral-service数据
- 省团队以上权限可查看私密信息(脱敏处理)
前端:
- 新增UserProfileDialog弹窗组件,支持查看用户详情
- stickman_race_widget: 排名列表项可点击查看用户详情
- authorization_service: 新增getUserProfile/getUserPrivateProfile方法
用户详情包括:
- 基本信息: 用户ID、昵称、头像、注册时间、所在地区
- 团队数据: 推荐人、直推人数、伞下用户数、个人/团队认种数
- 授权信息: 授权类型、权益激活状态
- 联系信息(特权用户可见): 手机号、邮箱、真实姓名(脱敏)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:42:19 -08:00
hailin
4e670ad774
fix(wallet): 隐藏临时流水记录并统一充值名称显示
...
- 在流水明细查询中排除冻结/解冻等临时记录
- 将"充值 (KAVA)"统一改为"充值"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:00:31 -08:00
hailin
a38aac5581
feat(email): 实现邮箱绑定/解绑功能
...
后端:
- 新增 EmailService 邮件发送服务,支持 Gmail SMTP
- 新增 EmailCode 数据模型用于存储邮箱验证码
- UserAccount 添加 email 字段
- 新增 API 接口:
- GET /user/email-status 获取邮箱绑定状态
- POST /user/send-email-code 发送邮箱验证码
- POST /user/bind-email 绑定邮箱
- POST /user/unbind-email 解绑邮箱
- 新增 DTOs: SendEmailCodeDto, BindEmailDto, UnbindEmailDto
- 新增 Commands: SendEmailCodeCommand, BindEmailCommand, UnbindEmailCommand
前端:
- account_service 新增邮箱相关方法和 EmailStatus 类
- bind_email_page 更新为使用真实 API:
- 绑定/更换邮箱功能
- 独立的解绑验证码输入和倒计时
- 解绑确认对话框
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 20:53:20 -08:00
hailin
69fa43ebee
feat(auth): 实现修改密码API和Token过期自动跳转登录
...
后端:
- 新增 ChangePasswordCommand 和 ChangePasswordDto
- 新增 POST /user/change-password 接口
- 实现 changePassword() 方法,验证旧密码后更新新密码
前端:
- 新增 AuthEventService 认证事件服务,处理 token 过期事件
- api_client 在 token 刷新失败时发送过期事件
- App 监听认证事件,token 过期时清除账号状态并跳转登录页
- splash_page 优化路由逻辑:退出登录后跳转手机登录页而非向导页
- change_password_page 调用真实 API 修改密码
- account_service 新增 changePassword() 方法
- multi_account_service 退出登录时清除 phoneNumber 和 isPasswordSet
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 20:25:56 -08:00
hailin
19bd804a21
feat(frontend): 前端时间显示统一转换为本地时间
...
- mobile-app: 新增 DateTimeUtils 工具类处理 UTC -> 本地时间转换
- mobile-app: 修改 ledger_detail_page 和 profile_page 使用本地时间
- admin-web: 添加 dayjs 自动转换注释说明
- mobile-upgrade: 优化 toLocaleString 格式化选项
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:45:51 -08:00
hailin
6f8eaa8e92
fix(mobile-app): 优化数字显示组件防止自动换行
...
使用 FittedBox(fit: BoxFit.scaleDown) 包装所有可变数字显示组件,
确保当数字位数多时自动缩小字号而不是换行,提升用户视觉体验。
优化的页面和组件:
- stickman_race_widget: 火柴人标签、排名列表数量、进度百分比
- team_tree_widget: 节点认种数、省略节点数量、详情弹窗
- ranking_page: 龙虎榜团队认种量
- trading_page: DST余额、绿积分余额
- profile_page: 各类收益金额、奖励项金额
- withdraw_usdt_page: 提款页余额
- deposit_usdt_page: 充值页余额
- ledger_detail_page: 净收益、收支概览、流水金额
- authorization_apply_page: 累计认种数
- planting_quantity_page: 可用余额
- mining_page: 用户序列号
- account_switch_page: 账号用户名、序列号
- wallet_created_page: 钱包地址信息
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:33:51 -08:00
hailin
085cb3f40b
fix(mobile-app): 排名详情本月收益单位从 USDT 改为绿积分
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 05:35:22 -08:00
hailin
b052afa065
feat(mobile-app): 使用 Lottie 动画替换火柴人 CustomPaint 实现
...
- 用 Lottie.asset 加载 stickman_runner.json 替换手动绘制的火柴人
- 使用 ColorFiltered 保持颜色自定义功能(当前用户金色,其他用户棕色)
- 修复火柴人到达100%时无法到达红旗位置的问题
- 代码从约200行精简到约30行,动画效果更流畅
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 04:34:15 -08:00
hailin
0a64024773
fix(mobile-app): 为每个火柴人跑道添加独立终点旗帜
...
- 移除单一的共享终点旗帜
- 为每个跑道生成独立的红旗,与火柴人垂直位置对齐
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:29:11 -08:00
hailin
63cf52b9c1
fix(mobile-app): 修复火柴人容器宽度与其他组件不一致
...
- 移除火柴人容器的水平margin,与页面其他内容保持一致
- 重新计算火柴人位置,正确处理容器边距
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:27:43 -08:00
hailin
fd9df5d065
fix(mobile-app): 修复火柴人超出屏幕边界问题
...
- 重新计算火柴人水平位置,预留终点区域和火柴人宽度
- 使用 clamp 确保火柴人不会超出右边界
- 当进度达到100%时,火柴人停在终点红旗旁边
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 03:25:33 -08:00