修改选择器样式

This commit is contained in:
czz
2025-06-06 09:18:06 +08:00
parent 682728eb1e
commit bc86cf7d78
94 changed files with 3929 additions and 2299 deletions

View File

@@ -2,8 +2,8 @@ import 'package:ef/ef.dart';
import 'package:flutter_city_picker/model/address.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/controller/mh/user_data.dart';
import 'package:vbvs_app/controller/mh/muser_info_controller.dart';
import 'package:vbvs_app/controller/mh_controller/user_data.dart';
import 'package:vbvs_app/controller/mh_controller/muser_info_controller.dart';
part 'address_controller.g.dart';

View File

@@ -0,0 +1,149 @@
import 'package:ef/ef.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:json_annotation/json_annotation.dart';
part 'find_password_controller.g.dart';
@JsonSerializable()
class FindPasswordModel {
String? phone; //手机号
String? code; //验证码
bool? register_agree; //注册协议
String? pd; //密码
String? confirm; //验证密码
bool? pdshow = true; //是否显示密码
bool? cpdshow = true; //是否显示密码
FindPasswordModel();
static FindPasswordModel fromJson(Map<String, dynamic> json) =>
_$FindPasswordModelFromJson(json);
Map<String, dynamic> toJson() => _$FindPasswordModelToJson(this);
}
class FindPasswordController extends GetControllerEx<FindPasswordModel> {
// final UserRepository repository = UserRepository();
FindPasswordController() {
attr = GetModel(FindPasswordModel()).obs;
}
// Future<String> getCode(BuildContext context) async {
// String message = "";
// final MyDialogController myDialogController =
// Get.find<MyDialogController>();
// if (model.phone == null || model.phone!.isEmpty) {
// message = "请输入手机号";
// showToast(message);
// return message;
// }
// if (!MyUtils.isValidPhoneNumber(model.phone!)) {
// message = '请输入正确的手机号';
// showToast(message);
// return message;
// }
// message = await repository.sendResetCode(model.phone!);
// if (message.isNotEmpty) {
// showToast("发送验证码失败或已到限制数量,请稍候或一小时/一天后再试!");
// return message;
// } else {
// showToast("发送验证码成功!", color: color_success);
// }
// return '';
// }
// //确认验证码
// Future<String> confirmCode(BuildContext context) async {
// String message = "";
// final MyDialogController myDialogController =
// Get.find<MyDialogController>();
// if (model.phone == null || model.phone!.isEmpty) {
// message = "请输入手机号";
// showToast(message);
// return message;
// }
// if (!MyUtils.isValidPhoneNumber(model.phone!)) {
// message = '请输入正确的手机号';
// showToast(message);
// return message;
// }
// if (model.code == null || model.code!.isEmpty) {
// message = "请输入验证码";
// showToast(message);
// return message;
// }
// if (model.pd == null || model.pd!.isEmpty) {
// message = "请输入密码";
// showToast(message);
// return message;
// }
// // if (model.pd!.length < 8) {
// // message = "密码长度必须至少8位";
// // showToast(message);
// // return message;
// // }
// // bool hasUppercase = model.pd!.contains(RegExp(r'[A-Z]'));
// // bool hasLowercase = model.pd!.contains(RegExp(r'[a-z]'));
// // bool hasSpecialCharacters =
// // model.pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
// // if (!hasUppercase) {
// // message = "密码必须包含至少一个大写字母";
// // showToast(message);
// // return message;
// // }
// // if (!hasLowercase) {
// // message = "密码必须包含至少一个小写字母";
// // showToast(message);
// // return message;
// // }
// // if (!hasSpecialCharacters) {
// // message = "密码必须包含至少一个特殊字符";
// // showToast(message);
// // return message;
// // }
// String passwordMsg = "1.密码长度必须至少8位\n2.密码需要字母加数字\n3.特殊字符或大写字母至少包含一个";
// bool hasUppercase = model.pd!.contains(RegExp(r'[A-Z]'));
// bool hasDigit = model.pd!.contains(RegExp(r'[0-9]'));
// bool hasSpecialCharacters =
// model.pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
// bool hasLetter = model.pd!.contains(RegExp(r'[a-zA-Z]'));
// if (model.pd!.length < 8) {
// message = passwordMsg;
// showToast(message, closeTime: 5);
// return message;
// }
// if (!hasLetter || !hasDigit) {
// message = passwordMsg;
// showToast(message);
// return message;
// }
// if (!(hasSpecialCharacters || hasUppercase)) {
// message = passwordMsg;
// showToast(message);
// return message;
// }
// if (model.confirm == null || model.confirm!.isEmpty) {
// message = "请输入确认密码";
// showToast(message);
// return message;
// }
// if (model.pd != model.confirm) {
// message = "两次密码不一致";
// showToast(message);
// return message;
// }
// message =
// await repository.confirmCode(model.phone!, model.code!, model.pd!);
// if (message.isNotEmpty) {
// showToast("更新失败,请稍后再试");
// return message;
// }
// return '';
// }
}

