fix: 按秩序册顺序展示成绩场次
This commit is contained in:
parent
9c76905cfe
commit
9dc6151714
@ -253,6 +253,15 @@ async function selectSession(session){
|
|||||||
clearResultSelection();selectedProjectId.value=project.key;selectedSession.value=session;await loadEntries();
|
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 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){
|
async function loadEntries(silent=false){
|
||||||
const projectSessions=[...selectedProjectSessions.value];
|
const projectSessions=[...selectedProjectSessions.value];
|
||||||
if(!projectSessions.length)return;
|
if(!projectSessions.length)return;
|
||||||
@ -262,7 +271,7 @@ async function loadEntries(silent=false){
|
|||||||
try{
|
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})))));
|
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;
|
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;
|
offline.value=false;
|
||||||
await restoreResultSelection(previousEntryIds);
|
await restoreResultSelection(previousEntryIds);
|
||||||
}catch{if(requestId===entriesRequestId)offline.value=true}finally{if(requestId===entriesRequestId)loadingEntries.value=false}
|
}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, '场次 ');
|
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 onSelection(rows){if(!restoringSelection)syncSelection(rows)}
|
||||||
function showDetail(row){detailRow.value=row;detailVisible.value=true}
|
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)}
|
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)}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user