优化任务列表性能和本地登录代理

This commit is contained in:
yml2213
2026-08-05 10:03:18 +08:00
parent dff0d7db9e
commit 2fda47c631
13 changed files with 252 additions and 29 deletions
+10 -16
View File
@@ -5,8 +5,6 @@ import {
cookieApi,
huyaApi,
loginApi,
type HuyaTaskItem,
type LoginTaskItem,
} from '../api/modules';
import { usePermissions } from '../hooks/usePermissions';
@@ -47,10 +45,6 @@ const EMPTY_STATS: DashboardStats = {
},
};
function countFailed<T extends { status: string }>(items: T[]) {
return items.filter((item) => ['failed', 'error'].includes(item.status)).length;
}
function StatCard({
title,
value,
@@ -98,10 +92,10 @@ export default function DashboardPage() {
huyaRechargeGoodsResult,
] = await Promise.allSettled([
canViewDouyuAccounts ? accountApi.summary() : Promise.resolve(null),
canViewDouyuTasks ? loginApi.listTasks() : Promise.resolve([]),
canViewDouyuTasks ? loginApi.tasksSummary() : Promise.resolve(null),
canViewCookies ? cookieApi.summary() : Promise.resolve(null),
canViewHuyaAccounts ? huyaApi.accountsSummary() : Promise.resolve(null),
canViewHuyaTasks ? huyaApi.listTasks() : Promise.resolve([]),
canViewHuyaTasks ? huyaApi.tasksSummary() : Promise.resolve(null),
canViewHuyaTasks ? huyaApi.listGoods() : Promise.resolve([]),
canViewHuyaTasks ? huyaApi.listRechargeGoods() : Promise.resolve([]),
]);
@@ -109,26 +103,26 @@ export default function DashboardPage() {
if (ignore) return;
const douyuAccounts = douyuAccountsResult.status === 'fulfilled' ? douyuAccountsResult.value : null;
const douyuTasks = douyuTasksResult.status === 'fulfilled' ? douyuTasksResult.value : [];
const douyuTasks = douyuTasksResult.status === 'fulfilled' ? douyuTasksResult.value : null;
const cookies = cookiesResult.status === 'fulfilled' ? cookiesResult.value : null;
const huyaAccounts = huyaAccountsResult.status === 'fulfilled' ? huyaAccountsResult.value : null;
const huyaTasks = huyaTasksResult.status === 'fulfilled' ? huyaTasksResult.value : [];
const huyaTasks = huyaTasksResult.status === 'fulfilled' ? huyaTasksResult.value : null;
const huyaGoods = huyaGoodsResult.status === 'fulfilled' ? huyaGoodsResult.value : [];
const huyaRechargeGoods = huyaRechargeGoodsResult.status === 'fulfilled' ? huyaRechargeGoodsResult.value : [];
setStats({
douyu: {
accounts: douyuAccounts?.total || 0,
tasks: douyuTasks.length,
success: douyuTasks.filter((task: LoginTaskItem) => task.status === 'success').length,
failed: countFailed(douyuTasks),
tasks: douyuTasks?.total || 0,
success: douyuTasks?.success || 0,
failed: douyuTasks?.failed || 0,
cookies: cookies?.total || 0,
},
huya: {
accounts: huyaAccounts?.total || 0,
tasks: huyaTasks.length,
success: huyaTasks.filter((task: HuyaTaskItem) => task.status === 'success').length,
failed: countFailed(huyaTasks),
tasks: huyaTasks?.total || 0,
success: huyaTasks?.success || 0,
failed: huyaTasks?.failed || 0,
goods: huyaGoods.length,
rechargeGoods: huyaRechargeGoods.length,
},