加氢站ui

This commit is contained in:
2025-11-04 16:21:04 +08:00
parent fec7b70fa9
commit 6faf03a331
7 changed files with 559 additions and 52 deletions

View File

@@ -1,33 +1,114 @@
import 'package:getx_scaffold/getx_scaffold.dart';
enum ReservationStatus { pending, completed, rejected }
class ReservationModel {
final String id;
final String plateNumber;
final String amount;
final String time;
final String contactPerson;
final String contactPhone;
ReservationStatus status; // 状态是可变的
ReservationModel({
required this.id,
required this.plateNumber,
required this.amount,
required this.time,
required this.contactPerson,
required this.contactPhone,
this.status = ReservationStatus.pending,
});
}
class SiteController extends GetxController with BaseControllerMixin {
@override
String get builderId => 'site';
SiteController();
/// 状态变量:是否有预约数据
bool hasReservationData = false;
// 新增预约数据列表
List<ReservationModel> reservationList = [];
@override
void onInit() {
super.onInit();
// 页面初始化时自动加载数据
fetchReservationData();
}
/// 模拟获取预约数据的方法
Future<void> fetchReservationData() async {
showLoading("加载中");
// 模拟网络请求延迟
await Future.delayed(const Duration(seconds: 1));
hasReservationData = !hasReservationData;
// ==================== 3. 填充模拟数据 ====================
reservationList = [
ReservationModel(
id: '1',
plateNumber: '浙F08860F',
amount: '52kg',
time: '2025-11-04 21:54-22:24',
contactPerson: '王小龙',
contactPhone: '15888332828',
status: ReservationStatus.pending,
),
ReservationModel(
id: '2',
plateNumber: '浙F08860F',
amount: '52kg',
time: '2025-11-04 14:54-15:24',
contactPerson: '王小龙',
contactPhone: '15888332828',
status: ReservationStatus.completed, // 示例:已完成状态
),
ReservationModel(
id: '3',
plateNumber: '浙F08860F',
amount: '52kg',
time: '2025-11-04 15:54-16:24',
contactPerson: '王小龙',
contactPhone: '15888332828',
status: ReservationStatus.rejected, // 示例:已拒绝状态
),
ReservationModel(
id: '4',
plateNumber: '浙F08860F',
amount: '52kg',
time: '2025-11-04 12:54-13:24',
contactPerson: '王小龙',
contactPhone: '15888332828',
status: ReservationStatus.pending,
),
];
hasReservationData = reservationList.isNotEmpty;
dismissLoading();
updateUi();
}
/// 确认预约
Future<void> confirmReservation(String id) async {
print('确认预约: $id');
// TODO: 在这里调用确认接口
// 接口调用成功后更新本地数据状态并刷新UI
final item = reservationList.firstWhere((item) => item.id == id);
item.status = ReservationStatus.completed;
updateUi();
}
// 如果需要一个方法来清空数据
void clearData() {
hasReservationData = false;
/// 拒绝预约
Future<void> rejectReservation(String id) async {
print('拒绝预约: $id');
// TODO: 在这里调用拒绝接口
// 接口调用成功后更新本地数据状态并刷新UI
final item = reservationList.firstWhere((item) => item.id == id);
item.status = ReservationStatus.rejected;
updateUi();
}
}