Files
ln-ios/ln_jq_app/lib/pages/b_page/site/controller.dart
2025-11-04 16:21:04 +08:00

115 lines
3.1 KiB
Dart
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.

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));
// ==================== 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();
}
/// 拒绝预约
Future<void> rejectReservation(String id) async {
print('拒绝预约: $id');
// TODO: 在这里调用拒绝接口
// 接口调用成功后更新本地数据状态并刷新UI
final item = reservationList.firstWhere((item) => item.id == id);
item.status = ReservationStatus.rejected;
updateUi();
}
}