|
|
|
|
@ -61,14 +61,10 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="裁判提交" width="92" align="center"><template #default="{ row }"><span :class="['submit-progress', { done: allSubmitted(row) }]">{{ submittedCount(row) }}/{{ row.judgeScores?.length || 0 }}</span></template></el-table-column>
|
|
|
|
|
<el-table-column v-if="showDifficulty" label="难度分(得分)" min-width="116" align="center"><template #default="{ row }">{{ score(row.result?.difficultyScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="performanceScoreLabel" min-width="100" align="center"><template #default="{ row }">{{ score(row.result?.performanceScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="requiredScoreLabel" min-width="100" align="center"><template #default="{ row }">{{ score(row.result?.requiredScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="deductionScoreLabel" min-width="100" align="center"><template #default="{ row }">{{ score(row.result?.deductionScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column v-if="showDifficulty" label="难度分" width="88" align="center"><template #default="{ row }">{{ score(row.result?.difficultyScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '表现系数 P' : '表现分'" width="110" align="center"><template #default="{ row }">{{ score(row.result?.performanceScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '规定系数 Q' : '规定分'" width="110" align="center"><template #default="{ row }">{{ score(row.result?.requiredScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '得分系数 M' : '扣分'" width="110" align="center"><template #default="{ row }">{{ isFactorRule(row._session?.scoreRuleCode) ? fixedScore(row.result?.deductionFactor, 3) : score(row.result?.deductionScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column v-if="showDifficulty" label="难度分 D" min-width="100" align="center"><template #default="{ row }">{{ score(row.result?.difficultyScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '表现系数 P' : performanceScoreLabel" min-width="110" align="center"><template #default="{ row }">{{ score(row.result?.performanceScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '规定系数 Q' : requiredScoreLabel" min-width="110" align="center"><template #default="{ row }">{{ score(row.result?.requiredScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column :label="showFactorScores ? '得分系数 M' : deductionScoreLabel" min-width="110" align="center"><template #default="{ row }">{{ isFactorRule(row._session?.scoreRuleCode) ? fixedScore(row.result?.deductionFactor, 3) : score(row.result?.deductionScore) }}</template></el-table-column>
|
|
|
|
|
<el-table-column label="总分" width="96" align="center"><template #default="{ row }"><b class="total" :class="{ dq: row.result?.isDisqualified }">{{ row.result?.isDisqualified ? 'DQ' : score(row.result?.totalScore ?? row.result?.scoreText) }}</b></template></el-table-column>
|
|
|
|
|
<el-table-column label="排名" width="72" align="center"><template #default="{ row }"><span v-if="row.result?.rank" :class="['rank-number', `rank-${row.result.rank}`]">{{ row.result.rank }}</span><span v-else class="muted">—</span></template></el-table-column>
|
|
|
|
|
<el-table-column label="状态" width="96" fixed="right" align="center"><template #default="{ row }"><el-tag v-if="row.result" :type="resultTag(row.result.resultStatus)" effect="light">{{ row.result.resultStatusName }}</el-tag><span v-else class="muted">计算中</span></template></el-table-column>
|
|
|
|
|
@ -200,7 +196,7 @@ const detailJudgeGroups=computed(()=>{
|
|
|
|
|
{key:'difficulty',label:'难度分(得分)',summaryLabel:'得分'},
|
|
|
|
|
{key:'performance',label:prescribed?'创意编排分':'表现分(系数)',summaryLabel:'得分'},
|
|
|
|
|
{key:'required',label:prescribed?'完成质量分':'规定(系数)',summaryLabel:'得分'},
|
|
|
|
|
{key:'deduction',label:prescribed?'扣分':'扣分(系数)',summaryLabel:'合计'},
|
|
|
|
|
{key:'deduction',label:prescribed?'扣分':'扣分明细',summaryLabel:prescribed?'合计':'综合扣分'},
|
|
|
|
|
];
|
|
|
|
|
const result=groups.filter(group=>group.key!=='difficulty'||!prescribed).map(group=>({...group,judges:sheets.filter(sheet=>judgeGroupKey(sheet)===group.key)}));
|
|
|
|
|
const others=sheets.filter(sheet=>judgeGroupKey(sheet)==='other');
|
|
|
|
|
@ -326,7 +322,7 @@ function submittedCount(row){return (row.judgeScores||[]).filter(x=>x.sheetStatu
|
|
|
|
|
function hasSubmittedJudgeScores(row){return (row.judgeScores||[]).some(x=>x.scoreSheetId>0&&x.sheetStatus>=10&&x.sheetStatus<90)}
|
|
|
|
|
function allSubmitted(row){return !!row.judgeScores?.length&&submittedCount(row)===row.judgeScores.length}
|
|
|
|
|
function judgeColumnLabel(sheet){return sheet?.judgeRole||sheet?.judgeRoleName||'裁判'}
|
|
|
|
|
function judgeDisplayValue(sheet,groupKey){if(!sheet)return null;if(groupKey==='difficulty')return sheet.difficultyScore;if(groupKey==='performance')return sheet.performanceScore;if(groupKey==='required')return sheet.requiredScore;if(groupKey==='deduction')return detailRow.value?.result?.deductionScore??sheet.deductionScore;return sheet.totalScore}
|
|
|
|
|
function judgeDisplayValue(sheet,groupKey){if(!sheet)return null;if(groupKey==='difficulty')return sheet.difficultyScore;if(groupKey==='performance')return sheet.performanceScore;if(groupKey==='required')return sheet.requiredScore;if(groupKey==='deduction')return sheet.deductionScore;return sheet.totalScore}
|
|
|
|
|
function detailAggregateScore(groupKey){const result=detailRow.value?.result;if(!result)return null;return ({difficulty:result.difficultyScore,performance:result.performanceScore,required:result.requiredScore,deduction:result.deductionScore,other:null})[groupKey]}
|
|
|
|
|
function showJudgeDetail(sheet){if(!sheet||sheet.sheetStatus<10)return;selectedJudgeSheet.value=sheet;judgeDetailVisible.value=true}
|
|
|
|
|
async function viewJudgeScoreBoard(){
|
|
|
|
|
|