View File

@@ -0,0 +1,28 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'find_password_controller.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FindPasswordModel _$FindPasswordModelFromJson(Map<String, dynamic> json) =>
FindPasswordModel()
..phone = json['phone'] as String?
..code = json['code'] as String?
..register_agree = json['register_agree'] as bool?
..pd = json['pd'] as String?
..confirm = json['confirm'] as String?
..pdshow = json['pdshow'] as bool?
..cpdshow = json['cpdshow'] as bool?;
Map<String, dynamic> _$FindPasswordModelToJson(FindPasswordModel instance) =>
<String, dynamic>{
'phone': instance.phone,
'code': instance.code,
'register_agree': instance.register_agree,
'pd': instance.pd,
'confirm': instance.confirm,
'pdshow': instance.pdshow,
'cpdshow': instance.cpdshow,
};

View File

@@ -6,7 +6,7 @@ import 'package:json_annotation/json_annotation.dart';
import 'package:path/path.dart' as p;
import 'package:vbvs_app/controller/mh/user_data.dart';
import 'package:vbvs_app/controller/mh_controller/user_data.dart';
part 'muser_info_controller.g.dart';
@JsonSerializable()

View File

@@ -0,0 +1,128 @@
import 'package:ef/ef.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:json_annotation/json_annotation.dart';
part 'register_controller.g.dart';
@JsonSerializable()
class RegisterModel {
String? register_phone; //注册手机号
String? register_pd; //注册密码
String? register_confirm_pd; //注册确认密码
String? register_code; //注册验证码
bool? register_agree = false; //注册协议
bool? pdshow = true; //是否显示密码
bool? cpdshow = true; //是否显示密码
RegisterModel();
static RegisterModel fromJson(Map<String, dynamic> json) =>
_$RegisterModelFromJson(json);
Map<String, dynamic> toJson() => _$RegisterModelToJson(this);
}
class RegisterController extends GetControllerEx<RegisterModel> {
// final UserRepository repository = UserRepository();
RegisterController() {
attr = GetModel(RegisterModel()).obs;
}
// Future<String> registerUser(BuildContext context) async {
// String message = "";
// final MyDialogController myDialogController =
// Get.find<MyDialogController>();
// if (model.register_phone == null || model.register_phone!.isEmpty) {
// message = "请输入手机号";
// showToast(message);
// return message;
// }
// if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
// message = '请输入正确的手机号';
// showToast(message);
// return message;
// }
// if (model.register_pd == null || model.register_pd!.isEmpty) {
// message = "请输入密码";
// showToast(message);
// return message;
// }
// String passwordMsg = "1.密码长度必须至少8位\n2.密码需要字母加数字\n3.特殊字符和大写字母至少包含一个";
// bool hasUppercase = model.register_pd!.contains(RegExp(r'[A-Z]'));
// bool hasDigit = model.register_pd!.contains(RegExp(r'[0-9]'));
// bool hasSpecialCharacters =
// model.register_pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
// bool hasLetter = model.register_pd!.contains(RegExp(r'[a-zA-Z]'));
// if (model.register_pd!.length < 8) {
// message = passwordMsg;
// showToast(message);
// return message;
// }
// if (!hasLetter || !hasDigit) {
// message = passwordMsg;
// showToast(message);
// return message;
// }
// if (!(hasSpecialCharacters || hasUppercase)) {
// message = passwordMsg;
// showToast(message);
// return message;
// }
// if (model.register_confirm_pd == null ||
// model.register_confirm_pd!.isEmpty) {
// message = "请输入确认密码";
// showToast(message);
// return message;
// }
// if (model.register_pd != model.register_confirm_pd) {
// message = "两次密码不一致";
// showToast(message);
// return message;
// }
// if (model.register_code == null || model.register_code!.isEmpty) {
// message = "请输入验证码";
// showToast(message);
// return message;
// }
// if (model.register_agree == null || model.register_agree != true) {
// message = "需要同意协议";
// showToast(message);
// return message;
// }
// message = await repository.createUser(
// model.register_pd!, model.register_phone!, model.register_code!);
// if (message.isNotEmpty) {
// showToast(message);
// return message;
// }
// return "";
// }
// Future<String> getCode(BuildContext context) async {
// String message = "";
// final MyDialogController myDialogController =
// Get.find<MyDialogController>();
// if (model.register_phone == null || model.register_phone!.isEmpty) {
// message = "请输入手机号";
// showToast(message);
// return message;
// }
// if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
// message = '请输入正确的手机号';
// showToast(message);
// return message;
// }
// message = await repository.sendRegisterCode(model.register_phone!);
// if (message.isNotEmpty) {
// showToast("发送失败,请稍后再试!");
// return "发送失败,请稍后再试!";
// } else {
// showToast("发送验证码成功!", color: color_success);
// }
// return '';
// }
}

