🐛 fix(core): 优化 Iris Cloud 重命名逻辑的排序机制
* 新增 multiplierValueOf 函数用于解析倍率字符串为数值 * 在节点排序逻辑中引入倍率维度的升序排列 * 修复原排序逻辑在相同区域下无法按倍率正确排序的问题 * 调整 cleanCoreName 及相关映射逻辑的结构以支持增强排序 * 确保在计算节点编号前先完成基于倍率的二次排序归一化
This commit is contained in:
@@ -49,6 +49,10 @@ async function operator(proxies) {
|
|||||||
return match ? `${match[1]}X` : '';
|
return match ? `${match[1]}X` : '';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const multiplierValueOf = multiplier => (
|
||||||
|
multiplier ? Number(multiplier.replace(/X$/i, '')) : Number.NEGATIVE_INFINITY
|
||||||
|
);
|
||||||
|
|
||||||
const cleanCoreName = name => {
|
const cleanCoreName = name => {
|
||||||
const { text } = utils.splitLeadingOrInlineFlag(name);
|
const { text } = utils.splitLeadingOrInlineFlag(name);
|
||||||
return text
|
return text
|
||||||
@@ -104,6 +108,11 @@ async function operator(proxies) {
|
|||||||
const firstRegionOrder = regionOrder[firstItem.regionPrefix];
|
const firstRegionOrder = regionOrder[firstItem.regionPrefix];
|
||||||
const secondRegionOrder = regionOrder[secondItem.regionPrefix];
|
const secondRegionOrder = regionOrder[secondItem.regionPrefix];
|
||||||
if (firstRegionOrder !== secondRegionOrder) return firstRegionOrder - secondRegionOrder;
|
if (firstRegionOrder !== secondRegionOrder) return firstRegionOrder - secondRegionOrder;
|
||||||
|
const firstMultiplierValue = multiplierValueOf(firstItem.multiplier);
|
||||||
|
const secondMultiplierValue = multiplierValueOf(secondItem.multiplier);
|
||||||
|
if (firstMultiplierValue !== secondMultiplierValue) {
|
||||||
|
return firstMultiplierValue - secondMultiplierValue;
|
||||||
|
}
|
||||||
return firstItem.originalIndex - secondItem.originalIndex;
|
return firstItem.originalIndex - secondItem.originalIndex;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user