Merge remote-tracking branch 'origin/master'

This commit is contained in:
czz
2025-07-17 10:14:04 +08:00
95 changed files with 8859 additions and 9047 deletions

Binary file not shown.

View File

@@ -237,7 +237,7 @@ class _BodyDevicePageState extends State<BodyDeviceWidget> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -169,7 +169,6 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
print(res);
},
);
}
@override
@@ -181,7 +180,7 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -35,7 +35,7 @@ class _DeviceDetailPageState extends State<DeviceDetailPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -148,7 +148,7 @@ class _InstantBodyPageState extends State<InstantBodyPage>
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -38,7 +38,7 @@ class _MessageReviewPageState extends State<MessageReviewPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -61,7 +61,7 @@ class _AfterCalibrationPersonPageState
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -55,7 +55,7 @@ class _AfterUpdatePersonPageState extends State<AfterUpdatePersonPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -71,7 +71,7 @@ class _AfterWifiPagePersonState extends State<AfterWifiPagePerson> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -37,7 +37,7 @@ class _EPageState extends State<BindDeviceSuccess> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -271,7 +271,7 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -169,7 +169,6 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
print(res);
},
);
}
@override
@@ -181,7 +180,7 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -442,7 +441,9 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
],
),
Text(
AppConstants().ent_type == 1? "APP消息介绍".tr:"打开“欢睡科技”APP可以查看该设备的消息内容",
AppConstants().ent_type == 1
? "APP消息介绍".tr
: "打开“欢睡科技”APP可以查看该设备的消息内容",
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize: AppConstants()
@@ -548,7 +549,9 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
],
),
Text(
AppConstants().ent_type == 1? "服务号消息介绍".tr:"无需打开“欢睡科技”APP关注欢睡智能睡眠研究所服务号后微信内即可接收该设备消息推送",
AppConstants().ent_type == 1
? "服务号消息介绍".tr
: "无需打开“欢睡科技”APP关注欢睡智能睡眠研究所服务号后微信内即可接收该设备消息推送",
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize: AppConstants()

View File

@@ -59,7 +59,7 @@ class _CalibrationPageState extends State<CalibrationPage> {
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -50,7 +50,7 @@ class _CalibrationPageState extends State<CalibrationPage> {
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -59,7 +59,7 @@ class _CalibrationPersonPageState extends State<CalibrationPersonPage> {
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -46,7 +46,7 @@ class _DeviceShareListPageState extends State<DeviceShareListPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -175,8 +175,7 @@ class _DeviceShareListPageState extends State<DeviceShareListPage> {
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
Colors.white,
color: Colors.white,
width: 1.rpx,
),
borderRadius:
@@ -185,8 +184,7 @@ class _DeviceShareListPageState extends State<DeviceShareListPage> {
focusedErrorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
Colors.white,
color: Colors.white,
width: 1.rpx,
),
borderRadius:

View File

@@ -39,7 +39,7 @@ class _DeviceSharePageState extends State<DeviceSharePage> {
RxBool flag2 = false.obs;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -218,8 +218,7 @@ class _EPageState extends State<DeviceTypePage> {
},
side: BorderSide(
width: 1.5,
color:
Colors.white,
color: Colors.white,
),
activeColor:
stringToColor("#16C89F"),
@@ -295,7 +294,7 @@ class _EPageState extends State<DeviceTypePage> {
}
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -45,7 +45,7 @@ class _DeviceTypeListPageState extends State<DeviceTypeListPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -130,7 +130,7 @@ class _WifiPageState extends State<WifiPage> {
print("object");
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -516,7 +516,9 @@ class _WifiPageState extends State<WifiPage> {
),
filled:
false,
fillColor: Colors.white,
fillColor:
Colors
.white,
suffixIcon:
InkWell(
onTap:

View File

@@ -71,7 +71,7 @@ class _WifiPagePersonState extends State<WifiPagePerson> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -459,7 +459,9 @@ class _WifiPagePersonState extends State<WifiPagePerson> {
),
filled:
false,
fillColor: Colors.white,
fillColor:
Colors
.white,
suffixIcon:
InkWell(
onTap:

View File

@@ -87,7 +87,7 @@ class _EPageState extends State<LoginPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -101,8 +101,7 @@ class _EPageState extends State<LoginPage> {
body: SafeArea(
top: true,
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(75.rpx, 0.rpx, 75.rpx, 0),
padding: EdgeInsetsDirectional.fromSTEB(75.rpx, 0.rpx, 75.rpx, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -116,8 +115,7 @@ class _EPageState extends State<LoginPage> {
backgroundColor: Colors.transparent, // 容器背景色
highlightColor:
themeController.currentColor.sc21, // 点击时的背景色
padding:
EdgeInsets.zero, // 这里去掉外部的 padding避免影响点击范围
padding: EdgeInsets.zero, // 这里去掉外部的 padding避免影响点击范围
onTap: () {
Get.back();
},
@@ -156,8 +154,7 @@ class _EPageState extends State<LoginPage> {
fontSize: 48.rpx,
letterSpacing: 0.0,
//todo 颜色
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
),
),
),
@@ -181,8 +178,7 @@ class _EPageState extends State<LoginPage> {
fontSize: 30.rpx,
letterSpacing: 0.0,
//todo 颜色
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
),
),
),
@@ -206,8 +202,7 @@ class _EPageState extends State<LoginPage> {
fontSize: 48.rpx,
letterSpacing: 0.0,
//todo 颜色
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
),
),
),
@@ -215,8 +210,8 @@ class _EPageState extends State<LoginPage> {
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 35.rpx, 0, 0),
padding:
EdgeInsetsDirectional.fromSTEB(0, 35.rpx, 0, 0),
child: CustomCard(
borderRadius: AppConstants()
.button_container_radius, // 圆角半径
@@ -239,16 +234,15 @@ class _EPageState extends State<LoginPage> {
child: Container(
width: bodysize.maxWidth,
height: MediaQuery.sizeOf(context).height *
0.055,
height:
MediaQuery.sizeOf(context).height * 0.055,
constraints: BoxConstraints(
minWidth: 500.rpx,
minHeight: 90.rpx,
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
@@ -256,8 +250,8 @@ class _EPageState extends State<LoginPage> {
'登录页.本机号码一键登录/注册'.tr,
style: TextStyle(
//todo 颜色
color: themeController
.currentColor.sc3,
color:
themeController.currentColor.sc3,
fontFamily: 'Inter',
fontSize: AppConstants()
.normal_text_fontSize,
@@ -279,8 +273,8 @@ class _EPageState extends State<LoginPage> {
),
ClickableContainer(
backgroundColor: Colors.transparent, // 容器背景色
highlightColor: themeController
.currentColor.sc21, // 点击时的背景色
highlightColor:
themeController.currentColor.sc21, // 点击时的背景色
padding: EdgeInsetsDirectional.fromSTEB(
16.rpx, 10.rpx, 16.rpx, 10.rpx),
onTap: () {
@@ -306,17 +300,14 @@ class _EPageState extends State<LoginPage> {
decoration: BoxDecoration(),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Theme(
data: ThemeData(
checkboxTheme: CheckboxThemeData(
visualDensity:
VisualDensity.compact,
visualDensity: VisualDensity.compact,
materialTapTargetSize:
MaterialTapTargetSize
.shrinkWrap,
MaterialTapTargetSize.shrinkWrap,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(64),
@@ -344,16 +335,13 @@ class _EPageState extends State<LoginPage> {
width: 1.5,
color: Colors.white,
),
activeColor:
stringToColor("#FF9F66"),
checkColor:
Colors.white,
activeColor: stringToColor("#FF9F66"),
checkColor: Colors.white,
),
)),
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
0.rpx, 10.rpx, 0.rpx, 0.rpx),
child: Container(
width: bodysize.maxWidth,
@@ -380,8 +368,8 @@ class _EPageState extends State<LoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 26.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
TextSpan(
@@ -400,8 +388,8 @@ class _EPageState extends State<LoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 26.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
TextSpan(
@@ -420,8 +408,8 @@ class _EPageState extends State<LoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 26.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
],
@@ -449,8 +437,8 @@ class _EPageState extends State<LoginPage> {
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 36.rpx),
padding:
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 36.rpx),
child: Text(
'登录页.其他登录方式'.tr,
style: TextStyle(
@@ -483,13 +471,11 @@ class _EPageState extends State<LoginPage> {
TopSlideNotification.show(
context,
text: "登录页.未同意协议".tr,
textColor:
themeController.currentColor.sc9,
textColor: themeController.currentColor.sc9,
);
return;
}
await loginController
.wxLoginSendAuth(context);
await loginController.wxLoginSendAuth(context);
},
child: Container(
width: 91.rpx,

View File

@@ -99,7 +99,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -113,8 +113,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
body: SafeArea(
top: true,
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(75.rpx, 0.rpx, 75.rpx, 0),
padding: EdgeInsetsDirectional.fromSTEB(75.rpx, 0.rpx, 75.rpx, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -165,8 +164,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontFamily: 'Inter',
fontSize: 48.rpx,
letterSpacing: 0.0,
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
),
),
),
@@ -189,8 +187,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontFamily: 'Inter',
fontSize: 30.rpx,
letterSpacing: 0.0,
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
),
),
),
@@ -208,8 +205,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
decoration: BoxDecoration(
color: Colors.transparent,
borderRadius: BorderRadius.circular(
AppConstants()
.button_container_radius),
AppConstants().button_container_radius),
border: Border.all(
color: themeController.currentColor.sc4
.withOpacity(0.5),
@@ -234,8 +230,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
AlignmentDirectional(-1, 0),
child: TextFormField(
onChanged: (value) {
loginController
.model.phone = value;
loginController.model.phone =
value;
},
autofocus: false,
obscureText: false,
@@ -257,8 +253,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
enabledBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
Color(0x00000000),
color: Color(0x00000000),
width: 1.rpx,
),
borderRadius:
@@ -268,16 +263,14 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
focusedBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
Color(0x00000000),
color: Color(0x00000000),
width: 1.rpx,
),
borderRadius:
BorderRadius.circular(
8.rpx),
),
errorBorder:
OutlineInputBorder(
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.red,
width: 1.rpx,
@@ -332,8 +325,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
decoration: BoxDecoration(
color: Colors.transparent,
borderRadius: BorderRadius.circular(
AppConstants()
.button_container_radius),
AppConstants().button_container_radius),
border: Border.all(
color: themeController.currentColor.sc4
.withOpacity(0.5),
@@ -370,8 +362,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontSize: 26.rpx,
letterSpacing: 0.0,
),
hintText:
'其他手机登录页.输入验证码'.tr,
hintText: '其他手机登录页.输入验证码'.tr,
hintStyle: TextStyle(
fontFamily: 'Inter',
fontSize: 26.rpx,
@@ -382,8 +373,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
enabledBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
Color(0x00000000),
color: Color(0x00000000),
width: 1.rpx,
),
borderRadius:
@@ -393,16 +383,14 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
focusedBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
Color(0x00000000),
color: Color(0x00000000),
width: 1.rpx,
),
borderRadius:
BorderRadius.circular(
8.rpx),
),
errorBorder:
OutlineInputBorder(
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.red,
width: 1.rpx,
@@ -422,8 +410,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
8.rpx),
),
filled: true,
fillColor:
Colors.transparent,
fillColor: Colors.transparent,
),
style: TextStyle(
fontFamily: 'Inter',
@@ -442,8 +429,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
26.rpx, 0, 0, 0),
child: Row(
mainAxisSize: MainAxisSize.max,
@@ -467,46 +453,36 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
DailyLogUtils.writeLog(
"点击获取验证码");
if (countdownController
.countdown
.value !=
.countdown.value !=
0) {
return;
}
ApiResponse
apiResponse =
ApiResponse apiResponse =
await loginController
.getCode(
context);
.getCode(context);
if (apiResponse.code !=
HttpStatusCodes
.ok) {
TopSlideNotification
.show(
HttpStatusCodes.ok) {
TopSlideNotification.show(
context,
text: apiResponse
.msg!,
text: apiResponse.msg!,
textColor:
themeController
.currentColor
.sc9,
);
await DailyLogUtils
.writeLog(
await DailyLogUtils.writeLog(
"获取验证码成功,${apiResponse}");
return;
} else {
TopSlideNotification
.show(
TopSlideNotification.show(
context,
text: apiResponse
.msg!,
text: apiResponse.msg!,
textColor:
themeController
.currentColor
.sc2,
);
await DailyLogUtils
.writeLog(
await DailyLogUtils.writeLog(
"获取验证码失败,${apiResponse}");
}
countdownController
@@ -522,17 +498,13 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
await DailyLogUtils
.writeLog(
"获取验证码异常,${e}");
edm.EasyDartModule
.logger
.info(
"获取验证码异常:${e}");
edm.EasyDartModule.logger
.info("获取验证码异常:${e}");
}
},
child: Container(
alignment:
Alignment.center,
constraints:
BoxConstraints(
alignment: Alignment.center,
constraints: BoxConstraints(
minWidth: 150.rpx,
),
child: Text(
@@ -544,8 +516,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
: '${countdownController.countdown.value}' +
"其他手机登录页.秒".tr,
style: TextStyle(
fontFamily:
'Readex Pro',
fontFamily: 'Readex Pro',
color: themeController
.currentColor.sc2,
fontSize: AppConstants()
@@ -566,8 +537,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 26.rpx, 0, 0),
padding:
EdgeInsetsDirectional.fromSTEB(0, 26.rpx, 0, 0),
child: CustomCard(
borderRadius: AppConstants()
.button_container_radius, // 圆角半径
@@ -585,38 +556,34 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
);
} else {
ApiResponse apiResponse =
await loginController
.login(context);
await loginController.login(context);
if (apiResponse.code !=
HttpStatusCodes.ok) {
TopSlideNotification.show(
context,
text: apiResponse.msg!,
textColor: themeController
.currentColor.sc9,
textColor:
themeController.currentColor.sc9,
);
} else {
// await dealBindProcess();
CountdownController
countdownController = Get.find();
countdownController.countdown.value =
0;
CountdownController countdownController =
Get.find();
countdownController.countdown.value = 0;
// 登录成功,跳转到主页面
TopSlideNotification.show(
context,
text: "其他手机登录页.登录成功".tr,
textColor: themeController
.currentColor.sc2,
textColor:
themeController.currentColor.sc2,
);
// Get.offAllNamed('/homePage');
Get.offAllNamed(
"/mianPageBottomChange");
Get.offAllNamed("/mianPageBottomChange");
}
}
} catch (e) {
await DailyLogUtils.writeLog("登录失败,${e}");
edm.EasyDartModule.logger
.info("登录失败:${e}");
edm.EasyDartModule.logger.info("登录失败:${e}");
}
},
colors: [
@@ -626,25 +593,23 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
child: Container(
width: bodysize.maxWidth,
height: MediaQuery.sizeOf(context).height *
0.055,
height:
MediaQuery.sizeOf(context).height * 0.055,
constraints: BoxConstraints(
minWidth: 500.rpx,
minHeight: 90.rpx,
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'其他手机登录页.登录'.tr,
style: TextStyle(
color: themeController
.currentColor.sc3,
color: themeController.currentColor.sc3,
fontFamily: 'Inter',
fontSize: AppConstants()
.normal_text_fontSize,
fontSize:
AppConstants().normal_text_fontSize,
letterSpacing: 0.0,
),
),
@@ -663,17 +628,14 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
decoration: BoxDecoration(),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Theme(
data: ThemeData(
checkboxTheme: CheckboxThemeData(
visualDensity:
VisualDensity.compact,
visualDensity: VisualDensity.compact,
materialTapTargetSize:
MaterialTapTargetSize
.shrinkWrap,
MaterialTapTargetSize.shrinkWrap,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(64),
@@ -708,8 +670,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
)),
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
0.rpx, 10.rpx, 0.rpx, 0.rpx),
child: Container(
width: bodysize.maxWidth,
@@ -736,8 +697,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 20.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
TextSpan(
@@ -756,8 +717,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 20.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
TextSpan(
@@ -776,8 +737,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
fontFamily: 'Inter',
letterSpacing: 0.0,
fontSize: 20.rpx,
color: stringToColor(
"#FF9F66"),
color:
stringToColor("#FF9F66"),
),
),
],
@@ -805,8 +766,8 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 36.rpx),
padding:
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 36.rpx),
child: Text(
AppConstants().ent_type == 1
? '登录页.欢迎使用太和e护'.tr
@@ -837,13 +798,11 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
TopSlideNotification.show(
context,
text: "登录页.未同意协议".tr,
textColor:
themeController.currentColor.sc9,
textColor: themeController.currentColor.sc9,
);
return;
}
await loginController
.wxLoginSendAuth(context);
await loginController.wxLoginSendAuth(context);
},
child: Container(
width: 91.rpx,

View File

@@ -22,7 +22,7 @@ class _EPageState extends State<EPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Scaffold(
appBar: AppBar(
backgroundColor: themeController.currentColor.sc17,

View File

@@ -30,7 +30,7 @@ class _FollowPageState extends State<FollowPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
// decoration: BoxDecoration(
// image: DecorationImage(
@@ -86,7 +86,9 @@ class _FollowPageState extends State<FollowPage> {
// child: widget.webView,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(AppConstants().ent_type == 1?'assets/img/followus.png':"assets/img/huanshuiF.png"), // 本地图片
image: AssetImage(AppConstants().ent_type == 1
? 'assets/img/followus.png'
: "assets/img/huanshuiF.png"), // 本地图片
fit: BoxFit.cover, // 填满整个 Container
),
),

View File

@@ -34,7 +34,7 @@ class _HelpPageState extends State<HelpPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -79,7 +79,7 @@ class _MessagePageState extends State<MessagePage> {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -253,7 +253,6 @@ class _MessagePageState extends State<MessagePage> {
],
),
),
SizedBox(height: 17.rpx),
],
),

View File

@@ -39,7 +39,7 @@ class _MinePageState extends State<MinePage> {
int login = userInfoController.model.login!;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -24,7 +24,7 @@ class _BackMovementPageState extends State<BackMovementPage> {
final double spacing = 34.rpx;
final double buttonHeight = 101.rpx;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
child: Scaffold(
appBar: AppBar(
@@ -75,8 +75,7 @@ class _BackMovementPageState extends State<BackMovementPage> {
SizedBox(height: 148.rpx),
Text(
intensity.toInt().toString(),
style:
TextStyle(color: Colors.white, fontSize: 160.rpx),
style: TextStyle(color: Colors.white, fontSize: 160.rpx),
),
SizedBox(height: 41.rpx),
SizedBox(
@@ -91,17 +90,14 @@ class _BackMovementPageState extends State<BackMovementPage> {
child: SizedBox(
width: 60.rpx,
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('',
style: TextStyle(
color: Colors.grey,
fontSize: 30.rpx)),
color: Colors.grey, fontSize: 30.rpx)),
Text('',
style: TextStyle(
color: Colors.grey,
fontSize: 30.rpx)),
color: Colors.grey, fontSize: 30.rpx)),
],
),
),
@@ -126,8 +122,7 @@ class _BackMovementPageState extends State<BackMovementPage> {
trackHeight: 60.rpx,
thumbShape: RoundSliderThumbShape(
enabledThumbRadius: 45.rpx),
overlayShape:
const RoundSliderOverlayShape(
overlayShape: const RoundSliderOverlayShape(
overlayRadius: 20),
),
child: Slider(
@@ -159,8 +154,8 @@ class _BackMovementPageState extends State<BackMovementPage> {
alignment: Alignment.centerLeft,
child: Text(
'按摩定时',
style: TextStyle(
color: Colors.white70, fontSize: 30.rpx),
style:
TextStyle(color: Colors.white70, fontSize: 30.rpx),
),
),
),
@@ -169,8 +164,7 @@ class _BackMovementPageState extends State<BackMovementPage> {
padding: EdgeInsets.fromLTRB(40.rpx, 0, 40.rpx, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children:
List.generate(timeOptions.length, (index) {
children: List.generate(timeOptions.length, (index) {
final min = timeOptions[index];
final isSelected = selectedTime == min;
return SizedBox(
@@ -185,9 +179,8 @@ class _BackMovementPageState extends State<BackMovementPage> {
backgroundColor: isSelected
? Colors.cyanAccent
: Colors.blue.shade900,
foregroundColor: isSelected
? Colors.black
: Colors.white,
foregroundColor:
isSelected ? Colors.black : Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6),
),

View File

@@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
class HomeDeviceType extends StatefulWidget {
HomeDeviceType({super.key});
@override
@@ -25,7 +24,7 @@ class _HomeDeviceTypeState extends State<HomeDeviceType> {
// }
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -84,8 +83,8 @@ class _HomeDeviceTypeState extends State<HomeDeviceType> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
48.rpx, 24.rpx, 0, 0),
padding:
EdgeInsetsDirectional.fromSTEB(48.rpx, 24.rpx, 0, 0),
child: Text(
'选择类型',
style: TextStyle(

View File

@@ -20,7 +20,7 @@ class _MattressControlPageState extends State<MattressControlPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
// onTap: () => FocusScope.of(context).unfocus(),
// // onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -23,7 +23,7 @@ class ShareDeviceDetailWidget extends GetView {
type.value = shareInfo['op_type'];
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Scaffold(
key: scaffoldKey,
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,

View File

@@ -44,7 +44,7 @@ class _MhAboutUsPageState extends State<MhAboutUsPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -24,7 +24,7 @@ class AddressListPage extends GetView<AddressListController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -145,15 +145,14 @@ class AddressListPage extends GetView<AddressListController> {
Align(
alignment: AlignmentDirectional(0, 1),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(15, 15, 15,
AppConstants.page_button_bottom_padding),
padding: EdgeInsetsDirectional.fromSTEB(
15, 15, 15, AppConstants.page_button_bottom_padding),
child: Container(
width: bodysize!.maxWidth,
height: bodysize!.maxHeight * 0.056,
decoration: BoxDecoration(
// color: Color(0xFFF6F6F6),
border:
Border.all(width: 0, color: Color(0XFF85F5FF)),
border: Border.all(width: 0, color: Color(0XFF85F5FF)),
borderRadius: BorderRadius.circular(12),
),
child: TextButton(

View File

@@ -33,7 +33,7 @@ class _ApplyRepairSuccessState extends State<ApplyRepairSuccess> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

File diff suppressed because it is too large Load Diff

View File

@@ -67,7 +67,7 @@ class _BluetoothPageState extends State<BluetoothPage> {
bodysize = cc;
final isBind = obsData['bind_type'] == 1;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -29,7 +29,7 @@ class BookInfoPage extends GetView<BookInfoController> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -24,7 +24,7 @@ class BookSuccessPage extends GetView {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -115,8 +115,8 @@ class BookSuccessPage extends GetView {
),
),
Container(
margin: EdgeInsets.only(
left: 30.rpx, right: 30.rpx, top: 55.rpx),
margin:
EdgeInsets.only(left: 30.rpx, right: 30.rpx, top: 55.rpx),
width: bodysize!.maxWidth,
decoration: BoxDecoration(
color: Color(0xFF003058),
@@ -130,8 +130,7 @@ class BookSuccessPage extends GetView {
for (var item in infoList)
Container(
height: 60.rpx,
padding:
EdgeInsets.symmetric(horizontal: 35.rpx),
padding: EdgeInsets.symmetric(horizontal: 35.rpx),
alignment: Alignment.centerLeft,
child: Row(
children: [

View File

@@ -18,7 +18,7 @@ class DeletedAccountPage extends GetView {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -83,8 +83,7 @@ class DeletedAccountPage extends GetView {
borderRadius: BorderRadius.circular(12),
),
child: Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(
padding: const EdgeInsetsDirectional.fromSTEB(
21, 0, 22, 0),
child: Container(
width: MediaQuery.sizeOf(context).width,
@@ -116,8 +115,7 @@ class DeletedAccountPage extends GetView {
Container(
child: Column(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
@@ -127,8 +125,8 @@ class DeletedAccountPage extends GetView {
style: TextStyle(
fontSize: AppFontsize
.normal_text_size, // 设置字体大小
color: Color(
0xFF9AA0B3), // 默认颜色
color:
Color(0xFF9AA0B3), // 默认颜色
),
children: [
TextSpan(
@@ -142,13 +140,11 @@ class DeletedAccountPage extends GetView {
),
),
TextSpan(
text:
",可先进行解绑后再进行注销操作。",
text: ",可先进行解绑后再进行注销操作。",
style: TextStyle(
fontSize: AppFontsize
.normal_text_size,
color:
Color(0xFF9AA0B3),
color: Color(0xFF9AA0B3),
),
),
],
@@ -162,8 +158,7 @@ class DeletedAccountPage extends GetView {
style: TextStyle(
fontSize: AppFontsize
.title_size, // 设置字体大小
color:
const Color(0xFFFFFFFF),
color: const Color(0xFFFFFFFF),
),
),
const SizedBox(
@@ -185,8 +180,7 @@ class DeletedAccountPage extends GetView {
style: TextStyle(
fontSize: AppFontsize
.title_size, // 设置字体大小
color:
const Color(0xFFFFFFFF),
color: const Color(0xFFFFFFFF),
),
),
const SizedBox(
@@ -208,8 +202,7 @@ class DeletedAccountPage extends GetView {
style: TextStyle(
fontSize: AppFontsize
.title_size, // 设置字体大小
color:
const Color(0xFFFFFFFF),
color: const Color(0xFFFFFFFF),
),
),
const SizedBox(
@@ -226,12 +219,10 @@ class DeletedAccountPage extends GetView {
],
)),
]
.divide(
const SizedBox(height: 24))
.divide(const SizedBox(height: 24))
.addToStart(
const SizedBox(height: 14))
.addToEnd(
const SizedBox(height: 17)),
.addToEnd(const SizedBox(height: 17)),
),
),
),
@@ -292,8 +283,8 @@ class DeletedAccountPage extends GetView {
height: 40,
padding: const EdgeInsetsDirectional.fromSTEB(
24, 0, 24, 0),
iconPadding: const EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 0),
iconPadding:
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
color: const Color(0xFFFF7159),
textStyle: TextStyle(
fontFamily: 'Readex Pro',

View File

@@ -41,7 +41,7 @@ class _MHTBindDeviceSuccessState extends State<MHTBindDeviceSuccess> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -50,7 +50,7 @@ class _MHTBindDeviceTypePageState extends State<MHTBindDeviceTypePage> {
}
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -287,7 +287,7 @@ class _MHTBlueteethDevicePageState extends State<MHTBlueteethDevicePage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -64,7 +64,7 @@ class _MHTCalibrationPageCopyState extends State<MHTCalibrationPageCopy> {
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -73,7 +73,7 @@ class _MHTCalibrationPageState extends State<MHTCalibrationPage> {
return WillPopScope(
child: LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -108,7 +108,8 @@ class _MHTWifiPageState extends State<MHTWifiPage> {
// 导航到下一页
if (blueteethBindController.wifiStatus.value != 1) {
showConfirmDialog(context, Container(), "未配置网络提示".tr, onConfirm: () async {
showConfirmDialog(context, Container(), "未配置网络提示".tr,
onConfirm: () async {
_cleanupResources();
await _disconnectDevice();
Get.toNamed("/calibrationPage");
@@ -124,7 +125,7 @@ class _MHTWifiPageState extends State<MHTWifiPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -33,7 +33,7 @@ class _DeviceListPageState extends State<DeviceListPage> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -40,7 +40,7 @@ class DevicePeopleInfo extends GetView<PeopleInfoController> {
});
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -92,8 +92,8 @@ class DevicePeopleInfo extends GetView<PeopleInfoController> {
top: true,
child: Obx(
() => Container(
padding: EdgeInsets.only(
left: 30.rpx, right: 30.rpx, top: 30.rpx),
padding:
EdgeInsets.only(left: 30.rpx, right: 30.rpx, top: 30.rpx),
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height * 1.123,
// decoration: BoxDecoration(
@@ -111,13 +111,12 @@ class DevicePeopleInfo extends GetView<PeopleInfoController> {
backgroundColor: Color(0xFFFF036060),
highlightColor: Colors.transparent,
borderRadius: 16.rpx,
padding: EdgeInsets.fromLTRB(
30.rpx, 20.rpx, 0, 20.rpx),
padding:
EdgeInsets.fromLTRB(30.rpx, 20.rpx, 0, 20.rpx),
onTap: () {},
child: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(16.rpx)),
borderRadius: BorderRadius.circular(16.rpx)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -134,8 +133,8 @@ class DevicePeopleInfo extends GetView<PeopleInfoController> {
),
getInfoRow(
context, "名称:${data["name"] ?? "-"}"),
getInfoRow(context,
"房间:${data["roomName"] ?? "-"}"),
getInfoRow(
context, "房间:${data["roomName"] ?? "-"}"),
getInfoRow(
context,
"设备状态:${data["status"]?["status"] == 1 ? "已绑定" : data["status"]?["status"] == 0 ? "已绑定" : "-"}",

View File

@@ -29,7 +29,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
controller.model.type = 1;
controller.model.account = '';
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -76,14 +76,12 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height * 1,
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(30.rpx, 0, 30.rpx, 0),
padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 0, 30.rpx, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0, 30.rpx, 0, 0),
padding: EdgeInsetsDirectional.fromSTEB(0, 30.rpx, 0, 0),
child: Container(
width: MediaQuery.sizeOf(context).width,
decoration: BoxDecoration(
@@ -99,8 +97,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
children: [
Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'将以下设备分享给您的家人或朋友 ',
@@ -132,8 +129,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
minHeight: 46,
),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(16.rpx),
borderRadius: BorderRadius.circular(16.rpx),
),
child: Align(
alignment:
@@ -147,8 +143,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
hintText: '请输入对方手机号/邮箱号',
hintStyle: TextStyle(
fontFamily: 'Readex Pro',
color:
const Color(0xFF929699),
color: const Color(0xFF929699),
fontSize: 36.rpx,
),
enabledBorder:
@@ -166,8 +161,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
errorBorder:
const UnderlineInputBorder(
borderSide: BorderSide(
color: Colors.red,
width: 0),
color: Colors.red, width: 0),
),
focusedErrorBorder:
const UnderlineInputBorder(
@@ -185,8 +179,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
fontSize: 36.rpx,
),
onChanged: (value) {
controller.model.account =
value;
controller.model.account = value;
},
),
)),
@@ -245,8 +238,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
),
Obx(() {
double h = 33.rpx;
bool check =
controller.model.type == 1;
bool check = controller.model.type == 1;
return Container(
height: 33.rpx,
@@ -262,8 +254,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
h / 2),
border: Border.all(
width: check ? 1 : 0.5,
color:
Color(0xFFC8CBD2),
color: Color(0xFFC8CBD2),
),
),
child: check
@@ -445,8 +436,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
// ✅ 只包住响应式控件部分
Obx(() {
double h = 33.rpx;
bool check =
controller.model.type == 2;
bool check = controller.model.type == 2;
return Container(
height: 33.rpx,
@@ -462,8 +452,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
h / 2),
border: Border.all(
width: check ? 1 : 0.5,
color:
Color(0xFFC8CBD2),
color: Color(0xFFC8CBD2),
),
),
child: check
@@ -517,8 +506,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
text: '发送邀请'.tr,
options: FFButtonOptions(
height: 60.rpx,
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
30.rpx, 0, 30.rpx, 0),
color: const Color(0xFF84F5FF),
textStyle: TextStyle(
@@ -528,8 +516,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
letterSpacing: 0.0,
),
elevation: 0,
borderRadius:
BorderRadius.circular(50),
borderRadius: BorderRadius.circular(50),
),
),
),
@@ -551,11 +538,11 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
mainAxisSize: MainAxisSize.max,
children: [
Align(
alignment:
const AlignmentDirectional(-1, 0),
alignment: const AlignmentDirectional(-1, 0),
child: Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(14, 0, 0, 16),
padding:
const EdgeInsetsDirectional.fromSTEB(
14, 0, 0, 16),
child: Text(
'已分享用户'.tr,
style: TextStyle(
@@ -570,10 +557,8 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
Obx(
() {
// 检查 shareUser 是否为空或数量为 0
if (controller.model.shareUser ==
null ||
controller
.model.shareUser!.isEmpty) {
if (controller.model.shareUser == null ||
controller.model.shareUser!.isEmpty) {
// return Container(
// alignment: AlignmentDirectional
// .centerStart, // 确保文字靠左对齐
@@ -611,8 +596,7 @@ class ShareDeviceWidget extends GetView<MHDeviceShareController> {
// height: 13,
// ))
.addToEnd(const SizedBox(
height:
AppConstants.list_end_height,
height: AppConstants.list_end_height,
)),
);
},

View File

@@ -47,7 +47,7 @@ class EditAddressPage extends GetView<AddressController>
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -62,7 +62,7 @@ class _ExperienceStorePageState extends State<ExperienceStorePage> {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -130,8 +130,8 @@ class _ExperienceStorePageState extends State<ExperienceStorePage> {
//todo
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 40.rpx, 0, 38.rpx),
padding:
EdgeInsetsDirectional.fromSTEB(0, 40.rpx, 0, 38.rpx),
child: SearchWidget(
keyword: controller.model.keyword,
color: controller.model.color,
@@ -147,8 +147,7 @@ class _ExperienceStorePageState extends State<ExperienceStorePage> {
),
Obx(() {
if (controller
.model.experienceStoreModelList.length ==
if (controller.model.experienceStoreModelList.length ==
0) {
return CircularProgressIndicator(
strokeWidth: 1,
@@ -166,14 +165,12 @@ class _ExperienceStorePageState extends State<ExperienceStorePage> {
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: List.generate(
controller
.model
.experienceStoreModelList
controller.model.experienceStoreModelList
.length, (index) {
return ExperienceStoreWidget(
index: index,
data: controller.model
.experienceStoreModelList[index]);
data: controller
.model.experienceStoreModelList[index]);
})
.divide(const SizedBox(
height: 25,

View File

@@ -52,7 +52,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
});
int login = userInfoController.model.login!;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// // onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -143,8 +143,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
personInfo.value = list[0];
homeController.selectPerson.value = list[0];
homeController.selectDevcie.value = list[0]["mac"];
deviceController
.getSleeps(formFieldController.value);
deviceController.getSleeps(formFieldController.value);
homeController.updateAll();
});
}
@@ -176,8 +175,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
'健康报告'.tr,
style: TextStyle(
fontFamily: 'Readex Pro',
color:
themeController.currentColor.sc3,
color: themeController.currentColor.sc3,
letterSpacing: 0,
fontSize: 30.rpx,
),
@@ -193,37 +191,29 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
Colors.transparent),
),
child: ValueListenableBuilder(
valueListenable:
formFieldController,
valueListenable: formFieldController,
builder: (c, a, s) => ClipRRect(
borderRadius:
BorderRadius.circular(
36.rpx),
BorderRadius.circular(36.rpx),
child: Theme(
data: Theme.of(context)
.copyWith(
splashColor:
Colors.transparent,
data: Theme.of(context).copyWith(
splashColor: Colors.transparent,
highlightColor:
Colors.transparent,
hoverColor:
Colors.transparent,
hoverColor: Colors.transparent,
),
child: FlutterFlowDropDown<
String>(
controller:
formFieldController,
child:
FlutterFlowDropDown<String>(
controller: formFieldController,
options: deviceController
.personnelList.value
.map<String>((d) =>
"${d["mac"]}")
.map<String>(
(d) => "${d["mac"]}")
.toList(),
optionLabels:
deviceController
optionLabels: deviceController
.personnelList.value
.map<String>((d) {
var s =
d["name"] ?? d["mac"];
var s = d["name"] ?? d["mac"];
if (s == null) {
return "";
} else {
@@ -231,22 +221,17 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
}
}).toList(),
onChanged: (val) {
final list =
deviceController
.personnelList
.value;
final list = deviceController
.personnelList.value;
final selectedPerson =
list.firstWhere(
(element) =>
element['mac'] ==
val,
element['mac'] == val,
orElse: () =>
null, // 防止找不到时报错
);
homeController
.selectPerson
.value =
selectedPerson;
homeController.selectPerson
.value = selectedPerson;
personInfo.value =
selectedPerson;
@@ -255,19 +240,17 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
(6).obs;
print("$val");
if (val == null) {
homeController.sleepDays
.value = [];
} else {
homeController
.selectDevcie
.sleepDays.value = [];
} else {
homeController.selectDevcie
.value =
formFieldController
.value!;
deviceController.getSleeps(
formFieldController
.value);
homeController
.updateAll();
homeController.updateAll();
}
},
width: 300.rpx,
@@ -283,24 +266,19 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
icon: Icon(
Icons
.keyboard_arrow_down_rounded,
color: stringToColor(
"#FFFFFF"),
color:
stringToColor("#FFFFFF"),
size: 30.rpx,
),
fillColor: stringToColor(
"#184468"),
fillColor:
stringToColor("#184468"),
elevation: 2,
borderColor:
Colors.transparent,
borderColor: Colors.transparent,
borderWidth: 2,
borderRadius: 100.rpx,
margin:
EdgeInsetsDirectional
.fromSTEB(
32.rpx,
8.rpx,
32.rpx,
8.rpx),
margin: EdgeInsetsDirectional
.fromSTEB(32.rpx, 8.rpx,
32.rpx, 8.rpx),
hidesUnderline: true,
isOverButton: false,
isSearchable: false,
@@ -332,8 +310,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
'date': DateTime.now().millisecondsSinceEpoch,
'mac': homeController.selectDevcie.value,
'person': homeController.selectPerson.value,
'backgroundImg':
'assets/images/new_background.png',
'backgroundImg': 'assets/images/new_background.png',
'arrow': false,
'noBackImg': true,
'person_show': false,

View File

@@ -37,7 +37,7 @@ class _MhtSleepReportReturnPageState extends State<MhtSleepReportReturnPage> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -176,7 +176,7 @@ class _NewHomePageState extends State<NewHomePage> {
});
int login = userInfoController.model.login!;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -244,8 +244,7 @@ class _NewHomePageState extends State<NewHomePage> {
child: Column(
children: [
Padding(
padding:
EdgeInsets.fromLTRB(17.rpx, 30.rpx, 0, 0),
padding: EdgeInsets.fromLTRB(17.rpx, 30.rpx, 0, 0),
child: Row(
children: [
Obx(() {
@@ -279,8 +278,8 @@ class _NewHomePageState extends State<NewHomePage> {
if (weatherModelController
.model.weatherIconurl !=
null &&
weatherModelController.model
.weatherIconurl!.isNotEmpty)
weatherModelController
.model.weatherIconurl!.isNotEmpty)
Container(
width: 35.rpx,
height: 26.rpx,
@@ -321,8 +320,7 @@ class _NewHomePageState extends State<NewHomePage> {
userInfoController.model.login == 0) {
TopSlideNotification.show(context,
text: "请先登录".tr,
textColor:
themeController.currentColor.sc9);
textColor: themeController.currentColor.sc9);
Get.toNamed("/loginPage");
} else {
Get.toNamed("/mHTDeviceTypePage");
@@ -331,11 +329,10 @@ class _NewHomePageState extends State<NewHomePage> {
child: Container(
width: MediaQuery.sizeOf(context).width,
height: 302.rpx,
padding: EdgeInsets.only(
top: 90.rpx, bottom: 80.rpx),
padding:
EdgeInsets.only(top: 90.rpx, bottom: 80.rpx),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(borderRadius),
borderRadius: BorderRadius.circular(borderRadius),
border: Border.all(
color: stringToColor("#85F5FF"), // 边框颜色
width: 1.rpx, // 边框宽度
@@ -383,8 +380,7 @@ class _NewHomePageState extends State<NewHomePage> {
formFieldController.value = list[0]["mac"];
personInfo.value = list[0];
homeController.selectPerson.value = list[0];
homeController.selectDevcie.value =
list[0]["mac"];
homeController.selectDevcie.value = list[0]["mac"];
deviceController
.getHomeSleeps(formFieldController.value);
homeController.updateAll();
@@ -393,60 +389,48 @@ class _NewHomePageState extends State<NewHomePage> {
return SingleChildScrollView(
child: Column(
children: [
if (homeController.personnelList.value.length !=
0)
if (homeController.personnelList.value.length != 0)
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
30.rpx, 40.rpx, 30.rpx, 10.rpx),
child: Container(
width: MediaQuery.sizeOf(context).width,
height:
MediaQuery.sizeOf(context).height *
0.184,
MediaQuery.sizeOf(context).height * 0.184,
constraints: BoxConstraints(
minHeight: 354.rpx,
),
decoration: BoxDecoration(
color: stringToColor("#003058"),
borderRadius:
BorderRadius.circular(20.rpx),
borderRadius: BorderRadius.circular(20.rpx),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
20.rpx,
20.rpx,
16.rpx,
25.rpx),
padding: EdgeInsetsDirectional.fromSTEB(
20.rpx, 20.rpx, 16.rpx, 25.rpx),
child: Container(
width: MediaQuery.sizeOf(context)
.width,
width:
MediaQuery.sizeOf(context).width,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [
ScrollbarTheme(
data: ScrollbarThemeData(
thumbColor:
MaterialStateProperty
.all(Colors
.transparent),
MaterialStateProperty.all(
Colors.transparent),
trackColor:
MaterialStateProperty
.all(Colors
.transparent),
MaterialStateProperty.all(
Colors.transparent),
trackBorderColor:
MaterialStateProperty
.all(Colors
.transparent),
MaterialStateProperty.all(
Colors.transparent),
),
child:
ValueListenableBuilder(
child: ValueListenableBuilder(
valueListenable:
formFieldController,
builder: (c, a, s) =>
@@ -461,12 +445,10 @@ class _NewHomePageState extends State<NewHomePage> {
.toList(),
optionLabels:
deviceController
.personnelList
.value
.map<String>(
(d) {
var s = d["name"] ??
d["mac"];
.personnelList.value
.map<String>((d) {
var s =
d["name"] ?? d["mac"];
if (s == null) {
return "";
} else {
@@ -481,8 +463,7 @@ class _NewHomePageState extends State<NewHomePage> {
final selectedPerson =
list.firstWhere(
(element) =>
element[
'mac'] ==
element['mac'] ==
val,
orElse: () =>
null, // 防止找不到时报错
@@ -521,8 +502,8 @@ class _NewHomePageState extends State<NewHomePage> {
maxHeight: 300.rpx,
textStyle: TextStyle(
fontSize: 28.rpx,
overflow: TextOverflow
.ellipsis,
overflow:
TextOverflow.ellipsis,
color: Colors.white,
),
hintText: '',
@@ -533,8 +514,7 @@ class _NewHomePageState extends State<NewHomePage> {
"#FFFFFF"),
size: 30.rpx,
),
fillColor:
stringToColor(
fillColor: stringToColor(
"##011D33"),
elevation: 2,
borderColor:
@@ -567,15 +547,13 @@ class _NewHomePageState extends State<NewHomePage> {
formFieldController
.value!,
'type': 1,
"person": personInfo
.value,
"person":
personInfo.value,
'backgroundImg':
'assets/images/new_background.png',
'date': DateTime
.now()
'date': DateTime.now()
.millisecondsSinceEpoch,
'person_show':
false,
'person_show': false,
},
);
}
@@ -621,11 +599,9 @@ class _NewHomePageState extends State<NewHomePage> {
width: double.infinity,
decoration: BoxDecoration(),
child: Obx(() => Row(
mainAxisSize:
MainAxisSize.max,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment
.start,
CrossAxisAlignment.start,
children: [
...List.generate(
homeController
@@ -633,23 +609,21 @@ class _NewHomePageState extends State<NewHomePage> {
.value
.length, (index) {
var day = homeController
.homeSleepDays[
index];
.homeSleepDays[index];
bool isSelected =
homeController
.selectedDayIndex
.value ==
index;
return Expanded(
child:
GestureDetector(
child: GestureDetector(
onTap: () {
homeController
.selectedDayIndex
.value = index;
int? timeMillis =
parseToInt(day[
'time']);
parseToInt(
day['time']);
Get.toNamed(
"/newSleepReportPage",
arguments: {
@@ -674,8 +648,7 @@ class _NewHomePageState extends State<NewHomePage> {
},
child: Container(
padding:
EdgeInsets
.only(
EdgeInsets.only(
top: 10.rpx,
bottom: 20.rpx,
),
@@ -718,8 +691,8 @@ class _NewHomePageState extends State<NewHomePage> {
),
),
SizedBox(
height: 12
.rpx),
height:
12.rpx),
Text(
day['date'],
// "哈哈",
@@ -736,8 +709,8 @@ class _NewHomePageState extends State<NewHomePage> {
),
),
SizedBox(
height: 39
.rpx),
height:
39.rpx),
buildScoreOrIcon(
day['score']),
],
@@ -758,8 +731,7 @@ class _NewHomePageState extends State<NewHomePage> {
padding: EdgeInsetsDirectional.fromSTEB(
30.rpx, 40.rpx, 30.rpx, 100.rpx),
child: Column(
children: homeController
.deviceList.entries
children: homeController.deviceList.entries
.map((entry) => HomeDeviceWidget(
roomName: entry.key,
deviceStatusList: entry.value,
@@ -779,12 +751,11 @@ class _NewHomePageState extends State<NewHomePage> {
onTap: () {
if (userInfoController.model.login ==
null ||
userInfoController.model.login ==
0) {
userInfoController.model.login == 0) {
TopSlideNotification.show(context,
text: "请先登录".tr,
textColor: themeController
.currentColor.sc9);
textColor:
themeController.currentColor.sc9);
Get.toNamed("/loginPage");
} else {
Get.toNamed("/mHTDeviceTypePage");
@@ -796,11 +767,10 @@ class _NewHomePageState extends State<NewHomePage> {
padding: EdgeInsets.only(
top: 90.rpx, bottom: 80.rpx),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
borderRadius),
borderRadius:
BorderRadius.circular(borderRadius),
border: Border.all(
color: stringToColor(
"#85F5FF"), // 边框颜色
color: stringToColor("#85F5FF"), // 边框颜色
width: 1.rpx, // 边框宽度
),
),
@@ -841,8 +811,7 @@ class _NewHomePageState extends State<NewHomePage> {
Get.toNamed("/mHTDeviceTypePage");
},
backgroundColor: Colors.transparent,
highlightColor: themeController
.currentColor
highlightColor: themeController.currentColor
.sc21, // 这里可以自定义高亮色,透明就用 Colors.transparent
borderRadius: borderRadius,
padding: EdgeInsetsDirectional.fromSTEB(
@@ -852,12 +821,11 @@ class _NewHomePageState extends State<NewHomePage> {
alignment: Alignment.center,
decoration: BoxDecoration(
border: Border.all(
color: stringToColor(
"#85F5FF"), // 边框颜色
color: stringToColor("#85F5FF"), // 边框颜色
width: 1.rpx, // 边框宽度
),
borderRadius: BorderRadius.circular(
borderRadius),
borderRadius:
BorderRadius.circular(borderRadius),
),
child: Row(
mainAxisSize: MainAxisSize.min,

View File

@@ -32,7 +32,7 @@ class IssueListPage extends GetView<IssueListController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -29,7 +29,7 @@ class _MessageDetailPageState extends State<MessageDetailPage> {
var messageInfo = widget.data;
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -144,7 +144,7 @@ class _MessagePageState extends State<MessagePage> {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -261,7 +261,6 @@ class _MessagePageState extends State<MessagePage> {
),
),
);
}
Container bottomIcon(BuildContext context) {

View File

@@ -50,7 +50,7 @@ class _MyExperiencePageState extends State<MyExperiencePage> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -131,8 +131,7 @@ class _MyExperiencePageState extends State<MyExperiencePage> {
const SizedBox(
height: AppConstants.list_start_height),
...List.generate(
controller.model.bookInfoList.length,
(index) {
controller.model.bookInfoList.length, (index) {
return MyExperienceWidget(
index: index,
bookExperienceListController: controller);

View File

@@ -71,7 +71,7 @@ class _MinePageState extends State<NewMinePage> {
int login = userInfoController.model.login!;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -31,7 +31,7 @@ class _SettingPageState extends State<SettingPage> {
Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, bodySize) {
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -37,7 +37,7 @@ class _PrivacyPolicyPageState extends State<PrivacyPolicyPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -71,6 +71,7 @@ class _PrivacyPolicyPageState extends State<PrivacyPolicyPage> {
fontSize: 30.rpx,
),
),
/// 左边返回按钮
Positioned(
left: 0,

View File

@@ -73,7 +73,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
bodysize = cc;
return WillPopScope(
child: GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -142,8 +142,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
borderRadius: BorderRadius.circular(8),
),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
34.rpx, 10, 0, 0),
child: Container(
decoration: const BoxDecoration(),
@@ -177,8 +176,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
'未命名'),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -198,8 +197,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -218,8 +217,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
'未命名'),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -239,8 +238,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
'未命名'),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -253,12 +252,12 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
child: Text(
'提交时间:' +
(MyUtils.formatDateTimeDay(
data['device'][0][
'create_time']!)),
data['device'][0]
['create_time']!)),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -275,8 +274,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
'未命名'),
style: TextStyle(
fontFamily: 'Readex Pro',
color: const Color(
0xFF929699),
color:
const Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -285,14 +284,13 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
Padding(
padding:
const EdgeInsetsDirectional
.fromSTEB(
0, 10, 0, 24),
.fromSTEB(0, 10, 0, 24),
child: Container(
width: MediaQuery.sizeOf(
context)
width:
MediaQuery.sizeOf(context)
.width,
height: MediaQuery.sizeOf(
context)
height:
MediaQuery.sizeOf(context)
.height *
0.15,
constraints:
@@ -303,30 +301,25 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
child: Container(
width: 100,
height: 100,
child: Obx(() =>
ListView(
shrinkWrap:
true,
child: Obx(() => ListView(
shrinkWrap: true,
scrollDirection:
Axis
.horizontal,
children: getImage(controller
Axis.horizontal,
children: getImage(
controller
.model
.applyRepairModel!)
.divide(
const SizedBox(
width:
12,
width: 12,
))
.addToStart(
const SizedBox(
width:
0,
width: 0,
))))),
)),
]
.divide(
const SizedBox(height: 5))
.divide(const SizedBox(height: 5))
.addToStart(const SizedBox(
height: 5,
)),
@@ -335,12 +328,11 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
),
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(
padding: const EdgeInsetsDirectional.fromSTEB(
0, 25, 0, 25), // 设置上下间距为 34
child: Align(
alignment: AlignmentDirectional
.centerStart, // 文字左对齐
alignment:
AlignmentDirectional.centerStart, // 文字左对齐
child: Text(
'报修状态',
style: TextStyle(
@@ -360,15 +352,12 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
const NeverScrollableScrollPhysics(), // 禁用内部滚动,交由外部滚动视图处理
itemCount: events.length,
itemBuilder: (context, index) {
bool isLast =
index == events.length - 1;
bool isLast = index == events.length - 1;
return TimelineTile(
isFirst: index == 0,
isLast: isLast,
axis:
TimelineAxis.vertical, // 垂直方向时间轴
alignment:
TimelineAlign.start, // 线条左对齐
axis: TimelineAxis.vertical, // 垂直方向时间轴
alignment: TimelineAlign.start, // 线条左对齐
lineXY: 0.5, // 线条和圆圈相对位置
indicatorStyle: IndicatorStyle(
width: 15, // 圆圈的宽度
@@ -388,8 +377,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
),
beforeLineStyle: LineStyle(
color: stringToColor(
"#C8CBD2"), // 上方线条颜色
color:
stringToColor("#C8CBD2"), // 上方线条颜色
thickness: 1, // 线条厚度
),
afterLineStyle: LineStyle(
@@ -410,22 +399,19 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
Obx(() {
if (RepairStatus.completed ==
controller.model.applyRepairModel!
.status &&
controller.model.applyRepairModel!
.score ==
controller
.model.applyRepairModel!.status &&
controller.model.applyRepairModel!.score ==
null) {
return Align(
alignment:
const AlignmentDirectional(1, 0),
alignment: const AlignmentDirectional(1, 0),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
padding: EdgeInsetsDirectional.fromSTEB(
34.rpx, 66.rpx, 0, 48.rpx),
child: Container(
width: 61,
height: MediaQuery.sizeOf(context)
.height *
height:
MediaQuery.sizeOf(context).height *
0.03,
constraints: const BoxConstraints(
minHeight: 24,
@@ -438,8 +424,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
text: '待评价',
options: FFButtonOptions(
height: 40,
padding:
const EdgeInsetsDirectional
padding: const EdgeInsetsDirectional
.fromSTEB(0, 0, 0, 0),
iconPadding:
const EdgeInsetsDirectional
@@ -451,8 +436,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
fontFamily: 'Readex Pro',
// color: Color(0xFF333333),
// color: stringToColor("#D3B684"),
color:
stringToColor("#117EFD"),
color: stringToColor("#117EFD"),
fontSize: 11,
letterSpacing: 0,
),
@@ -460,8 +444,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
borderSide: BorderSide(
// color: Color(0xFFC8CBD2),
// color: stringToColor("#D3B684"),
color:
stringToColor("#117EFD"),
color: stringToColor("#117EFD"),
width: 1,
),
borderRadius:
@@ -476,17 +459,15 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
}),
Obx(() {
if (RepairStatus.completed ==
controller.model.applyRepairModel!
.status &&
controller.model.applyRepairModel!
.score !=
controller
.model.applyRepairModel!.status &&
controller.model.applyRepairModel!.score !=
null) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 10.rpx),
child: Container(
width:
MediaQuery.sizeOf(context).width,
width: MediaQuery.sizeOf(context).width,
decoration: BoxDecoration(
color: Colors.white, //true
borderRadius:
@@ -506,8 +487,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
.fromSTEB(
17, 0, 30, 10),
child: Container(
width: MediaQuery.sizeOf(
context)
width:
MediaQuery.sizeOf(context)
.width,
height: 30,
decoration:
@@ -535,13 +516,11 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
const AlignmentDirectional(
-1, 0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(34.rpx,
0, 0, 0),
padding: EdgeInsetsDirectional
.fromSTEB(
34.rpx, 0, 0, 0),
child: Container(
width:
MediaQuery.sizeOf(
width: MediaQuery.sizeOf(
context)
.width,
constraints:
@@ -560,7 +539,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
const AlignmentDirectional(
-1, 0),
child: Padding(
padding: EdgeInsetsDirectional
padding:
EdgeInsetsDirectional
.fromSTEB(
0,
0,
@@ -573,8 +553,7 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
.model
.applyRepairModel!
.score_time!),
style:
TextStyle(
style: TextStyle(
fontFamily:
'Readex Pro',
fontSize:
@@ -588,16 +567,13 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
Row(
mainAxisSize:
MainAxisSize
.max,
MainAxisSize.max,
children: [
Align(
alignment:
const AlignmentDirectional(
-1,
0),
child:
Padding(
-1, 0),
child: Padding(
padding:
const EdgeInsetsDirectional
.fromSTEB(
@@ -612,7 +588,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
fontFamily:
'Readex Pro',
fontSize:
AppFontsize.normal_text_size,
AppFontsize
.normal_text_size,
letterSpacing:
0.0,
),
@@ -692,8 +669,8 @@ class RepairHistoryListPage extends GetView<RepairInfoController> {
),
),
]
.divide(const SizedBox(
height: 0))
.divide(
const SizedBox(height: 0))
.addToStart(const SizedBox(
height: 5,
))

View File

@@ -39,11 +39,10 @@ class DeviceRepairPage extends GetView<RepairListController> {
@override
Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -104,8 +103,7 @@ class DeviceRepairPage extends GetView<RepairListController> {
padding: EdgeInsets.fromLTRB(
27.rpx, 49.rpx, 43.rpx, 39.rpx),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// 固定的标题部分
Text(
@@ -132,8 +130,7 @@ class DeviceRepairPage extends GetView<RepairListController> {
text:
"尊敬的用户感谢您选择我司产品。在使用过程中如果设备出现故障需要维修请首先确认设备是否正确连接控制器或网络检查设置是否正常排除误操作问题。若问题依然存在请记录下设备名称、设备编号、和具体故障内容方便我们快速地为您提供帮助。您可以通过智慧棉花糖APP保修页面直接报修或拨打 ",
style: TextStyle(
color:
Color(0XFF929699),
color: Color(0XFF929699),
fontSize: 26.rpx,
height: 1.3)),
TextSpan(
@@ -143,12 +140,10 @@ class DeviceRepairPage extends GetView<RepairListController> {
// height: 1.3,
decoration: TextDecoration
.underline, // 添加下划线
decorationColor:
Colors.white,
decorationColor: Colors.white,
decorationThickness: 4.rpx,
),
recognizer:
TapGestureRecognizer()
recognizer: TapGestureRecognizer()
..onTap = () {
MyUtils.makePhoneCall(
"400-8756-966");
@@ -157,8 +152,7 @@ class DeviceRepairPage extends GetView<RepairListController> {
TextSpan(
text: " 反馈。",
style: TextStyle(
color:
Color(0XFF929699),
color: Color(0XFF929699),
fontSize: 26.rpx,
height: 1.3)),
],
@@ -237,8 +231,7 @@ class DeviceRepairPage extends GetView<RepairListController> {
// 替换原来的 Obx(() => Visibility(...))
Expanded(
child: Obx(() {
final hasData =
controller.model.repairList != null &&
final hasData = controller.model.repairList != null &&
controller.model.repairList!.isNotEmpty;
return hasData
? ListView(
@@ -250,8 +243,7 @@ class DeviceRepairPage extends GetView<RepairListController> {
.entries
.map((e) => RepairHistoryWidget(
index: e.key,
repairListController:
controller,
repairListController: controller,
))
.toList(),
)
@@ -264,6 +256,4 @@ class DeviceRepairPage extends GetView<RepairListController> {
));
});
}
}

View File

@@ -50,7 +50,7 @@ class _RoomPickerPageState extends State<RoomPickerPage> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -6,6 +6,7 @@ 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/mh_controller/score_controller.dart' as mh;
class ScorePage extends GetView<mh.ScoreController> {
BoxConstraints? bodysize;
final scaffoldKey = GlobalKey<ScaffoldState>();
@@ -18,7 +19,7 @@ class ScorePage extends GetView<mh.ScoreController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -104,8 +105,7 @@ class ScorePage extends GetView<mh.ScoreController> {
MainAxisAlignment.spaceBetween,
children: [
Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: Text(
'我要评价'.tr,
style: TextStyle(
@@ -131,10 +131,8 @@ class ScorePage extends GetView<mh.ScoreController> {
color: controller
.model.score! >=
1
? stringToColor(
"#F8AE00")
: stringToColor(
"#D0D0D0"),
? stringToColor("#F8AE00")
: stringToColor("#D0D0D0"),
size: 40,
);
}),
@@ -150,10 +148,8 @@ class ScorePage extends GetView<mh.ScoreController> {
color: controller
.model.score! >=
2
? stringToColor(
"#F8AE00")
: stringToColor(
"#D0D0D0"),
? stringToColor("#F8AE00")
: stringToColor("#D0D0D0"),
size: 40,
);
}),
@@ -169,10 +165,8 @@ class ScorePage extends GetView<mh.ScoreController> {
color: controller
.model.score! >=
3
? stringToColor(
"#F8AE00")
: stringToColor(
"#D0D0D0"),
? stringToColor("#F8AE00")
: stringToColor("#D0D0D0"),
size: 40,
);
}),
@@ -188,10 +182,8 @@ class ScorePage extends GetView<mh.ScoreController> {
color: controller
.model.score! >=
4
? stringToColor(
"#F8AE00")
: stringToColor(
"#D0D0D0"),
? stringToColor("#F8AE00")
: stringToColor("#D0D0D0"),
size: 40,
);
}),
@@ -207,10 +199,8 @@ class ScorePage extends GetView<mh.ScoreController> {
color: controller
.model.score! >=
5
? stringToColor(
"#F8AE00")
: stringToColor(
"#D0D0D0"),
? stringToColor("#F8AE00")
: stringToColor("#D0D0D0"),
size: 40,
);
}),
@@ -243,15 +233,13 @@ class ScorePage extends GetView<mh.ScoreController> {
width: bodysize!.maxWidth,
decoration: BoxDecoration(
color: Color(0xFF003058),
borderRadius:
BorderRadius.circular(16.rpx),
borderRadius: BorderRadius.circular(16.rpx),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: Obx(() {
String scoreText;
Color scoreColor;
@@ -259,35 +247,29 @@ class ScorePage extends GetView<mh.ScoreController> {
scoreText = '';
scoreColor =
stringToColor("#E55E92");
} else if (controller
.model.score ==
} else if (controller.model.score ==
2) {
scoreText = '较差';
scoreColor =
stringToColor("#E55E92");
} else if (controller
.model.score ==
} else if (controller.model.score ==
3) {
scoreText = '一般';
scoreColor =
stringToColor("#07C160");
} else if (controller
.model.score ==
} else if (controller.model.score ==
4) {
scoreText = '优秀';
scoreColor =
stringToColor("#F8AE00");
} else if (controller
.model.score ==
} else if (controller.model.score ==
5) {
scoreText = '完美';
scoreColor =
stringToColor("#F8AE00");
} else {
scoreText =
'未评分'; // 如果没有评分显示默认文字
scoreColor =
Colors.grey; // 默认颜色
scoreText = '未评分'; // 如果没有评分显示默认文字
scoreColor = Colors.grey; // 默认颜色
}
return Text(
scoreText,
@@ -296,17 +278,16 @@ class ScorePage extends GetView<mh.ScoreController> {
fontSize: 30.rpx,
letterSpacing: 0,
color: scoreColor,
fontWeight:
FontWeight.bold),
fontWeight: FontWeight.bold),
);
}),
),
Align(
alignment:
AlignmentDirectional(-1, 0),
alignment: AlignmentDirectional(-1, 0),
child: Padding(
padding: EdgeInsetsDirectional
.fromSTEB(0, 17, 0, 0),
padding:
EdgeInsetsDirectional.fromSTEB(
0, 17, 0, 0),
child: Text(
'再多的溢美之词都比不上您真心的评价。我们愿付出200%的努力只为您100%的满意~感谢您的支持与厚爱!',
style: TextStyle(

View File

@@ -17,7 +17,7 @@ class _SleepHabitPageState extends State<SleepHabitPage> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(

View File

@@ -38,7 +38,7 @@ class Smys extends GetView<SleepingHabitController> {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -109,8 +109,7 @@ class Smys extends GetView<SleepingHabitController> {
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: const Color(0xFF929699),
width: 0.rpx),
color: const Color(0xFF929699), width: 0.rpx),
),
),
constraints: BoxConstraints(
@@ -121,8 +120,7 @@ class Smys extends GetView<SleepingHabitController> {
39.rpx, 0.rpx, 15.rpx, 0.rpx),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'睡眠隐私功能'.tr,
@@ -172,8 +170,7 @@ class Smys extends GetView<SleepingHabitController> {
},
child: Container(
width: double.infinity,
height:
MediaQuery.sizeOf(context).height * 0.055,
height: MediaQuery.sizeOf(context).height * 0.055,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
@@ -251,8 +248,7 @@ class Smys extends GetView<SleepingHabitController> {
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: const Color(0xFF929699),
width: 0.rpx),
color: const Color(0xFF929699), width: 0.rpx),
),
),
constraints: BoxConstraints(
@@ -263,8 +259,7 @@ class Smys extends GetView<SleepingHabitController> {
39.rpx, 0.rpx, 30.rpx, 0.rpx),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'结束时间'.tr,

View File

@@ -49,7 +49,7 @@ class _UpdateUserPageState extends State<EditUserPage> {
int login = userInfoController.model.login!;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -37,7 +37,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -114,12 +114,10 @@ class FindPasswordPage extends GetView<FindPasswordController> {
height: bodysize!.maxHeight * 0.06,
decoration: BoxDecoration(
color: Color(0xFFF3F5F6),
borderRadius:
BorderRadius.circular(12),
borderRadius: BorderRadius.circular(12),
),
child: Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: TextFormField(
// focusNode: _focusNode1,
onChanged: (value) {
@@ -146,9 +144,8 @@ class FindPasswordPage extends GetView<FindPasswordController> {
focusedErrorBorder:
InputBorder.none,
contentPadding:
EdgeInsetsDirectional
.fromSTEB(20.rpx, 0, 0,
0.rpx),
EdgeInsetsDirectional.fromSTEB(
20.rpx, 0, 0, 0.rpx),
),
style: TextStyle(
fontFamily: 'Readex Pro',
@@ -170,8 +167,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
child: Stack(
children: [
Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: Container(
width: bodysize!.maxWidth,
height: 92.rpx,
@@ -182,29 +178,24 @@ class FindPasswordPage extends GetView<FindPasswordController> {
),
child: Align(
alignment:
AlignmentDirectional(
0, 0),
AlignmentDirectional(0, 0),
child: TextFormField(
// autofocus: true,
// focusNode: _focusNode2,
onChanged: (value) {
controller.model.code =
value;
controller.model.code = value;
},
obscureText: false,
decoration: InputDecoration(
labelStyle: TextStyle(
fontFamily:
'Readex Pro',
fontFamily: 'Readex Pro',
fontSize: 20.rpx,
letterSpacing: 0,
),
hintText: '请输验证码'.tr,
hintStyle: TextStyle(
fontFamily:
'Readex Pro',
color:
Color(0xFF929699),
fontFamily: 'Readex Pro',
color: Color(0xFF929699),
fontSize: 26.rpx,
letterSpacing: 0,
),
@@ -212,14 +203,13 @@ class FindPasswordPage extends GetView<FindPasswordController> {
InputBorder.none,
focusedBorder:
InputBorder.none,
errorBorder:
InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder:
InputBorder.none,
contentPadding:
EdgeInsetsDirectional
.fromSTEB(20.rpx,
0, 0, 0.rpx),
.fromSTEB(20.rpx, 0,
0, 0.rpx),
),
style: TextStyle(
fontFamily: 'Readex Pro',
@@ -231,14 +221,13 @@ class FindPasswordPage extends GetView<FindPasswordController> {
),
),
Align(
alignment: AlignmentDirectional(
0.4, 0.1),
alignment:
AlignmentDirectional(0.4, 0.1),
child: Container(
width: 1.rpx,
height: 38.rpx,
decoration: BoxDecoration(
color:
stringToColor("#929699"),
color: stringToColor("#929699"),
),
),
),
@@ -246,10 +235,8 @@ class FindPasswordPage extends GetView<FindPasswordController> {
alignment:
AlignmentDirectional(1.2, 0),
child: Container(
width:
bodysize!.maxWidth * 0.157,
height:
bodysize!.maxHeight * 0.014,
width: bodysize!.maxWidth * 0.157,
height: bodysize!.maxHeight * 0.014,
constraints: BoxConstraints(
minWidth: 118,
minHeight: 30,
@@ -257,8 +244,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(
0, 0),
AlignmentDirectional(0, 0),
child: Obx(() {
final CountdownController
countdownController =
@@ -267,8 +253,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
return InkWell(
onTap: () async {
if (countdownController
.countdown
.value !=
.countdown.value !=
0) {
return;
}
@@ -288,8 +273,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
}
String msg =
await controller
.getCode(
context);
.getCode(context);
if (msg.isNotEmpty) {
return;
}
@@ -312,8 +296,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
: '${countdownController.countdown.value}' +
''.tr,
style: TextStyle(
color:
Color(0xFF333333),
color: Color(0xFF333333),
fontSize: 20.rpx,
letterSpacing: 0,
),
@@ -339,12 +322,10 @@ class FindPasswordPage extends GetView<FindPasswordController> {
height: bodysize!.maxHeight * 0.06,
decoration: BoxDecoration(
color: Color(0xFFF3F5F6),
borderRadius:
BorderRadius.circular(12),
borderRadius: BorderRadius.circular(12),
),
child: Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: Obx(() {
return TextFormField(
// autofocus: true,
@@ -368,10 +349,8 @@ class FindPasswordPage extends GetView<FindPasswordController> {
fontSize: 26.rpx,
letterSpacing: 0,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder:
InputBorder.none,
@@ -391,8 +370,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
onPressed: () {
// 切换 pdshow 状态
controller.model.pdshow =
!controller
.model.pdshow!;
!controller.model.pdshow!;
controller.updateAll();
},
),
@@ -420,19 +398,16 @@ class FindPasswordPage extends GetView<FindPasswordController> {
height: bodysize!.maxHeight * 0.06,
decoration: BoxDecoration(
color: Color(0xFFF3F5F6),
borderRadius:
BorderRadius.circular(12),
borderRadius: BorderRadius.circular(12),
),
child: Align(
alignment:
AlignmentDirectional(0, 0),
alignment: AlignmentDirectional(0, 0),
child: Obx(() {
return TextFormField(
// autofocus: true,
// focusNode: _focusNode2,
onChanged: (value) {
controller.model.confirm =
value;
controller.model.confirm = value;
},
// obscureText: true,
obscureText:
@@ -450,10 +425,8 @@ class FindPasswordPage extends GetView<FindPasswordController> {
fontSize: 26.rpx,
letterSpacing: 0,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder:
InputBorder.none,
@@ -526,8 +499,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
onTap: () async {
if (CommonVariables.isNetWorkOn ==
false) {
TopSlideNotification.show(
context,
TopSlideNotification.show(context,
text: "网络未连接,请开启设备网络后重试".tr,
textColor: themeController
.currentColor.sc9);
@@ -552,8 +524,7 @@ class FindPasswordPage extends GetView<FindPasswordController> {
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(
16.rpx),
BorderRadius.circular(16.rpx),
),
child: Text(
"提交",

View File

@@ -134,7 +134,7 @@ class MHTLoginPage extends GetView<MHTLoginController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -1458,7 +1458,8 @@ class MHTLoginPage extends GetView<MHTLoginController> {
color:
stringToColor(
"FF9F66"),
fontSize: 23.rpx,
fontSize:
23.rpx,
letterSpacing:
0,
),
@@ -1504,7 +1505,8 @@ class MHTLoginPage extends GetView<MHTLoginController> {
color:
stringToColor(
"FF9F66"),
fontSize: 23.rpx,
fontSize:
23.rpx,
letterSpacing:
0,
),

View File

@@ -181,7 +181,7 @@ class _RxhxMhtState extends State<RxhxMht> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
@@ -312,8 +312,7 @@ class _RxhxMhtState extends State<RxhxMht> {
});
},
child: Container(
margin:
EdgeInsets.only(left: 40.rpx, right: 30.rpx),
margin: EdgeInsets.only(left: 40.rpx, right: 30.rpx),
width: double.infinity,
height: 90.rpx,
decoration: const BoxDecoration(),
@@ -375,15 +374,13 @@ class _RxhxMhtState extends State<RxhxMht> {
);
},
child: Container(
margin:
EdgeInsets.only(left: 40.rpx, right: 30.rpx),
margin: EdgeInsets.only(left: 40.rpx, right: 30.rpx),
width: double.infinity,
height: 90.rpx,
decoration: const BoxDecoration(),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'按摩',
@@ -437,15 +434,13 @@ class _RxhxMhtState extends State<RxhxMht> {
);
},
child: Container(
margin:
EdgeInsets.only(left: 40.rpx, right: 30.rpx),
margin: EdgeInsets.only(left: 40.rpx, right: 30.rpx),
width: double.infinity,
height: 90.rpx,
decoration: const BoxDecoration(),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'唤醒部位',
@@ -566,38 +561,33 @@ class _RxhxMhtState extends State<RxhxMht> {
// ),
// ),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0, 20.rpx, 0, 0),
padding:
EdgeInsetsDirectional.fromSTEB(0, 20.rpx, 0, 0),
child: SizedBox(
width: double.infinity,
height:
MediaQuery.sizeOf(context).height * 0.046,
height: MediaQuery.sizeOf(context).height * 0.046,
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: List.generate(7, (index) {
final bool selected =
controller.model.rxhxWeeks[index] ==
1;
controller.model.rxhxWeeks[index] == 1;
return InkWell(
onTap: () {
controller.attr.update((getmodel) {
getmodel.model.rxhxWeeks[index] =
getmodel.model
.rxhxWeeks[index] ==
0
getmodel.model.rxhxWeeks[index] == 0
? 1
: 0;
});
},
borderRadius: BorderRadius.circular(
50), // 点击水波圆角区域
borderRadius:
BorderRadius.circular(50), // 点击水波圆角区域
child: Container(
width: MediaQuery.sizeOf(context)
.height *
width: MediaQuery.sizeOf(context).height *
0.046, // 保证是正圆
height: MediaQuery.sizeOf(context)
.height *
height:
MediaQuery.sizeOf(context).height *
0.046,
decoration: BoxDecoration(
shape: BoxShape.circle,

View File

@@ -33,7 +33,7 @@ class UpdatePasswordPage extends GetView<UpdatePasswordController> {
return LayoutBuilder(builder: (context, cc) {
bodysize = cc;
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -41,7 +41,7 @@ class _UserAgreementPageState extends State<UserAgreementPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -61,7 +61,7 @@ class _EPageState extends State<PersonPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -57,7 +57,7 @@ class _UpdatePageState extends State<UpdatePersonPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -89,7 +89,7 @@ class _ApplyRepairPageState extends State<ApplyRepairPage> {
}
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -33,7 +33,7 @@ class _ApplyRepairSuccessState extends State<ApplyRepairSuccess> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -65,7 +65,7 @@ class _RepairDetailPageState extends State<RepairDetailPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -35,7 +35,7 @@ class _RepairListPageState extends State<RepairListPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -116,7 +116,7 @@ class _CommonMessageSettingPageState extends State<CommonMessageSettingPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodysize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -29,7 +29,7 @@ class _LanguageSettingState extends State<LanguageSetting> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -214,7 +214,7 @@ class BarChartPainter extends CustomPainter {
// 缓存 tip 信息
if (selectedBar == d) {
tipText =
'${d.name}\n${d.value.toStringAsFixed(1)}\n${MyUtils.formatToHHmm(d.st)}';
'${d.name}\n${d.value.toStringAsFixed(1)}\n${MyUtils.formatToHHmm(d.st)}';
final tp = TextPainter(
text: TextSpan(

View File

@@ -84,9 +84,28 @@ class TimeSeriesChart extends StatelessWidget {
final xLabels = _generateXLabels();
final midY = (yMin + yMax) / 2;
List<FlSpot> spots = dataPoints.map((p) {
return FlSpot(_timeToX(p.timestamp.toDouble(), xLabels), p.value);
}).toList();
// 将数据点分割成多个连续段遇到value=-1时断开
List<List<FlSpot>> lineSegments = [];
List<FlSpot> currentSegment = [];
for (var point in dataPoints) {
if (point.value != -1) {
// 有效数据点,添加到当前段
currentSegment.add(FlSpot(
_timeToX(point.timestamp.toDouble(), xLabels),
point.value,
));
} else if (currentSegment.isNotEmpty) {
// 遇到无效点且当前段不为空,结束当前段
lineSegments.add(currentSegment);
currentSegment = [];
}
}
// 添加最后一个段(如果有)
if (currentSegment.isNotEmpty) {
lineSegments.add(currentSegment);
}
return AspectRatio(
aspectRatio: 2,
@@ -204,15 +223,16 @@ class TimeSeriesChart extends StatelessWidget {
top: BorderSide.none,
),
),
lineBarsData: [
LineChartBarData(
spots: spots,
lineBarsData: lineSegments.map((segment) {
return LineChartBarData(
spots: segment,
isCurved: false,
color: themeController.currentColor.sc2,
barWidth: 2,
dotData: FlDotData(show: false),
)
],
preventCurveOverShooting: true,
);
}).toList(),
),
),
);

View File

@@ -47,11 +47,21 @@ class _BreatheStandardWidgetState extends State<BreatheStandardWidget> {
final endTime = widget.sleepReport['endTime'];
List<Map<String, dynamic>> data =
(widget.sleepReport['brbc'] as List).cast<Map<String, dynamic>>();
final dataPoints = data.map((item) {
List<TimeSeriesPoint> dataPoints = [];
if (data != null && data.isNotEmpty) {
data.forEach((item) {
final x = item['st'] as int;
if (item['value'] == null || item['value'] == '') {
// return;
dataPoints.add(TimeSeriesPoint(x, -1));
return;
}
final y = (item['value'] as num).toDouble(); // 安全地转换为 double
return TimeSeriesPoint(x, y);
}).toList();
// return TimeSeriesPoint(x, y);
dataPoints.add(TimeSeriesPoint(x, y));
});
}
List<Map<String, dynamic>> brs =
(widget.sleepReport['brs'] as List).cast<Map<String, dynamic>>();
@@ -130,7 +140,8 @@ class _BreatheStandardWidgetState extends State<BreatheStandardWidget> {
Container(
child: Text(
// "呼吸数据介绍".tr,
"呼吸数据是指用户在睡眠过程中呼吸的基本数据,是评估睡眠呼吸质量、筛查睡眠呼吸障碍的核心指标。".tr,
"呼吸数据是指用户在睡眠过程中呼吸的基本数据,是评估睡眠呼吸质量、筛查睡眠呼吸障碍的核心指标。"
.tr,
style: TextStyle(
fontSize: 26.rpx,
color: themeController.currentColor.sc3,

View File

@@ -10,6 +10,7 @@ import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart';
import 'package:vbvs_app/pages/sleep_report/chart/TimeSeriesChart.dart';
import 'package:EasyDartModule/EasyDartModule.dart' as es;
//心率基准
class HeartRateStandardWidget extends StatefulWidget {
var sleepReport;
HeartRateStandardWidget({super.key, required this.sleepReport});
@@ -48,11 +49,21 @@ class _HeartRateStandardWidgetState extends State<HeartRateStandardWidget> {
final endTime = widget.sleepReport['endTime'];
List<Map<String, dynamic>> data =
(widget.sleepReport['hrbc'] as List).cast<Map<String, dynamic>>();
final dataPoints = data.map((item) {
List<TimeSeriesPoint> dataPoints = [];
if (data != null && data.isNotEmpty) {
data.forEach((item) {
final x = item['st'] as int;
if (item['value'] == null || item['value'] == '') {
// return;
dataPoints.add(TimeSeriesPoint(x, -1));
return;
}
final y = (item['value'] as num).toDouble(); // 安全地转换为 double
return TimeSeriesPoint(x, y);
}).toList();
// return TimeSeriesPoint(x, y);
dataPoints.add(TimeSeriesPoint(x, y));
});
}
List<Map<String, dynamic>> hrs =
(widget.sleepReport['hrs'] as List).cast<Map<String, dynamic>>();
@@ -129,7 +140,8 @@ class _HeartRateStandardWidgetState extends State<HeartRateStandardWidget> {
Container(
child: Text(
// "心率数据介绍".tr,
"心率数据是指用户在睡眠过程中基本心率数据,可初步判断睡眠中的心血管负荷及自主神经功能状态,为睡眠健康评估提供重要依据。".tr,
"心率数据是指用户在睡眠过程中基本心率数据,可初步判断睡眠中的心血管负荷及自主神经功能状态,为睡眠健康评估提供重要依据。"
.tr,
style: TextStyle(
fontSize: 26.rpx,
color: themeController.currentColor.sc3,
@@ -376,7 +388,7 @@ class _HeartRateStandardWidgetState extends State<HeartRateStandardWidget> {
),
);
} catch (e) {
es.EasyDartModule.logger.error("打鼾监测绘制异常${e}");
es.EasyDartModule.logger.error("心率基准绘制异常${e}");
return Container();
}
}

View File

@@ -138,7 +138,7 @@ class _MHTNewSleepReportPageState extends State<MHTNewSleepReportPage> {
double lineWidth = 115.rpx;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -88,7 +88,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
double lineWidth = 115.rpx;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -153,7 +153,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
double lineWidth = 115.rpx;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: (widget.data['noBackImg'] != null &&

View File

@@ -42,7 +42,7 @@ class _SleepReportPageState extends State<SleepReportPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -117,6 +117,4 @@ class _SleepReportPageState extends State<SleepReportPage> {
),
);
}
}

View File

@@ -20,8 +20,7 @@ class _AboutUsPageState extends State<AboutUsPage> {
// pdfController.loadPdf();
widget.webView = MyWebView(
url:
AppConstants().ent_type == 1
url: AppConstants().ent_type == 1
? "https://mp.weixin.qq.com/s/IAr4RNBy0hGJXGKyMxe7eQ"
: "https://mp.weixin.qq.com/s/7BvvprVDqX1eOzM3Lms8dg",
onLoad: () {
@@ -34,7 +33,7 @@ class _AboutUsPageState extends State<AboutUsPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -37,7 +37,7 @@ class _PrivacySchemePageState extends State<PrivacySchemePage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -40,7 +40,7 @@ class _SettingPageState extends State<SettingPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -577,8 +577,10 @@ class _SettingPageState extends State<SettingPage> {
),
),
Text(
AppConstants().ent_type == 1? 'Copyright © 202-2025 嘉兴太和信息技术有限责任公司 版权所有'
.tr:"Copyright © 202-2025 杭州欢睡科技有限公司 版权所有",
AppConstants().ent_type == 1
? 'Copyright © 202-2025 嘉兴太和信息技术有限责任公司 版权所有'
.tr
: "Copyright © 202-2025 杭州欢睡科技有限公司 版权所有",
style: TextStyle(
color: themeController.currentColor.sc4,
fontFamily: 'Inter',

View File

@@ -49,7 +49,7 @@ class _UpdateUserPageState extends State<UpdateUserPage> {
int login = userInfoController.model.login!;
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -41,7 +41,7 @@ class _UserSchemePageState extends State<UserSchemePage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(

View File

@@ -42,7 +42,7 @@ class _XiaoEPageState extends State<XiaoEPage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(