View File

@@ -0,0 +1,28 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'register_controller.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
RegisterModel _$RegisterModelFromJson(Map<String, dynamic> json) =>
RegisterModel()
..register_phone = json['register_phone'] as String?
..register_pd = json['register_pd'] as String?
..register_confirm_pd = json['register_confirm_pd'] as String?
..register_code = json['register_code'] as String?
..register_agree = json['register_agree'] as bool?
..pdshow = json['pdshow'] as bool?
..cpdshow = json['cpdshow'] as bool?;
Map<String, dynamic> _$RegisterModelToJson(RegisterModel instance) =>
<String, dynamic>{
'register_phone': instance.register_phone,
'register_pd': instance.register_pd,
'register_confirm_pd': instance.register_confirm_pd,
'register_code': instance.register_code,
'register_agree': instance.register_agree,
'pdshow': instance.pdshow,
'cpdshow': instance.cpdshow,
};

View File

@@ -1,7 +1,7 @@
import 'package:ef/ef.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/controller/mh/apply_repair_controller.dart';
import 'package:vbvs_app/controller/mh/repair_process.dart';
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
import 'package:vbvs_app/controller/mh_controller/repair_process.dart';
part 'repair_info_controller.g.dart';

View File

@@ -21,9 +21,9 @@ class RepairListModel {
class RepairListController extends GetControllerEx<RepairListModel> {
// RepairRepository repairRepository = RepairRepository();
// RepairListController() {
// attr = GetModel(RepairListModel()).obs;
// }
RepairListController() {
attr = GetModel(RepairListModel()).obs;
}
// //
// Future<void> initData() async {
@@ -52,32 +52,4 @@ class RepairListController extends GetControllerEx<RepairListModel> {
// Future<String> addScore(int id, int score) async {
// return await repairRepository.addScore(id, score);
// }
@override
void onInit() {
super.onInit();
loadMockRepairList();
}
void loadMockRepairList() {
model.repairList = [
ApplyRepairModel()
..id = 1001
..device_category = '智能床垫 BY-H'
..status = '待维修'
..create_time = DateTime.now().subtract(Duration(days: 1))
..device_id = 'BYH-001',
ApplyRepairModel()
..id = 1002
..device_category = '智能床垫 BY-A'
..status = '维修中'
..create_time = DateTime.now().subtract(Duration(days: 2))
..device_id = 'BYA-002',
ApplyRepairModel()
..id = 1003
..device_category = '智能床垫 BY-C'
..status = '已完成'
..create_time = DateTime.now().subtract(Duration(days: 3))
..device_id = 'BYC-003',
];
}
}

View File

@@ -1,195 +1,9 @@
// import 'dart:async';
// import 'package:EasyDartModule/EasyDartModule.dart';
// import 'package:ef/ef.dart';
// import 'package:geocoding/geocoding.dart';
// import 'package:geolocator/geolocator.dart';
// import 'package:json_annotation/json_annotation.dart';
// import 'package:vbvs_app/common/util/CommonVariables.dart';
// import 'package:vbvs_app/common/util/MyUtils.dart';
// import 'package:vbvs_app/controller/setting/language/language_controller.dart';
// import 'package:weather/weather.dart';
// part 'weather_controller.g.dart';
// @JsonSerializable()
// class WeatherModel {
// double? longitude; //经度
// double? latitude; //纬度
// String? weather_info = ''; //天气
// int? current_temperature; //温度
// int? min_temperature; //温度
// int? max_temperature; //温度
// String? wind_direction; //风向
// int? wind_speed; //风速等级
// String? cityName; // 新增城市名字段
// String? weatherIcon; // 新增天气图标字段
// String? weatherIconurl; // 新增天气图标字段
// WeatherModel();
// static WeatherModel fromJson(Map<String, dynamic> json) =>
// _$WeatherModelFromJson(json);
// Map<String, dynamic> toJson() => _$WeatherModelToJson(this);
// }
// class WeatherModelController extends GetControllerEx<WeatherModel> {
// LanguageController languageController = Get.find();
// WeatherModelController() {
// attr = GetModel(WeatherModel()).obs;
// weatherFactory = WeatherFactory(CommonVariables.weather_apiKey,
// language: Language.CHINESE_SIMPLIFIED);
// }
// Timer? _timer;
// late WeatherFactory weatherFactory;
// @override
// Future<void> onInit() async {
// super.onInit();
// await _getCurrentLocationAndWeather();
// // 启动定时器每5秒执行一次 getCurrentWeather 方法
// _timer = Timer.periodic(Duration(seconds: 5), (timer) {
// _getCurrentLocationAndWeather();
// });
// }
// @override
// void onClose() {
// // 取消定时器
// _timer?.cancel();
// super.onClose();
// }
// Future<void> _getCurrentLocationAndWeather() async {
// try {
// Position position = await _determinePosition();
// String? language = "zh_CN";
// if (languageController.selectLanguage != null) {
// language = languageController.selectLanguage.value!.language_code;
// }
// List<Placemark> placemarks = await placemarkFromCoordinates(
// position.latitude, position.longitude,
// localeIdentifier: "${language}");
// if (placemarks.isNotEmpty) {
// model.cityName = placemarks[0].locality ?? "未知数据".tr;
// }
// getCurrentWeather(position.latitude, position.longitude);
// } catch (e) {
// print(e);
// EasyDartModule.logger.error("获取位置和天气失败: $e");
// }
// }
// Future<Position> _determinePosition() async {
// bool serviceEnabled;
// LocationPermission permission;
// // 检查位置服务是否启用
// serviceEnabled = await Geolocator.isLocationServiceEnabled();
// if (!serviceEnabled) {
// // 位置服务未启用,返回默认位置
// return Future.error('Location services are disabled.');
// }
// permission = await Geolocator.checkPermission();
// if (permission == LocationPermission.denied) {
// permission = await Geolocator.requestPermission();
// if (permission == LocationPermission.denied) {
// // 权限被拒绝,返回默认位置
// return Future.error('Location permissions are denied');
// }
// }
// if (permission == LocationPermission.deniedForever) {
// // 权限被永久拒绝,返回默认位置
// return Future.error(
// 'Location permissions are permanently denied, we cannot request permissions.');
// }
// // 获取当前位置
// return await Geolocator.getCurrentPosition();
// }
// Future<Weather> getCurrentWeather(
// double latitude,
// double longitude,
// ) async {
// try {
// weatherFactory.language = Language.CHINESE_SIMPLIFIED;
// String? language = "zh_CN";
// if (languageController.selectLanguage != null) {
// language = languageController.selectLanguage.value!.language_code;
// }
// if (language == "zh_CN") {
// weatherFactory.language = Language.CHINESE_SIMPLIFIED;
// } else {
// weatherFactory.language = Language.ENGLISH;
// }
// Weather weather =
// await weatherFactory.currentWeatherByLocation(latitude, longitude);
// model.weather_info = weather.weatherDescription;
// model.min_temperature = weather.tempMin?.celsius?.toInt();
// model.max_temperature = weather.tempMax?.celsius?.toInt();
// model.current_temperature = weather.temperature?.celsius?.toInt();
// model.wind_speed = weather.windSpeed?.toInt();
// model.weatherIcon = weather.weatherIcon;
// if (model.weatherIcon != null) {
// model.weatherIconurl =
// "https://openweathermap.org/img/w/${model.weatherIcon}.png";
// }
// // model.wind_direction = getDirectionByDegree(weather.windDegree);
// updateAll();
// return weather;
// } catch (e) {
// print('Error: $e');
// rethrow;
// }
// }
// Future<List<Weather>> getWeatherForecast(
// double latitude, double longitude) async {
// try {
// return await weatherFactory.fiveDayForecastByLocation(
// latitude, longitude);
// } catch (e) {
// print('Error: $e');
// rethrow;
// }
// }
// String? getDirectionByDegree(double? windDegree) {
// if (windDegree == null) return null;
// if (windDegree >= 337.5 || windDegree < 22.5) {
// return '主页.天气.方向.北'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 22.5 && windDegree < 67.5) {
// return '主页.天气.方向.东北'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 67.5 && windDegree < 112.5) {
// return '主页.天气.方向.东'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 112.5 && windDegree < 157.5) {
// return '主页.天气.方向.东南'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 157.5 && windDegree < 202.5) {
// return '主页.天气.方向.南'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 202.5 && windDegree < 247.5) {
// return '主页.天气.方向.西南'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 247.5 && windDegree < 292.5) {
// return '主页.天气.方向.西'.tr + '主页.天气.方向.单位'.tr;
// } else if (windDegree >= 292.5 && windDegree < 337.5) {
// return '主页.天气.方向.西北'.tr + '主页.天气.方向.单位'.tr;
// } else {
// return null;
// }
// }
// }
import 'dart:async';
import 'package:EasyDartModule/EasyDartModule.dart';
import 'package:ef/ef.dart';
import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart';
// import 'package:geocoding/geocoding.dart';
// import 'package:geolocator/geolocator.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/common/util/CommonVariables.dart';
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
@@ -223,148 +37,148 @@ class WeatherModelController extends GetControllerEx<WeatherModel> {
LanguageController languageController = Get.find();
WeatherModelController() {
attr = GetModel(WeatherModel()).obs;
weatherFactory = WeatherFactory(CommonVariables.weather_apiKey,
language: Language.CHINESE_SIMPLIFIED);
// weatherFactory = WeatherFactory(CommonVariables.weather_apiKey,
// language: Language.CHINESE_SIMPLIFIED);
}
Timer? _weatherTimer;
Timer? _locationTimer;
// Timer? _weatherTimer;
// Timer? _locationTimer;
late WeatherFactory weatherFactory;
// late WeatherFactory weatherFactory;
@override
Future<void> onInit() async {
super.onInit();
await _getCurrentLocation();
_weatherTimer = Timer.periodic(Duration(seconds: 5), (timer) {
_getCurrentWeather(); // 每 5 秒更新一次天气
});
// @override
// Future<void> onInit() async {
// super.onInit();
// await _getCurrentLocation();
// _weatherTimer = Timer.periodic(Duration(seconds: 5), (timer) {
// _getCurrentWeather(); // 每 5 秒更新一次天气
// });
_locationTimer = Timer.periodic(Duration(minutes: 10), (timer) {
_getCurrentLocation(); // 每 10 分钟更新一次位置
});
}
// _locationTimer = Timer.periodic(Duration(minutes: 10), (timer) {
// _getCurrentLocation(); // 每 10 分钟更新一次位置
// });
// }
@override
void onClose() {
_weatherTimer?.cancel(); // 取消天气更新定时器
_locationTimer?.cancel(); // 取消位置更新定时器
super.onClose();
}
// @override
// void onClose() {
// _weatherTimer?.cancel(); // 取消天气更新定时器
// _locationTimer?.cancel(); // 取消位置更新定时器
// super.onClose();
// }
// 获取当前位置并存储到 model
Future<void> _getCurrentLocation() async {
try {
Position position = await _determinePosition();
if (position == null) {
throw Exception("获取位置失败");
}
// // 获取当前位置并存储到 model
// Future<void> _getCurrentLocation() async {
// try {
// Position position = await _determinePosition();
// if (position == null) {
// throw Exception("获取位置失败");
// }
String? language = "zh_CN";
if (languageController.selectLanguage != null) {
language = languageController.selectLanguage.value!.language_code;
}
List<Placemark> placemarks = await placemarkFromCoordinates(
position.latitude, position.longitude,
localeIdentifier: language);
// String? language = "zh_CN";
// if (languageController.selectLanguage != null) {
// language = languageController.selectLanguage.value!.language_code;
// }
// List<Placemark> placemarks = await placemarkFromCoordinates(
// position.latitude, position.longitude,
// localeIdentifier: language);
if (placemarks.isNotEmpty) {
model.cityName = placemarks[0].locality ?? "未知数据".tr;
model.latitude = position.latitude;
model.longitude = position.longitude;
}
// if (placemarks.isNotEmpty) {
// model.cityName = placemarks[0].locality ?? "未知数据".tr;
// model.latitude = position.latitude;
// model.longitude = position.longitude;
// }
// 调用获取天气方法
_getCurrentWeather();
} catch (e) {
print(e);
EasyDartModule.logger.error("获取位置失败: $e");
}
}
// // 调用获取天气方法
// _getCurrentWeather();
// } catch (e) {
// print(e);
// EasyDartModule.logger.error("获取位置失败: $e");
// }
// }
// 获取当前位置
Future<Position> _determinePosition() async {
bool serviceEnabled;
LocationPermission permission;
// // 获取当前位置
// Future<Position> _determinePosition() async {
// bool serviceEnabled;
// LocationPermission permission;
serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
return Future.error('位置服务未启用');
}
// serviceEnabled = await Geolocator.isLocationServiceEnabled();
// if (!serviceEnabled) {
// return Future.error('位置服务未启用');
// }
permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
return Future.error('位置权限被拒绝');
}
}
// permission = await Geolocator.checkPermission();
// if (permission == LocationPermission.denied) {
// permission = await Geolocator.requestPermission();
// if (permission == LocationPermission.denied) {
// return Future.error('位置权限被拒绝');
// }
// }
if (permission == LocationPermission.deniedForever) {
return Future.error('位置权限被永久拒绝');
}
// if (permission == LocationPermission.deniedForever) {
// return Future.error('位置权限被永久拒绝');
// }
return await Geolocator.getCurrentPosition();
}
// return await Geolocator.getCurrentPosition();
// }
// 获取天气信息
Future<void> _getCurrentWeather() async {
if (model.latitude == null || model.longitude == null) {
EasyDartModule.logger.error("获取天气失败:位置数据获取失败");
return; // 如果位置数据没有获取到,则不更新天气
}
String? language = "zh_CN";
if (languageController.selectLanguage != null) {
language = languageController.selectLanguage.value!.language_code;
}
List<Placemark> placemarks = await placemarkFromCoordinates(
model.latitude!, model.longitude!,
localeIdentifier: language);
// // 获取天气信息
// Future<void> _getCurrentWeather() async {
// if (model.latitude == null || model.longitude == null) {
// EasyDartModule.logger.error("获取天气失败:位置数据获取失败");
// return; // 如果位置数据没有获取到,则不更新天气
// }
// String? language = "zh_CN";
// if (languageController.selectLanguage != null) {
// language = languageController.selectLanguage.value!.language_code;
// }
// List<Placemark> placemarks = await placemarkFromCoordinates(
// model.latitude!, model.longitude!,
// localeIdentifier: language);
if (placemarks.isNotEmpty) {
model.cityName = placemarks[0].locality ?? "未知数据".tr;
}
// if (placemarks.isNotEmpty) {
// model.cityName = placemarks[0].locality ?? "未知数据".tr;
// }
try {
weatherFactory.language = Language.CHINESE_SIMPLIFIED;
String? language = "zh_CN";
if (languageController.selectLanguage != null) {
language = languageController.selectLanguage.value!.language_code;
}
if (language == "zh_CN") {
weatherFactory.language = Language.CHINESE_SIMPLIFIED;
} else {
weatherFactory.language = Language.ENGLISH;
}
Weather weather = await weatherFactory.currentWeatherByLocation(
model.latitude!, model.longitude!);
// try {
// weatherFactory.language = Language.CHINESE_SIMPLIFIED;
// String? language = "zh_CN";
// if (languageController.selectLanguage != null) {
// language = languageController.selectLanguage.value!.language_code;
// }
// if (language == "zh_CN") {
// weatherFactory.language = Language.CHINESE_SIMPLIFIED;
// } else {
// weatherFactory.language = Language.ENGLISH;
// }
// Weather weather = await weatherFactory.currentWeatherByLocation(
// model.latitude!, model.longitude!);
model.weather_info = weather.weatherDescription;
model.min_temperature = weather.tempMin?.celsius?.toInt();
model.max_temperature = weather.tempMax?.celsius?.toInt();
model.current_temperature = weather.temperature?.celsius?.toInt();
model.wind_speed = weather.windSpeed?.toInt();
model.weatherIcon = weather.weatherIcon;
if (model.weatherIcon != null) {
model.weatherIconurl =
"https://openweathermap.org/img/w/${model.weatherIcon}.png";
}
updateAll(); // 更新 UI
} catch (e) {
EasyDartModule.logger.error("获取天气失败: $e");
print('获取天气失败: $e');
}
}
// model.weather_info = weather.weatherDescription;
// model.min_temperature = weather.tempMin?.celsius?.toInt();
// model.max_temperature = weather.tempMax?.celsius?.toInt();
// model.current_temperature = weather.temperature?.celsius?.toInt();
// model.wind_speed = weather.windSpeed?.toInt();
// model.weatherIcon = weather.weatherIcon;
// if (model.weatherIcon != null) {
// model.weatherIconurl =
// "https://openweathermap.org/img/w/${model.weatherIcon}.png";
// }
// updateAll(); // 更新 UI
// } catch (e) {
// EasyDartModule.logger.error("获取天气失败: $e");
// print('获取天气失败: $e');
// }
// }
// 获取 5 天天气预报
Future<List<Weather>> getWeatherForecast(
double latitude, double longitude) async {
try {
return await weatherFactory.fiveDayForecastByLocation(
latitude, longitude);
} catch (e) {
print('获取天气预报失败: $e');
rethrow;
}
}
// // 获取 5 天天气预报
// Future<List<Weather>> getWeatherForecast(
// double latitude, double longitude) async {
// try {
// return await weatherFactory.fiveDayForecastByLocation(
// latitude, longitude);
// } catch (e) {
// print('获取天气预报失败: $e');
// rethrow;
// }
// }
}