ops-console v1.0.2 (versionCode 8) 源码入库

This commit is contained in:
txh
2026-09-03 18:01:05 +08:00
commit 685fff27c8
170 changed files with 53049 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import 'package:flutter/material.dart';
/// 指标卡片:展示设备单项运行指标。
class MetricCard extends StatelessWidget {
const MetricCard({
super.key,
required this.icon,
required this.title,
required this.value,
this.progress,
this.accentColor,
});
/// 指标图标。
final IconData icon;
/// 指标名称(如:CPU 使用率)。
final String title;
/// 指标值文本(如:87.0%)。
final String value;
/// 进度(0.0 ~ 1.0),为 null 时不显示进度条。
final double? progress;
/// 强调色,默认使用主题主色。
final Color? accentColor;
@override
Widget build(BuildContext context) {
final color = accentColor ?? Theme.of(context).colorScheme.primary;
final progressValue = progress?.clamp(0.0, 1.0).toDouble();
return Card(
child: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Row(
children: [
Icon(icon, size: 20, color: color),
const SizedBox(width: 8),
Expanded(
child: Text(
title,
style: Theme.of(context).textTheme.bodyMedium,
overflow: TextOverflow.ellipsis,
),
),
],
),
const SizedBox(height: 12),
Text(
value,
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
fontWeight: FontWeight.bold,
),
),
if (progressValue != null) ...[
const SizedBox(height: 12),
LinearProgressIndicator(
value: progressValue,
color: color,
backgroundColor: color.withOpacity(0.15),
borderRadius: BorderRadius.circular(4),
),
],
],
),
),
);
}
}