主页睡眠信息点击跳转页面修改
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.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/pages/main_bottom/component/main_page_b_bottom_change.dart';
|
||||
|
||||
part 'sleep_report_controller.g.dart'; // 由json_serializable自动生成的部分
|
||||
|
||||
@@ -28,10 +34,58 @@ class SleepReportController extends GetControllerEx<SleepReportModel> {
|
||||
Rx<DateTime?> selectedDate = Rx<DateTime?>(null);
|
||||
RxMap<String, dynamic> sleepReport = <String, dynamic>{}.obs;
|
||||
RxBool isLoading = false.obs;
|
||||
// 下拉框的设备 mac
|
||||
RxString mac = "".obs;
|
||||
|
||||
// 日历选择的日期
|
||||
RxInt date = 0.obs;
|
||||
|
||||
// 初始化方法(外部跳转时调用)
|
||||
void initParams({String? macValue, int? dateValue}) {
|
||||
if (macValue != null) mac.value = macValue;
|
||||
if (dateValue != null) {
|
||||
date.value = dateValue;
|
||||
}
|
||||
}
|
||||
|
||||
// 每种类型对应一份数据
|
||||
|
||||
SleepReportController() {
|
||||
attr = GetModel(SleepReportModel()).obs;
|
||||
}
|
||||
|
||||
void loadSleepReport(String data, String mac, BuildContext context) async {
|
||||
isLoading.value = true;
|
||||
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.sleep_report;
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi?mac=${mac}&time=${data}&type=1&sleepType=2";
|
||||
await requestWithLog(
|
||||
logTitle: "查询睡眠报告",
|
||||
method: MyHttpMethod.get,
|
||||
queryUrl: queryUrl,
|
||||
onSuccess: (res) {
|
||||
isLoading.value = false;
|
||||
print(res);
|
||||
sleepReport.value = res.data;
|
||||
updateAll();
|
||||
},
|
||||
onFailure: (res) {
|
||||
isLoading.value = false;
|
||||
if (MainPageBBottomChange.getCurrentIndex() != null) {
|
||||
if (MainPageBBottomChange.getCurrentIndex() == 1) {
|
||||
TopSlideNotification.show(context,
|
||||
text: res.msg!, textColor: themeController.currentColor.sc9);
|
||||
}
|
||||
} else {
|
||||
TopSlideNotification.show(context,
|
||||
text: res.msg!, textColor: themeController.currentColor.sc9);
|
||||
}
|
||||
sleepReport.value = {};
|
||||
updateAll();
|
||||
print(res);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,6 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
final RxBool isRightLimit = false.obs;
|
||||
var formFieldController = FormFieldController<String>(null);
|
||||
var personInfo = {}.obs;
|
||||
Rx<bool> isLoading = false.obs;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -50,11 +49,9 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
//查询人员信息列表
|
||||
deviceController.getPersonList();
|
||||
}
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
final selected = DateTime.fromMillisecondsSinceEpoch(
|
||||
var selected = DateTime.fromMillisecondsSinceEpoch(
|
||||
DateTime.now().millisecondsSinceEpoch);
|
||||
|
||||
calendarController.selectedDate.value = selected;
|
||||
sleepReportController.selectedDate.value = selected;
|
||||
sleepReportController.model.type = 1;
|
||||
@@ -239,18 +236,30 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
if (userInfoController.model.login! != null &&
|
||||
userInfoController.model.login! == 1 &&
|
||||
deviceController.personnelList.value.isNotEmpty) {
|
||||
final list = deviceController.personnelList.value;
|
||||
if (list.isNotEmpty) {
|
||||
if (sleepReportController.mac.value != "") {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
formFieldController.value = list[0]["mac"];
|
||||
personInfo.value = list[0];
|
||||
homeController.selectPerson.value = list[0];
|
||||
formFieldController.value =
|
||||
sleepReportController.mac.value;
|
||||
homeController.selectDevcie.value =
|
||||
list[0]["mac"];
|
||||
sleepReportController.mac.value;
|
||||
deviceController
|
||||
.getSleeps(formFieldController.value);
|
||||
homeController.updateAll();
|
||||
});
|
||||
} else {
|
||||
final list = deviceController.personnelList.value;
|
||||
if (list.isNotEmpty) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
formFieldController.value = list[0]["mac"];
|
||||
personInfo.value = list[0];
|
||||
homeController.selectPerson.value = list[0];
|
||||
homeController.selectDevcie.value =
|
||||
list[0]["mac"];
|
||||
deviceController
|
||||
.getSleeps(formFieldController.value);
|
||||
homeController.updateAll();
|
||||
});
|
||||
}
|
||||
}
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
@@ -365,7 +374,13 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
calendarController
|
||||
.selectedDate
|
||||
.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController
|
||||
.loadSleepReport(
|
||||
data,
|
||||
homeController
|
||||
.selectDevcie
|
||||
.value,
|
||||
context);
|
||||
homeController
|
||||
.updateAll();
|
||||
}
|
||||
@@ -445,7 +460,12 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
calendarController
|
||||
.selectedDate
|
||||
.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController
|
||||
.loadSleepReport(
|
||||
data,
|
||||
homeController
|
||||
.selectDevcie.value,
|
||||
context);
|
||||
sleepReportController
|
||||
.updateAll();
|
||||
calendarController.updateAll();
|
||||
@@ -497,7 +517,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
height: 30.rpx,
|
||||
),
|
||||
getTimeWidget(), // 始终显示
|
||||
isLoading.value
|
||||
sleepReportController.isLoading.value
|
||||
? Padding(
|
||||
padding: EdgeInsets.fromLTRB(
|
||||
0, 30.rpx, 0, 0),
|
||||
@@ -531,7 +551,13 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
calendarController
|
||||
.selectedDate
|
||||
.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController
|
||||
.loadSleepReport(
|
||||
data,
|
||||
homeController
|
||||
.selectDevcie
|
||||
.value,
|
||||
context);
|
||||
},
|
||||
),
|
||||
SizedBox(height: 25.rpx),
|
||||
@@ -546,7 +572,13 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
calendarController
|
||||
.selectedDate
|
||||
.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController
|
||||
.loadSleepReport(
|
||||
data,
|
||||
homeController
|
||||
.selectDevcie
|
||||
.value,
|
||||
context);
|
||||
},
|
||||
),
|
||||
],
|
||||
@@ -569,7 +601,13 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
}
|
||||
|
||||
Widget getTimeWidget() {
|
||||
selectedDate = sleepReportController.selectedDate.value!;
|
||||
if (sleepReportController.date.value > 0) {
|
||||
selectedDate =
|
||||
DateTime.fromMillisecondsSinceEpoch(sleepReportController.date.value);
|
||||
} else {
|
||||
selectedDate = sleepReportController.selectedDate.value!;
|
||||
}
|
||||
|
||||
final type = sleepReportController.model.type;
|
||||
bool isChinese = AppLanguage().isChinese();
|
||||
String displayText = '';
|
||||
@@ -591,7 +629,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
sleepReportController.selectedDate.value;
|
||||
// String date = MyUtils.formatToDate(widget.data['date']);
|
||||
String data = MyUtils.formatDate(calendarController.selectedDate.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController.loadSleepReport(
|
||||
data, homeController.selectDevcie.value, context);
|
||||
sleepReportController.updateAll();
|
||||
calendarController.updateAll();
|
||||
}
|
||||
@@ -612,7 +651,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
calendarController.selectedDate.value = targetDate;
|
||||
|
||||
String data = MyUtils.formatDate(targetDate);
|
||||
loadSleepReport(data);
|
||||
sleepReportController.loadSleepReport(
|
||||
data, homeController.selectDevcie.value, context);
|
||||
|
||||
sleepReportController.updateAll();
|
||||
calendarController.updateAll();
|
||||
@@ -626,7 +666,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
sleepReportController.selectedDate.value;
|
||||
// String date = MyUtils.formatToDate(widget.data['date']);
|
||||
String data = MyUtils.formatDate(calendarController.selectedDate.value!);
|
||||
loadSleepReport(data);
|
||||
sleepReportController.loadSleepReport(
|
||||
data, homeController.selectDevcie.value, context);
|
||||
|
||||
sleepReportController.updateAll();
|
||||
calendarController.updateAll();
|
||||
@@ -683,42 +724,6 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
);
|
||||
}
|
||||
|
||||
void loadSleepReport(String data) {
|
||||
isLoading.value = true;
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.sleep_report;
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi?mac=${homeController.selectDevcie.value}&time=${data}&type=1&sleepType=2";
|
||||
requestWithLog(
|
||||
logTitle: "查询睡眠报告",
|
||||
method: MyHttpMethod.get,
|
||||
// queryUrl:
|
||||
// "https://sleepdata.he-info.com/api/analysis/sleep/analysis?mac=${homeController.selectDevcie.value}&time=${data}&type=1",
|
||||
queryUrl: queryUrl,
|
||||
onSuccess: (res) {
|
||||
isLoading.value = false;
|
||||
print(res);
|
||||
sleepReportController.sleepReport.value = res.data;
|
||||
sleepReportController.updateAll();
|
||||
},
|
||||
onFailure: (res) {
|
||||
isLoading.value = false;
|
||||
if (MainPageBBottomChange.getCurrentIndex() != null) {
|
||||
if (MainPageBBottomChange.getCurrentIndex() == 1) {
|
||||
TopSlideNotification.show(context,
|
||||
text: res.msg!, textColor: themeController.currentColor.sc9);
|
||||
}
|
||||
} else {
|
||||
TopSlideNotification.show(context,
|
||||
text: res.msg!, textColor: themeController.currentColor.sc9);
|
||||
}
|
||||
sleepReportController.sleepReport.value = {};
|
||||
sleepReportController.updateAll();
|
||||
print(res);
|
||||
});
|
||||
}
|
||||
|
||||
static String _getEnglishMonthName(int month) {
|
||||
const monthNames = [
|
||||
'January',
|
||||
|
||||
@@ -11,9 +11,11 @@ import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/JPushUtil.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/controller/sleep/sleep_report_controller.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/controller/weather/weather_controller.dart';
|
||||
import 'package:vbvs_app/enum/APPPackageType.dart';
|
||||
import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/component/mht_bind_dialog.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceWidget.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||||
@@ -25,6 +27,7 @@ class NewHomePage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _NewHomePageState extends State<NewHomePage> {
|
||||
SleepReportController sleepReportController = Get.find();
|
||||
UserInfoController userInfoController = Get.find();
|
||||
MHTHomeController deviceController = Get.find();
|
||||
MHTHomeController homeController = Get.find();
|
||||
@@ -558,35 +561,43 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
if (formFieldController
|
||||
.value !=
|
||||
null) {
|
||||
Get.toNamed(
|
||||
"/newSleepReportPage",
|
||||
arguments: {
|
||||
'mac':
|
||||
// Get.toNamed(
|
||||
// "/newSleepReportPage",
|
||||
// arguments: {
|
||||
// 'mac':
|
||||
// formFieldController
|
||||
// .value!,
|
||||
// 'type': 1,
|
||||
// "person":
|
||||
// personInfo.value,
|
||||
// 'backgroundImg':
|
||||
// 'assets/images/new_background.png',
|
||||
// 'date': DateTime.now()
|
||||
// .millisecondsSinceEpoch,
|
||||
// 'person_show': false,
|
||||
// 'reportPadding': false,
|
||||
// },
|
||||
// );
|
||||
sleepReportController
|
||||
.initParams(
|
||||
macValue:
|
||||
formFieldController
|
||||
.value!,
|
||||
dateValue: DateTime.now()
|
||||
.millisecondsSinceEpoch,
|
||||
);
|
||||
sleepReportController
|
||||
.sleepReport.value = {};
|
||||
sleepReportController
|
||||
.loadSleepReport(
|
||||
MyUtils.formatDate(
|
||||
DateTime.now()),
|
||||
formFieldController
|
||||
.value!,
|
||||
'type': 1,
|
||||
"person":
|
||||
personInfo.value,
|
||||
'backgroundImg':
|
||||
'assets/images/new_background.png',
|
||||
'date': DateTime.now()
|
||||
.millisecondsSinceEpoch,
|
||||
'person_show': false,
|
||||
'reportPadding': false,
|
||||
},
|
||||
);
|
||||
// 保存当前选中的mac到全局状态
|
||||
// homeController.selectDevcie
|
||||
// .value =
|
||||
// formFieldController
|
||||
// .value!;
|
||||
// homeController.selectPerson
|
||||
// .value =
|
||||
// personInfo.value;
|
||||
|
||||
// // 使用底部tab跳转到第二个页面
|
||||
// MainPageBBottomChange
|
||||
// .jumpTo(1);
|
||||
context);
|
||||
// 切换导航栏到报告页
|
||||
MainPageBBottomChange
|
||||
.jumpTo(1);
|
||||
}
|
||||
},
|
||||
child: Row(
|
||||
@@ -670,27 +681,49 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
int? timeMillis =
|
||||
parseToInt(
|
||||
day['time']);
|
||||
Get.toNamed(
|
||||
"/newSleepReportPage",
|
||||
arguments: {
|
||||
'date':
|
||||
timeMillis,
|
||||
'mac':
|
||||
formFieldController
|
||||
.value!,
|
||||
'type': 1,
|
||||
"person":
|
||||
personInfo
|
||||
.value,
|
||||
'backgroundImg':
|
||||
'assets/images/new_background.png',
|
||||
// 'backgroundColor':stringToColor("#003058"),
|
||||
'person_show':
|
||||
false,
|
||||
'reportPadding':
|
||||
false,
|
||||
},
|
||||
// Get.toNamed(
|
||||
// "/newSleepReportPage",
|
||||
// arguments: {
|
||||
// 'date':
|
||||
// timeMillis,
|
||||
// 'mac':
|
||||
// formFieldController
|
||||
// .value!,
|
||||
// 'type': 1,
|
||||
// "person":
|
||||
// personInfo
|
||||
// .value,
|
||||
// 'backgroundImg':
|
||||
// 'assets/images/new_background.png',
|
||||
// // 'backgroundColor':stringToColor("#003058"),
|
||||
// 'person_show':
|
||||
// false,
|
||||
// 'reportPadding':
|
||||
// false,
|
||||
// }
|
||||
// //主页跳详情睡眠报告
|
||||
// );
|
||||
sleepReportController
|
||||
.initParams(
|
||||
macValue:
|
||||
formFieldController
|
||||
.value!,
|
||||
dateValue:
|
||||
timeMillis,
|
||||
);
|
||||
sleepReportController
|
||||
.sleepReport
|
||||
.value = {};
|
||||
sleepReportController.loadSleepReport(
|
||||
MyUtils.formatDate(
|
||||
DateTime.fromMillisecondsSinceEpoch(
|
||||
timeMillis!)),
|
||||
formFieldController
|
||||
.value!,
|
||||
context);
|
||||
// 切换导航栏到报告页
|
||||
MainPageBBottomChange
|
||||
.jumpTo(1);
|
||||
},
|
||||
child: Container(
|
||||
padding:
|
||||
@@ -997,7 +1030,7 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
if (value is String) return int.tryParse(value);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
void _onReady() {
|
||||
// 页面渲染完成后执行的逻辑,比如处理通知跳转
|
||||
_handlePendingRoute();
|
||||
|
||||
Reference in New Issue
Block a user