From d5db2db6728af54e548e3345bb691d6a7d61e50d Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Sat, 1 Jun 2024 17:25:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=A4=A7=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/lan/lan_en.json | 102 ++++++----- images/lan/lan_keys.json | 9 +- images/lan/lan_zh.json | 9 +- .../card/addCardType/addCardType_logic.dart | 5 + .../card/addCardType/addCardType_page.dart | 2 +- .../card/cardDetail/cardDetail_logic.dart | 171 ++++++++++-------- .../card/cardDetail/cardDetail_page.dart | 2 +- .../electronicKeyDetail_logic.dart | 5 + .../electronicKeyDetail_page.dart | 2 +- .../massSendElectronicKey_logic.dart | 5 + .../massSendElectronicKey_page.dart | 16 +- .../view/sendElectronicKeyView_logic.dart | 9 +- .../view/sendElectronicKeyView_page.dart | 2 +- .../face/addFaceType/addFaceType_logic.dart | 5 + .../face/addFaceType/addFaceType_page.dart | 2 +- .../face/faceDetail/faceDetail_logic.dart | 7 +- .../face/faceDetail/faceDetail_page.dart | 4 +- .../addFingerprintType_logic.dart | 5 + .../addFingerprintType_page.dart | 2 +- .../fingerprintDetail_logic.dart | 5 + .../fingerprintDetail_page.dart | 4 +- .../iris/addIrisType/addIrisType_logic.dart | 5 + .../iris/addIrisType/addIrisType_page.dart | 26 +-- .../iris/irisDetail/irisDetail_logic.dart | 5 + .../iris/irisDetail/irisDetail_page.dart | 2 +- .../basicInformation_logic.dart | 22 ++- .../basicInformation_page.dart | 2 +- .../palm/addPalmType/addPalmType_logic.dart | 5 + .../palm/addPalmType/addPalmType_page.dart | 28 +-- .../palm/palmDetail/palmDetail_logic.dart | 7 +- .../palm/palmDetail/palmDetail_page.dart | 72 ++++---- .../passwordKey_perpetual_page.dart | 2 +- .../addRemoteControl_logic.dart | 5 + .../addRemoteControl_page.dart | 38 ++-- lib/tools/pickers/time_picker/time_utils.dart | 37 +++- 35 files changed, 381 insertions(+), 248 deletions(-) diff --git a/images/lan/lan_en.json b/images/lan/lan_en.json index 0b123252..5c9cf9f3 100755 --- a/images/lan/lan_en.json +++ b/images/lan/lan_en.json @@ -337,7 +337,6 @@ "customSMSTemplate": "Custom SMS Template", "customMailTemplate": "Custom Mail Template", "record": "Record", - "forTheFirstTime": "For the first time", "onceDay": "once a day", "weekOnce": "once a week", @@ -789,53 +788,51 @@ "文件校验失败 0x02": "File verification failed 0x02", "文件校验失败 0x03": "File verification failed 0x03", "固件升级完成": "Firmware upgrade completed", - "记录":"Record", - "开通高级功能后才可以对锁进行管理":"You can manage locks only after the advanced function is enabled", - "去开通":"Go and Activate", - "实名认证":"Real-name authentication", - "当前剩余数量":"Current surplus quantity", - "购买":"Buy", - "实名认证为付费功能,请购买后再使用":"Real-name authentication is a paid function, please use it after purchase", - "密码不一致哦":"The passwords are inconsistent", - - "退出添加":"Quit adding", - "管理员已满":"Admin full", + "记录": "Record", + "开通高级功能后才可以对锁进行管理": "You can manage locks only after the advanced function is enabled", + "去开通": "Go and Activate", + "实名认证": "Real-name authentication", + "当前剩余数量": "Current surplus quantity", + "购买": "Buy", + "实名认证为付费功能,请购买后再使用": "Real-name authentication is a paid function, please use it after purchase", + "密码不一致哦": "The passwords are inconsistent", + "退出添加": "Quit adding", + "管理员已满": "Admin full", "用户已满": "The user is full", "锁上面添加指纹已满": "Add fingerprint on lock is full", "指纹已存在": "The fingerprint already exists.", "锁上面添加人脸已满": "Lock above add face is full", "人脸已存在": "The face already exists", - "锁上面添加卡已满":"Lock above add card is full", + "锁上面添加卡已满": "Lock above add card is full", "卡已存在": "Card already exists", "锁上面添加密码已满": "Lock above add password is full", "密码已存在": "Password already exists", "请输入密码": "Please enter password", "暂无密码,无需重置": "No password, no need to reset", - - "真实姓名":"Real name", - "身份证号":"ID number", - "请输入真实姓名":"Please enter your real name", - "请输入身份证号":"Please enter your ID number", - "请输入身份证号和真实姓名":"Please enter your ID number and real name", - "点击返回设备配对":"Tap Back to device pairing", - "无法连接?尝试升级":"Can't connect?Upgrade attempted", - "固件升级提示":"Firmware upgrade prompt", - "请先获取固件文件到手机本地,再选择升级":"Please obtain the firmware file to the local phone first, and then select Upgrade", - "固件升级中":"The firmware is being upgraded", - "取消升级":"Cancel the upgrade", - "固件传输中":"Firmware in transit", - "关闭":"Shut down", - "传输中'":"In transit", - "操作记录":"Operation record", - "修改姓名":"Modify name", - "传输中":"In transit", - "发送人":"Sender", - "发送时间":"Send time", - "钥匙详情":"Key details", - "姓名":"Name", - "发送":"Send", - "请确认姓名全名和身份证号码是否正确":"Please confirm that the full name and ID number are correct", - "传输期间请勿离开当前页面":"Do not leave the current page during transfer", + "真实姓名": "Real name", + "身份证号": "ID number", + "请输入真实姓名": "Please enter your real name", + "请输入身份证号": "Please enter your ID number", + "请输入身份证号和真实姓名": "Please enter your ID number and real name", + "点击返回设备配对": "Tap Back to device pairing", + "无法连接?尝试升级": "Can't connect?Upgrade attempted", + "固件升级提示": "Firmware upgrade prompt", + "请先获取固件文件到手机本地,再选择升级": "Please obtain the firmware file to the local phone first, and then select Upgrade", + "固件升级中": "The firmware is being upgraded", + "取消升级": "Cancel the upgrade", + "固件传输中": "Firmware in transit", + "关闭": "Shut down", + "传输中'": "In transit", + "操作记录": "Operation record", + "修改姓名": "Modify name", + "传输中": "In transit", + "发送人": "Sender", + "发送时间": "Send time", + "钥匙详情": "Key details", + "姓名": "Name", + "发送": "Send", + "请确认姓名全名和身份证号码是否正确": "Please confirm that the full name and ID number are correct", + "传输期间请勿离开当前页面": "Do not leave the current page during transfer", "机型": "models", "硬件版本": "Hardware version", "固件版本": "Firmware version", @@ -846,16 +843,23 @@ "操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。": "The operation failed. Please confirm whether the lock is nearby, or restart your phone's Bluetooth and try again.", "如果是全自动锁,请使屏幕变亮": "If it is a fully automatic lock, please make the screen brighter", "正在尝试闭锁……": "Attempting to lock...", - "清空记录":"Clear record", - "是否要删除操作记录?":"Do you want to delete the operation record?", - "被删除的记录不能恢复":"The deleted record cannot be restored", - "全部事件":"All events", - "开锁事件":"Unlock event", - "异常事件":"Abnormal event", - "门铃事件":"Doorbell event", - "视频事件":"Video event", - "请开启蓝牙":"Please turn on Bluetooth", - "请选择有效日":"Please select the effective day", + "清空记录": "Clear record", + "是否要删除操作记录?": "Do you want to delete the operation record?", + "被删除的记录不能恢复": "The deleted record cannot be restored", + "全部事件": "All events", + "开锁事件": "Unlock event", + "异常事件": "Abnormal event", + "门铃事件": "Doorbell event", + "视频事件": "Video event", + "请开启蓝牙": "Please turn on Bluetooth", + "请选择有效日": "Please select the effective day", "公司名字长度不能小于 6 ": "The length of the company name cannot be less than 6", - "已是最新版本": "It is the latest version" + "已是最新版本": "It is the latest version", + "一": "Mon", + "二": "Tue", + "三": "Wed", + "四": "Thu", + "五": "Fri", + "六": "Sat", + "日": "Sun" } diff --git a/images/lan/lan_keys.json b/images/lan/lan_keys.json index d05012dd..2f33cfae 100755 --- a/images/lan/lan_keys.json +++ b/images/lan/lan_keys.json @@ -886,5 +886,12 @@ "请开启蓝牙":"请开启蓝牙", "请选择有效日":"请选择有效日", "公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ", - "已是最新版本": "已是最新版本" + "已是最新版本": "已是最新版本", + "一":"一", + "二":"二", + "三":"三", + "四":"四", + "五":"五", + "六":"六", + "日":"日" } diff --git a/images/lan/lan_zh.json b/images/lan/lan_zh.json index 43e12af2..d0a4460d 100755 --- a/images/lan/lan_zh.json +++ b/images/lan/lan_zh.json @@ -856,5 +856,12 @@ "请开启蓝牙": "请开启蓝牙", "请选择有效日": "请选择有效日", "公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ", - "已是最新版本": "已是最新版本" + "已是最新版本": "已是最新版本", + "一": "一", + "二": "二", + "三": "三", + "四": "四", + "五": "五", + "六": "六", + "日": "日" } diff --git a/lib/main/lockDetail/card/addCardType/addCardType_logic.dart b/lib/main/lockDetail/card/addCardType/addCardType_logic.dart index a0068189..af92363d 100755 --- a/lib/main/lockDetail/card/addCardType/addCardType_logic.dart +++ b/lib/main/lockDetail/card/addCardType/addCardType_logic.dart @@ -2,6 +2,7 @@ import 'package:get/get.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../appRouters.dart'; import '../../../../network/api_repository.dart'; @@ -11,6 +12,10 @@ import 'addCardType_state.dart'; class AddCardTypeLogic extends BaseGetXController{ AddCardTypeState state = AddCardTypeState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 添加卡数据 Future addCardData() async { int carType = 0; // 永久:1;限时2,单次3,循环:4 diff --git a/lib/main/lockDetail/card/addCardType/addCardType_page.dart b/lib/main/lockDetail/card/addCardType/addCardType_page.dart index 6ef366d4..a7d8c8cc 100755 --- a/lib/main/lockDetail/card/addCardType/addCardType_page.dart +++ b/lib/main/lockDetail/card/addCardType/addCardType_page.dart @@ -210,7 +210,7 @@ class _AddCardPageState extends State visible: state.weekdaysList.isNotEmpty, child: CommonItem( leftTitel: '有效日'.tr, - rightTitle: state.weekdaysList.value.join(',').toString(), + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart b/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart index 9f6a85c7..012ca8b6 100755 --- a/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart +++ b/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -7,6 +6,7 @@ import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart'; @@ -19,15 +19,22 @@ import '../../../../tools/dateTool.dart'; import '../../../../tools/storage.dart'; import 'cardDetail_state.dart'; -class CardDetailLogic extends BaseGetXController{ +class CardDetailLogic extends BaseGetXController { CardDetailState state = CardDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 监听设备返回的数据 late StreamSubscription _replySubscription; + void _initReplySubscription() { - _replySubscription = EventBusManager().eventBus!.on().listen((Reply reply) async { + _replySubscription = + EventBusManager().eventBus!.on().listen((Reply reply) async { // 添加卡片开始(重置锁里面所有卡) - if((reply is SenderAddICCardWithTimeCycleCoercionReply) && (state.ifCurrentScreen.value == true)) { + if ((reply is SenderAddICCardWithTimeCycleCoercionReply) && + (state.ifCurrentScreen.value == true)) { _replyAddICCardBegin(reply); } }); @@ -37,23 +44,26 @@ class CardDetailLogic extends BaseGetXController{ Future _replyAddICCardBegin(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 cancelBlueConnetctToastTimer(); dismissEasyLoading(); - if(state.isDeletCard.value == true){ + if (state.isDeletCard.value == true) { deletICCardData(); - }else{ + } else { editICCardData(); } break; case 0x06: //无权限 - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); - final List? signKey = await Storage.getStringList(saveBlueSignKey); + final List? signKey = + await Storage.getStringList(saveBlueSignKey); final List signKeyDataList = changeStringListToIntList(signKey!); final List token = reply.data.sublist(5, 9); @@ -61,25 +71,29 @@ class CardDetailLogic extends BaseGetXController{ Storage.setStringList(saveBlueToken, saveStrList); IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( - keyID:state.keyId.value.toString(), - userID:await Storage.getUid(), - cardNo:int.parse(state.typeNumber.value), - useCountLimit:0xffff, - operate:state.isDeletCard.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 - isAdmin:state.isAdministrator.value == true ? 1 : 0, - isForce:state.isStressCard.value == true ? 1 : 0, // 是否是胁迫 - isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 - weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 - startDate: int.parse(state.startDate.value)~/1000, - endDate: int.parse(state.endDate.value)~/1000, - startTime:DateTool().dateToHNString(state.starTime.value), - endTime:DateTool().dateToHNString(state.endTime.value), - needAuthor:1, - signKey:signKeyDataList, - privateKey:getPrivateKeyList, - token: token, - isBeforeAddUser: false - ); + keyID: state.keyId.value.toString(), + userID: await Storage.getUid(), + cardNo: int.parse(state.typeNumber.value), + useCountLimit: 0xffff, + operate: state.isDeletCard.value ? 2 : 1, + // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin: state.isAdministrator.value == true ? 1 : 0, + isForce: state.isStressCard.value == true ? 1 : 0, + // 是否是胁迫 + isRound: state.keyType.value == 4 ? 1 : 0, + // 是否是循环 + weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber( + state.weekDay.value), + // 周循环 + startDate: int.parse(state.startDate.value) ~/ 1000, + endDate: int.parse(state.endDate.value) ~/ 1000, + startTime: DateTool().dateToHNString(state.starTime.value), + endTime: DateTool().dateToHNString(state.endTime.value), + needAuthor: 1, + signKey: signKeyDataList, + privateKey: getPrivateKeyList, + token: token, + isBeforeAddUser: false); break; default: //失败 @@ -89,52 +103,61 @@ class CardDetailLogic extends BaseGetXController{ // 添加卡片 Future senderAddICCard() async { - if(state.sureBtnState.value == 1){ + if (state.sureBtnState.value == 1) { return; } state.sureBtnState.value = 1; showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { - if (deviceConnectionState == BluetoothConnectionState.connected){ - final List? signKey = await Storage.getStringList(saveBlueSignKey); + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState deviceConnectionState) async { + if (deviceConnectionState == BluetoothConnectionState.connected) { + final List? signKey = + await Storage.getStringList(saveBlueSignKey); final List signKeyDataList = changeStringListToIntList(signKey!); - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( - keyID:state.keyId.value.toString(), - userID:await Storage.getUid(), - cardNo:int.parse(state.typeNumber.value), - useCountLimit:0xffff, - operate:state.isDeletCard.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 - isAdmin:state.isAdministrator.value == true ? 1 : 0, - isForce:state.isStressCard.value == true ? 1 : 0, // 是否是胁迫 - isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 - weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 - startDate: int.parse(state.startDate.value)~/1000, - endDate: int.parse(state.endDate.value)~/1000, - startTime:DateTool().dateToHNString(state.starTime.value), - endTime:DateTool().dateToHNString(state.endTime.value), - needAuthor:1, - signKey:signKeyDataList, - privateKey:getPrivateKeyList, - token: getTokenList, - isBeforeAddUser: false - ); - } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { + keyID: state.keyId.value.toString(), + userID: await Storage.getUid(), + cardNo: int.parse(state.typeNumber.value), + useCountLimit: 0xffff, + operate: state.isDeletCard.value ? 2 : 1, + // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin: state.isAdministrator.value == true ? 1 : 0, + isForce: state.isStressCard.value == true ? 1 : 0, + // 是否是胁迫 + isRound: state.keyType.value == 4 ? 1 : 0, + // 是否是循环 + weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber( + state.weekDay.value), + // 周循环 + startDate: int.parse(state.startDate.value) ~/ 1000, + endDate: int.parse(state.endDate.value) ~/ 1000, + startTime: DateTool().dateToHNString(state.starTime.value), + endTime: DateTool().dateToHNString(state.endTime.value), + needAuthor: 1, + signKey: signKeyDataList, + privateKey: getPrivateKeyList, + token: getTokenList, + isBeforeAddUser: false); + } else if (deviceConnectionState == + BluetoothConnectionState.disconnected) { dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -142,7 +165,7 @@ class CardDetailLogic extends BaseGetXController{ } // 编辑iC卡 - Future editICCardData() async{ + Future editICCardData() async { final LoginEntity entity = await ApiRepository.to.editICCardData( cardId: state.keyId.value.toString(), lockId: state.fingerprintItemData.value.lockId.toString(), @@ -154,39 +177,40 @@ class CardDetailLogic extends BaseGetXController{ changeType: '1', startTime: int.parse(state.starTime.value), endTime: int.parse(state.endTime.value), - cardType:state.keyType.value, + cardType: state.keyType.value, cardRight: state.isAdministrator.value ? 1 : 0, ); - if(entity.errorCode!.codeIsSuccessful){ - showToast('修改成功'.tr, something: (){ + if (entity.errorCode!.codeIsSuccessful) { + showToast('修改成功'.tr, something: () { eventBus.fire(OtherTypeRefreshListEvent()); }); } } // 删除IC卡 - Future deletICCardData() async{ + Future deletICCardData() async { final LoginEntity entity = await ApiRepository.to.deletIcCardData( cardId: state.fingerprintItemData.value.cardId.toString(), lockId: state.fingerprintItemData.value.lockId.toString(), type: '0', - deleteType:'1' - ); - if(entity.errorCode!.codeIsSuccessful){ - showToast('删除成功'.tr, something: (){ + deleteType: '1'); + if (entity.errorCode!.codeIsSuccessful) { + showToast('删除成功'.tr, something: () { Get.back(result: 'addScuess'); }); } } - String getKeyTypeShowDateTime(){ + String getKeyTypeShowDateTime() { String useDateStr = ''; - if(state.keyType.value == 1){ + if (state.keyType.value == 1) { useDateStr = '永久'.tr; - }else if(state.keyType.value == 2){ - useDateStr = '${DateTool().dateToYMDHNString(state.startDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}'; - } else if(state.keyType.value == 4){ - useDateStr = '${DateTool().dateToYMDString(state.startDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}'; + } else if (state.keyType.value == 2) { + useDateStr = + '${DateTool().dateToYMDHNString(state.startDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}'; + } else if (state.keyType.value == 4) { + useDateStr = + '${DateTool().dateToYMDString(state.startDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}'; } return useDateStr; } @@ -204,5 +228,4 @@ class CardDetailLogic extends BaseGetXController{ _replySubscription.cancel(); } - -} \ No newline at end of file +} diff --git a/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart b/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart index 96166bd2..316a1bde 100755 --- a/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart +++ b/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart @@ -110,7 +110,7 @@ class _CardDetailPageState extends State with RouteAware { visible: state.keyType.value == 4, child: Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.effectiveDay!.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart index 1bc06968..4436d5f8 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart @@ -14,6 +14,7 @@ import '../../../../../tools/commonDataManage.dart'; import '../../../../../tools/custom_bottom_sheet.dart'; import '../../../../../tools/dateTool.dart'; import '../../../../../tools/eventBusEventManage.dart'; +import '../../../../../tools/pickers/time_picker/time_utils.dart'; import '../../../../../tools/showTipView.dart'; import '../../../lockOperatingRecord/keyOperationRecord_entity.dart'; @@ -22,6 +23,10 @@ typedef BlockIsHaveAllDataCallback = void Function(bool isAllData); class ElectronicKeyDetailLogic extends BaseGetXController { final ElectronicKeyDetailState state = ElectronicKeyDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + //修改钥匙名称请求 Future modifyKeyNameRequest() async { if (state.changeNameController.text.isEmpty) { diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart index 0df58a34..1da7b39a 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart @@ -147,7 +147,7 @@ class _ElectronicKeyDetailPageState extends State { visible: state.keyType.value == 4 ? true : false, child: Obx(() => CommonItem( leftTitel: '有效日'.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_logic.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_logic.dart index ebf47281..10679722 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_logic.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_logic.dart @@ -1,5 +1,6 @@ import 'package:get/get.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../../common/XSConstantMacro/XSConstantMacro.dart'; import '../../../../../network/api_repository.dart'; import '../../../../../tools/dateTool.dart'; @@ -9,6 +10,10 @@ import 'massSendElectronicKey_state.dart'; class MassSendElectronicKeyLogic extends BaseGetXController { MassSendElectronicKeyState state = MassSendElectronicKeyState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + //群发钥匙检查 Future massKeyChecksRequest() async { String getFailureDateTime = '0'; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart index 2495cec2..43a09b90 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart @@ -176,7 +176,7 @@ class _MassSendElectronicKeyPageState extends State { ), CommonItem( leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr, - rightTitle: "", + rightTitle: '', isHaveLine: true, isHaveRightWidget: true, isHaveDirection: true, @@ -261,7 +261,7 @@ class _MassSendElectronicKeyPageState extends State { children: [ CommonItem( leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr, - rightTitle: "", + rightTitle: '', isHaveRightWidget: true, rightWidget: SizedBox(width: 60.w, height: 50.h, child: _switch()), action: () {}), @@ -276,7 +276,7 @@ class _MassSendElectronicKeyPageState extends State { children: [ Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, - rightTitle: "${state.beginTime.value}\n${state.endTime.value}", + rightTitle: '${state.beginTime.value}\n${state.endTime.value}', isHaveDirection: true, isHaveLine: true, action: () async { @@ -297,10 +297,10 @@ class _MassSendElectronicKeyPageState extends State { } })), Obx(() => Visibility( - visible: state.weekdaysList.isNotEmpty ? true : false, + visible: state.weekdaysList.isNotEmpty, child: CommonItem( - leftTitel: "有效日".tr, - rightTitle: state.weekdaysList.value.join(",").toString(), + leftTitel: '有效日'.tr, + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { @@ -323,9 +323,9 @@ class _MassSendElectronicKeyPageState extends State { Obx(() => Visibility( visible: state.effectiveDateTime.value.isNotEmpty, child: CommonItem( - leftTitel: "有效时间".tr, + leftTitel: '有效时间'.tr, rightTitle: - "${state.effectiveDateTime.value}-${state.failureDateTime.value}", + '${state.effectiveDateTime.value}-${state.failureDateTime.value}', isHaveDirection: true, action: () async { var result = await Get.toNamed( diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart index d5974e16..5d49209f 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart @@ -6,12 +6,13 @@ import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/author import 'package:star_lock/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart'; import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart'; import 'package:star_lock/network/api_repository.dart'; -import 'package:star_lock/tools/regularExpression.dart'; -import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/commonDataManage.dart'; import 'package:star_lock/tools/dateTool.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; +import 'package:star_lock/tools/regularExpression.dart'; +import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/showTipView.dart'; import 'package:star_lock/tools/storage.dart'; @@ -20,6 +21,10 @@ class SendElectronicKeyViewLogic extends BaseGetXController { String type; final SendElectronicKeyViewState state = SendElectronicKeyViewState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + @override void onInit() { super.onInit(); diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart index 40473e16..654cc2df 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart @@ -257,7 +257,7 @@ class _SendElectronicKeyViewState extends State visible: logic.state.weekdaysList.isNotEmpty, child: CommonItem( leftTitel: '有效日'.tr, - rightTitle: logic.state.weekdaysList.join(',').toString(), + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/face/addFaceType/addFaceType_logic.dart b/lib/main/lockDetail/face/addFaceType/addFaceType_logic.dart index 6cac090b..1191ac29 100755 --- a/lib/main/lockDetail/face/addFaceType/addFaceType_logic.dart +++ b/lib/main/lockDetail/face/addFaceType/addFaceType_logic.dart @@ -3,12 +3,17 @@ import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/face/addFaceType/addFaceType_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../appRouters.dart'; import '../../../../network/api_repository.dart'; class AddFaceTypeLogic extends BaseGetXController { AddFaceTypeState state = AddFaceTypeState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 添加指纹 Future addFaceData() async { int faceType = 0; // 永久:1;限时2,单次3,循环:4 diff --git a/lib/main/lockDetail/face/addFaceType/addFaceType_page.dart b/lib/main/lockDetail/face/addFaceType/addFaceType_page.dart index b89f68fe..5d57651f 100755 --- a/lib/main/lockDetail/face/addFaceType/addFaceType_page.dart +++ b/lib/main/lockDetail/face/addFaceType/addFaceType_page.dart @@ -209,7 +209,7 @@ class _AddFaceTypePageState extends State with SingleTickerProv visible: state.weekdaysList.isNotEmpty, child: CommonItem( leftTitel: '有效日'.tr, - rightTitle: state.weekdaysList.value.join(',').toString(), + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart index 774e722f..8e34d8e9 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart @@ -2,12 +2,11 @@ import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; -import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/blue/io_protocol/io_addFace.dart'; -import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/main/lockDetail/face/faceDetail/faceDetail_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; @@ -19,6 +18,10 @@ import '../../../../tools/storage.dart'; class FaceDetailLogic extends BaseGetXController { FaceDetailState state = FaceDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 获取解析后的数据 late StreamSubscription _replySubscription; void _initReplySubscription() { diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart index 577361ba..1e596979 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart @@ -111,10 +111,10 @@ class _FaceDetailPageState extends State with RouteAware { } }))), Obx(() => Visibility( - visible: state.keyType.value == 4 ? true : false, + visible: state.keyType.value == 4, child: Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.effectiveDay!.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart index 7676df86..caff99d5 100755 --- a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart +++ b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart @@ -2,6 +2,7 @@ import 'package:get/get.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../appRouters.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/dateTool.dart'; @@ -10,6 +11,10 @@ import 'addFingerprintType_state.dart'; class AddFingerprintTypeLogic extends BaseGetXController{ AddFingerprintState state = AddFingerprintState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 添加指纹 Future addFingerprintsData() async { int fingerprintType = 0; // 永久:1;限时2,单次3,循环:4 diff --git a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart index 3f771e6f..b2d10259 100755 --- a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart +++ b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart @@ -202,7 +202,7 @@ class _AddFingerprintTypePageState extends State with Si visible: state.weekdaysList.isNotEmpty, child: CommonItem( leftTitel: '有效日'.tr, - rightTitle: state.weekdaysList.value.join(',').toString(), + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart b/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart index a27dde10..7d70c18c 100755 --- a/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart +++ b/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart @@ -5,6 +5,7 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart'; import '../../../../blue/io_reply.dart'; @@ -20,6 +21,10 @@ import 'fingerprintDetail_state.dart'; class FingerprintDetailLogic extends BaseGetXController{ FingerprintDetailState state = FingerprintDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 获取解析后的数据 late StreamSubscription _replySubscription; void _initReplySubscription() { diff --git a/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart b/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart index f6d80e57..28914bf4 100755 --- a/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart +++ b/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart @@ -115,10 +115,10 @@ class _FingerprintDetailPageState extends State } }))), Obx(() => Visibility( - visible: state.keyType.value == 4 ? true : false, + visible: state.keyType.value == 4, child: Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.effectiveDay!.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart b/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart index dd52ec5c..2efdbdb7 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart @@ -2,12 +2,17 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/iris/addIrisType/addIrisType_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../appRouters.dart'; import '../../../../network/api_repository.dart'; class AddIrisTypeLogic extends BaseGetXController { AddIrisTypeState state = AddIrisTypeState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 添加虹膜 void addIrisData() async { var irisType = 0; // 永久:1;限时2,单次3,循环:4 diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart b/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart index 582b126a..42011cb3 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart @@ -57,14 +57,14 @@ class _AddIrisTypePageState extends State { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { - if (state.selectType.value == "1") { + if (state.selectType.value == '1') { state.beginTime.value = DateTool().dateToYMDHNString( DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间 state.endTime.value = DateTool().dateToYMDHNString( DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间 } else { - state.beginTime.value = ""; //默认为当前时间 - state.endTime.value = ""; //默认为当前时间 + state.beginTime.value = ''; //默认为当前时间 + state.endTime.value = ''; //默认为当前时间 } }); } @@ -126,7 +126,7 @@ class _AddIrisTypePageState extends State { Container(height: 10.h), CommonItem( leftTitel: titleStr, - rightTitle: "", + rightTitle: '', isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), Container(height: 10.h), @@ -174,7 +174,7 @@ class _AddIrisTypePageState extends State { children: [ Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, - rightTitle: "${state.beginTime.value}\n${state.endTime.value}", + rightTitle: '${state.beginTime.value}\n${state.endTime.value}', isHaveDirection: true, isHaveLine: true, action: () async { @@ -197,8 +197,8 @@ class _AddIrisTypePageState extends State { Obx(() => Visibility( visible: state.weekdaysList.isNotEmpty ? true : false, child: CommonItem( - leftTitel: "有效日", - rightTitle: state.weekdaysList.value.join(",").toString(), + leftTitel: '有效日'.tr, + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { @@ -221,9 +221,9 @@ class _AddIrisTypePageState extends State { Obx(() => Visibility( visible: state.effectiveDateTime.value.isNotEmpty, child: CommonItem( - leftTitel: "有效时间".tr, + leftTitel: '有效时间'.tr, rightTitle: - "${state.effectiveDateTime.value}-${state.failureDateTime.value}", + '${state.effectiveDateTime.value}-${state.failureDateTime.value}', isHaveDirection: true, action: () async { var result = await Get.toNamed(Routers.seletKeyCyclicDatePage, @@ -255,8 +255,8 @@ class _AddIrisTypePageState extends State { ? true : false, child: CommonItem( - leftTitel: "是否为管理员".tr, - rightTitle: "", + leftTitel: '是否为管理员'.tr, + rightTitle: '', isTipsImg: false, isHaveRightWidget: true, rightWidget: SizedBox( @@ -268,13 +268,13 @@ class _AddIrisTypePageState extends State { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { if (state.nameController.text.isEmpty) { - logic.showToast("请输入姓名"); + logic.showToast('请输入姓名'); return; } logic.checkIrisNameDuplicated(state.nameController.text); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast("演示模式"); + logic.showToast('演示模式'); } }), ], diff --git a/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart b/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart index e5309102..2a31cd67 100755 --- a/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart +++ b/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart @@ -6,6 +6,7 @@ import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/main/lockDetail/iris/irisDetail/irisDetail_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; // import '../../../../blue/io_protocol/io_addICCard.dart'; @@ -20,6 +21,10 @@ import '../../../../tools/storage.dart'; class IrisDetailLogic extends BaseGetXController { IrisDetailState state = IrisDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 监听设备返回的数据 late StreamSubscription _replySubscription; void _initReplySubscription() { diff --git a/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart b/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart index efe540ba..05bd6edf 100755 --- a/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart +++ b/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart @@ -108,7 +108,7 @@ class _CardDetailPageState extends State with RouteAware { visible: state.keyType.value == 4 ? true : false, child: Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.effectiveDay!.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { diff --git a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart index e7c68916..27b818b7 100755 --- a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart +++ b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart @@ -1,21 +1,31 @@ - import 'dart:async'; import 'package:star_lock/app_settings/app_settings.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../../tools/baseGetXController.dart'; import '../../../../../tools/eventBusEventManage.dart'; import '../../lockSet/lockSet_logic.dart'; import 'basicInformation_state.dart'; -class BasicInformationLogic extends BaseGetXController{ +class BasicInformationLogic extends BaseGetXController { final BasicInformationState state = BasicInformationState(); + List get weekDayStr { + return state.lockBasicInfo.value.weekDays + ?.map((e) => TimeUtils.translateWeekday(e)) + .toList() ?? + []; + } + // 下级界面修改成功后传递数据 StreamSubscription? _passCurrentLockInformationEvent; + void initLoadDataAction(BlockSetStateCallback blockSetStateCallback) { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus - _passCurrentLockInformationEvent = eventBus.on().listen((PassCurrentLockInformationEvent event) { + _passCurrentLockInformationEvent = eventBus + .on() + .listen((PassCurrentLockInformationEvent event) { state.lockSetInfoData.value = event.lockSetInfoData; blockSetStateCallback(); }); @@ -25,7 +35,8 @@ class BasicInformationLogic extends BaseGetXController{ void onReady() { super.onReady(); - AppLog.log('厂商 vendor:${state.lockBasicInfo.value.vendor} 型号 model:${state.lockBasicInfo.value.model}'); + AppLog.log( + '厂商 vendor:${state.lockBasicInfo.value.vendor} 型号 model:${state.lockBasicInfo.value.model}'); } @override @@ -33,5 +44,4 @@ class BasicInformationLogic extends BaseGetXController{ super.onClose(); _passCurrentLockInformationEvent?.cancel(); } - -} \ No newline at end of file +} diff --git a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_page.dart b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_page.dart index df445e77..1950a415 100755 --- a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_page.dart +++ b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_page.dart @@ -89,7 +89,7 @@ class _BasicInformationPageState extends State { visible: (state.lockBasicInfo.value.keyType ?? 0) == 4, child: CommonItem( leftTitel: '有效日'.tr, - rightTitle: (state.lockBasicInfo.value.weekDays ?? []).join(',').toString(), + rightTitle: logic.weekDayStr.join(',').toString(), allHeight: 70.h, isHaveLine: true), )), diff --git a/lib/main/lockDetail/palm/addPalmType/addPalmType_logic.dart b/lib/main/lockDetail/palm/addPalmType/addPalmType_logic.dart index e8d658b8..3df980d6 100755 --- a/lib/main/lockDetail/palm/addPalmType/addPalmType_logic.dart +++ b/lib/main/lockDetail/palm/addPalmType/addPalmType_logic.dart @@ -2,12 +2,17 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/palm/addPalmType/addPalmType_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../appRouters.dart'; import '../../../../network/api_repository.dart'; class AddPalmTypeLogic extends BaseGetXController { AddPalmTypeState state = AddPalmTypeState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 添加指纹 void addPalmData() async { var palmType = 0; // 永久:1;限时2,单次3,循环:4 diff --git a/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart b/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart index 9fa34e10..7941ee1d 100755 --- a/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart +++ b/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart @@ -57,14 +57,14 @@ class _AddPalmTypePageState extends State { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { - if (state.selectType.value == "1") { + if (state.selectType.value == '1') { state.beginTime.value = DateTool().dateToYMDHNString( DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间 state.endTime.value = DateTool().dateToYMDHNString( DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间 } else { - state.beginTime.value = ""; //默认为当前时间 - state.endTime.value = ""; //默认为当前时间 + state.beginTime.value = ''; //默认为当前时间 + state.endTime.value = ''; //默认为当前时间 } }); } @@ -126,7 +126,7 @@ class _AddPalmTypePageState extends State { Container(height: 10.h), CommonItem( leftTitel: titleStr, - rightTitle: "", + rightTitle: '', isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), Container(height: 10.h), @@ -174,7 +174,7 @@ class _AddPalmTypePageState extends State { children: [ Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, - rightTitle: "${state.beginTime.value}\n${state.endTime.value}", + rightTitle: '${state.beginTime.value}\n${state.endTime.value}', isHaveDirection: true, isHaveLine: true, action: () async { @@ -195,10 +195,10 @@ class _AddPalmTypePageState extends State { } })), Obx(() => Visibility( - visible: state.weekdaysList.isNotEmpty ? true : false, + visible: state.weekdaysList.isNotEmpty, child: CommonItem( - leftTitel: "有效日", - rightTitle: state.weekdaysList.value.join(",").toString(), + leftTitel: '有效日'.tr, + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { @@ -221,9 +221,9 @@ class _AddPalmTypePageState extends State { Obx(() => Visibility( visible: state.effectiveDateTime.value.isNotEmpty, child: CommonItem( - leftTitel: "有效时间".tr, + leftTitel: '有效时间'.tr, rightTitle: - "${state.effectiveDateTime.value}-${state.failureDateTime.value}", + '${state.effectiveDateTime.value}-${state.failureDateTime.value}', isHaveDirection: true, action: () async { var result = await Get.toNamed(Routers.seletKeyCyclicDatePage, @@ -255,8 +255,8 @@ class _AddPalmTypePageState extends State { ? true : false, child: CommonItem( - leftTitel: "是否为管理员".tr, - rightTitle: "", + leftTitel: '是否为管理员'.tr, + rightTitle: '', isTipsImg: false, isHaveRightWidget: true, rightWidget: SizedBox( @@ -268,13 +268,13 @@ class _AddPalmTypePageState extends State { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { if (state.nameController.text.isEmpty) { - logic.showToast("请输入姓名"); + logic.showToast('请输入姓名'); return; } logic.checkPalmNameDuplicated(state.nameController.text); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast("演示模式"); + logic.showToast('演示模式'); } }), ], diff --git a/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart b/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart index c92a3a67..771f6f55 100755 --- a/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart +++ b/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart @@ -6,13 +6,12 @@ import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/main/lockDetail/palm/palmDetail/palmDetail_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; -// import '../../../../blue/io_protocol/io_addICCard.dart'; import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; -import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/dateTool.dart'; import '../../../../tools/storage.dart'; @@ -20,6 +19,10 @@ import '../../../../tools/storage.dart'; class PalmDetailLogic extends BaseGetXController { PalmDetailState state = PalmDetailState(); + List get weekDayStr { + return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + // 监听设备返回的数据 late StreamSubscription _replySubscription; void _initReplySubscription() { diff --git a/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart b/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart index 2bcc2ac0..b7865dfc 100755 --- a/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart +++ b/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart @@ -34,14 +34,14 @@ class _PalmDetailPageState extends State with RouteAware { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: "手掌详情", + barTitle: '手掌详情', haveBack: true, backgroundColor: AppColors.mainColor, ), body: ListView( children: [ Obx(() => CommonItem( - leftTitel: "手掌号", + leftTitel: '手掌号', rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), @@ -72,14 +72,14 @@ class _PalmDetailPageState extends State with RouteAware { var data = await Get.toNamed( Routers.otherTypeKeyChangeDatePage, arguments: { - "pushType": 0, - "fingerprintItemData": + 'pushType': 0, + 'fingerprintItemData': state.fingerprintItemData.value, }); if (data != null) { setState(() { - state.starDate.value = data["beginTimeTimestamp"]; - state.endDate.value = data["endTimeTimestamp"]; + state.starDate.value = data['beginTimeTimestamp']; + state.endDate.value = data['endTimeTimestamp']; state.keyType.value = 2; }); } @@ -88,68 +88,68 @@ class _PalmDetailPageState extends State with RouteAware { var data = await Get.toNamed( Routers.otherTypeKeyChangeValidityDatePage, arguments: { - "pushType": 0, - "fingerprintItemData": + 'pushType': 0, + 'fingerprintItemData': state.fingerprintItemData.value, }); if (data != null) { setState(() { - state.starDate.value = data["starDate"]; - state.endDate.value = data["endDate"]; - state.starTime.value = data["starTime"]; - state.endTime.value = data["endTime"]; - state.weekDay.value = data["weekDay"]; + state.starDate.value = data['starDate']; + state.endDate.value = data['endDate']; + state.starTime.value = data['starTime']; + state.endTime.value = data['endTime']; + state.weekDay.value = data['weekDay']; }); } } }))), Obx(() => Visibility( - visible: state.keyType.value == 4 ? true : false, + visible: state.keyType.value == 4 , child: Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.effectiveDay!.tr, - rightTitle: state.weekDay.value.join(','), + rightTitle: logic.weekDayStr.join(','), isHaveDirection: true, isHaveLine: true, action: () async { var data = await Get.toNamed( Routers.otherTypeKeyChangeValidityDatePage, arguments: { - "pushType": 0, - "fingerprintItemData": + 'pushType': 0, + 'fingerprintItemData': state.fingerprintItemData.value, }); if (data != null) { setState(() { - state.starDate.value = data["starDate"]; - state.endDate.value = data["endDate"]; - state.starTime.value = data["starTime"]; - state.endTime.value = data["endTime"]; - state.weekDay.value = data["weekDay"]; + state.starDate.value = data['starDate']; + state.endDate.value = data['endDate']; + state.starTime.value = data['starTime']; + state.endTime.value = data['endTime']; + state.weekDay.value = data['weekDay']; }); } })))), Obx(() => Visibility( visible: state.keyType.value == 4 ? true : false, child: Obx(() => CommonItem( - leftTitel: "有效时间", + leftTitel: '有效时间', rightTitle: - "${DateTool().dateToHNString(state.starTime.value)}-${DateTool().dateToHNString(state.endTime.value)}", + '${DateTool().dateToHNString(state.starTime.value)}-${DateTool().dateToHNString(state.endTime.value)}', isHaveDirection: true, action: () async { var data = await Get.toNamed( Routers.otherTypeKeyChangeValidityDatePage, arguments: { - "pushType": 0, - "fingerprintItemData": + 'pushType': 0, + 'fingerprintItemData': state.fingerprintItemData.value, }); if (data != null) { setState(() { - state.starDate.value = data["starDate"]; - state.endDate.value = data["endDate"]; - state.starTime.value = data["starTime"]; - state.endTime.value = data["endTime"]; - state.weekDay.value = data["validityValue"]; + state.starDate.value = data['starDate']; + state.endDate.value = data['endDate']; + state.starTime.value = data['starTime']; + state.endTime.value = data['endTime']; + state.weekDay.value = data['validityValue']; }); } })))), @@ -166,7 +166,7 @@ class _PalmDetailPageState extends State with RouteAware { SizedBox(height: 10.h), CommonItem( leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, - rightTitle: "", + rightTitle: '', isHaveDirection: true, action: () { // Get.toNamed(Routers.keyOperationRecordPage, arguments: { @@ -199,11 +199,11 @@ class _PalmDetailPageState extends State with RouteAware { return ShowTFView( title: "${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.name!.tr}", - tipTitle: "", + tipTitle: '', controller: state.changeNameController, sureClick: () { if (state.changeNameController.text.isEmpty) { - logic.showToast("请输入姓名"); + logic.showToast('请输入姓名'); return; } Get.back(); @@ -222,8 +222,8 @@ class _PalmDetailPageState extends State with RouteAware { context: context, builder: (BuildContext context) { return ShowIosTipView( - title: "提示", - tipTitle: "确定要删除吗?", + title: '提示', + tipTitle: '确定要删除吗?', sureClick: () async { Get.back(); String? idStr = await Storage.getUid(); diff --git a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart index bfc15647..e6fb21da 100755 --- a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart +++ b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart @@ -355,7 +355,7 @@ class _PasswordKeyPerpetualPageState extends State return Column( children: [ CommonItem( - leftTitel: '有效日', + leftTitel: '有效日'.tr, rightTitle: state.loopModeStr.value, isHaveLine: true, isHaveDirection: true, diff --git a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart index 0ee20ef7..07161d66 100755 --- a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart +++ b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart @@ -1,11 +1,16 @@ import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import 'addRemoteControl_state.dart'; class AddRemoteControlLoigc extends BaseGetXController{ AddRemoteControlState state = AddRemoteControlState(); + List get weekDayStr { + return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList(); + } + @override void onInit() { diff --git a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart index 9ea0ffc5..5145000f 100755 --- a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart +++ b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart @@ -130,7 +130,7 @@ class _AddRemoteControlPageState extends State children: [ CommonItem( leftTitel: titleStr, - rightTitle: "", + rightTitle: '', isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), Container(height: 10.h), @@ -161,8 +161,8 @@ class _AddRemoteControlPageState extends State rightTitle: state.timeLimitEndTime.value, isHaveDirection: true, action: () { - PDuration selectDate = - PDuration.parse(DateTime.tryParse(state.timeLimitEndTime.value)); + PDuration selectDate = PDuration.parse( + DateTime.tryParse(state.timeLimitEndTime.value)); Pickers.showDatePicker(context, selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (p) { state.timeLimitEndTime.value = @@ -181,7 +181,7 @@ class _AddRemoteControlPageState extends State Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, rightTitle: - "${state.cycleBeginTime.value}\n${state.cycleEndTime.value}", + '${state.cycleBeginTime.value}\n${state.cycleEndTime.value}', isHaveDirection: true, isHaveLine: true, action: () async { @@ -202,10 +202,10 @@ class _AddRemoteControlPageState extends State } })), Obx(() => Visibility( - visible: state.weekdaysList.isNotEmpty ? true : false, + visible: state.weekdaysList.isNotEmpty, child: CommonItem( - leftTitel: "有效日".tr, - rightTitle: state.weekdaysList.value.join(",").toString(), + leftTitel: '有效日'.tr, + rightTitle: logic.weekDayStr.join(',').toString(), isHaveDirection: true, isHaveLine: true, action: () async { @@ -228,9 +228,9 @@ class _AddRemoteControlPageState extends State Obx(() => Visibility( visible: state.effectiveDateTime.value.isNotEmpty, child: CommonItem( - leftTitel: "有效时间".tr, + leftTitel: '有效时间'.tr, rightTitle: - "${state.effectiveDateTime.value}-${state.failureDateTime.value}", + '${state.effectiveDateTime.value}-${state.failureDateTime.value}', isHaveDirection: true, action: () async { var result = await Get.toNamed(Routers.seletKeyCyclicDatePage, @@ -270,14 +270,14 @@ class _AddRemoteControlPageState extends State var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { if (state.nameController.text.isEmpty) { - logic.showToast("请输入姓名"); + logic.showToast('请输入姓名'); return; } - logic.showToast("请确保在设备附近"); + logic.showToast('请确保在设备附近'); // logic.addFingerprintsData(); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast("演示模式"); + logic.showToast('演示模式'); } }), ], @@ -307,7 +307,7 @@ class _AddRemoteControlPageState extends State height: 20.h, ), Text( - "操作成功,密码为", + '操作成功,密码为', style: TextStyle( fontSize: 32.sp, color: Colors.black, @@ -317,7 +317,7 @@ class _AddRemoteControlPageState extends State height: 10.h, ), Text( - "62689876", + '62689876', style: TextStyle( fontSize: 60.sp, color: Colors.black, @@ -423,15 +423,15 @@ class _AddRemoteControlPageState extends State } final List _itemTabs = [ - ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, selectType: "0"), - ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, selectType: "1"), + ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, selectType: '0'), + ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, selectType: '1'), ItemView( - title: TranslationLoader.lanKeys!.circulation!.tr, selectType: "2"), + title: TranslationLoader.lanKeys!.circulation!.tr, selectType: '2'), ]; final List _fromCheckInTypeItemTabs = [ - ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, selectType: "0"), - ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, selectType: "1"), + ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, selectType: '0'), + ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, selectType: '1'), ]; TabBar _tabBar() { diff --git a/lib/tools/pickers/time_picker/time_utils.dart b/lib/tools/pickers/time_picker/time_utils.dart index bcb183e7..bbe70a56 100755 --- a/lib/tools/pickers/time_picker/time_utils.dart +++ b/lib/tools/pickers/time_picker/time_utils.dart @@ -1,3 +1,5 @@ +import 'package:get/get_utils/get_utils.dart'; + class TimeUtils { /// 年 static List calcYears({int begin = 1900, int end = 2100}) => @@ -14,7 +16,7 @@ class TimeUtils { static List calcDay(int year, int month, {int begin = 1, int end = 31}) { begin = begin < 1 ? 1 : begin; - int days = _calcDateCount(year, month); + final int days = _calcDateCount(year, month); if (end > days) { end = days; } @@ -36,11 +38,15 @@ class TimeUtils { } static List _calcCount(begin, end) { - int length = end - begin + 1; - if (length == 0) return [begin]; - if (length < 0) return []; + final int length = end - begin + 1; + if (length == 0) { + return [begin]; + } + if (length < 0) { + return []; + } - return List.generate(length, (index) => begin + index); + return List.generate(length, (int index) => begin + index); } // 计算月份所对应天数 @@ -67,7 +73,22 @@ class TimeUtils { return (v < 10) ? "0$v" : "$v"; } - // String _checkStr(String v) { - // return v == null ? "" : v; - // } + + static String translateWeekday(int number,[int index=1]) { + final List weekDays = [ + '一'.tr, + '二'.tr, + '三'.tr, + '四'.tr, + '五'.tr, + '六'.tr, + '日'.tr + ]; + final String days = weekDays[number- index]; + return days; // + } + +// String _checkStr(String v) { +// return v == null ? "" : v; +// } }