2026-06-30 14:14:12 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div
|
|
|
|
|
|
v-if="result"
|
|
|
|
|
|
class="rounded-xl border bg-muted/20 px-3 py-2 text-xs text-muted-foreground"
|
|
|
|
|
|
>
|
|
|
|
|
|
{{ label }}
|
|
|
|
|
|
<span v-if="failuresLabel">
|
|
|
|
|
|
{{ failuresLabel }}
|
|
|
|
|
|
</span>
|
2026-09-23 16:29:47 +08:00
|
|
|
|
<details v-if="result.interrupted" class="mt-2 border-t border-border/60 pt-2">
|
|
|
|
|
|
<summary class="cursor-pointer select-none">{{ legacyT('查看批次中断详情') }}</summary>
|
|
|
|
|
|
<div class="mt-2 max-h-32 space-y-1 overflow-auto break-all">
|
|
|
|
|
|
<p>{{ legacyT('已完成用户 ID') }}:{{ userIds(result.completed_user_ids) }}</p>
|
|
|
|
|
|
<p>{{ legacyT('结果待核对用户 ID') }}:{{ userIds(result.uncertain_user_ids) }}</p>
|
|
|
|
|
|
<p>{{ legacyT('尚未执行用户 ID') }}:{{ userIds(result.unprocessed_user_ids) }}</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</details>
|
2026-06-30 14:14:12 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
|
import type { UserBatchActionResponse } from '@/api/users'
|
2026-09-23 16:29:47 +08:00
|
|
|
|
import { useI18n } from '@/i18n'
|
|
|
|
|
|
|
|
|
|
|
|
const { legacyT } = useI18n()
|
|
|
|
|
|
|
|
|
|
|
|
function userIds(ids?: string[]): string {
|
|
|
|
|
|
return ids && ids.length > 0 ? ids.join(', ') : '-'
|
|
|
|
|
|
}
|
2026-06-30 14:14:12 +08:00
|
|
|
|
|
|
|
|
|
|
defineProps<{
|
|
|
|
|
|
result: UserBatchActionResponse | null
|
|
|
|
|
|
label: string
|
|
|
|
|
|
failuresLabel: string
|
|
|
|
|
|
}>()
|
|
|
|
|
|
</script>
|