feat: 模型目录改为可折叠;Key 区提示区分已配置/未配置

This commit is contained in:
dsh-custom committed 2026-10-10 14:06:57 +08:00
1 parent 79966c6730
commit ee5c3a5c75
2 files changed
+44 -5

No files matched your search

+42 -4
View File
@@ -794,8 +794,12 @@ window.__ModuleLoader__.load({
return option;
}));
if (activeApiKeyId) keySelect.value = activeApiKeyId;
// [自用定制 2026-10-10] 不回显正在使用的 API Key
keyHint.textContent = token ? "" : (activeApiKey ? "" : "未检测到可用 API Key,可输入 Key 保存");
// [自用定制 2026-10-10] 不回显 Key 内容,但明确区分「已配置可更换 / 未配置可添加」
keyHint.textContent = token
? ""
: activeApiKey
? "已配置。要更换:粘贴新的 API Key 后点「添加并使用」"
: "尚未配置。粘贴你的 WorkBuddy API Key,然后点「添加并使用」";
keyHint.title = "";
saveKeyButton.textContent = "添加并使用";
removeKeyButton.hidden = !activeApiKey || activeApiKey.kind !== "dsh";
@@ -1164,8 +1168,33 @@ window.__ModuleLoader__.load({
}
function mountModelEditor(host) {
const heading = document.createElement("strong");
// [自用定制 2026-10-10] 「模型目录」改为可折叠,默认收起,避免列表过长。
let collapsed = true;
const toggle = document.createElement("button");
toggle.type = "button";
toggle.setAttribute("aria-expanded", "false");
Object.assign(toggle.style, {
display: "flex",
alignItems: "center",
gap: "6px",
width: "100%",
padding: "2px 0",
border: "0",
background: "transparent",
color: "inherit",
font: "inherit",
fontWeight: "600",
fontSize: "13px",
textAlign: "left",
cursor: "pointer",
});
const caret = document.createElement("span");
caret.setAttribute("aria-hidden", "true");
caret.style.width = "12px";
caret.textContent = "▸";
const heading = document.createElement("span");
heading.textContent = "模型目录";
toggle.append(caret, heading);
const actions = row();
const fetchButton = button("获取可用模型");
const addButton = button("添加模型");
@@ -1180,7 +1209,16 @@ window.__ModuleLoader__.load({
Object.assign(list.style, { display: "flex", flexDirection: "column", gap: "8px" });
Object.assign(message.style, { fontSize: "12px", minHeight: "18px" });
actions.append(fetchButton, addButton, resetButton, saveButton);
host.append(heading, actions, list, candidates, message);
const listWrap = document.createElement("div");
Object.assign(listWrap.style, { display: "none", flexDirection: "column", gap: "8px", width: "100%" });
listWrap.append(list, candidates);
toggle.addEventListener("click", () => {
collapsed = !collapsed;
caret.textContent = collapsed ? "▸" : "▾";
toggle.setAttribute("aria-expanded", collapsed ? "false" : "true");
listWrap.style.display = collapsed ? "none" : "flex";
});
host.append(toggle, actions, listWrap, message);
let models = null;
let revision;
let busy = false;