feat:完成循环日期大写

This commit is contained in:
anfe 2024-06-01 17:25:55 +08:00
parent 487ff04a8d
commit d5db2db672
35 changed files with 381 additions and 248 deletions

View File

@ -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"
}

View File

@ -886,5 +886,12 @@
"请开启蓝牙":"请开启蓝牙",
"请选择有效日":"请选择有效日",
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
"已是最新版本": "已是最新版本"
"已是最新版本": "已是最新版本",
"一":"一",
"二":"二",
"三":"三",
"四":"四",
"五":"五",
"六":"六",
"日":"日"
}

View File

@ -856,5 +856,12 @@
"请开启蓝牙": "请开启蓝牙",
"请选择有效日": "请选择有效日",
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
"已是最新版本": "已是最新版本"
"已是最新版本": "已是最新版本",
"一": "一",
"二": "二",
"三": "三",
"四": "四",
"五": "五",
"六": "六",
"日": "日"
}

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
Future<void> addCardData() async {
int carType = 0; // :1;23:4

View File

@ -210,7 +210,7 @@ class _AddCardPageState extends State<AddCardPage>
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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
_replySubscription =
EventBusManager().eventBus!.on<Reply>().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<void> _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<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList =
changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
final List<String>? signKey =
await Storage.getStringList(saveBlueSignKey);
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
final List<int> 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<void> 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<String>? signKey = await Storage.getStringList(saveBlueSignKey);
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
final List<String>? signKey =
await Storage.getStringList(saveBlueSignKey);
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList =
changeStringListToIntList(privateKey!);
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> 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<void> editICCardData() async{
Future<void> 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<void> deletICCardData() async{
Future<void> 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();
}
}
}

View File

