From 77180eaeb84dee7615ef35c19670d4169e05e9bf Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Mon, 19 Oct 2026 15:50:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(scoring):=20=E6=98=8E=E7=A1=AE=E6=88=90?= =?UTF-8?q?=E7=BB=A9=E6=8A=95=E5=B1=8F=E8=AF=84=E5=88=86=E5=8D=A1=E7=9A=84?= =?UTF-8?q?=E5=BE=97=E5=88=86=E4=B8=8E=E7=B3=BB=E6=95=B0=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 成绩投屏的系数赛制评分卡改为展示“难度得分”“表现系数”“规定系数”“扣分系数 M”,让标签与评分含义一致。沿用赛制判断,规定赛继续显示“创意编排分”“完成质量分”和实际扣分,不误标为系数;交互绳等赛制的评分项隐藏规则保持不变。 仅修改前端成绩大屏页面,不涉及后端接口或计分计算。验证:npm run build:local 通过,git diff --check 通过。业务契约脚本因硬编码的后端路径在本机不存在而未能执行。 --- src/views/scoring/screen/index.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/scoring/screen/index.vue b/src/views/scoring/screen/index.vue index ef84738..64b937e 100644 --- a/src/views/scoring/screen/index.vue +++ b/src/views/scoring/screen/index.vue @@ -29,7 +29,7 @@ import { useRoute } from 'vue-router'; import { DocumentChecked, Flag, Location, Medal, Setting, Trophy, User, UserFilled } from '@element-plus/icons-vue'; import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes'; import { workbenchScreenCastCurrentGet } from '/@/api/match/workbench'; -import { isWireRule } from '../score-format.mjs'; +import { isFactorRule, isWireRule } from '../score-format.mjs'; const route=useRoute(),storesTagsViewRoutes=useTagsViewRoutes(); let savedContext={};try{savedContext=JSON.parse(sessionStorage.getItem('scoring-context')||'{}')}catch{savedContext={}} @@ -59,8 +59,9 @@ const scoreIconComponents={difficulty:Setting,performance:Medal,required:Documen const scoreCards=computed(()=>{ const scoreRuleCode=effectiveCast.value?.scoreRuleCode; const prescribed=String(scoreRuleCode||'').toUpperCase().includes('PRESCRIBED'); + const factor=isFactorRule(scoreRuleCode); const wire=isWireRule(scoreRuleCode); - return [{key:'difficulty',label:'难度',en:'DIFFICULTY',field:'difficultyScore'},{key:'performance',label:'表现',en:'PERFORMANCE',field:'performanceScore'},{key:'required',label:'规定',en:'REQUIRED',field:'requiredScore'},{key:'deduction',label:payload.value.deductionFactor!=null?'扣分 M':'扣分',en:'DEDUCTION',field:payload.value.deductionFactor!=null?'deductionFactor':'deductionScore'}] + return [{key:'difficulty',label:'难度得分',en:'DIFFICULTY',field:'difficultyScore'},{key:'performance',label:prescribed?'创意编排分':factor?'表现系数':'表现',en:'PERFORMANCE',field:'performanceScore'},{key:'required',label:prescribed?'完成质量分':factor?'规定系数':'规定',en:'REQUIRED',field:'requiredScore'},{key:'deduction',label:factor?'扣分系数 M':'扣分',en:'DEDUCTION',field:payload.value.deductionFactor!=null?'deductionFactor':'deductionScore'}] .filter(item=>(item.key!=='difficulty'||!prescribed)&&(item.key!=='required'||!wire)); }); const rankingAll=computed(()=>Array.isArray(payload.value)?payload.value:[]),rankingTotal=computed(()=>rankingAll.value.length),rankingPageCount=computed(()=>Math.max(1,Math.ceil(rankingTotal.value/6))),rankingPageIndex=computed(()=>rankPage.value%rankingPageCount.value),rankingRows=computed(()=>rankingAll.value.slice(rankingPageIndex.value*6,rankingPageIndex.value*6+6)),maxRankScore=computed(()=>Math.max(...rankingAll.value.map(row=>Number(row.totalScore??row.score)||0),1));