1
This commit is contained in:
56
lib/pages/teacher/home/viewmodel/home_view_model.dart
Normal file
56
lib/pages/teacher/home/viewmodel/home_view_model.dart
Normal file
@@ -0,0 +1,56 @@
|
||||
import 'package:app/request/api/room_api.dart';
|
||||
import 'package:app/request/dto/room/room_info_dto.dart';
|
||||
import 'package:app/utils/time.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class HomeViewModel extends ChangeNotifier {
|
||||
RoomInfoDto? roomInfo;
|
||||
bool loading = true;
|
||||
|
||||
HomeViewModel() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
//加载数据
|
||||
Future<void> loadData() async {
|
||||
final list = await getRoomListApi();
|
||||
loading = false;
|
||||
|
||||
if (list.isNotEmpty) {
|
||||
roomInfo = list.first;
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
///计算会议时间
|
||||
int get roomMinutes {
|
||||
if (roomInfo == null) return 0;
|
||||
|
||||
final start = roomInfo!.startTime;
|
||||
final end = roomInfo!.endTime;
|
||||
|
||||
final s = DateTime.parse('2000-01-01 $start:00');
|
||||
final e = DateTime.parse('2000-01-01 $end:00');
|
||||
|
||||
return e.difference(s).inMinutes;
|
||||
}
|
||||
|
||||
///能否进入房间
|
||||
bool get canEnterRoom {
|
||||
final info = roomInfo;
|
||||
if (info == null) return false;
|
||||
|
||||
final now = DateTime.now();
|
||||
|
||||
//开始时间
|
||||
final startTime = parseTime(info.startTime);
|
||||
|
||||
// 当前时间距离开始时间是否超过 5 分钟
|
||||
if (now.isBefore(startTime) && startTime.difference(now).inMinutes > 5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user