<template>
  <view class="container">
    <!-- 顶部导航 -->
    <view class="nav-bar">
      <view class="back" @tap="goBack">
        <text class="iconfont">←</text>
      </view>
      <text class="title">质检报告</text>
    </view>
    <view class="subtitle">该报告由「潮海回收」质检查验出具</view>

    <!-- 检测类型标签 -->
    <view class="check-types">
      <view class="type-tag">
        <text class="check-icon">✓</text>
        <text>透明检</text>
      </view>
      <view class="type-tag">
        <text class="check-icon">✓</text>
        <text>专业验</text>
      </view>
      <view class="type-tag">
        <text class="check-icon">✓</text>
        <text>公正评</text>
      </view>
      <view class="type-tag">
        <text class="check-icon">✓</text>
        <text>逐件验</text>
      </view>
    </view>

    <!-- 详细内容 -->
    <view class="content">
      <view class="detail-section">
        <text class="section-title">详细内容</text>
        
        <!-- 检测结果 -->
        <view class="result-section">
          <text class="label">检测结果</text>
          <view :class="['result-tag', isQualified ? 'qualified' : 'unqualified']">
            {{ isQualified ? '合格' : '不合格' }}
          </view>
        </view>

        <!-- 结果说明 -->
        <view class="result-desc">
          <text>{{ resultDescription }}</text>
        </view>

        <!-- 回收信息 -->
        <view class="info-item">
          <text class="label">回收编号</text>
          <text class="value">{{ orderNo }}</text>
        </view>
        <view class="info-item">
          <text class="label">回收时间</text>
          <text class="value">{{ pickupTime }}</text>
        </view>

        <!-- 不合格原因列表 -->
        <block v-if="!isQualified">
          <text class="section-subtitle">不合格原因</text>
          <view class="reason-grid">
            <view class="reason-item" v-for="(reason, index) in reasons" :key="index">
              <text class="close-icon">×</text>
              <text class="reason-title">{{ reason.title }}</text>
              <text class="detail-link" @tap="viewDetail(reason)">查看详情 ></text>
            </view>
          </view>
          <view class="bottom-note">
            感谢您的理解与支持！期待您再次参与我们的旧衣回收活动，共同为环保贡献力量。
          </view>
        </block>

        <!-- 合格说明 -->
        <block v-else>
          <text class="section-subtitle">回收去向</text>
          <view class="qualified-desc">
            <view class="desc-item">
              <text class="dot">•</text>
              <text>可捐赠衣物：部分品相较好的衣物将捐赠给有需要的群体，为他们送去温暖与关怀。</text>
            </view>
            <view class="desc-item">
              <text class="dot">•</text>
              <text>可再生利用衣物：部分衣物将进入再生利用流程，转化为其他有用的产品，如清洁用品、保温材料等。</text>
            </view>
          </view>
          <view class="bottom-note success">
            再次感谢您的环保行动，您的小小举动为地球环保做出了大大的贡献！
          </view>
        </block>
      </view>
    </view>

    <!-- 底部按钮 -->
    <view class="bottom-btn" v-if="!isQualified">
      <button class="reorder-btn" @tap="reorder">再次预约下单</button>
    </view>
  </view>
</template>

<script>
import pullRefreshMixin from '@/pages/mixins/pullRefreshMixin.js'

export default {
  mixins: [pullRefreshMixin],
  data() {
    return {
      isQualified: false, // 是否合格
      orderNo: 'RE82738127861525', // 回收编号
      pickupTime: '2025-04-20 11:00', // 回收时间
      resultDescription: '感谢您参与旧衣回收活动，支持环保事业。', // 结果说明
      reasons: [
        {
          title: '大面积破损',
          detail: '破损无法修复'
        },
        {
          title: '污渍无法清除',
          detail: '严重污渍'
        },
        {
          title: '附件缺失',
          detail: '重要配件缺失'
        },
        {
          title: '带有危险物品',
          detail: '不符合安全标准'
        },
        {
          title: '尺寸过小',
          detail: '不符合回收标准'
        },
        {
          title: '尺寸过大',
          detail: '超出处理范围'
        }
      ]
    }
  },
  onLoad(options) {
    // 根据传入参数设置检测结果
    if (options.status) {
      this.isQualified = options.status === 'qualified'
      this.resultDescription = this.isQualified
        ? '我们已收到您的旧衣，并完成质检。很高兴地通知您，此次回收的旧衣全部符合回收标准。'
        : '感谢您参与旧衣回收活动，支持环保事业。我们已收到您的旧衣，并完成质检。遗憾地通知您，此次回收的部分旧衣不符合回收标准。'
    }
  },
  methods: {
    async onRefresh() {
      // 模拟刷新数据
      await new Promise(resolve => setTimeout(resolve, 1000))
      uni.stopPullRefresh()
    },
    goBack() {
      uni.navigateBack()
    },
    viewDetail(reason) {
      // 查看详情逻辑
      uni.showModal({
        title: reason.title,
        content: reason.detail,
        showCancel: false
      })
    },
    reorder() {
      // 跳转到预约页面
      uni.navigateTo({
        url: '/pages/pickup/index'
      })
    }
  }
}
</script>

