| | |
| | | <el-icon><Search /></el-icon> |
| | | 搜索 |
| | | </el-button> |
| | | <el-button type="warning" @click="debugAPI"> |
| | | 调试API |
| | | </el-button> |
| | | <span style="margin-left: 10px; color: #666; font-size: 12px;"> |
| | | 活动选项数量: {{ activityOptions.length }} |
| | | </span> |
| | | </div> |
| | | |
| | | <!-- 学员列表 --> |
| | |
| | | // 加载活动选项 |
| | | const loadActivityOptions = async () => { |
| | | try { |
| | | console.log('=== 开始加载活动选项 ===') |
| | | console.log('调用getAllActivities API...') |
| | | |
| | | const activities = await getAllActivities() |
| | | // 只显示状态为1(进行中)的比赛及其阶段 |
| | | activityOptions.value = (activities || []).filter(activity => activity.state === 1) |
| | | } catch (e: any) { |
| | | console.error('加载活动选项失败:', e) |
| | | console.log('API返回的原始数据:', activities) |
| | | console.log('数据类型:', typeof activities) |
| | | console.log('是否为数组:', Array.isArray(activities)) |
| | | |
| | | if (activities && Array.isArray(activities)) { |
| | | console.log('活动数量:', activities.length) |
| | | activities.forEach((activity, index) => { |
| | | console.log(`活动${index + 1}:`, { |
| | | id: activity.id, |
| | | name: activity.name, |
| | | state: activity.state, |
| | | pid: activity.pid |
| | | }) |
| | | }) |
| | | |
| | | // 过滤出正在进行的比赛(不是阶段) |
| | | const filtered = activities.filter(activity => |
| | | activity.state === 1 && (activity.pid === 0 || activity.pid === "0") |
| | | ) |
| | | console.log('过滤条件: state === 1 && (pid === 0 || pid === "0")') |
| | | console.log('过滤后的活动:', filtered) |
| | | |
| | | activityOptions.value = filtered |
| | | console.log('设置到activityOptions.value:', activityOptions.value) |
| | | console.log('activityOptions.value.length:', activityOptions.value.length) |
| | | |
| | | // 强制触发响应式更新 |
| | | setTimeout(() => { |
| | | console.log('延迟检查activityOptions.value:', activityOptions.value) |
| | | console.log('延迟检查activityOptions.value.length:', activityOptions.value.length) |
| | | }, 100) |
| | | } else { |
| | | console.error('API返回的数据格式不正确:', activities) |
| | | } |
| | | } catch (error) { |
| | | console.error('=== 加载活动选项失败 ===') |
| | | console.error('错误详情:', error) |
| | | console.error('错误消息:', error.message) |
| | | console.error('错误堆栈:', error.stack) |
| | | ElMessage.error('加载活动选项失败: ' + error.message) |
| | | } |
| | | } |
| | | |
| | | // 调试API函数 |
| | | const debugAPI = async () => { |
| | | console.log('=== 开始API调试 ===') |
| | | |
| | | // 检查认证状态 |
| | | const token = localStorage.getItem('auth_token') |
| | | const userInfo = localStorage.getItem('user_info') |
| | | |
| | | console.log('认证状态检查:') |
| | | console.log('Token:', token ? '已存在' : '不存在') |
| | | console.log('Token内容:', token) |
| | | console.log('用户信息:', userInfo ? '已存在' : '不存在') |
| | | console.log('用户信息内容:', userInfo) |
| | | |
| | | if (!token) { |
| | | ElMessage.error('未找到认证token,请先登录') |
| | | return |
| | | } |
| | | |
| | | // 测试API调用 |
| | | try { |
| | | console.log('开始测试getAllActivities API...') |
| | | const activities = await getAllActivities() |
| | | console.log('API调用成功,返回数据:', activities) |
| | | ElMessage.success(`API调用成功,获取到${activities?.length || 0}个活动`) |
| | | } catch (error) { |
| | | console.error('API调用失败:', error) |
| | | ElMessage.error('API调用失败: ' + error.message) |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | loadActivityOptions() |
| | | loadData() |
| | | console.log('=== Player页面onMounted被调用 ===') |
| | | console.log('当前时间:', new Date().toLocaleTimeString()) |
| | | console.log('activityOptions初始值:', activityOptions.value) |
| | | console.log('直接加载活动选项进行测试...') |
| | | |
| | | // 立即调用API测试 |
| | | loadActivityOptions().catch(error => { |
| | | console.error('loadActivityOptions调用失败:', error) |
| | | }) |
| | | |
| | | // loadData() // 暂时注释掉,专注于活动选项加载 |
| | | }) |
| | | </script> |
| | | |