# 評分管理功能 ## 功能概述 後台評分管理系統提供了完整的評分管理功能,包括: - 查看已完成和未完成的評分內容 - 手動輸入和編輯評分 - 評分進度追蹤 - 篩選和搜尋功能 ## 主要功能 ### 1. 競賽選擇 - 從下拉選單中選擇要管理的競賽 - 顯示競賽基本資訊(名稱、類型、時間等) ### 2. 評分概覽 - **已完成評分**:顯示已完成的評分數量 - **待評分**:顯示待評分的數量 - **完成度**:顯示評分進度的百分比 - **總評分項目**:顯示總評分項目數量 - 進度條:視覺化顯示評分進度 ### 3. 評分記錄管理 - **評審**:顯示評審姓名和頭像 - **參賽者**:顯示參賽者名稱和類型(個人/團隊) - **類型**:標示參賽者類型 - **總分**:顯示評分總分 - **狀態**:顯示評分狀態(已完成/待評分) - **提交時間**:顯示評分提交時間 - **操作**:編輯或新增評分 ### 4. 篩選和搜尋 - **狀態篩選**:按評分狀態篩選(全部/已完成/待評分) - **搜尋功能**:搜尋評審或參賽者名稱 - **分頁功能**:支援大量數據的分頁顯示 ### 5. 動態評分功能 - **評審選擇**:從評審列表中選擇評審 - **參賽者選擇**:從參賽者列表中選擇參賽者 - **動態評分項目**:根據競賽建立時設定的評比規則動態生成評分項目 - **權重計算**:支援不同評分項目的權重設定 - **評分驗證**:確保所有評分項目都已評分 - **總分計算**:根據權重自動計算總分 - **評審意見**:填寫評審意見和建議 - **評分提交**:提交或更新評分 ## 使用方式 ### 訪問評分管理 1. 進入後台管理系統 2. 點擊「評分管理」標籤 3. 選擇要管理的競賽 ### 查看評分記錄 1. 選擇競賽後,系統會自動載入該競賽的所有評分記錄 2. 使用篩選功能查看特定狀態的評分 3. 使用搜尋功能快速找到特定評審或參賽者的評分 ### 動態評分輸入 1. 點擊「手動輸入評分」按鈕 2. 選擇評審和參賽者 3. 根據競賽設定的評比項目進行評分 4. 為每個評分項目選擇分數(1-10分) 5. 系統會根據權重自動計算總分 6. 填寫評審意見 7. 點擊「提交評分」完成評分 ### 編輯現有評分 1. 在評分記錄表格中點擊編輯按鈕 2. 修改評審意見 3. 點擊「更新評分」保存修改 ## 技術實現 ### 組件結構 - `ScoringManagement`:主要評分管理組件 - 整合到現有的 `CompetitionManagement` 組件中 ### 動態評分系統 - **評比規則讀取**:從競賽的 `rules` 屬性讀取評比項目 - **動態評分項目生成**:根據競賽規則動態生成評分表單 - **權重計算**:支援不同評分項目的權重設定 - **評分驗證**:確保所有評分項目都已評分 - **總分計算**:根據權重自動計算總分 ### 數據流 1. 從 `useCompetition` 上下文獲取競賽和評分數據 2. 根據選擇的競賽載入相關的評審和參賽者 3. 讀取競賽的評比規則並動態生成評分項目 4. 生成評分記錄列表 5. 支援篩選、搜尋和分頁功能 ### 狀態管理 - 使用 React hooks 管理組件狀態 - 整合現有的競賽上下文 - 支援即時數據更新 - 動態評分項目的狀態管理 ## 文件結構 ``` components/admin/ ├── scoring-management.tsx # 評分管理組件 └── competition-management.tsx # 競賽管理組件(已整合) app/admin/ └── scoring/ └── page.tsx # 評分管理頁面 ``` ## 注意事項 1. 評分記錄會根據競賽的評審和參賽者自動生成 2. 已完成的評分可以編輯,未完成的評分可以新增 3. 評分提交後會即時更新列表 4. 支援個人賽和團隊賽的評分管理 5. 評分數據與現有的競賽管理系統完全整合 6. 評分項目會根據競賽建立時設定的評比規則動態生成 7. 如果競賽沒有設定評比規則,會使用預設的評分項目 8. 總分會根據各評分項目的權重自動計算 9. 系統會驗證所有評分項目都已評分才能提交