智慧水务管理系统 - 精河县供水工程综合管理平台

water_service.dart 1.6KB

12345678910111213141516171819202122232425262728293031323334
  1. import 'package:dio/dio.dart';
  2. import 'package:water_management_system/models/water_data_model.dart';
  3. import 'package:water_management_system/utils/constants.dart';
  4. class WaterService {
  5. final Dio _dio = Dio(BaseOptions(baseUrl: AppConstants.baseUrl));
  6. Future<List<WaterDataModel>> getWaterData({
  7. String area = '全部区域',
  8. DateTime? date,
  9. }) async {
  10. try {
  11. final response = await _dio.get(AppConstants.waterDataEndpoint, queryParameters: {
  12. 'area': area,
  13. 'date': date?.toIso8601String(),
  14. });
  15. if (response.statusCode == 200) {
  16. final List<dynamic> data = response.data['data'] ?? [];
  17. return data.map((item) => WaterDataModel.fromJson(item)).toList();
  18. }
  19. return [];
  20. } catch (e) {
  21. return _getMockData();
  22. }
  23. }
  24. List<WaterDataModel> _getMockData() {
  25. return [
  26. WaterDataModel(deviceId: 'D001', deviceName: 'A区泵站', area: '东区', pressure: 0.35, flowRate: 120.5, temperature: 22.0, status: 'normal', updateTime: DateTime.now(), batteryLevel: 95.0, location: '116.3,39.9'),
  27. WaterDataModel(deviceId: 'D002', deviceName: 'B区水塔', area: '西区', pressure: 0.42, flowRate: 150.0, temperature: 23.0, status: 'warning', updateTime: DateTime.now().subtract(const Duration(minutes: 30)), batteryLevel: 78.0, location: '116.4,39.8'),
  28. WaterDataModel(deviceId: 'D003', deviceName: 'C区阀门', area: '南区', pressure: 0.28, flowRate: 85.0, temperature: 21.0, status: 'error', updateTime: DateTime.now().subtract(const Duration(hours: 2)), batteryLevel: 45.0, location: '116.2,39.7'),
  29. ];
  30. }
  31. }