Merge branch 'master' of http://git.it.real.he-info.cn:90/r/~enchantedwyf/vbvs_app
This commit is contained in:
@@ -2,9 +2,12 @@ import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
||||
|
||||
class HomeDeviceStausWidget extends StatefulWidget {
|
||||
final deviceStatus;
|
||||
@@ -72,9 +75,22 @@ class _HomeDeviceStausWidgetState extends State<HomeDeviceStausWidget> {
|
||||
CustomCard(
|
||||
gradientDirection: GradientDirection.vertical,
|
||||
borderRadius: 10.rpx,
|
||||
onTap: () {
|
||||
// 点击回调逻辑放这里
|
||||
TopSlideNotification.show(context,text: "功能开发中...".tr);
|
||||
onTap: () async {
|
||||
try {
|
||||
var device = widget.deviceStatus;
|
||||
WebviewTestController webviewTestController = Get.find();
|
||||
var future = webviewTestController.web.jsbridge?.dart
|
||||
.appToHtmlDevice(device);
|
||||
Future.delayed(Duration(seconds: 5), () {
|
||||
return;
|
||||
});
|
||||
await future;
|
||||
await webviewTestController.web.jsbridge?.dart
|
||||
.pageActive();
|
||||
MainPageBBottomChange.jumpTo(2);
|
||||
} catch (e) {
|
||||
DailyLogUtils.writeError("发生异常: $e");
|
||||
}
|
||||
},
|
||||
colors:
|
||||
AppConstants().mhtButtongradientColors, // 你原本没有渐变,单色即可
|
||||
|
||||
@@ -39,6 +39,7 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
|
||||
|
||||
RxInt bindDeviceNum = 0.obs; //设备数量
|
||||
RxMap deviceList = {}.obs; //设备列表
|
||||
RxList deviceListForWeb = [].obs; //h5设备列表
|
||||
RxMap<String, List<dynamic>> sleepReportData =
|
||||
<String, List<dynamic>>{}.obs; //睡眠报告
|
||||
RxList personnelList = [].obs; //人员信息列表
|
||||
@@ -49,12 +50,13 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
|
||||
var sleepDays = [].obs;
|
||||
var homeSleepDays = [].obs;
|
||||
|
||||
|
||||
var selectedDayIndex = (6).obs;
|
||||
|
||||
var selectDevcie = ''.obs;
|
||||
var selectPerson = {}.obs;
|
||||
|
||||
bool initDeviceFlag = false;
|
||||
|
||||
Future<ApiResponse> getDeviceNum() async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "设备.设备列表请求失败".tr);
|
||||
@@ -159,6 +161,68 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
|
||||
return ApiResponse(code: -1, msg: "未知错误".tr); // Default return statement
|
||||
}
|
||||
|
||||
Future<ApiResponse> getDeviceListForWeb(
|
||||
{String? key, String? group, int? bindType}) async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "设备.设备列表请求失败".tr);
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.device_list;
|
||||
|
||||
// 初始URL
|
||||
String queryUrl = "$serviceAddress$serviceName$serviceApi";
|
||||
|
||||
// 用Map统一管理query参数
|
||||
Map<String, String> queryParams = {};
|
||||
|
||||
if (key != null && key.isNotEmpty) {
|
||||
queryParams['key'] = key;
|
||||
}
|
||||
|
||||
if (group != null && group.isNotEmpty) {
|
||||
queryParams['group'] = group;
|
||||
}
|
||||
|
||||
if (bindType != null) {
|
||||
queryParams['bindType'] = bindType.toString();
|
||||
}
|
||||
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
queryParams['lang'] = language;
|
||||
}
|
||||
|
||||
// 拼接完整URL
|
||||
if (queryParams.isNotEmpty) {
|
||||
queryUrl += '?' + Uri(queryParameters: queryParams).query;
|
||||
}
|
||||
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData =
|
||||
response.data is String ? jsonDecode(response.data) : response.data;
|
||||
ApiResponse res =
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(res, "设备.设备列表请求成功".tr, "设备.设备列表请求失败".tr);
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
deviceListForWeb.value = res.data!;
|
||||
updateAll();
|
||||
return res;
|
||||
}
|
||||
} else {
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
return apiResponse;
|
||||
} catch (e) {
|
||||
EasyDartModule.logger.info("设备请求列表: $e");
|
||||
DailyLogUtils.writeLog("设备请求列表: $e");
|
||||
}
|
||||
return ApiResponse(code: -1, msg: "未知错误".tr); // Default return statement
|
||||
}
|
||||
|
||||
Future<ApiResponse> deleteDevice(Map<String, dynamic> device) async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);
|
||||
@@ -428,6 +492,7 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> getHomeSleeps(String? mac) async {
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
@@ -495,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,6 +273,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
||||
'backgroundImg':
|
||||
'assets/images/new_background.png',
|
||||
'arrow': false,
|
||||
'noBackImg':true,
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -115,6 +115,39 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
// deviceController.getSleepReport();
|
||||
}
|
||||
});
|
||||
if (userInfoController.model.login == 1) {
|
||||
//查询人员信息列表
|
||||
deviceController.getPersonList();
|
||||
//请求绑定设备列表
|
||||
// homeController.getSleepReport();
|
||||
deviceController.getDeviceNum().then((apiResponse) {
|
||||
if (apiResponse.code != HttpStatusCodes.ok) {
|
||||
TopSlideNotification.show(
|
||||
Get.context!,
|
||||
text: apiResponse.msg!,
|
||||
textColor: themeController.currentColor.sc9,
|
||||
);
|
||||
}
|
||||
});
|
||||
deviceController.getDeviceList(group: 'room').then((apiResponse) {
|
||||
if (apiResponse.code != HttpStatusCodes.ok) {
|
||||
TopSlideNotification.show(
|
||||
Get.context!,
|
||||
text: apiResponse.msg!,
|
||||
textColor: themeController.currentColor.sc9,
|
||||
);
|
||||
} else {
|
||||
//请求睡眠报告
|
||||
// deviceController.getSleepReport();
|
||||
}
|
||||
});
|
||||
}
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (homeController.homeSleepDays.value.isNotEmpty) {
|
||||
homeController.selectedDayIndex.value =
|
||||
homeController.homeSleepDays.value.length - 1;
|
||||
}
|
||||
});
|
||||
int login = userInfoController.model.login!;
|
||||
return GestureDetector(
|
||||
onTap: () => FocusScope.of(context).unfocus(),
|
||||
@@ -138,7 +171,14 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
children: [
|
||||
// 左侧头像
|
||||
Obx(() {
|
||||
return userInfo(userInfoController.model.login);
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
if (userInfoController.model.login == 0) {
|
||||
Get.toNamed("/loginPage");
|
||||
}
|
||||
},
|
||||
child: userInfo(userInfoController.model.login),
|
||||
);
|
||||
}),
|
||||
const Spacer(), // 左右分隔
|
||||
FloatingSvgIcon(
|
||||
@@ -332,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"),
|
||||
@@ -345,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(
|
||||
@@ -786,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(
|
||||
|
||||
Reference in New Issue
Block a user