diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-hdpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-hdpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcherwd.jpg differ
diff --git a/android/app/src/main/res/mipmap-ldpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-ldpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-ldpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-ldpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-ldpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-ldpi/ic_launcherwd.jpg differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-mdpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-mdpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcherwd.jpg differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-xhdpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcherwd.jpg differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-xxhdpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcherwd.jpg differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherdh.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherdh.png
new file mode 100644
index 0000000..0c9a4c5
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherdh.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherwd.jpg b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherwd.jpg
new file mode 100644
index 0000000..c3b6ede
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcherwd.jpg differ
diff --git a/assets/img/icon/location.svg b/assets/img/icon/location.svg
new file mode 100644
index 0000000..7c0341c
--- /dev/null
+++ b/assets/img/icon/location.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/langs/en_US.json b/assets/langs/en_US.json
index 66832cd..6b0eeda 100644
--- a/assets/langs/en_US.json
+++ b/assets/langs/en_US.json
@@ -638,5 +638,22 @@
"前往AppStore": "Go to AppStore",
"下载中...": "Downloading...",
"欢迎使用东华智能睡眠": "Welcome to use Donghua Smart Sleep",
+ "健康快检": "Health Quick Check",
+ "开始快检": "Start Quick Check",
+ "健康等级:": "Health Level:",
+ "快检得分:": "Quick Check Score: ",
+ "设备ID:": "Device ID:",
+ "快检时间:": "Quick Check Time:",
+ "终止": "Stop",
+ "性别": "Gender",
+ "快检历史": "Quick Check History",
+ "快检得分": "Quick Check Score",
+ "创建时间": "Create Time",
+ "疲劳指数": "Fatigue Index",
+ "快检中...": "Quick Checking...",
+ "体验异常结束": "Abnormal experience ended",
+ "是否确认结束?": "Are you sure to end?",
+ "使用方式:人员使用健康快检功能时,只需平躺或坐在正常运行中的体征传感器传感器上方,保持静止,然后点击“启动快检”,待进度条完成,即可得出快检报告。": "Usage Instructions:When using the Health Quick Check function, the user only needs to lie flat or sit above the vital signs sensor while it is operating normally, remain still, and then tap **“Start Quick Check.”",
+ "注:本页报告是基于心率、呼吸等体征波形数据,通过AI算法模型分析完成,其结果仅供参考;其中报告未见数据异常部分,并不代表没有潜在性的疾病风险,如有不适请及时就医。": "Note:This report is generated based on physiological waveform data such as heart rate and respiration, analyzed using an AI algorithm model. The results are for reference only. Sections of the report showing no abnormal data do not necessarily indicate the absence of potential health risks. If you feel unwell, please seek medical attention promptly.",
"Copyright © 2020-2030 东华智能睡眠中心 版权所有": "Copyright © 2020-2030 Donghua Smart Sleep Center All Rights Reserved"
}
\ No newline at end of file
diff --git a/assets/langs/zh_CN.json b/assets/langs/zh_CN.json
index 0a40bda..cc39c5b 100644
--- a/assets/langs/zh_CN.json
+++ b/assets/langs/zh_CN.json
@@ -638,5 +638,22 @@
"前往AppStore": "前往AppStore",
"下载中...": "下载中...",
"欢迎使用东华智能睡眠": "欢迎使用东华智能睡眠",
+ "健康快检": "健康快检",
+ "开始快检": "开始快检",
+ "终止": "终止",
+ "性别": "性别",
+ "快检历史": "快检历史",
+ "快检得分": "快检得分",
+ "创建时间": "创建时间",
+ "疲劳指数": "疲劳指数",
+ "健康等级:": "健康等级:",
+ "快检得分:": "快检得分:",
+ "设备ID:": "设备ID:",
+ "快检时间:": "快检时间:",
+ "快检中...": "快检中...",
+ "体验异常结束": "体验异常结束",
+ "是否确认结束?": "是否确认结束?",
+ "使用方式:人员使用健康快检功能时,只需平躺或坐在正常运行中的体征传感器传感器上方,保持静止,然后点击“启动快检”,待进度条完成,即可得出快检报告。": "使用方式:人员使用健康快检功能时,只需平躺或坐在正常运行中的体征传感器传感器上方,保持静止,然后点击“启动快检”,待进度条完成,即可得出快检报告。",
+ "注:本页报告是基于心率、呼吸等体征波形数据,通过AI算法模型分析完成,其结果仅供参考;其中报告未见数据异常部分,并不代表没有潜在性的疾病风险,如有不适请及时就医。":"注:本页报告是基于心率、呼吸等体征波形数据,通过AI算法模型分析完成,其结果仅供参考;其中报告未见数据异常部分,并不代表没有潜在性的疾病风险,如有不适请及时就医。",
"Copyright © 2020-2030 东华智能睡眠中心 版权所有": "Copyright © 2020-2030 东华智能睡眠中心 版权所有"
}
\ No newline at end of file
diff --git a/assets/langs/zh_TW.json b/assets/langs/zh_TW.json
index f384058..960cfe7 100644
--- a/assets/langs/zh_TW.json
+++ b/assets/langs/zh_TW.json
@@ -636,5 +636,22 @@
"前往AppStore": "前往AppStore",
"下载中...": "下載中...",
"欢迎使用东华智能睡眠": "歡迎使用東華智能睡眠",
+ "健康快检": "健康快检",
+ "开始快检": "開始快檢",
+ "终止": "終止",
+ "性别": "性别",
+ "快检历史": "快檢歷史",
+ "快检得分": "快檢得分",
+ "创建时间": "创建时间",
+ "疲劳指数": "疲力指數",
+ "健康等级:": "健康等級:",
+ "快检得分:": "快檢得分:",
+ "设备ID:": "设备ID:",
+ "快检时间:": "快檢時間:",
+ "快检中...": "快檢中...",
+ "体验异常结束": "體驗異常結束",
+ "是否确认结束?": "是否確認結束?",
+ "注:本页报告是基于心率、呼吸等体征波形数据,通过AI算法模型分析完成,其结果仅供参考;其中报告未见数据异常部分,并不代表没有潜在性的疾病风险,如有不适请及时就医。": "注意:本頁報告基於心率、呼吸等體徵波形數據,通過AI算法模型分析完成,其結果僅供參考;其中報告未見數據異常部分,並不表示沒有潛在的疾病風險,如有不適請即時就医。",
+ "使用方式:人员使用健康快检功能时,只需平躺或坐在正常运行中的体征传感器传感器上方,保持静止,然后点击“启动快检”,待进度条完成,即可得出快检报告。": "使用方式:人员使用健康快检功能時,只需平躺或坐在正常運行中的體徵传感器传感器上方,保持靜止,然後點擊“啟動快檢”,待進度條完成,即可得出快檢報告。",
"Copyright © 2020-2030 东华智能睡眠中心 版权所有": " 版權所有©2020-2030 東華智能睡眠中心"
}
\ No newline at end of file
diff --git a/assets/miniapp/mhtControl_1.0.90.zip b/assets/miniapp/mhtControl_1.0.90.zip
index d8279c0..d53274a 100644
Binary files a/assets/miniapp/mhtControl_1.0.90.zip and b/assets/miniapp/mhtControl_1.0.90.zip differ
diff --git a/lib/common/color/ServiceConstant.dart b/lib/common/color/ServiceConstant.dart
index 6a0f2bd..a4ce9d3 100644
--- a/lib/common/color/ServiceConstant.dart
+++ b/lib/common/color/ServiceConstant.dart
@@ -5,6 +5,8 @@ class ServiceConstant {
// static const String baseHost = "vsbst-api.he-info.com";//服务地址
// static const String service_address = "http://$baseHost";
static String service_address = "https://$baseHost";
+ static String qc_service_address = "https://fast-check.he-info.cn";
+
static String server_service = "/vsbs_app_server"; //服务名称
@@ -63,4 +65,10 @@ class ServiceConstant {
//下发wifi控制指令
static const String sendWifiCommand = "/api/device/cmd/ttd";
+ //查询快检状态
+ static const String checkQuickStatus = "/api/fc/status";
+ //查询历史快检
+ static const String getCheckHistory = "/api/fc/history";
+ //更新快检状态
+ static const String qcControl = "/api/fc/control";
}
diff --git a/lib/common/color/appConstants.dart b/lib/common/color/appConstants.dart
index 106c102..94a0b1a 100644
--- a/lib/common/color/appConstants.dart
+++ b/lib/common/color/appConstants.dart
@@ -8,7 +8,7 @@ import 'package:vbvs_app/enum/APPPackageType.dart';
class AppConstants {
// App-related constants
- static const String zhmht_app_version = "SWES_1.2026.1.8"; //眠花糖
+ static const String zhmht_app_version = "SWES_1.2026.3.6"; //眠花糖
static const String theh_app_version = "1.2601.12"; //太和
// 1. 纯字符串列表格式
@@ -61,9 +61,11 @@ class AppConstants {
double smaller_text_fontSize = 18.rpx; //普通文字字号
double small_text_fontSize = 20.rpx; //普通文字字号
+ double small_an_text_fontSize = 21.rpx; //普通文字字号
double middler_text_fontSize = 24.rpx; //普通文字字号
double normal_text_fontSize = 26.rpx; //普通文字字号
double title_text_fontSize = 30.rpx; //标题文字字号
+ double bigger_text_fontSize = 36.rpx; //标题文字字号
double dropdown_height = 90.rpx; //标题文字字号
double border_width = 1.rpx; //标题文字字号//border宽度
@@ -89,8 +91,8 @@ class AppConstants {
//系统参数
//运行打包APP模式
- int ent_type = APPPackageType.MHT.code; //1.默认太和 2.欢睡 3.眠花糖
- // int ent_type = APPPackageType.TH.code; //1.默认太和 2.欢睡 3.眠花糖
+ // int ent_type = APPPackageType.MHT.code; //1.默认太和 2.欢睡 3.眠花糖
+ int ent_type = APPPackageType.TH.code; //1.默认太和 2.欢睡 3.眠花糖
// int ent_type = APPPackageType.HUANSHUI.code; //1.默认太和 2.欢睡 3.眠花糖
// int ent_type = APPPackageType.DONGHUA.code; //1.默认太和 2.欢睡 3.眠花糖 4.东华
// int ent_type = APPPackageType.HAIER.code; //1.默认太和 2.欢睡 3.眠花糖 4.东华 5.海尔沃棣
diff --git a/lib/component/home_page/DynamicReportDetailWidget.dart b/lib/component/home_page/DynamicReportDetailWidget.dart
index 9180dd2..db66b02 100644
--- a/lib/component/home_page/DynamicReportDetailWidget.dart
+++ b/lib/component/home_page/DynamicReportDetailWidget.dart
@@ -565,23 +565,25 @@ class _DynamicReportDetailWidgetState extends State {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- ClickableContainer(
- backgroundColor: Colors.transparent,
- highlightColor: themeController.currentColor.sc3.withOpacity(0.2),
- padding: EdgeInsets.zero,
- onTap: () async {
- await Get.toNamed("/bodyDevice", arguments: targetDevice);
- },
- child: Text(
- targetDevice['person']?['name']?.isNotEmpty == true
- ? targetDevice['person']['name']
- : '体征监测设备'.tr,
- style: TextStyle(
- fontSize: 30.rpx,
- color: themeController.currentColor.sc3,
+ Expanded(
+ child: ClickableContainer(
+ backgroundColor: Colors.transparent,
+ highlightColor: themeController.currentColor.sc3.withOpacity(0.2),
+ padding: EdgeInsets.zero,
+ onTap: () async {
+ await Get.toNamed("/bodyDevice", arguments: targetDevice);
+ },
+ child: Text(
+ targetDevice['person']?['name']?.isNotEmpty == true
+ ? targetDevice['person']['name']
+ : '体征监测设备'.tr,
+ style: TextStyle(
+ fontSize: 30.rpx,
+ color: themeController.currentColor.sc3,
+ ),
+ maxLines: 1,
+ overflow: TextOverflow.ellipsis,
),
- maxLines: 1,
- overflow: TextOverflow.ellipsis,
),
),
if (!AppConstants.is_test_account)
diff --git a/lib/controller/device/device_type_controller.dart b/lib/controller/device/device_type_controller.dart
index 665ddfd..61bd427 100644
--- a/lib/controller/device/device_type_controller.dart
+++ b/lib/controller/device/device_type_controller.dart
@@ -8,6 +8,7 @@ import 'package:vbvs_app/common/color/ServiceConstant.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/MyUtils.dart';
+import 'package:vbvs_app/common/util/requestWithLog.dart';
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/model/api_response.dart';
@@ -42,7 +43,13 @@ class DeviceTypeController extends GetControllerEx {
attr = GetModel(DeviceTypeModel()).obs;
}
RxList deviceTypeList = [].obs;
+ RxList cqHistoryList = [].obs;
+ RxMap currentCq = {}.obs;
LanguageController languageController = Get.find();
+ // 404:未找到快检信息 200:快检进行中 201:快检完成 202:快检超时 203:已取消 500:计算错误
+ RxInt experience_status = 404.obs;
+ RxInt experience_percent = 0.obs; //体验进度
+ RxString experience_id = "".obs; //体验id
Future getDeviceType() async {
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);
@@ -51,7 +58,7 @@ class DeviceTypeController extends GetControllerEx {
String serviceApi = ServiceConstant.device_type;
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
- String? language = "";
+ String? language = "";
if (AppConstants().ent_type == APPPackageType.MHT.code) {
if (mhLanguageController.selectLanguage != null) {
language = mhLanguageController.selectLanguage.value!.language_code;
@@ -90,4 +97,177 @@ class DeviceTypeController extends GetControllerEx {
return apiResponse;
}
}
+
+ Future checkReportStatus(String mac) async {
+ String serviceAddress = ServiceConstant.qc_service_address;
+ String serviceApi = ServiceConstant.checkQuickStatus;
+ String queryUrl = "$serviceAddress$serviceApi?mac=${mac}";
+ bool flag = false;
+ await requestWithLog(
+ logTitle: "查询快检状态",
+ method: MyHttpMethod.get,
+ queryUrl: queryUrl,
+ onSuccess: (res) {
+ flag = res.data['status'] != 200;
+ experience_status.value = res.data['status'];
+ experience_percent.value = res.data['per'] ?? 0;
+ experience_id.value = res.data['id'] ?? "";
+ updateAll();
+ },
+ onFailure: (res) {
+ flag = false;
+ },
+ );
+ return flag;
+ }
+
+ Future getCheckHistory({String? id}) async {
+ String serviceAddress = ServiceConstant.qc_service_address;
+ String serviceApi = ServiceConstant.getCheckHistory;
+ String queryUrl = "$serviceAddress$serviceApi";
+
+ // 如果id不为空,拼接到url上
+ if (id != null && id.isNotEmpty) {
+ queryUrl = "$queryUrl?id=$id";
+ }
+
+ bool flag = false;
+ await requestWithLog(
+ logTitle: "查询快检历史",
+ method: MyHttpMethod.get,
+ queryUrl: queryUrl,
+ onSuccess: (res) {
+ flag = true;
+ // 判断返回数据类型
+ if (res.data is List) {
+ // 如果是列表,赋值给cqHistoryList
+ cqHistoryList.value = (res.data as List).cast