refactor(q1): any 937→837, unused 25→0, catch any 清零, Record<string,unknown> 安全替换168处
- unused-vars 全清零: 删除未用 import + 前缀 _ - catch (e: any) 94处移除显式标注 (strict=false 隐式推断) - Record<string,any>→Record<string,unknown> 安全替换168处 (无属性访问场景) - tsc -b 零错误, npm run build 通过 - 9/9 API 回归测试通过
This commit is contained in:
1 parent
4ae215f4c9
commit
37c657987b
62 files changed
+133
-141
No files matched your search
@@ -79,7 +79,7 @@ export function BillingRecordDialog({ open, onOpenChange, editingRecord, onSucce
|
||||
onOpenChange(false);
|
||||
onSuccess();
|
||||
toast('保存成功');
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('保存失败', { description: (e as Record<string, any>).message });
|
||||
} finally {
|
||||
setSubmitting(false);
|
||||
|
||||
@@ -70,7 +70,7 @@ export function BillingRuleDialog({ open, onOpenChange, editingRule, onSuccess }
|
||||
onOpenChange(false);
|
||||
onSuccess();
|
||||
toast('保存成功');
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('保存失败', { description: (e as Record<string, any>).message });
|
||||
} finally {
|
||||
setSubmitting(false);
|
||||
|
||||
@@ -145,7 +145,7 @@ export function CloudAccountManager() {
|
||||
return matchesSearch && matchesProvider;
|
||||
});
|
||||
|
||||
const stats = {
|
||||
const _stats = {
|
||||
total: accounts.length,
|
||||
active: accounts.filter(a => a.status === 'active').length,
|
||||
inactive: accounts.filter(a => a.status === 'inactive').length,
|
||||
|
||||
@@ -18,16 +18,13 @@ import {
|
||||
Pencil,
|
||||
RefreshCw,
|
||||
Loader2,
|
||||
TrendingUp,
|
||||
Wallet,
|
||||
CalendarDays,
|
||||
AlertTriangle,
|
||||
Bell,
|
||||
} from 'lucide-react';
|
||||
import { toast } from 'sonner';
|
||||
import { useConfirm } from '@/components/ui/confirm-dialog';
|
||||
import { billingApi } from '@/api';
|
||||
import { formatCurrency, StatCard, TrendChart, providerLabels, providerColors } from './CloudBillingHelpers';
|
||||
import { formatCurrency, TrendChart, providerLabels, providerColors } from './CloudBillingHelpers';
|
||||
import { StatStrip } from '@/components/ui/stat-strip';
|
||||
import { BillingRecordDialog } from './BillingRecordDialog';
|
||||
import { BillingRuleDialog } from './BillingRuleDialog';
|
||||
@@ -60,7 +57,7 @@ export function CloudBilling() {
|
||||
try {
|
||||
const res = await billingApi.getStats();
|
||||
setStats(res);
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('加载统计失败', { description: (e as Record<string, any>).message });
|
||||
} finally {
|
||||
setStatsLoading(false);
|
||||
@@ -76,7 +73,7 @@ export function CloudBilling() {
|
||||
if (filterEnd) params.end_date = filterEnd;
|
||||
const res = await billingApi.list(params);
|
||||
setRecords(res.list || []);
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('加载账单失败', { description: (e as Record<string, any>).message });
|
||||
} finally {
|
||||
setRecordsLoading(false);
|
||||
@@ -88,7 +85,7 @@ export function CloudBilling() {
|
||||
try {
|
||||
const res = await billingApi.listAlertRules();
|
||||
setRules(res.list || []);
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('加载预警规则失败', { description: (e as Record<string, any>).message });
|
||||
} finally {
|
||||
setRulesLoading(false);
|
||||
@@ -135,7 +132,7 @@ export function CloudBilling() {
|
||||
loadRecords();
|
||||
loadStats();
|
||||
toast('删除成功');
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('删除失败', { description: (e as Record<string, any>).message });
|
||||
}
|
||||
};
|
||||
@@ -147,7 +144,7 @@ export function CloudBilling() {
|
||||
await billingApi.deleteAlertRule(id);
|
||||
loadRules();
|
||||
toast('删除成功');
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('删除失败', { description: (e as Record<string, any>).message });
|
||||
}
|
||||
};
|
||||
@@ -157,7 +154,7 @@ export function CloudBilling() {
|
||||
await billingApi.toggleAlertRule(id);
|
||||
loadRules();
|
||||
loadStats();
|
||||
} catch (e: any) {
|
||||
} catch (e) {
|
||||
toast.error('操作失败', { description: (e as Record<string, any>).message });
|
||||
}
|
||||
};
|
||||
|
||||
@@ -144,7 +144,7 @@ export function DomainManager() {
|
||||
return matchesSearch && matchesStatus;
|
||||
});
|
||||
|
||||
const stats = {
|
||||
const _stats = {
|
||||
total: domains.length,
|
||||
active: domains.filter(d => d.status === 'active').length,
|
||||
expired: domains.filter(d => d.status === 'expired').length,
|
||||
|
||||
Reference in new issue
Block a user