<template>
  <div class="profile-page">
    <div class="page-container">
      <!-- 个人信息卡片 -->
      <div class="profile-header">
        <div class="user-avatar-section">
          <div class="avatar-container">
            <el-avatar :size="120" :src="userProfile.avatar">
              {{ userProfile.username.charAt(0).toUpperCase() }}
            </el-avatar>
            <el-button 
              type="primary" 
              size="small" 
              class="change-avatar-btn"
              @click="showAvatarDialog = true"
            >
              更换头像
            </el-button>
          </div>
          
          <div class="user-basic-info">
            <h1 class="username">{{ userProfile.username }}</h1>
            <div class="user-title">
              <el-tag :type="getUserTitleType(userProfile.userLevel)" size="large">
                {{ userProfile.userTitle }}
              </el-tag>
            </div>
            <div class="join-info">
              <el-icon><Calendar /></el-icon>
              <span>加入时间：{{ formatDate(userProfile.joinDate) }}</span>
            </div>
            <div class="last-login">
              <el-icon><Clock /></el-icon>
              <span>最后登录：{{ formatTime(userProfile.lastLogin) }}</span>
            </div>
          </div>
        </div>
        
        <div class="user-stats-overview">
          <div class="stats-grid">
            <div class="stat-card">
              <div class="stat-icon upload">
                <el-icon size="32"><Upload /></el-icon>
              </div>
              <div class="stat-info">
                <h3>{{ userProfile.stats.uploaded }}</h3>
                <p>上传量</p>
              </div>
            </div>
            
            <div class="stat-card">
              <div class="stat-icon download">
                <el-icon size="32"><Download /></el-icon>
              </div>
              <div class="stat-info">
                <h3>{{ userProfile.stats.downloaded }}</h3>
                <p>下载量</p>
              </div>
            </div>
            
            <div class="stat-card">
              <div class="stat-icon ratio" :class="getRatioClass(userProfile.stats.ratio)">
                <el-icon size="32"><TrendCharts /></el-icon>
              </div>
              <div class="stat-info">
                <h3>{{ userProfile.stats.ratio }}</h3>
                <p>分享率</p>
              </div>
            </div>
            
            <div class="stat-card">
              <div class="stat-icon points">
                <el-icon size="32"><Star /></el-icon>
              </div>
              <div class="stat-info">
                <h3>{{ userProfile.stats.points }}</h3>
                <p>积分</p>
              </div>
            </div>
          </div>
        </div>
      </div>

      <!-- 详细信息选项卡 -->
      <div class="profile-content">
        <el-tabs v-model="activeTab" type="border-card">
          <!-- 个人信息 -->
          <el-tab-pane label="个人信息" name="info">
            <div class="info-section">
              <el-form
                ref="profileFormRef"
                :model="editProfile"
                :rules="profileRules"
                label-width="120px"
                size="large"
              >
                <div class="form-section">
                  <h3>基本信息</h3>
                  <el-form-item label="用户名">
                    <el-input v-model="editProfile.username" disabled>
                      <template #suffix>
                        <el-tooltip content="用户名不可修改">
                          <el-icon><QuestionFilled /></el-icon>
                        </el-tooltip>
                      </template>
                    </el-input>
                  </el-form-item>
                  
                  <el-form-item label="邮箱地址" prop="email">
                    <el-input v-model="editProfile.email" type="email" />
                  </el-form-item>
                  
                  <el-form-item label="真实姓名" prop="realName">
                    <el-input v-model="editProfile.realName" placeholder="可选填写" />
                  </el-form-item>
                  
                  <el-form-item label="所在地区">
                    <el-cascader
                      v-model="editProfile.location"
                      :options="locationOptions"
                      placeholder="请选择地区"
                      clearable
                    />
                  </el-form-item>
                </div>
                
                <div class="form-section">
                  <h3>个人介绍</h3>
                  <el-form-item label="个人签名">
                    <el-input
                      v-model="editProfile.signature"
                      type="textarea"
                      :rows="3"
                      maxlength="200"
                      show-word-limit
                      placeholder="介绍一下自己吧..."
                    />
                  </el-form-item>
                  
                  <el-form-item label="个人网站">
                    <el-input v-model="editProfile.website" placeholder="https://" />
                  </el-form-item>
                  
                  <el-form-item label="兴趣爱好">
                    <div class="interests-input">
                      <el-tag
                        v-for="interest in editProfile.interests"
                        :key="interest"
                        closable
                        @close="removeInterest(interest)"
                        class="interest-tag"
                      >
                        {{ interest }}
                      </el-tag>
                      <el-input
                        v-if="interestInputVisible"
                        ref="interestInputRef"
                        v-model="interestInputValue"
                        size="small"
                        @keyup.enter="addInterest"
                        @blur="addInterest"
                        style="width: 120px;"
                      />
                      <el-button
                        v-else
                        size="small"
                        @click="showInterestInput"
                      >
                        + 添加兴趣
                      </el-button>
                    </div>
                  </el-form-item>
                </div>
                
                <div class="form-section">
                  <h3>隐私设置</h3>
                  <el-form-item label="邮箱公开">
                    <el-switch v-model="editProfile.emailPublic" />
                    <span class="setting-tip">是否在个人资料中显示邮箱</span>
                  </el-form-item>
                  
                  <el-form-item label="统计公开">
                    <el-switch v-model="editProfile.statsPublic" />
                    <span class="setting-tip">是否公开上传下载统计</span>
                  </el-form-item>
                  
                  <el-form-item label="活动记录">
                    <el-switch v-model="editProfile.activityPublic" />
                    <span class="setting-tip">是否公开活动记录</span>
                  </el-form-item>
                </div>
                
                <div class="form-actions">
                  <el-button @click="resetProfile">重置</el-button>
                  <el-button type="primary" @click="saveProfile" :loading="saving">
                    保存修改
                  </el-button>
                </div>
              </el-form>
            </div>
          </el-tab-pane>
          
          <!-- 数据统计 -->
          <el-tab-pane label="数据统计" name="stats">
            <div class="stats-section">
              <div class="stats-overview">
                <div class="overview-grid">
                  <div class="overview-card">
                    <h3>上传统计</h3>
                    <div class="stat-details">
                      <div class="detail-item">
                        <span class="label">总上传量：</span>
                        <span class="value">{{ userProfile.detailedStats.totalUploaded }}</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">上传种子：</span>
                        <span class="value">{{ userProfile.detailedStats.uploadedTorrents }} 个</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">平均大小：</span>
                        <span class="value">{{ userProfile.detailedStats.avgUploadSize }}</span>
                      </div>
                    </div>
                  </div>
                  
                  <div class="overview-card">
                    <h3>下载统计</h3>
                    <div class="stat-details">
                      <div class="detail-item">
                        <span class="label">总下载量：</span>
                        <span class="value">{{ userProfile.detailedStats.totalDownloaded }}</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">下载种子：</span>
                        <span class="value">{{ userProfile.detailedStats.downloadedTorrents }} 个</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">完成种子：</span>
                        <span class="value">{{ userProfile.detailedStats.completedTorrents }} 个</span>
                      </div>
                    </div>
                  </div>
                  
                  <div class="overview-card">
                    <h3>做种统计</h3>
                    <div class="stat-details">
                      <div class="detail-item">
                        <span class="label">正在做种：</span>
                        <span class="value">{{ userProfile.detailedStats.seeding }} 个</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">做种时间：</span>
                        <span class="value">{{ userProfile.detailedStats.seedingTime }}</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">做种排名：</span>
                        <span class="value">第 {{ userProfile.detailedStats.seedingRank }} 名</span>
                      </div>
                    </div>
                  </div>
                  
                  <div class="overview-card">
                    <h3>积分记录</h3>
                    <div class="stat-details">
                      <div class="detail-item">
                        <span class="label">当前积分：</span>
                        <span class="value">{{ userProfile.stats.points }}</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">累计获得：</span>
                        <span class="value">{{ userProfile.detailedStats.totalEarnedPoints }}</span>
                      </div>
                      <div class="detail-item">
                        <span class="label">累计消费：</span>
                        <span class="value">{{ userProfile.detailedStats.totalSpentPoints }}</span>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              
              <!-- 数据图表 -->
              <div class="charts-section">
                <div class="chart-card">
                  <h3>上传下载趋势</h3>
                  <div class="chart-placeholder">
                    <el-icon size="48" color="#e4e7ed"><TrendCharts /></el-icon>
                    <p>图表功能开发中...</p>
                  </div>
                </div>
              </div>
            </div>
          </el-tab-pane>
          
          <!-- 我的种子 -->
          <el-tab-pane label="我的种子" name="torrents">
            <div class="torrents-section">
              <div class="section-header">
                <h3>我上传的种子</h3>
                <el-button type="primary" :icon="Upload" @click="$router.push('/upload')">
                  上传新种子
                </el-button>
              </div>
              
              <el-table :data="userTorrents" stripe>
                <el-table-column label="种子名称" min-width="300">
                  <template #default="{ row }">
                    <div class="torrent-info">
                      <el-tag :type="getCategoryType(row.category)" size="small">
                        {{ getCategoryName(row.category) }}
                      </el-tag>
                      <span class="torrent-title">{{ row.title }}</span>
                    </div>
                  </template>
                </el-table-column>
                
                <el-table-column label="大小" prop="size" width="100" />
                <el-table-column label="做种" prop="seeders" width="80" align="center" />
                <el-table-column label="下载" prop="leechers" width="80" align="center" />
                <el-table-column label="完成" prop="downloads" width="80" align="center" />
                <el-table-column label="上传时间" width="120">
                  <template #default="{ row }">
                    {{ formatDate(row.uploadTime) }}
                  </template>
                </el-table-column>
                
                <el-table-column label="操作" width="120" align="center">
                  <template #default="{ row }">
                    <el-button 
                      type="primary" 
                      size="small" 
                      @click="$router.push(`/torrent/${row.id}`)"
                    >
                      查看
                    </el-button>
                  </template>
                </el-table-column>
              </el-table>
              
              <div class="pagination-wrapper">
                <el-pagination
                  v-model:current-page="torrentsPage"
                  :page-size="10"
                  :total="userTorrents.length"
                  layout="prev, pager, next"
                  small
                />
              </div>
            </div>
          </el-tab-pane>
          
          <!-- 活动记录 -->
          <el-tab-pane label="活动记录" name="activity">
            <div class="activity-section">
              <div class="activity-filters">
                <el-select v-model="activityFilter" placeholder="活动类型">
                  <el-option label="全部活动" value="" />
                  <el-option label="上传种子" value="upload" />
                  <el-option label="下载种子" value="download" />
                  <el-option label="论坛发帖" value="post" />
                  <el-option label="积分变动" value="points" />
                </el-select>
              </div>
              
              <div class="activity-timeline">
                <el-timeline>
                  <el-timeline-item
                    v-for="activity in filteredActivities"
                    :key="activity.id"
                    :timestamp="formatTime(activity.time)"
                    :type="getActivityType(activity.type)"
                  >
                    <div class="activity-content">
                      <div class="activity-header">
                        <el-icon>
                          <component :is="getActivityIcon(activity.type)" />
                        </el-icon>
                        <span class="activity-title">{{ activity.title }}</span>
                      </div>
                      <div class="activity-description">{{ activity.description }}</div>
                    </div>
                  </el-timeline-item>
                </el-timeline>
              </div>
            </div>
          </el-tab-pane>
          
          <!-- 安全设置 -->
          <el-tab-pane label="安全设置" name="security">
            <div class="security-section">
              <div class="security-card">
                <h3>修改密码</h3>
                <el-form
                  ref="passwordFormRef"
                  :model="passwordForm"
                  :rules="passwordRules"
                  label-width="120px"
                >
                  <el-form-item label="当前密码" prop="currentPassword">
                    <el-input
                      v-model="passwordForm.currentPassword"
                      type="password"
                      show-password
                      placeholder="请输入当前密码"
                    />
                  </el-form-item>
                  
                  <el-form-item label="新密码" prop="newPassword">
                    <el-input
                      v-model="passwordForm.newPassword"
                      type="password"
                      show-password
                      placeholder="请输入新密码"
                    />
                  </el-form-item>
                  
                  <el-form-item label="确认密码" prop="confirmPassword">
                    <el-input
                      v-model="passwordForm.confirmPassword"
                      type="password"
                      show-password
                      placeholder="请再次输入新密码"
                    />
                  </el-form-item>
                  
                  <el-form-item>
                    <el-button type="primary" @click="changePassword" :loading="changingPassword">
                      修改密码
                    </el-button>
                  </el-form-item>
                </el-form>
              </div>
              
              <div class="security-card">
                <h3>登录记录</h3>
                <el-table :data="loginHistory" stripe>
                  <el-table-column label="登录时间" width="180">
                    <template #default="{ row }">
                      {{ formatDateTime(row.time) }}
                    </template>
                  </el-table-column>
                  <el-table-column label="IP地址" prop="ip" width="150" />
                  <el-table-column label="设备信息" prop="device" />
                  <el-table-column label="登录结果" width="100">
                    <template #default="{ row }">
                      <el-tag :type="row.success ? 'success' : 'danger'" size="small">
                        {{ row.success ? '成功' : '失败' }}
                      </el-tag>
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </div>
          </el-tab-pane>
        </el-tabs>
      </div>
    </div>

    <!-- 更换头像对话框 -->
    <el-dialog v-model="showAvatarDialog" title="更换头像" width="400px">
      <div class="avatar-upload">
        <el-upload
          ref="avatarUploadRef"
          :auto-upload="false"
          :limit="1"
          accept="image/*"
          :on-change="handleAvatarChange"
          list-type="picture-card"
          class="avatar-uploader"
        >
          <el-icon><Plus /></el-icon>
        </el-upload>
        <div class="upload-tips">
          <p>支持 JPG、PNG 格式</p>
          <p>建议尺寸 200x200 像素</p>
          <p>文件大小不超过 2MB</p>
        </div>
      </div>
      
      <template #footer>
        <el-button @click="showAvatarDialog = false">取消</el-button>
        <el-button type="primary" @click="uploadAvatar" :loading="uploadingAvatar">
          上传头像
        </el-button>
      </template>
    </el-dialog>
  </div>
