feat(user-center): refine creator income details
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -710,6 +710,7 @@
|
||||
}
|
||||
|
||||
/* ==================== 作者收益中心 ==================== */
|
||||
.uc-content #panel-creator.dashboard-panel { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
|
||||
.creator-income { display: flex; flex-direction: column; gap: 16px; }
|
||||
.creator-income__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
|
||||
.creator-income-card { padding: 18px; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--surface-1); }
|
||||
@@ -730,10 +731,14 @@
|
||||
.creator-income__details { padding: 4px 0 0; }
|
||||
.creator-income__toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
|
||||
.creator-income__list { border-top: 1px solid var(--color-line); }
|
||||
.creator-income-row { display: grid; grid-template-columns: minmax(110px, .8fr) minmax(0, 1fr) auto; align-items: center; gap: 14px; min-width: 0; padding: 14px 0; border-bottom: 1px solid var(--color-line); }
|
||||
.creator-income-row__currency { color: var(--color-ink-3); font-size: 13px; }
|
||||
.creator-income-row__amount { min-width: 0; overflow: hidden; color: #16816c; font-size: 15px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.creator-income-row__status { justify-self: end; padding: 3px 8px; border-radius: var(--radius-pill); color: var(--color-ink-4); background: var(--surface-2); font-size: 11px; white-space: nowrap; }
|
||||
.creator-income-row { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(86px, auto) minmax(0, 1fr) minmax(180px, auto); align-items: center; gap: 14px; min-width: 0; padding: 14px 0; border-bottom: 1px solid var(--color-line); }
|
||||
.creator-income-row__order,
|
||||
.creator-income-row__source { min-width: 0; overflow: hidden; color: var(--color-ink-3); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.creator-income-row__currency { color: var(--color-ink-3); font-size: 13px; white-space: nowrap; }
|
||||
.creator-income-row__detail { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; }
|
||||
.creator-income-row__amount { flex-shrink: 0; color: #16816c; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
||||
.creator-income-row__time { flex-shrink: 0; color: var(--color-ink-4); font-size: 12px; white-space: nowrap; }
|
||||
.creator-income-row__status { flex-shrink: 0; padding: 3px 8px; border-radius: var(--radius-pill); color: var(--color-ink-4); background: var(--surface-2); font-size: 11px; white-space: nowrap; }
|
||||
.creator-income-row__status--settled { color: #16816c; background: rgba(22, 129, 108, .1); }
|
||||
.creator-income-row__status--pending { color: #a86d28; background: rgba(168, 109, 40, .12); }
|
||||
.creator-income__pagination { display: flex; justify-content: center; gap: 6px; padding-top: 16px; }
|
||||
@@ -745,11 +750,17 @@
|
||||
@media (max-width: 767px) {
|
||||
.creator-income__cards { grid-template-columns: 1fr; }
|
||||
.creator-income-card__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||||
.creator-income-row { grid-template-columns: minmax(100px, .8fr) minmax(78px, auto) minmax(0, 1fr) auto; gap: 10px; }
|
||||
.creator-income-row__detail { align-items: flex-end; flex-direction: column; gap: 4px; }
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.creator-income-row { grid-template-columns: minmax(82px, .8fr) minmax(0, 1fr) auto; gap: 8px; }
|
||||
.creator-income__details { padding: 16px; }
|
||||
.creator-income-row { grid-template-columns: minmax(82px, .8fr) minmax(72px, auto) minmax(0, 1fr) auto; gap: 8px; padding: 12px 0; }
|
||||
.creator-income-row__order,
|
||||
.creator-income-row__currency,
|
||||
.creator-income-row__source { font-size: 12px; }
|
||||
.creator-income-row__amount { font-size: 13px; }
|
||||
.creator-income-row__time { font-size: 11px; }
|
||||
.creator-income-row__status { padding-inline: 6px; }
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ $currency_labels = [
|
||||
<div><?php echo wp_kses_post($note); ?></div>
|
||||
</section>
|
||||
|
||||
<section class="creator-income__details">
|
||||
<section class="creator-income__details widget-card">
|
||||
<div class="creator-income__toolbar">
|
||||
<div>
|
||||
<h2><?php esc_html_e('收入明细', 'aksrt'); ?></h2>
|
||||
@@ -97,11 +97,37 @@ $currency_labels = [
|
||||
$unit = (string) ($item['currency'] ?? 'CNY') === 'points' ? 'points' : 'CNY';
|
||||
$status = (string) ($item['status'] ?? '') === 'pending' ? 'pending' : 'settled';
|
||||
$amount = $format($item['amount'] ?? 0, $unit);
|
||||
$order_number = trim((string) ($item['order_number'] ?? ''));
|
||||
$order_number = $order_number !== '' ? $order_number : __('订单编号未知', 'aksrt');
|
||||
$post = get_post((int) ($item['post_id'] ?? 0));
|
||||
$source = $post instanceof WP_Post && $post->post_type === 'post'
|
||||
? get_the_title($post)
|
||||
: __('内容已删除', 'aksrt');
|
||||
$source = trim((string) $source) !== '' ? (string) $source : __('内容已删除', 'aksrt');
|
||||
$created_at = trim((string) ($item['created_at'] ?? ''));
|
||||
$time_label = '';
|
||||
$time_datetime = '';
|
||||
if ($created_at !== '') {
|
||||
try {
|
||||
$created = new DateTimeImmutable($created_at, wp_timezone());
|
||||
$time_datetime = $created->format('c');
|
||||
$time_label = wp_date(get_option('date_format') . ' ' . get_option('time_format'), $created->getTimestamp());
|
||||
} catch (Exception $exception) {
|
||||
$time_label = '';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<article class="creator-income-row" role="listitem">
|
||||
<span class="creator-income-row__order" title="<?php echo esc_attr($order_number); ?>"><?php echo esc_html($order_number); ?></span>
|
||||
<span class="creator-income-row__currency"><?php echo esc_html($currency_labels[$unit === 'points' ? 'points' : 'CNY']); ?></span>
|
||||
<strong class="creator-income-row__amount">+<?php echo esc_html($amount . ($unit === 'points' ? __('积分', 'aksrt') : __('现金', 'aksrt'))); ?></strong>
|
||||
<span class="creator-income-row__status creator-income-row__status--<?php echo esc_attr($status); ?>"><?php echo esc_html($status_labels[$status]); ?></span>
|
||||
<span class="creator-income-row__source" title="<?php echo esc_attr($source); ?>"><?php echo esc_html($source); ?></span>
|
||||
<span class="creator-income-row__detail">
|
||||
<strong class="creator-income-row__amount">+<?php echo esc_html($amount . ($unit === 'points' ? __('积分', 'aksrt') : __('现金', 'aksrt'))); ?></strong>
|
||||
<?php if ($time_label !== '') : ?>
|
||||
<time class="creator-income-row__time" datetime="<?php echo esc_attr($time_datetime); ?>"><?php echo esc_html($time_label); ?></time>
|
||||
<?php endif; ?>
|
||||
<span class="creator-income-row__status creator-income-row__status--<?php echo esc_attr($status); ?>"><?php echo esc_html($status_labels[$status]); ?></span>
|
||||
</span>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user