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

This commit is contained in:
吴亚茜 2024-06-25 10:44:32 +08:00
commit 00c1004c77
28 changed files with 416 additions and 305 deletions

View File

@ -924,5 +924,6 @@
"导出成功":"Export success", "导出成功":"Export success",
"发送钥匙": "Send key", "发送钥匙": "Send key",
"进度": "Progress", "进度": "Progress",
"失败": "Failure" "失败": "Failure",
"人脸详情": "Face details"
} }

View File

@ -956,5 +956,6 @@
"导出成功":"导出成功", "导出成功":"导出成功",
"发送钥匙": "发送钥匙", "发送钥匙": "发送钥匙",
"进度": "进度", "进度": "进度",
"失败": "失败" "失败": "失败",
"人脸详情": "人脸详情"
} }

View File

@ -921,6 +921,7 @@
"导出成功":"导出成功", "导出成功":"导出成功",
"发送钥匙": "发送钥匙", "发送钥匙": "发送钥匙",
"进度": "进度", "进度": "进度",
"失败": "失败" "失败": "失败",
"人脸详情": "人脸详情"
} }

View File

@ -1,14 +1,14 @@
import 'dart:convert'; import 'dart:convert';
import 'package:crypto/crypto.dart' as crypto;
import 'package:star_lock/tools/dateTool.dart'; import 'package:star_lock/tools/dateTool.dart';
import '../io_tool/io_tool.dart';
import '../sm4Encipher/sm4.dart';
import '../io_reply.dart'; import '../io_reply.dart';
import '../io_sender.dart'; import '../io_sender.dart';
import '../io_tool/io_tool.dart';
import '../io_type.dart'; import '../io_type.dart';
import 'package:crypto/crypto.dart' as crypto; import '../sm4Encipher/sm4.dart';
///TODO: ///TODO:
/* /*
@ -70,7 +70,7 @@ class SenderAddFaceCommand extends SenderProtocol {
@override @override
List<int> messageDetail() { List<int> messageDetail() {
List<int> data = []; final List<int> data = [];
List<int> subData = []; List<int> subData = [];
List<int> ebcData = []; List<int> ebcData = [];
@ -82,13 +82,13 @@ class SenderAddFaceCommand extends SenderProtocol {
data.add(81); data.add(81);
// keyID 40 // keyID 40
int keyIDLength = utf8.encode(keyID!).length; final int keyIDLength = utf8.encode(keyID!).length;
subData.addAll(utf8.encode(keyID!)); subData.addAll(utf8.encode(keyID!));
subData = getFixedLengthList(subData, 40 - keyIDLength); subData = getFixedLengthList(subData, 40 - keyIDLength);
// AppLog.log("keyID:$keyID utf8.encode(keyID!):${utf8.encode(keyID!)}"); // AppLog.log("keyID:$keyID utf8.encode(keyID!):${utf8.encode(keyID!)}");
//userID 20 //userID 20
int userIDLength = utf8.encode(userID!).length; final int userIDLength = utf8.encode(userID!).length;
subData.addAll(utf8.encode(userID!)); subData.addAll(utf8.encode(userID!));
subData = getFixedLengthList(subData, 20 - userIDLength); subData = getFixedLengthList(subData, 20 - userIDLength);
// AppLog.log("userID:$userID utf8.encode(userID!):${utf8.encode(userID!)}"); // AppLog.log("userID:$userID utf8.encode(userID!):${utf8.encode(userID!)}");
@ -129,28 +129,28 @@ class SenderAddFaceCommand extends SenderProtocol {
subData.add((startDate! & 0xff000000) >> 24); subData.add((startDate! & 0xff000000) >> 24);
subData.add((startDate! & 0xff0000) >> 16); subData.add((startDate! & 0xff0000) >> 16);
subData.add((startDate! & 0xff00) >> 8); subData.add((startDate! & 0xff00) >> 8);
subData.add((startDate! & 0xff)); subData.add(startDate! & 0xff);
// endDate 4 // endDate 4
subData.add((endDate! & 0xff000000) >> 24); subData.add((endDate! & 0xff000000) >> 24);
subData.add((endDate! & 0xff0000) >> 16); subData.add((endDate! & 0xff0000) >> 16);
subData.add((endDate! & 0xff00) >> 8); subData.add((endDate! & 0xff00) >> 8);
subData.add((endDate! & 0xff)); subData.add(endDate! & 0xff);
// AppLog.log("addFingerprint startDate:${DateTool().dateToYMDHNString(startDate.toString())} endDate:${DateTool().dateToYMDHNString(endDate.toString())}"); // AppLog.log("addFingerprint startDate:${DateTool().dateToYMDHNString(startDate.toString())} endDate:${DateTool().dateToYMDHNString(endDate.toString())}");
// startTime 4 // startTime 4
List<int> startTimeList = [0,0,0,0]; final List<int> startTimeList = [0,0,0,0];
if(startTime!.contains(":")){ if(startTime!.contains(':')){
List<String> getStartTimeList = startTime!.split(":"); final List<String> getStartTimeList = startTime!.split(':');
startTimeList[2] = int.parse(getStartTimeList[0]); startTimeList[2] = int.parse(getStartTimeList[0]);
startTimeList[3] = int.parse(getStartTimeList[1]); startTimeList[3] = int.parse(getStartTimeList[1]);
} }
subData.addAll(startTimeList); subData.addAll(startTimeList);
// endTime 4 // endTime 4
List<int> endTimeList = [0,0,0,0]; final List<int> endTimeList = [0,0,0,0];
if(endTime!.contains(":")){ if(endTime!.contains(':')){
List<String> getendTimeList = endTime!.split(":"); final List<String> getendTimeList = endTime!.split(':');
endTimeList[2] = int.parse(getendTimeList[0]); endTimeList[2] = int.parse(getendTimeList[0]);
endTimeList[3] = int.parse(getendTimeList[1]); endTimeList[3] = int.parse(getendTimeList[1]);
} }
@ -160,7 +160,7 @@ class SenderAddFaceCommand extends SenderProtocol {
//AuthCodeLen 1 //AuthCodeLen 1
subData.add(0); subData.add(0);
} else { } else {
List<int> authCodeData = []; final List<int> authCodeData = [];
//KeyID //KeyID
authCodeData.addAll(utf8.encode(keyID!)); authCodeData.addAll(utf8.encode(keyID!));
@ -173,7 +173,7 @@ class SenderAddFaceCommand extends SenderProtocol {
authCodeData.addAll(signKey!); authCodeData.addAll(signKey!);
// KeyIDauthUserIDmd5加密之后就是authCode // KeyIDauthUserIDmd5加密之后就是authCode
var authCode = crypto.md5.convert(authCodeData); final authCode = crypto.md5.convert(authCodeData);
subData.add(authCode.bytes.length); subData.add(authCode.bytes.length);
subData.addAll(authCode.bytes); subData.addAll(authCode.bytes);
@ -183,7 +183,7 @@ class SenderAddFaceCommand extends SenderProtocol {
data.addAll(subData); data.addAll(subData);
if ((data.length % 16) != 0) { if ((data.length % 16) != 0) {
int add = (16 - data.length % 16); final int add = 16 - data.length % 16;
for (int i = 0; i < add; i++) { for (int i = 0; i < add; i++) {
data.add(0); data.add(0);
} }

View File

@ -80,7 +80,7 @@ class SenderCancelAddFaceCommand extends SenderProtocol {
data.addAll(subData); data.addAll(subData);
if ((data.length % 16) != 0) { if ((data.length % 16) != 0) {
int add = (16 - data.length % 16); int add = 16 - data.length % 16;
for (int i = 0; i < add; i++) { for (int i = 0; i < add; i++) {
data.add(0); data.add(0);
} }

View File

@ -7,6 +7,7 @@ import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart';
import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import '../../appRouters.dart'; import '../../appRouters.dart';
import '../../app_settings/app_colors.dart'; import '../../app_settings/app_colors.dart';
@ -23,9 +24,12 @@ class StarLockForgetPasswordPage extends StatefulWidget {
_StarLockForgetPasswordPageState(); _StarLockForgetPasswordPageState();
} }
class _StarLockForgetPasswordPageState extends State<StarLockForgetPasswordPage> { class _StarLockForgetPasswordPageState
final StarLockForgetPasswordLogic logic = Get.put(StarLockForgetPasswordLogic()); extends State<StarLockForgetPasswordPage> {
final StarLockForgetPasswordState state = Get.find<StarLockForgetPasswordLogic>().state; final StarLockForgetPasswordLogic logic =
Get.put(StarLockForgetPasswordLogic());
final StarLockForgetPasswordState state =
Get.find<StarLockForgetPasswordLogic>().state;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -57,7 +61,8 @@ class _StarLockForgetPasswordPageState extends State<StarLockForgetPasswordPage>
children: <Widget>[ children: <Widget>[
SizedBox(width: 5.w), SizedBox(width: 5.w),
Expanded( Expanded(
child: Text(TranslationLoader.lanKeys!.countryAndRegion!.tr, child: Text(
TranslationLoader.lanKeys!.countryAndRegion!.tr,
style: TextStyle( style: TextStyle(
fontSize: 26.sp, color: AppColors.blackColor))), fontSize: 26.sp, color: AppColors.blackColor))),
SizedBox(width: 20.w), SizedBox(width: 20.w),
@ -95,14 +100,16 @@ class _StarLockForgetPasswordPageState extends State<StarLockForgetPasswordPage>
logic.checkNext(state.phoneController); logic.checkNext(state.phoneController);
}, },
leftWidget: Padding( leftWidget: Padding(
padding: EdgeInsets.only(top: 30.w, bottom: 20.w, right: 5.w, left: 5.w), padding: EdgeInsets.only(
top: 30.w, bottom: 20.w, right: 5.w, left: 5.w),
child: Image.asset( child: Image.asset(
'images/icon_login_account.png', 'images/icon_login_account.png',
width: 36.w, width: 36.w,
height: 36.w, height: 36.w,
), ),
), ),
hintText:TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, hintText:
TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr,
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[ inputFormatters: <TextInputFormatter>[
LengthLimitingTextInputFormatter(30), LengthLimitingTextInputFormatter(30),
@ -232,6 +239,11 @@ class _StarLockForgetPasswordPageState extends State<StarLockForgetPasswordPage>
isDisabled: state.canSub.value, isDisabled: state.canSub.value,
onClick: state.canSub.value onClick: state.canSub.value
? () { ? () {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
logic.resetPassword(); logic.resetPassword();
} }
: null); : null);

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';
@ -7,6 +6,7 @@ import 'package:star_lock/appRouters.dart';
import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart';
import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/tools/submitBtn.dart';
import 'package:star_lock/tools/tf_loginInput.dart'; import 'package:star_lock/tools/tf_loginInput.dart';
import 'package:star_lock/tools/titleAppBar.dart'; import 'package:star_lock/tools/titleAppBar.dart';
@ -22,8 +22,10 @@ class StarLockForgetPasswordXHJPage extends StatefulWidget {
class _StarLockForgetPasswordPageState class _StarLockForgetPasswordPageState
extends State<StarLockForgetPasswordXHJPage> { extends State<StarLockForgetPasswordXHJPage> {
final StarLockForgetPasswordLogic logic = Get.put(StarLockForgetPasswordLogic()); final StarLockForgetPasswordLogic logic =
final StarLockForgetPasswordState state = Get.find<StarLockForgetPasswordLogic>().state; Get.put(StarLockForgetPasswordLogic());
final StarLockForgetPasswordState state =
Get.find<StarLockForgetPasswordLogic>().state;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -186,7 +188,14 @@ class _StarLockForgetPasswordPageState
padding: EdgeInsets.only(top: 25.w, bottom: 25.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
isDisabled: state.canSub.value, isDisabled: state.canSub.value,
onClick: state.canSub.value onClick: state.canSub.value
? logic.resetPassword ? () {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
logic.resetPassword();
}
: null); : null);
}), }),
], ],

View File

@ -36,7 +36,9 @@ FutureOr<void> main() async {
Future<void>.delayed(const Duration(milliseconds: 500), () async { Future<void>.delayed(const Duration(milliseconds: 500), () async {
final GetAppInfo entity = await ApiRepository.to.getAppInfo(); final GetAppInfo entity = await ApiRepository.to.getAppInfo();
CustomerTool.init(entity.data?.wechatServiceUrl ?? ''); CustomerTool.init(entity.data?.wechatServiceUrl ?? '');
if (entity.data?.appSiteUrl != null) {
WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!); WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!);
}
}); });
} }

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/card/cardList/cardList_state.dart'; import 'package:star_lock/main/lockDetail/card/cardList/cardList_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
@ -68,6 +69,11 @@ class _CardListPageState extends State<CardListPage> with RouteAware {
onPressed: () async { onPressed: () async {
final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
ShowTipView().showIosTipWithContentDialog( ShowTipView().showIosTipWithContentDialog(
'重置后,该锁的卡都将被删除哦,确认要重置吗?'.tr, () async { '重置后,该锁的卡都将被删除哦,确认要重置吗?'.tr, () async {
state.isDeletAll = true; state.isDeletAll = true;

View File

@ -6,6 +6,7 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart';
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_state.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_state.dart';
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/noData.dart';
import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/storage.dart';
@ -67,6 +68,11 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
final bool? isDemoMode = final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot); await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
ShowTipView().showIosTipWithContentDialog( ShowTipView().showIosTipWithContentDialog(
'该锁的电子钥匙都将被删除'.tr, logic.resetElectronicKeyListRequest); '该锁的电子钥匙都将被删除'.tr, logic.resetElectronicKeyListRequest);
} else { } else {

View File

@ -4,7 +4,6 @@ import 'package:flutter/material.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/app_settings/app_colors.dart'; import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart';
import 'package:star_lock/tools/pickers/pickers.dart'; import 'package:star_lock/tools/pickers/pickers.dart';
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart'; import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart'; import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart';
@ -16,6 +15,7 @@ import '../../../../../tools/dateTool.dart';
import '../../../../../tools/storage.dart'; import '../../../../../tools/storage.dart';
import '../../../../../translations/trans_lib.dart'; import '../../../../../translations/trans_lib.dart';
import 'massSendElectronicKey_logic.dart'; import 'massSendElectronicKey_logic.dart';
import 'massSendElectronicKey_state.dart';
class MassSendElectronicKeyPage extends StatefulWidget { class MassSendElectronicKeyPage extends StatefulWidget {
const MassSendElectronicKeyPage({required this.type, Key? key}) : super(key: key); const MassSendElectronicKeyPage({required this.type, Key? key}) : super(key: key);

View File

@ -174,6 +174,8 @@ class FaceDetailLogic extends BaseGetXController {
showToast('修改成功', something: () { showToast('修改成功', something: () {
Get.back(result: 'addScuess'); Get.back(result: 'addScuess');
}); });
}else{
Get.back();
} }
} }

View File

@ -33,7 +33,7 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar( appBar: TitleAppBar(
barTitle: '人脸详情', barTitle: '人脸详情'.tr,
haveBack: true, haveBack: true,
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
), ),
@ -44,7 +44,9 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
rightTitle: state.typeNumber.value, rightTitle: state.typeNumber.value,
isHaveDirection: false, isHaveDirection: false,
isHaveLine: true)), isHaveLine: true)),
Obx(() => lockDataListItem(TranslationLoader.lanKeys!.name!.tr, state.typeName.value, () { Obx(() => lockDataListItem(
TranslationLoader.lanKeys!.name!.tr, state.typeName.value,
() {
// showCupertinoAlertDialog(context); // showCupertinoAlertDialog(context);
ShowTipView().showTFViewAlertDialog( ShowTipView().showTFViewAlertDialog(
state.changeNameController, state.changeNameController,
@ -54,7 +56,6 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
logic.showToast('请输入姓名'.tr); logic.showToast('请输入姓名'.tr);
return; return;
} }
Get.back();
state.typeName.value = state.changeNameController.text; state.typeName.value = state.changeNameController.text;
logic.updateFaceNameData(); logic.updateFaceNameData();
}, inputFormatters: <TextInputFormatter>[ }, inputFormatters: <TextInputFormatter>[
@ -187,7 +188,8 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
rightTitle: '', rightTitle: '',
isHaveDirection: true, isHaveDirection: true,
action: () { action: () {
Get.toNamed(Routers.lockOperatingRecordPage, arguments: <String, Object?>{ Get.toNamed(Routers.lockOperatingRecordPage,
arguments: <String, Object?>{
'type': 4, 'type': 4,
'id': state.faceItemData.value.faceId.toString(), 'id': state.faceItemData.value.faceId.toString(),
'recordName': state.faceItemData.value.faceName 'recordName': state.faceItemData.value.faceName
@ -215,12 +217,14 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
); );
} }
Widget lockDataListItem(String leftTitle, String conentStr, Function()? action){ Widget lockDataListItem(
String leftTitle, String conentStr, Function()? action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
// height: 70.h, // height: 70.h,
padding: EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h), padding:
EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
border: Border( border: Border(
@ -228,15 +232,17 @@ class _FaceDetailPageState extends State<FaceDetailPage> with RouteAware {
color: AppColors.greyLineColor, // color: AppColors.greyLineColor, //
width: 2.0.h, // width: 2.0.h, //
), ),
) )),
),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Text(leftTitle, style: TextStyle(fontSize: 22.sp)), Text(leftTitle, style: TextStyle(fontSize: 22.sp)),
SizedBox(width: 10.w), SizedBox(width: 10.w),
Expanded( Expanded(
child: Text(conentStr, textAlign:TextAlign.end, style: TextStyle(fontSize: 22.sp, )) child: Text(conentStr,
), textAlign: TextAlign.end,
style: TextStyle(
fontSize: 22.sp,
))),
SizedBox(width: 10.w), SizedBox(width: 10.w),
Image.asset( Image.asset(
'images/icon_right_grey.png', 'images/icon_right_grey.png',

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/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/keySearchWidget.dart';
import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart';
import 'package:star_lock/tools/showTipView.dart'; import 'package:star_lock/tools/showTipView.dart';
@ -63,6 +64,11 @@ class _FaceListPageState extends State<FaceListPage> with RouteAware {
onPressed: () async { onPressed: () async {
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
// showDeletAlertDialog(context); // showDeletAlertDialog(context);
ShowTipView().showIosTipWithContentDialog( ShowTipView().showIosTipWithContentDialog(
"重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async { "重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async {

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
@ -69,6 +70,11 @@ class _FingerprintListPageState extends State<FingerprintListPage>
onPressed: () async { onPressed: () async {
final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
ShowTipView().showIosTipWithContentDialog( ShowTipView().showIosTipWithContentDialog(
'重置后,该锁的指纹都将被删除哦,确认要重置吗?'.tr, () async { '重置后,该锁的指纹都将被删除哦,确认要重置吗?'.tr, () async {
state.isDeletAll = true; state.isDeletAll = true;

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart';
import 'package:star_lock/main/lockDetail/iris/irisList/irisList_logic.dart'; import 'package:star_lock/main/lockDetail/iris/irisList/irisList_logic.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/keySearchWidget.dart';
import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart';
@ -44,6 +45,11 @@ class _IrisListPageState extends State<IrisListPage> {
onPressed: () async { onPressed: () async {
final isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); final isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
showDeletAlertDialog(context); showDeletAlertDialog(context);
} else { } else {
// Get.toNamed(Routers.selectLockTypePage); // Get.toNamed(Routers.selectLockTypePage);

View File

@ -90,7 +90,7 @@ class LockDetailLogic extends BaseGetXController {
// //
uploadElectricQuantityRequest(); uploadElectricQuantityRequest();
// //
getLockRecordLastUploadDataTime(); // getLockRecordLastUploadDataTime();
resetOpenDoorState(); resetOpenDoorState();
state.animationController!.stop(); state.animationController!.stop();
break; break;

View File

@ -525,7 +525,7 @@ class LockSetLogic extends BaseGetXController {
} }
/// ///
deleyLockLogicOfRoles() { void deleyLockLogicOfRoles() {
if (state.lockBasicInfo.value.isLockOwner == 1) { if (state.lockBasicInfo.value.isLockOwner == 1) {
// //
ShowTipView().showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr, ShowTipView().showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr,

View File

@ -5,6 +5,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/lockSet/lockSet/checkingInInfoData_entity.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/checkingInInfoData_entity.dart';
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSet_state.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSet_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
@ -28,9 +29,7 @@ class LockSetPage extends StatefulWidget {
class _LockSetPageState extends State<LockSetPage> with RouteAware { class _LockSetPageState extends State<LockSetPage> with RouteAware {
final LockSetLogic logic = Get.put(LockSetLogic()); final LockSetLogic logic = Get.put(LockSetLogic());
final LockSetState state = Get final LockSetState state = Get.find<LockSetLogic>().state;
.find<LockSetLogic>()
.state;
Future<void> getHttpData() async { Future<void> getHttpData() async {
logic.getLockSettingInfoData().then((LockSetInfoEntity value) { logic.getLockSettingInfoData().then((LockSetInfoEntity value) {
@ -65,8 +64,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: Obx(() => child: Obx(() => ListView(
ListView(
children: getListWidget(), children: getListWidget(),
)), )),
), ),
@ -104,14 +102,12 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}), }),
SizedBox(height: 10.h), SizedBox(height: 10.h),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.autoLock == 1, visible: state.lockFeature.value.autoLock == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr,
rightTitle: (state.lockSettingInfo.value.autoLock ?? 0) > 0 rightTitle: (state.lockSettingInfo.value.autoLock ?? 0) > 0
? '${state.lockSetInfoData.value.lockSettingInfo! ? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond ?? 0}s'
.autoLockSecond ?? 0}s'
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
isHaveDirection: true, isHaveDirection: true,
@ -127,13 +123,11 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}); });
}))), }))),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.passageMode == 1, visible: state.lockFeature.value.passageMode == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr,
rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1
1
? TranslationLoader.lanKeys!.opened!.tr ? TranslationLoader.lanKeys!.opened!.tr
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
@ -153,8 +147,8 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
isHaveLine: true, isHaveLine: true,
isHaveDirection: true, isHaveDirection: true,
action: () { action: () {
Get.toNamed( Get.toNamed(Routers.lockTimePage,
Routers.lockTimePage, arguments: <String, LockSetInfoData>{ arguments: <String, LockSetInfoData>{
'lockSetInfoData': state.lockSetInfoData.value 'lockSetInfoData': state.lockSetInfoData.value
}); });
})), })),
@ -166,10 +160,14 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
isDelete: true, isDelete: true,
onClick: () { onClick: () {
// logic.deletUserAction(); // logic.deletUserAction();
// logic.deletLockInfoData(); // logic.deletLockInfoData();
// showDeletAlertDialog(context); // showDeletAlertDialog(context);
// showDeletPasswordAlertDialog(context); // showDeletPasswordAlertDialog(context);
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
logic.deleyLockLogicOfRoles(); logic.deleyLockLogicOfRoles();
}), }),
), ),
@ -242,14 +240,12 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
// })), // })),
// SizedBox(height: 10.h), // SizedBox(height: 10.h),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.autoLock == 1, visible: state.lockFeature.value.autoLock == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr,
rightTitle: state.lockSettingInfo.value.autoLock! > 0 rightTitle: state.lockSettingInfo.value.autoLock! > 0
? '${state.lockSetInfoData.value.lockSettingInfo! ? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond}s'
.autoLockSecond}s'
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
isHaveDirection: true, isHaveDirection: true,
@ -302,13 +298,11 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
})); }));
}), }),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.antiPrySwitch == 1, visible: state.lockFeature.value.antiPrySwitch == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr, leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr,
rightTitle: (state.lockSettingInfo.value.antiPrySwitch ?? rightTitle: (state.lockSettingInfo.value.antiPrySwitch ?? 0) == 1
0) == 1
? TranslationLoader.lanKeys!.opened!.tr ? TranslationLoader.lanKeys!.opened!.tr
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
@ -321,14 +315,12 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}))), }))),
SizedBox(height: 10.h), SizedBox(height: 10.h),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.passageMode == 1, visible: state.lockFeature.value.passageMode == 1,
// visible: true, // visible: true,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr,
rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1
1
? TranslationLoader.lanKeys!.opened!.tr ? TranslationLoader.lanKeys!.opened!.tr
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
@ -340,13 +332,11 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}); });
}))), }))),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.remoteUnlock == 1, visible: state.lockFeature.value.remoteUnlock == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr, leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr,
rightTitle: (state.lockSettingInfo.value.remoteUnlock ?? 0) == rightTitle: (state.lockSettingInfo.value.remoteUnlock ?? 0) == 1
1
? TranslationLoader.lanKeys!.opened!.tr ? TranslationLoader.lanKeys!.opened!.tr
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
@ -358,14 +348,12 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}); });
}))), }))),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockBasicInfo.value.isLockOwner == 1 && visible: state.lockBasicInfo.value.isLockOwner == 1 &&
state.lockFeature.value.resetSwitch == 1, state.lockFeature.value.resetSwitch == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, leftTitel: TranslationLoader.lanKeys!.resetButton!.tr,
rightTitle: (state.lockSettingInfo.value.resetSwitch ?? 0) == rightTitle: (state.lockSettingInfo.value.resetSwitch ?? 0) == 1
1
? TranslationLoader.lanKeys!.opened!.tr ? TranslationLoader.lanKeys!.opened!.tr
: TranslationLoader.lanKeys!.closed!.tr, : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true, isHaveLine: true,
@ -409,8 +397,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
}); });
})), })),
// //
Obx(() => Obx(() => Visibility(
Visibility(
visible: state.lockFeature.value.isSupportCatEye == 1, visible: state.lockFeature.value.isSupportCatEye == 1,
child: CommonItem( child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.catEyeSet!.tr, leftTitel: TranslationLoader.lanKeys!.catEyeSet!.tr,
@ -511,8 +498,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
// }), // }),
// //
Obx( Obx(
() => () => Visibility(
Visibility(
visible: state.lockBasicInfo.value.isLockOwner == 1 && visible: state.lockBasicInfo.value.isLockOwner == 1 &&
state.lockFeature.value.attendance == 1, state.lockFeature.value.attendance == 1,
child: CommonItem( child: CommonItem(
@ -524,8 +510,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
), ),
// //
Obx( Obx(
() => () => Visibility(
Visibility(
visible: state.lockBasicInfo.value.isLockOwner == 1 && visible: state.lockBasicInfo.value.isLockOwner == 1 &&
state.lockFeature.value.unlockReminder == 1, state.lockFeature.value.unlockReminder == 1,
child: CommonItem( child: CommonItem(
@ -537,8 +522,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
), ),
// APP开锁时是否需联网 // APP开锁时是否需联网
Obx( Obx(
() => () => Visibility(
Visibility(
visible: state.lockBasicInfo.value.isLockOwner == 1 && visible: state.lockBasicInfo.value.isLockOwner == 1 &&
state.lockFeature.value.appUnlockOnline == 1, state.lockFeature.value.appUnlockOnline == 1,
child: CommonItem( child: CommonItem(
@ -553,8 +537,7 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
SizedBox(height: 10.h), SizedBox(height: 10.h),
// wifi配网 // wifi配网
Obx( Obx(
() => () => Visibility(
Visibility(
visible: state.lockFeature.value.wifi == 1, visible: state.lockFeature.value.wifi == 1,
child: CommonItem( child: CommonItem(
leftTitel: leftTitel:
@ -582,8 +565,8 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
isHaveLine: true, isHaveLine: true,
isHaveDirection: true, isHaveDirection: true,
action: () { action: () {
Get.toNamed( Get.toNamed(Routers.lockTimePage,
Routers.lockTimePage, arguments: <String, LockSetInfoData>{ arguments: <String, LockSetInfoData>{
'lockSetInfoData': state.lockSetInfoData.value 'lockSetInfoData': state.lockSetInfoData.value
}); });
})), })),
@ -676,12 +659,11 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
thumbColor: CupertinoColors.white, thumbColor: CupertinoColors.white,
value: state.isAttendance.value == 1, value: state.isAttendance.value == 1,
onChanged: (bool value) { onChanged: (bool value) {
logic.openCheckingInData(( logic.openCheckingInData(
CheckingInInfoDataEntity checkingInInfoDataEntity) { (CheckingInInfoDataEntity checkingInInfoDataEntity) {
if (checkingInInfoDataEntity.data!.companyId == 0) { if (checkingInInfoDataEntity.data!.companyId == 0) {
// logic.showCupertinoAlertDialog(context); // logic.showCupertinoAlertDialog(context);
ShowTipView().showIosTipWithContentDialog( ShowTipView().showIosTipWithContentDialog('创建公司后,考勤功能才能使用'.tr, () {
'创建公司后,考勤功能才能使用'.tr, () {
// //
Get.toNamed(Routers.checkInCreatCompanyPage, Get.toNamed(Routers.checkInCreatCompanyPage,
arguments: <String, LockSetInfoData>{ arguments: <String, LockSetInfoData>{

View File

@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.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/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/noData.dart';
import '../../../../../appRouters.dart'; import '../../../../../appRouters.dart';
@ -19,6 +20,7 @@ class WirelessKeyboardPage extends StatefulWidget {
class _WirelessKeyboardPageState extends State<WirelessKeyboardPage> { class _WirelessKeyboardPageState extends State<WirelessKeyboardPage> {
List dataList = []; List dataList = [];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -34,6 +36,11 @@ class _WirelessKeyboardPageState extends State<WirelessKeyboardPage> {
style: TextStyle(color: Colors.white, fontSize: 24.sp), style: TextStyle(color: Colors.white, fontSize: 24.sp),
), ),
onPressed: () { onPressed: () {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
_showDialog(context); _showDialog(context);
}, },
), ),

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart';
import 'package:star_lock/main/lockDetail/palm/palmList/palmList_logic.dart'; import 'package:star_lock/main/lockDetail/palm/palmList/palmList_logic.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/keySearchWidget.dart';
import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart';
@ -44,6 +45,11 @@ class _PalmListPageState extends State<PalmListPage> {
onPressed: () async { onPressed: () async {
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
showDeletAlertDialog(context); showDeletAlertDialog(context);
} else { } else {
// Get.toNamed(Routers.selectLockTypePage); // Get.toNamed(Routers.selectLockTypePage);

View File

@ -57,7 +57,7 @@ class PasswordKeyDetailLogic extends BaseGetXController {
pwdNo: state.itemData.value.pwdUserNo!, pwdNo: state.itemData.value.pwdUserNo!,
pwd: state.inputPwdController.text, pwd: state.inputPwdController.text,
useCountLimit: 0xffff, useCountLimit: 0xffff,
operate: state.isDeletPasswordKey.value == true ? 2 : 1, operate: state.itemData.value.isCustom == 1 ? (state.isDeletPasswordKey.value == true ? 2 : 1) : 3,
isAdmin: state.isAdministrator.value == true ? 1 : 0, isAdmin: state.isAdministrator.value == true ? 1 : 0,
startTime:state.itemData.value.startDate! ~/ 1000, startTime:state.itemData.value.startDate! ~/ 1000,
endTime:state.itemData.value.endDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000,
@ -147,7 +147,7 @@ class PasswordKeyDetailLogic extends BaseGetXController {
pwdNo: state.itemData.value.pwdUserNo!, pwdNo: state.itemData.value.pwdUserNo!,
pwd: state.inputPwdController.text, pwd: state.inputPwdController.text,
useCountLimit: 0xffff, useCountLimit: 0xffff,
operate: state.itemData.value.isCustom == 1 ? state.isDeletPasswordKey.value == true ? 2 : 1 : 3, operate: state.itemData.value.isCustom == 1 ? (state.isDeletPasswordKey.value == true ? 2 : 1) : 3,
isAdmin: state.isAdministrator.value == true ? 1 : 0, isAdmin: state.isAdministrator.value == true ? 1 : 0,
startTime:state.itemData.value.startDate! ~/ 1000, startTime:state.itemData.value.startDate! ~/ 1000,
endTime:state.itemData.value.endDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000,

View File

@ -6,6 +6,7 @@ import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKe
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart';
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart';
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/noData.dart';
import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/storage.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
@ -67,6 +68,11 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage>
final bool? isDemoMode = final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot); await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
if (state.itemDataList.isEmpty) { if (state.itemDataList.isEmpty) {
logic.showToast('暂无密码,无需重置'.tr); logic.showToast('暂无密码,无需重置'.tr);
return; return;
@ -227,7 +233,8 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage>
Row( Row(
children: <Widget>[ children: <Widget>[
SizedBox( SizedBox(
width: passwordKeyListItem.keyboardPwdStatus == 2 || passwordKeyListItem.keyboardPwdStatus == 3 width: passwordKeyListItem.keyboardPwdStatus == 2 ||
passwordKeyListItem.keyboardPwdStatus == 3
? 1.sw - 110.w - 100.w ? 1.sw - 110.w - 100.w
: 1.sw - 110.w - 50.w, : 1.sw - 110.w - 50.w,
child: Row(children: <Widget>[ child: Row(children: <Widget>[

View File

@ -3,6 +3,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.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/lockMian/lockMain/lockMain_logic.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
@ -44,6 +45,11 @@ class _RemoteControlListPageState extends State<RemoteControlListPage> {
onPressed: () async { onPressed: () async {
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) { if (isDemoMode == false) {
final bool isNetWork =
LockMainLogic.to()?.judgeTheNetwork() ?? false;
if (!isNetWork) {
return;
}
showDeletAlertDialog(context); showDeletAlertDialog(context);
} else { } else {
// Get.toNamed(Routers.selectLockTypePage); // Get.toNamed(Routers.selectLockTypePage);

View File

@ -109,11 +109,20 @@ class LockMainLogic extends BaseGetXController {
result != ConnectivityResult.none) { result != ConnectivityResult.none) {
// //
state.networkConnectionStatus.value = 1; state.networkConnectionStatus.value = 1;
getStarLockInfo(); getStarLockInfo(isUnShowLoading: true);
} }
}); });
} }
///
bool judgeTheNetwork() {
final bool isNetwork = state.networkConnectionStatus.value == 1;
if (!isNetwork) {
EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr);
}
return isNetwork;
}
/// ///
Future<void> checkWhetherPushIsEnabled() async { Future<void> checkWhetherPushIsEnabled() async {
bool notificationEnabled = false; bool notificationEnabled = false;
@ -261,6 +270,7 @@ class LockMainLogic extends BaseGetXController {
super.onInit(); super.onInit();
checkWhetherPushIsEnabled(); checkWhetherPushIsEnabled();
_initSubscription(); _initSubscription();
connectListener();
} }
@override @override
@ -270,4 +280,11 @@ class LockMainLogic extends BaseGetXController {
}); });
super.onClose(); super.onClose();
} }
static LockMainLogic? to() {
if (Get.isRegistered<LockMainLogic>()) {
return Get.find<LockMainLogic>();
}
return null;
}
} }

View File

@ -75,7 +75,7 @@ abstract class Api {
final String openCheckingInURL = final String openCheckingInURL =
'/attendanceCompany/isExistenceCompany'; // '/attendanceCompany/isExistenceCompany'; //
final String setCheckInCreateCompanyURL = final String setCheckInCreateCompanyURL =
'/attendanceCompany/add'; // '/v2/attendanceCompany/add'; //
final String deleteCompanyURL = '/attendanceCompany/delete'; // final String deleteCompanyURL = '/attendanceCompany/delete'; //
final String getAttendanceRecordListByDateURL = final String getAttendanceRecordListByDateURL =

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -8,34 +7,47 @@ class ShowDeleteAdministratorIsHaveAllDataWidget extends StatefulWidget {
BlockIsHaveAllDataCallback? blockIsHaveAllDataCallback; BlockIsHaveAllDataCallback? blockIsHaveAllDataCallback;
String? contentStr; String? contentStr;
ShowDeleteAdministratorIsHaveAllDataWidget({Key? key, this.contentStr, this.blockIsHaveAllDataCallback}) : super(key: key); ShowDeleteAdministratorIsHaveAllDataWidget(
{Key? key, this.contentStr, this.blockIsHaveAllDataCallback})
: super(key: key);
@override @override
State<ShowDeleteAdministratorIsHaveAllDataWidget> createState() => _ShowDeleteAdministratorIsHaveAllDataWidgetState(); State<ShowDeleteAdministratorIsHaveAllDataWidget> createState() =>
_ShowDeleteAdministratorIsHaveAllDataWidgetState();
} }
class _ShowDeleteAdministratorIsHaveAllDataWidgetState extends State<ShowDeleteAdministratorIsHaveAllDataWidget> { class _ShowDeleteAdministratorIsHaveAllDataWidgetState
extends State<ShowDeleteAdministratorIsHaveAllDataWidget> {
bool selet = false; bool selet = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return GestureDetector(
children: [
GestureDetector(
onTap: () { onTap: () {
setState(() { setState(() {
selet = !selet; selet = !selet;
widget.blockIsHaveAllDataCallback!(selet); widget.blockIsHaveAllDataCallback!(selet);
}); });
}, },
child: Image.asset( child: Row(
selet ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', children: <Widget>[
Image.asset(
selet
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 30.w, width: 30.w,
height: 30.w, height: 30.w,
)), ),
SizedBox(width: 15.w,), SizedBox(
Expanded(child: Text(widget.contentStr!, maxLines: 2, textAlign: TextAlign.start, style: TextStyle(fontSize: 24.sp))), width: 15.w,
),
Expanded(
child: Text(widget.contentStr!,
maxLines: 2,
textAlign: TextAlign.start,
style: TextStyle(fontSize: 24.sp))),
], ],
),
); );
} }
} }

View File

@ -10,7 +10,7 @@
# 设置 # 设置
environment="xhj" environment="xhj"
main_file="lib/main_xhj_full.dart" main_file="lib/main_xhj_full.dart"
version_string="1.0.52" version_string="1.0.66"
file_path="lib/network/api.dart" file_path="lib/network/api.dart"
############################################################### ###############################################################
@ -38,7 +38,17 @@ esac
echo "API 前缀为: $api_prefix" echo "API 前缀为: $api_prefix"
urls=$(curl -s -X POST -d "version=$version_string" "$environment/api/app/getDeprecatedApiList" | jq -r '.data[].url') response=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/checkAppBuildVersion")
error_code=$(echo $response | jq '.errorCode')
# 判断是否成功
if [ "$error_code" != "0" ]; then
error_msg=$(echo $response | jq -r '.errorMsg')
echo "失败:$error_msg"
exit 1
fi
urls=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/getDeprecatedApiList" | jq -r '.data[].url')
echo "* 成功获取废弃 api 数据" echo "* 成功获取废弃 api 数据"
# 解析 api 文件数据 # 解析 api 文件数据