397 lines
19 KiB
Dart
397 lines
19 KiB
Dart
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/FitTool.dart';
|
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
|
import 'package:vbvs_app/component/tool/CustomCard.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 HomePage extends StatefulWidget {
|
|
const HomePage({super.key});
|
|
|
|
@override
|
|
State<HomePage> createState() => _HomePageState();
|
|
}
|
|
|
|
class _HomePageState extends State<HomePage> {
|
|
GlobalController globalController = Get.find();
|
|
UserInfoController userInfoController = Get.find();
|
|
ThemeController themeController = Get.find();
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return LayoutBuilder(
|
|
builder: (context, bodySize) => GestureDetector(
|
|
onTap: () => FocusScope.of(context).unfocus(),
|
|
child: Scaffold(
|
|
// appBar: AppBar(
|
|
// backgroundColor: AppColors.bg_color,
|
|
// automaticallyImplyLeading: false,
|
|
// title: Container(
|
|
// width: double.infinity,
|
|
// height: 70.rpx,
|
|
// child: Obx(
|
|
// () => InkWell(
|
|
// onTap: () {
|
|
// Get.toNamed("/editUserInfoPage");
|
|
// },
|
|
// child: Row(
|
|
// mainAxisSize: MainAxisSize.max,
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
// children: [
|
|
// Row(
|
|
// mainAxisSize: MainAxisSize.max,
|
|
// children: [
|
|
// Container(
|
|
// width: 56.rpx,
|
|
// height: 56.rpx,
|
|
// clipBehavior: Clip.antiAlias,
|
|
// decoration: BoxDecoration(
|
|
// shape: BoxShape.circle,
|
|
// ),
|
|
// ),
|
|
// Container(
|
|
// width: 20.rpx,
|
|
// height: 0,
|
|
// decoration: BoxDecoration(
|
|
// color: Colors.white,
|
|
// shape: BoxShape.rectangle,
|
|
// ),
|
|
// ),
|
|
// Text(
|
|
// userInfoController.model.user!.nickName ?? '匿名',
|
|
// style: FlutterFlowTheme.of(context)
|
|
// .bodyMedium
|
|
// .override(
|
|
// fontFamily: 'Readex Pro',
|
|
// color: Colors.white,
|
|
// letterSpacing: 0,
|
|
// fontSize: 30.rpx),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// actions: [],
|
|
// centerTitle: false,
|
|
// ),
|
|
body: SafeArea(
|
|
top: true,
|
|
// child: Text("首页"),
|
|
child: Container(
|
|
height: bodySize.maxHeight,
|
|
decoration: BoxDecoration(
|
|
image: DecorationImage(
|
|
image: AssetImage('assets/img/bgImage.png'), // 本地图片
|
|
fit: BoxFit.fill, // 填满整个 Container
|
|
),
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
AppConstants().main_left_right_padding,
|
|
47.rpx,
|
|
AppConstants().main_left_right_padding,
|
|
0),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
AppConstants().content_left_right_padding,
|
|
0,
|
|
AppConstants().content_left_right_padding,
|
|
0),
|
|
child: Container(
|
|
width: double.infinity,
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
CustomCard(
|
|
borderRadius: 20.rpx,
|
|
onTap: () async {
|
|
Get.toNamed("/loginPage");
|
|
},
|
|
title: '首页.登录'
|
|
.tr, // 虽然 title 传入了,但当前组件里没用它(可忽略或用于调试)
|
|
colors: [
|
|
stringToColor("#45D989"),
|
|
stringToColor("#00C1AA"),
|
|
],
|
|
child: Container(
|
|
width: 100.rpx,
|
|
height: 60.rpx,
|
|
alignment: Alignment.center,
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
16.rpx, 0, 16.rpx, 0),
|
|
child: Text(
|
|
'首页.登录'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.titleSmall
|
|
.override(
|
|
fontFamily: 'Inter Tight',
|
|
color: Colors.white,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
|
|
Icon(
|
|
Icons.add_circle_outline_outlined,
|
|
color: FlutterFlowTheme.of(context).primaryText,
|
|
size: 38.rpx,
|
|
),
|
|
// Lottie.asset(
|
|
// 'assets/img/loading.json',
|
|
// width: 200,
|
|
// height: 200,
|
|
// fit: BoxFit.contain,
|
|
// )
|
|
],
|
|
),
|
|
),
|
|
),
|
|
Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
19.rpx, 13.rpx, 0, 13.rpx),
|
|
child: Container(
|
|
width: double.infinity,
|
|
child: Row(
|
|
children: [
|
|
Text(
|
|
'首页.已关联体征监测设备'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize:
|
|
AppConstants().title_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
Text(
|
|
' 0',
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize:
|
|
AppConstants().title_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
],
|
|
)),
|
|
),
|
|
Container(
|
|
width: MediaQuery.sizeOf(context).width,
|
|
height: MediaQuery.sizeOf(context).height * 0.277,
|
|
constraints: BoxConstraints(
|
|
minWidth: 690.rpx,
|
|
minHeight: 450.rpx,
|
|
),
|
|
decoration: BoxDecoration(
|
|
color: stringToColor("#242835"),
|
|
borderRadius: BorderRadius.circular(
|
|
AppConstants().normal_container_radius), // 圆角半径
|
|
),
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
children: [
|
|
Container(
|
|
width: MediaQuery.sizeOf(context).width * 0.66,
|
|
height: MediaQuery.sizeOf(context).height * 0.055,
|
|
constraints: BoxConstraints(
|
|
minWidth: 500.rpx,
|
|
minHeight: 90.rpx,
|
|
),
|
|
decoration: BoxDecoration(
|
|
gradient: LinearGradient(
|
|
colors: [Colors.red, Colors.orange], // 渐变颜色数组
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
),
|
|
borderRadius: BorderRadius.circular(
|
|
AppConstants()
|
|
.button_container_radius), // 圆角半径
|
|
),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Icon(
|
|
Icons.arrow_back,
|
|
color: FlutterFlowTheme.of(context)
|
|
.primaryText,
|
|
size: 28.rpx,
|
|
),
|
|
Text(
|
|
'首页.扫一扫绑定'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
].divide(SizedBox(
|
|
width: 17.rpx,
|
|
)),
|
|
),
|
|
),
|
|
CustomCard(
|
|
borderRadius: AppConstants()
|
|
.button_container_radius, // 圆角半径
|
|
onTap: () {
|
|
print('Button pressed ...');
|
|
Get.toNamed("/deviceType");
|
|
},
|
|
colors: [
|
|
stringToColor("45D989"),
|
|
stringToColor("00C1AA")
|
|
], // 渐变色是同一个色,也可以根据需要调整
|
|
title: '首页.蓝牙绑定'.tr, // 可选,虽然这个 title 没用,但可以作为调试用
|
|
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: [
|
|
Icon(
|
|
Icons.arrow_back,
|
|
color: FlutterFlowTheme.of(context)
|
|
.primaryText,
|
|
size: 28.rpx,
|
|
),
|
|
Text(
|
|
'首页.蓝牙绑定'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
].divide(SizedBox(
|
|
width: 17.rpx,
|
|
)),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(0, 26.rpx, 0, 0),
|
|
child: Container(
|
|
width: MediaQuery.sizeOf(context).width,
|
|
decoration: BoxDecoration(
|
|
color: Color(0xFFFBF5D5),
|
|
borderRadius: BorderRadius.circular(
|
|
AppConstants().normal_container_radius), // 圆角半径
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
25.rpx, 25.rpx, 25.rpx, 25.rpx),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Icon(
|
|
Icons.volume_mute,
|
|
color:
|
|
FlutterFlowTheme.of(context).primaryText,
|
|
size: 30.rpx,
|
|
),
|
|
Expanded(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
crossAxisAlignment:
|
|
CrossAxisAlignment.start,
|
|
children: [
|
|
Text(
|
|
'首页.提示标题'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
fontWeight: FontWeight.w500,
|
|
color: Colors.orange),
|
|
),
|
|
Text(
|
|
'首页.提示内容1'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
Text(
|
|
'首页.提示内容2'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
Text(
|
|
'首页.提示内容3'.tr,
|
|
style: FlutterFlowTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Inter',
|
|
fontSize: AppConstants()
|
|
.normal_text_fontSize,
|
|
letterSpacing: 0.0,
|
|
),
|
|
),
|
|
].divide(SizedBox(
|
|
height: AppConstants()
|
|
.text_padding_up_dowm_p)),
|
|
),
|
|
)
|
|
].divide(SizedBox(width: 20.rpx)),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|