From 3c757aa838e411548d5e330efd907abbdbb321ed Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 10 Jun 2026 15:31:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(debug-trace):=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=A0=E3=80=8C=E5=BC=80/=E5=85=B3?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E9=93=BE=E6=8E=A5=E3=80=8D=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UserListItem 加 debug_trace_enabled - 操作列加开关,调 POST /admin/api/users/{id}/debug-trace(operator 守卫、二次确认,仿封禁) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app/(main)/users/page.tsx | 24 ++++++++++++++++++++++++ src/lib/types.ts | 2 ++ 2 files changed, 26 insertions(+) diff --git a/src/app/(main)/users/page.tsx b/src/app/(main)/users/page.tsx index 5969784..f13ea44 100644 --- a/src/app/(main)/users/page.tsx +++ b/src/app/(main)/users/page.tsx @@ -68,6 +68,25 @@ export default function UsersPage() { }); }; + const toggleDebugTrace = (u: UserListItem) => { + const next = !u.debug_trace_enabled; + Modal.confirm({ + title: `确认${next ? '开启' : '关闭'}用户 ${u.phone} 的调试链接权限?`, + content: next + ? '开启后,该用户在 App 比价结果页/记录页可复制 trace 调试链接发给开发排障' + : undefined, + onOk: async () => { + try { + await api.post(`/admin/api/users/${u.id}/debug-trace`, { enabled: next }); + message.success('已更新调试链接权限'); + reload(); + } catch (e) { + message.error(errMsg(e)); + } + }, + }); + }; + const columns: ColumnsType = [ { title: 'ID', dataIndex: 'id', width: 70 }, { title: '手机号', dataIndex: 'phone' }, @@ -94,6 +113,11 @@ export default function UsersPage() { {canStatus && u.status !== 'deleted' && ( toggleStatus(u)}>{u.status === 'active' ? '封禁' : '解封'} )} + {canStatus && u.status !== 'deleted' && ( + toggleDebugTrace(u)}> + {u.debug_trace_enabled ? '关调试链接' : '开调试链接'} + + )} ), }, diff --git a/src/lib/types.ts b/src/lib/types.ts index 6ff6cd0..4b3af4b 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -27,6 +27,8 @@ export interface UserListItem { nickname: string | null; register_channel: string; status: string; + // 调试链接权限:开了的用户在 App 比价结果页/记录页可复制 price.shaguabijia.com 的 trace 调试链接 + debug_trace_enabled: boolean; wechat_openid: string | null; created_at: string; last_login_at: string;