</template>

<script>
import { ref, reactive, computed, onMounted, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import {
  Calendar,
  Clock,
  Upload,
  Download,
  TrendCharts,
  Star,
  QuestionFilled,
  Plus,
  ChatDotRound,
  Flag,
  Coin
} from '@element-plus/icons-vue'

export default {
  name: 'ProfileView',
  setup() {
    const router = useRouter()
    const profileFormRef = ref(null)
    const passwordFormRef = ref(null)
    const avatarUploadRef = ref(null)
    const interestInputRef = ref(null)
    
    const activeTab = ref('info')
    const showAvatarDialog = ref(false)
    const saving = ref(false)
    const changingPassword = ref(false)
    const uploadingAvatar = ref(false)
    const interestInputVisible = ref(false)
    const interestInputValue = ref('')
    const activityFilter = ref('')
    const torrentsPage = ref(1)
    
    const userProfile = ref({
      username: 'MovieExpert',
      email: 'movieexpert@example.com',
      realName: '',
      avatar: '',
      userLevel: 5,
      userTitle: '资深会员',
      joinDate: '2023-01-15T10:00:00',
      lastLogin: '2025-06-03T14:30:00',
      location: ['北京市', '朝阳区'],
      signature: '热爱电影，分享快乐！',
      website: 'https://movieblog.com',
      interests: ['电影', '音乐', '科技', '摄影'],
      emailPublic: false,
      statsPublic: true,
      activityPublic: true,
      stats: {
        uploaded: '256.8 GB',
        downloaded: '89.6 GB',
        ratio: '2.87',
        points: '15,680'
      },
      detailedStats: {
        totalUploaded: '256.8 GB',
        uploadedTorrents: 45,
        avgUploadSize: '5.7 GB',
        totalDownloaded: '89.6 GB',
        downloadedTorrents: 123,
        completedTorrents: 118,
        seeding: 32,
        seedingTime: '1,245 小时',
        seedingRank: 86,
        totalEarnedPoints: '28,940',
        totalSpentPoints: '13,260'
      }
    })
    
    const editProfile = reactive({
      username: '',
      email: '',
      realName: '',
      location: [],
      signature: '',
      website: '',
      interests: [],
      emailPublic: false,
      statsPublic: true,
      activityPublic: true
    })
    
    const passwordForm = reactive({
      currentPassword: '',
      newPassword: '',
      confirmPassword: ''
    })
    
    const profileRules = {
      email: [
        { required: true, message: '请输入邮箱地址', trigger: 'blur' },
        { type: 'email', message: '请输入正确的邮箱格式', trigger: 'blur' }
      ]
    }
    
    const passwordRules = {
      currentPassword: [
        { required: true, message: '请输入当前密码', trigger: 'blur' }
      ],
      newPassword: [
        { required: true, message: '请输入新密码', trigger: 'blur' },
        { min: 6, message: '密码长度至少6个字符', trigger: 'blur' }
      ],
      confirmPassword: [
        { required: true, message: '请确认新密码', trigger: 'blur' },
        {
          validator: (rule, value, callback) => {
            if (value !== passwordForm.newPassword) {
              callback(new Error('两次输入的密码不一致'))
            } else {
              callback()
            }
          },
          trigger: 'blur'
        }
      ]
    }
    
    const locationOptions = [
      {
        value: '北京市',
        label: '北京市',
        children: [
          { value: '朝阳区', label: '朝阳区' },
          { value: '海淀区', label: '海淀区' },
          { value: '丰台区', label: '丰台区' }
        ]
      },
      {
        value: '上海市',
        label: '上海市',
        children: [
          { value: '浦东新区', label: '浦东新区' },
          { value: '黄浦区', label: '黄浦区' },
          { value: '静安区', label: '静安区' }
        ]
      }
    ]
    
    const userTorrents = ref([
      {
        id: 1,
        title: '[4K蓝光原盘] 阿凡达：水之道',
        category: 'movie',
        size: '85.6 GB',
        seeders: 45,
        leechers: 12,
        downloads: 234,
        uploadTime: '2025-05-15T10:00:00'
      },
      {
        id: 2,
        title: '[FLAC] 古典音乐合集',
        category: 'music',
        size: '2.3 GB',
        seeders: 23,
        leechers: 5,
        downloads: 89,
        uploadTime: '2025-04-20T15:30:00'
      }
    ])
    
    const activities = ref([
      {
        id: 1,
        type: 'upload',
        title: '上传种子',
        description: '上传了《阿凡达：水之道》4K蓝光原盘',
        time: '2025-06-03T10:30:00'
      },
      {
        id: 2,
        type: 'download',
        title: '下载种子',
        description: '下载了《星际穿越》IMAX版本',
        time: '2025-06-02T14:20:00'
      },
      {
        id: 3,
        type: 'post',
        title: '发布主题',
        description: '在电影讨论区发布了新主题',
        time: '2025-06-01T16:45:00'
      },
      {
        id: 4,
        type: 'points',
        title: '积分变动',
        description: '做种奖励获得 +50 积分',
        time: '2025-05-31T09:15:00'
      }
    ])
    
    const loginHistory = ref([
      {
        time: '2025-06-03T14:30:00',
        ip: '192.168.1.100',
        device: 'Windows 11 / Chrome 120',
        success: true
      },
      {
        time: '2025-06-02T09:15:00',
        ip: '192.168.1.100',
        device: 'Windows 11 / Chrome 120',
        success: true
      },
      {
        time: '2025-06-01T22:30:00',
        ip: '192.168.1.100',
        device: 'Android / Chrome Mobile',
        success: true
      }
    ])
    
    const filteredActivities = computed(() => {
      if (!activityFilter.value) return activities.value
      return activities.value.filter(activity => activity.type === activityFilter.value)
    })
    
    onMounted(() => {
      loadUserProfile()
    })
    
    const loadUserProfile = () => {
      // 加载用户资料到编辑表单
      Object.assign(editProfile, {
        username: userProfile.value.username,
        email: userProfile.value.email,
        realName: userProfile.value.realName,
        location: userProfile.value.location,
        signature: userProfile.value.signature,
        website: userProfile.value.website,
        interests: [...userProfile.value.interests],
        emailPublic: userProfile.value.emailPublic,
        statsPublic: userProfile.value.statsPublic,
        activityPublic: userProfile.value.activityPublic
      })
    }
    
    const formatDate = (dateString) => {
      const date = new Date(dateString)
      return date.toLocaleDateString('zh-CN')
    }
    
    const formatTime = (timeString) => {
      const date = new Date(timeString)
      const now = new Date()
      const diff = now - date
      const hours = Math.floor(diff / (1000 * 60 * 60))
      
      if (hours < 1) return '刚刚'
      if (hours < 24) return `${hours}小时前`
      const days = Math.floor(hours / 24)
      if (days < 7) return `${days}天前`
      
      return date.toLocaleDateString('zh-CN')
    }
    
    const formatDateTime = (dateString) => {
      const date = new Date(dateString)
      return date.toLocaleString('zh-CN')
    }
    
    const getUserTitleType = (level) => {
      if (level >= 8) return 'danger'  // 管理员
      if (level >= 6) return 'warning' // 资深会员
      if (level >= 4) return 'success' // 正式会员
      if (level >= 2) return 'info'    // 初级会员
      return 'default' // 新手
    }
    
    const getRatioClass = (ratio) => {
      const r = parseFloat(ratio)
      if (r >= 2) return 'excellent'
      if (r >= 1) return 'good'
      return 'warning'
    }
    
    const getCategoryType = (category) => {
      const types = {
        'movie': 'primary',
        'tv': 'info',
        'music': 'success',
        'software': 'warning',
        'game': 'danger'
      }
      return types[category] || 'default'
    }
    
    const getCategoryName = (category) => {
      const names = {
        'movie': '电影',
        'tv': '电视剧',
        'music': '音乐',
        'software': '软件',
        'game': '游戏'
      }
      return names[category] || category
    }
    
    const getActivityType = (type) => {
      const types = {
        'upload': 'success',
        'download': 'primary',
        'post': 'warning',
        'points': 'info'
      }
      return types[type] || 'primary'
    }
    
    const getActivityIcon = (type) => {
      const icons = {
        'upload': 'Upload',
        'download': 'Download',
        'post': 'ChatDotRound',
        'points': 'Coin'
      }
      return icons[type] || 'Star'
    }
    
    const showInterestInput = () => {
      interestInputVisible.value = true
      nextTick(() => {
        interestInputRef.value?.focus()
      })
    }
    
    const addInterest = () => {
      const interest = interestInputValue.value.trim()
      if (interest && !editProfile.interests.includes(interest)) {
        editProfile.interests.push(interest)
      }
      interestInputVisible.value = false
      interestInputValue.value = ''
    }
    
    const removeInterest = (interest) => {
      const index = editProfile.interests.indexOf(interest)
      if (index > -1) {
        editProfile.interests.splice(index, 1)
      }
    }
    
    const saveProfile = async () => {
      try {
        await profileFormRef.value?.validate()
        
        saving.value = true
        
        // 模拟保存过程
        await new Promise(resolve => setTimeout(resolve, 1500))
        
        // 更新用户资料
        Object.assign(userProfile.value, editProfile)
        
        ElMessage.success('个人资料保存成功')
        
      } catch (error) {
        console.error('表单验证失败:', error)
      } finally {
        saving.value = false
      }
    }
    
    const resetProfile = () => {
      loadUserProfile()
      ElMessage.info('已重置为原始数据')
    }
    
    const changePassword = async () => {
      try {
        await passwordFormRef.value?.validate()
        
        changingPassword.value = true
        
        // 模拟密码修改过程
        await new Promise(resolve => setTimeout(resolve, 1500))
        
        // 重置表单
        passwordFormRef.value?.resetFields()
        Object.assign(passwordForm, {
          currentPassword: '',
          newPassword: '',
          confirmPassword: ''
        })
        
        ElMessage.success('密码修改成功')
        
      } catch (error) {
        console.error('表单验证失败:', error)
      } finally {
        changingPassword.value = false
      }
    }
    
    const handleAvatarChange = (file) => {
      const isImage = file.raw.type.startsWith('image/')
      const isLt2M = file.raw.size / 1024 / 1024 < 2
      
      if (!isImage) {
        ElMessage.error('只能上传图片文件!')
        return false
      }
      if (!isLt2M) {
        ElMessage.error('图片大小不能超过 2MB!')
        return false
      }
      
      return true
    }
    
    const uploadAvatar = async () => {
      const files = avatarUploadRef.value?.uploadFiles
      if (!files || files.length === 0) {
        ElMessage.warning('请选择头像文件')
        return
      }
      
      uploadingAvatar.value = true
      try {
        // 模拟上传过程
        await new Promise(resolve => setTimeout(resolve, 2000))
        
        // 更新头像URL
        userProfile.value.avatar = URL.createObjectURL(files[0].raw)
        
        ElMessage.success('头像上传成功')
        showAvatarDialog.value = false
        avatarUploadRef.value?.clearFiles()
        
      } catch (error) {
        ElMessage.error('头像上传失败')
      } finally {
        uploadingAvatar.value = false
      }
    }
    
    return {
      activeTab,
      showAvatarDialog,
      saving,
      changingPassword,
      uploadingAvatar,
      interestInputVisible,
      interestInputValue,
      activityFilter,
      torrentsPage,
      userProfile,
      editProfile,
      passwordForm,
      profileRules,
      passwordRules,
      locationOptions,
      userTorrents,
      filteredActivities,
      loginHistory,
      profileFormRef,
      passwordFormRef,
      avatarUploadRef,
      interestInputRef,
      formatDate,
      formatTime,
      formatDateTime,
      getUserTitleType,
      getRatioClass,
      getCategoryType,
      getCategoryName,
      getActivityType,
      getActivityIcon,
      showInterestInput,
      addInterest,
      removeInterest,
      saveProfile,
      resetProfile,
      changePassword,
      handleAvatarChange,
      uploadAvatar,
      Calendar,
      Clock,
      Upload,
      Download,
      TrendCharts,
      Star,
      QuestionFilled,
      Plus,
      ChatDotRound,
      Flag,
      Coin
    }
  }
}
</script>

<style lang="scss" scoped>
.profile-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px;
  background: #f5f5f5;
  min-height: 100vh;
}

