diff --git a/frontend/src/style.css b/frontend/src/style.css index ed7eb15..0a11773 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -342,12 +342,13 @@ button:not(:disabled), [role="button"]:not([aria-disabled="true"]) { cursor: poi } /* 表头统一:各页曾分别写 10px/11px、tracking 0.2em/0.04em——收拢到同一规格。 */ .theme-text .card table thead :is(th, td) { - font-size: 11px; - font-weight: 700; - letter-spacing: 0.07em; + font-size: 13px; + font-weight: 650; + letter-spacing: 0.01em; color: var(--fg-3); - padding-top: 11px; - padding-bottom: 11px; + padding-top: 16px; + padding-bottom: 16px; + line-height: 1.4; white-space: nowrap; } .theme-text .card table tbody tr { transition: background-color 0.12s ease; } @@ -356,8 +357,8 @@ button:not(:disabled), [role="button"]:not([aria-disabled="true"]) { cursor: poi /* 多选表格的选中行高亮(行加 .row-on) */ .theme-text .card table tbody tr.row-on { background-color: rgb(24 24 27 / 0.035); } .theme-text .card table tbody tr.row-on:hover { background-color: #f0f0f2; } -/* 表体单元格基线:没显式设颜色的 td 统一次要色,数字/名称列各自覆盖 */ -.theme-text .card table tbody td { color: var(--fg-2); } +/* 表体单元格基线:统一 13px 字号 + 次要色,数字/名称列各自覆盖 */ +.theme-text .card table tbody td { color: var(--fg-2); font-size: 13px; } .theme-text .card table tbody tr.row-on td:first-child { box-shadow: inset 2px 0 0 #18181b; } /* ── 空占位:图标块 + 文案,全站表格/卡片共用 ── */ diff --git a/frontend/src/views/UsersView.vue b/frontend/src/views/UsersView.vue index d767510..db27648 100644 --- a/frontend/src/views/UsersView.vue +++ b/frontend/src/views/UsersView.vue @@ -268,23 +268,20 @@ async function doRecharge() {
| 用户名 | -邮箱 | -备注 | -并发 | +用户 | 角色 | 状态 | 积分 | 累计充值 | +并发组 | 生图次数 | 违禁触发 | 注册时间 | 最近登录 | -登录 IP | 操作 | - {{ u.name || '—' }} - | -- {{ u.email || '—' }} - | -- {{ u.notes || '—' }} - | -- {{ cgroupLabel(u.concurrency_group_id) }} + |
+
+ {{ (u.name || u.email || '?').slice(0, 1).toUpperCase() }}
+
+
+ {{ u.name || '—' }}
+ {{ u.email || '—' }}
+ {{ u.notes }}
+ |
¥{{ (u.recharge_total || 0).toLocaleString('en-US') }} | ++ {{ cgroupLabel(u.concurrency_group_id) }} + | {{ (u.generation_count || 0).toLocaleString('en-US') }} @@ -363,22 +358,16 @@ async function doRecharge() { :class="u.banned_word_hits > 0 ? 'text-rose-600' : 'text-white/25'"> {{ (u.banned_word_hits || 0).toLocaleString('en-US') }} | -
-
-
+ {{ fmtDate(u.created_at) }}
- {{ fmtClock(u.created_at) }}
- | + {{ fmtDate(u.created_at) }} — | -
-
- {{ fmtDate(u.last_login_at) }}
- {{ fmtClock(u.last_login_at) }}
+
+ |
-
+
- 从未登录
- {{ fmtDate(u.last_login_at) }} {{ fmtClock(u.last_login_at) }}
+ {{ u.last_login_ip || '—' }}
- {{ u.last_login_ip || '—' }}
+ 从未登录
|
|
@@ -582,6 +571,21 @@ async function doRecharge() {
.fp-orange { background: rgb(249 115 22 / 0.12); color: #c2410c; box-shadow: inset 0 0 0 1px rgb(249 115 22 / 0.25); }
.fp-amber { background: rgb(245 158 11 / 0.12); color: #b45309; box-shadow: inset 0 0 0 1px rgb(245 158 11 / 0.25); }
+/* --- user avatar tile in table */
+.uavatar {
+ display: grid;
+ place-items: center;
+ width: 34px;
+ height: 34px;
+ border-radius: 10px;
+ background: var(--surface-2);
+ box-shadow: inset 0 0 0 1px var(--hairline);
+ color: var(--fg-2);
+ font-size: 13px;
+ font-weight: 800;
+ flex-shrink: 0;
+}
+
/* --- icon-only action buttons */
.act {
display: inline-flex; align-items: center; justify-content: center;
|
|---|