From ae3349d2ff53767b5bc9cb30e1bf7e15f9e814ee Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期五, 03 十月 2025 20:45:44 +0800
Subject: [PATCH] 清理测试代码和调试文件

---
 web/src/views/ActivityForm.vue |  168 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 44 deletions(-)

diff --git a/web/src/views/ActivityForm.vue b/web/src/views/ActivityForm.vue
index 4e6d7d3..931fa32 100644
--- a/web/src/views/ActivityForm.vue
+++ b/web/src/views/ActivityForm.vue
@@ -143,7 +143,7 @@
                 </div>
               </div>
               
-              <div v-if="form.value && form.value.stages && form.value.stages.length > 0" class="stages-list">
+              <div v-if="form && form.stages && form.stages.length > 0" class="stages-list">
                 <div v-for="(stage, index) in sortedFormStages" :key="index" class="stage-item">
                   <div class="stage-info">
                     <div class="stage-header">
@@ -396,7 +396,7 @@
           <el-select v-model="currentStudent.lastStageId" placeholder="璇烽�夋嫨闃舵" style="width: 100%">
             <el-option label="鏃�" :value="null" />
             <el-option 
-              v-for="stage in (form.value?.stages || [])" 
+              v-for="stage in (form?.stages || [])" 
               :key="stage.id" 
               :label="stage.name" 
               :value="stage.id"
@@ -476,10 +476,10 @@
 // 璁$畻杩囨护鍚庣殑璇勫鍒楄〃
 const filteredJudges = computed(() => {
   if (!judgeSearchText.value.trim()) {
-    return allJudges.value
+    return allJudges.value.filter(judge => judge && judge.id && judge.name)
   }
   return allJudges.value.filter(judge => 
-    judge.name.toLowerCase().includes(judgeSearchText.value.toLowerCase())
+    judge && judge.name && judge.name.toLowerCase().includes(judgeSearchText.value.toLowerCase())
   )
 })
 
@@ -580,7 +580,7 @@
   try {
     judgeLoading.value = true
     const judges = await getAllJudges()
-    allJudges.value = judges || []
+    allJudges.value = (judges || []).filter(judge => judge && judge.id && judge.name)
   } catch (error) {
     console.error('鍔犺浇璇勫鍒楄〃澶辫触:', error)
     ElMessage.error('鍔犺浇璇勫鍒楄〃澶辫触: ' + error.message)
@@ -610,7 +610,7 @@
         playerMax: activity.playerMax,
         state: activity.state,
         stages: activity.stages || [],
-        judges: activity.judges || [],
+        judges: (activity.judges || []).filter(judge => judge && judge.id && judge.name),
         students: activity.students || [],
         mediaFiles: []
       }
@@ -678,8 +678,8 @@
 // 鑾峰彇榛樿闃舵鍚嶇О - 浣跨敤鏇寸伒娲荤殑鍛藉悕鏂瑰紡锛岄伩鍏嶇‖缂栫爜鐗瑰畾闃舵鍚嶇О
 const getDefaultStageName = (index) => {
   // 鎻愪緵涓�浜涘父鐢ㄧ殑闃舵鍚嶇О寤鸿锛屼絾涓嶅己鍒朵娇鐢�
-  const suggestedNames = ['', '绗竴闃舵', '绗簩闃舵', '绗笁闃舵', '绗洓闃舵', '绗簲闃舵']
-  return suggestedNames[index] || `绗�${index}闃舵`
+  const suggestedNames = ['绗竴闃舵', '绗簩闃舵', '绗笁闃舵', '绗洓闃舵', '绗簲闃舵']
+  return suggestedNames[index - 1] || `绗�${index}闃舵`
 }
 
 // 鑾峰彇闃舵鍦ㄥ師濮嬫暟缁勪腑鐨勭储寮�
@@ -794,6 +794,12 @@
 
 // 璇勫绠$悊
 const addJudge = () => {
+  // 妫�鏌ユ瘮璧涙槸鍚﹀凡淇濆瓨
+  if (!isEdit.value && !form.value.id) {
+    ElMessage.warning('璇峰厛淇濆瓨姣旇禌淇℃伅鍚庡啀娣诲姞璇勫')
+    return
+  }
+  
   resetJudgeDialog()
   judgeDialogVisible.value = true
 }
