修复beta版本日志排序问题

This commit is contained in:
cc 2025-04-15 19:32:19 +08:00
parent b431789d3a
commit 8bdd4d957c

View File

@ -233,22 +233,47 @@ export class LogManager {
return 1; return 1;
} }
// 分割版本号,只保留数字部分 // 分离主版本号和beta版本号
const partsA = versionA.split(/[. ]/).map(part => { let mainVersionA = versionA;
const num = parseInt(part); let betaVersionA = '';
return isNaN(num) ? 0 : num; let mainVersionB = versionB;
}); let betaVersionB = '';
const partsB = versionB.split(/[. ]/).map(part => {
const num = parseInt(part);
return isNaN(num) ? 0 : num;
});
// 比较每个部分 if (isBetaA) {
for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) { const parts = versionA.split('beta');
const numA = partsA[i] || 0; mainVersionA = parts[0].trim();
const numB = partsB[i] || 0; betaVersionA = parts[1].trim();
}
if (isBetaB) {
const parts = versionB.split('beta');
mainVersionB = parts[0].trim();
betaVersionB = parts[1].trim();
}
// 比较主版本号
const mainPartsA = mainVersionA.split('.').map(part => parseInt(part) || 0);
const mainPartsB = mainVersionB.split('.').map(part => parseInt(part) || 0);
for (let i = 0; i < Math.max(mainPartsA.length, mainPartsB.length); i++) {
const numA = mainPartsA[i] || 0;
const numB = mainPartsB[i] || 0;
if (numA !== numB) { if (numA !== numB) {
return numB - numA; return numB - numA; // 降序排列,最新版本在前
}
}
// 如果主版本号相同且都有beta版本比较beta版本号
if (betaVersionA && betaVersionB) {
const betaPartsA = betaVersionA.split('.').map(part => parseInt(part) || 0);
const betaPartsB = betaVersionB.split('.').map(part => parseInt(part) || 0);
for (let i = 0; i < Math.max(betaPartsA.length, betaPartsB.length); i++) {
const numA = betaPartsA[i] || 0;
const numB = betaPartsB[i] || 0;
if (numA !== numB) {
return numB - numA; // 降序排列beta2.0 > beta1.2
}
} }
} }