From 369361a62c2e9c4d563b110a2b8b4e22afa2e056 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Thu, 15 Oct 2026 16:58:06 +0800 Subject: [PATCH] =?UTF-8?q?style(huya):=20=E7=B2=BE=E8=8B=B1=E5=AE=9D?= =?UTF-8?q?=E5=85=B8=E5=B7=A5=E4=BD=9C=E5=8F=B0=E8=A1=A8=E6=A0=BC=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4=E4=B8=8E=E5=8D=95=E5=85=83=E6=A0=BC=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=B1=85=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 列宽按比例分配,所有列(含账号/游戏名/精英宝典/最近操作的双行内容)统一 align: center,积分不再单独右对齐 —— 之前左右跳着看很别扭。 --- web/frontend/src/pages/HuyaElitePage.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/web/frontend/src/pages/HuyaElitePage.tsx b/web/frontend/src/pages/HuyaElitePage.tsx index a3cad81..1f0a8c2 100644 --- a/web/frontend/src/pages/HuyaElitePage.tsx +++ b/web/frontend/src/pages/HuyaElitePage.tsx @@ -251,15 +251,15 @@ export default function HuyaElitePage() { }, [filteredRechargeGoods, selectedRechargeSpu]); const exchangeCount = tasks.filter((task) => task.task_type === 'exchange_goods').length; - // 列宽按比例分配(percent),表格宽度随容器缩放,不会被拉出「奇奇怪怪」的宽度 + // 列宽按比例分配(percent),表头与单元格统一居中,避免左右跳着看 const accountColumns: TableProps['columns'] = [ { title: '#', width: '4%', align: 'center', render: (_value, _row, index) => {index + 1} }, - { title: '账号', width: '15%', ellipsis: true, render: (_value, row) => {row.nickname || row.username || row.uid}UID {row.uid || '-'} }, - { title: '手机号', width: '10%', ellipsis: true, render: (_value, row) => row.game_phone || - }, - { title: '游戏名', width: '13%', ellipsis: true, render: (_value, row) => {row.game_name || 未查询}{row.game_channel && {row.game_channel}} }, - { title: '精英宝典', width: '13%', ellipsis: true, render: (_value, row) => {row.elite_opened === true ? '已开通' : row.elite_opened === false ? '未开通' : '未查询'}{row.elite_opened === true && row.elite_open_time ? {`开通 ${formatUnixSeconds(row.elite_open_time)}`} : null}{row.elite_expire_time ? {`有效期至 ${formatUnixSeconds(row.elite_expire_time)}`} : null} }, - { title: '积分', dataIndex: 'points', width: '7%', align: 'right', render: (value: number | null) => value ?? - }, - { title: '最近操作', width: '25%', ellipsis: true, render: (_value, row) => { const task = latestTask(tasks, row.id); return task ? {TASK_LABELS[task.task_type] || task.task_type}{task.message || '-'}{formatTime(task.finished_at || task.created_at)} : 暂无操作; } }, + { title: '账号', width: '15%', align: 'center', ellipsis: true, render: (_value, row) => {row.nickname || row.username || row.uid}UID {row.uid || '-'} }, + { title: '手机号', width: '10%', align: 'center', ellipsis: true, render: (_value, row) => row.game_phone || - }, + { title: '游戏名', width: '13%', align: 'center', ellipsis: true, render: (_value, row) => {row.game_name || 未查询}{row.game_channel && {row.game_channel}} }, + { title: '精英宝典', width: '13%', align: 'center', ellipsis: true, render: (_value, row) => {row.elite_opened === true ? '已开通' : row.elite_opened === false ? '未开通' : '未查询'}{row.elite_opened === true && row.elite_open_time ? {`开通 ${formatUnixSeconds(row.elite_open_time)}`} : null}{row.elite_expire_time ? {`有效期至 ${formatUnixSeconds(row.elite_expire_time)}`} : null} }, + { title: '积分', dataIndex: 'points', width: '7%', align: 'center', render: (value: number | null) => value ?? - }, + { title: '最近操作', width: '25%', align: 'center', ellipsis: true, render: (_value, row) => { const task = latestTask(tasks, row.id); return task ? {TASK_LABELS[task.task_type] || task.task_type}{task.message || '-'}{formatTime(task.finished_at || task.created_at)} : 暂无操作; } }, { title: '二维码', width: '6%', align: 'center', render: (_value, row) => { const task = latestTask(tasks, row.id); const url = taskQrUrl(task); const image = resultText(task, 'mini_qrcode_image'); if (!url && !image) return -; return
{ event.stopPropagation(); if (task) void openQrTask(task); }} style={{ cursor: 'pointer', display: 'inline-block', lineHeight: 0 }} title="点击查看二维码">{image ? 二维码 : }
; } }, { title: '状态', width: '7%', align: 'center', render: (_value, row) => { const task = latestTask(tasks, row.id); const status = task?.status || row.status || ''; return {TASK_STATUS_LABELS[status] || status || '待操作'}; } }, ];