更新
This commit is contained in:
59
lib/controller/date/CalendarController.dart
Normal file
59
lib/controller/date/CalendarController.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
import 'package:ef/ef.dart';
|
||||
|
||||
class CalendarController extends GetControllerEx {
|
||||
Rx<DateTime> displayedMonth = DateTime.now().obs;
|
||||
Rx<DateTime?> selectedDate = Rx<DateTime?>(null);
|
||||
|
||||
List<DateTime> getDaysInMonth() {
|
||||
DateTime firstDayOfMonth =
|
||||
DateTime(displayedMonth.value.year, displayedMonth.value.month, 1);
|
||||
DateTime lastDayOfMonth =
|
||||
DateTime(displayedMonth.value.year, displayedMonth.value.month + 1, 0);
|
||||
List<DateTime> days = [];
|
||||
|
||||
for (int i = 0; i < lastDayOfMonth.day; i++) {
|
||||
days.add(firstDayOfMonth.add(Duration(days: i)));
|
||||
}
|
||||
return days;
|
||||
}
|
||||
|
||||
List<List<DateTime>> getCalendarRows(List<DateTime> daysInMonth) {
|
||||
List<List<DateTime>> calendarRows = [];
|
||||
int firstWeekday = daysInMonth.first.weekday;
|
||||
int emptyDays = (firstWeekday == 7 ? 6 : firstWeekday - 1);
|
||||
|
||||
List<DateTime> row = [];
|
||||
for (int i = 0; i < emptyDays; i++) {
|
||||
row.add(DateTime(0));
|
||||
}
|
||||
|
||||
for (var day in daysInMonth) {
|
||||
row.add(day);
|
||||
if (row.length == 7) {
|
||||
calendarRows.add(List.from(row));
|
||||
row.clear();
|
||||
}
|
||||
}
|
||||
if (row.isNotEmpty) {
|
||||
while (row.length < 7) {
|
||||
row.add(DateTime(0));
|
||||
}
|
||||
calendarRows.add(List.from(row));
|
||||
}
|
||||
return calendarRows;
|
||||
}
|
||||
|
||||
void previousMonth() {
|
||||
displayedMonth.value =
|
||||
DateTime(displayedMonth.value.year, displayedMonth.value.month - 1, 1);
|
||||
}
|
||||
|
||||
void nextMonth() {
|
||||
displayedMonth.value =
|
||||
DateTime(displayedMonth.value.year, displayedMonth.value.month + 1, 1);
|
||||
}
|
||||
|
||||
void selectDate(DateTime date) {
|
||||
selectedDate.value = date;
|
||||
}
|
||||
}
|
||||
@@ -22,9 +22,9 @@ class BlueteethBindModel {
|
||||
double? singal = -70;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
List<BleDeviceData>? devicelist = [];//蓝牙扫描
|
||||
List<BleDeviceData>? devicelist = []; //蓝牙扫描
|
||||
@JsonKey(ignore: true)
|
||||
List<BleDeviceData>? betDevicelist = [];//网络状态
|
||||
List<BleDeviceData>? betDevicelist = []; //网络状态
|
||||
@JsonKey(ignore: true)
|
||||
List? blelist = [];
|
||||
|
||||
@@ -67,6 +67,7 @@ class BlueteethBindController extends GetControllerEx<BlueteethBindModel> {
|
||||
RxString scanMac = "".obs;
|
||||
|
||||
String? currentDeviceMac;
|
||||
RxString? cid = "".obs ;//校准id
|
||||
|
||||
// 安全展示 TopSlideNotification
|
||||
void safeShowNotification(String msg) {
|
||||
@@ -162,7 +163,8 @@ class BlueteethBindController extends GetControllerEx<BlueteethBindModel> {
|
||||
if (response.data['data'] != null && response.data['data'] is List) {
|
||||
List<dynamic> responseList = response.data['data'];
|
||||
Map<String, BleDeviceData> deviceMap = {
|
||||
for (var d in model.devicelist!) if (d.mac != null) d.mac!: d
|
||||
for (var d in model.devicelist!)
|
||||
if (d.mac != null) d.mac!: d
|
||||
};
|
||||
|
||||
List<String> slaveMacsToRemove = [];
|
||||
@@ -190,7 +192,6 @@ class BlueteethBindController extends GetControllerEx<BlueteethBindModel> {
|
||||
model.betDevicelist = [];
|
||||
}
|
||||
|
||||
|
||||
updateAll();
|
||||
return res;
|
||||
}
|
||||
@@ -212,16 +213,16 @@ class BlueteethBindController extends GetControllerEx<BlueteethBindModel> {
|
||||
String serviceApi = ServiceConstant.device_bind;
|
||||
String queryUrl = "$serviceAddress$serviceName$serviceApi";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var data = {
|
||||
"deviceType": 1,
|
||||
"mac": d.mac,
|
||||
@@ -267,16 +268,16 @@ class BlueteethBindController extends GetControllerEx<BlueteethBindModel> {
|
||||
String serviceApi = ServiceConstant.device_bind;
|
||||
String queryUrl = "$serviceAddress$serviceName$serviceApi";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var data = {
|
||||
"deviceType": 1,
|
||||
"mac": mac,
|
||||
|
||||
@@ -52,17 +52,17 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
String serviceApi = ServiceConstant.device_list;
|
||||
String queryUrl =
|
||||
"${serviceAddress}${serviceName}${serviceApi}?bindNum=1";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData =
|
||||
@@ -94,17 +94,17 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
String serviceApi = ServiceConstant.device_list;
|
||||
String queryUrl =
|
||||
"${serviceAddress}${serviceName}${serviceApi}?bindType=${model.type}${key != null ? '&key=$key' : ''}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData =
|
||||
@@ -137,16 +137,16 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
String serviceApi = ServiceConstant.device_bind;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
final data = {
|
||||
"mac": device['mac'],
|
||||
};
|
||||
@@ -205,16 +205,16 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
|
||||
try {
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
}
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData = response.data is String
|
||||
@@ -273,16 +273,16 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
String serviceApi = ServiceConstant.device_show;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var data = {
|
||||
"id": device['_id'],
|
||||
"show": !device['show'],
|
||||
|
||||
@@ -29,4 +29,6 @@ class DeviceCalibrationController
|
||||
RxInt bed_calibration = 0.obs; //0.未完成 1.完成
|
||||
RxInt position_calibration = 0.obs; //0.未完成 1.完成
|
||||
RxInt bed_type = 0.obs; //0.单人 1.双人
|
||||
RxString tips = "开始校准".tr.obs;
|
||||
bool complete = false; //校准完成
|
||||
}
|
||||
|
||||
@@ -85,6 +85,7 @@ class DeviceShareController extends GetControllerEx<DeviceShareModel> {
|
||||
EasyDartModule.logger.info("分享设备");
|
||||
DailyLogUtils.writeLog("分享设备");
|
||||
try {
|
||||
account.value = account.value.trim();
|
||||
if (account.value == null || account.value.isEmpty) {
|
||||
apiResponse.msg = "请输入手机号或者邮箱".tr;
|
||||
return apiResponse;
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
@@ -125,6 +126,7 @@ class LoginController extends GetControllerEx<LoginModel> {
|
||||
apiResponse.msg = "其他手机登录页.请输入手机号".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
model.phone = model.phone!.trim();
|
||||
if (!MyUtils.isValidPhoneNumber(model.phone!) &&
|
||||
!MyUtils.isValidEmail(model.phone!)) {
|
||||
apiResponse.msg = '其他手机登录页.不正确手机号'.tr;
|
||||
@@ -135,16 +137,16 @@ class LoginController extends GetControllerEx<LoginModel> {
|
||||
String serviceApi = ServiceConstant.send_code;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var data = {
|
||||
"userName": model.phone,
|
||||
};
|
||||
@@ -201,7 +203,33 @@ class LoginController extends GetControllerEx<LoginModel> {
|
||||
});
|
||||
}
|
||||
|
||||
loginByWechatCode(String code) {}
|
||||
Future<ApiResponse> loginByWechatCode(String code) async {
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.login;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
var data = {
|
||||
"type": 2,
|
||||
"password": code,
|
||||
};
|
||||
ApiResponse apiResponse = await requestWithLog(
|
||||
logTitle: "微信登录",
|
||||
method: MyHttpMethod.post,
|
||||
queryUrl: queryUrl,
|
||||
data: data);
|
||||
if (apiResponse.code == HttpStatusCodes.ok) {
|
||||
UserInfoController userInfoController = Get.find();
|
||||
userInfoController.model.login = 1;
|
||||
userInfoController.model.user = UserModel.fromJson(apiResponse.data);
|
||||
String token = apiResponse.rawResponse.headers['token']!.first;
|
||||
EasyDartModule.dio.token = token;
|
||||
final box = GetStorage();
|
||||
box.write('token', token); // 存储 token
|
||||
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息
|
||||
}
|
||||
return apiResponse;
|
||||
}
|
||||
|
||||
//退出登录
|
||||
// Future<void> logout() async {
|
||||
|
||||
@@ -56,19 +56,9 @@ class PersonController extends GetControllerEx<PersonModel> {
|
||||
RxInt gender = 1.obs;
|
||||
RxString birthday = "".obs;
|
||||
RxInt weight = 65.obs;
|
||||
DateTime? dateTime; //选择时间
|
||||
DateTime? dateTime = DateTime.now(); //选择时间
|
||||
RxList diseaseList = [].obs;
|
||||
|
||||
//保存人员资料
|
||||
// void savePersonData() {
|
||||
// print("id->" + currentPersonId.value);
|
||||
// print("name->" + name.value);
|
||||
// print("gender->${gender.value}");
|
||||
// print("生日->${birthday.value}");
|
||||
// print("体重->${weight.value}");
|
||||
// print("慢病->${selectedDiseaseIds.value}");
|
||||
// }
|
||||
|
||||
Future<ApiResponse> savePersonData() async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "蓝牙绑定.绑定失败".tr);
|
||||
@@ -77,24 +67,24 @@ class PersonController extends GetControllerEx<PersonModel> {
|
||||
String serviceApi = ServiceConstant.person_info;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
if (name.value.isEmpty) {
|
||||
apiResponse.msg = "请输入姓名".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
if (birthday.value.isEmpty) {
|
||||
apiResponse.msg = "请选择生日".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
// if (birthday.value.isEmpty) {
|
||||
// apiResponse.msg = "请选择生日".tr;
|
||||
// return apiResponse;
|
||||
// }
|
||||
if (weight.value == 0) {
|
||||
apiResponse.msg = "请输入体重".tr;
|
||||
return apiResponse;
|
||||
@@ -104,7 +94,9 @@ class PersonController extends GetControllerEx<PersonModel> {
|
||||
"id": currentPersonId.value,
|
||||
"name": name.value,
|
||||
"gender": gender.value,
|
||||
"birthday": birthday.value,
|
||||
"birthday": (birthday.value == null || birthday.value!.isEmpty)
|
||||
? MyUtils.formatBindTime(dateTime!)
|
||||
: birthday.value,
|
||||
"weight": weight.value,
|
||||
"disease": selectedDiseaseIds.value,
|
||||
};
|
||||
@@ -137,7 +129,7 @@ class PersonController extends GetControllerEx<PersonModel> {
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.person_info;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
|
||||
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
|
||||
@@ -9,10 +9,14 @@ part of 'language_controller.dart';
|
||||
LanguageModel _$LanguageModelFromJson(Map<String, dynamic> json) =>
|
||||
LanguageModel()
|
||||
..filename = json['filename'] as String?
|
||||
..language_name = json['language_name'] as String?;
|
||||
..language_name = json['language_name'] as String?
|
||||
..selected = json['selected'] as bool?
|
||||
..language_code = json['language_code'] as String?;
|
||||
|
||||
Map<String, dynamic> _$LanguageModelToJson(LanguageModel instance) =>
|
||||
<String, dynamic>{
|
||||
'filename': instance.filename,
|
||||
'language_name': instance.language_name,
|
||||
'selected': instance.selected,
|
||||
'language_code': instance.language_code,
|
||||
};
|
||||
|
||||
33
lib/controller/sleep/sleep_report_controller.dart
Normal file
33
lib/controller/sleep/sleep_report_controller.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'sleep_report_controller.g.dart'; // 由json_serializable自动生成的部分
|
||||
|
||||
@JsonSerializable()
|
||||
class SleepReportModel {
|
||||
int? type = 1; //报告类型 1:日报 2.周报 3.月报
|
||||
|
||||
SleepReportModel();
|
||||
|
||||
// 从JSON反序列化时的异常处理
|
||||
|
||||
factory SleepReportModel.fromJson(Map<String, dynamic> json) {
|
||||
try {
|
||||
return _$SleepReportModelFromJson(json);
|
||||
} catch (e) {
|
||||
// 在实际应用中,应该有更细致的异常处理策略和错误日志
|
||||
return SleepReportModel(); // 或者返回一个带有错误信息的特定DeviceInfoModel实例
|
||||
}
|
||||
}
|
||||
|
||||
// 序列化为JSON时的异常处理
|
||||
Map<String, dynamic> toJson() => _$SleepReportModelToJson(this);
|
||||
}
|
||||
|
||||
class SleepReportController extends GetControllerEx<SleepReportModel> {
|
||||
|
||||
Rx<DateTime?> selectedDate = Rx<DateTime?>(null);
|
||||
SleepReportController() {
|
||||
attr = GetModel(SleepReportModel()).obs;
|
||||
}
|
||||
}
|
||||
15
lib/controller/sleep/sleep_report_controller.g.dart
Normal file
15
lib/controller/sleep/sleep_report_controller.g.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'sleep_report_controller.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
SleepReportModel _$SleepReportModelFromJson(Map<String, dynamic> json) =>
|
||||
SleepReportModel()..type = (json['type'] as num?)?.toInt();
|
||||
|
||||
Map<String, dynamic> _$SleepReportModelToJson(SleepReportModel instance) =>
|
||||
<String, dynamic>{
|
||||
'type': instance.type,
|
||||
};
|
||||
Reference in New Issue
Block a user