更新默认本地语言
This commit is contained in:
@@ -146,7 +146,7 @@
|
|||||||
"其他手机登录页": {
|
"其他手机登录页": {
|
||||||
"输入内容": "Enter phone number/email",
|
"输入内容": "Enter phone number/email",
|
||||||
"输入验证码": "Enter verification code",
|
"输入验证码": "Enter verification code",
|
||||||
"获取验证码":"Get verification code",
|
"获取验证码": "Get code",
|
||||||
"登录": "Login",
|
"登录": "Login",
|
||||||
"请输入手机号": "Please enter phone number/email",
|
"请输入手机号": "Please enter phone number/email",
|
||||||
"不正确手机号": "Please enter valid phone number or email",
|
"不正确手机号": "Please enter valid phone number or email",
|
||||||
@@ -176,9 +176,6 @@
|
|||||||
"退出成功": "Logout successful",
|
"退出成功": "Logout successful",
|
||||||
"退出失败": "Logout failed"
|
"退出失败": "Logout failed"
|
||||||
},
|
},
|
||||||
"关于我们":{
|
|
||||||
"标题":"About Us"
|
|
||||||
},
|
|
||||||
"服务器": {
|
"服务器": {
|
||||||
"失败": "Server error, please contact administrator"
|
"失败": "Server error, please contact administrator"
|
||||||
},
|
},
|
||||||
@@ -236,7 +233,6 @@
|
|||||||
},
|
},
|
||||||
"未命名": "Unnamed",
|
"未命名": "Unnamed",
|
||||||
"未知时间": "Unknown",
|
"未知时间": "Unknown",
|
||||||
"设备ID":"Device ID",
|
|
||||||
"更新时间": "Update time",
|
"更新时间": "Update time",
|
||||||
"已分享": "Shared",
|
"已分享": "Shared",
|
||||||
"设备来源": "Device source",
|
"设备来源": "Device source",
|
||||||
@@ -349,9 +345,9 @@
|
|||||||
"连接中...": "Connecting",
|
"连接中...": "Connecting",
|
||||||
"刷新": "Refresh",
|
"刷新": "Refresh",
|
||||||
"版本": "Version:",
|
"版本": "Version:",
|
||||||
"日报":"Daily",
|
"日报": "Day",
|
||||||
"月报":"Monthly",
|
"周报": "Week",
|
||||||
"周报":"Weekly",
|
"月报": "Month",
|
||||||
"4g设备配置wifi提示": "4G device doesn't require WiFi configuration",
|
"4g设备配置wifi提示": "4G device doesn't require WiFi configuration",
|
||||||
"微信客服提示": "Please install WeChat APP first to contact support",
|
"微信客服提示": "Please install WeChat APP first to contact support",
|
||||||
"打开微信客服提示": "Opening WeChat support...",
|
"打开微信客服提示": "Opening WeChat support...",
|
||||||
@@ -422,6 +418,24 @@
|
|||||||
"次": "times",
|
"次": "times",
|
||||||
"秒": "sec",
|
"秒": "sec",
|
||||||
"暂无": "none",
|
"暂无": "none",
|
||||||
"失败": "Failed"
|
"失败": "Failed",
|
||||||
|
"关于我们": "About Us",
|
||||||
|
"周一": "Mon",
|
||||||
|
"周二": "Tue",
|
||||||
|
"周三": "Wed",
|
||||||
|
"周四": "Thu",
|
||||||
|
"周五": "Fri",
|
||||||
|
"周六": "Sat",
|
||||||
|
"周日": "Sun",
|
||||||
|
"无报告": "none",
|
||||||
|
"姓名": "Name",
|
||||||
|
"年龄": "Age",
|
||||||
|
"设备ID": "Device ID",
|
||||||
|
"体重": "Weight",
|
||||||
|
"分": "",
|
||||||
|
"位置权限说明": "Location Permission Description",
|
||||||
|
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "Obtain location information, connect to nearby Bluetooth devices, and recommend nearby stores",
|
||||||
|
"蓝牙权限说明": "Bluetooth Permission Description",
|
||||||
|
"搜索链接附近的蓝牙设备": "Search and connect to nearby Bluetooth devices",
|
||||||
|
"附近设备权限说明": "Nearby Device Permission Description"
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,6 @@
|
|||||||
"配网失败": "配网失败",
|
"配网失败": "配网失败",
|
||||||
"配网中": "配网中",
|
"配网中": "配网中",
|
||||||
"需配网": "请给设备配置网络!"
|
"需配网": "请给设备配置网络!"
|
||||||
|
|
||||||
},
|
},
|
||||||
"其他手机登录页": {
|
"其他手机登录页": {
|
||||||
"输入内容": "输入手机号码/邮箱",
|
"输入内容": "输入手机号码/邮箱",
|
||||||
@@ -177,9 +176,6 @@
|
|||||||
"退出成功": "退出成功",
|
"退出成功": "退出成功",
|
||||||
"退出失败": "退出失败"
|
"退出失败": "退出失败"
|
||||||
},
|
},
|
||||||
"关于我们":{
|
|
||||||
"标题":"关于我们"
|
|
||||||
},
|
|
||||||
"服务器": {
|
"服务器": {
|
||||||
"失败": "服务器内部错误,请联系管理员"
|
"失败": "服务器内部错误,请联系管理员"
|
||||||
},
|
},
|
||||||
@@ -237,7 +233,6 @@
|
|||||||
},
|
},
|
||||||
"未命名": "未命名",
|
"未命名": "未命名",
|
||||||
"未知时间": "-",
|
"未知时间": "-",
|
||||||
"设备ID":"设备ID",
|
|
||||||
"更新时间": "更新时间",
|
"更新时间": "更新时间",
|
||||||
"已分享": "已分享",
|
"已分享": "已分享",
|
||||||
"设备来源": "设备来源",
|
"设备来源": "设备来源",
|
||||||
@@ -436,8 +431,24 @@
|
|||||||
"暂无": "暂无",
|
"暂无": "暂无",
|
||||||
"设备连接超时,请重试": "设备连接超时,请点击刷新重试",
|
"设备连接超时,请重试": "设备连接超时,请点击刷新重试",
|
||||||
"设备连接失败": "设备连接失败,请点击刷新重试",
|
"设备连接失败": "设备连接失败,请点击刷新重试",
|
||||||
"失败":"服务器内部错误,请联系管理员"
|
"失败": "服务器内部错误,请联系管理员",
|
||||||
|
"关于我们": "关于我们",
|
||||||
|
"周一": "周一",
|
||||||
|
"周二": "周二",
|
||||||
|
"周三": "周三",
|
||||||
|
"周四": "周四",
|
||||||
|
"周五": "周五",
|
||||||
|
"周六": "周六",
|
||||||
|
"周日": "周日",
|
||||||
|
"无报告": "无报告",
|
||||||
|
"姓名": "姓名",
|
||||||
|
"年龄": "年龄",
|
||||||
|
"设备ID": "设备ID",
|
||||||
|
"体重": "体重",
|
||||||
|
"分":"分",
|
||||||
|
"位置权限说明":"位置权限说明",
|
||||||
|
"获得位置信息,连接附近的蓝牙设备与推荐附近门店":"获得位置信息,连接附近的蓝牙设备与推荐附近门店",
|
||||||
|
"蓝牙权限说明":"蓝牙权限说明",
|
||||||
|
"搜索链接附近的蓝牙设备":"搜索链接附近的蓝牙设备",
|
||||||
|
"附近设备权限说明":"附近设备权限说明"
|
||||||
}
|
}
|
||||||
@@ -176,9 +176,6 @@
|
|||||||
"退出成功": "退出成功",
|
"退出成功": "退出成功",
|
||||||
"退出失败": "退出失敗"
|
"退出失败": "退出失敗"
|
||||||
},
|
},
|
||||||
"关于我们":{
|
|
||||||
"标题":"關於我們"
|
|
||||||
},
|
|
||||||
"服务器": {
|
"服务器": {
|
||||||
"失败": "服務器內部錯誤,請聯繫管理員"
|
"失败": "服務器內部錯誤,請聯繫管理員"
|
||||||
},
|
},
|
||||||
@@ -421,5 +418,23 @@
|
|||||||
"昨日数据": "昨日數據",
|
"昨日数据": "昨日數據",
|
||||||
"次": "次",
|
"次": "次",
|
||||||
"秒": "秒",
|
"秒": "秒",
|
||||||
"失败": "失敗"
|
"失败": "失敗",
|
||||||
|
"关于我们": "關於我們",
|
||||||
|
"周一": "週一",
|
||||||
|
"周二": "週二",
|
||||||
|
"周三": "週三",
|
||||||
|
"周四": "週四",
|
||||||
|
"周五": "週五",
|
||||||
|
"周六": "週六",
|
||||||
|
"周日": "週日",
|
||||||
|
"无报告": "无报告",
|
||||||
|
"姓名": "姓名",
|
||||||
|
"年龄": "年齡",
|
||||||
|
"体重": "體重",
|
||||||
|
"分": "分",
|
||||||
|
"位置权限说明": "位置權限說明",
|
||||||
|
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "獲得位置信息,連接附近的藍牙設備與推薦附近門店",
|
||||||
|
"蓝牙权限说明": "藍牙權限說明",
|
||||||
|
"搜索链接附近的蓝牙设备": "搜索連接附近的藍牙設備",
|
||||||
|
"附近设备权限说明": "附近設備權限說明"
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
class ServiceConstant {
|
class ServiceConstant {
|
||||||
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
|
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
|
||||||
static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
// static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
||||||
// static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
|
static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
|
||||||
// static const String baseHost = "vsbst-api.he-info.cn";//服务地址
|
// static const String baseHost = "vsbst-api.he-info.cn";//服务地址
|
||||||
// static const String service_address = "http://$baseHost";
|
static const String service_address = "http://$baseHost";
|
||||||
static const String service_address = "https://$baseHost";
|
// static const String service_address = "https://$baseHost";
|
||||||
|
|
||||||
static String server_service = "/vsbs_app_server"; //服务名称
|
static String server_service = "/vsbs_app_server"; //服务名称
|
||||||
|
|
||||||
|
|||||||
@@ -17,42 +17,6 @@ class SleepdateWidget extends StatelessWidget {
|
|||||||
this.highlightColor = Colors.black, // 默认值黑色
|
this.highlightColor = Colors.black, // 默认值黑色
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
|
||||||
// Widget build(BuildContext context) {
|
|
||||||
// return ClickableContainer(
|
|
||||||
// onTap: onTap,
|
|
||||||
// backgroundColor: Colors.transparent,
|
|
||||||
// highlightColor: Colors.transparent,
|
|
||||||
// padding: EdgeInsets.all(4.rpx),
|
|
||||||
// child: Container(
|
|
||||||
// width: 90.rpx,
|
|
||||||
// height: 90.rpx,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// borderRadius: BorderRadius.circular(30.rpx),
|
|
||||||
// color: isSelected ? highlightColor : Colors.transparent, // 使用传入的颜色
|
|
||||||
// ),
|
|
||||||
// child: Padding(
|
|
||||||
// padding:
|
|
||||||
// EdgeInsetsDirectional.fromSTEB(10.rpx, 10.rpx, 10.rpx, 10.rpx),
|
|
||||||
// child: Container(
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: Color(0xFF757575),
|
|
||||||
// shape: BoxShape.circle,
|
|
||||||
// ),
|
|
||||||
// alignment: Alignment.center,
|
|
||||||
// child: Text(
|
|
||||||
// '${date.day}',
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: Colors.white,
|
|
||||||
// fontSize: 26.rpx,
|
|
||||||
// letterSpacing: 0.0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Color? fillColor;
|
Color? fillColor;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:ef/ef.dart';
|
|||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
|
|
||||||
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
|
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
|
|
||||||
@@ -40,7 +39,7 @@ class DeviceTypeController extends GetControllerEx<DeviceTypeModel> {
|
|||||||
attr = GetModel(DeviceTypeModel()).obs;
|
attr = GetModel(DeviceTypeModel()).obs;
|
||||||
}
|
}
|
||||||
RxList deviceTypeList = [].obs;
|
RxList deviceTypeList = [].obs;
|
||||||
MHLanguageController languageController = Get.find();
|
LanguageController languageController = Get.find();
|
||||||
|
|
||||||
Future<ApiResponse> getDeviceType() async {
|
Future<ApiResponse> getDeviceType() async {
|
||||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);
|
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);
|
||||||
|
|||||||
@@ -181,6 +181,10 @@ class MessageController extends GetControllerEx<MessageModel> {
|
|||||||
queryUrl += "?lang=$language";
|
queryUrl += "?lang=$language";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (type != null) {
|
||||||
|
queryUrl = "$queryUrl&type=$type";
|
||||||
|
}
|
||||||
|
queryUrl = "$queryUrl&mid=ALL";
|
||||||
var response = await EasyDartModule.dio.post(queryUrl);
|
var response = await EasyDartModule.dio.post(queryUrl);
|
||||||
|
|
||||||
if (response != null) {
|
if (response != null) {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import 'package:ef/ef.dart';
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
|
import 'package:vbvs_app/enum/APPPackageType.dart';
|
||||||
import 'package:vbvs_app/language/AppLanguage.dart';
|
import 'package:vbvs_app/language/AppLanguage.dart';
|
||||||
|
|
||||||
part 'mh_language_controller.g.dart'; // 由json_serializable自动生成的部分
|
part 'mh_language_controller.g.dart'; // 由json_serializable自动生成的部分
|
||||||
@@ -47,10 +49,25 @@ class MHLanguageController extends GetControllerEx<MHLanguageModel> {
|
|||||||
final Map<String, dynamic> manifestMap = json.decode(manifestContent);
|
final Map<String, dynamic> manifestMap = json.decode(manifestContent);
|
||||||
|
|
||||||
// 筛选出 langs 目录下的 .json 文件
|
// 筛选出 langs 目录下的 .json 文件
|
||||||
final langFiles = manifestMap.keys
|
|
||||||
|
int code = AppConstants().ent_type;
|
||||||
|
final langFiles;
|
||||||
|
if (APPPackageType.TH.code == code) {
|
||||||
|
langFiles = manifestMap.keys
|
||||||
|
.where((String key) =>
|
||||||
|
key.startsWith('assets/langs/') && key.endsWith('.json'))
|
||||||
|
.toList();
|
||||||
|
} else if (APPPackageType.MHT.code == code) {
|
||||||
|
langFiles = manifestMap.keys
|
||||||
.where((String key) =>
|
.where((String key) =>
|
||||||
key.startsWith('assets/mhlangs/') && key.endsWith('.json'))
|
key.startsWith('assets/mhlangs/') && key.endsWith('.json'))
|
||||||
.toList();
|
.toList();
|
||||||
|
} else {
|
||||||
|
langFiles = manifestMap.keys
|
||||||
|
.where((String key) =>
|
||||||
|
key.startsWith('assets/langs/') && key.endsWith('.json'))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
// 2. 遍历所有语言文件
|
// 2. 遍历所有语言文件
|
||||||
for (final filePath in langFiles) {
|
for (final filePath in langFiles) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:get_storage/get_storage.dart';
|
|||||||
import 'package:img_picker/img_picker.dart';
|
import 'package:img_picker/img_picker.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
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/color/app_uri_status.dart';
|
||||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
@@ -14,6 +15,7 @@ import 'package:vbvs_app/controller/home/home_controller.dart';
|
|||||||
import 'package:vbvs_app/controller/login/login_controller.dart';
|
import 'package:vbvs_app/controller/login/login_controller.dart';
|
||||||
import 'package:vbvs_app/controller/message/message_controller.dart';
|
import 'package:vbvs_app/controller/message/message_controller.dart';
|
||||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||||
|
import 'package:vbvs_app/enum/APPPackageType.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
import 'package:vbvs_app/model/user_data.dart';
|
import 'package:vbvs_app/model/user_data.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||||||
@@ -225,7 +227,11 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ApiResponse logOut() {
|
ApiResponse logOut() {
|
||||||
|
int code = AppConstants().ent_type;
|
||||||
|
if (APPPackageType.MHT.code == code) {
|
||||||
MHTHomeController mhtHomeController = Get.find();
|
MHTHomeController mhtHomeController = Get.find();
|
||||||
|
mhtHomeController.personnelList.value = [];
|
||||||
|
}
|
||||||
ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr);
|
ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr);
|
||||||
EasyDartModule.logger.info("退出登录");
|
EasyDartModule.logger.info("退出登录");
|
||||||
DailyLogUtils.writeLog("退出登录");
|
DailyLogUtils.writeLog("退出登录");
|
||||||
@@ -246,9 +252,9 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
|||||||
messageController.model.system_message_read = 0;
|
messageController.model.system_message_read = 0;
|
||||||
CountdownController countdownController = Get.find();
|
CountdownController countdownController = Get.find();
|
||||||
countdownController.countdown.value = 0;
|
countdownController.countdown.value = 0;
|
||||||
mhtHomeController.personnelList.value = [];
|
|
||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiResponse deleteAccount() {
|
ApiResponse deleteAccount() {
|
||||||
MHTHomeController mhtHomeController = Get.find();
|
MHTHomeController mhtHomeController = Get.find();
|
||||||
ApiResponse apiResponse = ApiResponse(code: 1, msg: "注销成功".tr);
|
ApiResponse apiResponse = ApiResponse(code: 1, msg: "注销成功".tr);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ Future<void> main() async {
|
|||||||
final Locale? deviceLocale = Get.deviceLocale;
|
final Locale? deviceLocale = Get.deviceLocale;
|
||||||
print('系统语言: ${deviceLocale?.languageCode}');
|
print('系统语言: ${deviceLocale?.languageCode}');
|
||||||
|
|
||||||
await loadLanguageSetting();
|
await loadLanguageSetting(deviceLocale?.languageCode);
|
||||||
await initLanguageSetting();
|
await initLanguageSetting();
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
@@ -121,12 +121,37 @@ Future<void> main() async {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
loadLanguageSetting() async {
|
// languageCode 系统默认语言码 en/zh
|
||||||
await ef.kvdb.openDir("mht");
|
loadLanguageSetting(String? languageCode) async {
|
||||||
String? language = await ef.kvdb.read("mht/language");
|
int code = AppConstants().ent_type;
|
||||||
|
String? language;
|
||||||
|
|
||||||
language ??= 'zh_CN';
|
if (APPPackageType.MHT.code == code) {
|
||||||
await AppLanguage().loadLanguage(language, project: APPPackageType.MHT.code);
|
await ef.kvdb.openDir("mht");
|
||||||
|
language = await ef.kvdb.read("mht/language");
|
||||||
|
} else if (APPPackageType.TH.code == code) {
|
||||||
|
await ef.kvdb.openDir("th");
|
||||||
|
language = await ef.kvdb.read("th/language");
|
||||||
|
} else {
|
||||||
|
await ef.kvdb.openDir("th");
|
||||||
|
language = await ef.kvdb.read("th/language");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果 kvdb 没有存储
|
||||||
|
if (language == null || language.isEmpty) {
|
||||||
|
if (languageCode == null || languageCode.isEmpty) {
|
||||||
|
language = 'en_US'; // 系统默认为空时用 en_US
|
||||||
|
} else {
|
||||||
|
language = (languageCode.toLowerCase() == 'zh') ? 'zh_CN' : 'en_US';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await AppLanguage().loadLanguage(
|
||||||
|
language,
|
||||||
|
project: (APPPackageType.MHT.code == code)
|
||||||
|
? APPPackageType.MHT.code
|
||||||
|
: APPPackageType.TH.code,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void initwebService() {
|
void initwebService() {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:EasyDartModule/EasyDartModule.dart' as edm;
|
import 'package:EasyDartModule/EasyDartModule.dart' as edm;
|
||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||||
import 'package:fluwx/fluwx.dart';
|
import 'package:fluwx/fluwx.dart';
|
||||||
@@ -19,6 +20,8 @@ import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
|||||||
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
import 'package:vbvs_app/controller/time/countdown_controller.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
|
import 'package:vbvs_app/pages/user/privacy_scheme_page.dart';
|
||||||
|
import 'package:vbvs_app/pages/user/user_scheme_page.dart';
|
||||||
|
|
||||||
class OtherLoginPage extends StatefulWidget {
|
class OtherLoginPage extends StatefulWidget {
|
||||||
const OtherLoginPage({super.key});
|
const OtherLoginPage({super.key});
|
||||||
@@ -34,10 +37,32 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
|||||||
CountdownController countdownController = Get.find();
|
CountdownController countdownController = Get.find();
|
||||||
LoginController loginController = Get.find();
|
LoginController loginController = Get.find();
|
||||||
|
|
||||||
|
late TapGestureRecognizer _tapRecognizer2;
|
||||||
|
late TapGestureRecognizer _tapRecognizer4;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_tapRecognizer2.dispose();
|
||||||
|
_tapRecognizer4.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
_tapRecognizer2 = TapGestureRecognizer()
|
||||||
|
..onTap = () {
|
||||||
|
// 协议2点击事件逻辑
|
||||||
|
print('点击了协议2');
|
||||||
|
// Get.to(() => UserSchemePage());
|
||||||
|
Get.toNamed("/userSchemePage");
|
||||||
|
};
|
||||||
|
_tapRecognizer4 = TapGestureRecognizer()
|
||||||
|
..onTap = () {
|
||||||
|
// 协议4点击事件逻辑
|
||||||
|
print('点击了协议4');
|
||||||
|
Get.toNamed("/privacyPage");
|
||||||
|
};
|
||||||
super.initState();
|
super.initState();
|
||||||
LoginController loginController = Get.find();
|
LoginController loginController = Get.find();
|
||||||
Fluwx fluwx = loginController.fluwx;
|
Fluwx fluwx = loginController.fluwx;
|
||||||
@@ -668,6 +693,86 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
|||||||
checkColor: Colors.white,
|
checkColor: Colors.white,
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
// Expanded(
|
||||||
|
// child: Padding(
|
||||||
|
// padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
|
// 0.rpx, 10.rpx, 0.rpx, 0.rpx),
|
||||||
|
// child: Container(
|
||||||
|
// width: bodysize.maxWidth,
|
||||||
|
// constraints: BoxConstraints(
|
||||||
|
// minWidth: 500.rpx,
|
||||||
|
// minHeight: 90.rpx,
|
||||||
|
// ),
|
||||||
|
// child: RichText(
|
||||||
|
// text: TextSpan(
|
||||||
|
// children: [
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议1'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color: themeController
|
||||||
|
// .currentColor.sc3,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议2'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color:
|
||||||
|
// stringToColor("#FF9F66"),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议3'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color: themeController
|
||||||
|
// .currentColor.sc3,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议4'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color:
|
||||||
|
// stringToColor("#FF9F66"),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议5'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color: themeController
|
||||||
|
// .currentColor.sc3,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// TextSpan(
|
||||||
|
// text: '登录页.协议6'.tr,
|
||||||
|
// style: TextStyle(
|
||||||
|
// fontFamily: 'Inter',
|
||||||
|
// letterSpacing: 0.0,
|
||||||
|
// fontSize: 20.rpx,
|
||||||
|
// color:
|
||||||
|
// stringToColor("#FF9F66"),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(
|
padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
@@ -700,6 +805,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
|||||||
color:
|
color:
|
||||||
stringToColor("#FF9F66"),
|
stringToColor("#FF9F66"),
|
||||||
),
|
),
|
||||||
|
recognizer: _tapRecognizer2,
|
||||||
),
|
),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: '登录页.协议3'.tr,
|
text: '登录页.协议3'.tr,
|
||||||
@@ -720,27 +826,28 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
|||||||
color:
|
color:
|
||||||
stringToColor("#FF9F66"),
|
stringToColor("#FF9F66"),
|
||||||
),
|
),
|
||||||
|
recognizer: _tapRecognizer4,
|
||||||
),
|
),
|
||||||
TextSpan(
|
// TextSpan(
|
||||||
text: '登录页.协议5'.tr,
|
// text: '登录页.协议5'.tr,
|
||||||
style: TextStyle(
|
// style: TextStyle(
|
||||||
fontFamily: 'Inter',
|
// fontFamily: 'Inter',
|
||||||
letterSpacing: 0.0,
|
// letterSpacing: 0.0,
|
||||||
fontSize: 20.rpx,
|
// fontSize: 20.rpx,
|
||||||
color: themeController
|
// color: themeController
|
||||||
.currentColor.sc3,
|
// .currentColor.sc3,
|
||||||
),
|
// ),
|
||||||
),
|
// ),
|
||||||
TextSpan(
|
// TextSpan(
|
||||||
text: '登录页.协议6'.tr,
|
// text: '登录页.协议6'.tr,
|
||||||
style: TextStyle(
|
// style: TextStyle(
|
||||||
fontFamily: 'Inter',
|
// fontFamily: 'Inter',
|
||||||
letterSpacing: 0.0,
|
// letterSpacing: 0.0,
|
||||||
fontSize: 20.rpx,
|
// fontSize: 20.rpx,
|
||||||
color:
|
// color:
|
||||||
stringToColor("#FF9F66"),
|
// stringToColor("#FF9F66"),
|
||||||
),
|
// ),
|
||||||
),
|
// ),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
|||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
|
import 'package:vbvs_app/enum/LoginStatus.dart';
|
||||||
|
|
||||||
class EPage extends StatefulWidget {
|
class EPage extends StatefulWidget {
|
||||||
const EPage({super.key});
|
const EPage({super.key});
|
||||||
@@ -69,7 +70,17 @@ class _EPageState extends State<EPage> {
|
|||||||
highlightColor: Colors.transparent,
|
highlightColor: Colors.transparent,
|
||||||
padding: EdgeInsets.all(0.rpx),
|
padding: EdgeInsets.all(0.rpx),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
UserInfoController userInfoController = Get.find();
|
||||||
|
bool isLoggedIn =
|
||||||
|
userInfoController.model.login == LoginStatus.LOGIN.code;
|
||||||
|
if (!isLoggedIn) {
|
||||||
|
TopSlideNotification.show(context,
|
||||||
|
text: "必须登录提示".tr,
|
||||||
|
textColor: themeController.currentColor.sc9);
|
||||||
|
Get.toNamed("/otherLoginPage");
|
||||||
|
} else {
|
||||||
TopSlideNotification.show(context, text: "待开发功能".tr);
|
TopSlideNotification.show(context, text: "待开发功能".tr);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
// child: widget.webView,
|
// child: widget.webView,
|
||||||
|
|||||||
@@ -995,16 +995,14 @@ class _HomePageState extends State<HomePage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: SingleChildScrollView(child:
|
child: SingleChildScrollView(
|
||||||
Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 26.rpx), // 第一个上方间距
|
SizedBox(height: 26.rpx), // 第一个上方间距
|
||||||
...List.generate(deviceList.length, (i) {
|
...List.generate(deviceList.length, (i) {
|
||||||
String mac = macList[i];
|
String mac = macList[i];
|
||||||
List<dynamic> dailyDataList =
|
List<dynamic> dailyDataList = reportData[mac]!;
|
||||||
reportData[mac]!;
|
Map? targetDevice = deviceList.firstWhereOrNull(
|
||||||
Map? targetDevice =
|
|
||||||
deviceList.firstWhereOrNull(
|
|
||||||
(device) => device['mac'] == mac,
|
(device) => device['mac'] == mac,
|
||||||
);
|
);
|
||||||
List stateModule = [];
|
List stateModule = [];
|
||||||
@@ -1020,11 +1018,9 @@ class _HomePageState extends State<HomePage> {
|
|||||||
targetDevice: targetDevice!,
|
targetDevice: targetDevice!,
|
||||||
sleepDateWidgets: List.generate(
|
sleepDateWidgets: List.generate(
|
||||||
dailyDataList.length, (j) {
|
dailyDataList.length, (j) {
|
||||||
|
|
||||||
|
|
||||||
var dayData = dailyDataList[j];
|
var dayData = dailyDataList[j];
|
||||||
DateTime date = DateTime
|
DateTime date =
|
||||||
.fromMillisecondsSinceEpoch(
|
DateTime.fromMillisecondsSinceEpoch(
|
||||||
dayData['time'] is String
|
dayData['time'] is String
|
||||||
? int.parse(dayData['time'])
|
? int.parse(dayData['time'])
|
||||||
: dayData['time'],
|
: dayData['time'],
|
||||||
@@ -1059,8 +1055,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
stateModule[j]['time'] =
|
stateModule[j]['time'] =
|
||||||
currentTime;
|
currentTime;
|
||||||
stateModule[j]['mac'] = goalMac;
|
stateModule[j]['mac'] = goalMac;
|
||||||
stateModule[j]['person'] =
|
stateModule[j]['person'] = person;
|
||||||
person;
|
|
||||||
return SleepDataModuleWidget(
|
return SleepDataModuleWidget(
|
||||||
data: stateModule[j]);
|
data: stateModule[j]);
|
||||||
})
|
})
|
||||||
@@ -1073,8 +1068,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
)
|
)),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -141,7 +141,8 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
|||||||
bool isLoggedIn = userInfoController.model.login ==
|
bool isLoggedIn = userInfoController.model.login ==
|
||||||
LoginStatus.LOGIN.code;
|
LoginStatus.LOGIN.code;
|
||||||
|
|
||||||
if ((index == 1 || index == 2) && !isLoggedIn) {
|
// if ((index == 1 || index == 2) && !isLoggedIn) {
|
||||||
|
if ((index == 2) && !isLoggedIn) {
|
||||||
TopSlideNotification.show(
|
TopSlideNotification.show(
|
||||||
context,
|
context,
|
||||||
text: "必须登录提示".tr,
|
text: "必须登录提示".tr,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:vbvs_app/common/util/FitTool.dart';
|
|||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
|
|
||||||
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
|
import 'package:vbvs_app/controller/setting/language/language_controller.dart';
|
||||||
import 'package:vbvs_app/language/AppLanguage.dart';
|
import 'package:vbvs_app/language/AppLanguage.dart';
|
||||||
import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart';
|
import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart';
|
||||||
@@ -19,7 +18,7 @@ class LanguageSetting extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _LanguageSettingState extends State<LanguageSetting> {
|
class _LanguageSettingState extends State<LanguageSetting> {
|
||||||
MHLanguageController languageController = Get.find();
|
LanguageController languageController = Get.find();
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
// languageController.initLanuageList();
|
// languageController.initLanuageList();
|
||||||
@@ -129,6 +128,15 @@ class _LanguageSettingState extends State<LanguageSetting> {
|
|||||||
.language_code); // 加载语言
|
.language_code); // 加载语言
|
||||||
languageController
|
languageController
|
||||||
.updateAll(); // 更新操作
|
.updateAll(); // 更新操作
|
||||||
|
try {
|
||||||
|
// ef.kv.set("language",
|
||||||
|
// language.language_code);
|
||||||
|
await ef.kvdb.write(
|
||||||
|
"th/language",
|
||||||
|
language.language_code);
|
||||||
|
} catch (e) {
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ var routes = {
|
|||||||
// "/loginPage": (contxt) => LoginPage(),
|
// "/loginPage": (contxt) => LoginPage(),
|
||||||
// "/otherLoginPage": (contxt) => OtherLoginPage(),
|
// "/otherLoginPage": (contxt) => OtherLoginPage(),
|
||||||
"/loginPage": (contxt) => OtherLoginPage(),
|
"/loginPage": (contxt) => OtherLoginPage(),
|
||||||
// "/otherLoginPage": (contxt) => OtherLoginPage(),
|
"/otherLoginPage": (contxt) => OtherLoginPage(),
|
||||||
"/deviceType": (contxt, {arguments}) => DeviceTypePage(),
|
"/deviceType": (contxt, {arguments}) => DeviceTypePage(),
|
||||||
"/blueteethDevice": (contxt) => BlueteethDevicePage(),
|
"/blueteethDevice": (contxt) => BlueteethDevicePage(),
|
||||||
"/personPage": (contxt) => PersonPage(),
|
"/personPage": (contxt) => PersonPage(),
|
||||||
@@ -119,7 +119,9 @@ var onGenerateRoute = (RouteSettings settings) {
|
|||||||
// 如果用户未登录且访问的不是登录页面等,展示提示并重定向
|
// 如果用户未登录且访问的不是登录页面等,展示提示并重定向
|
||||||
if (settings.name != "/loginPage" &&
|
if (settings.name != "/loginPage" &&
|
||||||
settings.name != "/otherLoginPage" &&
|
settings.name != "/otherLoginPage" &&
|
||||||
settings.name != "/mianPageBottomChange") {
|
settings.name != "/mianPageBottomChange" &&
|
||||||
|
settings.name != "/userSchemePage" &&
|
||||||
|
settings.name != "/privacyPage") {
|
||||||
TopSlideNotification.show(
|
TopSlideNotification.show(
|
||||||
Get.context!,
|
Get.context!,
|
||||||
text: "必须登录提示".tr,
|
text: "必须登录提示".tr,
|
||||||
|
|||||||
Reference in New Issue
Block a user