From 9dc6151714b610806a15fb7171e42c9b13b3230b Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Wed, 23 Sep 2026 15:17:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8C=89=E7=A7=A9=E5=BA=8F=E5=86=8C?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E5=B1=95=E7=A4=BA=E6=88=90=E7=BB=A9=E5=9C=BA?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/scoring/workbench/index.vue | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/views/scoring/workbench/index.vue b/src/views/scoring/workbench/index.vue index dffe7d8..2b0e1fd 100644 --- a/src/views/scoring/workbench/index.vue +++ b/src/views/scoring/workbench/index.vue @@ -253,6 +253,15 @@ async function selectSession(session){ clearResultSelection();selectedProjectId.value=project.key;selectedSession.value=session;await loadEntries(); } function selectSessionById(sessionId){const session=sessions.value.find(item=>item.sessionId===sessionId);if(session)selectSession(session)} +function compareIntegerText(left,right){ + const a=String(left??'').replace(/^0+/,'')||'0',b=String(right??'').replace(/^0+/,'')||'0'; + return a.length-b.length||a.localeCompare(b); +} +function compareEntrySchedule(a,b){ + const aOrder=a.scheduleOrder,bOrder=b.scheduleOrder; + if(aOrder&&bOrder){const result=compareIntegerText(aOrder,bOrder);if(result)return result} + return a._sessionOrder-b._sessionOrder||(Number(a.playOrder)||a._rowOrder)-(Number(b.playOrder)||b._rowOrder); +} async function loadEntries(silent=false){ const projectSessions=[...selectedProjectSessions.value]; if(!projectSessions.length)return; @@ -262,7 +271,7 @@ async function loadEntries(silent=false){ try{ const responses=await Promise.all(projectSessions.map((session,sessionOrder)=>workbenchSessionEntriesGet(session.sessionId,{keyword:entryKeyword.value||undefined,resultStatus:resultStatus.value??undefined}).then(res=>(res?.data||[]).map((row,rowOrder)=>({...row,_session:session,_sessionOrder:sessionOrder,_rowOrder:rowOrder}))))); if(requestId!==entriesRequestId)return; - entries.value=responses.flat().sort((a,b)=>a._sessionOrder-b._sessionOrder||(Number(a.playOrder)||a._rowOrder)-(Number(b.playOrder)||b._rowOrder)); + entries.value=responses.flat().sort(compareEntrySchedule); offline.value=false; await restoreResultSelection(previousEntryIds); }catch{if(requestId===entriesRequestId)offline.value=true}finally{if(requestId===entriesRequestId)loadingEntries.value=false} @@ -327,7 +336,11 @@ function formatSessionText(sessionNo) { } return String(sessionNo).replace(/^EP/i, '场次 '); } -function rowSessionDisplay(row){const session=row?._session;if(!session)return '—';return formatSessionName(session,session._sourceIndex).replace(/\s+/g,'')} +function rowSessionDisplay(row){ + const sessionOrder=Number(row?.sessionOrder); + if(Number.isInteger(sessionOrder)&&sessionOrder>0)return `第${sessionOrder}场`; + const session=row?._session;if(!session)return '—';return formatSessionName(session,session._sourceIndex).replace(/\s+/g,''); +} function onSelection(rows){if(!restoringSelection)syncSelection(rows)} function showDetail(row){detailRow.value=row;detailVisible.value=true} function handleRowCommand(command,row){if(command==='correction')openCorrection(row);else if(command==='rematch')openReason('rematch',row);else if(command==='void')openReason('void',row);else if(command==='export')exportSheets(row)}