更新
This commit is contained in:
@@ -274,7 +274,8 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
|
||||
),
|
||||
];
|
||||
|
||||
if (widget.device['bind_type'] == BindType.active.code && !AppConstants.is_test_account) {
|
||||
if (widget.device['bind_type'] == BindType.active.code &&
|
||||
!AppConstants.is_test_account) {
|
||||
items.addAll([
|
||||
_buildMenuItem(
|
||||
text: "WIFI配置".tr,
|
||||
@@ -413,12 +414,17 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
|
||||
alignment: AlignmentDirectional(-1, 0),
|
||||
child: TextFormField(
|
||||
onChanged: (value) {
|
||||
personController.name.value = value;
|
||||
if (value == null || value.isEmpty) {
|
||||
personController.name.value = "体征监测设备".tr;
|
||||
} else {
|
||||
personController.name.value = value;
|
||||
}
|
||||
},
|
||||
autofocus: false,
|
||||
decoration: InputDecoration(
|
||||
isDense: true,
|
||||
hintText: '请输入人员名称'.tr,
|
||||
// hintText: '请输入人员名称'.tr,
|
||||
hintText: "体征监测设备".tr,
|
||||
hintStyle: TextStyle(
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 26.rpx,
|
||||
@@ -447,6 +453,10 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
|
||||
color: Colors.black,
|
||||
),
|
||||
cursorColor: Colors.white,
|
||||
initialValue: widget.device['person']['name'] == null ||
|
||||
widget.device['person']['name'] == ""
|
||||
? "体征监测设备".tr
|
||||
: widget.device['person']['name'],
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -521,14 +531,21 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
// 'TH689564522DL',
|
||||
'${widget.device['person']?['name'] ?? '未命名'.tr}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 30.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: themeController.currentColor.sc3,
|
||||
Container(
|
||||
constraints: BoxConstraints(
|
||||
// maxWidth: MediaQuery.sizeOf(context).width - 200.rpx,
|
||||
maxWidth: MediaQuery.sizeOf(context).width * 0.6,
|
||||
),
|
||||
child: Text(
|
||||
'${widget.device['person']?['name'] ?? '未命名'.tr}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 30.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: themeController.currentColor.sc3,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
// ClickableContainer(
|
||||
@@ -1347,7 +1364,7 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
|
||||
// SizedBox(
|
||||
// width: 20.rpx,
|
||||
// ),
|
||||
|
||||
@@ -695,7 +695,7 @@ void showSingleConfirmDialog(
|
||||
// padding:
|
||||
// EdgeInsetsDirectional.fromSTEB(0, 33.rpx, 0, 0.rpx),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
33.rpx, 33.rpx, 33.rpx, 33.rpx),
|
||||
33.rpx, 64.rpx, 33.rpx, 33.rpx),
|
||||
child: SvgPicture.asset(
|
||||
'assets/img/icon/close.svg',
|
||||
width: 25.rpx,
|
||||
@@ -710,7 +710,7 @@ void showSingleConfirmDialog(
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
33.rpx, 60.rpx, 33.rpx, 33.rpx),
|
||||
33.rpx, 33.rpx, 33.rpx, 33.rpx),
|
||||
child: Text(
|
||||
title,
|
||||
style: TextStyle(
|
||||
@@ -1793,7 +1793,7 @@ void showConfirmCancelDialog(
|
||||
String confirmText = "是", // ✅ 确认按钮文字
|
||||
String cancelText = "否", // ✅ 取消按钮文字
|
||||
Color? confirmButtonColor, // ✅ 新增:确认按钮背景色
|
||||
Color? cancelButtonColor, // ✅ 新增:取消按钮背景色
|
||||
Color? cancelButtonColor, // ✅ 新增:取消按钮背景色
|
||||
}) {
|
||||
ThemeController themeController = Get.find();
|
||||
try {
|
||||
|
||||
@@ -33,7 +33,8 @@ class _CalibrationPageState extends State<CalibrationPage> {
|
||||
Timer? _pollingTimer;
|
||||
|
||||
bool exit = false;
|
||||
bool start = false;
|
||||
bool start = false;//是否开始进行校准
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
@@ -572,7 +572,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
color: themeController
|
||||
.currentColor.sc2,
|
||||
fontSize: AppConstants()
|
||||
.title_text_fontSize,
|
||||
.middler_text_fontSize,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
),
|
||||
@@ -597,9 +597,10 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
onTap: () async {
|
||||
try {
|
||||
DailyLogUtils.writeLog("点击登录");
|
||||
bool agree =
|
||||
loginController.model.register_agree!;
|
||||
if (!agree) {
|
||||
if (loginController.model.register_agree ==
|
||||
null ||
|
||||
loginController.model.register_agree! ==
|
||||
false) {
|
||||
TopSlideNotification.show(
|
||||
context,
|
||||
text: "登录页.未同意协议".tr,
|
||||
@@ -922,7 +923,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
children: [
|
||||
Obx(() {
|
||||
var aa =
|
||||
loginController.model.isWeChatNotInstalled;
|
||||
|
||||
@@ -112,7 +112,8 @@ class _MessageWidgetWidgetState extends State<MessageWidgetWidget> {
|
||||
themeController.currentColor.sc1,
|
||||
themeController.currentColor.sc2
|
||||
]
|
||||
: [themeController.currentColor.sc4], // 单色背景
|
||||
// : [themeController.currentColor.sc4], // 单色背景
|
||||
: [Colors.grey.withOpacity(0.2)], // 单色背景
|
||||
enableAnimation: true, // 有点击缩放动画
|
||||
enableGradient: false, // 不用渐变
|
||||
onTap: () {
|
||||
@@ -148,7 +149,9 @@ class _MessageWidgetWidgetState extends State<MessageWidgetWidget> {
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 26.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: Colors.white,
|
||||
color: messageInfo['status'] == 1
|
||||
? Colors.white
|
||||
: Colors.grey,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -18,7 +18,6 @@ import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
|
||||
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
||||
import 'package:vbvs_app/controller/home/home_controller.dart';
|
||||
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
||||
import 'package:vbvs_app/controller/person/person_controller.dart';
|
||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
@@ -222,7 +221,7 @@ class _HomePageState extends State<HomePage> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
weatherModelController.getCurrentWeather();
|
||||
// weatherModelController.getCurrentWeather();
|
||||
return LayoutBuilder(
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
onTap: () {
|
||||
@@ -320,77 +319,86 @@ class _HomePageState extends State<HomePage> {
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
userInfoController.model.user!
|
||||
.nick_name ??
|
||||
'未命名'.tr,
|
||||
style: TextStyle(
|
||||
color: themeController
|
||||
.currentColor.sc3,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
Container(
|
||||
constraints: BoxConstraints(
|
||||
maxWidth:
|
||||
bodySize.maxWidth *
|
||||
0.6),
|
||||
child: Text(
|
||||
userInfoController.model.user!
|
||||
.nick_name ??
|
||||
'未命名'.tr,
|
||||
style: TextStyle(
|
||||
color: themeController
|
||||
.currentColor.sc3,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow:
|
||||
TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
Obx(() {
|
||||
return Row(
|
||||
children: [
|
||||
Text(
|
||||
"${weatherModelController.model.cityName ?? '未知数据'.tr}",
|
||||
style: TextStyle(
|
||||
color: themeController
|
||||
.currentColor.sc4,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${(weatherModelController.model.current_temperature != null && weatherModelController.model.current_temperature! > 0) ? weatherModelController.model.current_temperature : '未知数据'.tr}" +
|
||||
"°C",
|
||||
style: TextStyle(
|
||||
color: themeController
|
||||
.currentColor.sc4,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${(weatherModelController.model.weather_info?.isNotEmpty ?? false) ? weatherModelController.model.weather_info : '未知数据'.tr}",
|
||||
style: TextStyle(
|
||||
color: themeController
|
||||
.currentColor.sc4,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
),
|
||||
),
|
||||
if (weatherModelController
|
||||
.model
|
||||
.weatherIconurl !=
|
||||
null &&
|
||||
weatherModelController
|
||||
.model
|
||||
.weatherIconurl!
|
||||
.isNotEmpty)
|
||||
Container(
|
||||
width: 35.rpx,
|
||||
height: 26.rpx,
|
||||
clipBehavior:
|
||||
Clip.antiAlias,
|
||||
decoration:
|
||||
BoxDecoration(
|
||||
shape: BoxShape
|
||||
.circle),
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/weather/${weatherModelController.model.weatherIconurl}-fill.svg",
|
||||
// fit: BoxFit.cover,
|
||||
color: themeController
|
||||
.currentColor.sc4,
|
||||
),
|
||||
),
|
||||
].divide(SizedBox(
|
||||
width: 20.rpx,
|
||||
)),
|
||||
);
|
||||
}),
|
||||
// Obx(() {
|
||||
// return Row(
|
||||
// children: [
|
||||
// Text(
|
||||
// "${weatherModelController.model.cityName ?? '未知数据'.tr}",
|
||||
// style: TextStyle(
|
||||
// color: themeController
|
||||
// .currentColor.sc4,
|
||||
// fontSize: AppConstants()
|
||||
// .normal_text_fontSize,
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// "${(weatherModelController.model.current_temperature != null && weatherModelController.model.current_temperature! > 0) ? weatherModelController.model.current_temperature : '未知数据'.tr}" +
|
||||
// "°C",
|
||||
// style: TextStyle(
|
||||
// color: themeController
|
||||
// .currentColor.sc4,
|
||||
// fontSize: AppConstants()
|
||||
// .normal_text_fontSize,
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// "${(weatherModelController.model.weather_info?.isNotEmpty ?? false) ? weatherModelController.model.weather_info : '未知数据'.tr}",
|
||||
// style: TextStyle(
|
||||
// color: themeController
|
||||
// .currentColor.sc4,
|
||||
// fontSize: AppConstants()
|
||||
// .normal_text_fontSize,
|
||||
// ),
|
||||
// ),
|
||||
// if (weatherModelController
|
||||
// .model
|
||||
// .weatherIconurl !=
|
||||
// null &&
|
||||
// weatherModelController
|
||||
// .model
|
||||
// .weatherIconurl!
|
||||
// .isNotEmpty)
|
||||
// Container(
|
||||
// width: 35.rpx,
|
||||
// height: 26.rpx,
|
||||
// clipBehavior:
|
||||
// Clip.antiAlias,
|
||||
// decoration:
|
||||
// BoxDecoration(
|
||||
// shape: BoxShape
|
||||
// .circle),
|
||||
// child: SvgPicture.asset(
|
||||
// "assets/images/weather/${weatherModelController.model.weatherIconurl}-fill.svg",
|
||||
// // fit: BoxFit.cover,
|
||||
// color: themeController
|
||||
// .currentColor.sc4,
|
||||
// ),
|
||||
// ),
|
||||
// ].divide(SizedBox(
|
||||
// width: 20.rpx,
|
||||
// )),
|
||||
// );
|
||||
// }),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -1066,6 +1074,7 @@ class _HomePageState extends State<HomePage> {
|
||||
})
|
||||
: [],
|
||||
),
|
||||
|
||||
SizedBox(
|
||||
height:
|
||||
26.rpx), // 每个 widget 下方间距(包括最后一个)
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/EventBus.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/eventType.dart';
|
||||
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
@@ -29,6 +33,13 @@ class _MessagePageState extends State<MessagePage> {
|
||||
_pageController =
|
||||
PageController(initialPage: messageController.model.type == 1 ? 0 : 1);
|
||||
messageController.getMessageStatus();
|
||||
late StreamSubscription<SwitchLanguageEvent> subscription;
|
||||
|
||||
// 监听切换语言
|
||||
subscription = EventBus().on<SwitchLanguageEvent>().listen((event) {
|
||||
ef.log("切换语言事件通知");
|
||||
_fetchMessageData();
|
||||
});
|
||||
_fetchMessageData();
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ class _ApplyRepairPageState extends State<ApplyRepairPage> {
|
||||
.map((e) => (e['_id']) as String)
|
||||
.toList();
|
||||
repairController.deviceListIdLabel = bodyDeviceController.deviceList
|
||||
.map((e) => (e['code']??e['mac']) as String)
|
||||
.map((e) => (e['code'] ?? e['mac']) as String)
|
||||
.toList();
|
||||
}
|
||||
return LayoutBuilder(
|
||||
@@ -197,28 +197,32 @@ class _ApplyRepairPageState extends State<ApplyRepairPage> {
|
||||
themeController.currentColor.sc2,
|
||||
]
|
||||
: [themeController.currentColor.sc5],
|
||||
child: Container(
|
||||
width: (MediaQuery.sizeOf(context).width *
|
||||
0.284)
|
||||
.rpx,
|
||||
constraints: BoxConstraints(
|
||||
minWidth: 213.rpx,
|
||||
minHeight: 91.rpx,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Align(
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Text(
|
||||
deviceType['name'],
|
||||
style: TextStyle(
|
||||
letterSpacing: 0.0,
|
||||
color: themeController
|
||||
.currentColor.sc3,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.fromLTRB(
|
||||
32.rpx, 0, 32.rpx, 0),
|
||||
child: Container(
|
||||
// width: (MediaQuery.sizeOf(context).width *
|
||||
// 0.284)
|
||||
// .rpx,
|
||||
constraints: BoxConstraints(
|
||||
// minWidth: 213.rpx,
|
||||
minHeight: 91.rpx,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Align(
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Text(
|
||||
deviceType['name'],
|
||||
style: TextStyle(
|
||||
letterSpacing: 0.0,
|
||||
color: themeController
|
||||
.currentColor.sc3,
|
||||
fontSize: AppConstants()
|
||||
.normal_text_fontSize,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -265,34 +265,108 @@ class _RepairModelWidgetState extends State<RepairModelWidget> {
|
||||
].divide(SizedBox(width: 24.rpx)),
|
||||
),
|
||||
),
|
||||
// Container(
|
||||
// width: double.infinity,
|
||||
// // height: 151.rpx,
|
||||
// height: 200.rpx,
|
||||
// decoration: BoxDecoration(
|
||||
// color: themeController.currentColor.sc15,
|
||||
// borderRadius: BorderRadius.circular(20.rpx),
|
||||
// ),
|
||||
// child: Container(
|
||||
// width: 200.rpx,
|
||||
// child: TextFormField(
|
||||
// controller: repairController.onReDraw(
|
||||
// TextEditingController(text: widget.model['issue']),
|
||||
// (textEditingController) {
|
||||
// textEditingController.text = widget.model['issue'];
|
||||
// }),
|
||||
// onChanged: (value) {
|
||||
// widget.model['issue'] = value;
|
||||
// },
|
||||
// maxLines: null, // 👈 支持无限行
|
||||
// // controller: TextEditingController(),
|
||||
// autofocus: false,
|
||||
// obscureText: false,
|
||||
// maxLength: 60,
|
||||
// decoration: InputDecoration(
|
||||
// isDense: true,
|
||||
// labelStyle: TextStyle(
|
||||
// letterSpacing: 0.0,
|
||||
// ),
|
||||
// hintText: '问题描述'.tr,
|
||||
// hintStyle: TextStyle(
|
||||
// fontSize: 26.rpx,
|
||||
// letterSpacing: 0.0,
|
||||
// color: themeController.currentColor.sc4,
|
||||
// ),
|
||||
// enabledBorder: OutlineInputBorder(
|
||||
// borderSide: BorderSide(
|
||||
// color: Color(0x00000000),
|
||||
// width: 1,
|
||||
// ),
|
||||
// borderRadius: BorderRadius.circular(8.rpx),
|
||||
// ),
|
||||
// focusedBorder: OutlineInputBorder(
|
||||
// borderSide: BorderSide(
|
||||
// color: Color(0x00000000),
|
||||
// width: 1,
|
||||
// ),
|
||||
// borderRadius: BorderRadius.circular(8.rpx),
|
||||
// ),
|
||||
// errorBorder: OutlineInputBorder(
|
||||
// borderSide: BorderSide(
|
||||
// //
|
||||
// width: 1,
|
||||
// ),
|
||||
// borderRadius: BorderRadius.circular(8.rpx),
|
||||
// ),
|
||||
// focusedErrorBorder: OutlineInputBorder(
|
||||
// borderSide: BorderSide(
|
||||
// //
|
||||
// width: 1,
|
||||
// ),
|
||||
// borderRadius: BorderRadius.circular(8.rpx),
|
||||
// ),
|
||||
// filled: false,
|
||||
// contentPadding: EdgeInsets.symmetric(
|
||||
// vertical: 20.rpx, horizontal: 20.rpx),
|
||||
// ),
|
||||
// style: TextStyle(
|
||||
// color: themeController.currentColor.sc3,
|
||||
// fontSize: AppConstants().normal_text_fontSize,
|
||||
// ),
|
||||
// cursorColor: themeController.currentColor.sc3,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: 151.rpx,
|
||||
height: 170.rpx,
|
||||
decoration: BoxDecoration(
|
||||
color: themeController.currentColor.sc15,
|
||||
borderRadius: BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Container(
|
||||
width: 200.rpx,
|
||||
child: Padding(
|
||||
// 👇 给输入框整体加点内边距
|
||||
padding: EdgeInsets.only(bottom: 10.rpx, right: 10.rpx),
|
||||
child: TextFormField(
|
||||
controller: repairController.onReDraw(
|
||||
TextEditingController(text: widget.model['issue']),
|
||||
(textEditingController) {
|
||||
textEditingController.text = widget.model['issue'];
|
||||
}),
|
||||
TextEditingController(text: widget.model['issue']),
|
||||
(textEditingController) {
|
||||
textEditingController.text = widget.model['issue'];
|
||||
},
|
||||
),
|
||||
onChanged: (value) {
|
||||
widget.model['issue'] = value;
|
||||
},
|
||||
maxLines: null, // 👈 支持无限行
|
||||
// controller: TextEditingController(),
|
||||
maxLines: null,
|
||||
autofocus: false,
|
||||
obscureText: false,
|
||||
maxLength: 60,
|
||||
decoration: InputDecoration(
|
||||
isDense: true,
|
||||
labelStyle: TextStyle(
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
hintText: '问题描述'.tr,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 26.rpx,
|
||||
@@ -300,36 +374,28 @@ class _RepairModelWidgetState extends State<RepairModelWidget> {
|
||||
color: themeController.currentColor.sc4,
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
color: Color(0x00000000),
|
||||
width: 1,
|
||||
),
|
||||
borderSide:
|
||||
BorderSide(color: Colors.transparent, width: 1),
|
||||
borderRadius: BorderRadius.circular(8.rpx),
|
||||
),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
color: Color(0x00000000),
|
||||
width: 1,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8.rpx),
|
||||
),
|
||||
errorBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
//
|
||||
width: 1,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8.rpx),
|
||||
),
|
||||
focusedErrorBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
//
|
||||
width: 1,
|
||||
),
|
||||
borderSide:
|
||||
BorderSide(color: Colors.transparent, width: 1),
|
||||
borderRadius: BorderRadius.circular(8.rpx),
|
||||
),
|
||||
filled: false,
|
||||
contentPadding: EdgeInsets.symmetric(
|
||||
vertical: 20.rpx, horizontal: 20.rpx),
|
||||
|
||||
// 👇 调整输入区域与计数器的间距
|
||||
contentPadding:
|
||||
EdgeInsets.fromLTRB(20.rpx, 20.rpx, 20.rpx, 40.rpx),
|
||||
|
||||
// 👇 调整计数器样式和位置(上浮一点,不贴边)
|
||||
counterStyle: TextStyle(
|
||||
height: 1.2, // 控制计数器与下边的距离
|
||||
fontSize: 22.rpx,
|
||||
color: themeController.currentColor.sc4,
|
||||
),
|
||||
alignLabelWithHint: true,
|
||||
),
|
||||
style: TextStyle(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -339,6 +405,7 @@ class _RepairModelWidgetState extends State<RepairModelWidget> {
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
ClickableContainer(
|
||||
backgroundColor: themeController.currentColor.sc15,
|
||||
highlightColor: themeController.currentColor.sc21,
|
||||
|
||||
@@ -2,8 +2,10 @@ import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/EventBus.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/eventType.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
||||
@@ -125,6 +127,9 @@ class _LanguageSettingState extends State<LanguageSetting> {
|
||||
languageController
|
||||
.selectLanguage
|
||||
.value = language;
|
||||
EventBus().emit(
|
||||
SwitchLanguageEvent(
|
||||
language.language_code));
|
||||
await AppLanguage()
|
||||
.loadLanguage(language
|
||||
.language_code); // 加载语言
|
||||
|
||||
@@ -53,7 +53,7 @@ Widget DailyDataWidget(
|
||||
sleepReport: sleepReport,
|
||||
highlightItem: data['itemName'],
|
||||
),
|
||||
SnoreViewWidgetWidget(sleepReport: sleepReport),
|
||||
// SnoreViewWidgetWidget(sleepReport: sleepReport),
|
||||
BreathePauseNewWidget(sleepReport: sleepReport),
|
||||
HeartHealthWidget(sleepReport: sleepReport),
|
||||
DiseasePercentsWidget(sleepReport: sleepReport),
|
||||
|
||||
@@ -99,7 +99,10 @@ class _SleepCardState extends State<SleepCard> with TickerProviderStateMixin {
|
||||
}
|
||||
}
|
||||
int num = AppLanguage().isChinese() ? 3 : 2;
|
||||
List data = widget.sleepReport['bs'] ?? [];
|
||||
// List data = widget.sleepReport['bs'] ?? [];
|
||||
List data = (widget.sleepReport['bs'] ?? [])
|
||||
.where((item) => item['show'] != false)
|
||||
.toList();
|
||||
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
|
||||
Reference in New Issue
Block a user