@@ -1102,6 +1108,8 @@
 const handleMediaUpload = async (activityId) => {
   if (!form.value || !form.value.mediaFiles) return
   
+  const failedFiles = []
+  
   try {
     for (const mediaFile of form.value.mediaFiles) {
       // 璺宠繃宸茬粡鏈� id 鐨勫獟浣撴枃浠讹紙宸蹭繚瀛樼殑锛�
@@ -1144,13 +1152,21 @@
         mediaFile.uploadResult = uploadResult
       } catch (error) {
         console.error(`濯掍綋鏂囦欢 ${mediaFile.name} 澶勭悊澶辫触:`, error)
-        ElMessage.error(`鏂囦欢 ${mediaFile.name} 涓婁紶澶辫触: ${error.message}`)
-        // 涓嶆姏鍑洪敊璇紝缁х画澶勭悊鍏朵粬鏂囦欢
+        failedFiles.push({
+          name: mediaFile.name,
+          error: error.message
+        })
       }
+    }
+    
+    // 濡傛灉鏈夋枃浠朵笂浼犲け璐ワ紝鎶涘嚭閿欒
+    if (failedFiles.length > 0) {
+      const failedNames = failedFiles.map(f => f.name).join(', ')
+      throw new Error(`浠ヤ笅鏂囦欢涓婁紶澶辫触: ${failedNames}`)
     }
   } catch (error) {
     console.error('濯掍綋鏂囦欢澶勭悊澶辫触:', error)
-    // 涓嶅奖鍝嶄富娴佺▼锛屽彧璁板綍閿欒
+    throw error // 鎶涘嚭閿欒璁╀笂灞傚鐞�
   }
 }
 
@@ -1164,6 +1180,11 @@
     
     submitting.value = true
     
+    console.log('=== 寮�濮嬩繚瀛樻瘮璧� ===')
+    console.log('form.value:', form.value)
+    console.log('form.value.stages:', form.value.stages)
+    console.log('form.value.judges:', form.value.judges)
+    
     // 鍑嗗淇濆瓨鏁版嵁锛屽彧鍖呭惈鍚庣鏀寔鐨勫瓧娈�
     const saveData = {
       name: form.value.name,
@@ -1174,31 +1195,50 @@
       ratingSchemeId: form.value.ratingSchemeId,
       playerMax: form.value.playerMax,
       state: form.value.state || 1,
-      stages: form.value.stages ? form.value.stages.map(stage => {
-        const stageData = {
-          name: stage.name,
-          description: stage.description,
-          matchTime: stage.matchTime,
-          address: stage.address,
-          playerMax: stage.playerMax,
-          sortOrder: stage.sortOrder,
-          state: stage.state || 1
-        }
-        // 鍙湪鏈夋湁鏁圛D鏃舵墠娣诲姞id瀛楁
-        if (stage.id) {
-          stageData.id = stage.id
-        }
-        // 鍙湪鏈夋湁鏁坮atingSchemeId鏃舵墠娣诲姞璇ュ瓧娈�
-        if (stage.ratingSchemeId) {
-          stageData.ratingSchemeId = stage.ratingSchemeId
-        }
-        return stageData
-      }) : [],
-      judges: form.value.judges ? form.value.judges.filter(judge => judge.id && judge.name).map(judge => ({
-        judgeId: judge.id,
-        judgeName: judge.name,
-        stageIds: judge.stageIds || []
-      })) : []
+      stages: form.value.stages ? (() => {
+        console.log('=== 澶勭悊stages ===')
+        console.log('鍘熷stages:', form.value.stages)
+        const filteredStages = form.value.stages.filter(stage => stage)
+        console.log('杩囨护鍚巗tages:', filteredStages)
+        return filteredStages.map((stage, index) => {
+          console.log(`澶勭悊stage ${index}:`, stage)
+          const stageData = {
+            name: stage.name,
+            description: stage.description,
+            matchTime: stage.matchTime,
+            address: stage.address,
+            playerMax: stage.playerMax,
+            sortOrder: stage.sortOrder,
+            state: stage.state || 1
+          }
+          // 鍙湪鏈夋湁鏁圛D鏃舵墠娣诲姞id瀛楁
+          if (stage.id) {
+            stageData.id = stage.id
+          }
+          // 鍙湪鏈夋湁鏁坮atingSchemeId鏃舵墠娣诲姞璇ュ瓧娈�
+          if (stage.ratingSchemeId) {
+            stageData.ratingSchemeId = stage.ratingSchemeId
+          }
+          console.log(`澶勭悊鍚巗tage ${index}:`, stageData)
+          return stageData
+        })
+      })() : [],
+      judges: form.value.judges ? (() => {
+        console.log('=== 澶勭悊judges ===')
+        console.log('鍘熷judges:', form.value.judges)
+        const filteredJudges = form.value.judges.filter(judge => judge && judge.id && judge.name)
+        console.log('杩囨护鍚巎udges:', filteredJudges)
+        return filteredJudges.map((judge, index) => {
+          console.log(`澶勭悊judge ${index}:`, judge)
+          const judgeData = {
+            judgeId: judge.id,
+            judgeName: judge.name,
+            stageIds: judge.stageIds || []
+          }
+          console.log(`澶勭悊鍚巎udge ${index}:`, judgeData)
+          return judgeData
+        })
+      })() : []
     }
 
     // 濡傛灉鏄紪杈戞ā寮忥紝娣诲姞id瀛楁
