fix: clarify SCUM gift list
This commit is contained in:
@@ -659,17 +659,15 @@ function giftsSurface(e: ReactLike["createElement"], data: SCUMSurfaceData, inpu
|
||||
),
|
||||
e("div", { className: "provider-table-wrap scum-table-wrap gift-table-wrap" },
|
||||
e("table", { className: "resource-table scum-gift-table" },
|
||||
e("thead", null, e("tr", null, ["礼包", "领取规则", "礼包内容", "次数 / 门槛", "状态", "最近更新", "操作"].map((label) => e("th", { key: label, scope: "col" }, label)))),
|
||||
e("thead", null, e("tr", null, ["礼包", "礼包内容", "领取规则", "状态 / 更新时间", "操作"].map((label) => e("th", { key: label, scope: "col" }, label)))),
|
||||
e("tbody", null, gifts.length ? gifts.map((gift, index) => {
|
||||
const key = textField(gift, "_recordKey", "code", "id");
|
||||
const status = textField(gift, "status").toLowerCase() || "active";
|
||||
return e("tr", { key: idOf(gift, `gift-${index}`) },
|
||||
e("td", null, e("strong", null, textField(gift, "name") || key), e("span", { className: "provider-id scum-gift-code" }, key)),
|
||||
e("td", null, e("span", null, giftClassLabel(numField(gift, "class"))), e("span", { className: "provider-id" }, giftAudienceLabel(textField(gift, "audience")))),
|
||||
e("td", null, e("div", { className: "scum-gift-content-cell" }, catalogIconStrip(e, giftCatalogIcons(gift)), e("span", null, giftItemsSummary(gift))), e("span", { className: "provider-id" }, giftCommandsSummary(gift))),
|
||||
e("td", null, e("strong", null, numField(gift, "number")), e("span", { className: "provider-id" }, `成就 ${numField(gift, "achievement")} / ${numField(gift, "achievementNumber", "achievement_number")}`)),
|
||||
e("td", null, e("span", { className: `status-pill ${activeStatus(status) ? "status-active" : "status-disabled"}` }, giftStatusLabel(status))),
|
||||
e("td", null, e("span", { className: "provider-id" }, dateField(gift, "updatedAt", "createdAt"))),
|
||||
e("td", null, e("span", { className: "gift-rule-primary" }, `${giftClassLabel(numField(gift, "class"))} · ${giftAudienceLabel(textField(gift, "audience"))}`), e("span", { className: "provider-id" }, `发放 ${numField(gift, "number")} 次 · 成就 ${numField(gift, "achievement")} / ${numField(gift, "achievementNumber", "achievement_number")}`)),
|
||||
e("td", null, e("div", { className: "gift-status-cell" }, e("span", { className: `status-pill ${activeStatus(status) ? "status-active" : "status-disabled"}` }, giftStatusLabel(status)), e("span", { className: "provider-id" }, dateField(gift, "updatedAt", "createdAt")))),
|
||||
e("td", { className: "provider-actions-cell" }, e("div", { className: "scum-gift-table-actions" },
|
||||
e("button", { type: "button", className: "icon-command", onClick: () => openGiftDialog(gift, "view") }, "查看配置"),
|
||||
e("details", { className: "inline-action-control" },
|
||||
@@ -682,7 +680,7 @@ function giftsSurface(e: ReactLike["createElement"], data: SCUMSurfaceData, inpu
|
||||
)
|
||||
))
|
||||
);
|
||||
}) : e("tr", null, e("td", { colSpan: 7 }, e("p", { className: "page-status" }, data.gifts.length ? "没有符合筛选条件的礼包。" : "暂无礼包定义,请先新建一个礼包。"))))
|
||||
}) : e("tr", null, e("td", { colSpan: 5 }, e("p", { className: "page-status" }, data.gifts.length ? "没有符合筛选条件的礼包。" : "暂无礼包定义,请先新建一个礼包。"))))
|
||||
)
|
||||
),
|
||||
) : null,
|
||||
@@ -1530,7 +1528,7 @@ function dateField(row: RecordMap | undefined, ...keys: string[]): string { cons
|
||||
function matchesText(row: RecordMap, search: string, ...keys: string[]): boolean { return !search || keys.some((key) => textField(row, key).toLowerCase().includes(search)); }
|
||||
function unique(values: string[]): string[] { return [...new Set(values)]; }
|
||||
function activeStatus(status: string): boolean { return ["active", "running", "scheduled", "enabled", "queued"].includes(status.toLowerCase()); }
|
||||
function giftItemsSummary(gift: RecordMap): string { const items = field(gift, "items"); if (!Array.isArray(items)) return "物品清单未记录"; return items.map((item) => isRecord(item) ? `${textField(item, "label", "catalogCode", "catalogItemKey", "className", "key") || "item"} × ${numField(item, "quantity")}` : String(item)).join(" · "); }
|
||||
function giftItemsSummary(gift: RecordMap): string { const items = field(gift, "items"); if (!Array.isArray(items) || !items.length) return "未配置物品"; return items.map((item) => { if (!isRecord(item)) return String(item); const code = textField(item, "catalogCode", "catalogItemKey", "key", "className"); const entry = scumCatalogEntryFor(code); const label = entry?.name || textField(item, "label") || code || "未命名物品"; return `${label} × ${numField(item, "quantity")}`; }).join(" · "); }
|
||||
function giftCommandsSummary(gift: RecordMap): string { const commands = field(gift, "commands"); return Array.isArray(commands) && commands.length ? `${commands.length} 条命令` : "无命令"; }
|
||||
function giftItemsInput(gift: RecordMap): string { const items = field(gift, "items"); return Array.isArray(items) ? items.map((item) => isRecord(item) ? `${textField(item, "catalogCode", "catalogItemKey", "key")}:${numField(item, "quantity")}` : "").filter(Boolean).join(", ") : ""; }
|
||||
function giftCommandsInput(gift: RecordMap): string { const commands = field(gift, "commands"); return Array.isArray(commands) ? commands.map((item) => isRecord(item) ? textField(item, "command", "value") : String(item)).filter(Boolean).join("\n") : ""; }
|
||||
|
||||
Reference in New Issue
Block a user