feat(user): 完善提现规则展示与秒杀购买交互

- 新增提现规则卡片,展示提现额度、最低提现、单次限额、每日限额、每日提现次数、提现时间、到账时间、手续费等
- 添加提现规则说明文字,提示审核时间、提现次数限制、金额范围和提现时间段
- 优化秒杀详情和秒杀页面购买按钮交互,增加秒杀状态提示(未开始、已结束、已抢光)
- 统一秒杀购买事件处理函数名为 handleBuyClick,取消按钮条件绑定,增强点击响应体验
- 新增提现规则相关样式,确保提现规则卡和说明区块视觉效果一致
This commit is contained in:
2026-06-23 16:52:21 +08:00
parent 45b7b100ab
commit e72ca89b2b
5 changed files with 191 additions and 25 deletions

View File

@@ -91,14 +91,26 @@ const SeckillDetailPage: React.FC = () => {
setCountdown(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`)
}
const handleBuyNow = () => {
const handleBuyClick = () => {
if (!seckill) return
if (seckill.stock <= 0) {
Taro.showToast({ title: '已抢光', icon: 'none' })
if (seckill.status === 0) {
Taro.showToast({ title: '活动尚未开始,请耐心等待', icon: 'none' })
return
}
if (seckill.status === 2 || new Date(seckill.endTime).getTime() <= Date.now()) {
Taro.showToast({ title: '活动已结束,下次再来', icon: 'none' })
return
}
if (seckill.stock <= 0) {
Taro.showToast({ title: '已抢光,下次再来', icon: 'none' })
return
}
if (submitting) return
// 先拉取商品规格(如果没有的话)
if (!product && seckill.goodsId) {
Taro.showLoading({ title: '加载规格...' })
@@ -255,8 +267,11 @@ const SeckillDetailPage: React.FC = () => {
<View className="bg-white border-t border-gray-100 px-4 py-3">
<View
className="w-full py-3 rounded-full text-white text-center text-base font-medium"
style={{ backgroundColor: isActive ? '#ef4444' : '#d1d5db' }}
onClick={isActive && !submitting ? handleBuyNow : undefined}
style={{
backgroundColor: isActive && !submitting ? '#ef4444' : '#d1d5db',
opacity: submitting ? 0.7 : 1,
}}
onClick={handleBuyClick}
>
<Text>
{submitting ? '抢购中...' : isActive ? (seckill.stock > 0 ? '立即抢购' : '已抢光') : seckill.status === 0 ? '即将开始' : '已结束'}