fix: bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 2m27s

This commit is contained in:
sexygoat
2026-04-11 16:51:54 +08:00
parent 33e15314ac
commit 4f02d6faf0
25 changed files with 387 additions and 317 deletions

View File

@@ -1,16 +1,16 @@
<template>
<ElCard shadow="never" class="commission-stats-widget" v-if="stats">
<ElCard shadow="never" class="commission-stats-widget">
<template #header>
<div class="card-header">
<div class="header-left">
<span class="header-title">佣金资金统计</span>
</div>
<div class="header-right">
<div class="header-right" v-if="stats">
<span class="date-range">{{ startTime }} ~ {{ endTime }}</span>
</div>
</div>
</template>
<div class="stats-info">
<div v-if="stats" class="stats-info">
<div class="stats-card">
<div
class="stats-icon"
@@ -60,7 +60,7 @@
</div>
</div>
</div>
<div class="stats-breakdown">
<div class="stats-breakdown" v-if="stats">
<div class="breakdown-item">
<span class="breakdown-label">成本价差占比</span>
<span class="breakdown-value">{{ formatPercent(stats.cost_diff_percent) }}</span>
@@ -70,9 +70,7 @@
<span class="breakdown-value">{{ formatPercent(stats.one_time_percent) }}</span>
</div>
</div>
</ElCard>
<ElCard shadow="never" v-else class="commission-stats-widget empty-state">
<div class="empty-content">
<div v-if="!stats" class="empty-content">
<i class="el-icon-info" style="font-size: 48px; color: var(--el-text-color-placeholder)"></i>
<p>暂无佣金统计数据</p>
</div>

View File

@@ -1,5 +1,5 @@
<template>
<ElCard shadow="never" class="commission-summary-widget" v-if="!errorMsg">
<ElCard shadow="never" class="commission-summary-widget">
<template #header>
<div class="card-header">
<div class="header-left">
@@ -7,77 +7,77 @@
</div>
</div>
</template>
<div class="stats-info">
<div v-if="!errorMsg" class="stats-info">
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #ff6b6b 0%, #ff8e53 100%)"
>
<i class="iconfont-sys">&#xe722;</i>
</div>
<div class="stats-content">
<div class="stats-label">预充值余额</div>
<div class="stats-value">{{ formatMoney(summary.main_balance) }}</div>
<div class="stat-content">
<div class="stat-label">预充值余额</div>
<div class="stat-value">{{ formatMoney(summary.main_balance) }}</div>
</div>
</div>
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
>
<i class="iconfont-sys">&#xe71d;</i>
</div>
<div class="stats-content">
<div class="stats-label">总佣金</div>
<div class="stats-value">{{ formatMoney(summary.total_commission) }}</div>
<div class="stat-content">
<div class="stat-label">总佣金</div>
<div class="stat-value">{{ formatMoney(summary.total_commission) }}</div>
</div>
</div>
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%)"
>
<i class="iconfont-sys">&#xe71e;</i>
</div>
<div class="stats-content">
<div class="stats-label">可提现佣金</div>
<div class="stats-value">{{ formatMoney(summary.available_commission) }}</div>
<div class="stat-content">
<div class="stat-label">可提现佣金</div>
<div class="stat-value">{{ formatMoney(summary.available_commission) }}</div>
</div>
</div>
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)"
>
<i class="iconfont-sys">&#xe720;</i>
</div>
<div class="stats-content">
<div class="stats-label">冻结佣金</div>
<div class="stats-value">{{ formatMoney(summary.frozen_commission) }}</div>
<div class="stat-content">
<div class="stat-label">冻结佣金</div>
<div class="stat-value">{{ formatMoney(summary.frozen_commission) }}</div>
</div>
</div>
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #fa709a 0%, #fee140 100%)"
>
<i class="iconfont-sys">&#xe71f;</i>
</div>
<div class="stats-content">
<div class="stats-label">提现中佣金</div>
<div class="stats-value">{{ formatMoney(summary.withdrawing_commission) }}</div>
<div class="stat-content">
<div class="stat-label">提现中佣金</div>
<div class="stat-value">{{ formatMoney(summary.withdrawing_commission) }}</div>
</div>
</div>
<div class="stats-card">
<div
class="stats-icon"
class="stat-icon"
style="background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)"
>
<i class="iconfont-sys">&#xe721;</i>
</div>
<div class="stats-content">
<div class="stats-label">已提现佣金</div>
<div class="stats-value">{{ formatMoney(summary.withdrawn_commission) }}</div>
<div class="stat-content">
<div class="stat-label">已提现佣金</div>
<div class="stat-value">{{ formatMoney(summary.withdrawn_commission) }}</div>
</div>
</div>
</div>
@@ -104,9 +104,7 @@
</div>
</div>
</div>
</ElCard>
<ElCard shadow="never" v-else class="commission-summary-widget error-state">
<div class="error-content">
<div v-if="errorMsg" class="error-content">
<i class="el-icon-warning" style="font-size: 48px; color: var(--el-color-warning)"></i>
<p>{{ errorMsg }}</p>
</div>
@@ -250,7 +248,7 @@
background: var(--el-fill-color-blank);
border-radius: 8px;
.stats-icon {
.stat-icon {
display: flex;
flex-shrink: 0;
align-items: center;
@@ -262,17 +260,17 @@
border-radius: 8px;
}
.stats-content {
.stat-content {
flex: 1;
min-width: 0;
.stats-label {
.stat-label {
margin-bottom: 4px;
font-size: 13px;
color: var(--el-text-color-secondary);
}
.stats-value {
.stat-value {
overflow: hidden;
font-size: 16px;
font-weight: 600;
@@ -320,20 +318,18 @@
}
}
&.error-state {
.error-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 40px 20px;
color: var(--el-text-color-secondary);
.error-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 40px 20px;
color: var(--el-text-color-secondary);
p {
margin-top: 12px;
font-size: 14px;
color: var(--el-text-color-primary);
}
p {
margin-top: 12px;
font-size: 14px;
color: var(--el-text-color-primary);
}
}
}

View File

@@ -1,18 +1,18 @@
<template>
<ElCard shadow="never" class="daily-commission-stats-widget" v-if="statsList.length > 0">
<ElCard shadow="never" class="daily-commission-stats-widget">
<template #header>
<div class="card-header">
<div class="header-left">
<span class="header-title">每日佣金统计</span>
</div>
<div class="header-right">
<div class="header-right" v-if="statsList.length > 0">
<span class="date-range"
>{{ formatDateRange(startDate) }} ~ {{ formatDateRange(endDate) }}</span
>
</div>
</div>
</template>
<div class="stats-info">
<div v-if="statsList.length > 0" class="stats-info">
<div class="stats-card">
<div
class="stats-icon"
@@ -38,7 +38,7 @@
</div>
</div>
</div>
<div class="stats-chart">
<div class="stats-chart" v-if="statsList.length > 0">
<div class="chart-bar" v-for="item in statsList" :key="item.date">
<div class="bar-label">{{ formatDateShort(item.date) }}</div>
<div class="bar-value" :style="{ height: getBarHeight(item.total_amount) + 'px' }">
@@ -48,9 +48,7 @@
</div>
</div>
</div>
</ElCard>
<ElCard shadow="never" v-else class="daily-commission-stats-widget empty-state">
<div class="empty-content">
<div v-if="statsList.length === 0" class="empty-content">
<i class="el-icon-info" style="font-size: 48px; color: var(--el-text-color-placeholder)"></i>
<p>暂无佣金统计数据</p>
</div>