.profile-header {
  background: #fff;
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  
  .user-avatar-section {
    display: flex;
    gap: 24px;
    
    .avatar-container {
      text-align: center;
      
      .change-avatar-btn {
        margin-top: 12px;
      }
    }
    
    .user-basic-info {
      flex: 1;
      
      .username {
        font-size: 28px;
        font-weight: 600;
        color: #2c3e50;
        margin: 0 0 12px 0;
      }
      
      .user-title {
        margin-bottom: 16px;
      }
      
      .join-info, .last-login {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        color: #7f8c8d;
        margin-bottom: 8px;
      }
    }
  }
  
  .user-stats-overview {
    .stats-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
      
      .stat-card {
        background: #f8f9fa;
        border-radius: 8px;
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 16px;
        
        .stat-icon {
          width: 48px;
          height: 48px;
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          
          &.upload { background: rgba(103, 194, 58, 0.1); color: #67c23a; }
          &.download { background: rgba(64, 158, 255, 0.1); color: #409eff; }
          &.ratio {
            &.excellent { background: rgba(103, 194, 58, 0.1); color: #67c23a; }
            &.good { background: rgba(230, 162, 60, 0.1); color: #e6a23c; }
            &.warning { background: rgba(245, 108, 108, 0.1); color: #f56c6c; }
          }
          &.points { background: rgba(245, 108, 108, 0.1); color: #f56c6c; }
        }
        
        .stat-info {
          h3 {
            font-size: 20px;
            font-weight: 600;
            color: #2c3e50;
            margin: 0 0 4px 0;
          }
          
          p {
            font-size: 14px;
            color: #7f8c8d;
            margin: 0;
          }
        }
      }
    }
  }
}

.profile-content {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  
  :deep(.el-tabs__content) {
    padding: 24px;
  }
}

.info-section {
  .form-section {
    margin-bottom: 32px;
    
    h3 {
      font-size: 18px;
      font-weight: 600;
      color: #2c3e50;
      margin: 0 0 20px 0;
      padding-bottom: 8px;
      border-bottom: 2px solid #f0f0f0;
    }
  }
  
  .interests-input {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    
    .interest-tag {
      margin: 0;
    }
  }
  
  .setting-tip {
    margin-left: 12px;
    font-size: 12px;
    color: #909399;
  }
  
  .form-actions {
    text-align: center;
    margin-top: 32px;
    
    .el-button {
      margin: 0 8px;
      min-width: 100px;
    }
  }
}

.stats-section {
  .stats-overview {
    margin-bottom: 32px;
    
    .overview-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 20px;
      
      .overview-card {
        background: #f8f9fa;
        border-radius: 8px;
        padding: 24px;
        
        h3 {
          font-size: 16px;
          font-weight: 600;
          color: #2c3e50;
          margin: 0 0 16px 0;
        }
        
        .stat-details {
          .detail-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 12px;
            
            .label {
              font-size: 14px;
              color: #7f8c8d;
            }
            
            .value {
              font-size: 14px;
              font-weight: 600;
              color: #2c3e50;
            }
          }
        }
      }
    }
  }
  
  .charts-section {
    .chart-card {
      background: #f8f9fa;
      border-radius: 8px;
      padding: 24px;
      
      h3 {
        font-size: 16px;
        font-weight: 600;
        color: #2c3e50;
        margin: 0 0 20px 0;
      }
      
      .chart-placeholder {
        text-align: center;
        padding: 60px 0;
        color: #909399;
        
        p {
          margin: 12px 0 0 0;
        }
      }
    }
  }
}

.torrents-section {
  .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    
    h3 {
      font-size: 18px;
      font-weight: 600;
      color: #2c3e50;
      margin: 0;
    }
  }
  
  .torrent-info {
    display: flex;
    align-items: center;
    gap: 12px;
    
    .torrent-title {
      font-weight: 500;
    }
  }
  
  .pagination-wrapper {
    margin-top: 16px;
    text-align: center;
  }
}

.activity-section {
  .activity-filters {
    margin-bottom: 24px;
    
    .el-select {
      width: 150px;
    }
  }
  
  .activity-timeline {
    .activity-content {
      .activity-header {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 8px;
        
        .activity-title {
          font-weight: 600;
          color: #2c3e50;
        }
      }
      
      .activity-description {
        font-size: 14px;
        color: #7f8c8d;
        line-height: 1.5;
      }
    }
  }
}

.security-section {
  .security-card {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 24px;
    margin-bottom: 24px;
    
    h3 {
      font-size: 18px;
      font-weight: 600;
      color: #2c3e50;
      margin: 0 0 20px 0;
    }
  }
}

.avatar-upload {
  text-align: center;
  
  .avatar-uploader {
    margin-bottom: 16px;
  }
  
  .upload-tips {
    font-size: 12px;
    color: #909399;
    
    p {
      margin: 4px 0;
    }
  }
}

@media (max-width: 768px) {
  .profile-page {
    padding: 16px;
  }
  
  .profile-header {
    grid-template-columns: 1fr;
    gap: 24px;
    
    .user-avatar-section {
      flex-direction: column;
      text-align: center;
    }
    
    .user-stats-overview .stats-grid {
      grid-template-columns: 1fr;
    }
  }
  
  .stats-overview .overview-grid {
    grid-template-columns: 1fr;
  }
  
  .torrents-section .section-header {
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }
}
</style>