<template>
  <view class="page-container">
    <view class="task-center">
      <uv-navbar
        title="任务中心"
        :autoBack="true"
        fixed
        placeholder
        titleStyle="color: #222; font-weight: 500;"
        :border="false"
        :bgColor="'#fff9e2'"
      >
        <template #left>
          <BackArrow :size="56" color="#222" @back="goBack" />
        </template>
      </uv-navbar>
      <view class="navbar-placeholder"></view>
      <!-- 账户剩余 -->
      <view class="account-balance">
        <view class="balance-label">账户剩余</view>
        <view class="balance-value"><text class="num">9</text> <text class="unit">张 推荐票</text></view>
      </view>
      <!-- 打卡得奖励 -->
      <view class="checkin-section">
        <view class="section-header">
          <text>打卡得奖励</text>
          <view class="record-btn">打卡记录</view>
        </view>
        <view class="checkin-grid">
          <view v-for="day in 8" :key="day" class="checkin-day" :class="{ active: day <= checkedDays }">
            <view class="day-label" :class="{ bold: day <= checkedDays }">第{{ day }}天</view>
            <image class="ticket-img" src="https://tse1-mm.cn.bing.net/th/id/OIP-C.pca_tFb6ZjyDNdQYgFvi0wHaE7?w=219&h=180&c=7&r=0&o=5&dpr=1.1&pid=1.7" mode="aspectFit" />
            <view class="ticket-num">+1</view>
          </view>
        </view>
        <button
          class="checkin-btn"
          :class="{ 'checked-btn': isChecked }"
          :disabled="isChecked"
          @click="handleCheckin"
        >
          {{ isChecked ? '已签到' : '签到得奖励' }}
        </button>
      </view>
      <!-- 更多任务 -->
      <view class="more-tasks">
        <view class="more-header">更多任务</view>
        <view class="task-list">
          <view class="task-item" v-for="(task, idx) in tasks" :key="idx" :class="{ 'no-border': idx === tasks.length - 1 }">
            <view class="task-info">
              <view class="task-title">{{ task.title }}</view>
              <view class="task-desc">推荐票 +1</view>
            </view>
            <button
              class="get-btn"
              :class="{ 'received-btn': task.received }"
              :disabled="task.received"
              @click="handleReceive(idx)"
            >
              {{ task.received ? '已领取' : '去领取' }}
            </button>
          </view>
        </view>
      </view>
    </view>
  </view>
</template>

<script>
import uvNavbar from '@/uni_modules/uv-navbar/components/uv-navbar/uv-navbar.vue'
import uvIcon from '@/uni_modules/uv-icon/components/uv-icon/uv-icon.vue'
import BackArrow from './components/BackArrow.vue'
export default {
  components: { uvNavbar, uvIcon, BackArrow },
  data() {
    return {
      checkedDays: 3, // 已签到天数
      tasks: [
        { title: '观看视频广告', received: false },
        { title: '每日首阅三个章节', received: false },
        { title: '每日首条评论', received: false },
      ],
      isChecked: false, // 新增：签到按钮状态
    }
  },
  methods: {
    goBack() {
      uni.navigateBack();
    },
    handleCheckin() {
      if (this.checkedDays < 8) {
        this.checkedDays++;
        this.isChecked = true;
        uni.showToast({ title: '签到成功', icon: 'success' });
      } else {
        this.isChecked = true;
        uni.showToast({ title: '已全部签到', icon: 'none' });
      }
    },
    handleReceive(idx) {
      this.tasks[idx].received = true;
      uni.showToast({ title: '领取成功', icon: 'success' });
    },
  },
}
</script>

