更新沃棣背景适配
This commit is contained in:
BIN
assets/img/wodiF.png
Normal file
BIN
assets/img/wodiF.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
BIN
assets/img/wodi_bgImage.png
Normal file
BIN
assets/img/wodi_bgImage.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
assets/img/wodi_bgNoImg.png
Normal file
BIN
assets/img/wodi_bgNoImg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
@@ -1,10 +1,10 @@
|
||||
class ServiceConstant {
|
||||
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
|
||||
static String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
||||
static String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
|
||||
// static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
|
||||
// static const String baseHost = "vsbst-api.he-info.com";//服务地址
|
||||
// static const String service_address = "http://$baseHost";
|
||||
static String service_address = "https://$baseHost";
|
||||
static String service_address = "https://$baseHost";
|
||||
|
||||
static String server_service = "/vsbs_app_server"; //服务名称
|
||||
|
||||
@@ -51,17 +51,16 @@ class ServiceConstant {
|
||||
static const String policy_url =
|
||||
"https://vsbst-api.he-info.cn/vsbs_sotrage/privacy-scheme/"; //协议地址
|
||||
|
||||
static const String weather_url =
|
||||
"/api/weather/info"; //天气信息
|
||||
|
||||
static const String app_system_push_message =
|
||||
"/api/user/push/info"; //系统消息推送
|
||||
static const String weather_url = "/api/weather/info"; //天气信息
|
||||
|
||||
static const String app_system_push_message = "/api/user/push/info"; //系统消息推送
|
||||
|
||||
static const String bgUrl =
|
||||
"https://vsbst-api.he-info.cn/vsbs_sotrage/background-image/taihe.png";
|
||||
static const String localTimeZone =
|
||||
"/api/city/data/utc/info";
|
||||
//todo 检查app更新
|
||||
static const String checkAPPVersion =
|
||||
"/api/app/update/check";
|
||||
static const String localTimeZone = "/api/city/data/utc/info";
|
||||
//todo 检查app更新
|
||||
static const String checkAPPVersion = "/api/app/update/check";
|
||||
|
||||
//下发wifi控制指令
|
||||
static const String sendWifiCommand = "/api/device/cmd/ttd";
|
||||
}
|
||||
|
||||
@@ -89,10 +89,11 @@ class AppConstants {
|
||||
|
||||
//系统参数
|
||||
//运行打包APP模式
|
||||
// int ent_type = APPPackageType.MHT.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.DONGHUA.code; //1.默认太和 2.欢睡 3.眠花糖 4.东华
|
||||
// int ent_type = APPPackageType.HAIER.code; //1.默认太和 2.欢睡 3.眠花糖 4.东华 5.海尔沃棣
|
||||
int text_length = 8;
|
||||
|
||||
int wifi1 = -45;
|
||||
@@ -153,3 +154,56 @@ String getPrivacy(int type) {
|
||||
"/th_user_policy_$language.html";
|
||||
}
|
||||
}
|
||||
|
||||
getBackgroundImage() {
|
||||
if (AppConstants().ent_type == APPPackageType.HAIER.code) {
|
||||
return "assets/img/wodi_bgImage.png";
|
||||
}
|
||||
return "assets/img/bgImage.png";
|
||||
}
|
||||
|
||||
getBackgroundImageNoImage() {
|
||||
if (AppConstants().ent_type == APPPackageType.HAIER.code) {
|
||||
return 'assets/img/wodi_bgNoImg.png';
|
||||
// return 'assets/img/bgNoImg.png';
|
||||
}
|
||||
return 'assets/img/bgNoImg.png';
|
||||
}
|
||||
|
||||
bool isHaveProvicy() {
|
||||
int entType = AppConstants().ent_type;
|
||||
|
||||
// 将 int 转换为枚举
|
||||
APPPackageType? packageType;
|
||||
for (var type in APPPackageType.values) {
|
||||
if (type.code == entType) {
|
||||
packageType = type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (packageType == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return packageType.havePrivay;
|
||||
}
|
||||
|
||||
bool isHaveBeiAn() {
|
||||
int entType = AppConstants().ent_type;
|
||||
|
||||
// 将 int 转换为枚举
|
||||
APPPackageType? packageType;
|
||||
for (var type in APPPackageType.values) {
|
||||
if (type.code == entType) {
|
||||
packageType = type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (packageType == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return packageType.haveBeiAn;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
enum APPPackageType {
|
||||
TH(1, '太和'),
|
||||
HUANSHUI(2, '欢睡'),
|
||||
MHT(3, '眠花糖'),
|
||||
DONGHUA(4, '东华'),
|
||||
HAIER(5, '海尔'),
|
||||
TH(1, '太和',true,true),
|
||||
HUANSHUI(2, '欢睡',true,true),
|
||||
MHT(3, '眠花糖',true,true),
|
||||
DONGHUA(4, '东华',true,true),
|
||||
HAIER(5, '沃棣',false,false),
|
||||
;
|
||||
|
||||
final int code;
|
||||
final String description;
|
||||
final int code;//
|
||||
final String description;//描述
|
||||
final bool havePrivay;//是否有隐私协议和用户协议
|
||||
final bool haveBeiAn;//是否备案
|
||||
|
||||
const APPPackageType(this.code, this.description);
|
||||
const APPPackageType(this.code, this.description,this.havePrivay,this.haveBeiAn);
|
||||
}
|
||||
|
||||
@@ -141,12 +141,12 @@ Future<void> main() async {
|
||||
void initServiceAddress() {
|
||||
if (AppConstants().ent_type == APPPackageType.MHT.code) {
|
||||
// 眠花糖
|
||||
ServiceConstant.baseHost = "zhmht.swes.com.cn:27020";
|
||||
// ServiceConstant.baseHost = "vsbs-test.he-info.cn";
|
||||
// ServiceConstant.baseHost = "zhmht.swes.com.cn:27020";
|
||||
ServiceConstant.baseHost = "vsbs-test.he-info.cn";
|
||||
} else if (AppConstants().ent_type == APPPackageType.TH.code) {
|
||||
// 太和
|
||||
ServiceConstant.baseHost = "vsbst-api.he-info.com";
|
||||
// ServiceConstant.baseHost = "vsbs-test.he-info.cn";
|
||||
// ServiceConstant.baseHost = "vsbst-api.he-info.com";
|
||||
ServiceConstant.baseHost = "vsbs-test.he-info.cn";
|
||||
} else if (AppConstants().ent_type == APPPackageType.DONGHUA.code) {
|
||||
ServiceConstant.baseHost = "vsbst-api.he-info.com";
|
||||
} else {
|
||||
|
||||
@@ -254,7 +254,7 @@ class _BodyDevicePageState extends State<BodyDeviceWidget> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
@@ -262,7 +262,7 @@ class _BodyDevicePageState extends State<BodyDeviceWidget> {
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -207,7 +207,7 @@ class _MessageSettingPageState extends State<MessageSettingPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -204,7 +204,7 @@ class _MessageSettingPageState extends State<SingleMessageSetting> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -365,7 +365,7 @@ class _BodyDevicePageState extends State<BodyDeviceWidgetCopy>
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -39,7 +39,7 @@ class _DeviceDetailPageState extends State<DeviceDetailPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -191,7 +191,7 @@ class _InstantBodyPageState extends State<InstantBodyPage>
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -42,7 +42,7 @@ class _MessageReviewPageState extends State<MessageReviewPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -160,9 +160,9 @@ class THShareDeviceDetailWidget extends GetView {
|
||||
|
||||
return GestureDetector(
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -66,14 +66,14 @@ class _AfterCalibrationPersonPageState
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme:
|
||||
IconThemeData(color: themeController.currentColor.sc3),
|
||||
|
||||
@@ -79,14 +79,14 @@ class _AfterUpdatePersonPageState extends State<AfterUpdatePersonPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -77,14 +77,14 @@ class _AfterWifiPagePersonState extends State<AfterWifiPagePerson> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
@@ -1145,5 +1145,4 @@ class _AfterWifiPagePersonState extends State<AfterWifiPagePerson> {
|
||||
onFailure: (res) {},
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,14 +41,14 @@ class _EPageState extends State<BindDeviceSuccess> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -357,7 +357,7 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -365,7 +365,7 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
titleSpacing: 0,
|
||||
title: Container(
|
||||
@@ -405,7 +405,7 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF242835),
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Align(
|
||||
@@ -429,7 +429,7 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF242835),
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Padding(
|
||||
@@ -544,7 +544,8 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 26.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: themeController.currentColor.sc4,
|
||||
color: themeController
|
||||
.currentColor.sc4,
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
// child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: AssetImage('assets/img/bgNoImg.png'),
|
||||
// image: AssetImage(getBackgroundImageNoImage()),
|
||||
// fit: BoxFit.fill,
|
||||
// ),
|
||||
// ),
|
||||
|
||||
@@ -490,7 +490,7 @@ void showConfirmDialog(
|
||||
blurSigma: 3.0,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: themeController.currentColor.sc17,
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(20.0),
|
||||
),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(31.rpx, 0, 31.rpx, 0),
|
||||
|
||||
@@ -65,14 +65,14 @@ class _CalibrationPageState extends State<CalibrationPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme:
|
||||
IconThemeData(color: themeController.currentColor.sc3),
|
||||
|
||||
@@ -54,14 +54,14 @@ class _CalibrationPageState extends State<CalibrationPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme:
|
||||
IconThemeData(color: themeController.currentColor.sc3),
|
||||
|
||||
@@ -64,14 +64,14 @@ class _CalibrationPersonPageState extends State<CalibrationPersonPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme:
|
||||
IconThemeData(color: themeController.currentColor.sc3),
|
||||
|
||||
@@ -50,7 +50,7 @@ class _DeviceShareListPageState extends State<DeviceShareListPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -464,8 +464,10 @@ class _DeviceShareListPageState extends State<DeviceShareListPage> {
|
||||
? SingleChildScrollView(
|
||||
child: Column(
|
||||
children: list
|
||||
.map((item) =>
|
||||
DeviceShareInfoWidget(data: item,device: widget.device,))
|
||||
.map((item) => DeviceShareInfoWidget(
|
||||
data: item,
|
||||
device: widget.device,
|
||||
))
|
||||
.toList()
|
||||
.divide(SizedBox(height: 30.rpx))
|
||||
.addToEnd(SizedBox(height: 30.rpx)),
|
||||
|
||||
@@ -44,14 +44,14 @@ class _DeviceSharePageState extends State<DeviceSharePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
|
||||
@@ -299,14 +299,14 @@ class _EPageState extends State<DeviceTypePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
// backgroundColor: Colors.transparent,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
@@ -403,7 +403,7 @@ class _EPageState extends State<DeviceTypePage> {
|
||||
}
|
||||
}
|
||||
},
|
||||
colors: [themeController.currentColor.sc17], // 背景色
|
||||
colors: [themeController.currentColor.sc5], // 背景色
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.sizeOf(context).height * 0.135,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.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/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
@@ -49,14 +50,14 @@ class _DeviceTypeListPageState extends State<DeviceTypeListPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
// backgroundColor: Colors.transparent,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
@@ -154,7 +155,7 @@ class _DeviceTypeListPageState extends State<DeviceTypeListPage> {
|
||||
}
|
||||
}
|
||||
},
|
||||
colors: [themeController.currentColor.sc17], // 背景色
|
||||
colors: [themeController.currentColor.sc5], // 背景色
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.sizeOf(context).height * 0.135,
|
||||
|
||||
@@ -148,14 +148,14 @@ class _WifiPageState extends State<WifiPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
@@ -281,7 +281,8 @@ class _WifiPageState extends State<WifiPage> {
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF242835),
|
||||
// color: Color(0xFF242835),
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(20.rpx),
|
||||
),
|
||||
child: Column(
|
||||
|
||||
@@ -93,14 +93,14 @@ class _WifiPagePersonState extends State<WifiPagePerson> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
titleSpacing: 0,
|
||||
|
||||
@@ -23,9 +23,9 @@ class LogoutPage extends GetView {
|
||||
return GestureDetector(
|
||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -91,7 +91,7 @@ class _EPageState extends State<LoginPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -135,7 +135,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -613,7 +613,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
.sc9,
|
||||
);
|
||||
await DailyLogUtils.writeLog(
|
||||
"获取验证码成功,${apiResponse}");
|
||||
"获取验证码失败,${apiResponse}");
|
||||
return;
|
||||
} else {
|
||||
TopSlideNotification.show(
|
||||
@@ -624,8 +624,9 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
|
||||
.currentColor
|
||||
.sc2,
|
||||
);
|
||||
|
||||
await DailyLogUtils.writeLog(
|
||||
"获取验证码失败,${apiResponse}");
|
||||
"获取验证码成功,${apiResponse}");
|
||||
}
|
||||
countdownController
|
||||
.countdown
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
// final backgroundImage = showNoLoginView
|
||||
// ? 'assets/img/xiaoe.png' // 无设备或无登录时的背景
|
||||
// : 'assets/img/bgNoImg.png';
|
||||
// : getBackgroundImageNoImage();
|
||||
|
||||
// return Stack(
|
||||
// children: [
|
||||
@@ -257,7 +257,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
ValueNotifier<String> serverError = ValueNotifier<String>('');
|
||||
RxList deviceList = [].obs;
|
||||
RxString finalUri = RxString('');
|
||||
|
||||
|
||||
// 本地服务器相关
|
||||
HttpServer? _localServer;
|
||||
int _serverPort = 0;
|
||||
@@ -294,7 +294,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
try {
|
||||
isServerStarting.value = true;
|
||||
serverError.value = '';
|
||||
|
||||
|
||||
// 1. 从 assets 加载 ZIP 文件
|
||||
final ByteData zipData;
|
||||
try {
|
||||
@@ -303,48 +303,47 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
serverError.value = '找不到小e资源文件: $e';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
final Uint8List zipBytes = zipData.buffer.asUint8List();
|
||||
|
||||
|
||||
// 2. 创建临时目录并解压 ZIP
|
||||
_tempExtractDir = await Directory.systemTemp.createTemp('xiaoe_web_');
|
||||
final bool extractSuccess = await _extractZipToDirectory(zipBytes, _tempExtractDir!);
|
||||
|
||||
final bool extractSuccess =
|
||||
await _extractZipToDirectory(zipBytes, _tempExtractDir!);
|
||||
|
||||
if (!extractSuccess) {
|
||||
serverError.value = '解压小e资源文件失败';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// 3. 查找入口文件 (index.html)
|
||||
final File? entryFile = await _findEntryFile(_tempExtractDir!);
|
||||
if (entryFile == null) {
|
||||
serverError.value = '找不到入口文件 (index.html)';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// 4. 创建静态文件处理器
|
||||
final staticHandler = createStaticHandler(
|
||||
_tempExtractDir!.path,
|
||||
defaultDocument: 'index.html',
|
||||
serveFilesOutsidePath: false,
|
||||
);
|
||||
|
||||
|
||||
// 5. 添加日志中间件(可选)
|
||||
final handler = Pipeline()
|
||||
.addMiddleware(logRequests())
|
||||
.addHandler(staticHandler);
|
||||
|
||||
final handler =
|
||||
Pipeline().addMiddleware(logRequests()).addHandler(staticHandler);
|
||||
|
||||
// 6. 启动服务器(端口 0 表示自动分配)
|
||||
_localServer = await io.serve(handler, InternetAddress.loopbackIPv4, 0);
|
||||
_serverPort = _localServer!.port;
|
||||
_localServerUrl = 'http://127.0.0.1:$_serverPort';
|
||||
|
||||
|
||||
print('小e本地服务启动成功: $_localServerUrl');
|
||||
print('资源目录: ${_tempExtractDir!.path}');
|
||||
|
||||
|
||||
isServerStarting.value = false;
|
||||
return true;
|
||||
|
||||
} catch (e, stackTrace) {
|
||||
serverError.value = '启动本地服务器失败: $e';
|
||||
print('服务器启动错误: $e\n$stackTrace');
|
||||
@@ -353,27 +352,28 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> _extractZipToDirectory(Uint8List zipBytes, Directory targetDir) async {
|
||||
Future<bool> _extractZipToDirectory(
|
||||
Uint8List zipBytes, Directory targetDir) async {
|
||||
try {
|
||||
// 解码 ZIP 文件
|
||||
final Archive archive = ZipDecoder().decodeBytes(zipBytes);
|
||||
|
||||
|
||||
for (final ArchiveFile file in archive) {
|
||||
final String filename = file.name;
|
||||
|
||||
|
||||
// 跳过目录条目(它们会通过文件创建自动生成)
|
||||
if (file.isFile) {
|
||||
// 确保目录存在
|
||||
final String filePath = p.join(targetDir.path, filename);
|
||||
final File outputFile = File(filePath);
|
||||
await outputFile.parent.create(recursive: true);
|
||||
|
||||
|
||||
// 写入文件内容
|
||||
final List<int> data = file.content as List<int>;
|
||||
await outputFile.writeAsBytes(data, flush: true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
print('解压完成,文件数量: ${archive.files.length}');
|
||||
return true;
|
||||
} catch (e, stackTrace) {
|
||||
@@ -391,17 +391,18 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
'main.html',
|
||||
'default.html',
|
||||
];
|
||||
|
||||
|
||||
for (final entry in possibleEntries) {
|
||||
final File file = File(p.join(dir.path, entry));
|
||||
if (await file.exists()) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 如果没有找到标准入口,查找任何 .html 文件
|
||||
try {
|
||||
final List<FileSystemEntity> entities = await dir.list(recursive: false).toList();
|
||||
final List<FileSystemEntity> entities =
|
||||
await dir.list(recursive: false).toList();
|
||||
for (final entity in entities) {
|
||||
if (entity is File && entity.path.toLowerCase().endsWith('.html')) {
|
||||
return entity;
|
||||
@@ -410,7 +411,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
} catch (e) {
|
||||
print('查找入口文件失败: $e');
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -421,7 +422,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
_localServer = null;
|
||||
print('本地服务器已关闭');
|
||||
}
|
||||
|
||||
|
||||
// 清理临时目录
|
||||
if (_tempExtractDir != null && _tempExtractDir!.existsSync()) {
|
||||
try {
|
||||
@@ -442,9 +443,9 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
return LayoutBuilder(
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
@@ -512,7 +513,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return ValueListenableBuilder<String>(
|
||||
valueListenable: serverError,
|
||||
builder: (context, error, child) {
|
||||
@@ -571,7 +572,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return Obx(() {
|
||||
if (finalUri.isEmpty) {
|
||||
return Center(
|
||||
@@ -696,12 +697,12 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
// 构建最终 URL
|
||||
String baseUrl = _localServerUrl;
|
||||
String queryParams = '?t=${DateTime.now().millisecondsSinceEpoch}';
|
||||
|
||||
|
||||
if (deviceList.isNotEmpty) {
|
||||
String personParam = Uri.encodeComponent(jsonEncode(deviceList));
|
||||
queryParams += '&person=$personParam';
|
||||
}
|
||||
|
||||
|
||||
// 添加语言参数
|
||||
String? language = "";
|
||||
// 这里保持你原来的语言逻辑
|
||||
@@ -720,19 +721,19 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
if (language != null && language.isNotEmpty) {
|
||||
queryParams += '&lang=$language';
|
||||
}
|
||||
|
||||
|
||||
finalUri.value = baseUrl + queryParams;
|
||||
print('最终加载 URL: ${finalUri.value}');
|
||||
|
||||
} else {
|
||||
// API 调用失败,使用基础 URL
|
||||
finalUri.value = '$_localServerUrl?t=${DateTime.now().millisecondsSinceEpoch}';
|
||||
finalUri.value =
|
||||
'$_localServerUrl?t=${DateTime.now().millisecondsSinceEpoch}';
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
print('获取设备列表失败: $e');
|
||||
// 出错时仍然加载基础页面
|
||||
finalUri.value = '$_localServerUrl?t=${DateTime.now().millisecondsSinceEpoch}';
|
||||
finalUri.value =
|
||||
'$_localServerUrl?t=${DateTime.now().millisecondsSinceEpoch}';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
@@ -121,7 +121,7 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
if (deviceList.isEmpty) {
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
NewTopSlideNotification.show(
|
||||
NewTopSlideNotification.show(
|
||||
text: "请先绑定设备".tr,
|
||||
textColor: themeController.currentColor.sc9,
|
||||
);
|
||||
|
||||
@@ -233,9 +233,9 @@ class _EPageState extends State<EPage> with AutomaticKeepAliveClientMixin {
|
||||
return LayoutBuilder(
|
||||
builder: (context, bodySize) => GestureDetector(
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -38,10 +38,16 @@ class _FollowPageState extends State<FollowPage> {
|
||||
// fit: BoxFit.contain, // 填满整个 Container
|
||||
// ),
|
||||
// ),
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
// backgroundColor: Colors.transparent,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(color: themeController.currentColor.sc3),
|
||||
@@ -108,6 +114,7 @@ class _FollowPageState extends State<FollowPage> {
|
||||
1: 'assets/img/followus.png',
|
||||
2: 'assets/img/huanshuiF.png',
|
||||
4: 'assets/img/donghuaF.png',
|
||||
5: 'assets/img/wodiF.png',
|
||||
// 后面继续加
|
||||
};
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ class _HelpPageState extends State<HelpPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -236,7 +236,7 @@ class _HomePageState extends State<HomePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -259,9 +259,9 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
||||
);
|
||||
} else {
|
||||
return Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'),
|
||||
image: AssetImage(getBackgroundImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -565,7 +565,7 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (AppConstants().ent_type != APPPackageType.MHT.code) {
|
||||
if (AppConstants().ent_type != APPPackageType.MHT.code && isShowPrivacyOriginFromTHAPP()) {
|
||||
Future.delayed(const Duration(milliseconds: 0), () {
|
||||
String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog");
|
||||
if (isShowYingShiDialog == null || isShowYingShiDialog != "true") {
|
||||
@@ -673,9 +673,9 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
||||
);
|
||||
} else {
|
||||
return Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'),
|
||||
image: AssetImage(getBackgroundImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
@@ -773,4 +773,15 @@ class MainPageBottomChange extends GetView<MainPageController> {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//太和e护衍生app是否显示协议
|
||||
bool isShowPrivacyOriginFromTHAPP() {
|
||||
if (AppConstants().ent_type == APPPackageType.TH.code) {
|
||||
return true;
|
||||
}
|
||||
if (AppConstants().ent_type == APPPackageType.DONGHUA.code) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,9 +101,9 @@ class _MessagePageState extends State<MessagePage> {
|
||||
builder: (context, boxConstraints) => GestureDetector(
|
||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -91,9 +91,9 @@ class _MessageReturnPageState extends State<MessageReturnPage> {
|
||||
builder: (context, boxConstraints) => GestureDetector(
|
||||
// onTap: () => FocusScope.of(context).unfocus(),,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -47,7 +47,7 @@ class _MinePageState extends State<MinePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgImage.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -307,7 +307,8 @@ class _MinePageState extends State<MinePage> {
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF242835),
|
||||
// color: Color(0xFF242835),
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppConstants().normal_container_radius),
|
||||
),
|
||||
|
||||
@@ -247,7 +247,7 @@ class _CommonMessageSettingPageState
|
||||
await commonMessageSettingController
|
||||
.updateSleepNotify(val);
|
||||
await commonMessageSettingController
|
||||
.getAppSleepNotify();
|
||||
.getAppSleepNotify();
|
||||
commonMessageSettingController
|
||||
.updateAll();
|
||||
},
|
||||
|
||||
@@ -428,27 +428,29 @@ class MHTBlueToothController extends GetControllerEx<MHTBlueToothModel> {
|
||||
if (Base64Tool.decode(commandData['data']) != "FFFFFFFF00031000010014FD" &&
|
||||
Base64Tool.decode(commandData['data']).length <= 24) {
|
||||
ef.log("下发指令: ${Base64Tool.decode(commandData['data'])}");
|
||||
commandData['wfr'] = false;
|
||||
//todo 填充蓝牙指令
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.sendWifiCommand;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
await requestWithLog(
|
||||
logTitle: "下发wifi控制指令",
|
||||
method: MyHttpMethod.post,
|
||||
queryUrl: queryUrl,
|
||||
data: commandData,
|
||||
onSuccess: (res) {
|
||||
ef.log("下发指令成功: ${res.msg}");
|
||||
},
|
||||
onFailure: (res) {
|
||||
throw "下发wifi控制指令失败: ${res.msg}";
|
||||
},
|
||||
);
|
||||
} else {
|
||||
// ef.log("下发指令: ${Base64Tool.decode(commandData['data'])}");
|
||||
}
|
||||
ef.log("全部指令");
|
||||
commandData['wfr'] = false;
|
||||
commandData['type'] = 0; //0 base64数据 1 二进制数据
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.sendWifiCommand;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
await requestWithLog(
|
||||
logTitle: "下发wifi控制指令",
|
||||
method: MyHttpMethod.post,
|
||||
queryUrl: queryUrl,
|
||||
data: commandData,
|
||||
onSuccess: (res) {
|
||||
ef.log("下发指令成功: ${res.msg}");
|
||||
},
|
||||
onFailure: (res) {
|
||||
ef.log("下发指令失败: ${res.msg}");
|
||||
throw "下发wifi控制指令失败: ${res.msg}";
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
//todo 解绑的时候删除自己所拥有的所有设备的睡眠习惯
|
||||
|
||||
@@ -422,7 +422,9 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
|
||||
ef.log("ws =>$x");
|
||||
if (x == EasywsState.connected) {
|
||||
try {
|
||||
if (lastSelectDevice != null && lastSelectDevice.isNotEmpty) {
|
||||
if (lastSelectDevice != null &&
|
||||
lastSelectDevice.isNotEmpty &&
|
||||
lastSelectDevice['mac'] != selectDevice['mac']) {
|
||||
List<String?> oldMacList = [
|
||||
lastSelectDevice['bind_mac_a'],
|
||||
lastSelectDevice['bind_mac_b'],
|
||||
|
||||
@@ -81,7 +81,7 @@ class _EPageState extends State<PersonPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -89,7 +89,7 @@ class _EPageState extends State<PersonPage> {
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -785,7 +785,6 @@ class _EPageState extends State<PersonPage> {
|
||||
})),
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
70.rpx, 25.rpx, 70.rpx, 0),
|
||||
|
||||
@@ -69,7 +69,7 @@ class _UpdatePageState extends State<UpdatePersonPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -77,7 +77,7 @@ class _UpdatePageState extends State<UpdatePersonPage> {
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -835,7 +835,6 @@ class _UpdatePageState extends State<UpdatePersonPage> {
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
70.rpx, 25.rpx, 70.rpx, 0),
|
||||
|
||||
@@ -46,7 +46,7 @@ class _UserPrivacyNewPageState extends State<UserPrivacyNewPage> {
|
||||
child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
// image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
// fit: BoxFit.fill, // 填满整个 Container
|
||||
// ),
|
||||
// ),
|
||||
|
||||
@@ -96,14 +96,14 @@ class _ApplyRepairPageState extends State<ApplyRepairPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -37,7 +37,7 @@ class _ApplyRepairSuccessState extends State<ApplyRepairSuccess> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -162,7 +162,6 @@ class _RepairHistoryInfoWidgetState extends State<RepairHistoryInfoWidget> {
|
||||
style: TextStyle(
|
||||
fontSize: 26.rpx,
|
||||
letterSpacing: 0.0,
|
||||
|
||||
color: themeController.currentColor.sc3,
|
||||
),
|
||||
),
|
||||
@@ -199,7 +198,6 @@ class _RepairHistoryInfoWidgetState extends State<RepairHistoryInfoWidget> {
|
||||
style: TextStyle(
|
||||
fontSize: 26.rpx,
|
||||
letterSpacing: 0.0,
|
||||
|
||||
color: themeController.currentColor.sc3,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -69,14 +69,14 @@ class _RepairDetailPageState extends State<RepairDetailPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
@@ -39,14 +40,14 @@ class _RepairListPageState extends State<RepairListPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -38,7 +38,7 @@ class _ThemeSettingState extends State<ThemeSetting> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -121,14 +121,14 @@ class _CommonMessageSettingPageState extends State<CommonMessageSettingPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
|
||||
@@ -37,14 +37,14 @@ class _LanguageSettingState extends State<LanguageSetting> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent, // 加上这一行
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -91,7 +91,7 @@ class _LanguageSettingState extends State<LanguageSetting> {
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF242835),
|
||||
color: themeController.currentColor.sc5,
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppConstants().normal_container_radius),
|
||||
),
|
||||
|
||||
@@ -149,7 +149,8 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
|
||||
image: (widget.data['backgroundImg'] != null &&
|
||||
widget.data['backgroundImg'].toString().isNotEmpty)
|
||||
? AssetImage(widget.data['backgroundImg'])
|
||||
: AssetImage('assets/img/bgNoImg.png') as ImageProvider,
|
||||
: AssetImage(getBackgroundImageNoImage())
|
||||
as ImageProvider,
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
|
||||
@@ -46,7 +47,7 @@ class _SleepReportPageState extends State<SleepReportPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/component/tool/WebViewWidget.dart';
|
||||
@@ -23,7 +24,7 @@ class _AboutUsPageState extends State<AboutUsPage> {
|
||||
// url: AppConstants().ent_type == 1
|
||||
// ? "https://mp.weixin.qq.com/s/IAr4RNBy0hGJXGKyMxe7eQ"
|
||||
// : "https://mp.weixin.qq.com/s/7BvvprVDqX1eOzM3Lms8dg",
|
||||
url:widget.url,
|
||||
url: widget.url,
|
||||
onLoad: () {
|
||||
print('网页载入完毕');
|
||||
},
|
||||
@@ -38,7 +39,7 @@ class _AboutUsPageState extends State<AboutUsPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
|
||||
@@ -41,7 +41,7 @@ class _PrivacySchemePageState extends State<PrivacySchemePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -93,12 +93,14 @@ class _PrivacySchemePageState extends State<PrivacySchemePage> {
|
||||
Expanded(
|
||||
child: Obx(() {
|
||||
if (pdfController.localPdfPath.value == null) {
|
||||
return Center(child:CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation<Color>(
|
||||
themeController.currentColor.sc1,
|
||||
),
|
||||
),);
|
||||
return Center(
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation<Color>(
|
||||
themeController.currentColor.sc1,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return PDFView(
|
||||
filePath: pdfController.localPdfPath.value!,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -56,14 +56,14 @@ class _UpdateUserEmailPageState extends State<UpdateUserEmailPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -193,7 +193,7 @@ class _UpdateUserEmailPageState extends State<UpdateUserEmailPage> {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppConstants().normal_container_radius),
|
||||
color: themeController.currentColor.sc17,
|
||||
color: themeController.currentColor.sc5,
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
|
||||
@@ -106,14 +106,14 @@ class _UpdateUserPageState extends State<UpdateUserPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -379,7 +379,7 @@ class _UpdateUserPageState extends State<UpdateUserPage> {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppConstants().normal_container_radius),
|
||||
color: themeController.currentColor.sc17,
|
||||
color: themeController.currentColor.sc5,
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
|
||||
@@ -61,14 +61,14 @@ class _UpdateUserTelPageState extends State<UpdateUserTelPage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'),
|
||||
image: AssetImage(getBackgroundImageNoImage()),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: themeController.currentColor.sc17,
|
||||
backgroundColor: themeController.currentColor.sc5,
|
||||
automaticallyImplyLeading: false,
|
||||
iconTheme: IconThemeData(
|
||||
color: themeController.currentColor.sc3,
|
||||
@@ -198,7 +198,7 @@ class _UpdateUserTelPageState extends State<UpdateUserTelPage> {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppConstants().normal_container_radius),
|
||||
color: themeController.currentColor.sc17,
|
||||
color: themeController.currentColor.sc5,
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
@@ -268,7 +268,6 @@ class _UpdateUserTelPageState extends State<UpdateUserTelPage> {
|
||||
);
|
||||
}),
|
||||
),
|
||||
|
||||
SizedBox(
|
||||
height: 30.rpx,
|
||||
child: VerticalDivider(
|
||||
|
||||
@@ -45,7 +45,7 @@ class _UserSchemePageState extends State<UserSchemePage> {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
fit: BoxFit.fill, // 填满整个 Container
|
||||
),
|
||||
),
|
||||
@@ -98,12 +98,14 @@ class _UserSchemePageState extends State<UserSchemePage> {
|
||||
Expanded(
|
||||
child: Obx(() {
|
||||
if (pdfController.localPdfPath.value == null) {
|
||||
return Center(child:CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation<Color>(
|
||||
themeController.currentColor.sc1,
|
||||
),
|
||||
),);
|
||||
return Center(
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation<Color>(
|
||||
themeController.currentColor.sc1,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return PDFView(
|
||||
filePath: pdfController.localPdfPath.value!,
|
||||
|
||||
@@ -56,7 +56,7 @@ import 'package:EasyDartModule/EasyDartModule.dart' as edm;
|
||||
// child: Container(
|
||||
// decoration: BoxDecoration(
|
||||
// image: DecorationImage(
|
||||
// // image: AssetImage('assets/img/bgNoImg.png'), // 本地图片
|
||||
// // image: AssetImage(getBackgroundImageNoImage()), // 本地图片
|
||||
// image: AssetImage('assets/images/new_background.png'), // 本地图片
|
||||
// fit: BoxFit.fill, // 填满整个 Container
|
||||
// ),
|
||||
@@ -363,8 +363,7 @@ class _XiaoEPageState extends State<XiaoEPage>
|
||||
List<dynamic> rawList = res.data ?? [];
|
||||
List<Map<String, dynamic>> newList = rawList.map((item) {
|
||||
String mac = item['mac'] ?? '';
|
||||
String name = (
|
||||
item['name'] != null &&
|
||||
String name = (item['name'] != null &&
|
||||
item['name'].toString().trim().isNotEmpty)
|
||||
? item['name'] + "_$mac"
|
||||
: '未命名'.tr + "_$mac";
|
||||
|
||||
Reference in New Issue
Block a user