feat: update UI components and add benchmark analysis feature

- Disable close button in Toaster notifications
- Add padding to TopNav header and UserDropdown username span
- Import vue-sonner CSS for toast notifications
- Update Agents page header with gradient background
- Add benchmark_analyze business type to Profile view
- Replace storage space stat card with redeem code functionality
- Reorder profile statistics cards and update their content
This commit is contained in:
2026-03-18 22:30:39 +08:00
parent c3479a8a16
commit f8094b40b7
7 changed files with 28 additions and 26 deletions

View File

@@ -427,7 +427,7 @@ onMounted(() => {
.agents-header {
position: relative;
padding: 48px 0 32px;
background: var(--color-bg-page);
background: linear-gradient(90deg, rgba(56, 189, 248, 0.12) 0%, rgba(99, 102, 241, 0.14) 100%);
border-bottom: 1px solid var(--color-gray-200);
z-index: 10;
}

View File

@@ -130,7 +130,8 @@ function getBizTypeName(bizType) {
'digital_human': '数字人',
'voice_tts': '语音克隆',
'tikhub_fetch': '数据采集',
'forecast_rewrite': '文案改写'
'forecast_rewrite': '文案改写',
'benchmark_analyze': '对标分析'
}
return typeMap[bizType] || bizType || '其他'
}
@@ -228,15 +229,23 @@ onMounted(async () => {
<div class="lg:col-span-8">
<!-- 资源概览卡片 -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- 存储空间 -->
<!-- 兑换码充值 -->
<div class="stat-card">
<div class="stat-icon-wrapper blue">
<Icon icon="lucide:database" class="text-2xl" />
<div class="stat-icon-wrapper green">
<Icon icon="lucide:gift" class="text-2xl" />
</div>
<div class="stat-content">
<div class="stat-label">存储空间</div>
<div class="stat-value">{{ formatStorage(usedStorage) }} <span class="stat-unit">/ {{ formatStorage(totalStorage) }}</span></div>
<Progress :value="storagePercent" class="stat-progress h-2" />
<div class="stat-label">兑换码充值</div>
<div class="stat-value" style="font-size: 16px;">
<Button
variant="outline"
size="sm"
@click="showRedeemDialog = true"
>
输入兑换码
</Button>
</div>
<div class="stat-desc">使用兑换码获取积分</div>
</div>
</div>
@@ -264,23 +273,15 @@ onMounted(async () => {
</div>
</div>
<!-- 兑换码充值 -->
<!-- 存储空间 -->
<div class="stat-card">
<div class="stat-icon-wrapper green">
<Icon icon="lucide:gift" class="text-2xl" />
<div class="stat-icon-wrapper blue">
<Icon icon="lucide:database" class="text-2xl" />
</div>
<div class="stat-content">
<div class="stat-label">兑换码充值</div>
<div class="stat-value" style="font-size: 16px;">
<Button
variant="outline"
size="sm"
@click="showRedeemDialog = true"
>
输入兑换码
</Button>
</div>
<div class="stat-desc">使用兑换码获取积分</div>
<div class="stat-label">存储空间</div>
<div class="stat-value">{{ formatStorage(usedStorage) }} <span class="stat-unit">/ {{ formatStorage(totalStorage) }}</span></div>
<Progress :value="storagePercent" class="stat-progress h-2" />
</div>
</div>
</div>