新增设备巡检模块核心功能,包括: - 巡检数据存储与调度系统 - 华为/H3C交换机及Linux服务器采集器 - 设备扩展配置与告警规则管理 - 主机详情页巡检配置入口 - 产品名称自定义设置功能 - 网络设备SSH exec通道兼容处理
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import React from "react";
|
||
|
||
/**
|
||
* 简易 ErrorBoundary,用于包裹巡检相关组件,
|
||
* 防止组件内部错误导致整个 AsidePanel 空白。
|
||
*/
|
||
export class InspectionErrorBoundary extends React.Component<
|
||
{ children: React.ReactNode; fallback?: React.ReactNode },
|
||
{ hasError: boolean; error: Error | null }
|
||
> {
|
||
constructor(props: { children: React.ReactNode; fallback?: React.ReactNode }) {
|
||
super(props);
|
||
this.state = { hasError: false, error: null };
|
||
}
|
||
|
||
static getDerivedStateFromError(error: Error) {
|
||
return { hasError: true, error };
|
||
}
|
||
|
||
componentDidCatch(error: Error, info: React.ErrorInfo) {
|
||
console.error("[InspectionErrorBoundary] 组件渲染错误:", error, info);
|
||
}
|
||
|
||
render() {
|
||
if (this.state.hasError) {
|
||
if (this.props.fallback) return this.props.fallback;
|
||
return (
|
||
<div className="p-3 rounded-md border border-destructive/30 bg-destructive/5 text-sm">
|
||
<div className="font-medium text-destructive mb-1">巡检配置加载失败</div>
|
||
<div className="text-xs text-muted-foreground font-mono">
|
||
{this.state.error?.message || "未知错误"}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
return this.props.children;
|
||
}
|
||
}
|