修复已停用厂商找回交互:选中先进确认层(可看出厂模型/返回),点恢复才入队reset
This commit is contained in:
@@ -670,7 +670,7 @@ function mmFindDisabled(connected) {
|
||||
|
||||
async function openModelManager(context) {
|
||||
try {
|
||||
// 层级状态机:view = list | scope | provider | model | action | find
|
||||
// 层级状态机:view = list | scope | provider | model | action | find | found
|
||||
let view = "list"
|
||||
let target = null // 当前厂商 {id,name,models}
|
||||
let pendingModel = null
|
||||
@@ -876,7 +876,7 @@ async function openModelManager(context) {
|
||||
}
|
||||
const pick = await context.ui.dialog.select({
|
||||
title: "已停用/已删除的厂商",
|
||||
placeholder: "选一个恢复(← 返回上一级)",
|
||||
placeholder: "选一个进入(← 返回上一级)",
|
||||
options: [
|
||||
{ title: "← 返回上级", value: MM_BACK },
|
||||
...disabled.map((d) => ({
|
||||
@@ -889,9 +889,58 @@ async function openModelManager(context) {
|
||||
view = "list"
|
||||
continue
|
||||
}
|
||||
mmEnqueue("reset", { provider: pick })
|
||||
// 2026-10-20:选中不再直接入队+弹回最外层(用户反馈「点不进去,复原不了」),
|
||||
// 改为进入该厂商的确认层,由用户明确点「恢复」才入队
|
||||
const d = disabled.find((x) => x.id === pick)
|
||||
if (!d) {
|
||||
view = "list"
|
||||
continue
|
||||
}
|
||||
target = d
|
||||
view = "found"
|
||||
continue
|
||||
}
|
||||
|
||||
// ── 已停用/已删除厂商 · 恢复确认层 ───────────────────────────────
|
||||
if (view === "found") {
|
||||
const d = target
|
||||
if (!d) {
|
||||
view = "list"
|
||||
continue
|
||||
}
|
||||
const status = d.deleted ? "已删除(彻底摘除节点)" : "已停用(models 已清空)"
|
||||
const pick = await context.ui.dialog.select({
|
||||
title: "找回厂商 · " + d.name,
|
||||
placeholder: status + ",可从出厂集恢复…",
|
||||
options: [
|
||||
{ title: "← 返回上级(已停用列表)", value: MM_BACK },
|
||||
{
|
||||
title: "♻️ 恢复该厂商(从出厂集拉回 " + d.models.length + " 个模型)",
|
||||
value: "__restore__",
|
||||
},
|
||||
{
|
||||
title: "📋 出厂模型:" + (d.models.length ? d.models.slice(0, 6).join(", ") + (d.models.length > 6 ? " …" : "") : "(无)"),
|
||||
value: "__info__",
|
||||
},
|
||||
],
|
||||
})
|
||||
if (!pick || pick === MM_BACK) {
|
||||
view = "find"
|
||||
continue
|
||||
}
|
||||
if (pick === "__info__") {
|
||||
try {
|
||||
context.ui.toast.show({
|
||||
message: d.name + " 出厂模型(" + d.models.length + "):" + d.models.join(", ").slice(0, 300),
|
||||
variant: "info",
|
||||
duration: 6000,
|
||||
})
|
||||
} catch {}
|
||||
continue // 停留在本层
|
||||
}
|
||||
mmEnqueue("reset", { provider: d.id })
|
||||
context.ui.toast.show({
|
||||
message: "已入队:恢复 " + pick + "(从出厂集拉回),daemon 写完自动热重载",
|
||||
message: "已入队:恢复 " + d.name + "(从出厂集拉回),daemon 写完自动热重载",
|
||||
variant: "info",
|
||||
})
|
||||
view = "list"
|
||||
|
||||
Reference in New Issue
Block a user