fix: v2.1.1 列表操作列溢出与分页器对齐

- /mailboxes 地址列保持自适应(不设宽度吸收剩余空间),操作列 150→210 修复按钮被卡片右缘裁切
- /domains 操作列 200→260、/accounts 100→110,带图标按钮一行放下
- 分页器(总条数/页码/条数下拉)整体居中紧凑,条数下拉不再贴最右侧
This commit is contained in:
bigcode
2026-09-30 14:50:07 +08:00
parent 7370cce784
commit c10495d7f8
6 changed files with 23 additions and 7 deletions
+1 -1
View File
@@ -161,7 +161,7 @@ export function AccountsPage() {
}, },
{ {
title: "操作", title: "操作",
width: 100, width: 110,
render: (_: unknown, row: AccountRow) => ( render: (_: unknown, row: AccountRow) => (
<Space> <Space>
<Button <Button
+1 -1
View File
@@ -128,7 +128,7 @@ export function DomainsPage() {
{ title: "邮箱数", dataIndex: "mailbox_count", width: 80 }, { title: "邮箱数", dataIndex: "mailbox_count", width: 80 },
{ {
title: "操作", title: "操作",
width: 200, width: 260,
render: (_: unknown, row: DomainRow) => ( render: (_: unknown, row: DomainRow) => (
<Space onClick={(e) => e.stopPropagation()}> <Space onClick={(e) => e.stopPropagation()}>
{row.status !== "active" ? ( {row.status !== "active" ? (
+2 -1
View File
@@ -82,6 +82,7 @@ export function MailboxesPage() {
pagination={false} pagination={false}
columns={[ columns={[
{ {
// 地址列不设宽度:吸收剩余空间自适应(tableLayout fixed)
title: "地址", title: "地址",
dataIndex: "address", dataIndex: "address",
render: (v: string, row: MailboxRow) => ( render: (v: string, row: MailboxRow) => (
@@ -113,7 +114,7 @@ export function MailboxesPage() {
}, },
{ {
title: "操作", title: "操作",
width: 150, width: 210,
render: (_: unknown, row: MailboxRow) => ( render: (_: unknown, row: MailboxRow) => (
<Space> <Space>
<Button size="small" icon={<ApiOutlined />} onClick={() => setWebhookTarget(row)}> <Button size="small" icon={<ApiOutlined />} onClick={() => setWebhookTarget(row)}>
+14
View File
@@ -132,6 +132,20 @@ body,
align-items: center; align-items: center;
} }
/* 分页器:整体居中且紧凑(总条数 / 页码 / 条数选择连排,条数下拉不再贴最右侧) */
.ant-table-pagination {
justify-content: center !important;
}
.ant-table-pagination .ant-pagination-total-text {
margin-inline-end: 0 !important;
margin-right: 16px;
}
.ant-table-pagination .ant-pagination-options {
margin-inline-start: 16px !important;
}
.mono { .mono {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 12.5px; font-size: 12.5px;
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "wmailhub", "name": "wmailhub",
"version": "2.1.0", "version": "2.1.1",
"description": "WmailHub - 基于 Cloudflare Email Workers 的轻量邮件接收与转发平台(Console 直连 Email Worker)", "description": "WmailHub - 基于 Cloudflare Email Workers 的轻量邮件接收与转发平台(Console 直连 Email Worker)",
"private": true, "private": true,
"type": "module", "type": "module",
+4 -3
View File
@@ -51,8 +51,9 @@ const recipient = "hello@example.test";
const sender = "e2e@example.org"; const sender = "e2e@example.org";
// Phase 1: authorize // Phase 1: authorize
const authorizeBody = JSON.stringify({ recipient, sender, message_id: "md-e2e-1@example.org" });
const auth = await signWorkerRequest(secret, worker_id, "POST", `${CONSOLE}/internal/email/authorize`, const auth = await signWorkerRequest(secret, worker_id, "POST", `${CONSOLE}/internal/email/authorize`,
JSON.stringify({ recipient, sender, message_id: "md-e2e-1@example.org" })); new TextEncoder().encode(authorizeBody));
const authResp = await fetch(`${CONSOLE}/internal/email/authorize`, { const authResp = await fetch(`${CONSOLE}/internal/email/authorize`, {
method: "POST", method: "POST",
headers: { ...auth, "Content-Type": "application/json" }, headers: { ...auth, "Content-Type": "application/json" },
@@ -63,7 +64,7 @@ console.log("authorize:", authResp.status, JSON.stringify(decision));
if (decision.decision !== "accept") throw new Error("not accepted"); if (decision.decision !== "accept") throw new Error("not accepted");
// Phase 2: ingest(raw MIME) // Phase 2: ingest(raw MIME)
const ingestAuth = await signWorkerRequest(secret, worker_id, "POST", `${CONSOLE}/internal/email/ingest`, mime); const ingestAuth = await signWorkerRequest(secret, worker_id, "POST", `${CONSOLE}/internal/email/ingest`, new TextEncoder().encode(mime));
const ingestResp = await fetch(`${CONSOLE}/internal/email/ingest`, { const ingestResp = await fetch(`${CONSOLE}/internal/email/ingest`, {
method: "POST", method: "POST",
headers: { headers: {
@@ -72,7 +73,7 @@ const ingestResp = await fetch(`${CONSOLE}/internal/email/ingest`, {
"X-WmailHub-Recipient": recipient, "X-WmailHub-Recipient": recipient,
"X-WmailHub-Sender": sender, "X-WmailHub-Sender": sender,
}, },
body: mime, body: mime, // string 直发,签名时才转字节
}); });
const ingestData = (await ingestResp.json()) as { ok: boolean; id: string; webhook: string | null }; const ingestData = (await ingestResp.json()) as { ok: boolean; id: string; webhook: string | null };
console.log("ingest:", ingestResp.status, JSON.stringify(ingestData)); console.log("ingest:", ingestResp.status, JSON.stringify(ingestData));