From e435f0f1a0ab22079167725932b26d9ba99966a1 Mon Sep 17 00:00:00 2001 From: developer Date: Sat, 4 Apr 2026 22:09:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A8=A1=E5=9E=8B=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8C=89=E5=90=8D=E7=A7=B0=E6=8E=92=E5=BA=8F=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=8C=89=E5=A4=A7=E5=B0=8F=E5=8D=87=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/components/model-bar.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/js/components/model-bar.js b/js/components/model-bar.js index f75e078..3294a96 100644 --- a/js/components/model-bar.js +++ b/js/components/model-bar.js @@ -54,14 +54,20 @@ export async function loadModels() { return; } - data.models.forEach(m => { - const opt = document.createElement('option'); - opt.value = m.name; - const diskSize = formatSize(m.size); - const label = diskSize ? `${m.name} · ${diskSize}` : m.name; - opt.textContent = label; - modelSelectEl.appendChild(opt); - }); + data.models + .sort((a, b) => { + const nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase(); + if (nameA !== nameB) return nameA.localeCompare(nameB); + return (a.size || 0) - (b.size || 0); + }) + .forEach(m => { + const opt = document.createElement('option'); + opt.value = m.name; + const diskSize = formatSize(m.size); + const label = diskSize ? `${m.name} · ${diskSize}` : m.name; + opt.textContent = label; + modelSelectEl.appendChild(opt); + }); // 恢复上次选择的模型 const currentSession = state.get(KEYS.CURRENT_SESSION);