feat(ui): 使用记录页面点击用户邮箱可查看充值记录

- UsageTable 用户邮箱改为可点击链接,点击弹出余额变动记录
- 复用 UserBalanceHistoryModal 组件,通过 getById API 获取完整用户信息
- 新增 hideActions prop 隐藏充值/退款按钮(Usage 页面仅查看)
- i18n: 新增 clickToViewBalance、failedToLoadUser 词条 (en/zh)
This commit is contained in:
bayma888
2026-03-08 19:11:28 +08:00
parent 03bf348530
commit 60c5949a74
5 changed files with 40 additions and 4 deletions

View File

@@ -4,7 +4,15 @@
<DataTable :columns="columns" :data="data" :loading="loading">
<template #cell-user="{ row }">
<div class="text-sm">
<span class="font-medium text-gray-900 dark:text-white">{{ row.user?.email || '-' }}</span>
<button
v-if="row.user?.email"
class="font-medium text-primary-600 underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300"
@click="$emit('userClick', row.user_id, row.user?.email)"
:title="t('admin.usage.clickToViewBalance')"
>
{{ row.user.email }}
</button>
<span v-else class="font-medium text-gray-900 dark:text-white">-</span>
<span class="ml-1 text-gray-500 dark:text-gray-400">#{{ row.user_id }}</span>
</div>
</template>
@@ -278,6 +286,7 @@ import Icon from '@/components/icons/Icon.vue'
import type { AdminUsageLog } from '@/types'
defineProps(['data', 'loading', 'columns'])
defineEmits(['userClick'])
const { t } = useI18n()
// Tooltip state - cost