@@ -1213,29 +1253,61 @@
     
     const result = await saveActivity(saveData)
     
+    console.log('=== 淇濆瓨缁撴灉 ===')
+    console.log('result:', result)
+    console.log('result type:', typeof result)
+    console.log('result.id:', result?.id)
+    console.log('result.id type:', typeof result?.id)
+    console.log('JSON.stringify(result):', JSON.stringify(result, null, 2))
+    
     // 濡傛灉鏄柊澧烇紝鏇存柊form鐨刬d
     if (!isEdit.value && result && result.id) {
       form.value.id = result.id
     }
     
     // 澶勭悊濯掍綋鏂囦欢涓婁紶鍜屼繚瀛�
+    let mediaUploadSuccess = true
     if (form.value.mediaFiles && form.value.mediaFiles.length > 0) {
-      const activityId = result.id || form.value.id
+      // 淇activityId鑾峰彇閫昏緫锛氫紭鍏堜娇鐢╮esult.id锛堟柊澧炴椂锛夛紝鍏舵浣跨敤form.value.id锛堢紪杈戞椂锛�
+      const activityId = result?.id || form.value.id
+      console.log('=== 濯掍綋鏂囦欢涓婁紶 ===')
+      console.log('result:', result)
+      console.log('form.value.id:', form.value.id)
+      console.log('鏈�缁坅ctivityId:', activityId)
+      
       if (activityId) {
-        await handleMediaUpload(activityId)
+        try {
+          await handleMediaUpload(activityId)
+          console.log('濯掍綋鏂囦欢涓婁紶鎴愬姛')
+        } catch (mediaError) {
+          console.error('濯掍綋鏂囦欢涓婁紶澶辫触:', mediaError)
+          mediaUploadSuccess = false
+          ElMessage.warning('姣旇禌淇濆瓨鎴愬姛锛屼絾閮ㄥ垎濯掍綋鏂囦欢涓婁紶澶辫触锛岃绋嶅悗閲嶆柊缂栬緫娣诲姞')
+        }
+      } else {
+        console.error('鏃犳硶鑾峰彇activityId锛岃烦杩囧獟浣撴枃浠朵笂浼�')
+        mediaUploadSuccess = false
+        ElMessage.warning('姣旇禌淇濆瓨鎴愬姛锛屼絾鏃犳硶鑾峰彇姣旇禌ID锛屽獟浣撴枃浠朵笂浼犲け璐�')
       }
     }
     
-    ElMessage.success(isEdit.value ? '鏇存柊鎴愬姛' : '鍒涘缓鎴愬姛')
-    
-    // 濡傛灉鏄柊澧烇紝涓嶈嚜鍔ㄨ繑鍥烇紝璁╃敤鎴峰彲浠ョ户缁坊鍔犺瘎濮斿拰瀛﹀憳
-    if (isEdit.value) {
-      goBack()
+    if (mediaUploadSuccess) {
+      ElMessage.success(isEdit.value ? '鏇存柊鎴愬姛' : '鍒涘缓鎴愬姛')
     }
+    
+    // 淇濆瓨鎴愬姛鍚庤繑鍥炲垪琛ㄩ〉闈�
+    goBack()
   } catch (error) {
+    console.error('=== 淇濆瓨姣旇禌澶辫触 ===')
+    console.error('閿欒瀵硅薄:', error)
+    console.error('閿欒娑堟伅:', error.message)
+    console.error('閿欒鍫嗘爤:', error.stack)
+    console.error('褰撳墠form.value:', form.value)
+    
     if (error.message) {
-      console.error('淇濆瓨姣旇禌澶辫触:', error)
       ElMessage.error('淇濆瓨澶辫触: ' + error.message)
+    } else {
+      ElMessage.error('淇濆瓨澶辫触: 鏈煡閿欒')
     }
   } finally {
     submitting.value = false
@@ -1254,7 +1326,15 @@
   await loadActivity()
   
   // 濡傛灉鏄柊寤烘ā寮忎笖娌℃湁闃舵锛岃嚜鍔ㄥ垱寤轰竴涓樁娈�
+  console.log('妫�鏌ラ粯璁ら樁娈靛垱寤烘潯浠�:', {
+    isEdit: isEdit.value,
+    hasForm: !!form.value,
+    hasStages: !!(form.value && form.value.stages),
+    stagesLength: form.value && form.value.stages ? form.value.stages.length : 'undefined'
+  })
+  
   if (!isEdit.value && form.value && form.value.stages && form.value.stages.length === 0) {
+    console.log('鍒涘缓榛樿闃舵')
     onStageCountChange(1)
   }
 })

--
Gitblit v1.8.0