index.less 5.37 KB
/*
 * @Date: 2022-09-19 14:11:06
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-07-17 11:23:10
 * @FilePath: /jgdl/src/pages/feedBackList/index.less
 * @Description: 意见反馈列表页面样式
 */

.feedback-list-page {
  position: relative;
  height: 100vh;
  background-color: #f5f5f5;

  .scroll-view {
    padding: 20rpx;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .feedback-list {
    .feedback-card {
      background: #fff;
      border-radius: 16rpx;
      padding: 24rpx;
      margin-bottom: 20rpx;
      box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
      border: 1rpx solid #f0f0f0;

      .card-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16rpx;

        .feedback-time {
          font-size: 24rpx;
          color: #999;
        }

        .header-right {
          display: flex;
          align-items: center;
          gap: 12rpx;
        }

        .feedback-type {
          background: #fb923c;
          color: #fff;
          padding: 8rpx 16rpx;
          border-radius: 20rpx;
          font-size: 22rpx;
          font-weight: 500;
        }

        .feedback-status {
          padding: 6rpx 12rpx;
          border-radius: 16rpx;
          font-size: 20rpx;
          font-weight: 500;

          &.status-pending {
            background: #fef3c7;
            color: #d97706;
            border: 1rpx solid #fbbf24;
          }

          &.status-processed {
            background: #d1fae5;
            color: #059669;
            border: 1rpx solid #34d399;
          }
        }
      }

      .feedback-content {
        margin-bottom: 16rpx;

        .content-text {
          font-size: 28rpx;
          color: #333;
          line-height: 1.6;
          word-break: break-all;
        }
      }

      .feedback-images {
        display: flex;
        flex-wrap: wrap;
        gap: 12rpx;
        margin-bottom: 16rpx;

        .image-item {
          width: 120rpx;
          height: 120rpx;
          border-radius: 8rpx;
          overflow: hidden;
          border: 1rpx solid #eee;

          .feedback-image {
            width: 100%;
            height: 100%;
          }
        }
      }

      .contact-info {
        background: #f8f9fa;
        padding: 16rpx;
        border-radius: 8rpx;
        margin-bottom: 16rpx;
        border-left: 4rpx solid #fb923c;

        .contact-label {
          font-size: 24rpx;
          color: #666;
        }

        .contact-text {
          font-size: 26rpx;
          color: #333;
          font-weight: 500;
        }
      }

      .reply-section {
        background: #f0f8ff;
        padding: 16rpx;
        border-radius: 8rpx;
        border-left: 4rpx solid #fb923c;

        .reply-header {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 12rpx;

          .reply-label {
            font-size: 24rpx;
            color: #fb923c;
            font-weight: 500;
          }

          .reply-time {
            font-size: 22rpx;
            color: #999;
          }
        }

        .reply-content {
          .reply-text {
            font-size: 26rpx;
            color: #333;
            line-height: 1.6;
            word-break: break-all;
          }
        }
      }
    }
  }

  // 空状态样式
  .empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 120rpx 40rpx;
    text-align: center;

    .empty-icon {
      font-size: 120rpx;
      margin-bottom: 24rpx;
      opacity: 0.6;
    }

    .empty-text {
      font-size: 32rpx;
      color: #666;
      margin-bottom: 12rpx;
      font-weight: 500;
    }

    .empty-desc {
      font-size: 26rpx;
      color: #999;
      line-height: 1.5;
    }
  }

  // 加载状态样式
  .loading-container {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40rpx;
    gap: 16rpx;

    .loading-text {
      font-size: 26rpx;
      color: #666;
    }
  }

  // 没有更多数据样式
  .no-more-container {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40rpx;

    .no-more-text {
      font-size: 24rpx;
      color: #999;
      position: relative;

      &::before,
      &::after {
        content: '';
        position: absolute;
        top: 50%;
        width: 60rpx;
        height: 1rpx;
        background: #ddd;
      }

      &::before {
        left: -80rpx;
      }

      &::after {
        right: -80rpx;
      }
    }
  }

  // 底部固定按钮
  .fixed-bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    padding: 20rpx 30rpx;
    padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
    border-top: 1rpx solid #eee;
    box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.06);
    z-index: 100;

    .feedback-btn {
      width: 100%;
      height: 88rpx;
      background: #fb923c;
      color: #fff;
      border: none;
      border-radius: 44rpx;
      font-size: 32rpx;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4rpx 12rpx rgba(251, 146, 60, 0.3);
      transition: all 0.3s ease;

      &:active {
        transform: translateY(2rpx);
        box-shadow: 0 2rpx 8rpx rgba(251, 146, 60, 0.2);
      }
    }
  }
}