更新睡眠报告页面和控制页面无设备的显示
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
[
|
[
|
||||||
"assets/miniapp/mhtControl_1.0.35.zip"
|
"assets/miniapp/mhtControl_1.0.40.zip"
|
||||||
]
|
]
|
||||||
Binary file not shown.
Binary file not shown.
@@ -16,6 +16,7 @@ import 'package:vbvs_app/controller/message/message_controller.dart';
|
|||||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
import 'package:vbvs_app/model/user_data.dart';
|
import 'package:vbvs_app/model/user_data.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||||||
|
|
||||||
part 'user_info_controller.g.dart';
|
part 'user_info_controller.g.dart';
|
||||||
|
|
||||||
@@ -224,6 +225,7 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ApiResponse logOut() {
|
ApiResponse logOut() {
|
||||||
|
MHTHomeController mhtHomeController = Get.find();
|
||||||
ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr);
|
ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr);
|
||||||
EasyDartModule.logger.info("退出登录");
|
EasyDartModule.logger.info("退出登录");
|
||||||
DailyLogUtils.writeLog("退出登录");
|
DailyLogUtils.writeLog("退出登录");
|
||||||
@@ -244,6 +246,7 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
|||||||
messageController.model.system_message_read = 0;
|
messageController.model.system_message_read = 0;
|
||||||
CountdownController countdownController = Get.find();
|
CountdownController countdownController = Get.find();
|
||||||
countdownController.countdown.value = 0;
|
countdownController.countdown.value = 0;
|
||||||
|
mhtHomeController.personnelList.value = [];
|
||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:flutter_svg/svg.dart';
|
|||||||
import 'package:flutter_switch/flutter_switch.dart';
|
import 'package:flutter_switch/flutter_switch.dart';
|
||||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
||||||
|
|
||||||
class MattressControlPage extends StatefulWidget {
|
class MattressControlPage extends StatefulWidget {
|
||||||
@@ -18,21 +19,27 @@ class MattressControlPage extends StatefulWidget {
|
|||||||
class _MattressControlPageState extends State<MattressControlPage> {
|
class _MattressControlPageState extends State<MattressControlPage> {
|
||||||
final controller = Get.put(ControlCardController());
|
final controller = Get.put(ControlCardController());
|
||||||
UserInfoController userInfoController = Get.find();
|
UserInfoController userInfoController = Get.find();
|
||||||
|
MHTHomeController deviceController = Get.find();
|
||||||
|
|
||||||
int selectedIndex = 1; // 当前选中的tab索引
|
int selectedIndex = 1; // 当前选中的tab索引
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final isLoggedIn = userInfoController.model.login == 1;
|
|
||||||
final backgroundImage = isLoggedIn
|
|
||||||
? 'assets/images/new_background.png'
|
|
||||||
: 'assets/images/noLoginControl.png';
|
|
||||||
|
|
||||||
return LayoutBuilder(
|
return LayoutBuilder(
|
||||||
builder: (context, bodySize) => GestureDetector(
|
builder: (context, bodySize) => GestureDetector(
|
||||||
child: Stack(
|
child: Obx(() {
|
||||||
|
final isLoggedIn = userInfoController.model.login == 1;
|
||||||
|
final hasDevice = deviceController.deviceList.values.isNotEmpty;
|
||||||
|
|
||||||
|
final showNoLoginView = !isLoggedIn || !hasDevice;
|
||||||
|
|
||||||
|
final backgroundImage = showNoLoginView
|
||||||
|
? 'assets/images/noLoginControl.png'
|
||||||
|
: 'assets/images/new_background.png';
|
||||||
|
|
||||||
|
return Stack(
|
||||||
children: [
|
children: [
|
||||||
// Background Image
|
// 背景图片
|
||||||
Container(
|
Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
@@ -41,9 +48,8 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
// 遮罩层:未登录或无设备时显示
|
||||||
// Blur overlay when not logged in
|
if (showNoLoginView)
|
||||||
if (!isLoggedIn)
|
|
||||||
Positioned.fill(
|
Positioned.fill(
|
||||||
child: BackdropFilter(
|
child: BackdropFilter(
|
||||||
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
|
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
|
||||||
@@ -53,7 +59,7 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
// Main Content
|
// 主内容
|
||||||
Scaffold(
|
Scaffold(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
@@ -61,7 +67,8 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
);
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,8 +213,8 @@ class _BluetoothPageState extends State<BluetoothPage> {
|
|||||||
"/mhtCalibrationAfterPage",
|
"/mhtCalibrationAfterPage",
|
||||||
arguments: obsData,
|
arguments: obsData,
|
||||||
),
|
),
|
||||||
_buildMenuButton(
|
_buildMenuButton(context, '体征传感器'.tr,
|
||||||
context, '体征传感器'.tr, "/vitalSignsSensorPage",
|
"/vitalSignsSensorPage",
|
||||||
arguments: obsData),
|
arguments: obsData),
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context,
|
context,
|
||||||
@@ -231,7 +231,9 @@ class _BluetoothPageState extends State<BluetoothPage> {
|
|||||||
if (!isBind) ...[
|
if (!isBind) ...[
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context,
|
context,
|
||||||
obsData['bind_type'] == 1 ? '解绑'.tr : '删除'.tr,
|
obsData['bind_type'] == 1
|
||||||
|
? '解绑'.tr
|
||||||
|
: '删除'.tr,
|
||||||
"",
|
"",
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
// await deviceListController
|
// await deviceListController
|
||||||
@@ -266,6 +268,8 @@ class _BluetoothPageState extends State<BluetoothPage> {
|
|||||||
Get.find();
|
Get.find();
|
||||||
homeController.selectDevcie.value =
|
homeController.selectDevcie.value =
|
||||||
"";
|
"";
|
||||||
|
await homeController
|
||||||
|
.getPersonList();
|
||||||
try {
|
try {
|
||||||
WebviewTestController
|
WebviewTestController
|
||||||
webviewTestController =
|
webviewTestController =
|
||||||
@@ -313,7 +317,9 @@ class _BluetoothPageState extends State<BluetoothPage> {
|
|||||||
if (isBind) ...[
|
if (isBind) ...[
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context,
|
context,
|
||||||
obsData['bind_type'] == 1 ? '解绑'.tr : '删除'.tr,
|
obsData['bind_type'] == 1
|
||||||
|
? '解绑'.tr
|
||||||
|
: '删除'.tr,
|
||||||
"",
|
"",
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (obsData['bind_type'] == 1) {
|
if (obsData['bind_type'] == 1) {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:flutterflow_ui/flutterflow_ui.dart';
|
|||||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||||||
import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart';
|
import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart';
|
||||||
@@ -56,28 +55,38 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
// Background Container
|
// Background Container
|
||||||
Container(
|
Obx(() {
|
||||||
|
return Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage((userInfoController.model.login! != null &&
|
image: AssetImage((userInfoController.model.login! != null &&
|
||||||
userInfoController.model.login! == 1)
|
userInfoController.model.login! == 1 &&
|
||||||
|
deviceController.personnelList.value.isNotEmpty)
|
||||||
? 'assets/images/new_background.png'
|
? 'assets/images/new_background.png'
|
||||||
: "assets/images/noLoginSleep.jpg"),
|
: "assets/images/noLoginSleep.jpg"),
|
||||||
fit: BoxFit.fill,
|
fit: BoxFit.fill,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
);
|
||||||
// Blur overlay when not logged in
|
}),
|
||||||
if (userInfoController.model.login == null ||
|
Obx(() {
|
||||||
userInfoController.model.login != 1)
|
bool showBlur = userInfoController.model.login == null ||
|
||||||
Positioned.fill(
|
userInfoController.model.login != 1 ||
|
||||||
|
(userInfoController.model.login == 1 &&
|
||||||
|
deviceController.personnelList.isEmpty);
|
||||||
|
|
||||||
|
return showBlur
|
||||||
|
? Positioned.fill(
|
||||||
child: BackdropFilter(
|
child: BackdropFilter(
|
||||||
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
|
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
|
||||||
child: Container(
|
child: Container(
|
||||||
color: Colors.black.withOpacity(0.5),
|
color: Colors.black.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
)
|
||||||
|
: const SizedBox.shrink(); // 不显示时返回空组件
|
||||||
|
}),
|
||||||
|
|
||||||
// Main content
|
// Main content
|
||||||
Scaffold(
|
Scaffold(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
@@ -85,14 +94,17 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
child: Container(
|
child: Container(
|
||||||
width: MediaQuery.sizeOf(context).width,
|
width: MediaQuery.sizeOf(context).width,
|
||||||
height: MediaQuery.sizeOf(context).height,
|
height: MediaQuery.sizeOf(context).height,
|
||||||
child: Column(
|
child: Obx(() {
|
||||||
|
return Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: (userInfoController.model.login! != null &&
|
mainAxisAlignment:
|
||||||
userInfoController.model.login! == 1)
|
(userInfoController.model.login! != null &&
|
||||||
|
userInfoController.model.login! == 1 &&
|
||||||
|
deviceController.personnelList.value.isNotEmpty)
|
||||||
? MainAxisAlignment.start
|
? MainAxisAlignment.start
|
||||||
: MainAxisAlignment.center,
|
: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
//未登录
|
//未登录或已登录但未绑定设备
|
||||||
Obx(() {
|
Obx(() {
|
||||||
if (userInfoController.model.login! == null ||
|
if (userInfoController.model.login! == null ||
|
||||||
userInfoController.model.login! == 0) {
|
userInfoController.model.login! == 0) {
|
||||||
@@ -143,26 +155,76 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
} else if (userInfoController.model.login == 1 &&
|
||||||
|
deviceController.personnelList.value.isEmpty) {
|
||||||
|
return Center(
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => Get.toNamed("/mHTDeviceTypePage"),
|
||||||
|
child: RichText(
|
||||||
|
text: TextSpan(
|
||||||
|
children: [
|
||||||
|
TextSpan(
|
||||||
|
text: "请先".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
WidgetSpan(
|
||||||
|
child: Stack(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"绑定设备".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: stringToColor("#84F5FF"),
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: Container(
|
||||||
|
height: 1,
|
||||||
|
color: stringToColor("#84F5FF"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
TextSpan(
|
||||||
|
text: "后,再查看睡眠报告".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return Container();
|
return Container();
|
||||||
}),
|
}),
|
||||||
//已登录
|
//已登录且已绑定设备
|
||||||
Obx(() {
|
Obx(() {
|
||||||
if (userInfoController.model.login! != null &&
|
if (userInfoController.model.login! != null &&
|
||||||
userInfoController.model.login! == 1) {
|
userInfoController.model.login! == 1 &&
|
||||||
|
deviceController.personnelList.value.isNotEmpty) {
|
||||||
final list = deviceController.personnelList.value;
|
final list = deviceController.personnelList.value;
|
||||||
if (list.isNotEmpty) {
|
if (list.isNotEmpty) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
formFieldController.value = list[0]["mac".tr];
|
formFieldController.value = list[0]["mac".tr];
|
||||||
personInfo.value = list[0];
|
personInfo.value = list[0];
|
||||||
homeController.selectPerson.value = list[0];
|
homeController.selectPerson.value = list[0];
|
||||||
homeController.selectDevcie.value = list[0]["mac".tr];
|
homeController.selectDevcie.value =
|
||||||
|
list[0]["mac".tr];
|
||||||
deviceController
|
deviceController
|
||||||
.getSleeps(formFieldController.value);
|
.getSleeps(formFieldController.value);
|
||||||
homeController.updateAll();
|
homeController.updateAll();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (homeController.personnelList.value.length != 0)
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(
|
padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
0.rpx, 40.rpx, 30.rpx, 10.rpx),
|
0.rpx, 40.rpx, 30.rpx, 10.rpx),
|
||||||
@@ -235,8 +297,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
deviceController
|
deviceController
|
||||||
.personnelList.value
|
.personnelList.value
|
||||||
.map<String>((d) {
|
.map<String>((d) {
|
||||||
var s =
|
var s = d["name"] ??
|
||||||
d["name"] ?? d["mac".tr];
|
d["mac".tr];
|
||||||
if (s == null) {
|
if (s == null) {
|
||||||
return "";
|
return "";
|
||||||
} else {
|
} else {
|
||||||
@@ -327,9 +389,6 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (userInfoController.model.login != null &&
|
|
||||||
userInfoController.model.login == 1)
|
|
||||||
return Expanded(child: NullDataWidget());
|
|
||||||
return Container();
|
return Container();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -355,7 +414,8 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
|
|||||||
return Container();
|
return Container();
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
),
|
);
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -178,7 +178,8 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
|
|||||||
ef.log('查询睡眠习惯: $args[0]');
|
ef.log('查询睡眠习惯: $args[0]');
|
||||||
try {
|
try {
|
||||||
MHTBlueToothController blueToothController = Get.find();
|
MHTBlueToothController blueToothController = Get.find();
|
||||||
var sleepData = await blueToothController.loadMattressTimeData(args[0]);
|
var sleepData =
|
||||||
|
await blueToothController.loadMattressTimeData(args[0]);
|
||||||
return sleepData['data'];
|
return sleepData['data'];
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
ef.log("[查询睡眠习惯失败]:$e");
|
ef.log("[查询睡眠习惯失败]:$e");
|
||||||
@@ -373,44 +374,133 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
|||||||
@override
|
@override
|
||||||
WebviewTestController newinstance() {
|
WebviewTestController newinstance() {
|
||||||
if (ef.kvRoot.WebviewTestController == null) {
|
if (ef.kvRoot.WebviewTestController == null) {
|
||||||
|
|
||||||
ef.kvRoot.WebviewTestController = WebviewTestController();
|
ef.kvRoot.WebviewTestController = WebviewTestController();
|
||||||
if (Get.isRegistered<WebviewTestController>() == false) {
|
if (Get.isRegistered<WebviewTestController>() == false) {
|
||||||
Get.put<WebviewTestController>(ef.kvRoot.WebviewTestController);
|
Get.put<WebviewTestController>(ef.kvRoot.WebviewTestController);
|
||||||
WebviewTestController webviewTestController = Get.find();
|
WebviewTestController webviewTestController = Get.find();
|
||||||
webviewTestController.global=true;
|
webviewTestController.global = true;
|
||||||
return webviewTestController;
|
return webviewTestController;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ef.kvRoot.WebviewTestController;
|
return ef.kvRoot.WebviewTestController;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @override
|
||||||
|
// Widget build(BuildContext context) {
|
||||||
|
// UserInfoController userInfoController = Get.find();
|
||||||
|
// MHTHomeController deviceController = Get.find();
|
||||||
|
// deviceController.getDeviceList().then((x) {
|
||||||
|
// if (controller.web.jsbridge!.inited) {
|
||||||
|
// //发送测试消息给webview
|
||||||
|
// // controller.web.jsbridge!.dart
|
||||||
|
// // .updateDeviceList(deviceController.deviceList.values);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// return Scaffold(
|
||||||
|
// backgroundColor: Colors.transparent,
|
||||||
|
// body: Column(
|
||||||
|
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
// mainAxisSize: MainAxisSize.max,
|
||||||
|
// mainAxisAlignment: (userInfoController.model.login! != null &&
|
||||||
|
// userInfoController.model.login! == 1)
|
||||||
|
// ? MainAxisAlignment.start
|
||||||
|
// : MainAxisAlignment.center,
|
||||||
|
// children: [
|
||||||
|
// Obx(() {
|
||||||
|
// return Visibility(
|
||||||
|
// visible: userInfoController.model.login! == null ||
|
||||||
|
// userInfoController.model.login! == 0,
|
||||||
|
// child: Center(
|
||||||
|
// child: InkWell(
|
||||||
|
// onTap: () => Get.toNamed("/loginPage"),
|
||||||
|
// child: RichText(
|
||||||
|
// text: TextSpan(
|
||||||
|
// children: [
|
||||||
|
// TextSpan(
|
||||||
|
// text: "请先".tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// color: Colors.white,
|
||||||
|
// fontSize: 30.rpx,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// WidgetSpan(
|
||||||
|
// child: Stack(
|
||||||
|
// children: [
|
||||||
|
// Text(
|
||||||
|
// "登录".tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// color: stringToColor("#84F5FF"),
|
||||||
|
// fontSize: 30.rpx,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// Positioned(
|
||||||
|
// bottom: 0, // 控制下划线与文字的间距
|
||||||
|
// left: 0,
|
||||||
|
// right: 0,
|
||||||
|
// child: Container(
|
||||||
|
// height: 1, // 下划线粗细
|
||||||
|
// color: stringToColor("#84F5FF"),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: "后,再进行设备控制".tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// color: Colors.white,
|
||||||
|
// fontSize: 30.rpx,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
// }),
|
||||||
|
// Obx(() {
|
||||||
|
// return Visibility(
|
||||||
|
// visible: userInfoController.model.login! != null &&
|
||||||
|
// userInfoController.model.login! == 1,
|
||||||
|
// child: Expanded(
|
||||||
|
// child: Align(
|
||||||
|
// alignment: Alignment.topLeft,
|
||||||
|
// child: Obx(() {
|
||||||
|
// return controller.ready.value
|
||||||
|
// ? controller.web.build()
|
||||||
|
// : Container();
|
||||||
|
// }),
|
||||||
|
// ),
|
||||||
|
// ));
|
||||||
|
// }),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
return Obx(() {
|
||||||
UserInfoController userInfoController = Get.find();
|
UserInfoController userInfoController = Get.find();
|
||||||
MHTHomeController deviceController = Get.find();
|
MHTHomeController deviceController = Get.find();
|
||||||
deviceController.getDeviceList().then((x) {
|
final isLoggedIn = userInfoController.model.login == 1;
|
||||||
if (controller.web.jsbridge!.inited) {
|
final hasDevice = deviceController.deviceList.values.isNotEmpty;
|
||||||
//发送测试消息给webview
|
|
||||||
// controller.web.jsbridge!.dart
|
final showWeb = isLoggedIn && hasDevice;
|
||||||
// .updateDeviceList(deviceController.deviceList.values);
|
final mainAxisAlignment =
|
||||||
}
|
showWeb ? MainAxisAlignment.start : MainAxisAlignment.center;
|
||||||
});
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
body: Column(
|
body: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: (userInfoController.model.login! != null &&
|
mainAxisAlignment: mainAxisAlignment,
|
||||||
userInfoController.model.login! == 1)
|
|
||||||
? MainAxisAlignment.start
|
|
||||||
: MainAxisAlignment.center,
|
|
||||||
children: [
|
children: [
|
||||||
Obx(() {
|
// 未登录提示
|
||||||
return Visibility(
|
if (!isLoggedIn)
|
||||||
visible: userInfoController.model.login! == null ||
|
Center(
|
||||||
userInfoController.model.login! == 0,
|
|
||||||
child: Center(
|
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => Get.toNamed("/loginPage"),
|
onTap: () => Get.toNamed("/loginPage"),
|
||||||
child: RichText(
|
child: RichText(
|
||||||
@@ -434,11 +524,11 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Positioned(
|
Positioned(
|
||||||
bottom: 0, // 控制下划线与文字的间距
|
bottom: 0,
|
||||||
left: 0,
|
left: 0,
|
||||||
right: 0,
|
right: 0,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 1, // 下划线粗细
|
height: 1,
|
||||||
color: stringToColor("#84F5FF"),
|
color: stringToColor("#84F5FF"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -457,13 +547,60 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
|
||||||
}),
|
// 已登录但无设备提示
|
||||||
Obx(() {
|
if (isLoggedIn && !hasDevice)
|
||||||
return Visibility(
|
Center(
|
||||||
visible: userInfoController.model.login! != null &&
|
child: InkWell(
|
||||||
userInfoController.model.login! == 1,
|
onTap: () => Get.toNamed("/mHTDeviceTypePage"),
|
||||||
child: Expanded(
|
child: RichText(
|
||||||
|
text: TextSpan(
|
||||||
|
children: [
|
||||||
|
TextSpan(
|
||||||
|
text: "请先".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
WidgetSpan(
|
||||||
|
child: Stack(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"绑定设备".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: stringToColor("#84F5FF"),
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: Container(
|
||||||
|
height: 1,
|
||||||
|
color: stringToColor("#84F5FF"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
TextSpan(
|
||||||
|
text: "后,再进行设备控制".tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
// 显示 WebView
|
||||||
|
if (showWeb)
|
||||||
|
Expanded(
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Obx(() {
|
child: Obx(() {
|
||||||
@@ -472,10 +609,10 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
|||||||
: Container();
|
: Container();
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
));
|
),
|
||||||
}),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user