Merge branch 'release' of https://gitee.com/starlock-cn/app-starlock into release

This commit is contained in:
魏少阳 2024-08-08 11:00:11 +08:00
commit 7092b552ab
11 changed files with 178 additions and 155 deletions

View File

@ -65,7 +65,7 @@
"accountNumber": "账号", "accountNumber": "账号",
"volumeAuthorizationLock": "批量授权锁", "volumeAuthorizationLock": "批量授权锁",
"authorizedAdminTip": "授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人", "authorizedAdminTip": "授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人",
"lockOperatingRecordTip": "只能保留一定时间内的记录,如果您需要保留历史记录,可以在右上角导出", "lockOperatingRecordTip": "如果您需要保留历史记录,可以在右上角导出",
"rankingList": "排列榜", "rankingList": "排列榜",
"earlyArrivalList": "早到榜", "earlyArrivalList": "早到榜",
"lateList": "迟到榜", "lateList": "迟到榜",

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -79,7 +78,8 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
onTap: (int index) { onTap: (int index) {
state.isIphoneType.value = index == 0; state.isIphoneType.value = index == 0;
}, },
overlayColor: MaterialStateProperty.resolveWith((Set<MaterialState> states) { overlayColor: MaterialStateProperty.resolveWith(
(Set<MaterialState> states) {
return Colors.transparent; return Colors.transparent;
}), }),
dividerHeight: 0, dividerHeight: 0,
@ -113,24 +113,26 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
child: Obx(() => Container( child: Obx(() => Container(
color: Colors.white, color: Colors.white,
height: 70.h, height: 70.h,
child: Row( child: Visibility(
children: <Widget>[ visible: state.isIphoneType.value,
SizedBox(width: 5.w), child: Row(
Text(TranslationLoader.lanKeys!.countryAndRegion!.tr, children: <Widget>[
style: TextStyle( SizedBox(width: 5.w),
fontSize: 26.sp, color: AppColors.blackColor)), Text(TranslationLoader.lanKeys!.countryAndRegion!.tr,
SizedBox(width: 50.w), style: TextStyle(
Text( fontSize: 26.sp, color: AppColors.blackColor)),
state.isIphoneType.value SizedBox(width: 50.w),
? '${state.countryName.value} +${state.countryCode.value}' Text(
: state.countryName.value, state.isIphoneType.value
style: TextStyle( ? '${state.countryName.value} +${state.countryCode.value}'
fontSize: 26.sp, color: AppColors.mainColor), : state.countryName.value,
), style: TextStyle(
], fontSize: 26.sp, color: AppColors.mainColor),
), ),
],
)),
)), )),
), )
], ],
); );
} }
@ -270,10 +272,11 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
style: TextStyle( style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)), color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () { onTap: () {
Get.toNamed(Routers.webviewShowPage, arguments: <String, String>{ Get.toNamed(Routers.webviewShowPage,
'url': XSConstantMacro.userAgreementURL, arguments: <String, String>{
'title': '用户协议'.tr 'url': XSConstantMacro.userAgreementURL,
}); 'title': '用户协议'.tr
});
}, },
)), )),
WidgetSpan( WidgetSpan(
@ -284,10 +287,11 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
style: TextStyle( style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)), color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () { onTap: () {
Get.toNamed(Routers.webviewShowPage, arguments: <String, String>{ Get.toNamed(Routers.webviewShowPage,
'url': XSConstantMacro.privacyPolicyURL, arguments: <String, String>{
'title': '隐私政策'.tr 'url': XSConstantMacro.privacyPolicyURL,
}); 'title': '隐私政策'.tr
});
}, },
)), )),
], ],

View File

