115 lines
3.1 KiB
Dart
115 lines
3.1 KiB
Dart
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();
|
||
}
|
||
}
|