opt.: server card seq page

This commit is contained in:
lollipopkit
2024-04-13 00:45:48 +08:00
parent b989953b7a
commit a28fabedef
4 changed files with 26 additions and 5 deletions

View File

@@ -1,3 +1,5 @@
import 'package:flutter/material.dart';
import 'package:icons_plus/icons_plus.dart';
import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/listx.dart'; import 'package:toolbox/core/extension/listx.dart';
import 'package:toolbox/data/model/app/version_related.dart'; import 'package:toolbox/data/model/app/version_related.dart';
@@ -65,4 +67,19 @@ enum ServerDetailCards implements VersionRelated {
} }
} }
} }
IconData get icon => switch (this) {
about => Icons.info,
cpu => Icons.memory,
mem => Bootstrap.memory,
swap => Icons.swap_horiz,
gpu => Bootstrap.gpu_card,
disk => Icons.storage,
net => ZondIcons.network,
sensor => MingCute.dashboard_4_line,
temp => FontAwesome.temperature_empty_solid,
battery => Icons.battery_full,
pve => BoxIcons.bxs_dashboard,
custom => Icons.code,
};
} }

View File

@@ -247,7 +247,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
final idx = i * kMaxColumn + j + 1; final idx = i * kMaxColumn + j + 1;
if (idx >= cs.coresCount) break; if (idx >= cs.coresCount) break;
if (Stores.setting.displayCpuIndex.fetch()) { if (Stores.setting.displayCpuIndex.fetch()) {
rowChildren.add(Text('${idx + 1}', style: UIs.text13Grey)); rowChildren.add(Text('$idx', style: UIs.text13Grey));
} }
rowChildren.add( rowChildren.add(
Expanded( Expanded(

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/context/snackbar.dart'; import 'package:toolbox/core/extension/context/snackbar.dart';
import 'package:toolbox/core/utils/platform/base.dart';
import 'package:toolbox/data/model/app/server_detail_card.dart'; import 'package:toolbox/data/model/app/server_detail_card.dart';
import 'package:toolbox/data/res/store.dart'; import 'package:toolbox/data/res/store.dart';
@@ -38,14 +37,16 @@ class _ServerDetailOrderPageState extends State<ServerDetailOrderPage> {
final allKeys = [...keys, ...disabled]; final allKeys = [...keys, ...disabled];
return ReorderableListView.builder( return ReorderableListView.builder(
padding: const EdgeInsets.all(7), padding: const EdgeInsets.all(7),
buildDefaultDragHandles: false,
itemBuilder: (_, idx) { itemBuilder: (_, idx) {
final key = allKeys[idx]; final key = allKeys[idx];
return CardX( return CardX(
key: ValueKey(idx), key: ValueKey(idx),
child: ListTile( child: ListTile(
contentPadding: const EdgeInsets.only(left: 23, right: 11),
leading: Icon(ServerDetailCards.fromName(key)?.icon),
title: Text(key), title: Text(key),
leading: _buildCheckBox(keys, key, idx, idx < keys.length), trailing: _buildCheckBox(keys, key, idx, idx < keys.length),
trailing: isDesktop ? null : const Icon(Icons.drag_handle),
), ),
); );
}, },

View File

@@ -16,10 +16,13 @@ class ChoiceChipX<T> extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Padding(
padding: const EdgeInsets.symmetric(vertical: 3, horizontal: 3), padding: const EdgeInsets.symmetric(horizontal: 5),
child: ChoiceChip( child: ChoiceChip(
label: Text(label), label: Text(label),
side: BorderSide.none, side: BorderSide.none,
showCheckmark: true,
padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 8),
labelPadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 0),
selected: state.selected(value), selected: state.selected(value),
onSelected: state.onSelected(value), onSelected: state.onSelected(value),
), ),