fix: 并发/排队面板支持 platform/group 过滤

- 添加 platformFilter/groupIdFilter props 变化监听器,过滤条件变化时
  立即重新加载数据(修复选择平台后显示"暂无数据"的问题)
- 全栈为 getUserConcurrencyStats 添加 platform/group_id 过滤支持:
  前端 API → Handler 解析 query params → Service 层过滤逻辑
- Service 层通过账号的 group 关联反查用户的 AllowedGroups,
  与 GetConcurrencyStats 的过滤模式保持一致
This commit is contained in:
liuxiongfeng
2026-02-11 01:41:34 +08:00
parent 6a1c28b70e
commit 86e600aa52
4 changed files with 103 additions and 6 deletions

View File

@@ -366,8 +366,16 @@ export async function getConcurrencyStats(platform?: string, groupId?: number |
return data
}
export async function getUserConcurrencyStats(): Promise<OpsUserConcurrencyStatsResponse> {
const { data } = await apiClient.get<OpsUserConcurrencyStatsResponse>('/admin/ops/user-concurrency')
export async function getUserConcurrencyStats(platform?: string, groupId?: number | null): Promise<OpsUserConcurrencyStatsResponse> {
const params: Record<string, any> = {}
if (platform) {
params.platform = platform
}
if (typeof groupId === 'number' && groupId > 0) {
params.group_id = groupId
}
const { data } = await apiClient.get<OpsUserConcurrencyStatsResponse>('/admin/ops/user-concurrency', { params })
return data
}

View File

@@ -265,7 +265,7 @@ async function loadData() {
try {
if (showByUser.value) {
// 用户视图模式只加载用户并发数据
const userData = await opsAPI.getUserConcurrencyStats()
const userData = await opsAPI.getUserConcurrencyStats(props.platformFilter, props.groupIdFilter)
userConcurrency.value = userData
} else {
// 常规模式加载账号/平台/分组数据
@@ -301,6 +301,14 @@ watch(
}
)
// 过滤条件变化时重新加载数据
watch(
[() => props.platformFilter, () => props.groupIdFilter],
() => {
loadData()
}
)
function getLoadBarClass(loadPct: number): string {
if (loadPct >= 90) return 'bg-red-500 dark:bg-red-600'
if (loadPct >= 70) return 'bg-orange-500 dark:bg-orange-600'