设备人员更新
This commit is contained in:
@@ -28,6 +28,7 @@ class ServiceConstant {
|
|||||||
static String room_list = "/api/room/info"; //查询房间列表
|
static String room_list = "/api/room/info"; //查询房间列表
|
||||||
static String issue_list = "/api/help/list"; //问题与帮助列表
|
static String issue_list = "/api/help/list"; //问题与帮助列表
|
||||||
|
|
||||||
|
|
||||||
static String logService = "$service_address/vsbs_log";
|
static String logService = "$service_address/vsbs_log";
|
||||||
static const String webSocketService = "wss://$baseHost/vsbs_ws_gateway/ws";
|
static const String webSocketService = "wss://$baseHost/vsbs_ws_gateway/ws";
|
||||||
static const String sleep_token = "HdAMjzqiYQKsmHRyEFKhfRGQ";
|
static const String sleep_token = "HdAMjzqiYQKsmHRyEFKhfRGQ";
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class MhMessageController extends GetControllerEx<MhMessageModel> {
|
|||||||
String serviceApi = ServiceConstant.message_list;
|
String serviceApi = ServiceConstant.message_list;
|
||||||
String messageType = "app_system";
|
String messageType = "app_system";
|
||||||
if (model.type == 1) {
|
if (model.type == 1) {
|
||||||
messageType = "app_body";
|
messageType = "app_vsm";
|
||||||
} else {
|
} else {
|
||||||
messageType = "app_system";
|
messageType = "app_system";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
|
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/MattressControl.dart';
|
import 'package:vbvs_app/pages/mh_page/MattressControl.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/device_list.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/new_Home_page.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/new_Home_page.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/new_mine_page.dart';
|
import 'package:vbvs_app/pages/mh_page/new_mine_page.dart';
|
||||||
@@ -31,7 +32,7 @@ class _HomePageState extends State<MainPageBBottomChange>
|
|||||||
// Text('报告'),
|
// Text('报告'),
|
||||||
// RegisterPage(),
|
// RegisterPage(),
|
||||||
// ShareDeviceWidget(),
|
// ShareDeviceWidget(),
|
||||||
MhtSleepReportPage(),
|
DeviceListPage(),
|
||||||
// FindPasswordPage(),
|
// FindPasswordPage(),
|
||||||
// Smys(),
|
// Smys(),
|
||||||
MattressControlPage(),
|
MattressControlPage(),
|
||||||
|
|||||||
@@ -102,152 +102,6 @@ class _MessagePageState extends State<MessagePage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 40.rpx),
|
SizedBox(height: 40.rpx),
|
||||||
// Expanded(
|
|
||||||
// child: Stack(
|
|
||||||
// alignment: Alignment.bottomLeft,
|
|
||||||
// children: [
|
|
||||||
// Row(
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
// children: [
|
|
||||||
// Obx(() {
|
|
||||||
// return ClickableContainer(
|
|
||||||
// padding: EdgeInsets.all(0),
|
|
||||||
// backgroundColor: Colors.transparent,
|
|
||||||
// highlightColor:
|
|
||||||
// themeController.currentColor.sc21,
|
|
||||||
// borderRadius: 8.rpx,
|
|
||||||
// onTap: () => _onTabChanged(0),
|
|
||||||
// child: Container(
|
|
||||||
// width: 160.rpx,
|
|
||||||
// alignment: Alignment.center,
|
|
||||||
// child: Stack(
|
|
||||||
// alignment: Alignment.center,
|
|
||||||
// clipBehavior: Clip.none,
|
|
||||||
// children: [
|
|
||||||
// Text(
|
|
||||||
// '体征消息'.tr,
|
|
||||||
// style: FlutterFlowTheme.of(context)
|
|
||||||
// .bodyMedium
|
|
||||||
// .override(
|
|
||||||
// fontFamily: 'Inter',
|
|
||||||
// fontSize: AppConstants()
|
|
||||||
// .title_text_fontSize,
|
|
||||||
// color:
|
|
||||||
// messageController
|
|
||||||
// .model.type ==
|
|
||||||
// 2
|
|
||||||
// ? themeController
|
|
||||||
// .currentColor.sc3
|
|
||||||
// : themeController
|
|
||||||
// .currentColor.sc2,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Obx(() {
|
|
||||||
// return messageController.model
|
|
||||||
// .body_message_read ==
|
|
||||||
// 1
|
|
||||||
// ? Positioned(
|
|
||||||
// top: -4,
|
|
||||||
// right: -14,
|
|
||||||
// child: Container(
|
|
||||||
// width: 8,
|
|
||||||
// height: 8,
|
|
||||||
// decoration:
|
|
||||||
// const BoxDecoration(
|
|
||||||
// color: Colors.red,
|
|
||||||
// shape: BoxShape.circle,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
// : const SizedBox.shrink();
|
|
||||||
// }),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// }),
|
|
||||||
// Obx(() {
|
|
||||||
// return ClickableContainer(
|
|
||||||
// padding: EdgeInsets.all(0),
|
|
||||||
// backgroundColor: Colors.transparent,
|
|
||||||
// highlightColor:
|
|
||||||
// themeController.currentColor.sc21,
|
|
||||||
// borderRadius: 8.rpx,
|
|
||||||
// onTap: () => _onTabChanged(1),
|
|
||||||
// child: Container(
|
|
||||||
// width: 160.rpx,
|
|
||||||
// alignment: Alignment.center,
|
|
||||||
// child: Stack(
|
|
||||||
// alignment: Alignment.center,
|
|
||||||
// clipBehavior: Clip.none,
|
|
||||||
// children: [
|
|
||||||
// Text(
|
|
||||||
// '系统消息'.tr,
|
|
||||||
// style: FlutterFlowTheme.of(context)
|
|
||||||
// .bodyMedium
|
|
||||||
// .override(
|
|
||||||
// fontFamily: 'Inter',
|
|
||||||
// fontSize: AppConstants()
|
|
||||||
// .title_text_fontSize,
|
|
||||||
// color:
|
|
||||||
// messageController
|
|
||||||
// .model.type ==
|
|
||||||
// 1
|
|
||||||
// ? themeController
|
|
||||||
// .currentColor.sc3
|
|
||||||
// : themeController
|
|
||||||
// .currentColor.sc2,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Obx(() {
|
|
||||||
// return messageController.model
|
|
||||||
// .system_message_read ==
|
|
||||||
// 1
|
|
||||||
// ? Positioned(
|
|
||||||
// top: -4,
|
|
||||||
// right: -14,
|
|
||||||
// child: Container(
|
|
||||||
// width: 8,
|
|
||||||
// height: 8,
|
|
||||||
// decoration:
|
|
||||||
// const BoxDecoration(
|
|
||||||
// color: Colors.red,
|
|
||||||
// shape: BoxShape.circle,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
// : const SizedBox.shrink();
|
|
||||||
// }),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// }),
|
|
||||||
// ].divide(SizedBox(width: 10.rpx)),
|
|
||||||
// ),
|
|
||||||
// Obx(() {
|
|
||||||
// double lineWidth = 170.rpx;
|
|
||||||
// return AnimatedPositioned(
|
|
||||||
// duration: const Duration(milliseconds: 300),
|
|
||||||
// curve: Curves.easeInOut,
|
|
||||||
// bottom: 0,
|
|
||||||
// left: messageController.model.type == 1
|
|
||||||
// ? 0
|
|
||||||
// : 170.rpx,
|
|
||||||
// child: Container(
|
|
||||||
// width: lineWidth,
|
|
||||||
// height: 4.rpx,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: themeController.currentColor.sc2,
|
|
||||||
// borderRadius: BorderRadius.circular(2.rpx),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// }),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
alignment: Alignment.bottomLeft,
|
alignment: Alignment.bottomLeft,
|
||||||
@@ -407,7 +261,6 @@ class _MessagePageState extends State<MessagePage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
SizedBox(height: 17.rpx),
|
SizedBox(height: 17.rpx),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -135,9 +135,17 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
_buildBedImageSection(context),
|
Center(
|
||||||
_buildModeSelector(context),
|
child: Text(
|
||||||
Expanded(child: _buildControlCards(context)),
|
"等待引入",
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
))
|
||||||
|
|
||||||
|
// _buildBedImageSection(context),
|
||||||
|
// _buildModeSelector(context),
|
||||||
|
// Expanded(child: _buildControlCards(context)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
350
lib/pages/mh_page/applyRepair/apply_repair_success.dart
Normal file
350
lib/pages/mh_page/applyRepair/apply_repair_success.dart
Normal file
@@ -0,0 +1,350 @@
|
|||||||
|
import 'package:ef/ef.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||||
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
|
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||||
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
|
|
||||||
|
class ApplyRepairSuccess extends StatefulWidget {
|
||||||
|
const ApplyRepairSuccess({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<ApplyRepairSuccess> createState() => _ApplyRepairSuccessState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ApplyRepairSuccessState extends State<ApplyRepairSuccess> {
|
||||||
|
GlobalController globalController = Get.find();
|
||||||
|
UserInfoController userInfoController = Get.find();
|
||||||
|
BlueteethBindController blueteethBindController = Get.find();
|
||||||
|
ThemeController themeController = Get.find();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return LayoutBuilder(
|
||||||
|
builder: (context, bodySize) => GestureDetector(
|
||||||
|
onTap: () => FocusScope.of(context).unfocus(),
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
image: DecorationImage(
|
||||||
|
image: AssetImage('assets/images/new_background.png'), // 本地图片
|
||||||
|
fit: BoxFit.fill, // 填满整个 Container
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Scaffold(
|
||||||
|
backgroundColor: Colors.transparent, // 加上这一行
|
||||||
|
appBar: AppBar(
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
automaticallyImplyLeading: false,
|
||||||
|
iconTheme: IconThemeData(
|
||||||
|
color: themeController.currentColor.sc3,
|
||||||
|
),
|
||||||
|
titleSpacing: 0,
|
||||||
|
// leading: returnIconButtom,
|
||||||
|
title: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
height: 180.rpx,
|
||||||
|
child: Stack(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
children: [
|
||||||
|
/// 居中标题
|
||||||
|
Text(
|
||||||
|
'报修成功标题'.tr,
|
||||||
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
|
fontFamily: 'Readex Pro',
|
||||||
|
color: themeController.currentColor.sc3,
|
||||||
|
letterSpacing: 0,
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
/// 左边返回按钮
|
||||||
|
// Positioned(
|
||||||
|
// left: 0,
|
||||||
|
// child: returnIconButtom,
|
||||||
|
// ),
|
||||||
|
Positioned(
|
||||||
|
left: 40.rpx,
|
||||||
|
child: ClickableContainer(
|
||||||
|
onTap: () {
|
||||||
|
Get.offNamed("/mianPageBottomChange");
|
||||||
|
},
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
highlightColor: Colors
|
||||||
|
.grey, // 可以设置为 themeController.currentColor.sc3 之类
|
||||||
|
borderRadius: 8.rpx,
|
||||||
|
padding: EdgeInsets.all(8.rpx), // 增加可点击区域
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/img/icon/close.svg',
|
||||||
|
width: 25.rpx,
|
||||||
|
height: 25.rpx,
|
||||||
|
color: themeController.currentColor.sc3,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
actions: [],
|
||||||
|
centerTitle: false,
|
||||||
|
),
|
||||||
|
|
||||||
|
body: SafeArea(
|
||||||
|
top: true,
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(113.rpx, 0, 113.rpx, 0),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
height: bodySize.maxHeight * 0.15,
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(0, 0.rpx, 0, 0),
|
||||||
|
child: Container(
|
||||||
|
width: 148.rpx,
|
||||||
|
height: 148.rpx,
|
||||||
|
// width: double.infinity,
|
||||||
|
decoration: BoxDecoration(),
|
||||||
|
child: SvgPicture.asset('assets/img/icon/tick.svg',
|
||||||
|
fit: BoxFit.cover, color: Color(0XFF84F5FF)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(0, 42.rpx, 0, 0),
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
decoration: BoxDecoration(),
|
||||||
|
child: Align(
|
||||||
|
alignment: AlignmentDirectional(0, 0),
|
||||||
|
child: Text(
|
||||||
|
'报修成功'.tr,
|
||||||
|
style: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: 'Inter',
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
color: themeController.currentColor.sc3,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
height: 90.rpx,
|
||||||
|
),
|
||||||
|
// Padding(
|
||||||
|
// padding:
|
||||||
|
// EdgeInsetsDirectional.fromSTEB(0, 265.rpx, 0, 0),
|
||||||
|
// child: Container(
|
||||||
|
// width: double.infinity,
|
||||||
|
// decoration: BoxDecoration(),
|
||||||
|
// child: Align(
|
||||||
|
// alignment: AlignmentDirectional(0, 0),
|
||||||
|
// child: Text(
|
||||||
|
// '绑定成功.分享标题'.tr,
|
||||||
|
// style: FlutterFlowTheme.of(context)
|
||||||
|
// .bodyMedium
|
||||||
|
// .override(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// fontSize: 30.rpx,
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// color: themeController.currentColor.sc3,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// Padding(
|
||||||
|
// padding: EdgeInsetsDirectional.fromSTEB(0, 48.rpx, 0, 0),
|
||||||
|
// child: Container(
|
||||||
|
// width: double.infinity,
|
||||||
|
// decoration: BoxDecoration(),
|
||||||
|
// child: Align(
|
||||||
|
// alignment: AlignmentDirectional(-1, 0),
|
||||||
|
// child: Text(
|
||||||
|
// '报修成功标语'.tr,
|
||||||
|
// style: FlutterFlowTheme.of(context)
|
||||||
|
// .bodyMedium
|
||||||
|
// .override(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// fontSize: 26.rpx,
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// color: themeController.currentColor.sc4,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(0, 110.rpx, 0, 0),
|
||||||
|
child: CustomCard(
|
||||||
|
borderRadius:
|
||||||
|
AppConstants().button_container_radius, // 圆角半径
|
||||||
|
gradientDirection: GradientDirection.vertical,
|
||||||
|
onTap: () async {
|
||||||
|
Get.toNamed("/repairListPage");
|
||||||
|
},
|
||||||
|
colors: [
|
||||||
|
Color(0xFFFCFCFC),
|
||||||
|
Color(0xFFF8FAF9),
|
||||||
|
Color(0XFFECF6F3),
|
||||||
|
Color(0XFFD9F0E9),
|
||||||
|
Color(0xFFCEECE3)
|
||||||
|
],
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery.sizeOf(context).width * 0.66,
|
||||||
|
height: MediaQuery.sizeOf(context).height * 0.055,
|
||||||
|
constraints: BoxConstraints(
|
||||||
|
minWidth: 500.rpx,
|
||||||
|
minHeight: 90.rpx,
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
|
0, 2.rpx, 0, 0),
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/img/icon/history.svg',
|
||||||
|
width: 25.rpx,
|
||||||
|
height: 25.rpx, // 如果 SVG 中没有固定颜色,可以这样设置
|
||||||
|
color: Color(0xFF011D33),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'查看报修历史'.tr,
|
||||||
|
style: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMedium
|
||||||
|
.override(
|
||||||
|
color: Color(0xFF011D33),
|
||||||
|
fontFamily: 'Inter',
|
||||||
|
fontSize: AppConstants()
|
||||||
|
.normal_text_fontSize, // 自定义字体大小
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
].divide(SizedBox(width: 17.rpx)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(0, 18.rpx, 0, 0),
|
||||||
|
child: CustomCard(
|
||||||
|
borderRadius:
|
||||||
|
AppConstants().button_container_radius, // 圆角半径
|
||||||
|
gradientDirection: GradientDirection.vertical,
|
||||||
|
onTap: () {
|
||||||
|
Get.offNamed("/mianPageBottomChange");
|
||||||
|
},
|
||||||
|
colors: [
|
||||||
|
// 渐变色
|
||||||
|
Color(0xFFFCFCFC),
|
||||||
|
Color(0xFFF8FAF9),
|
||||||
|
Color(0XFFECF6F3),
|
||||||
|
Color(0XFFD9F0E9),
|
||||||
|
Color(0xFFCEECE3)
|
||||||
|
],
|
||||||
|
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery.sizeOf(context).width * 0.66,
|
||||||
|
height: MediaQuery.sizeOf(context).height * 0.055,
|
||||||
|
constraints: BoxConstraints(
|
||||||
|
minWidth: 500.rpx,
|
||||||
|
minHeight: 90.rpx,
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'绑定成功.返回'.tr,
|
||||||
|
style: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMedium
|
||||||
|
.override(
|
||||||
|
color: Color(0xFF011D33),
|
||||||
|
fontFamily: 'Inter',
|
||||||
|
fontSize: AppConstants()
|
||||||
|
.normal_text_fontSize, // 自定义字体大小
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
].divide(SizedBox(width: 17.rpx)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildDeviceCard(BuildContext context,
|
||||||
|
{required String title, required String imageUrl, required String type}) {
|
||||||
|
return CustomCard(
|
||||||
|
borderRadius: 20.rpx, // 圆角大小
|
||||||
|
onTap: () {
|
||||||
|
if (type != null) {
|
||||||
|
if (type == '1') {
|
||||||
|
Get.toNamed("/blueteethDevice");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
colors: [themeController.currentColor.sc17], // 背景色
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
height: MediaQuery.sizeOf(context).height * 0.135,
|
||||||
|
constraints: BoxConstraints(
|
||||||
|
minHeight: 220.rpx,
|
||||||
|
),
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(77.rpx, 0, 21.rpx, 0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
title,
|
||||||
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
|
fontFamily: 'Inter',
|
||||||
|
color: const Color(0xFFC2CED7),
|
||||||
|
fontSize: 30.rpx,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(8.rpx),
|
||||||
|
child: Image.asset(
|
||||||
|
imageUrl,
|
||||||
|
width: 212.rpx,
|
||||||
|
height: 168.rpx,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,19 +1,25 @@
|
|||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||||
|
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
import 'package:vbvs_app/common/color/appFontsize.dart';
|
import 'package:vbvs_app/common/color/appFontsize.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/common/util/requestWithLog.dart';
|
||||||
import 'package:vbvs_app/component/img/img_default_widget.dart';
|
import 'package:vbvs_app/component/img/img_default_widget.dart';
|
||||||
import 'package:vbvs_app/component/img/img_preview_widget.dart';
|
import 'package:vbvs_app/component/img/img_preview_widget.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
||||||
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
|
|
||||||
class ApplyRepairPage extends GetView<ApplyRepairController> {
|
class ApplyRepairPage extends GetView<ApplyRepairController> {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
BoxConstraints? bodysize;
|
BoxConstraints? bodysize;
|
||||||
|
RepairController repairController = Get.find();
|
||||||
// ApplyRepairPage() {
|
// ApplyRepairPage() {
|
||||||
// controller.attr.value.listenlists.clear();
|
// controller.attr.value.listenlists.clear();
|
||||||
// controller.getDeviceList();
|
// controller.getDeviceList();
|
||||||
@@ -24,6 +30,9 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
// controller.model.device_id = "";
|
// controller.model.device_id = "";
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
final List<GlobalKey> repairItemKeys = [];
|
||||||
|
final GlobalKey contactKey = GlobalKey();
|
||||||
|
final GlobalKey phoneKey = GlobalKey();
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var tmpcontroller =
|
var tmpcontroller =
|
||||||
@@ -869,8 +878,45 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
.model.issue_img!.isEmpty)
|
.model.issue_img!.isEmpty)
|
||||||
Flexible(
|
Flexible(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
// controller.uploadImg();
|
ApiResponse apiResponse =
|
||||||
|
await repairController
|
||||||
|
.uploadImg();
|
||||||
|
// print(apiResponse);
|
||||||
|
// if (apiResponse.code ==
|
||||||
|
// HttpStatusCodes.ok) {
|
||||||
|
// print(widget.model);
|
||||||
|
// // setState(() {
|
||||||
|
// // widget.model['path'] = apiResponse.data['path'];
|
||||||
|
// // });
|
||||||
|
// widget.model['path'] =
|
||||||
|
// apiResponse
|
||||||
|
// .data['path'];
|
||||||
|
// repairController.repairList
|
||||||
|
// .refresh(); // 通知 Obx 更新(如果用了 GetX)
|
||||||
|
// print(widget.model);
|
||||||
|
// } else {
|
||||||
|
// if (widget.model['path'] ==
|
||||||
|
// null ||
|
||||||
|
// widget.model['path']
|
||||||
|
// .isEmpty
|
||||||
|
// ) {
|
||||||
|
// TopSlideNotification.show(
|
||||||
|
// context,
|
||||||
|
// text: apiResponse.msg!,
|
||||||
|
// textColor: apiResponse
|
||||||
|
// .code ==
|
||||||
|
// HttpStatusCodes
|
||||||
|
// .ok
|
||||||
|
// ? themeController
|
||||||
|
// .currentColor
|
||||||
|
// .sc2
|
||||||
|
// : themeController
|
||||||
|
// .currentColor
|
||||||
|
// .sc9,
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width:
|
width:
|
||||||
@@ -1330,76 +1376,62 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(
|
padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
0, 26.rpx, 0, 0),
|
0, 48.rpx, 0, 0),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: bodysize!.maxWidth,
|
width: bodysize!.maxWidth,
|
||||||
height: bodysize!.maxHeight * 0.17,
|
height: bodysize!.maxHeight * 0.17,
|
||||||
constraints: const BoxConstraints(
|
constraints: BoxConstraints(
|
||||||
minHeight: 222,
|
minHeight: 345.rpx,
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Color(0XFF003058),
|
color: Color(0XFF003058),
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
),
|
),
|
||||||
child: Container(
|
|
||||||
width: bodysize!.maxWidth,
|
|
||||||
height: bodysize!.maxHeight * 1,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
),
|
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Align(
|
Align(
|
||||||
alignment:
|
alignment:
|
||||||
const AlignmentDirectional(
|
const AlignmentDirectional(0, 0),
|
||||||
0, 0),
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding:
|
padding:
|
||||||
const EdgeInsetsDirectional
|
EdgeInsetsDirectional.fromSTEB(
|
||||||
.fromSTEB(0, 15, 0, 15),
|
0, 48.rpx, 0, 48.rpx),
|
||||||
child: Text(
|
child: Text(
|
||||||
'联系方式',
|
'联系方式',
|
||||||
style:
|
style: FlutterFlowTheme.of(
|
||||||
FlutterFlowTheme.of(context)
|
context)
|
||||||
.bodyMedium
|
.bodyMedium
|
||||||
.override(
|
.override(
|
||||||
fontFamily:
|
fontFamily: 'Readex Pro',
|
||||||
'Readex Pro',
|
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: 30.rpx,
|
fontSize: 30.rpx,
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
fontWeight:
|
fontWeight: FontWeight.w600,
|
||||||
FontWeight.w600,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsetsDirectional
|
padding:
|
||||||
.fromSTEB(
|
EdgeInsetsDirectional.fromSTEB(
|
||||||
25.rpx, 0, 34.rpx, 0),
|
25.rpx, 0, 34.rpx, 70.rpx),
|
||||||
child: Container(
|
child: Container(
|
||||||
width:
|
width: MediaQuery.sizeOf(context)
|
||||||
MediaQuery.sizeOf(context)
|
|
||||||
.width,
|
.width,
|
||||||
height:
|
height: MediaQuery.sizeOf(context)
|
||||||
MediaQuery.sizeOf(context)
|
|
||||||
.height *
|
.height *
|
||||||
1,
|
1,
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize:
|
mainAxisSize: MainAxisSize.max,
|
||||||
MainAxisSize.max,
|
|
||||||
children: [
|
children: [
|
||||||
Flexible(
|
Flexible(
|
||||||
child: Container(
|
child: Container(
|
||||||
width:
|
width: MediaQuery.sizeOf(
|
||||||
MediaQuery.sizeOf(
|
|
||||||
context)
|
context)
|
||||||
.width,
|
.width,
|
||||||
height:
|
height: MediaQuery.sizeOf(
|
||||||
MediaQuery.sizeOf(
|
|
||||||
context)
|
context)
|
||||||
.height *
|
.height *
|
||||||
0.038,
|
0.038,
|
||||||
@@ -1419,8 +1451,8 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
.height *
|
.height *
|
||||||
0.038,
|
0.038,
|
||||||
constraints:
|
constraints:
|
||||||
const BoxConstraints(
|
BoxConstraints(
|
||||||
minWidth: 60,
|
minWidth: 60.rpx,
|
||||||
),
|
),
|
||||||
// decoration:
|
// decoration:
|
||||||
// BoxDecoration(
|
// BoxDecoration(
|
||||||
@@ -1516,12 +1548,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
focusedBorder:
|
focusedBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1529,12 +1560,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
errorBorder:
|
errorBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1542,12 +1572,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
focusedErrorBorder:
|
focusedErrorBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1555,12 +1584,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(
|
style: FlutterFlowTheme.of(
|
||||||
@@ -1575,20 +1603,17 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].divide(
|
].divide(const SizedBox(
|
||||||
const SizedBox(
|
|
||||||
width: 13)),
|
width: 13)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Flexible(
|
Flexible(
|
||||||
child: Container(
|
child: Container(
|
||||||
width:
|
width: MediaQuery.sizeOf(
|
||||||
MediaQuery.sizeOf(
|
|
||||||
context)
|
context)
|
||||||
.width,
|
.width,
|
||||||
height:
|
height: MediaQuery.sizeOf(
|
||||||
MediaQuery.sizeOf(
|
|
||||||
context)
|
context)
|
||||||
.height *
|
.height *
|
||||||
0.038,
|
0.038,
|
||||||
@@ -1608,8 +1633,8 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
.height *
|
.height *
|
||||||
0.038,
|
0.038,
|
||||||
constraints:
|
constraints:
|
||||||
const BoxConstraints(
|
BoxConstraints(
|
||||||
minWidth: 60,
|
minWidth: 60.rpx,
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize:
|
mainAxisSize:
|
||||||
@@ -1696,12 +1721,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
focusedBorder:
|
focusedBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1709,12 +1733,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
errorBorder:
|
errorBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1722,12 +1745,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
focusedErrorBorder:
|
focusedErrorBorder:
|
||||||
UnderlineInputBorder(
|
UnderlineInputBorder(
|
||||||
@@ -1735,12 +1757,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
const BorderSide(
|
const BorderSide(
|
||||||
color: Color(
|
color: Color(
|
||||||
0x00000000),
|
0x00000000),
|
||||||
width:
|
width: 2,
|
||||||
2,
|
|
||||||
),
|
),
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius
|
||||||
8),
|
.circular(8),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(
|
style: FlutterFlowTheme.of(
|
||||||
@@ -1755,14 +1776,13 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].divide(
|
].divide(const SizedBox(
|
||||||
const SizedBox(
|
|
||||||
width: 13)),
|
width: 13)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].divide(const SizedBox(
|
].divide(
|
||||||
height: 15)),
|
const SizedBox(height: 15)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -1771,7 +1791,6 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -1785,31 +1804,60 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
width: bodysize!.maxWidth,
|
width: bodysize!.maxWidth,
|
||||||
height: bodysize!.maxHeight * 0.056,
|
height: bodysize!.maxHeight * 0.056,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.secondaryBackground,
|
|
||||||
borderRadius: BorderRadius.circular(16.rpx),
|
borderRadius: BorderRadius.circular(16.rpx),
|
||||||
),
|
),
|
||||||
child: CustomCard(
|
child: CustomCard(
|
||||||
borderRadius: 16.rpx,
|
borderRadius: 16.rpx,
|
||||||
gradientDirection: GradientDirection.vertical,
|
gradientDirection: GradientDirection.vertical,
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
// print('Button pressed ...');
|
Get.toNamed("/applyRepairSuccess");
|
||||||
// controller.submitRepair(context).then((msg) {
|
// TopSlideNotification.show(
|
||||||
// if (msg.isEmpty) {
|
// context,
|
||||||
// MessageListController messageListController =
|
// text: "功能开发中...",
|
||||||
// Get.find();
|
// );
|
||||||
// messageListController.addMessage();
|
|
||||||
// Get.to(() => ApplyRepairSuccessPage(),
|
// String msg = checkRepairParam();
|
||||||
// arguments: {'model': controller.model});
|
// if (msg.isNotEmpty) {
|
||||||
// controller.model =
|
// TopSlideNotification.show(context,
|
||||||
// ApplyRepairModel(); // 在 submitRepair 完成后执行
|
// text: msg,
|
||||||
// controller.updateAll();
|
// textColor:
|
||||||
|
// themeController.currentColor.sc9);
|
||||||
|
// } else {
|
||||||
|
// String serviceAddress =
|
||||||
|
// ServiceConstant.service_address;
|
||||||
|
// String serviceName =
|
||||||
|
// ServiceConstant.server_service;
|
||||||
|
// String serviceApi =
|
||||||
|
// ServiceConstant.submit_repair;
|
||||||
|
// String queryUrl =
|
||||||
|
// "$serviceAddress$serviceName$serviceApi";
|
||||||
|
// var data = {
|
||||||
|
// "device": repairController.repairList.value,
|
||||||
|
// "type": repairController.device_type.value,
|
||||||
|
// "contacts": {
|
||||||
|
// "name": repairController.name.value,
|
||||||
|
// "phone": repairController.phone.value
|
||||||
|
// },
|
||||||
|
// };
|
||||||
|
// ApiResponse apiResponse = await requestWithLog(
|
||||||
|
// logTitle: "提交报修信息",
|
||||||
|
// method: MyHttpMethod.post,
|
||||||
|
// queryUrl: queryUrl,
|
||||||
|
// data: data,
|
||||||
|
// onSuccess: (res) {
|
||||||
|
// TopSlideNotification.show(context,
|
||||||
|
// text: res.msg!);
|
||||||
|
// // Get.back();
|
||||||
|
// Get.toNamed("/applyRepairSuccess");
|
||||||
|
// },
|
||||||
|
// onFailure: (res) {
|
||||||
|
// TopSlideNotification.show(context,
|
||||||
|
// text: res.msg!,
|
||||||
|
// textColor:
|
||||||
|
// themeController.currentColor.sc9);
|
||||||
|
// },
|
||||||
|
// );
|
||||||
// }
|
// }
|
||||||
// }).catchError((error) {
|
|
||||||
// // 错误处理
|
|
||||||
// print('Error: $error');
|
|
||||||
// });
|
|
||||||
controller.submitRepair(context);
|
|
||||||
},
|
},
|
||||||
colors: const [
|
colors: const [
|
||||||
Color(0xFFFCFCFC),
|
Color(0xFFFCFCFC),
|
||||||
@@ -1880,4 +1928,73 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String checkRepairParam() {
|
||||||
|
String errormsg = "";
|
||||||
|
|
||||||
|
// 检查报修项
|
||||||
|
for (var i = 0; i < repairController.repairList.length; i++) {
|
||||||
|
final item = repairController.repairList[i];
|
||||||
|
|
||||||
|
if (item["path"] == null || item["path"].toString().isEmpty) {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
// return "第 ${i + 1} 项图片未上传";
|
||||||
|
return "图片未上传".tr;
|
||||||
|
}
|
||||||
|
if (item["id"] == null || item["id"].toString().isEmpty) {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
// return "第 ${i + 1} 项设备未选择";
|
||||||
|
return "设备未选择".tr;
|
||||||
|
}
|
||||||
|
if (item["param"] == null || item["param"].toString().isEmpty) {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
// return "第 ${i + 1} 项参数未填写";
|
||||||
|
return "参数未填写".tr;
|
||||||
|
}
|
||||||
|
if (item["issue"] == null || item["issue"].toString().isEmpty) {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
// return "第 ${i + 1} 项问题描述未填写";
|
||||||
|
return "问题描述未填写".tr;
|
||||||
|
}
|
||||||
|
if (item["issue"] != null && item["issue"].toString().trim().isNotEmpty) {
|
||||||
|
final issueText = item["issue"].toString().trim();
|
||||||
|
final charCount = issueText.runes.length;
|
||||||
|
|
||||||
|
if (charCount > 60) {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
return "问题描述最多输入60个字".tr;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_scrollToKey(repairItemKeys[i]);
|
||||||
|
return "问题描述不能为空".tr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查联系人
|
||||||
|
if (repairController.name.trim().isEmpty) {
|
||||||
|
_scrollToKey(contactKey);
|
||||||
|
return "联系人不能为空".tr;
|
||||||
|
}
|
||||||
|
if (repairController.phone.trim().isEmpty) {
|
||||||
|
_scrollToKey(phoneKey);
|
||||||
|
return "联系电话不能为空".tr;
|
||||||
|
}
|
||||||
|
if (!MyUtils.isValidPhoneNumber(repairController.phone.trim())) {
|
||||||
|
_scrollToKey(phoneKey);
|
||||||
|
return "无效的手机号码".tr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return errormsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增滚动方法
|
||||||
|
void _scrollToKey(GlobalKey key) {
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
Scrollable.ensureVisible(
|
||||||
|
key.currentContext!,
|
||||||
|
duration: Duration(milliseconds: 300),
|
||||||
|
curve: Curves.easeInOut,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:flutter_svg/svg.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/tool/ClickableContainer.dart';
|
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
|
|
||||||
class BluetoothPage extends GetView {
|
class BluetoothPage extends GetView {
|
||||||
Map data;
|
Map data;
|
||||||
@@ -135,18 +136,14 @@ class BluetoothPage extends GetView {
|
|||||||
arguments: data),
|
arguments: data),
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context, '房间选择', "/roomPickerPage"),
|
context, '房间选择', "/roomPickerPage"),
|
||||||
_buildMenuButton(
|
_buildMenuButton(context, '设备校准', ""),
|
||||||
context, '设备校准', "/devicePeopleInfo"),
|
_buildMenuButton(context, '体征传感器', ""),
|
||||||
_buildMenuButton(
|
_buildMenuButton(context, 'WIFI配置', ""),
|
||||||
context, '体征传感器', "/devicePeopleInfo"),
|
|
||||||
_buildMenuButton(
|
|
||||||
context, 'WIFI配置', "/devicePeopleInfo"),
|
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context, '睡眠习惯', "/sleepHabitPage"),
|
context, '睡眠习惯', "/sleepHabitPage"),
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context, '分享设备', "/deviceSharePage"),
|
context, '分享设备', "/deviceSharePage"),
|
||||||
_buildMenuButton(
|
_buildMenuButton(context, '解绑', ""),
|
||||||
context, '解绑', "/devicePeopleInfo"),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -172,6 +169,11 @@ class BluetoothPage extends GetView {
|
|||||||
} else {
|
} else {
|
||||||
Get.toNamed(path!);
|
Get.toNamed(path!);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
TopSlideNotification.show(
|
||||||
|
context,
|
||||||
|
text: "功能开发中...",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ 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/base/THFlutterFlowDropDown.dart';
|
import 'package:vbvs_app/component/base/THFlutterFlowDropDown.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/book_info_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/book_info_controller.dart';
|
||||||
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/book_date_widget.dart';
|
import 'package:vbvs_app/pages/mh_page/book_date_widget.dart';
|
||||||
@@ -584,39 +585,39 @@ class BookInfoPage extends GetView<BookInfoController> {
|
|||||||
borderRadius: 16.rpx,
|
borderRadius: 16.rpx,
|
||||||
gradientDirection: GradientDirection.vertical,
|
gradientDirection: GradientDirection.vertical,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (controller.model.select_time_index == null) {
|
// if (controller.model.select_time_index == null) {
|
||||||
showToast("请选择体验时间");
|
// showToast("请选择体验时间");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
if (controller.model.userName == null ||
|
// if (controller.model.userName == null ||
|
||||||
controller.model.userName == "") {
|
// controller.model.userName == "") {
|
||||||
showToast("请输入姓名");
|
// showToast("请输入姓名");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
if (controller.model.userPhone == null ||
|
// if (controller.model.userPhone == null ||
|
||||||
controller.model.userPhone == "") {
|
// controller.model.userPhone == "") {
|
||||||
showToast("请输入手机号");
|
// showToast("请输入手机号");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
if (MyUtils.isValidPhoneNumber(
|
// if (MyUtils.isValidPhoneNumber(
|
||||||
controller.model.userPhone!) ==
|
// controller.model.userPhone!) ==
|
||||||
false) {
|
// false) {
|
||||||
showToast("请输入正确的手机号");
|
// showToast("请输入正确的手机号");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
controller.submitData(data["id"]).then((d) {
|
// controller.submitData(data["id"]).then((d) {
|
||||||
if (d.data["status"] == 2) {
|
// if (d.data["status"] == 2) {
|
||||||
d.data["addressDetail"] = data['addressDetail'];
|
// d.data["addressDetail"] = data['addressDetail'];
|
||||||
d.data["name"] = data["name"];
|
// d.data["name"] = data["name"];
|
||||||
controller.messageAdd(d.data);
|
// controller.messageAdd(d.data);
|
||||||
Get.offAndToNamed("/bookSuccessPage",
|
// Get.offAndToNamed("/bookSuccessPage",
|
||||||
arguments: {"data": d.data});
|
// arguments: {"data": d.data});
|
||||||
} else {
|
// } else {
|
||||||
showToast("预约失败");
|
// showToast("预约失败");
|
||||||
}
|
// }
|
||||||
}).catchError((d) {
|
// }).catchError((d) {
|
||||||
showToast("预约失败");
|
// showToast("预约失败");
|
||||||
});
|
// });
|
||||||
// Get.toNamed("/bookSuccessPage", arguments: {
|
// Get.toNamed("/bookSuccessPage", arguments: {
|
||||||
// "data": {
|
// "data": {
|
||||||
// "id": "7fbfbd614ef5befa3d8a84730f666853",
|
// "id": "7fbfbd614ef5befa3d8a84730f666853",
|
||||||
@@ -678,6 +679,10 @@ class BookInfoPage extends GetView<BookInfoController> {
|
|||||||
// "storeAddress": null
|
// "storeAddress": null
|
||||||
// },
|
// },
|
||||||
// });
|
// });
|
||||||
|
TopSlideNotification.show(
|
||||||
|
context,
|
||||||
|
text: "功能开发中...",
|
||||||
|
);
|
||||||
},
|
},
|
||||||
colors: const [
|
colors: const [
|
||||||
Color(0xFFFCFCFC),
|
Color(0xFFFCFCFC),
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ class DevicePeopleInfo extends GetView<PeopleInfoController> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
controller.initData(data['mac']);
|
||||||
|
});
|
||||||
return LayoutBuilder(
|
return LayoutBuilder(
|
||||||
builder: (context, boxConstraints) => GestureDetector(
|
builder: (context, boxConstraints) => GestureDetector(
|
||||||
onTap: () => FocusScope.of(context).unfocus(),
|
onTap: () => FocusScope.of(context).unfocus(),
|
||||||
|
|||||||
@@ -1,20 +1,37 @@
|
|||||||
import 'package:ef/base/widget/flutterflow/FlutterFlowTheme.dart';
|
import 'package:ef/base/widget/flutterflow/FlutterFlowTheme.dart';
|
||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:vbvs_app/common/color/ServiceConstant.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/common/util/requestWithLog.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
|
|
||||||
class EditBedPage extends StatefulWidget {
|
class EditBedPage extends StatefulWidget {
|
||||||
const EditBedPage({Key? key}) : super(key: key);
|
final Map data;
|
||||||
|
EditBedPage({Key? key, required this.data});
|
||||||
@override
|
@override
|
||||||
_EditBedPageState createState() => _EditBedPageState();
|
_EditBedPageState createState() => _EditBedPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
BoxConstraints? bodysize;
|
BoxConstraints? bodysize;
|
||||||
RxString _bedName = "".obs;
|
|
||||||
|
|
||||||
class _EditBedPageState extends State<EditBedPage> {
|
class _EditBedPageState extends State<EditBedPage> {
|
||||||
|
late Map<String, dynamic> editedData;
|
||||||
|
late TextEditingController _nameController; //名称文本输入框
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
editedData = Map.from(widget.data); // 创建副本
|
||||||
|
_nameController = TextEditingController(text: editedData['name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_nameController.dispose(); // 记得释放Controller
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return LayoutBuilder(builder: (context, cc) {
|
return LayoutBuilder(builder: (context, cc) {
|
||||||
@@ -94,12 +111,13 @@ class _EditBedPageState extends State<EditBedPage> {
|
|||||||
width: 0))),
|
width: 0))),
|
||||||
child: TextFormField(
|
child: TextFormField(
|
||||||
// autofocus: true,
|
// autofocus: true,
|
||||||
|
controller: _nameController,
|
||||||
obscureText: false,
|
obscureText: false,
|
||||||
onChanged: (val) {
|
onChanged: (val) {
|
||||||
// controller.model.name = val;
|
editedData['name'] = val;
|
||||||
},
|
},
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
initialValue: _bedName.value,
|
initialValue: widget.data['name'],
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: "请输入床的名称",
|
hintText: "请输入床的名称",
|
||||||
contentPadding:
|
contentPadding:
|
||||||
@@ -172,7 +190,25 @@ class _EditBedPageState extends State<EditBedPage> {
|
|||||||
child: CustomCard(
|
child: CustomCard(
|
||||||
borderRadius: 16.rpx,
|
borderRadius: 16.rpx,
|
||||||
gradientDirection: GradientDirection.vertical,
|
gradientDirection: GradientDirection.vertical,
|
||||||
onTap: () {},
|
onTap: () async {
|
||||||
|
String serviceAddress =
|
||||||
|
ServiceConstant.service_address;
|
||||||
|
String serviceName =
|
||||||
|
ServiceConstant.server_service;
|
||||||
|
String serviceApi = ServiceConstant.person_info;
|
||||||
|
String queryUrl =
|
||||||
|
"$serviceAddress$serviceName$serviceApi";
|
||||||
|
await requestWithLog(
|
||||||
|
logTitle: "更新设备信息",
|
||||||
|
method: MyHttpMethod.put,
|
||||||
|
queryUrl: queryUrl,
|
||||||
|
data: {
|
||||||
|
"id": editedData["id"],
|
||||||
|
"name": editedData["name"],
|
||||||
|
},
|
||||||
|
onSuccess: (res) {},
|
||||||
|
);
|
||||||
|
},
|
||||||
colors: const [
|
colors: const [
|
||||||
Color(0xFFFCFCFC),
|
Color(0xFFFCFCFC),
|
||||||
Color(0xFFF8FAF9),
|
Color(0xFFF8FAF9),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/issue_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/issue_controller.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/issue_preview_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/issue_preview_controller.dart';
|
||||||
|
|
||||||
@@ -21,13 +22,17 @@ class IssuePreviewWidget extends GetView<IssuePreviewInfoController> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
issueListController.model.selectedIndex = index;
|
// issueListController.model.selectedIndex = index;
|
||||||
issueListController.updateAll();
|
// issueListController.updateAll();
|
||||||
await Future.delayed(Duration(milliseconds: 100));
|
// await Future.delayed(Duration(milliseconds: 100));
|
||||||
issueListController.model.selectedIndex = -1;
|
// issueListController.model.selectedIndex = -1;
|
||||||
issueListController.updateAll();
|
// issueListController.updateAll();
|
||||||
var article = issueListController.model.issueList![index];
|
// var article = issueListController.model.issueList![index];
|
||||||
Get.toNamed("/helpArticle", arguments: article);
|
// Get.toNamed("/helpArticle", arguments: article);
|
||||||
|
TopSlideNotification.show(
|
||||||
|
context,
|
||||||
|
text: "功能开发中...",
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: Obx(() {
|
child: Obx(() {
|
||||||
return Container(
|
return Container(
|
||||||
|
|||||||
@@ -77,65 +77,65 @@ class _MessagePageState extends State<MessagePage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
messageController.messageList.value = [
|
// messageController.messageList.value = [
|
||||||
{
|
// {
|
||||||
"_id": "6836c3ee4e626030c8000000",
|
// "_id": "6836c3ee4e626030c8000000",
|
||||||
"type": "app_vsm",
|
// "type": "app_vsm",
|
||||||
"data": {
|
// "data": {
|
||||||
"title": "实时监测通知",
|
// "title": "实时监测通知",
|
||||||
"val": [
|
// "val": [
|
||||||
{"k": "设备ID", "v": "48ca43b1b454"},
|
// {"k": "设备ID", "v": "48ca43b1b454"},
|
||||||
{"k": "使用人员", "v": "bb"},
|
// {"k": "使用人员", "v": "bb"},
|
||||||
{"k": "消息类型", "v": "呼吸异常"},
|
// {"k": "消息类型", "v": "呼吸异常"},
|
||||||
{"k": "检测值", "v": '26'},
|
// {"k": "检测值", "v": '26'},
|
||||||
{"k": "检测时间", "v": "2025-05-28 16:06:07"}
|
// {"k": "检测时间", "v": "2025-05-28 16:06:07"}
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
"level": 3,
|
// "level": 3,
|
||||||
"tid": "67f5d96e26ef310463000000",
|
// "tid": "67f5d96e26ef310463000000",
|
||||||
"uid": "68319fe9702cc59bd1000000",
|
// "uid": "68319fe9702cc59bd1000000",
|
||||||
"status": 0,
|
// "status": 0,
|
||||||
"createTime": "1748419566651"
|
// "createTime": "1748419566651"
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
"_id": "6836c3e84e625f30c8000000",
|
// "_id": "6836c3e84e625f30c8000000",
|
||||||
"type": "app_vsm",
|
// "type": "app_vsm",
|
||||||
"data": {
|
// "data": {
|
||||||
"title": "实时监测通知",
|
// "title": "实时监测通知",
|
||||||
"val": [
|
// "val": [
|
||||||
{"k": "设备ID", "v": "48ca43b1b454"},
|
// {"k": "设备ID", "v": "48ca43b1b454"},
|
||||||
{"k": "使用人员", "v": "bb"},
|
// {"k": "使用人员", "v": "bb"},
|
||||||
{"k": "消息类型", "v": "心率异常"},
|
// {"k": "消息类型", "v": "心率异常"},
|
||||||
{"k": "检测值", "v": '115'},
|
// {"k": "检测值", "v": '115'},
|
||||||
{"k": "检测时间", "v": "2025-05-28 16:06:00"}
|
// {"k": "检测时间", "v": "2025-05-28 16:06:00"}
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
"level": 3,
|
// "level": 3,
|
||||||
"tid": "67f5d96e26ef310463000000",
|
// "tid": "67f5d96e26ef310463000000",
|
||||||
"uid": "68319fe9702cc59bd1000000",
|
// "uid": "68319fe9702cc59bd1000000",
|
||||||
"status": 0,
|
// "status": 0,
|
||||||
"createTime": "1748419560486"
|
// "createTime": "1748419560486"
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
"_id": "6836bd0c4e625e30c8000000",
|
// "_id": "6836bd0c4e625e30c8000000",
|
||||||
"type": "app_vsm",
|
// "type": "app_vsm",
|
||||||
"data": {
|
// "data": {
|
||||||
"title": "实时监测通知",
|
// "title": "实时监测通知",
|
||||||
"val": [
|
// "val": [
|
||||||
{"k": "设备ID", "v": "48ca43b1b454"},
|
// {"k": "设备ID", "v": "48ca43b1b454"},
|
||||||
{"k": "使用人员", "v": "bb"},
|
// {"k": "使用人员", "v": "bb"},
|
||||||
{"k": "消息类型", "v": "心率异常"},
|
// {"k": "消息类型", "v": "心率异常"},
|
||||||
{"k": "检测值", "v": '107'},
|
// {"k": "检测值", "v": '107'},
|
||||||
{"k": "检测时间", "v": "1748417761000"}
|
// {"k": "检测时间", "v": "1748417761000"}
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
"level": 3,
|
// "level": 3,
|
||||||
"tid": "67f5d96e26ef310463000000",
|
// "tid": "67f5d96e26ef310463000000",
|
||||||
"uid": "68319fe9702cc59bd1000000",
|
// "uid": "68319fe9702cc59bd1000000",
|
||||||
"status": 0,
|
// "status": 0,
|
||||||
"createTime": "1748417804381"
|
// "createTime": "1748417804381"
|
||||||
}
|
// }
|
||||||
];
|
// ];
|
||||||
|
|
||||||
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
|
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
|
||||||
statusBarColor: Colors.transparent,
|
statusBarColor: Colors.transparent,
|
||||||
@@ -239,13 +239,13 @@ class _MessagePageState extends State<MessagePage> {
|
|||||||
onPageChanged: _onPageChanged,
|
onPageChanged: _onPageChanged,
|
||||||
children: [
|
children: [
|
||||||
Obx(() {
|
Obx(() {
|
||||||
final list = messageController.messageList.value;
|
final list = messageController.messageList;
|
||||||
return list.isEmpty
|
return list.isEmpty
|
||||||
? const NullDataWidget()
|
? const NullDataWidget()
|
||||||
: _buildMessageListView(list);
|
: _buildMessageListView(list);
|
||||||
}),
|
}),
|
||||||
Obx(() {
|
Obx(() {
|
||||||
final list = messageController.messageList.value;
|
final list = messageController.messageList;
|
||||||
return list.isEmpty
|
return list.isEmpty
|
||||||
? const NullDataWidget()
|
? const NullDataWidget()
|
||||||
: _buildMessageListView(list);
|
: _buildMessageListView(list);
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ 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/controller/mh_controller/my_experience_list_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/my_experience_list_controller.dart';
|
||||||
|
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/app_map_location.dart';
|
||||||
|
|
||||||
import '../../common/color/appFontsize.dart';
|
import '../../common/color/appFontsize.dart';
|
||||||
|
|
||||||
@@ -263,27 +265,27 @@ class MyExperienceWidget extends GetView {
|
|||||||
Flexible(
|
Flexible(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// AppMapLocation.checkInstalledApps()
|
AppMapLocation.checkInstalledApps()
|
||||||
// .then((d) {
|
.then((d) {
|
||||||
// if (AppMapLocation
|
if (AppMapLocation
|
||||||
// .availableMapsToNames.isEmpty) {
|
.availableMapsToNames.isEmpty) {
|
||||||
// showToast("未检测到导航软件");
|
showToast("未检测到导航软件");
|
||||||
// } else {
|
} else {
|
||||||
// showOneSelectionDialog(context,
|
showOneSelectionDialog(context,
|
||||||
// title: "选择地图",
|
title: "选择地图",
|
||||||
// arr: AppMapLocation
|
arr: AppMapLocation
|
||||||
// .availableMapsToNames,
|
.availableMapsToNames,
|
||||||
// checkChange: (index) {
|
checkChange: (index) {
|
||||||
// AppMapLocation.launchMap(
|
AppMapLocation.launchMap(
|
||||||
// index,
|
index,
|
||||||
// data["name"],
|
data["name"],
|
||||||
// double.parse(
|
double.parse(
|
||||||
// "${data["latitude"]}"),
|
"${data["latitude"]}"),
|
||||||
// double.parse(
|
double.parse(
|
||||||
// "${data["longitude"]}"));
|
"${data["longitude"]}"));
|
||||||
// });
|
});
|
||||||
// }
|
}
|
||||||
// });
|
});
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: MediaQuery.sizeOf(context).width *
|
width: MediaQuery.sizeOf(context).width *
|
||||||
|
|||||||
@@ -236,7 +236,9 @@ class _MinePageState extends State<NewMinePage> {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(top: 46.rpx, bottom: 109.rpx),
|
padding: EdgeInsets.only(top: 46.rpx, bottom: 109.rpx),
|
||||||
child: ElevatedButton(
|
child: ElevatedButton(
|
||||||
onPressed: () {},
|
onPressed: () {
|
||||||
|
Get.toNamed("/deviceListPage");
|
||||||
|
},
|
||||||
style: ElevatedButton.styleFrom(
|
style: ElevatedButton.styleFrom(
|
||||||
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||||
backgroundColor: const Color(0XFF85F5FF),
|
backgroundColor: const Color(0XFF85F5FF),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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';
|
||||||
@@ -151,6 +152,12 @@ class DeviceRepairPage extends GetView<RepairListController> {
|
|||||||
Colors.white,
|
Colors.white,
|
||||||
decorationThickness: 4.rpx,
|
decorationThickness: 4.rpx,
|
||||||
),
|
),
|
||||||
|
recognizer:
|
||||||
|
TapGestureRecognizer()
|
||||||
|
..onTap = () {
|
||||||
|
MyUtils.makePhoneCall(
|
||||||
|
"400-8756-966");
|
||||||
|
},
|
||||||
),
|
),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: " 反馈。",
|
text: " 反馈。",
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ class Smys extends GetView<SleepingHabitController> {
|
|||||||
.bodyMedium
|
.bodyMedium
|
||||||
.override(
|
.override(
|
||||||
fontFamily: 'Readex Pro',
|
fontFamily: 'Readex Pro',
|
||||||
color: Color(0xFF9EA4B7),
|
color: Colors.white,
|
||||||
fontSize: 26.rpx,
|
fontSize: 26.rpx,
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
),
|
),
|
||||||
@@ -185,7 +185,7 @@ class Smys extends GetView<SleepingHabitController> {
|
|||||||
.bodyMedium
|
.bodyMedium
|
||||||
.override(
|
.override(
|
||||||
fontFamily: 'Readex Pro',
|
fontFamily: 'Readex Pro',
|
||||||
color: Color(0xFF9EA4B7),
|
color: Colors.white,
|
||||||
fontSize: 26.rpx,
|
fontSize: 26.rpx,
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
),
|
),
|
||||||
@@ -263,7 +263,7 @@ class Smys extends GetView<SleepingHabitController> {
|
|||||||
.bodyMedium
|
.bodyMedium
|
||||||
.override(
|
.override(
|
||||||
fontFamily: 'Readex Pro',
|
fontFamily: 'Readex Pro',
|
||||||
color: Color(0xFF9EA4B7),
|
color: Colors.white,
|
||||||
fontSize: 26.rpx,
|
fontSize: 26.rpx,
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -637,7 +637,7 @@ class _RxhxMhtState extends State<RxhxMht> {
|
|||||||
.bodyMedium
|
.bodyMedium
|
||||||
.override(
|
.override(
|
||||||
fontFamily: 'Readex Pro',
|
fontFamily: 'Readex Pro',
|
||||||
color: Colors.white,
|
color: Color(0xFF929699),
|
||||||
fontSize: 20.rpx,
|
fontSize: 20.rpx,
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.d
|
|||||||
import 'package:vbvs_app/pages/mh_page/HomeDeviceType.dart';
|
import 'package:vbvs_app/pages/mh_page/HomeDeviceType.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/LanguagePage.dart';
|
import 'package:vbvs_app/pages/mh_page/LanguagePage.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/address_list_page.dart';
|
import 'package:vbvs_app/pages/mh_page/address_list_page.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/applyRepair/apply_repair_success.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/apply_repair_page.dart';
|
import 'package:vbvs_app/pages/mh_page/apply_repair_page.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/book_info_page.dart';
|
import 'package:vbvs_app/pages/mh_page/book_info_page.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/book_success_page.dart';
|
import 'package:vbvs_app/pages/mh_page/book_success_page.dart';
|
||||||
@@ -68,7 +69,7 @@ var mhroutes = {
|
|||||||
'/syms': (context) => Smys(),
|
'/syms': (context) => Smys(),
|
||||||
"/applyRepairPage": (context) => ApplyRepairPage(),
|
"/applyRepairPage": (context) => ApplyRepairPage(),
|
||||||
"/roomPickerPage": (context) => RoomPickerPage(),
|
"/roomPickerPage": (context) => RoomPickerPage(),
|
||||||
"/editBedPage": (context) => EditBedPage(),
|
"/editBedPage": (context, {arguments}) => EditBedPage(data: arguments),
|
||||||
"/experienceStorePage": (context) => ExperienceStorePage(),
|
"/experienceStorePage": (context) => ExperienceStorePage(),
|
||||||
"/bookInfoPage": (context, {arguments}) =>
|
"/bookInfoPage": (context, {arguments}) =>
|
||||||
BookInfoPage(data: arguments["data"]),
|
BookInfoPage(data: arguments["data"]),
|
||||||
@@ -92,6 +93,7 @@ var mhroutes = {
|
|||||||
"/rxhxMht": (context) => RxhxMht(),
|
"/rxhxMht": (context) => RxhxMht(),
|
||||||
"/helpArticle": (contxt, {arguments}) => HelpArticle(article: arguments),
|
"/helpArticle": (contxt, {arguments}) => HelpArticle(article: arguments),
|
||||||
"/mHTPeopleInfoPage": (contxt) => MHTPeopleInfoPage(),
|
"/mHTPeopleInfoPage": (contxt) => MHTPeopleInfoPage(),
|
||||||
|
"/applyRepairSuccess": (contxt) => ApplyRepairSuccess(),
|
||||||
};
|
};
|
||||||
var mhonGenerateRoute = (RouteSettings settings) {
|
var mhonGenerateRoute = (RouteSettings settings) {
|
||||||
final String? name = settings.name; // 获取路由名称,如 /news 或 /search
|
final String? name = settings.name; // 获取路由名称,如 /news 或 /search
|
||||||
|
|||||||
Reference in New Issue
Block a user