@ -53,7 +53,7 @@ class _DoorLockLogPageState extends State<DoorLockLogPage> with RouteAware {
), ),
onTap: () { onTap: () {
ShowTipView().showSureAlertDialog( ShowTipView().showSureAlertDialog(
'1.锁没有联网密码、IC卡、指纹等开门记录无法实时上传可以点击右上角按钮然后读取记录。\n2.只能保留一定时间内的记录,如果您需要保留历史记录,可以点击右上角按钮,然后导出记录', '1.锁没有联网密码、IC卡、指纹等开门记录无法实时上传可以点击右上角按钮然后读取记录。\n2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录',
tipTitle: '看不到操作记录,可能原因有', tipTitle: '看不到操作记录,可能原因有',
sureStr: '我知道了'.tr); sureStr: '我知道了'.tr);
}, },
@ -276,9 +276,8 @@ class _DoorLockLogPageState extends State<DoorLockLogPage> with RouteAware {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
Get.toNamed(Routers.doorLockLogDetailPage, arguments: { Get.toNamed(Routers.doorLockLogDetailPage,
'doorLockLogDataItem': timelineData arguments: {'doorLockLogDataItem': timelineData});
});
}, },
child: Padding( child: Padding(
padding: EdgeInsets.only(left: 20.w, top: 20.h), padding: EdgeInsets.only(left: 20.w, top: 20.h),

View File

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../../../../app_settings/app_colors.dart'; import '../../../../../../app_settings/app_colors.dart';
import '../../../../../../tools/titleAppBar.dart'; import '../../../../../../tools/titleAppBar.dart';
import '../../../../../../translations/trans_lib.dart';
import 'massSendElectronicKeyManage_tabbar.dart'; import 'massSendElectronicKeyManage_tabbar.dart';
class MassSendElectronicKeyManagePage extends StatefulWidget { class MassSendElectronicKeyManagePage extends StatefulWidget {

View File

@ -1,10 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart';
import 'package:star_lock/tools/regexp_tool.dart'; import 'package:star_lock/tools/regexp_tool.dart';
import 'package:star_lock/translations/trans_lib.dart';
import '../../../../../../app_settings/app_colors.dart'; import '../../../../../../app_settings/app_colors.dart';
class MassSendReceiverCell extends StatefulWidget { class MassSendReceiverCell extends StatefulWidget {
@ -207,6 +207,10 @@ class _MassSendReceiverCellState extends State<MassSendReceiverCell> {
border: InputBorder.none, border: InputBorder.none,
), ),
onSubmitted: onSubmitted, onSubmitted: onSubmitted,
//
inputFormatters: <TextInputFormatter>[
LengthLimitingTextInputFormatter(50),
],
), ),
), ),
if (isContactPickerEnabled) if (isContactPickerEnabled)

View File

@ -145,10 +145,11 @@ class _LockDetailPageState extends State<LockDetailPage>
'isOnlyOneData': state.isOnlyOneData 'isOnlyOneData': state.isOnlyOneData
}); });
}), }),
labelText( if (!F.isProductionEnv)
img: 'images/icon_puzzlepiece_extension.png', labelText(
text: '配件'.tr, img: 'images/icon_puzzlepiece_extension.png',
child: attachmentWidget()), text: '配件'.tr,
child: attachmentWidget()),
], ],
), ),
), ),
@ -994,19 +995,15 @@ class _LockDetailPageState extends State<LockDetailPage>
final List<Widget> showWidgetArr = <Widget>[]; final List<Widget> showWidgetArr = <Widget>[];
// //
if (state.isAttendance.value == 1) { if (state.isAttendance.value == 1) {
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_clockingIn.png',
'images/main/icon_main_clockingIn.png', '考勤'.tr, state.bottomBtnisEable.value, () {
'考勤'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.checkingInListPage, Get.toNamed(Routers.checkingInListPage,
arguments: state.keyInfos.value); arguments: state.keyInfos.value);
})); }));
} }
// //
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_operatingRecord.png',
'images/main/icon_main_operatingRecord.png', '操作记录'.tr, state.bottomBtnisEable.value, () {
'操作记录'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.doorLockLogPage, Get.toNamed(Routers.doorLockLogPage,
arguments: <String, LockListInfoItemEntity>{ arguments: <String, LockListInfoItemEntity>{
'keyInfo': state.keyInfos.value 'keyInfo': state.keyInfos.value
@ -1032,27 +1029,21 @@ class _LockDetailPageState extends State<LockDetailPage>
final List<Widget> showWidgetArr = <Widget>[]; final List<Widget> showWidgetArr = <Widget>[];
// //
if (state.isAttendance.value == 1) { if (state.isAttendance.value == 1) {
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_clockingIn.png',
'images/main/icon_main_clockingIn.png', '考勤'.tr, state.bottomBtnisEable.value, () {
'考勤'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.checkingInListPage, Get.toNamed(Routers.checkingInListPage,
arguments: state.keyInfos.value); arguments: state.keyInfos.value);
})); }));
} }
// //
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_electronicKey.png',
'images/main/icon_main_electronicKey.png', '电子钥匙'.tr, state.bottomBtnisEable.value, () {
'电子钥匙'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.electronicKeyListPage); Get.toNamed(Routers.electronicKeyListPage);
})); }));
// //
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_password.png', '密码'.tr,
'images/main/icon_main_password.png',
'密码'.tr,
state.bottomBtnisEable.value, () { state.bottomBtnisEable.value, () {
Get.toNamed(Routers.passwordKeyListPage, Get.toNamed(Routers.passwordKeyListPage,
arguments: <String, LockListInfoItemEntity>{ arguments: <String, LockListInfoItemEntity>{
@ -1062,9 +1053,7 @@ class _LockDetailPageState extends State<LockDetailPage>
// ic卡 // ic卡
if (state.keyInfos.value.lockFeature!.icCard == 1) { if (state.keyInfos.value.lockFeature!.icCard == 1) {
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_icCard.png', ''.tr,
'images/main/icon_main_icCard.png',
''.tr,
state.bottomBtnisEable.value, () { state.bottomBtnisEable.value, () {
Get.toNamed(Routers.cardListPage, arguments: <String, int?>{ Get.toNamed(Routers.cardListPage, arguments: <String, int?>{
'lockId': state.keyInfos.value.lockId, 'lockId': state.keyInfos.value.lockId,
@ -1074,10 +1063,8 @@ class _LockDetailPageState extends State<LockDetailPage>
// //
if (state.keyInfos.value.lockFeature!.fingerprint == 1) { if (state.keyInfos.value.lockFeature!.fingerprint == 1) {
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_fingerprint.png',
'images/main/icon_main_fingerprint.png', '指纹'.tr, state.bottomBtnisEable.value, () {
'指纹'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.fingerprintListPage, arguments: <String, int?>{ Get.toNamed(Routers.fingerprintListPage, arguments: <String, int?>{
'lockId': state.keyInfos.value.lockId, 'lockId': state.keyInfos.value.lockId,
}); });
@ -1086,10 +1073,8 @@ class _LockDetailPageState extends State<LockDetailPage>
// //
if (state.keyInfos.value.lockFeature!.bluetoothRemoteControl == 1) { if (state.keyInfos.value.lockFeature!.bluetoothRemoteControl == 1) {
showWidgetArr.add(bottomItem( showWidgetArr.add(bottomItem('images/main/icon_main_remoteControl.png',
'images/main/icon_main_remoteControl.png', '遥控'.tr, state.bottomBtnisEable.value, () {
'遥控'.tr,
state.bottomBtnisEable.value, () {
Get.toNamed(Routers.remoteControlListPage, arguments: <String, int?>{ Get.toNamed(Routers.remoteControlListPage, arguments: <String, int?>{
'lockId': state.keyInfos.value.lockId, 'lockId': state.keyInfos.value.lockId,
}); });
@ -1165,9 +1150,7 @@ class _LockDetailPageState extends State<LockDetailPage>
final List<Widget> endWiddget = <Widget>[]; final List<Widget> endWiddget = <Widget>[];
endWiddget.add( endWiddget.add(
// //
bottomItem( bottomItem('images/main/icon_main_operatingRecord.png', '操作记录'.tr,
'images/main/icon_main_operatingRecord.png',
'操作记录'.tr,
state.bottomBtnisEable.value, () { state.bottomBtnisEable.value, () {
// Get.toNamed(Routers.lockOperatingRecordPage, // Get.toNamed(Routers.lockOperatingRecordPage,
// arguments: {"keyInfo": state.keyInfos.value}); // arguments: {"keyInfo": state.keyInfos.value});
@ -1189,18 +1172,21 @@ class _LockDetailPageState extends State<LockDetailPage>
}); });
})); }));
} }
endWiddget.add( if (!F.isProductionEnv) {
// endWiddget.add(
bottomItem( //
'images/main/icon_lockDetail_messageReminding.png', bottomItem(
TranslationLoader.lanKeys!.messageReminding!.tr, 'images/main/icon_lockDetail_messageReminding.png',
state.bottomBtnisEable.value, () { TranslationLoader.lanKeys!.messageReminding!.tr,
Get.toNamed(Routers.msgNotificationPage, arguments: <String, int?>{ state.bottomBtnisEable.value, () {
'lockId': state.keyInfos.value.lockId, Get.toNamed(Routers.msgNotificationPage, arguments: <String, int?>{
'isSupportCatEye': state.keyInfos.value.lockFeature!.isSupportCatEye, 'lockId': state.keyInfos.value.lockId,
}); 'isSupportCatEye':
}), state.keyInfos.value.lockFeature!.isSupportCatEye,
); });
}),
);
}
if (F.isSKY) { if (F.isSKY) {
endWiddget.add( endWiddget.add(

View File

@ -133,13 +133,13 @@ class _MsgNotificationPageState extends State<MsgNotificationPage> {
SizedBox( SizedBox(
height: 10.h, height: 10.h,
), ),
Obx(() => CommonItem( // Obx(() => CommonItem(
leftTitel: '有人按门铃'.tr, // leftTitel: '有人按门铃'.tr,
rightTitle: "", // rightTitle: "",
isHaveLine: true, // isHaveLine: true,
isHaveRightWidget: true, // isHaveRightWidget: true,
rightWidget: // rightWidget:
SizedBox(width: 60.w, height: 50.h, child: _switch(3)))), // SizedBox(width: 60.w, height: 50.h, child: _switch(3)))),
SizedBox( SizedBox(
height: 10.h, height: 10.h,
), ),

View File

@ -221,15 +221,16 @@ class _MineSetPageState extends State<MineSetPage>
Get.toNamed(Routers.authorizedAdministratorListPage); Get.toNamed(Routers.authorizedAdministratorListPage);
}), }),
//by DaisyWu -- //by DaisyWu --
CommonItem( if (!F.isProductionEnv)
leftTitel: TranslationLoader.lanKeys!.authorityManagement!.tr, CommonItem(
rightTitle: '', leftTitel: TranslationLoader.lanKeys!.authorityManagement!.tr,
isHaveLine: true, rightTitle: '',
isHaveDirection: true, isHaveLine: true,
action: () { isHaveDirection: true,
Get.toNamed(Routers.authorityManagementPage); action: () {
// Toast.show(msg: "功能暂未开放"); Get.toNamed(Routers.authorityManagementPage);
}), // Toast.show(msg: "功能暂未开放");
}),
CommonItem( CommonItem(
leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr, leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr,
rightTitle: '', rightTitle: '',
@ -246,14 +247,15 @@ class _MineSetPageState extends State<MineSetPage>
action: () { action: () {
Get.toNamed(Routers.transferSmartLockPage); Get.toNamed(Routers.transferSmartLockPage);
}), }),
CommonItem( //
leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr, // CommonItem(
rightTitle: '', // leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr,
isHaveLine: true, // rightTitle: '',
isHaveDirection: true, // isHaveLine: true,
action: () { // isHaveDirection: true,
Get.toNamed(Routers.selectGetewayListPage); // action: () {
}), // Get.toNamed(Routers.selectGetewayListPage);
// }),
SizedBox( SizedBox(
height: 10.h, height: 10.h,
), ),
@ -326,7 +328,7 @@ class _MineSetPageState extends State<MineSetPage>
height: 10.h, height: 10.h,
), ),
// //
if (!F.isLite) if (!F.isProductionEnv)
CommonItem( CommonItem(
leftTitel: 'Amazon Alexa', leftTitel: 'Amazon Alexa',
rightTitle: '', rightTitle: '',
@ -335,7 +337,7 @@ class _MineSetPageState extends State<MineSetPage>
action: () { action: () {
logic.showToast('功能暂未开放'.tr); logic.showToast('功能暂未开放'.tr);
}), }),
if (!F.isLite) if (!F.isProductionEnv)
CommonItem( CommonItem(
leftTitel: 'Google Home', leftTitel: 'Google Home',
rightTitle: '', rightTitle: '',
@ -344,7 +346,7 @@ class _MineSetPageState extends State<MineSetPage>
action: () { action: () {
logic.showToast('功能暂未开放'.tr); logic.showToast('功能暂未开放'.tr);
}), }),
if (!F.isLite) if (!F.isProductionEnv)
CommonItem( CommonItem(
leftTitel: TranslationLoader.lanKeys!.xiaomiIOTPlatform!.tr, leftTitel: TranslationLoader.lanKeys!.xiaomiIOTPlatform!.tr,
rightTitle: '', rightTitle: '',

View File

@ -236,12 +236,18 @@ class _ValueAddedServicesHighFunctionPageState
'群发钥匙'.tr), '群发钥匙'.tr),
// _buildItem("images/mine/icon_mine_highFunctionContent_bjft.png", // _buildItem("images/mine/icon_mine_highFunctionContent_bjft.png",
// TranslationLoader.lanKeys!.markedHouseState!.tr), // TranslationLoader.lanKeys!.markedHouseState!.tr),
_buildItem('images/mine/icon_mine_highFunctionContent_fkgj.png', // _buildItem('images/mine/icon_mine_highFunctionContent_fkgj.png',
TranslationLoader.lanKeys!.cardIssuingtool!.tr), // TranslationLoader.lanKeys!.cardIssuingtool!.tr),
_buildItem( // _buildItem(
'images/mine/icon_mine_highFunctionContent_fkgj.png', '推送'), // 'images/mine/icon_mine_highFunctionContent_fkgj.png', '推送'),
_buildItem( // _buildItem(
'images/mine/icon_mine_highFunctionContent_fkgj.png', '考勤'), // 'images/mine/icon_mine_highFunctionContent_fkgj.png', '考勤'),
_buildItem('images/mine/icon_mine_highFunctionContent_bjft.png',
'导出锁数据'.tr),
_buildItem('images/mine/icon_mine_highFunctionContent_bjft.png',
'常开模式'.tr),
_buildItem('images/mine/icon_mine_highFunctionContent_bjft.png',
'一键开锁'.tr),
], ],
), ),
), ),

View File

@ -3,6 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart';
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_state.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_state.dart';
import 'package:star_lock/tools/commonDataManage.dart'; import 'package:star_lock/tools/commonDataManage.dart';
@ -57,7 +58,10 @@ class _ValueAddedServicesPageListState
Get.toNamed(Routers.valueAddedServicesNoteAndEmailDetailPage, Get.toNamed(Routers.valueAddedServicesNoteAndEmailDetailPage,
arguments: <String, int>{'type': 2}); arguments: <String, int>{'type': 2});
}), }),
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_realName.png'), '实名认证'.tr, () { _valueAddedServicesItem(
Image.asset(
'images/mine/icon_mine_valueAddedServices_realName.png'),
'实名认证'.tr, () {
Get.toNamed(Routers.valueAddedServicesRealNamePage); Get.toNamed(Routers.valueAddedServicesRealNamePage);
}), }),
_valueAddedServicesItem( _valueAddedServicesItem(
@ -89,39 +93,55 @@ class _ValueAddedServicesPageListState
// TranslationLoader.lanKeys!.checkingIn!.tr, () { // TranslationLoader.lanKeys!.checkingIn!.tr, () {
// Navigator.pushNamed(context, Routers.gatewayDetailPage); // Navigator.pushNamed(context, Routers.gatewayDetailPage);
// }), // }),
_valueAddedServicesItem( //
Image.asset( // _valueAddedServicesItem(
'images/mine/icon_mine_valueAddedServices_storage.png'), // Image.asset(
TranslationLoader.lanKeys!.recordsRetention!.tr, () { // 'images/mine/icon_mine_valueAddedServices_storage.png'),
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds); // TranslationLoader.lanKeys!.recordsRetention!.tr, () {
}), // EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds);
_valueAddedServicesItem( // }),
Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'), if (!F.isProductionEnv)
'可视对讲', () { _valueAddedServicesItem(
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds); Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'),
}), '可视对讲', () {
_valueAddedServicesItem( EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds);
Text( }),
'A', if (!F.isProductionEnv)
style: TextStyle( _valueAddedServicesItem(
color: Colors.white, Text(
fontSize: 38.sp, 'A',
fontWeight: FontWeight.w600), style: TextStyle(
), color: Colors.white,
'Amazon Alexa', () { fontSize: 38.sp,
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds); fontWeight: FontWeight.w600),
}), ),
_valueAddedServicesItem( 'Amazon Alexa', () {
Text( EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds);
'G', }),
style: TextStyle( if (!F.isProductionEnv)
color: Colors.white, _valueAddedServicesItem(
fontSize: 38.sp, Text(
fontWeight: FontWeight.w600), 'G',
), style: TextStyle(
'Google Home', () { color: Colors.white,
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds); fontSize: 38.sp,
}), fontWeight: FontWeight.w600),
),
'Google Home', () {
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds);
}),
if (!F.isProductionEnv)
_valueAddedServicesItem(
Text(
'M',
style: TextStyle(
color: Colors.white,
fontSize: 38.sp,
fontWeight: FontWeight.w600),
),
'小米IOT平台', () {
EasyLoading.showToast('功能暂未开放', duration: 2000.milliseconds);
}),
], ],
), ),
); );

View File

@ -30,11 +30,14 @@ class ShowCupertinoAlertView {
SizedBox( SizedBox(
height: 60.h, height: 60.h,
), ),
Image.network( if (qrCodeUrl.isNotEmpty)
qrCodeUrl, Image.network(
width: 400.w, qrCodeUrl,
height: 400.w, width: 400.w,
), height: 400.w,
)
else
Container(),
SizedBox( SizedBox(
height: 20.h, height: 20.h,
), ),