Files
d8d-admin-mobile-starter-pu…/asset/share/types.ts
2025-04-09 13:42:16 +00:00

1961 lines
39 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export enum OssType {
ALIYUN = 'aliyun',
MINIO = 'minio',
}
// 全局配置常量
export interface GlobalConfig {
OSS_BASE_URL: string;
OSS_TYPE: OssType;
API_BASE_URL: string;
APP_NAME: string;
ENV: string;
DEFAULT_THEME: string;
MAP_CONFIG: {
KEY: string;
VERSION: string;
PLUGINS: string[];
MAP_MODE: MapMode;
};
CHART_THEME: string;
ENABLE_THEME_CONFIG: boolean;
THEME: ThemeSettings | null;
}
// 定义类型
export interface User {
id: number;
username: string;
nickname?: string;
email?: string;
phone?: string;
role: string;
avatar?: string;
}
export interface MenuItem {
id: number;
name: string;
path: string;
icon: string;
component: string;
parent_id?: number;
children?: MenuItem[];
}
// 认证上下文类型
export interface AuthContextType {
user: User | null;
token: string | null;
login: (username: string, password: string) => Promise<void>;
logout: () => Promise<void>;
isAuthenticated: boolean;
isLoading: boolean;
}
// 主题上下文类型
export interface ThemeContextType {
isDark: boolean;
currentTheme: ThemeSettings;
updateTheme: (theme: Partial<ThemeSettings>) => void; // 实时预览
saveTheme: (theme: Partial<ThemeSettings>) => Promise<ThemeSettings>; // 保存到后端
resetTheme: () => Promise<ThemeSettings>;
toggleTheme: () => void; // 切换主题模式
}
// 主题模式枚举
export enum ThemeMode {
LIGHT = 'light',
DARK = 'dark'
}
// 字体大小枚举
export enum FontSize {
SMALL = 'small',
MEDIUM = 'medium',
LARGE = 'large'
}
// 紧凑模式枚举
export enum CompactMode {
NORMAL = 0, // 正常模式
COMPACT = 1 // 紧凑模式
}
// 主题设置类型
export interface ThemeSettings {
/** 主键ID */
id?: number;
/** 用户ID */
user_id: number;
/** 主题模式(light/dark) */
theme_mode: ThemeMode;
/** 主题主色 */
primary_color: string;
/** 背景色 */
background_color?: string;
/** 文字颜色 */
text_color?: string;
/** 边框圆角 */
border_radius?: number;
/** 字体大小(small/medium/large) */
font_size: FontSize;
/** 是否紧凑模式(0否 1是) */
is_compact: CompactMode;
/** 创建时间 */
created_at?: string;
/** 更新时间 */
updated_at?: string;
}
// 启用/禁用状态枚举
export enum EnableStatus {
DISABLED = 0, // 禁用
ENABLED = 1 // 启用
}
// 启用/禁用状态中文映射
export const EnableStatusNameMap: Record<EnableStatus, string> = {
[EnableStatus.DISABLED]: '禁用',
[EnableStatus.ENABLED]: '启用'
};
// 删除状态枚举
export enum DeleteStatus {
NOT_DELETED = 0, // 未删除
DELETED = 1 // 已删除
}
// 删除状态中文映射
export const DeleteStatusNameMap: Record<DeleteStatus, string> = {
[DeleteStatus.NOT_DELETED]: '未删除',
[DeleteStatus.DELETED]: '已删除'
};
// 设备通信协议类型枚举
export enum DeviceProtocolType {
SNMP = 'SNMP', // 简单网络管理协议(网络设备管理)
HTTP = 'HTTP', // 超文本传输协议(Web服务)
MODBUS = 'MODBUS', // Modbus协议(工业自动化标准通信协议)
MQTT = 'MQTT', // 消息队列遥测传输(物联网消息协议)
SOCKET = 'SOCKET', // Socket通信(基础网络通信)
OPC = 'OPC', // OPC统一架构(工业设备互操作性标准)
RS485 = 'RS485', // RS485串行通信(工业现场总线)
TCP = 'TCP' // TCP网络协议(可靠的网络传输协议)
}
// 设备通信协议类型中文映射
export const DeviceProtocolTypeNameMap: Record<DeviceProtocolType, string> = {
[DeviceProtocolType.SNMP]: 'SNMP',
[DeviceProtocolType.HTTP]: 'HTTP',
[DeviceProtocolType.MODBUS]: 'MODBUS',
[DeviceProtocolType.MQTT]: 'MQTT',
[DeviceProtocolType.SOCKET]: 'SOCKET',
[DeviceProtocolType.OPC]: 'OPC',
[DeviceProtocolType.RS485]: 'RS485',
[DeviceProtocolType.TCP]: 'TCP'
};
// 统一的监控指标类型枚举
export enum MetricType {
TEMPERATURE = 'temperature',
HUMIDITY = 'humidity',
VOLTAGE = 'voltage',
CPU_USAGE = 'cpu_usage',
MEMORY_USAGE = 'memory_usage',
DISK_USAGE = 'disk_usage',
NETWORK_TRAFFIC = 'network_traffic',
PING_TIME = 'ping_time',
PACKET_LOSS = 'packet_loss',
SNMP_RESPONSE_TIME = 'snmp_response_time',
SNMP_ERRORS = 'snmp_errors',
HTTP_RESPONSE_TIME = 'http_response_time',
HTTP_STATUS = 'http_status',
TCP_CONNECTION_TIME = 'tcp_connection_time',
CONNECTION_STATUS = 'connection_status'
}
// 监控类型中文映射
export const MetricTypeNameMap: Record<MetricType, string> = {
[MetricType.TEMPERATURE]: '温度',
[MetricType.HUMIDITY]: '湿度',
[MetricType.VOLTAGE]: '电压',
[MetricType.CPU_USAGE]: 'CPU使用率',
[MetricType.MEMORY_USAGE]: '内存使用率',
[MetricType.DISK_USAGE]: '磁盘使用率',
[MetricType.NETWORK_TRAFFIC]: '网络流量',
[MetricType.PING_TIME]: 'Ping时间',
[MetricType.PACKET_LOSS]: '丢包率',
[MetricType.SNMP_RESPONSE_TIME]: 'SNMP响应时间',
[MetricType.SNMP_ERRORS]: 'SNMP错误数',
[MetricType.HTTP_RESPONSE_TIME]: 'HTTP响应时间',
[MetricType.HTTP_STATUS]: 'HTTP状态码',
[MetricType.TCP_CONNECTION_TIME]: 'TCP连接时间',
[MetricType.CONNECTION_STATUS]: '连接状态'
};
// 处理类型枚举
export enum HandleType {
CONFIRM = 'confirm',
RESOLVE = 'resolve',
IGNORE = 'ignore'
}
// 处理类型中文映射
export const HandleTypeNameMap: Record<HandleType, string> = {
[HandleType.CONFIRM]: '确认',
[HandleType.RESOLVE]: '解决',
[HandleType.IGNORE]: '忽略'
};
// 问题类型枚举
export enum ProblemType {
DEVICE = 'device',
NETWORK = 'network',
POWER = 'power',
CONSTRUCTION = 'construction',
OTHER = 'other'
}
// 问题类型中文映射
export const ProblemTypeNameMap: Record<ProblemType, string> = {
[ProblemType.DEVICE]: '设备故障',
[ProblemType.NETWORK]: '网络故障',
[ProblemType.POWER]: '电源故障',
[ProblemType.CONSTRUCTION]: '施工影响',
[ProblemType.OTHER]: '其他原因'
};
// 通知类型枚举
export enum NotifyType {
SMS = 'sms',
EMAIL = 'email',
WECHAT = 'wechat'
}
// 通知类型中文映射
export const NotifyTypeNameMap: Record<NotifyType, string> = {
[NotifyType.SMS]: '短信',
[NotifyType.EMAIL]: '邮件',
[NotifyType.WECHAT]: '微信'
};
// 告警等级枚举
export enum AlertLevel {
MINOR = 0, // 次要
NORMAL = 1, // 一般
IMPORTANT = 2, // 重要
URGENT = 3 // 紧急
}
// 告警等级中文映射
export const AlertLevelNameMap: Record<AlertLevel, string> = {
[AlertLevel.MINOR]: '次要',
[AlertLevel.NORMAL]: '一般',
[AlertLevel.IMPORTANT]: '重要',
[AlertLevel.URGENT]: '紧急'
};
// 告警等级颜色映射
export const AlertLevelColorMap: Record<AlertLevel, string> = {
[AlertLevel.MINOR]: 'blue',
[AlertLevel.NORMAL]: 'orange',
[AlertLevel.IMPORTANT]: 'red',
[AlertLevel.URGENT]: 'purple'
};
// 设备状态枚举(资产管理)
export enum DeviceStatus {
NORMAL = 0, // 正常
MAINTAIN = 1, // 维护中
FAULT = 2, // 故障
OFFLINE = 3 // 下线
}
// 设备分类枚举
export enum DeviceCategory {
SERVER = 1, // 服务器
NETWORK = 2, // 网络设备
STORAGE = 3, // 存储设备
SECURITY = 4, // 安全设备
OTHER = 5 // 其他设备
}
// 区域枚举
export enum AreaType {
AREA_A = 1, // A区
AREA_B = 2, // B区
AREA_C = 3, // C区
AREA_OTHER = 4 // 其他区域
}
// 资产状态枚举
export enum AssetStatus {
IN_USE = 0, // 使用中
IDLE = 1, // 闲置
REPAIR = 2, // 维修中
SCRAPPED = 3 // 已报废
}
// 网络状态枚举
export enum NetworkStatus {
CONNECTED = 0, // 已连接
DISCONNECTED = 1, // 已断开
UNSTABLE = 2 // 不稳定
}
// 丢包状态枚举
export enum PacketLossStatus {
NORMAL = 0, // 正常
HIGH = 1 // 丢包
}
// 审核状态枚举
export enum AuditStatus {
PENDING = 0, // 待审核
APPROVED = 1, // 已通过
REJECTED = 2 // 已拒绝
}
// 审核状态中文映射
export const AuditStatusNameMap: Record<AuditStatus, string> = {
[AuditStatus.PENDING]: '待审核',
[AuditStatus.APPROVED]: '已通过',
[AuditStatus.REJECTED]: '已拒绝'
};
// 设备状态中文映射(资产管理)
export const DeviceStatusNameMap: Record<DeviceStatus, string> = {
[DeviceStatus.NORMAL]: '正常',
[DeviceStatus.MAINTAIN]: '维护中',
[DeviceStatus.FAULT]: '故障',
[DeviceStatus.OFFLINE]: '下线'
};
// 设备状态颜色映射(资产管理)
export const DeviceStatusColorMap: Record<DeviceStatus, string> = {
[DeviceStatus.NORMAL]: 'green',
[DeviceStatus.MAINTAIN]: 'blue',
[DeviceStatus.FAULT]: 'red',
[DeviceStatus.OFFLINE]: 'gray'
};
// 设备分类中文映射
export const DeviceCategoryNameMap: Record<DeviceCategory, string> = {
[DeviceCategory.SERVER]: '服务器',
[DeviceCategory.NETWORK]: '网络设备',
[DeviceCategory.STORAGE]: '存储设备',
[DeviceCategory.SECURITY]: '安全设备',
[DeviceCategory.OTHER]: '其他设备'
};
// 告警状态枚举
export enum AlertStatus {
PENDING = 'pending',
HANDLING = 'handling',
RESOLVED = 'resolved',
IGNORED = 'ignored'
}
// 告警状态中文映射
export const AlertStatusNameMap: Record<AlertStatus, string> = {
[AlertStatus.PENDING]: '待处理',
[AlertStatus.HANDLING]: '处理中',
[AlertStatus.RESOLVED]: '已解决',
[AlertStatus.IGNORED]: '已忽略'
};
// 告警状态颜色映射
export const AlertStatusColorMap: Record<AlertStatus, string> = {
[AlertStatus.PENDING]: 'red',
[AlertStatus.HANDLING]: 'blue',
[AlertStatus.RESOLVED]: 'green',
[AlertStatus.IGNORED]: 'gray'
};
// 设备在线状态枚举
export enum OnlineStatus {
ONLINE = 'online',
OFFLINE = 'offline'
}
// 设备在线状态中文映射
export const OnlineStatusNameMap: Record<OnlineStatus, string> = {
[OnlineStatus.ONLINE]: '在线',
[OnlineStatus.OFFLINE]: '离线'
};
// 设备在线状态颜色映射
export const OnlineStatusColorMap: Record<OnlineStatus, string> = {
[OnlineStatus.ONLINE]: 'green',
[OnlineStatus.OFFLINE]: 'red'
};
// 工单状态枚举
export enum WorkOrderStatus {
PENDING = 0, // 待处理
HANDLING = 1, // 处理中
AUDITING = 2, // 待审核
COMPLETED = 3, // 已完成
CLOSED = 4 // 已关闭
}
// 工单状态中文映射
export const WorkOrderStatusNameMap: Record<WorkOrderStatus, string> = {
[WorkOrderStatus.PENDING]: '待处理',
[WorkOrderStatus.HANDLING]: '处理中',
[WorkOrderStatus.AUDITING]: '待审核',
[WorkOrderStatus.COMPLETED]: '已完成',
[WorkOrderStatus.CLOSED]: '已关闭'
};
// 工单状态颜色映射
export const WorkOrderStatusColorMap: Record<WorkOrderStatus, string> = {
[WorkOrderStatus.PENDING]: 'orange',
[WorkOrderStatus.HANDLING]: 'blue',
[WorkOrderStatus.AUDITING]: 'gold',
[WorkOrderStatus.COMPLETED]: 'green',
[WorkOrderStatus.CLOSED]: 'gray'
};
// 工单优先级枚举
export enum WorkOrderPriority {
NORMAL = 0, // 普通
IMPORTANT = 1, // 重要
URGENT = 2 // 紧急
}
// 工单优先级中文映射
export const WorkOrderPriorityNameMap: Record<WorkOrderPriority, string> = {
[WorkOrderPriority.NORMAL]: '普通',
[WorkOrderPriority.IMPORTANT]: '重要',
[WorkOrderPriority.URGENT]: '紧急'
};
// 工单优先级颜色映射
export const WorkOrderPriorityColorMap: Record<WorkOrderPriority, string> = {
[WorkOrderPriority.NORMAL]: 'green',
[WorkOrderPriority.IMPORTANT]: 'orange',
[WorkOrderPriority.URGENT]: 'red'
};
// 工单操作类型枚举
export enum WorkOrderAction {
CREATE = 'create',
ACCEPT = 'accept',
HANDLE = 'handle',
AUDIT = 'audit',
CLOSE = 'close'
}
// 工单操作类型中文映射
export const WorkOrderActionNameMap: Record<WorkOrderAction, string> = {
[WorkOrderAction.CREATE]: '创建',
[WorkOrderAction.ACCEPT]: '接受',
[WorkOrderAction.HANDLE]: '处理',
[WorkOrderAction.AUDIT]: '审核',
[WorkOrderAction.CLOSE]: '关闭'
};
// 服务器类型枚举
export enum ServerType {
STANDARD = 'standard',
NETWORK = 'network',
STORAGE = 'storage',
SPECIAL = 'special'
}
// 服务器类型中文映射
export const ServerTypeNameMap: Record<ServerType, string> = {
[ServerType.STANDARD]: '标准服务器',
[ServerType.NETWORK]: '网络设备',
[ServerType.STORAGE]: '存储设备',
[ServerType.SPECIAL]: '特殊设备'
};
// 图表类型映射
export const AlertTypeMap = {
temperature: { text: '温度异常', color: 'orange' },
humidity: { text: '湿度异常', color: 'blue' },
offline: { text: '设备离线', color: 'red' }
} as const;
// 工单状态映射
export const StatusMap = {
unread: { text: '未读', color: 'red' },
read: { text: '已读', color: 'blue' },
processed: { text: '已处理', color: 'green' }
} as const;
// 图标类型映射
type IconType = 'dashboard' | 'user' | 'setting' | 'team' | 'book' | 'calendar' | 'pie-chart' | 'database';
// 图标类型中文映射
export const IconTypeNameMap: Record<IconType, string> = {
'dashboard': '仪表盘',
'user': '用户',
'setting': '设置',
'team': '团队',
'book': '文档',
'calendar': '日历',
'pie-chart': '图表',
'database': '数据库'
};
// 定义JSON数据结构接口
// 附件类型定义
export interface Attachment {
/** 附件ID */
id: string;
/** 附件名称 */
name: string;
/** 附件访问地址 */
url: string;
/** 附件类型(如image/jpeg, application/pdf等) */
type: string;
/** 附件大小(字节) */
size: number;
/** 上传时间 */
upload_time: string;
}
// 通知项配置类型定义
interface NotifyItem {
/** 通知项ID */
id: string;
/** 通知项类型 */
type: string;
/** 是否启用 */
enabled: boolean;
/** 通知配置参数 */
config: Record<string, unknown>;
}
// 监控配置类型定义
export interface MonitorConfig {
/** 监控间隔(秒) */
interval: number;
/** 监控指标列表 */
metrics: Array<{
/** 指标名称 */
name: string;
/** 指标类型 */
type: string;
/** 是否启用 */
enabled: boolean;
/** 阈值设置 */
threshold?: {
/** 最小阈值 */
min?: number;
/** 最大阈值 */
max?: number;
};
}>;
/** 通知设置 */
notification: {
/** 是否启用通知 */
enabled: boolean;
/** 通知渠道列表 */
channels: string[];
};
}
// 告警规则类型定义
export interface AlertRuleConfig {
/** 规则列表 */
rules: Array<{
/** 监控指标 */
metric: string;
/** 触发条件(如>、<、=等) */
condition: string;
/** 阈值 */
threshold: number;
/** 持续时间(秒) */
duration: number;
/** 告警等级 */
level: AlertLevel;
}>;
/** 动作列表 */
actions: Array<{
/** 动作类型 */
type: string;
/** 动作目标 */
target: string;
/** 通知模板 */
template?: string;
}>;
}
// 数据格式配置类型定义
export interface DataSchema {
/** 版本号 */
version: string;
/** 属性定义 */
properties: Record<string, {
/** 数据类型 */
type: string;
/** 描述 */
description?: string;
/** 是否必填 */
required?: boolean;
/** 格式(如日期格式) */
format?: string;
/** 枚举值列表 */
enum?: string[];
}>;
/** 必填字段列表 */
required: string[];
}
// 图标配置类型定义
export interface IconConfig {
/** 图标尺寸 */
size: {
/** 宽度 */
width: number;
/** 高度 */
height: number;
};
/** 支持的文件格式 */
format: string[];
/** 最大文件大小(KB) */
maxSize: number;
}
// 告警等级配置类型定义
export interface AlertLevelConfig {
/** 等级定义 */
levels: Record<string, {
/** 等级名称 */
name: string;
/** 等级颜色 */
color: string;
/** 优先级 */
priority: number;
/** 是否自动升级 */
autoEscalation?: boolean;
/** 升级延迟时间(分钟) */
escalationDelay?: number;
}>;
/** 默认等级 */
default: string;
}
// 监控项配置类型定义
export interface MonitorItemConfig {
/** 监控项列表 */
items: Array<{
/** 监控项名称 */
name: string;
/** 描述 */
description: string;
/** 监控项类型 */
type: string;
/** 单位 */
unit: string;
/** 默认是否启用 */
defaultEnabled: boolean;
/** 默认阈值 */
defaultThresholds?: {
/** 最小阈值 */
min?: number;
/** 最大阈值 */
max?: number;
};
}>;
}
// 常用语列表类型定义
export interface CommonPhrase {
/** 常用语ID */
id: string;
/** 分类 */
category: string;
/** 内容 */
content: string;
/** 标签列表 */
tags: string[];
}
// SLA配置类型定义
export interface SLAConfig {
/** 响应时间(分钟) */
responseTime: number;
/** 解决时间(分钟) */
resolveTime: number;
/** 工作时间 */
workingHours: {
/** 开始时间(HH:mm) */
start: string;
/** 结束时间(HH:mm) */
end: string;
/** 工作日(0-6,0代表周日) */
workDays: number[];
};
/** 升级规则 */
escalationRules: Array<{
/** 超时时间(分钟) */
timeout: number;
/** 动作 */
action: string;
/** 目标(如用户ID、角色等) */
target: string[];
}>;
}
// 流程配置类型定义
export interface WorkflowConfig {
/** 流程步骤 */
steps: Array<{
/** 步骤名称 */
name: string;
/** 允许操作的角色 */
roles: string[];
/** 可执行的动作 */
actions: string[];
/** 下一步可能的步骤 */
nextSteps: string[];
/** 自动超时时间(分钟) */
autoTimeout?: number;
}>;
/** 初始步骤 */
initialStep: string;
}
// 告警处理记录表
export interface AlertHandleLog {
/** 主键ID */
id: number;
/** 关联的告警ID */
alert_id: number;
/** 处理人ID */
handler_id: number;
/** 处理类型 */
handle_type: HandleType;
/** 问题类型 */
problem_type: ProblemType;
/** 处理结果 */
handle_result?: string;
/** 附件列表 */
attachments?: Attachment[];
/** 是否禁用通知 (0否 1是) */
notify_disabled?: number;
/** 禁用的通知项配置 */
notify_items?: NotifyItem[];
/** 处理时间 */
handle_time: Date;
/** 是否删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 告警通知配置表
export interface AlertNotifyConfig {
/** 主键ID */
id: number;
/** 关联的设备ID */
device_id: number;
/** 告警等级 */
alert_level: AlertLevel;
/** 通知类型 */
notify_type: NotifyType;
/** 通知模板 */
notify_template?: string;
/** 通知用户ID列表 */
notify_users?: number[];
/** 是否启用 (0否 1是) */
is_enabled?: EnableStatus;
/** 是否删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 设备告警规则表
export interface DeviceAlertRule {
/** 主键ID */
id: number;
/** 关联的设备ID */
device_id: number;
/** 监控指标类型 */
metric_type: string;
/** 最小阈值 */
min_value?: number;
/** 最大阈值 */
max_value?: number;
/** 持续时间(秒) */
duration_seconds?: number;
/** 告警等级 */
alert_level: AlertLevel;
/** 告警消息模板 */
alert_message?: string;
/** 是否启用 (0否 1是) */
is_enabled?: EnableStatus;
/** 是否删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 设备告警记录表
export interface DeviceAlert {
/** 主键ID */
id: number;
/** 关联的设备ID */
device_id: number;
/** 设备名称 */
device_name: string;
/** 监控指标类型 */
metric_type: string;
/** 触发值 */
metric_value: number;
/** 告警等级 */
alert_level: AlertLevel;
/** 告警消息 */
alert_message: string;
/** 状态 */
status: AlertStatus;
/** 是否删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 设备分类图标表
export interface DeviceCategoryIcon {
/** 主键ID */
id: number;
/** 关联的设备分类ID */
category_id: number;
/** 分类图标 */
icon?: string;
/** 图标名称 */
icon_name?: string;
/** 图标类型(svg/url等) */
icon_type?: string;
/** 排序 */
sort?: number;
/** 是否为默认图标 (0否 1是) */
is_default?: number;
/** 是否禁用 (0否 1是) */
is_disabled?: number;
/** 是否被删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 设备实例表
export interface DeviceInstance {
/** 关联资产ID */
id: number;
/** 设备类型ID */
type_id: number;
/** 通信协议(SNMP/HTTP/RS485/TCP等) */
protocol: DeviceProtocolType;
/** 通信地址 */
address: string;
/** 采集间隔(秒) */
collect_interval?: number;
/** 最后采集时间 */
last_collect_time?: Date;
/** 备注 */
remark?: string;
/** 是否启用 (0否 1是) */
is_enabled?: number;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
/** 资产名称来自zichan_info表 */
asset_name?: string;
/** 设备分类来自zichan_info表 */
device_category?: DeviceCategory;
/** 归属区域来自zichan_info表 */
area?: AreaType;
/** 供应商来自zichan_info表 */
supplier?: string;
/** 设备状态来自zichan_info表 */
device_status?: DeviceStatus;
}
// 设备监控数据表
export interface DeviceMonitorData {
/** 主键ID */
id: number;
/** 关联的设备ID */
device_id: number;
/** 监控指标类型(temperature/humidity/smoke/water等) */
metric_type: string;
/** 监控值 */
metric_value: number;
/** 单位 */
unit?: string;
/** 状态 */
status?: DeviceStatus;
/** 采集时间 */
collect_time: Date;
/** 是否删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 设备类型表
export interface DeviceType {
/** 主键ID */
id: number;
/** 类型名称 */
name: string;
/** 类型编码 */
code: string;
/** 设备类型图片URL */
image_url?: string;
/** 类型描述 */
description?: string;
/** 是否启用 (0否 1是) */
is_enabled?: number;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 知识库表
export interface KnowInfo {
/** 主键ID */
id: number;
/** 文章的标题 */
title?: string;
/** 文章的标签 */
tags?: string;
/** 文章的内容 */
content?: string;
/** 文章的作者 */
author?: string;
/** 文章的分类 */
category?: string;
/** 文章的封面图片URL */
cover_url?: string;
/** 审核状态 */
audit_status?: number;
/** 是否被删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 操作日志表
export interface OperationLog {
/** 主键ID */
id: number;
/** 操作人ID */
operator_id: number;
/** 操作类型 */
operation_type: string;
/** 操作内容 */
operation_content?: string;
/** 操作结果 */
operation_result?: string;
/** 操作IP */
ip_address?: string;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 机柜信息表
export interface RackInfo {
/** 主键ID */
id: number;
/** 机柜名称 */
rack_name?: string;
/** 机柜编号 */
rack_code?: string;
/** 机柜可容纳设备数量默认42U */
capacity?: number;
/** 机柜X轴位置坐标 */
position_x?: number;
/** 机柜Y轴位置坐标 */
position_y?: number;
/** 机柜Z轴位置坐标 */
position_z?: number;
/** 机柜所在区域 */
area?: string;
/** 机柜所在机房 */
room?: string;
/** 备注信息 */
remark?: string;
/** 是否禁用 (0否 1是) */
is_disabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 机柜服务器表
export interface RackServer {
/** 主键ID */
id: number;
/** 关联的机柜ID */
rack_id: number;
/** 关联的资产ID */
asset_id: number;
/** 设备安装的起始U位 */
start_position: number;
/** 设备占用U数 */
size?: number;
/** 服务器类型 */
server_type?: number;
/** 备注信息 */
remark?: string;
/** 是否禁用 (0否 1是) */
is_disabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 机柜服务器类型表
export interface RackServerType {
/** 主键ID */
id: number;
/** 类型名称 */
name: string;
/** 类型编码 */
code: string;
/** 类型图片 */
image_url?: string;
/** 类型描述 */
description?: string;
/** 是否启用 (0否 1是) */
is_enabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 工单表
export interface WorkOrder {
/** 主键ID */
id: number;
/** 工单标题 */
title: string;
/** 关联设备ID */
device_id?: number;
/** 关联告警ID */
alert_id?: number;
/** 工单模板ID */
template_id?: number;
/** 工单内容 */
content?: string;
/** 工单状态 */
status: WorkOrderStatus;
/** 优先级 */
priority: WorkOrderPriority;
/** 创建人ID */
creator_id: number;
/** 处理人ID */
handler_id?: number;
/** 审核人ID */
auditor_id?: number;
/** 截止时间 */
deadline?: Date;
/** 处理结果 */
handle_result?: string;
/** 审核结果 */
audit_result?: string;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 工单处理记录表
export interface WorkOrderLog {
/** 主键ID */
id: number;
/** 工单ID */
work_order_id: number;
/** 操作人ID */
operator_id: number;
/** 操作类型 */
action: WorkOrderAction;
/** 处理内容 */
content?: string;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 工单模板表
export interface WorkOrderTemplate {
/** 主键ID */
id: number;
/** 模板名称 */
name: string;
/** 模板内容 */
content?: string;
/** 是否需要审核 (0否 1是) */
need_audit: number;
/** 默认处理人 */
default_handler_id?: number;
/** 默认完成时限(小时) */
default_deadline_hours?: number;
/** 常用语列表 */
common_phrases?: CommonPhrase[];
/** SLA配置 */
sla_config?: SLAConfig;
/** 流程配置 */
workflow_config?: WorkflowConfig;
/** 是否启用 (0否 1是) */
is_enabled?: number;
/** 是否删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 资产信息表
export interface ZichanInfo {
/** 主键ID */
id: number;
/** 资产名称 */
asset_name?: string;
/** 设备分类 */
device_category?: DeviceCategory;
/** 归属区域 */
area?: AreaType;
/** 供应商 */
supplier?: string;
/** 使用地址 */
use_address?: string;
/** 运行情况 */
operation_status?: string;
/** 是否审核 (0否 1是) */
is_audited?: number;
/** 审核状态 */
audit_status?: AuditStatus;
/** 资产状态 */
asset_status?: AssetStatus;
/** 入库数量 */
stock_quantity?: number;
/** 质保时间 */
warranty_time?: Date;
/** 品牌 */
brand?: string;
/** IP地址 */
ip_address?: string;
/** 设备状态 */
device_status?: DeviceStatus;
/** 网络状态 */
network_status?: NetworkStatus;
/** 丢包率 */
packet_loss?: number;
/** 图片 */
images?: string;
/** 是否备件 (0否 1是) */
is_spare?: number;
/** 是否被禁用 (0否 1是) */
is_disabled?: number;
/** 是否被删除 (0否 1是) */
is_deleted?: number;
/** 资产位置经度 */
longitude?: number;
/** 资产位置纬度 */
latitude?: number;
/** CPU信息 */
cpu?: string;
/** 内存信息 */
memory?: string;
/** 硬盘信息 */
disk?: string;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 资产分类表
export interface ZichanCategory {
/** 主键ID */
id: number;
/** 分类名称 */
name: string;
/** 分类编码 */
code: string;
/** 分类图片 */
image_url?: string;
/** 分类描述 */
description?: string;
/** 是否启用 (0否 1是) */
is_enabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 资产归属区域
export interface ZichanArea {
/** 主键ID */
id: number;
/** 区域名称 */
name: string;
/** 区域编码 */
code: string;
/** 区域图片 */
image_url?: string;
/** 区域描述 */
description?: string;
/** 是否启用 (0否 1是) */
is_enabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
}
// 资产流转记录表
export interface ZichanTransLog {
/** 主键ID */
id: number;
/** 资产流转 */
asset_transfer?: AssetTransferType;
/** 资产ID */
asset_id?: number;
/** 人员 */
person?: string;
/** 部门 */
department?: string;
/** 电话 */
phone?: string;
/** 流转事由 */
transfer_reason?: string;
/** 流转时间 */
transfer_time?: Date | string;
/** 是否被禁用 (0否 1是) */
is_disabled?: number;
/** 是否被删除 (0否 1是) */
is_deleted?: number;
/** 创建时间 */
created_at: Date;
/** 更新时间 */
updated_at: Date;
/** 关联的资产信息(查询时后端关联返回) */
asset_info?: ZichanInfo;
}
// 文件库接口
export interface FileLibrary {
/** 主键ID */
id: number;
/** 文件名称 */
file_name: string;
/** 原始文件名 */
original_filename?: string;
/** 文件路径 */
file_path: string;
/** 文件类型 */
file_type: string;
/** 文件大小(字节) */
file_size: number;
/** 上传用户ID */
uploader_id?: number;
/** 上传者名称 */
uploader_name?: string;
/** 文件分类 */
category_id?: number;
/** 文件标签 */
tags?: string;
/** 文件描述 */
description?: string;
/** 下载次数 */
download_count: number;
/** 是否禁用 (0否 1是) */
is_disabled?: EnableStatus;
/** 是否被删除 (0否 1是) */
is_deleted?: DeleteStatus;
/** 创建时间 */
created_at: string;
/** 更新时间 */
updated_at: string;
}
// 文件分类接口
export interface FileCategory {
id: number;
name: string;
code: string;
description?: string;
is_deleted?: DeleteStatus;
created_at: string;
updated_at: string;
}
// 资产流转类型枚举
export enum AssetTransferType {
STOCK = 0, // 在库
BORROW = 1, // 借用
RETURN = 2, // 归还
LOST = 3, // 遗失
MAINTAIN = 4 // 维护保养
}
// 资产流转类型名称映射
export const AssetTransferTypeNameMap: Record<AssetTransferType, string> = {
[AssetTransferType.STOCK]: '在库',
[AssetTransferType.BORROW]: '借用',
[AssetTransferType.RETURN]: '归还',
[AssetTransferType.LOST]: '遗失',
[AssetTransferType.MAINTAIN]: '维护保养'
};
// 资产流转类型颜色映射
export const AssetTransferTypeColorMap: Record<AssetTransferType, string> = {
[AssetTransferType.STOCK]: 'green',
[AssetTransferType.BORROW]: 'blue',
[AssetTransferType.RETURN]: 'cyan',
[AssetTransferType.LOST]: 'red',
[AssetTransferType.MAINTAIN]: 'orange'
};
// 添加图表类型定义(从大屏移植)
export interface CategoryChartData {
设备分类: string;
设备数: number;
}
export interface CategoryChartDataWithPercent extends CategoryChartData {
百分比: string;
}
export interface OnlineRateChartData {
time_interval: string;
online_devices: number;
total_devices: number;
}
export interface StateChartData {
资产流转: string;
设备数: number;
}
export interface StateChartDataWithPercent extends StateChartData {
百分比: string;
}
export interface AlarmChartData {
time_interval: string;
total_devices: number;
}
export interface AlarmDeviceData {
deviceName: string;
alarmCount: number;
rank: number;
}
// 设备与资产信息结合的接口
export interface DeviceWithAssetInfo {
id: number;
asset_name?: string;
device_category?: number;
ip_address?: string;
device_status?: DeviceStatus;
network_status?: NetworkStatus;
packet_loss?: PacketLossStatus;
cpu?: string;
memory?: string;
disk?: string;
is_deleted?: number;
}
// 地图类型
export enum MapMode {
ONLINE = 'online',
OFFLINE = 'offline'
}
// 地图标记数据接口 - 基础定义
export interface MarkerData {
/** 标记点经度 */
longitude: number;
/** 标记点纬度 */
latitude: number;
/** 标记点ID */
id?: string | number;
/** 标记点标题 */
title?: string;
/** 标记点描述 */
description?: string;
/** 标记点图标URL */
iconUrl?: string;
/** 标记点状态 */
status?: string;
/** 标记点类型 */
type?: string;
/** 标记点额外数据 */
extraData?: Record<string, any>;
}
// 设备地图监控视图设备接口
export interface MapViewDevice extends MarkerData {
id: number;
name?: string;
type_code: string;
device_category?: DeviceCategory;
device_status?: DeviceStatus;
description?: string;
address?: string;
protocol?: DeviceProtocolType;
last_update_time?: string;
area_code?: string;
area_name?: string;
image_url?: string;
}
// 设备地图筛选条件
export interface DeviceMapFilter {
type_code?: string;
device_category?: DeviceCategory[];
device_status?: DeviceStatus;
area_code?: string[];
keyword?: string;
device_id?: number;
}
// 设备地图统计数据接口
export interface DeviceMapStats {
total: number;
online: number;
offline: number;
error: number;
normal?: number;
fault?: number;
categoryStats?: {
category: DeviceCategory;
count: number;
name: string;
}[];
}
// 设备树统计数据类型
export type DeviceTreeStats = Record<string, {
total: number;
online: number;
offline: number;
error: number;
}>;
// 设备地图响应数据接口
export interface DeviceMapDataResponse {
data: MapViewDevice[];
stats: DeviceMapStats;
total?: number;
page?: number;
pageSize?: number;
}
// 设备地图统计响应接口
export interface DeviceMapStatsResponse {
data: DeviceMapStats;
}
// 设备树节点类型枚举
export enum DeviceTreeNodeType {
CATEGORY = 'category',
DEVICE = 'device'
}
// 设备树节点状态枚举
export enum DeviceTreeNodeStatus {
NORMAL = 'normal',
ERROR = 'error',
OFFLINE = 'offline',
WARNING = 'warning'
}
// 设备树节点接口
export interface DeviceTreeNode {
key: string;
title: string;
type: DeviceTreeNodeType;
status?: DeviceTreeNodeStatus;
icon?: string | null;
isLeaf?: boolean;
children?: DeviceTreeNode[];
}
// 登录位置相关类型定义
export interface LoginLocation {
id: number;
loginTime: string;
ipAddress: string;
longitude: number;
latitude: number;
location_name?: string;
user: {
id: number;
username: string;
nickname: string;
};
}
export interface LoginLocationDetail {
id: number;
user_id: number;
login_time: string;
ip_address: string;
longitude: number;
latitude: number;
location_name: string;
user_agent: string;
user: {
id: number;
username: string;
nickname: string;
};
}
// 系统设置分组
export enum SystemSettingGroup {
BASIC = 'basic', // 基础设置
FEATURE = 'feature', // 功能设置
UPLOAD = 'upload', // 上传设置
NOTIFICATION = 'notify' // 通知设置
}
// 系统设置键
export enum SystemSettingKey {
// 基础设置
SITE_NAME = 'SITE_NAME', // 站点名称
SITE_DESCRIPTION = 'SITE_DESCRIPTION', // 站点描述
SITE_KEYWORDS = 'SITE_KEYWORDS', // 站点关键词
SITE_LOGO = 'SITE_LOGO', // 站点LOGO
SITE_FAVICON = 'SITE_FAVICON', // 站点图标
// 功能设置
ENABLE_REGISTER = 'ENABLE_REGISTER', // 是否开启注册
ENABLE_CAPTCHA = 'ENABLE_CAPTCHA', // 是否开启验证码
LOGIN_ATTEMPTS = 'LOGIN_ATTEMPTS', // 登录尝试次数
SESSION_TIMEOUT = 'SESSION_TIMEOUT', // 会话超时时间(分钟)
// 上传设置
UPLOAD_MAX_SIZE = 'UPLOAD_MAX_SIZE', // 最大上传大小(MB)
ALLOWED_FILE_TYPES = 'ALLOWED_FILE_TYPES', // 允许的文件类型
IMAGE_COMPRESS = 'IMAGE_COMPRESS', // 是否压缩图片
IMAGE_MAX_WIDTH = 'IMAGE_MAX_WIDTH', // 图片最大宽度
// 通知设置
NOTIFY_ON_LOGIN = 'NOTIFY_ON_LOGIN', // 登录通知
NOTIFY_ON_UPLOAD = 'NOTIFY_ON_UPLOAD', // 上传通知
NOTIFY_ON_ERROR = 'NOTIFY_ON_ERROR', // 错误通知
// 主题设置
ENABLE_THEME_CONFIG = 'ENABLE_THEME_CONFIG' // 是否开启主题配置
}
export type SystemSettingGroupType = SystemSettingGroup;
export type SystemSettingKeyType = SystemSettingKey;
// 系统设置值类型
export type SystemSettingValue = string | number | boolean;
// 系统设置项接口
export interface SystemSetting {
id: number;
key: SystemSettingKeyType; // 设置键
value: SystemSettingValue; // 设置值
description?: string; // 设置描述
group: SystemSettingGroupType; // 设置分组
created_at?: string;
updated_at?: string;
}
// 系统设置分组类型
export interface SystemSettingGroupData {
name: string;
description: string;
settings: SystemSetting[];
}
// 系统设置记录类型
export type SystemSettingRecord = Record<SystemSettingKey, SystemSettingValue>;
// 允许的文件类型枚举
export enum AllowedFileType {
JPG = 'jpg',
JPEG = 'jpeg',
PNG = 'png',
GIF = 'gif',
DOC = 'doc',
DOCX = 'docx',
XLS = 'xls',
XLSX = 'xlsx',
PDF = 'pdf'
}
// 允许的文件类型列表(用于系统设置)
export const ALLOWED_FILE_TYPES = Object.values(AllowedFileType).join(',');