<style lang="scss" scoped>
.container {
  min-height: 100vh;
  background: #4A332D;
  padding-bottom: v-bind('isQualified ? "0" : "calc(120rpx + env(safe-area-inset-bottom))"');
}

.nav-bar {
  display: flex;
  align-items: center;
  height: 88rpx;
  padding: 0 30rpx;

  .back {
    padding: 20rpx;
    margin-left: -20rpx;
    color: #fff;
  }

  .title {
    flex: 1;
    text-align: center;
    font-size: 34rpx;
    font-weight: 500;
    color: #fff;
  }

  .right-btns {
    display: flex;
    gap: 30rpx;
    
    .more, .share {
      font-size: 40rpx;
      color: #fff;
    }
  }
}

.subtitle {
  text-align: center;
  font-size: 24rpx;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 30rpx;
}

.check-types {
  display: flex;
  justify-content: space-between;
  padding: 0 30rpx;
  margin-bottom: 30rpx;

  .type-tag {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 30rpx;
    padding: 10rpx 20rpx;
    display: flex;
    align-items: center;
    gap: 8rpx;
    color: #fff;
    font-size: 24rpx;

    .check-icon {
      font-size: 24rpx;
    }
  }
}

.content {
  background: linear-gradient(to bottom, #fef2da,3%,#fffefb);
  border-radius: 30rpx 30rpx 0 0;
  min-height: calc(100vh - 200rpx);
  padding: 30rpx;
  
  .detail-section {
    .section-title {
      font-size: 32rpx;
      font-weight: bold;
      color: #333;
      margin-bottom: 30rpx;
    }

    .result-section {
      margin-bottom: 20rpx;

      .label {
        font-size: 28rpx;
        color: #666;
        margin-bottom: 10rpx;
        display: block;
      }

      .result-tag {
        display: inline-block;
        padding: 4rpx 20rpx;
        border-radius: 8rpx;
        font-size: 26rpx;
        
        &.qualified {
          background: #4CAF50;
          color: #fff;
        }
        
        &.unqualified {
          background: #FF5252;
          color: #fff;
        }
      }
    }

    .result-desc {
      font-size: 28rpx;
      color: #666;
      line-height: 1.6;
      margin-bottom: 30rpx;
    }

    .info-item {
      margin-bottom: 20rpx;

      .label {
        font-size: 28rpx;
        color: #666;
        margin-bottom: 8rpx;
        display: block;
      }

      .value {
        font-size: 28rpx;
        color: #333;
      }
    }

    .section-subtitle {
      font-size: 30rpx;
      font-weight: bold;
      color: #333;
      margin: 30rpx 0 20rpx;
    }

    .reason-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20rpx;
      padding: 20rpx 0;

      .reason-item {
        background: #fff;
        border-radius: 12rpx;
        padding: 20rpx;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
        position: relative;

        .close-icon {
          position: absolute;
          top: 70rpx;
          right: 10rpx;
          color: #FF5252;
          font-size: 32rpx;
          line-height: 1;
          font-weight: bold;
        }

        .reason-title {
          font-size: 26rpx;
          color: #333;
          margin-bottom: 10rpx;
          font-weight: 500;
          margin-top: 10rpx;
        }

        .detail-link {
          font-size: 24rpx;
          color: #999;
          display: flex;
          align-items: center;
          gap: 4rpx;

        }
      }
    }

    .qualified-desc {
      .desc-item {
        display: flex;
        margin-bottom: 20rpx;
        
        .dot {
          margin-right: 10rpx;
          color: #666;
        }
        
        text {
          font-size: 28rpx;
          color: #666;
          line-height: 1.6;
        }
      }
    }

    .bottom-note {
      font-size: 28rpx;
      color: #666;
      line-height: 1.6;
      margin-top: 40rpx;
      text-align: center;

      &.success {
        color: #4CAF50;
      }
    }
  }
}

.bottom-btn {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20rpx 30rpx calc(20rpx + env(safe-area-inset-bottom));
  background: #fff;
  box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);

  .reorder-btn {
    width: 100%;
    height: 80rpx;
    background: #FFB74D;
    color: #fff;
    font-size: 30rpx;
    border-radius: 40rpx;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;

    &::after {
      border: none;
    }
  }
}
</style> 