更新同步遥控器

This commit is contained in:
wyf
2025-06-30 21:56:15 +08:00
parent 0e0f475536
commit adaaf561ee
8 changed files with 148 additions and 29 deletions

View File

@@ -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();
}
}
}

View File

@@ -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 {

View File

@@ -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');

View File

@@ -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;
}
}

View File

@@ -271,6 +271,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
'backgroundImg':
'assets/images/new_background.png',
'arrow': false,
'noBackImg':true,
},
),
);

View File

@@ -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(

View File

@@ -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'];

View File

@@ -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(