支持添加删除服务器信息,以在服务器状态页显示CPU、内存等

This commit is contained in:
LollipopKit
2021-09-17 00:28:58 +08:00
parent c922bad90c
commit 6b72bc9509
15 changed files with 759 additions and 138 deletions

View File

@@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
class CardDialog extends StatelessWidget {
const CardDialog(
{Key? key, this.title, this.content, this.actions, this.padding})
: super(key: key);
final Widget? content;
final List<Widget>? actions;
final Widget? title;
final EdgeInsets? padding;
@override
Widget build(BuildContext context) {
return AlertDialog(
contentPadding: padding ?? const EdgeInsets.fromLTRB(24, 17, 24, 7),
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(20.0)),
),
title: title,
content: content,
actions: actions,
);
}
}

View File

@@ -1,5 +1,3 @@
import 'dart:math';
// EXCLUDE_FROM_GALLERY_DOCS_END
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:flutter/material.dart';
@@ -7,59 +5,28 @@ class DonutPieChart extends StatelessWidget {
final List<charts.Series<dynamic, num>> seriesList;
final bool animate;
const DonutPieChart(this.seriesList, {Key? key, this.animate = true}) : super(key: key);
factory DonutPieChart.withRandomData() {
return DonutPieChart(_createRandomData());
}
/// Create random data.
static List<charts.Series<IndexPercent, int>> _createRandomData() {
final random = Random();
final data = [
IndexPercent(0, random.nextInt(100)),
IndexPercent(1, random.nextInt(100)),
IndexPercent(2, random.nextInt(100)),
IndexPercent(3, random.nextInt(100)),
];
return [
charts.Series<IndexPercent, int>(
id: 'Sales',
domainFn: (IndexPercent sales, _) => sales.id,
measureFn: (IndexPercent sales, _) => sales.percent,
data: data,
)
];
}
// EXCLUDE_FROM_GALLERY_DOCS_END
const DonutPieChart(this.seriesList, {Key? key, this.animate = false})
: super(key: key);
@override
Widget build(BuildContext context) {
return charts.PieChart(seriesList,
animate: animate,
layoutConfig: charts.LayoutConfig(
leftMarginSpec: charts.MarginSpec.fixedPixel(1),
topMarginSpec: charts.MarginSpec.fixedPixel(1),
rightMarginSpec: charts.MarginSpec.fixedPixel(1),
bottomMarginSpec: charts.MarginSpec.fixedPixel(17)
),
// Configure the width of the pie slices to 60px. The remaining space in
// the chart will be left as a hole in the center.
leftMarginSpec: charts.MarginSpec.fixedPixel(1),
topMarginSpec: charts.MarginSpec.fixedPixel(1),
rightMarginSpec: charts.MarginSpec.fixedPixel(1),
bottomMarginSpec: charts.MarginSpec.fixedPixel(17)),
defaultRenderer: charts.ArcRendererConfig<num>(
arcWidth: 6,
minHoleWidthForCenterContent: 60,
arcRatio: 0.2,
)
);
));
}
}
/// Sample linear data type.
class IndexPercent {
final int id;
final int percent;
IndexPercent(this.id, this.percent);
}
}