<style scoped lang="scss">
.page-container {
  height: 100vh;
  overflow: hidden;
}
.task-center {
  background: #f8f8f8;
  height: 100vh;
  padding-bottom: 40rpx;
  overflow: hidden;
  box-sizing: border-box;
}
.navbar-placeholder {
  height: 100rpx;
}
.account-balance {
  background: linear-gradient(90deg, #ffe16b, #ffd700);
  border-radius: 20rpx;
  margin: 24rpx 24rpx 0 24rpx;
  padding: 24rpx 32rpx;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 30rpx;
  color: #333;
  .balance-label {
    font-weight: 500;
  }
  .balance-value {
    font-weight: bold;
    color: #bfa100;
    .num {
      font-size: 24rpx;
    }
    .unit {
      font-size: 22rpx;
    }
  }
}
.checkin-section {
  background: #fff;
  border-radius: 20rpx;
  margin: 24rpx;
  padding: 32rpx 24rpx 24rpx 24rpx;
  box-shadow: 0 2rpx 8rpx rgba(255, 215, 0, 0.08);
  border: 4rpx solid #ffe16b;
  .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 28rpx;
    font-weight: 600;
    margin-bottom: 24rpx;
    .record-btn {
      background:  #d6ff4b ;
      color: #383938;
      border-radius: 24rpx;
      padding: 6rpx 28rpx;
      font-size: 24rpx;
    }
  }
  .checkin-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 18rpx;
    margin-bottom: 32rpx;
    .checkin-day {
      width: 22%;
      background: #f7f7f7;
      border-radius: 12rpx;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 18rpx 0 10rpx 0;
      border: 2rpx solid #f0f0f0;
      &.active {
        background: #d6ff4b !important;
        border-color: #b6e900 !important;
        .day-label, .ticket-num {
          color: #222 !important;
          font-weight: bold;
        }
      }
      .day-label {
        font-size: 24rpx;
        font-weight: 600;
        height: 90rpx;
        margin-bottom: 8rpx;
        color: #333;
        &.bold {
          font-weight: bold;
        }
      }
      .ticket-img {
        width: 48rpx;
        height: 36rpx;
        margin-bottom: 6rpx;
        display: flex;
      }
      .ticket-num {
        font-size: 22rpx;
        color: #bfa100;
      }
    }
  }
  .checkin-btn {
    width: 600rpx;
    background: linear-gradient(90deg, #ffe16b, #ffd700);
    color: #333;
    font-size: 30rpx;
    border-radius: 46rpx;
    padding: 18rpx 0;
    font-weight: bold;
    margin-top: 8rpx;
    transition: background 0.2s;
  }
}
.checked-btn {
  background: linear-gradient(90deg, #e0e0e0, #bdbdbd) !important;
  color: #444 !important;
  cursor: not-allowed;
}
.more-tasks {
  background: #faffea;
  border-radius: 20rpx;
  margin: 0 24rpx;
  padding: 24rpx 24rpx 8rpx 24rpx;
  margin-top: 100rpx;
  .more-header {
    font-size: 28rpx;
    color: #bfa100;
    font-weight: 600;
    margin-bottom: 18rpx;
  }
  .task-list {
    .task-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: #fff;
      border-radius: 0;
      margin: 0;
      padding: 18rpx 20rpx 10rpx 20rpx;
      border-bottom: 1rpx solid #f2f2f2;
      
      .task-info {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        flex: 1;
        min-width: 0;
        margin-top: 30rpx;
        .task-title {
          font-size: 26rpx;
          color: #222;
          font-weight: bold;
        }
        .task-desc {
          font-size: 20rpx;
          color: #bbb;
          margin-top: 4rpx;
        }
      }
      .get-btn {
        background: #ffd700;
        color: #fff;
        font-size: 24rpx;
        border-radius: 24rpx;
        padding: 0 28rpx;
        font-weight: bold;
        border: none;
        height: 48rpx;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: none;
        white-space: nowrap;
        margin-left: 18rpx;
        transition: background 0.2s;
      }
      .received-btn {
        background: linear-gradient(90deg, #e0e0e0, #bdbdbd) !important;
        color: #444 !important;
        cursor: not-allowed;
      }
      &.no-border {
        border-bottom: none;
      }
    }
  }
}
</style>
