Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -22,6 +22,11 @@ class MainPageBBottomChange extends StatefulWidget {
|
||||
}
|
||||
}
|
||||
|
||||
static int? getCurrentIndex() {
|
||||
final state = globalKey.currentState;
|
||||
return state?.selectedIndex;
|
||||
}
|
||||
|
||||
@override
|
||||
_HomePageState createState() => _HomePageState();
|
||||
}
|
||||
@@ -129,15 +134,13 @@ class _HomePageState extends State<MainPageBBottomChange>
|
||||
selectedIndex = index;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Future<void> dealWebSource(int index) async {
|
||||
WebviewTestController webviewTestController = Get.find();
|
||||
if (index == 2) {
|
||||
await webviewTestController.web.jsbridge?.dart
|
||||
.pageActive();
|
||||
}else{
|
||||
await webviewTestController.web.jsbridge?.dart
|
||||
.pageInActive();
|
||||
}
|
||||
await webviewTestController.web.jsbridge?.dart.pageActive();
|
||||
} else {
|
||||
await webviewTestController.web.jsbridge?.dart.pageInActive();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:flutter_switch/flutter_switch.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
||||
|
||||
class MattressControlPage extends StatefulWidget {
|
||||
|
||||
@@ -507,7 +507,7 @@ class _DeviceComponentWidgetState extends State<DeviceComponentWidget> {
|
||||
|
||||
blueteethBindController.blueConnectFlag.value = 2;
|
||||
blueteethBindController.currentDevice = bledevice;
|
||||
await Future.delayed(Duration(seconds: 1));
|
||||
await Future.delayed(Duration(seconds: 2));
|
||||
var read = bledevice.getresource('fff0/fff1');
|
||||
await read!.characteristic.setNotifyValue(true);
|
||||
var write = bledevice.getresource('fff0/fff2');
|
||||
|
||||
@@ -560,4 +560,79 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
//开启定时器
|
||||
void startTimer(args) {
|
||||
var tmp = args[0];
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_setting;
|
||||
String type = "control_${tmp['mac']}";
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
var data = {
|
||||
"type": type,
|
||||
"duration": tmp['duration'],
|
||||
"mac": tmp['mac'],
|
||||
"time": tmp['startTime'],
|
||||
};
|
||||
requestWithLog(
|
||||
logTitle: "更新控制倒计时",
|
||||
method: MyHttpMethod.put,
|
||||
queryUrl: queryUrl,
|
||||
data: data,
|
||||
onSuccess: (res) {});
|
||||
}
|
||||
|
||||
//关闭定时器
|
||||
void cancelTimer(args) {
|
||||
var tmp = args[0];
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_setting;
|
||||
String type = "control_${tmp['mac']}";
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
var data = {
|
||||
"type": type,
|
||||
"duration": 0,
|
||||
"mac": tmp['mac'],
|
||||
"time": tmp['startTime'],
|
||||
};
|
||||
requestWithLog(
|
||||
logTitle: "查询控制倒计时",
|
||||
method: MyHttpMethod.put,
|
||||
queryUrl: queryUrl,
|
||||
data: data,
|
||||
onSuccess: (res) {});
|
||||
}
|
||||
|
||||
//恢复
|
||||
restoreTimer(args) async {
|
||||
var data = {};
|
||||
try {
|
||||
var tmp = args[0];
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_setting;
|
||||
String type = "control_${tmp}";
|
||||
String queryUrl =
|
||||
"${serviceAddress}${serviceName}${serviceApi}?type=$type";
|
||||
await requestWithLog(
|
||||
logTitle: "查询控制倒计时",
|
||||
method: MyHttpMethod.get,
|
||||
queryUrl: queryUrl,
|
||||
onSuccess: (res) {
|
||||
if (res.data != null) {
|
||||
data = res.data;
|
||||
}
|
||||
},
|
||||
onFailure: (res) {
|
||||
data = {};
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
ef.log("$e");
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,6 +271,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
'backgroundImg':
|
||||
'assets/images/new_background.png',
|
||||
'arrow': false,
|
||||
'noBackImg':true,
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -372,7 +372,7 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
MediaQuery.sizeOf(context).height *
|
||||
0.184,
|
||||
constraints: BoxConstraints(
|
||||
minHeight: 350.rpx,
|
||||
minHeight: 354.rpx,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: stringToColor("#003058"),
|
||||
@@ -385,8 +385,8 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(
|
||||
30.rpx,
|
||||
16.rpx,
|
||||
20.rpx,
|
||||
20.rpx,
|
||||
16.rpx,
|
||||
25.rpx),
|
||||
child: Container(
|
||||
@@ -522,7 +522,6 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
isMultiSelect: false,
|
||||
),
|
||||
),
|
||||
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
@@ -827,10 +826,15 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.add,
|
||||
size: 60.rpx,
|
||||
color: stringToColor("#85F5FF"),
|
||||
// Icon(
|
||||
// Icons.add,
|
||||
// size: 60.rpx,
|
||||
// color: stringToColor("#85F5FF"),
|
||||
// ),
|
||||
SvgPicture.asset(
|
||||
'assets/images/icon/add.svg',
|
||||
width: 42.rpx,
|
||||
height: 42.rpx,
|
||||
),
|
||||
SizedBox(width: 20.rpx),
|
||||
Text(
|
||||
|
||||
@@ -118,7 +118,24 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
|
||||
// bluetooth = args[0];
|
||||
return instantData;
|
||||
});
|
||||
|
||||
bridge.sdk.startTimer((args) async {
|
||||
ef.log('queryInstantData: $args');
|
||||
MHTHomeController homeController = Get.find();
|
||||
homeController.startTimer(args);
|
||||
return true;
|
||||
});
|
||||
bridge.sdk.cancelTimer((args) async {
|
||||
ef.log('queryInstantData: $args');
|
||||
MHTHomeController homeController = Get.find();
|
||||
homeController.cancelTimer(args);
|
||||
return true;
|
||||
});
|
||||
bridge.sdk.restoreTimer((args) async {
|
||||
ef.log('queryInstantData: $args');
|
||||
MHTHomeController homeController = Get.find();
|
||||
var data = await homeController.restoreTimer(args);
|
||||
return data;
|
||||
});
|
||||
});
|
||||
web
|
||||
//.file(
|
||||
@@ -180,7 +197,6 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
|
||||
} else {
|
||||
print("未知数据格式");
|
||||
}
|
||||
print("aaa");
|
||||
if (tmp['data'] != null && tmp['data'] is Map) {
|
||||
var newData = tmp['data'];
|
||||
var mac = newData['mac'];
|
||||
|
||||
@@ -13,6 +13,7 @@ import 'package:vbvs_app/controller/home/home_controller.dart';
|
||||
import 'package:vbvs_app/controller/sleep/sleep_report_controller.dart';
|
||||
import 'package:vbvs_app/language/AppLanguage.dart';
|
||||
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||
import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart';
|
||||
import 'package:vbvs_app/pages/sleep_report/component/AIAdviceWidget.dart';
|
||||
import 'package:vbvs_app/pages/sleep_report/component/BreatheCard.dart';
|
||||
import 'package:vbvs_app/pages/sleep_report/component/BreathePauseNewWidget.dart';
|
||||
@@ -91,8 +92,16 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
|
||||
_scrollToTargetComponent(sleepReportController.sleepReport);
|
||||
},
|
||||
onFailure: (res) {
|
||||
TopSlideNotification.show(context,
|
||||
text: res.msg!, textColor: themeController.currentColor.sc9);
|
||||
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);
|
||||
@@ -149,15 +158,28 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
onTap: () => FocusScope.of(context).unfocus(),
|
||||
child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: (widget.data['backgroundImg'] != null &&
|
||||
// widget.data['backgroundImg'].toString().isNotEmpty)
|
||||
// ? AssetImage(widget.data['backgroundImg'])
|
||||
// : AssetImage('assets/img/bgNoImg.png') as ImageProvider,
|
||||
// fit: BoxFit.fill,
|
||||
// ),
|
||||
// ),
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: (widget.data['backgroundImg'] != null &&
|
||||
widget.data['backgroundImg'].toString().isNotEmpty)
|
||||
? AssetImage(widget.data['backgroundImg'])
|
||||
: AssetImage('assets/img/bgNoImg.png') as ImageProvider,
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
image: (widget.data['noBackImg'] != null &&
|
||||
widget.data['noBackImg'] == true)
|
||||
? null // ✅ 不要背景图
|
||||
: DecorationImage(
|
||||
image: (widget.data['backgroundImg'] != null &&
|
||||
widget.data['backgroundImg'].toString().isNotEmpty)
|
||||
? AssetImage(widget.data['backgroundImg'])
|
||||
: AssetImage('assets/img/bgNoImg.png') as ImageProvider,
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 背景透明
|
||||
appBar: AppBar(
|
||||
|
||||
Reference in New Issue
Block a user