添加用户、密码、卡、指纹number改为2字节,添加是否是管理员功能
This commit is contained in:
parent
08de8f1fdf
commit
24fac59ac4
@ -21,6 +21,8 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
int? fingerNo;
|
||||
int? useCountLimit;
|
||||
int? isForce;
|
||||
int? operate;
|
||||
int? isAdmin;
|
||||
List<int>? token;
|
||||
int? isRound;
|
||||
int? weekRound;
|
||||
@ -38,6 +40,8 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
this.fingerNo,
|
||||
this.useCountLimit,
|
||||
this.isForce,
|
||||
this.operate,
|
||||
this.isAdmin,
|
||||
this.token,
|
||||
this.isRound,
|
||||
this.weekRound,
|
||||
@ -85,6 +89,14 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
// UseCountLimit
|
||||
subData.addAll(intChangList(useCountLimit!));
|
||||
|
||||
// Operate 0:注册 1:修改 2:删除 3:删除全部
|
||||
subData.add(operate!);
|
||||
AppLog.log("addFingerprint operate:$operate");
|
||||
|
||||
// isAdmin
|
||||
subData.add(isAdmin!);
|
||||
AppLog.log("addFingerprint isAdmin:$isAdmin");
|
||||
|
||||
// isForce
|
||||
subData.add(isForce!);
|
||||
|
||||
|
||||
@ -21,6 +21,8 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
int? cardNo;
|
||||
int? useCountLimit;
|
||||
int? isForce;
|
||||
int? operate;
|
||||
int? isAdmin;
|
||||
List<int>? token;
|
||||
int? isRound;
|
||||
int? weekRound;
|
||||
@ -38,6 +40,8 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
this.cardNo,
|
||||
this.useCountLimit,
|
||||
this.isForce,
|
||||
this.operate,
|
||||
this.isAdmin,
|
||||
this.token,
|
||||
this.isRound,
|
||||
this.weekRound,
|
||||
@ -80,13 +84,21 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol {
|
||||
|
||||
// cardNo
|
||||
subData.addAll(intChangList(cardNo!));
|
||||
AppLog.log("cardNo:$cardNo intChangList(cardNo!):${intChangList(cardNo!)}");
|
||||
|
||||
// UseCountLimit
|
||||
subData.addAll(intChangList(useCountLimit!));
|
||||
|
||||
// Operate 0:注册 1:修改 2:删除 3:删除全部
|
||||
subData.add(operate!);
|
||||
AppLog.log("addCard operate:$operate");
|
||||
|
||||
// isAdmin
|
||||
subData.add(isAdmin!);
|
||||
AppLog.log("addCard isAdmin:$isAdmin");
|
||||
|
||||
// isForce
|
||||
subData.add(isForce!);
|
||||
AppLog.log("addCard isForce:$isForce");
|
||||
|
||||
// token
|
||||
subData.addAll(token!);
|
||||
|
||||
@ -20,6 +20,8 @@ class SenderCustomPasswordsCommand extends SenderProtocol {
|
||||
String? keyID;
|
||||
String? userID;
|
||||
int? pwdNo;
|
||||
int? operate;
|
||||
int? isAdmin;
|
||||
String? pwd;
|
||||
int? useCountLimit;
|
||||
List<int>? token;
|
||||
@ -33,6 +35,8 @@ class SenderCustomPasswordsCommand extends SenderProtocol {
|
||||
this.keyID,
|
||||
this.userID,
|
||||
this.pwdNo,
|
||||
this.operate,
|
||||
this.isAdmin,
|
||||
this.pwd,
|
||||
this.useCountLimit,
|
||||
this.token,
|
||||
@ -75,6 +79,12 @@ class SenderCustomPasswordsCommand extends SenderProtocol {
|
||||
subData.addAll(intChangList(pwdNo!));
|
||||
AppLog.log("pwdNo:$pwdNo");
|
||||
|
||||
// Operate 0:注册 1:修改 2:删除 3:删除全部
|
||||
subData.add(operate!);
|
||||
|
||||
// isAdmin
|
||||
subData.add(isAdmin!);
|
||||
|
||||
// pwd 20
|
||||
int pwdLength = utf8.encode(pwd!).length;
|
||||
subData.addAll(utf8.encode(pwd!));
|
||||
|
||||
@ -5,7 +5,7 @@ import 'package:crypto/crypto.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
int listChangInt(List<int> list){
|
||||
int dataLen = (list[0] << 8) + list[61];
|
||||
int dataLen = (list[0] << 8) + list[1];
|
||||
return dataLen;
|
||||
}
|
||||
|
||||
|
||||
@ -280,13 +280,15 @@ class IoSenderManage {
|
||||
{required String? keyID,
|
||||
required String? userID,
|
||||
required int? pwdNo,
|
||||
required int? operate,
|
||||
required int? isAdmin,
|
||||
required String? pwd,
|
||||
required int? useCountLimit,
|
||||
required List<int>? token,
|
||||
required int? startTime,
|
||||
required int? endTime,
|
||||
required int? needAuthor,
|
||||
required bool? isBeforeAddUser,
|
||||
required bool? isBeforeAddUser,
|
||||
required List<int>? signKey,
|
||||
required List<int>? privateKey,
|
||||
CommandSendCallBack? callBack}) {
|
||||
@ -295,6 +297,8 @@ class IoSenderManage {
|
||||
keyID: keyID,
|
||||
userID: userID,
|
||||
pwdNo: pwdNo,
|
||||
operate: operate,
|
||||
isAdmin: isAdmin,
|
||||
pwd: pwd,
|
||||
useCountLimit: useCountLimit,
|
||||
token: token,
|
||||
@ -377,6 +381,8 @@ class IoSenderManage {
|
||||
required int? fingerNo,
|
||||
required int? useCountLimit,
|
||||
required int? isForce,
|
||||
required int? isAdmin,
|
||||
required int? operate,
|
||||
required List<int>? token,
|
||||
required int? isRound,
|
||||
required int? weekRound,
|
||||
@ -395,6 +401,8 @@ class IoSenderManage {
|
||||
fingerNo: fingerNo,
|
||||
useCountLimit: useCountLimit,
|
||||
isForce: isForce,
|
||||
operate: operate,
|
||||
isAdmin: isAdmin,
|
||||
token: token,
|
||||
isRound: isRound,
|
||||
weekRound: weekRound,
|
||||
@ -444,6 +452,8 @@ class IoSenderManage {
|
||||
required String? userID,
|
||||
required int? cardNo,
|
||||
required int? useCountLimit,
|
||||
required int? operate,
|
||||
required int? isAdmin,
|
||||
required int? isForce,
|
||||
required List<int>? token,
|
||||
required int? isRound,
|
||||
@ -462,6 +472,8 @@ class IoSenderManage {
|
||||
userID: userID,
|
||||
cardNo: cardNo,
|
||||
useCountLimit: useCountLimit,
|
||||
operate: operate,
|
||||
isAdmin: isAdmin,
|
||||
isForce: isForce,
|
||||
token: token,
|
||||
isRound: isRound,
|
||||
|
||||
@ -50,7 +50,9 @@ class AddICCardLogic extends BaseGetXController{
|
||||
switch(status){
|
||||
case 0x00:
|
||||
//成功
|
||||
var cardNumber = listChangInt(reply.data.sublist(9, 11)).toString();
|
||||
var cardNumberList = reply.data.sublist(reply.data.length - 2);
|
||||
var cardNumber = listChangInt(cardNumberList).toString();
|
||||
// AppLog.log("添加卡号:$cardNumberList cardNumber:$cardNumber");
|
||||
state.cardNumber.value = cardNumber.toString();
|
||||
cancelBlueConnetctToastTimer();
|
||||
state.ifConnectScuess.value = true;
|
||||
@ -69,13 +71,16 @@ class AddICCardLogic extends BaseGetXController{
|
||||
var token = reply.data.sublist(5, 9);
|
||||
var saveStrList = changeIntListToStringList(token);
|
||||
Storage.setStringList(saveBlueToken, saveStrList);
|
||||
AppLog.log("添加卡token:$token");
|
||||
|
||||
IoSenderManage.senderAddCardWithTimeCycleCoercionCommand(
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:state.isAdministrator.value == "2" ? 254 : 0,
|
||||
useCountLimit:0xff,
|
||||
isForce:state.isCoerced.value == "1" ? 0 : 1, // 是否是胁迫
|
||||
cardNo:0,
|
||||
useCountLimit:0xffff,
|
||||
operate:0, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.isAdministrator.value == "2" ? 1 : 0,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
startDate: int.parse(state.startDate.value)~/1000,
|
||||
@ -206,8 +211,10 @@ class AddICCardLogic extends BaseGetXController{
|
||||
IoSenderManage.senderAddCardWithTimeCycleCoercionCommand(
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:state.isAdministrator.value == "2" ? 254 : 0,
|
||||
useCountLimit:0xff,
|
||||
cardNo:0,
|
||||
useCountLimit:0xffff,
|
||||
operate:0, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.isAdministrator.value == "2" ? 1 : 0,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
|
||||
@ -66,7 +66,9 @@ class CardDetailLogic extends BaseGetXController{
|
||||
keyID:state.keyId.value.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.typeNumber.value),
|
||||
useCountLimit:state.isDeletCard.value == true ? 0 : 0xff,
|
||||
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), // 周循环
|
||||
@ -113,7 +115,9 @@ class CardDetailLogic extends BaseGetXController{
|
||||
keyID:state.keyId.value.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.typeNumber.value),
|
||||
useCountLimit:state.isDeletCard.value == true ? 0 : 0xff,
|
||||
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), // 周循环
|
||||
@ -151,6 +155,7 @@ class CardDetailLogic extends BaseGetXController{
|
||||
startTime: int.parse(state.starTime.value),
|
||||
endTime: int.parse(state.endTime.value),
|
||||
cardType:state.keyType.value,
|
||||
cardRight: state.isAdministrator.value ? 1 : 0,
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
|
||||
@ -160,8 +160,15 @@ class _CardDetailPageState extends State<CardDetailPage> with RouteAware {
|
||||
leftTitel: TranslationLoader.lanKeys!.stressCard!.tr,
|
||||
rightTitle: "",
|
||||
isTipsImg: false,
|
||||
isHaveLine: true,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isStressFingerprint()))),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: "是否是管理员".tr,
|
||||
rightTitle: "",
|
||||
isTipsImg: false,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin()))),
|
||||
Container(height: 10.h),
|
||||
CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
|
||||
@ -210,6 +217,21 @@ class _CardDetailPageState extends State<CardDetailPage> with RouteAware {
|
||||
);
|
||||
}
|
||||
|
||||
// 是否是管理员
|
||||
CupertinoSwitch _isAdmin() {
|
||||
return CupertinoSwitch(
|
||||
activeColor: CupertinoColors.activeBlue,
|
||||
trackColor: CupertinoColors.systemGrey5,
|
||||
thumbColor: CupertinoColors.white,
|
||||
value: state.isAdministrator.value,
|
||||
onChanged: (value) {
|
||||
state.isAdministrator.value = value;
|
||||
state.isDeletCard.value = false;
|
||||
logic.senderAddICCard();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
// TODO: implement didChangeDependencies
|
||||
|
||||
@ -14,6 +14,7 @@ class CardDetailState{
|
||||
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||
var isDeletCard = true.obs;// 是否删除卡
|
||||
var isStressCard = false.obs;// 是否胁迫
|
||||
var isAdministrator = false.obs;// 是否是管理员
|
||||
|
||||
final typeNumber = "".obs;// 指纹号
|
||||
final typeName = "".obs;// 指纹名字
|
||||
@ -44,6 +45,7 @@ class CardDetailState{
|
||||
addTime.value = fingerprintItemData.value.createDate!;
|
||||
isStressCard.value = fingerprintItemData.value.isCoerced! == 2 ? true : false;
|
||||
weekDay.value = fingerprintItemData.value.weekDay!;
|
||||
isAdministrator.value = fingerprintItemData.value.cardRight! == 1 ? true : false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -29,7 +29,7 @@ class CardListLogic extends BaseGetXController {
|
||||
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((reply) {
|
||||
|
||||
// 添加卡片开始(重置锁里面所有卡)
|
||||
if((reply is SenderAddICCardWithTimeCycleCoercionReply) && (state.isDeletCardData == true)) {
|
||||
if((reply is SenderAddICCardWithTimeCycleCoercionReply) && (state.ifCurrentScreen.value == true)) {
|
||||
_replyAddICCardBegin(reply);
|
||||
}
|
||||
|
||||
@ -50,7 +50,6 @@ class CardListLogic extends BaseGetXController {
|
||||
switch(status){
|
||||
case 0x00:
|
||||
//成功
|
||||
state.isDeletCardData = false;
|
||||
cancelBlueConnetctToastTimer();
|
||||
deletICCardData();
|
||||
break;
|
||||
@ -71,9 +70,11 @@ class CardListLogic extends BaseGetXController {
|
||||
|
||||
IoSenderManage.senderAddCardWithTimeCycleCoercionCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
cardNo:state.deletCardNo,
|
||||
useCountLimit:0,
|
||||
useCountLimit:0xffff,
|
||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
@ -244,9 +245,11 @@ class CardListLogic extends BaseGetXController {
|
||||
|
||||
IoSenderManage.senderAddCardWithTimeCycleCoercionCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
cardNo:state.deletCardNo,
|
||||
useCountLimit:0,
|
||||
useCountLimit:0xffff,
|
||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
@ -321,13 +324,11 @@ class CardListLogic extends BaseGetXController {
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
if(state.isDeletAll == false){
|
||||
showToast("删除成功".tr, something: (){
|
||||
state.isDeletCardData = false;
|
||||
pageNo = 1;
|
||||
getICCardListData();
|
||||
});
|
||||
}else{
|
||||
showToast("重置成功".tr, something: (){
|
||||
state.isDeletCardData = false;
|
||||
pageNo = 1;
|
||||
getICCardListData();
|
||||
});
|
||||
|
||||
@ -66,11 +66,9 @@ class _CardListPageState extends State<CardListPage> with RouteAware {
|
||||
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
ShowTipView().showIosTipWithContentDialog("重置后,该锁的卡都将被删除哦,确认要重置吗?".tr, () async {
|
||||
state.isDeletCardData = true;
|
||||
state.isDeletAll = true;
|
||||
state.deletKeyID = "1";
|
||||
state.deletUserID = "DeleteAll!@#";
|
||||
state.deletCardNo = 255;
|
||||
state.deletKeyID = "0";
|
||||
state.deletCardNo = 0;
|
||||
logic.senderAddICCard();
|
||||
});
|
||||
// showDeletAlertDialog(context);
|
||||
@ -138,9 +136,7 @@ class _CardListPageState extends State<CardListPage> with RouteAware {
|
||||
SlidableAction(
|
||||
onPressed: (BuildContext context){
|
||||
ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, () async {
|
||||
state.isDeletCardData = true;
|
||||
state.isDeletAll = false;
|
||||
state.deletUserID = (await Storage.getUid())!;
|
||||
state.deletKeyID = fingerprintItemData.cardId.toString();
|
||||
state.deletCardNo = int.parse(fingerprintItemData.cardNumber!);
|
||||
state.fingerprintDeletItem = fingerprintItemData;
|
||||
|
||||
@ -7,10 +7,8 @@ class CardListState {
|
||||
final lockId = 0.obs;
|
||||
|
||||
// 因为删除跟添加指纹用的同一个协议 所以这里用做判断
|
||||
var isDeletCardData = false;
|
||||
var isDeletAll = false;
|
||||
var deletKeyID = "";
|
||||
var deletUserID = "DeleteAll!@#";
|
||||
var deletKeyID = "0";
|
||||
var deletCardNo = 0;
|
||||
|
||||
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
||||
|
||||
@ -170,7 +170,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.cardId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.fingerprintItemData.value.cardNumber!),
|
||||
useCountLimit:0xff ,
|
||||
useCountLimit:0xffff,
|
||||
operate: 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.cardRight!,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环
|
||||
@ -217,7 +219,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.fingerprintId.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!),
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.fingerRight,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环
|
||||
@ -267,7 +271,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.fingerprintId.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!),
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.fingerRight,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环
|
||||
@ -319,7 +325,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.cardId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.fingerprintItemData.value.cardNumber!),
|
||||
useCountLimit:0xff ,
|
||||
useCountLimit:0xffff,
|
||||
operate: 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.cardRight!,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环
|
||||
@ -357,6 +365,7 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
startTime: 0,
|
||||
endTime: 0,
|
||||
fingerprintType: state.fingerprintItemData.value.fingerprintType! == 4 ? 4 : 2,
|
||||
fingerRight: state.fingerprintItemData.value.fingerRight!,
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
@ -383,6 +392,7 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{
|
||||
startTime: 0,
|
||||
endTime: 0,
|
||||
cardType: 2,// 2:限时 无论之前是永久还是限时,修改之后都是限时
|
||||
cardRight: state.fingerprintItemData.value.cardRight!,
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
|
||||
@ -172,7 +172,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.cardId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.fingerprintItemData.value.cardNumber!),
|
||||
useCountLimit:0xff ,
|
||||
useCountLimit:0xffff,
|
||||
operate: 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.isCoerced!,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:1, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -219,7 +221,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.fingerprintId.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!),
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.fingerRight,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:1, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -269,7 +273,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.fingerprintId.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!),
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.fingerRight,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:1, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -321,7 +327,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
keyID:state.fingerprintItemData.value.cardId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:int.parse(state.fingerprintItemData.value.cardNumber!),
|
||||
useCountLimit:0xff ,
|
||||
useCountLimit:0xffff,
|
||||
operate: 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.fingerprintItemData.value.isCoerced!,
|
||||
isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫
|
||||
isRound:1, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -359,6 +367,7 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
startTime: state.starTimeTimestamp.value,
|
||||
endTime: state.endTimeTimestamp.value,
|
||||
fingerprintType: state.fingerprintItemData.value.fingerprintType!,
|
||||
fingerRight: state.fingerprintItemData.value.fingerRight!
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
@ -388,6 +397,7 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{
|
||||
startTime: state.starTimeTimestamp.value,
|
||||
endTime: state.endTimeTimestamp.value,
|
||||
cardType: state.fingerprintItemData.value.cardType!,
|
||||
cardRight: state.fingerprintItemData.value.cardRight!
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
|
||||
@ -26,7 +26,7 @@ class AddFaceLogic extends BaseGetXController {
|
||||
_replySubscription =
|
||||
EventBusManager().eventBus!.on<Reply>().listen((reply) async {
|
||||
// 添加人脸开始
|
||||
if (reply is SenderAddFaceReply) {
|
||||
if (reply is SenderAddFaceReply && state.ifCurrentScreen.value == true) {
|
||||
_replyAddFaceBegin(reply);
|
||||
}
|
||||
|
||||
@ -44,27 +44,16 @@ class AddFaceLogic extends BaseGetXController {
|
||||
|
||||
Future<void> _replyAddFaceBegin(Reply reply) async {
|
||||
int status = reply.data[2];
|
||||
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
state.ifConnectScuess.value = true;
|
||||
|
||||
// 最大图片数
|
||||
state.maxRegCount.value = reply.data[10];
|
||||
state.maxRegCount.value = reply.data[11];
|
||||
// AppLog.log("人脸开始state.maxRegCount.value:${state.maxRegCount.value}");
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
var weekStr = "00000000";
|
||||
for (var day in state.weekDay.value) {
|
||||
int index = day % 7; // 将周日的索引转换为 0
|
||||
weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}';
|
||||
}
|
||||
// 倒序 weekStr
|
||||
weekStr = weekStr.split('').reversed.join('');
|
||||
int weekRound = int.parse(weekStr, radix: 2);
|
||||
|
||||
var signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
|
||||
@ -82,7 +71,7 @@ class AddFaceLogic extends BaseGetXController {
|
||||
useCountLimit:0xff,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:weekRound, // 周循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
startDate: int.parse(state.startDate.value)~/1000,
|
||||
endDate: int.parse(state.endDate.value)~/1000,
|
||||
startTime:DateTool().dateToHNString(state.effectiveDateTime.value),
|
||||
@ -132,7 +121,9 @@ class AddFaceLogic extends BaseGetXController {
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
var faceNumber = listChangInt(reply.data.sublist(6, 7)).toString();
|
||||
var faceList = reply.data.sublist(reply.data.length - 2);
|
||||
var faceNumber = listChangInt(faceList).toString();
|
||||
// var faceNumber = listChangInt(reply.data.sublist(6, 7)).toString();
|
||||
// if (state.faceNumber.value == (reply.data[6]).toString()) {
|
||||
if (state.faceNumber.value == faceNumber) {
|
||||
return;
|
||||
@ -160,14 +151,6 @@ class AddFaceLogic extends BaseGetXController {
|
||||
(BluetoothConnectionState deviceConnectionState) async {
|
||||
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||
cancelBlueConnetctToastTimer();
|
||||
var weekStr = "00000000";
|
||||
for (var day in state.weekDay.value) {
|
||||
int index = day % 7; // 将周日的索引转换为 0
|
||||
weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}';
|
||||
}
|
||||
// 倒序 weekStr
|
||||
weekStr = weekStr.split('').reversed.join('');
|
||||
int weekRound = int.parse(weekStr, radix: 2);
|
||||
|
||||
var signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
@ -185,7 +168,7 @@ class AddFaceLogic extends BaseGetXController {
|
||||
useCountLimit:0xff,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:weekRound, // 周循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
startDate: int.parse(state.startDate.value)~/1000,
|
||||
endDate: int.parse(state.endDate.value)~/1000,
|
||||
startTime:DateTool().dateToHNString(state.effectiveDateTime.value),
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@ -7,6 +8,7 @@ import '../../../../../app_settings/app_colors.dart';
|
||||
import '../../../../../tools/submitBtn.dart';
|
||||
import '../../../../../tools/titleAppBar.dart';
|
||||
import '../../../../../translations/trans_lib.dart';
|
||||
import '../../../../tools/appRouteObserver.dart';
|
||||
|
||||
class AddFacePage extends StatefulWidget {
|
||||
const AddFacePage({Key? key}) : super(key: key);
|
||||
@ -15,7 +17,7 @@ class AddFacePage extends StatefulWidget {
|
||||
State<AddFacePage> createState() => _AddFacePageState();
|
||||
}
|
||||
|
||||
class _AddFacePageState extends State<AddFacePage> {
|
||||
class _AddFacePageState extends State<AddFacePage> with RouteAware {
|
||||
final logic = Get.put(AddFaceLogic());
|
||||
final state = Get.find<AddFaceLogic>().state;
|
||||
|
||||
@ -93,4 +95,52 @@ class _AddFacePageState extends State<AddFacePage> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
// TODO: implement didChangeDependencies
|
||||
super.didChangeDependencies();
|
||||
|
||||
/// 路由订阅
|
||||
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// TODO: implement dispose
|
||||
/// 取消路由订阅
|
||||
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
/// 从上级界面进入 当前界面即将出现
|
||||
@override
|
||||
void didPush() {
|
||||
super.didPush();
|
||||
state.ifCurrentScreen.value = true;
|
||||
}
|
||||
|
||||
/// 返回上一个界面 当前界面即将消失
|
||||
@override
|
||||
void didPop() {
|
||||
super.didPop();
|
||||
logic.cancelBlueConnetctToastTimer();
|
||||
state.ifCurrentScreen.value = false;
|
||||
}
|
||||
|
||||
/// 从下级返回 当前界面即将出现
|
||||
@override
|
||||
void didPopNext() {
|
||||
super.didPopNext();
|
||||
state.ifCurrentScreen.value = true;
|
||||
}
|
||||
|
||||
/// 进入下级界面 当前界面即将消失
|
||||
@override
|
||||
void didPushNext() {
|
||||
super.didPushNext();
|
||||
logic.cancelBlueConnetctToastTimer();
|
||||
|
||||
state.ifCurrentScreen.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ class AddFingerprintLogic extends BaseGetXController {
|
||||
state.ifConnectScuess.value = true;
|
||||
|
||||
// 最大图片数
|
||||
state.maxRegCount.value = reply.data[10];
|
||||
state.maxRegCount.value = reply.data[11];
|
||||
// AppLog.log("state.maxRegCount.value:${state.maxRegCount.value}");
|
||||
// state.fingerprintNumber.value = reply.data.last.toString();
|
||||
break;
|
||||
@ -66,9 +66,6 @@ class AddFingerprintLogic extends BaseGetXController {
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
// var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
|
||||
@ -76,21 +73,14 @@ class AddFingerprintLogic extends BaseGetXController {
|
||||
var saveStrList = changeIntListToStringList(token);
|
||||
Storage.setStringList(saveBlueToken, saveStrList);
|
||||
|
||||
// var weekStr = "00000000";
|
||||
// for (var day in state.weekDay.value) {
|
||||
// int index = day % 7; // 将周日的索引转换为 0
|
||||
// weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}';
|
||||
// }
|
||||
// // 倒序 weekStr
|
||||
// weekStr = weekStr.split('').reversed.join('');
|
||||
// int weekRound = int.parse(weekStr, radix: 2);
|
||||
|
||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:state.isAdministrator.value == "2" ? 254 : 0,
|
||||
useCountLimit:0xff,
|
||||
isForce:state.isCoerced.value == "1" ? 1 : 0, // 是否是胁迫
|
||||
fingerNo:0,
|
||||
useCountLimit:0xffff,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isAdmin: state.isAdministrator.value == "2" ? 1 : 0,
|
||||
operate: 0,
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
startDate: int.parse(state.startDate.value)~/1000,
|
||||
@ -156,7 +146,10 @@ class AddFingerprintLogic extends BaseGetXController {
|
||||
switch(status){
|
||||
case 0x00:
|
||||
//成功
|
||||
var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString();
|
||||
// var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString();
|
||||
var fingerprintList = reply.data.sublist(reply.data.length - 2);
|
||||
var fingerprintNum = listChangInt(fingerprintList).toString();
|
||||
|
||||
if(state.fingerprintNumber.value == fingerprintNum){
|
||||
return;
|
||||
}else{
|
||||
@ -250,9 +243,11 @@ class AddFingerprintLogic extends BaseGetXController {
|
||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:state.isAdministrator.value == "2" ? 254 : 0,
|
||||
useCountLimit:0xff,
|
||||
fingerNo:0,
|
||||
useCountLimit:0xffff,
|
||||
isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫
|
||||
isAdmin: state.isAdministrator.value == "2" ? 1 : 0,
|
||||
operate: 0,
|
||||
isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
startDate: int.parse(state.startDate.value)~/1000,
|
||||
|
||||
@ -95,7 +95,6 @@ class _AddFingerprintTypePageState extends State<AddFingerprintTypePage> with Si
|
||||
TranslationLoader.lanKeys!.pleaseEnter!.tr,
|
||||
state.nameController),
|
||||
keyTimeLimitWidget(),
|
||||
SizedBox(height: 10.h),
|
||||
keyBottomWidget()
|
||||
],
|
||||
),
|
||||
|
||||
@ -3,7 +3,6 @@ import 'dart:async';
|
||||
|
||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/blue/io_type.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
import '../../../../blue/blue_manage.dart';
|
||||
import '../../../../blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart';
|
||||
@ -66,7 +65,9 @@ class FingerprintDetailLogic extends BaseGetXController{
|
||||
keyID:state.keyId.value.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.typeNumber.value),
|
||||
useCountLimit:state.isDeletFingerprint.value == true ? 0 : 0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:state.isDeletFingerprint.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.isAdministrator.value == true ? 1 : 0,
|
||||
isForce:state.isStressFingerprint.value == true ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -116,7 +117,9 @@ class FingerprintDetailLogic extends BaseGetXController{
|
||||
keyID:state.keyId.value.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
fingerNo:int.parse(state.typeNumber.value),
|
||||
useCountLimit:state.isDeletFingerprint.value == true ? 0 : 0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate:state.isDeletFingerprint.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:state.isAdministrator.value == true ? 1 : 0,
|
||||
isForce:state.isStressFingerprint.value == true ? 1 : 0, // 是否是胁迫
|
||||
isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环
|
||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
||||
@ -169,6 +172,7 @@ class FingerprintDetailLogic extends BaseGetXController{
|
||||
startTime: int.parse(state.startDate.value),
|
||||
endTime: int.parse(state.endTime.value),
|
||||
fingerprintType: state.fingerprintItemData.value.fingerprintType!,
|
||||
fingerRight: state.isAdministrator.value ? 1 : 0,
|
||||
);
|
||||
if(entity.errorCode!.codeIsSuccessful){
|
||||
showToast("修改成功".tr, something: (){
|
||||
|
||||
@ -167,8 +167,15 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage> with Rout
|
||||
rightTitle: "",
|
||||
isTipsImg: false,
|
||||
isHaveRightWidget: true,
|
||||
isHaveLine: true,
|
||||
rightWidget: SizedBox(
|
||||
width: 60.w, height: 50.h, child: _isStressFingerprint()))),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: "是否是管理员".tr,
|
||||
rightTitle: "",
|
||||
isTipsImg: false,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin()))),
|
||||
Container(height: 10.h),
|
||||
CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
|
||||
@ -192,6 +199,7 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage> with Rout
|
||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||
onClick: () {
|
||||
ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, () async {
|
||||
state.isDeletFingerprint.value = true;
|
||||
logic.senderAddFingerprint();
|
||||
});
|
||||
}),
|
||||
@ -210,12 +218,28 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage> with Rout
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
state.isStressFingerprint.value = value;
|
||||
logic.editFingerprintsData();
|
||||
state.isDeletFingerprint.value = false;
|
||||
logic.senderAddFingerprint();
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// 是否是管理员
|
||||
CupertinoSwitch _isAdmin() {
|
||||
return CupertinoSwitch(
|
||||
activeColor: CupertinoColors.activeBlue,
|
||||
trackColor: CupertinoColors.systemGrey5,
|
||||
thumbColor: CupertinoColors.white,
|
||||
value: state.isAdministrator.value,
|
||||
onChanged: (value) {
|
||||
state.isAdministrator.value = value;
|
||||
state.isDeletFingerprint.value = false;
|
||||
logic.senderAddFingerprint();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
// TODO: implement didChangeDependencies
|
||||
|
||||
@ -25,6 +25,7 @@ class FingerprintDetailState{
|
||||
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||
var isDeletFingerprint = true.obs;// 是否删除卡
|
||||
final isStressFingerprint = false.obs;
|
||||
var isAdministrator = false.obs;// 是否是管理员
|
||||
|
||||
FingerprintDetailState() {
|
||||
Map map = Get.arguments;
|
||||
@ -43,6 +44,7 @@ class FingerprintDetailState{
|
||||
addTime.value = fingerprintItemData.value.createDate!;
|
||||
isStressFingerprint.value = fingerprintItemData.value.isCoerced! == 2 ? true : false;
|
||||
weekDay.value = fingerprintItemData.value.weekDay!;
|
||||
isAdministrator.value = fingerprintItemData.value.fingerRight! == 1 ? true : false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -77,12 +77,14 @@ class FingerprintItemData {
|
||||
String? senderUsername;
|
||||
List? weekDay;
|
||||
String? validTimeStr;
|
||||
int? fingerRight;
|
||||
|
||||
String? cardName;
|
||||
String? cardNumber;
|
||||
int? cardType;
|
||||
int? cardId;
|
||||
int? cardStatus;
|
||||
int? cardRight;
|
||||
|
||||
int? faceId;
|
||||
String? faceName;
|
||||
@ -123,7 +125,9 @@ class FingerprintItemData {
|
||||
this.cyclicConfig,
|
||||
this.featureData,
|
||||
this.faceRight,
|
||||
this.cardStatus});
|
||||
this.cardStatus,
|
||||
this.cardRight,
|
||||
this.fingerRight});
|
||||
|
||||
FingerprintItemData.fromJson(Map<String, dynamic> json) {
|
||||
fingerprintStatus = json['fingerprintStatus'];
|
||||
@ -155,6 +159,8 @@ class FingerprintItemData {
|
||||
featureData = json['featureData'];
|
||||
faceRight = json['faceRight'];
|
||||
cardStatus = json['cardStatus'];
|
||||
cardRight = json['cardRight'];
|
||||
fingerRight = json['fingerRight'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
@ -188,6 +194,8 @@ class FingerprintItemData {
|
||||
data['featureData'] = featureData;
|
||||
data['faceRight'] = faceRight;
|
||||
data['cardStatus'] = cardStatus;
|
||||
data['cardRight'] = cardRight;
|
||||
data['fingerRight'] = fingerRight;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,30 +63,17 @@ class FingerprintListLogic extends BaseGetXController{
|
||||
var signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
|
||||
// var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var token = await Storage.getStringList(saveBlueToken);
|
||||
List<int> getTokenList = changeStringListToIntList(token!);
|
||||
|
||||
// IoSenderManage.senderAddFingerprintCommand(
|
||||
// keyID:state.deletKeyID,
|
||||
// userID:state.deletUserID,
|
||||
// fingerNo:state.deletFingerNo,
|
||||
// useCountLimit:0,
|
||||
// startTime:0x11223344,
|
||||
// endTime:0x11223344,
|
||||
// needAuthor:1,
|
||||
// signKey:signKeyDataList,
|
||||
// privateKey:getPrivateKeyList,
|
||||
// token: getTokenList,
|
||||
// );
|
||||
var token = reply.data.sublist(5, 9);
|
||||
var saveStrList = changeIntListToStringList(token);
|
||||
Storage.setStringList(saveBlueToken, saveStrList);
|
||||
|
||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
fingerNo:state.deletFingerNo,
|
||||
useCountLimit:0,
|
||||
useCountLimit:0xffff,
|
||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
@ -97,7 +84,7 @@ class FingerprintListLogic extends BaseGetXController{
|
||||
needAuthor:1,
|
||||
signKey:signKeyDataList,
|
||||
privateKey:getPrivateKeyList,
|
||||
token: getTokenList,
|
||||
token: token,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
@ -278,9 +265,11 @@ class FingerprintListLogic extends BaseGetXController{
|
||||
|
||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
fingerNo:state.deletFingerNo,
|
||||
useCountLimit:0,
|
||||
useCountLimit:0xffff,
|
||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
@ -293,19 +282,6 @@ class FingerprintListLogic extends BaseGetXController{
|
||||
privateKey:getPrivateKeyList,
|
||||
token: getTokenList,
|
||||
);
|
||||
|
||||
// IoSenderManage.senderAddFingerprintCommand(
|
||||
// keyID:state.deletKeyID,
|
||||
// userID:state.deletUserID,
|
||||
// fingerNo:state.deletFingerNo,
|
||||
// useCountLimit:0,
|
||||
// startTime:0x11223344,
|
||||
// endTime:0x11223344,
|
||||
// needAuthor:1,
|
||||
// signKey:signKeyDataList,
|
||||
// privateKey:getPrivateKeyList,
|
||||
// token: getTokenList,
|
||||
// );
|
||||
} else if (deviceConnectionState == BluetoothConnectionState.disconnected) {
|
||||
dismissEasyLoading();
|
||||
cancelBlueConnetctToastTimer();
|
||||
|
||||
@ -72,7 +72,6 @@ class _FingerprintListPageState extends State<FingerprintListPage> with RouteAwa
|
||||
state.isDeletFingerprintData = true;
|
||||
state.isDeletAll = true;
|
||||
state.deletKeyID = "1";
|
||||
state.deletUserID = "DeleteAll!@#";
|
||||
state.deletFingerNo = 255;
|
||||
logic.senderAddFingerprint();
|
||||
});
|
||||
@ -145,7 +144,6 @@ class _FingerprintListPageState extends State<FingerprintListPage> with RouteAwa
|
||||
state.isDeletFingerprintData = true;
|
||||
state.isDeletAll = false;
|
||||
state.deletKeyID = fingerprintItemData.fingerprintId.toString();
|
||||
state.deletUserID = (await Storage.getUid())!;
|
||||
logic.senderAddFingerprint();
|
||||
});
|
||||
},
|
||||
|
||||
@ -10,8 +10,7 @@ class FingerprintListState{
|
||||
// 因为删除跟添加指纹用的同一个协议 所以这里用做判断
|
||||
var isDeletFingerprintData = false;
|
||||
var isDeletAll = false;
|
||||
var deletKeyID = "";
|
||||
var deletUserID = "DeleteAll!@#";
|
||||
var deletKeyID = "0";
|
||||
var deletFingerNo = 0;
|
||||
|
||||
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
||||
|
||||
@ -144,6 +144,7 @@ class IrisDetailLogic extends BaseGetXController {
|
||||
startTime: int.parse(state.starTime.value),
|
||||
endTime: int.parse(state.endTime.value),
|
||||
cardType: state.keyType.value,
|
||||
cardRight: 0,
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
showToast("修改成功", something: () {
|
||||
|
||||
@ -586,6 +586,15 @@ class LockDetailLogic extends BaseGetXController {
|
||||
|
||||
await PermissionDialog.request(Permission.location);
|
||||
await PermissionDialog.requestBluetooth();
|
||||
|
||||
var vendorStr = utf8String([84, 77, 72, 95, 100, 99, 56, 102, 57, 50,
|
||||
56, 51, 54, 57, 101, 100, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]);
|
||||
AppLog.log("LockID :$vendorStr");
|
||||
|
||||
var userID = utf8String([51, 50, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
||||
AppLog.log("userID :$userID");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -143,6 +143,7 @@ class PalmDetailLogic extends BaseGetXController {
|
||||
startTime: int.parse(state.starTime.value),
|
||||
endTime: int.parse(state.endTime.value),
|
||||
cardType: state.keyType.value,
|
||||
cardRight: 0,
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
showToast("修改成功", something: () {
|
||||
|
||||
@ -25,7 +25,6 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
||||
void _initReplySubscription() {
|
||||
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((reply) async {
|
||||
// 设置自定义密码
|
||||
AppLog.log("ifCurrentScreen:${state.ifCurrentScreen.value}");
|
||||
if ((reply is SenderCustomPasswordsReply) && (state.ifCurrentScreen.value == true)) {
|
||||
int status = reply.data[2];
|
||||
switch (status) {
|
||||
@ -56,8 +55,10 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
||||
keyID:state.itemData.value.keyboardPwdId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
pwdNo: state.itemData.value.pwdUserNo!,
|
||||
pwd: state.isDeletPasswordKey.value == true ? "000000" : state.inputPwdController.text,
|
||||
useCountLimit: state.isDeletPasswordKey.value == true ? 0 : 0xff,
|
||||
pwd: state.isDeletPasswordKey.value == true ? "0" : state.inputPwdController.text,
|
||||
useCountLimit: 0xffff,
|
||||
operate: state.isDeletPasswordKey.value == true ? 2 : 1,
|
||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||
needAuthor: 1,
|
||||
@ -150,12 +151,15 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
||||
// signKey: signKeyDataList,
|
||||
// privateKey: getPrivateKeyList,
|
||||
// token: getTokenList);
|
||||
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID:state.itemData.value.keyboardPwdId!.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
pwdNo: state.itemData.value.pwdUserNo!,
|
||||
pwd: state.isDeletPasswordKey.value == true ? "000000" : state.inputPwdController.text,
|
||||
useCountLimit: state.isDeletPasswordKey.value == true ? 0 : 0xff,
|
||||
pwd: state.isDeletPasswordKey.value == true ? "0" : state.inputPwdController.text,
|
||||
useCountLimit: 0xffff,
|
||||
operate: state.isDeletPasswordKey.value == true ? 2 : 1,
|
||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||
needAuthor: 1,
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
@ -113,6 +114,20 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> with Rout
|
||||
rightTitle: getSenderDate(state.itemData.value),
|
||||
action: () {}),
|
||||
Container(height: 10.h),
|
||||
Obx(() => Visibility(
|
||||
visible: state.itemData.value.isCustom! == 1,
|
||||
child: Column(
|
||||
children: [
|
||||
CommonItem(
|
||||
leftTitel: "管理员".tr,
|
||||
rightTitle: "",
|
||||
isTipsImg: false,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin())),
|
||||
Container(height: 10.h),
|
||||
],
|
||||
),
|
||||
)),
|
||||
CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
|
||||
rightTitle: "",
|
||||
@ -202,7 +217,6 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> with Rout
|
||||
onClick: () {
|
||||
ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, (){
|
||||
state.isDeletPasswordKey.value = true;
|
||||
state.ifCurrentScreen.value = true;
|
||||
if(state.itemData.value.isCustom! == 1){
|
||||
// 自定义密码
|
||||
logic.senderCustomPasswords();
|
||||
@ -217,6 +231,21 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> with Rout
|
||||
));
|
||||
}
|
||||
|
||||
// 是否是管理员
|
||||
CupertinoSwitch _isAdmin() {
|
||||
return CupertinoSwitch(
|
||||
activeColor: CupertinoColors.activeBlue,
|
||||
trackColor: CupertinoColors.systemGrey5,
|
||||
thumbColor: CupertinoColors.white,
|
||||
value: state.isAdministrator.value,
|
||||
onChanged: (value) {
|
||||
state.isAdministrator.value = value;
|
||||
state.isDeletPasswordKey.value = false;
|
||||
logic.senderCustomPasswords();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
//发送时间
|
||||
String getSenderDate(PasswordKeyListItem indexEntity) {
|
||||
String senderDate = '';
|
||||
@ -257,7 +286,6 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> with Rout
|
||||
logic.updatePwdRequest(1);
|
||||
}else{
|
||||
// 修改密码
|
||||
state.ifCurrentScreen.value = true;
|
||||
logic.senderCustomPasswords();
|
||||
}
|
||||
},
|
||||
|
||||
@ -17,7 +17,8 @@ class PasswordKeyDetailState {
|
||||
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||
final passwordKeyNumber = "".obs;// 密码号
|
||||
var isDeletPasswordKey = true.obs;// 是否删除卡
|
||||
var isDeletPasswordKey = true.obs;// 是否删除密码
|
||||
var isAdministrator = false.obs;// 是否是管理员
|
||||
|
||||
PasswordKeyDetailState() {
|
||||
Map map = Get.arguments;
|
||||
@ -29,7 +30,7 @@ class PasswordKeyDetailState {
|
||||
inputPwdController.text = itemData.value.keyboardPwd!;
|
||||
keyId.value = itemData.value.keyboardPwdId!;
|
||||
keyboardUserNo.value = itemData.value.pwdUserNo!;
|
||||
|
||||
isAdministrator.value = itemData.value.pwdRight! == 1 ? true : false;
|
||||
// startDate.value = itemData.value.startDate!;
|
||||
// endDate.value = itemData.value.endDate!;
|
||||
// hoursStart.value = itemData.value.hoursStart!;
|
||||
|
||||
@ -51,7 +51,9 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController {
|
||||
userID:await Storage.getUid(),
|
||||
pwdNo: state.itemData.value.pwdUserNo!,
|
||||
pwd: state.itemData.value.keyboardPwd!.toString(),
|
||||
useCountLimit: 0xff,
|
||||
operate: 1,
|
||||
isAdmin: 0,
|
||||
useCountLimit: 0xffff,
|
||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||
needAuthor: 1,
|
||||
@ -131,7 +133,9 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController {
|
||||
userID:await Storage.getUid(),
|
||||
pwdNo: state.itemData.value.pwdUserNo!,
|
||||
pwd: state.itemData.value.keyboardPwd!.toString(),
|
||||
useCountLimit: 0xff,
|
||||
operate: 1,
|
||||
isAdmin: state.itemData.value.pwdUserNo!,
|
||||
useCountLimit: 0xffff,
|
||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||
needAuthor: 1,
|
||||
|
||||
@ -83,6 +83,7 @@ class PasswordKeyListItem {
|
||||
int? hoursStart;
|
||||
int? hoursEnd;
|
||||
int? pwdUserNo;
|
||||
int? pwdRight;
|
||||
|
||||
PasswordKeyListItem(
|
||||
{this.apiUserId,
|
||||
@ -102,7 +103,8 @@ class PasswordKeyListItem {
|
||||
this.isCoerced,
|
||||
this.hoursStart,
|
||||
this.hoursEnd,
|
||||
this.pwdUserNo});
|
||||
this.pwdUserNo,
|
||||
this.pwdRight});
|
||||
|
||||
PasswordKeyListItem.fromJson(Map<String, dynamic> json) {
|
||||
apiUserId = json['apiUserId'];
|
||||
@ -123,6 +125,7 @@ class PasswordKeyListItem {
|
||||
hoursStart = json['hoursStart'];
|
||||
hoursEnd = json['hoursEnd'];
|
||||
pwdUserNo = json['pwdUserNo'];
|
||||
pwdRight = json['pwdRight'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
@ -145,6 +148,7 @@ class PasswordKeyListItem {
|
||||
data['hoursStart'] = hoursStart;
|
||||
data['hoursEnd'] = hoursEnd;
|
||||
data['pwdUserNo'] = pwdUserNo;
|
||||
data['pwdRight'] = pwdRight;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,8 +2,6 @@ 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_type.dart';
|
||||
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart';
|
||||
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
@ -41,7 +39,6 @@ class PasswordKeyListLogic extends BaseGetXController {
|
||||
switch(status){
|
||||
case 0x00:
|
||||
//成功
|
||||
state.isDeletPWDData = false;
|
||||
cancelBlueConnetctToastTimer();
|
||||
if(state.isDeletAll){
|
||||
resetPasswordKeyListRequest();
|
||||
@ -66,10 +63,12 @@ class PasswordKeyListLogic extends BaseGetXController {
|
||||
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
pwdNo:state.pwdNo,
|
||||
pwd:"000000",//state.deletPWD,
|
||||
useCountLimit: 0,
|
||||
pwd:"0",//state.deletPWD,
|
||||
operate: state.isDeletAll ? 3 : 2,
|
||||
isAdmin: 0,
|
||||
useCountLimit: 0xffff,
|
||||
startTime:0x11223344,
|
||||
endTime:0x11223344,
|
||||
needAuthor: 1,
|
||||
@ -155,10 +154,12 @@ class PasswordKeyListLogic extends BaseGetXController {
|
||||
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID:state.deletKeyID,
|
||||
userID:state.deletUserID,
|
||||
userID:(await Storage.getUid())!,
|
||||
pwdNo:state.pwdNo,
|
||||
pwd:"000000",//state.deletPWD,
|
||||
useCountLimit: 0,
|
||||
pwd:"0",//state.deletPWD,
|
||||
operate: state.isDeletAll ? 3 : 2,
|
||||
isAdmin: 0,
|
||||
useCountLimit: 0xffff,
|
||||
startTime:0x11223344,
|
||||
endTime:0x11223344,
|
||||
needAuthor: 1,
|
||||
|
||||
@ -62,12 +62,11 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> with RouteAwa
|
||||
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
ShowTipView().showIosTipWithContentDialog('该锁的密码都将被删除'.tr, () {
|
||||
state.isDeletPWDData = true;
|
||||
state.isDeletAll = true;
|
||||
state.deletKeyID = "0";
|
||||
state.deletUserID = "DeleteAll!@#";
|
||||
state.deletUserID = "0";
|
||||
// state.deletPWD = "";
|
||||
state.pwdNo = 255;
|
||||
state.pwdNo = 0;
|
||||
|
||||
logic.senderCustomPasswords();
|
||||
});
|
||||
|
||||
@ -14,7 +14,6 @@ class PasswordKeyListState {
|
||||
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||
|
||||
// 因为删除跟添加指纹用的同一个协议 所以这里用做判断
|
||||
var isDeletPWDData = false;
|
||||
var isDeletAll = false;
|
||||
var deletKeyID = "";
|
||||
var deletUserID = "DeleteAll!@#";
|
||||
|
||||
@ -154,7 +154,8 @@ class PasswordKeyPerpetualLogic extends BaseGetXController {
|
||||
keyboardPwdType:getKeyType,
|
||||
startDate:getEffectiveDateTime,
|
||||
endDate:getFailureDateTime,
|
||||
addType:'1');
|
||||
addType:'1',
|
||||
pwdRight:state.isAdministrator.value == true ? 1 : 0,);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.isSendSuccess.value = true;
|
||||
state.sendSucceedType.value = state.widgetType.value;
|
||||
@ -235,9 +236,11 @@ class PasswordKeyPerpetualLogic extends BaseGetXController {
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID: "1",
|
||||
userID: await Storage.getUid(),
|
||||
pwdNo: state.isAdministrator.value == true ? 254 : 0,
|
||||
pwdNo: 0,
|
||||
pwd:state.pwdController.text,
|
||||
useCountLimit: 0xff,
|
||||
operate: 0,
|
||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||
useCountLimit: 0xffff,
|
||||
startTime: DateTool().dateToTimestamp(state.customBeginTime.value, 1)~/1000,
|
||||
endTime: DateTool().dateToTimestamp(state.customEndTime.value, 1)~/1000,
|
||||
needAuthor: 1,
|
||||
@ -316,11 +319,13 @@ class PasswordKeyPerpetualLogic extends BaseGetXController {
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID: "1",
|
||||
userID: await Storage.getUid(),
|
||||
pwdNo: state.isAdministrator.value == true ? 254 : 0,
|
||||
pwd: state.pwdController.text,
|
||||
useCountLimit: 0xff,
|
||||
startTime:state.isPermanent.value == false ? startDate ~/ 1000 : 0,
|
||||
endTime: state.isPermanent.value == false ? endDate ~/ 1000 : 0,
|
||||
pwdNo: 0,
|
||||
pwd:state.pwdController.text,
|
||||
operate: 0,
|
||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||
useCountLimit: 0xffff,
|
||||
startTime: DateTool().dateToTimestamp(state.customBeginTime.value, 1)~/1000,
|
||||
endTime: DateTool().dateToTimestamp(state.customEndTime.value, 1)~/1000,
|
||||
needAuthor: 1,
|
||||
isBeforeAddUser: false,
|
||||
signKey: signKeyDataList,
|
||||
|
||||
@ -6,6 +6,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/app_settings/app_colors.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart';
|
||||
import 'package:star_lock/tools/commonDataManage.dart';
|
||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||
@ -580,6 +581,7 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> wit
|
||||
value: state.isAdministrator.value,
|
||||
onChanged: (value) {
|
||||
state.isAdministrator.value = value;
|
||||
AppLog.log("isAdministrator:${state.isAdministrator.value}");
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -119,9 +119,11 @@ class SaveLockLogic extends BaseGetXController {
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID: "1",
|
||||
userID: await Storage.getUid(),
|
||||
pwdNo: 254,
|
||||
pwdNo: 0,
|
||||
pwd: state.adminPasswordTF.text,
|
||||
useCountLimit: 0xff,
|
||||
operate: 0,
|
||||
isAdmin: 1,
|
||||
useCountLimit: 0xffff,
|
||||
startTime: 0x11223344,
|
||||
endTime: 0x11223344,
|
||||
needAuthor: 1,
|
||||
@ -256,9 +258,11 @@ class SaveLockLogic extends BaseGetXController {
|
||||
IoSenderManage.senderCustomPasswordsCommand(
|
||||
keyID: "1",
|
||||
userID: await Storage.getUid(),
|
||||
pwdNo: 254,
|
||||
pwd:state.adminPasswordTF.text,
|
||||
useCountLimit: 0xff,
|
||||
pwdNo: 0,
|
||||
pwd: state.adminPasswordTF.text,
|
||||
operate: 0,
|
||||
isAdmin: 1,
|
||||
useCountLimit: 0xffff,
|
||||
startTime: 0x11223344,
|
||||
endTime: 0x11223344,
|
||||
needAuthor: 1,
|
||||
|
||||
@ -61,7 +61,9 @@ class ExpireCardLogic extends BaseGetXController {
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:state.deletExpireCardItemEntity.cardUserNo!,
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate: 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
@ -110,7 +112,9 @@ class ExpireCardLogic extends BaseGetXController {
|
||||
keyID:"1",
|
||||
userID:await Storage.getUid(),
|
||||
cardNo:state.deletExpireCardItemEntity.cardUserNo!,
|
||||
useCountLimit:0xff,
|
||||
useCountLimit:0xffff,
|
||||
operate: 2, // 0:注册 1:修改 2:删除 3:删除全部
|
||||
isAdmin:0,
|
||||
isForce:0, // 是否是胁迫
|
||||
isRound:0, // 是否是循环
|
||||
weekRound:0, // 周循环
|
||||
|
||||
@ -74,6 +74,8 @@ class ExpireFingerprintLogic extends BaseGetXController {
|
||||
signKey:signKeyDataList,
|
||||
privateKey:getPrivateKeyList,
|
||||
token: getTokenList,
|
||||
isAdmin: 0,
|
||||
operate: 0,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
@ -107,8 +109,6 @@ class ExpireFingerprintLogic extends BaseGetXController {
|
||||
var token = await Storage.getStringList(saveBlueToken);
|
||||
List<int> getTokenList = changeStringListToIntList(token!);
|
||||
|
||||
String? userID = await Storage.getUid();
|
||||
|
||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||
keyID:state.deletExpireFingerprintItemEntity.fingerprintId.toString(),
|
||||
userID:await Storage.getUid(),
|
||||
@ -125,6 +125,8 @@ class ExpireFingerprintLogic extends BaseGetXController {
|
||||
signKey:signKeyDataList,
|
||||
privateKey:getPrivateKeyList,
|
||||
token: getTokenList,
|
||||
isAdmin: 0,
|
||||
operate: 0,
|
||||
);
|
||||
|
||||
// IoSenderManage.senderAddFingerprintCommand(
|
||||
|
||||
@ -452,6 +452,7 @@ class ApiProvider extends BaseProvider {
|
||||
String startDate,
|
||||
String endDate,
|
||||
String addType,
|
||||
int? pwdRight,
|
||||
) =>
|
||||
post(
|
||||
passwordKeyAddURL.toUrl,
|
||||
@ -463,6 +464,7 @@ class ApiProvider extends BaseProvider {
|
||||
'startDate': startDate,
|
||||
'endDate': endDate,
|
||||
'addType': addType,
|
||||
'pwdRight': pwdRight
|
||||
}));
|
||||
|
||||
// 自定义密码校验名字密码是否重复
|
||||
@ -1122,7 +1124,8 @@ class ApiProvider extends BaseProvider {
|
||||
String changeType,
|
||||
int startTime,
|
||||
int endTime,
|
||||
int fingerprintType) =>
|
||||
int fingerprintType,
|
||||
int fingerRight) =>
|
||||
post(
|
||||
editFingerprintURL.toUrl,
|
||||
jsonEncode({
|
||||
@ -1137,6 +1140,7 @@ class ApiProvider extends BaseProvider {
|
||||
'startTime': startTime,
|
||||
'endTime': endTime,
|
||||
'fingerprintType': fingerprintType,
|
||||
'fingerRight': fingerRight
|
||||
}));
|
||||
|
||||
// 删除指纹
|
||||
@ -1333,6 +1337,7 @@ class ApiProvider extends BaseProvider {
|
||||
int startTime,
|
||||
int endTime,
|
||||
int cardType,
|
||||
int cardRight,
|
||||
) =>
|
||||
post(
|
||||
editICCardURL.toUrl,
|
||||
@ -1347,7 +1352,8 @@ class ApiProvider extends BaseProvider {
|
||||
'changeType': changeType,
|
||||
'startTime': startTime,
|
||||
'endTime': endTime,
|
||||
'cardType': cardType
|
||||
'cardType': cardType,
|
||||
'cardRight': cardRight
|
||||
}));
|
||||
|
||||
// 删除卡
|
||||
|
||||
@ -474,9 +474,10 @@ class ApiRepository {
|
||||
required String startDate,
|
||||
required String endDate,
|
||||
required String addType,
|
||||
required int pwdRight,
|
||||
}) async {
|
||||
final res = await apiProvider.addKeyboardPwd(lockId, keyboardPwdName,
|
||||
keyboardPwd, keyboardPwdType, startDate, endDate, addType);
|
||||
keyboardPwd, keyboardPwdType, startDate, endDate, addType, pwdRight);
|
||||
return PasswordKeyEntity.fromJson(res.body);
|
||||
}
|
||||
|
||||
@ -1296,7 +1297,8 @@ class ApiRepository {
|
||||
required String changeType,
|
||||
required int startTime,
|
||||
required int endTime,
|
||||
required int fingerprintType}) async {
|
||||
required int fingerprintType,
|
||||
required int fingerRight}) async {
|
||||
final res = await apiProvider.editFingerprintsData(
|
||||
fingerprintId,
|
||||
lockId,
|
||||
@ -1308,7 +1310,8 @@ class ApiRepository {
|
||||
changeType,
|
||||
startTime,
|
||||
endTime,
|
||||
fingerprintType);
|
||||
fingerprintType,
|
||||
fingerRight);
|
||||
return LoginEntity.fromJson(res.body);
|
||||
}
|
||||
|
||||
@ -1502,6 +1505,7 @@ class ApiRepository {
|
||||
required int startTime,
|
||||
required int endTime,
|
||||
required int cardType,
|
||||
required int cardRight,
|
||||
}) async {
|
||||
final res = await apiProvider.editICCardData(
|
||||
lockId,
|
||||
@ -1514,7 +1518,8 @@ class ApiRepository {
|
||||
changeType,
|
||||
startTime,
|
||||
endTime,
|
||||
cardType);
|
||||
cardType,
|
||||
cardRight);
|
||||
return LoginEntity.fromJson(res.body);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user