@ -110,7 +110,7 @@ class _CardDetailPageState extends State<CardDetailPage> 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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
Future<void> modifyKeyNameRequest() async {
if (state.changeNameController.text.isEmpty) {

View File

@ -147,7 +147,7 @@ class _ElectronicKeyDetailPageState extends State<ElectronicKeyDetailPage> {
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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
Future<void> massKeyChecksRequest() async {
String getFailureDateTime = '0';

View File

@ -176,7 +176,7 @@ class _MassSendElectronicKeyPageState extends State<MassSendElectronicKeyPage> {
),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr,
rightTitle: "",
rightTitle: '',
isHaveLine: true,
isHaveRightWidget: true,
isHaveDirection: true,
@ -261,7 +261,7 @@ class _MassSendElectronicKeyPageState extends State<MassSendElectronicKeyPage> {
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<MassSendElectronicKeyPage> {
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<MassSendElectronicKeyPage> {
}
})),
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<MassSendElectronicKeyPage> {
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(

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
@override
void onInit() {
super.onInit();

View File

@ -257,7 +257,7 @@ class _SendElectronicKeyViewState extends State<SendElectronicKeyView>
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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
Future<void> addFaceData() async {
int faceType = 0; // :1;23:4

View File

@ -209,7 +209,7 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> 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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {

View File

@ -111,10 +111,10 @@ class _FaceDetailPageState extends State<FaceDetailPage> 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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
Future<void> addFingerprintsData() async {
int fingerprintType = 0; // :1;23:4

View File

@ -202,7 +202,7 @@ class _AddFingerprintTypePageState extends State<AddFingerprintTypePage> 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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {

View File

@ -115,10 +115,10 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage>
}
}))),
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 {

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
void addIrisData() async {
var irisType = 0; // :1;23:4

View File

@ -57,14 +57,14 @@ class _AddIrisTypePageState extends State<AddIrisTypePage> {
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<AddIrisTypePage> {
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<AddIrisTypePage> {
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<AddIrisTypePage> {
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<AddIrisTypePage> {
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<AddIrisTypePage> {
? true
: false,
child: CommonItem(
leftTitel: "是否为管理员".tr,
rightTitle: "",
leftTitel: '是否为管理员'.tr,
rightTitle: '',
isTipsImg: false,
isHaveRightWidget: true,
rightWidget: SizedBox(
@ -268,13 +268,13 @@ class _AddIrisTypePageState extends State<AddIrisTypePage> {
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('演示模式');
}
}),
],

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {

View File

@ -108,7 +108,7 @@ class _CardDetailPageState extends State<CardDetailPage> 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 {

View File

@ -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<dynamic> get weekDayStr {
return state.lockBasicInfo.value.weekDays
?.map((e) => TimeUtils.translateWeekday(e))
.toList() ??
[];
}
//
StreamSubscription? _passCurrentLockInformationEvent;
void initLoadDataAction(BlockSetStateCallback blockSetStateCallback) {
// eventBus
_passCurrentLockInformationEvent = eventBus.on<PassCurrentLockInformationEvent>().listen((PassCurrentLockInformationEvent event) {
_passCurrentLockInformationEvent = eventBus
.on<PassCurrentLockInformationEvent>()
.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();
}
}
}

View File

@ -89,7 +89,7 @@ class _BasicInformationPageState extends State<BasicInformationPage> {
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),
)),

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
void addPalmData() async {
var palmType = 0; // :1;23:4

View File

@ -57,14 +57,14 @@ class _AddPalmTypePageState extends State<AddPalmTypePage> {
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<AddPalmTypePage> {
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<AddPalmTypePage> {
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<AddPalmTypePage> {
}
})),
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<AddPalmTypePage> {
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<AddPalmTypePage> {
? true
: false,
child: CommonItem(
leftTitel: "是否为管理员".tr,
rightTitle: "",
leftTitel: '是否为管理员'.tr,
rightTitle: '',
isTipsImg: false,
isHaveRightWidget: true,
rightWidget: SizedBox(
@ -268,13 +268,13 @@ class _AddPalmTypePageState extends State<AddPalmTypePage> {
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('演示模式');
}
}),
],

View File

@ -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<dynamic> get weekDayStr {
return state.weekDay.map((e) => TimeUtils.translateWeekday(e)).toList();
}
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {

View File

@ -34,14 +34,14 @@ class _PalmDetailPageState extends State<PalmDetailPage> 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<PalmDetailPage> 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<PalmDetailPage> 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<PalmDetailPage> 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<PalmDetailPage> 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<PalmDetailPage> with RouteAware {
context: context,
builder: (BuildContext context) {
return ShowIosTipView(
title: "提示",
tipTitle: "确定要删除吗?",
title: '提示',
tipTitle: '确定要删除吗?',
sureClick: () async {
Get.back();
String? idStr = await Storage.getUid();

View File

@ -355,7 +355,7 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage>
return Column(
children: <Widget>[
CommonItem(
leftTitel: '有效日',
leftTitel: '有效日'.tr,
rightTitle: state.loopModeStr.value,
isHaveLine: true,
isHaveDirection: true,

View File

@ -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<dynamic> get weekDayStr {
return state.weekdaysList.map((e) => TimeUtils.translateWeekday(e)).toList();
}
@override
void onInit() {

View File

@ -130,7 +130,7 @@ class _AddRemoteControlPageState extends State<AddRemoteControlPage>
children: [
CommonItem(
leftTitel: titleStr,
rightTitle: "",
rightTitle: '',
isHaveRightWidget: true,
rightWidget: getTFWidget(rightTitle)),
Container(height: 10.h),
@ -161,8 +161,8 @@ class _AddRemoteControlPageState extends State<AddRemoteControlPage>
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<AddRemoteControlPage>
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<AddRemoteControlPage>
}
})),
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<AddRemoteControlPage>
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<AddRemoteControlPage>
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<AddRemoteControlPage>
height: 20.h,
),
Text(
"操作成功,密码为",
'操作成功,密码为',
style: TextStyle(
fontSize: 32.sp,
color: Colors.black,
@ -317,7 +317,7 @@ class _AddRemoteControlPageState extends State<AddRemoteControlPage>
height: 10.h,
),
Text(
"62689876",
'62689876',
style: TextStyle(
fontSize: 60.sp,
color: Colors.black,
@ -423,15 +423,15 @@ class _AddRemoteControlPageState extends State<AddRemoteControlPage>
}
final List<ItemView> _itemTabs = <ItemView>[
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<ItemView> _fromCheckInTypeItemTabs = <ItemView>[
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() {

View File

@ -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<String> weekDays = <String>[
''.tr,
''.tr,
''.tr,
''.tr,
''.tr,
''.tr,
''.tr
];
final String days = weekDays[number- index];
return days; //
}
// String _checkStr(String v) {
// return v == null ? "" : v;
// }
}