優化應用 APP 新增、編輯邏輯

This commit is contained in:
2025-08-06 16:33:11 +08:00
parent dc4594a4cd
commit af88c0f037
100 changed files with 5592 additions and 7160 deletions

View File

@@ -1,123 +0,0 @@
# 評分管理功能
## 功能概述
後台評分管理系統提供了完整的評分管理功能,包括:
- 查看已完成和未完成的評分內容
- 手動輸入和編輯評分
- 評分進度追蹤
- 篩選和搜尋功能
## 主要功能
### 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. 系統會驗證所有評分項目都已評分才能提交