diff --git a/assets/css/routes/user-center/credits.css b/assets/css/routes/user-center/credits.css index 081507db..e8b3ce12 100644 --- a/assets/css/routes/user-center/credits.css +++ b/assets/css/routes/user-center/credits.css @@ -15,7 +15,7 @@ /* Dual asset row — layout only (no outer mega-card). Desktop: 1 row; mobile: 2 rows. */ .uc-assets-row { display: grid; - grid-template-columns: 1fr; + grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 10px; background: transparent; @@ -65,10 +65,15 @@ grid-column: auto; grid-row: auto; } + .uc-asset-card__body { + flex-direction: column; + align-items: flex-start; + } } /* One surface per asset (wallet / points) — never nest inside another card shell */ .uc-asset-card { + min-width: 0; display: flex; flex-direction: column; background: var(--main-bg-color, var(--surface-1, #fff)); @@ -78,6 +83,11 @@ padding: 16px 20px; margin-bottom: 0; } +/* Amount keeps its row; actions wrap below as a whole when space runs out. */ +.uc-asset-card__body { + flex-wrap: wrap; + row-gap: 10px; +} /* Card-pass under a col must not look like a second stacked card */ .uc-assets-col > .uc-card-pass { margin: 0; @@ -95,6 +105,12 @@ color: var(--main-color, #4e5358); } .uc-asset-card__amount { + flex: none; + max-width: 100%; + white-space: nowrap; + font-variant-numeric: tabular-nums; + overflow: hidden; + text-overflow: ellipsis; font-size: 1.75rem; line-height: 1.2; } diff --git a/assets/js/credits.js b/assets/js/credits.js index 6f259bda..9e3b5406 100644 --- a/assets/js/credits.js +++ b/assets/js/credits.js @@ -62,9 +62,10 @@ var points = data.credit_balance !== undefined ? data.credit_balance : data.points_balance; if (wallet !== undefined && wallet !== null && wallet !== '') { var walletNumber = Number(wallet); - var walletText = Number.isFinite(walletNumber) ? walletNumber.toFixed(2) : String(wallet); + var walletText = Number.isFinite(walletNumber) ? walletNumber.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : String(wallet); document.querySelectorAll('[data-aksrt-wallet-value]').forEach(function (element) { element.textContent = walletText; + element.title = walletText; }); } if (points !== undefined && points !== null && points !== '') { @@ -72,6 +73,7 @@ var pointsText = Number.isFinite(pointsNumber) ? pointsNumber.toLocaleString() : String(points); document.querySelectorAll('[data-aksrt-points-value]').forEach(function (element) { element.textContent = pointsText; + element.title = pointsText; }); } } diff --git a/assets/js/signin.js b/assets/js/signin.js index 3298f287..19e52b87 100644 --- a/assets/js/signin.js +++ b/assets/js/signin.js @@ -117,6 +117,7 @@ notyf(result.json.message || '签到成功', 'success', 5, 'aksrt-balance-signin-toast'); document.querySelectorAll('[data-credits-value]').forEach(function (element) { element.textContent = Number(result.json.balance || 0).toLocaleString(); + element.title = element.textContent; }); setButtonState('done'); refresh(); diff --git a/inc/helpers/user-center-renderers/credits-balance.php b/inc/helpers/user-center-renderers/credits-balance.php index 258bc267..0acef0dd 100644 --- a/inc/helpers/user-center-renderers/credits-balance.php +++ b/inc/helpers/user-center-renderers/credits-balance.php @@ -46,7 +46,7 @@ $currency = (string) ($currency_name ?? __('积分', 'aksrt'));