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