完善每日签到功能
This commit is contained in:
@@ -1,107 +1,53 @@
|
||||
<view class="checkin-container">
|
||||
<!-- 顶部信息区 -->
|
||||
<view class="header">
|
||||
<view class="month-info">{{currentYear}}年{{currentMonth + 1}}月</view>
|
||||
<view class="checkin-stats">
|
||||
<view class="container">
|
||||
<view class="summary-card">
|
||||
<view class="month-display">{{ currentYear }}年{{ currentMonth }}月</view>
|
||||
<view class="stats-row">
|
||||
<view class="stat-item">
|
||||
<view class="stat-value">{{continuousCheckinDays}}</view>
|
||||
<view class="stat-label">连续签到</view>
|
||||
<text class="stat-number">{{ consecutiveCheckInDays }}</text>
|
||||
<text class="stat-label">连续签到</text>
|
||||
</view>
|
||||
<view class="divider-v"></view>
|
||||
<view class="stat-item">
|
||||
<view class="stat-value">{{totalCheckinDays}}</view>
|
||||
<view class="stat-label">本月签到</view>
|
||||
<text class="stat-number">{{ monthCheckInDays }}</text>
|
||||
<text class="stat-label">本月签到</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="today-checkin-box">
|
||||
<view class="checkin-button" wx:if="{{ !todayCheckedIn }}" bindtap="handleCheckIn">
|
||||
<text>签到</text>
|
||||
</view>
|
||||
<view class="checked-in-status" wx:else>
|
||||
<text>已签到</text>
|
||||
</view>
|
||||
</view>
|
||||
<text class="checkin-tip" wx:if="{{ todayCheckedIn }}">今日已完成签到,明天继续哦~</text>
|
||||
<text class="checkin-tip" wx:else>点击签到,记录美好生活~</text>
|
||||
</view>
|
||||
|
||||
<!-- 签到按钮区 -->
|
||||
<view class="checkin-button-area">
|
||||
<button
|
||||
class="checkin-btn {{isCheckedToday ? 'checked' : ''}} {{isAnimating ? 'animating' : ''}}"
|
||||
bindtap="handleCheckin"
|
||||
disabled="{{isCheckedToday || isAnimating}}"
|
||||
>
|
||||
<view class="btn-content">
|
||||
{{isCheckedToday ? '已签到' : '今日签到'}}
|
||||
<image
|
||||
class="check-icon"
|
||||
src="/images/check.png"
|
||||
mode="widthFix"
|
||||
style="width: 40rpx; height: auto; display: {{isCheckedToday ? 'block' : 'none'}};"
|
||||
></image>
|
||||
</view>
|
||||
</button>
|
||||
<view class="checkin-tip">
|
||||
{{isCheckedToday ? '今日已完成签到,明天继续哦~' : '点击按钮完成今日签到,领取奖励'}}
|
||||
<view class="calendar-card">
|
||||
<view class="calendar-header">
|
||||
<text class="calendar-title">签到日历</text>
|
||||
</view>
|
||||
|
||||
<view class="calendar-weekdays">
|
||||
<block wx:for="{{ weekdays }}" wx:key="*this">
|
||||
<text class="weekday-item">{{ item }}</text>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 日历签到区 -->
|
||||
<view class="calendar-section">
|
||||
<view class="section-title">签到日历</view>
|
||||
<!-- 星期头部 -->
|
||||
<view class="weekdays">
|
||||
<view class="weekday">日</view>
|
||||
<view class="weekday">一</view>
|
||||
<view class="weekday">二</view>
|
||||
<view class="weekday">三</view>
|
||||
<view class="weekday">四</view>
|
||||
<view class="weekday">五</view>
|
||||
<view class="weekday">六</view>
|
||||
</view>
|
||||
<!-- 日历格子 -->
|
||||
<view class="calendar-grid">
|
||||
<block wx:for="{{calendarDays}}" wx:key="index">
|
||||
<view class="calendar-days">
|
||||
<block wx:for="{{ calendarDays }}" wx:key="index">
|
||||
<view
|
||||
class="calendar-day {{item.type === 'empty' ? 'empty' : ''}} {{item.isChecked ? 'checked' : ''}} {{item.isToday ? 'today' : ''}}"
|
||||
class="day-item {{ item.isPrevMonth || item.isNextMonth ? 'other-month' : '' }} {{ item.isToday ? 'today' : '' }}"
|
||||
data-date="{{ item.fullDate }}"
|
||||
bindtap="handleDayClick"
|
||||
>
|
||||
<view class="day-number">
|
||||
{{item.type !== 'empty' ? item.day : ''}}
|
||||
<view class="day-content {{ item.isCheckedIn ? 'checked-in' : '' }}">
|
||||
<text class="day-number">{{ item.day }}</text>
|
||||
</view>
|
||||
<!-- 签到对勾(仅已签到显示) -->
|
||||
<image
|
||||
class="check-mark"
|
||||
src="/images/check.png"
|
||||
mode="widthFix"
|
||||
style="width: 24rpx; height: auto; display: {{item.isChecked ? 'block' : 'none'}};"
|
||||
></image>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 奖励区 -->
|
||||
<view class="rewards-section">
|
||||
<view class="section-title">签到奖励</view>
|
||||
<view class="rewards-list">
|
||||
<view class="reward-item {{continuousCheckinDays >= 3 ? 'achieved' : ''}}">
|
||||
<view class="reward-days">连续签到3天</view>
|
||||
<view class="reward-separator">→</view>
|
||||
<view class="reward-content">获得10积分</view>
|
||||
<view class="reward-status" wx:if="{{continuousCheckinDays >= 3}}">
|
||||
<image src="/images/check.png" mode="widthFix" style="width: 24rpx; height: auto;"></image>
|
||||
已达成
|
||||
</view>
|
||||
</view>
|
||||
<view class="reward-item {{continuousCheckinDays >= 7 ? 'achieved' : ''}}">
|
||||
<view class="reward-days">连续签到7天</view>
|
||||
<view class="reward-separator">→</view>
|
||||
<view class="reward-content">获得30积分 + 优惠券</view>
|
||||
<view class="reward-status" wx:if="{{continuousCheckinDays >= 7}}">
|
||||
<image src="/images/check.png" mode="widthFix" style="width: 24rpx; height: auto;"></image>
|
||||
已达成
|
||||
</view>
|
||||
</view>
|
||||
<view class="reward-item {{continuousCheckinDays >= 15 ? 'achieved' : ''}}">
|
||||
<view class="reward-days">连续签到15天</view>
|
||||
<view class="reward-separator">→</view>
|
||||
<view class="reward-content">获得50积分 + 专属权益</view>
|
||||
<view class="reward-status" wx:if="{{continuousCheckinDays >= 15}}">
|
||||
<image src="/images/check.png" mode="widthFix" style="width: 24rpx; height: auto;"></image>
|
||||
已达成
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
Reference in New Issue
Block a user