diff --git a/star_lock/android/app/build.gradle b/star_lock/android/app/build.gradle
index afe6fa92..4cd73a75 100644
--- a/star_lock/android/app/build.gradle
+++ b/star_lock/android/app/build.gradle
@@ -55,12 +55,26 @@ android {
versionName flutterVersionName
}
+// signingConfigs {
+// release {
+// storeFile file("key/keystore.jks")
+// storePassword '123456'
+// keyAlias = 'key0'
+// keyPassword '123456'
+// }
+// }
+
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
+// debug {
+// // TODO: Add your own signing config for the release build.
+// // Signing with the debug keys for now, so `flutter run --release` works.
+// signingConfig signingConfigs.release
+// }
}
}
diff --git a/star_lock/android/app/src/main/AndroidManifest.xml b/star_lock/android/app/src/main/AndroidManifest.xml
index 66743f72..5b60fd8f 100644
--- a/star_lock/android/app/src/main/AndroidManifest.xml
+++ b/star_lock/android/app/src/main/AndroidManifest.xml
@@ -3,8 +3,8 @@
-
-
+
+
diff --git a/star_lock/android/build.gradle b/star_lock/android/build.gradle
index 0425fc73..d8f74fdf 100644
--- a/star_lock/android/build.gradle
+++ b/star_lock/android/build.gradle
@@ -1,5 +1,5 @@
buildscript {
- ext.kotlin_version = '1.9.0'
+ ext.kotlin_version = '1.8.20'
repositories {
google()
mavenCentral()
diff --git a/star_lock/ios/Podfile.lock b/star_lock/ios/Podfile.lock
index 14a8c1c0..0c27c598 100644
--- a/star_lock/ios/Podfile.lock
+++ b/star_lock/ios/Podfile.lock
@@ -23,8 +23,6 @@ PODS:
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- - geocoding_ios (1.0.5):
- - Flutter
- google_maps_flutter_ios (0.0.1):
- Flutter
- GoogleMaps (< 8.0)
@@ -68,7 +66,6 @@ DEPENDENCIES:
- Flutter (from `Flutter`)
- flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- - geocoding_ios (from `.symlinks/plugins/geocoding_ios/ios`)
- google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- network_info_plus (from `.symlinks/plugins/network_info_plus/ios`)
@@ -106,8 +103,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_native_contact_picker/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
- geocoding_ios:
- :path: ".symlinks/plugins/geocoding_ios/ios"
google_maps_flutter_ios:
:path: ".symlinks/plugins/google_maps_flutter_ios/ios"
image_picker_ios:
@@ -141,7 +136,6 @@ SPEC CHECKSUMS:
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
- geocoding_ios: a389ea40f6f548de6e63006a2e31bf66ff80769a
google_maps_flutter_ios: abdac20d6ce8931f6ebc5f46616df241bfaa2cfd
GoogleMaps: 025272d5876d3b32604e5c080dc25eaf68764693
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
diff --git a/star_lock/ios/Runner.xcodeproj/project.pbxproj b/star_lock/ios/Runner.xcodeproj/project.pbxproj
index 5ea99da8..9f133cf6 100644
--- a/star_lock/ios/Runner.xcodeproj/project.pbxproj
+++ b/star_lock/ios/Runner.xcodeproj/project.pbxproj
@@ -375,14 +375,14 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 7NLFRKNVY3;
+ DEVELOPMENT_TEAM = ZJ29NYHTV5;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock123";
+ PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
VERSIONING_SYSTEM = "apple-generic";
@@ -506,14 +506,14 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 7NLFRKNVY3;
+ DEVELOPMENT_TEAM = ZJ29NYHTV5;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock123";
+ PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
VERSIONING_SYSTEM = "apple-generic";
@@ -530,14 +530,14 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 7NLFRKNVY3;
+ DEVELOPMENT_TEAM = ZJ29NYHTV5;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock123";
+ PRODUCT_BUNDLE_IDENTIFIER = "cn.star-lock.lock";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
VERSIONING_SYSTEM = "apple-generic";
diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart
index 6f92c063..03a74eb4 100644
--- a/star_lock/lib/appRouters.dart
+++ b/star_lock/lib/appRouters.dart
@@ -12,11 +12,12 @@ import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/ma
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_main_page.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart';
import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart';
+import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart';
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart';
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_Page.dart';
-import 'package:star_lock/mine/mineSet/mineSet_page.dart';
+import 'package:star_lock/mine/mineSet/mineSet/mineSet_page.dart';
import 'package:star_lock/mine/mineSet/transferGateway/selectGetewayList_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart';
@@ -313,6 +314,9 @@ abstract class Routers {
static const lockUserListPage = '/lockUserListPage'; //锁用户列表
static const administratorDetailsPage = '/administratorDetailsPage'; //管理员详情
static const expireLockListPage = '/expireLockListPage'; //即将到期
+ static const adminDetailChangeDatePage =
+ '/adminDetailChangeDatePage'; //管理员详情修改生效时间
+ static const adminLockListPage = '/adminLockListPage'; //管理员详情的锁列表
}
abstract class AppRouters {
@@ -774,9 +778,11 @@ abstract class AppRouters {
GetPage(
name: Routers.lockUserListPage, page: () => const LockUserListPage()),
GetPage(
- name: Routers.checkInCreatCompanyPage, page: () => const CheckInCreatCompanyPage()),
+ name: Routers.checkInCreatCompanyPage,
+ page: () => const CheckInCreatCompanyPage()),
GetPage(
- name: Routers.checkingInStaffDetailPage, page: () => const CheckingInStaffDetailPage()),
+ name: Routers.checkingInStaffDetailPage,
+ page: () => const CheckingInStaffDetailPage()),
GetPage(
name: Routers.administratorDetailsPage,
page: () => const AdministratorDetailsPage()),
@@ -789,8 +795,9 @@ abstract class AppRouters {
GetPage(
name: Routers.otherTypeKeyChangeValidityDatePage,
page: () => const OtherTypeKeyChangeValidityDatePage()),
+ GetPage(name: Routers.addICCardPage, page: () => const AddICCardPage()),
GetPage(
- name: Routers.addICCardPage,
- page: () => const AddICCardPage())
+ name: Routers.adminDetailChangeDatePage,
+ page: () => const AdminDetailChangeDatePage())
];
}
diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart
index 01d2e090..c9bebcf1 100644
--- a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart
+++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart
@@ -4,6 +4,7 @@ import 'package:flutter_reactive_ble/flutter_reactive_ble.dart';
import 'package:star_lock/blue/io_type.dart';
import '../../../../blue/blue_manage.dart';
+import '../../../../blue/io_protocol/io_addUser.dart';
import '../../../../blue/io_reply.dart';
import '../../../../blue/io_protocol/io_transferPermissions.dart';
import '../../../../blue/io_tool/io_manager.dart';
@@ -20,8 +21,7 @@ class AuthorizedAdminLogic extends BaseGetXController {
// 监听设备返回的数据
late StreamSubscription _replySubscription;
void _initReplySubscription() {
- _replySubscription =
- EventBusManager().eventBus!.on().listen((reply) async {
+ _replySubscription = EventBusManager().eventBus!.on().listen((reply) async {
// 开门
if (reply is TransferPermissionsReply) {
var token = reply.data.sublist(2, 6);
@@ -77,9 +77,77 @@ class AuthorizedAdminLogic extends BaseGetXController {
break;
}
}
+
+ if(reply is AddUserReply) {
+ _replyAddUserKey(reply);
+ }
});
}
+ Future _replyAddUserKey(Reply reply) async {
+ var lockId = reply.data.sublist(2, 42);
+ print("lockId:$lockId");
+
+ var token = reply.data.sublist(42, 46);
+ List strTokenList = changeIntListToStringList(token);
+ Storage.setStringList(saveBlueToken, strTokenList);
+ print("token:$token");
+
+ int status = reply.data[46];
+ print("status:$status");
+
+ // userNo = reply.data[46];
+ print("status:$status");
+ switch(status){
+ case 0x00:
+ //成功
+ print("添加用户数据解析成功");
+ // bindBlueAdmin();
+ break;
+ case 0x06:
+ //无权限
+ print("需要鉴权");
+ var privateKey = await Storage.getStringList(saveBluePrivateKey);
+ List getPrivateKeyList = changeStringListToIntList(privateKey!);
+
+ var publicKey = await Storage.getStringList(saveBluePublicKey);
+ List publicKeyDataList = changeStringListToIntList(publicKey!);
+
+ IoSenderManage.senderAddUser(
+ lockID:BlueManage().connectDeviceName,
+ authUserID:await Storage.getUid(),
+ keyID:"1",
+ userID:await Storage.getUid(),
+ openMode:1,
+ keyType:1,
+ startDate:0x11223344,
+ expireDate:0x11223344,
+ role:255,
+ password:"123456",
+ needAuthor:1,
+ publicKey:publicKeyDataList,
+ privateKey:getPrivateKeyList,
+ token: token
+ );
+ break;
+ case 0x07:
+ //无权限
+ print("用户无权限");
+
+ break;
+ case 0x09:
+ // 权限校验错误
+ print("添加用户权限校验错误");
+
+ break;
+ default:
+ //失败
+ print("领锁失败");
+
+ break;
+ }
+ }
+
// 转移权限
Future transferPermissionsAction() async {
BlueManage().judgeReconnect(
@@ -110,6 +178,44 @@ class AuthorizedAdminLogic extends BaseGetXController {
});
}
+ // 添加用户
+ Future addUserConnectBlue() async {
+ // 进来之后首先连接
+ BlueManage().judgeReconnect(BlueManage().connectDeviceMacAddress, BlueManage().connectDeviceName, (DeviceConnectionState state) async {
+ if (state == DeviceConnectionState.connected){
+ // 私钥
+ var privateKey = await Storage.getStringList(saveBluePrivateKey);
+ List getPrivateKeyList = changeStringListToIntList(privateKey!);
+
+ var publicKey = await Storage.getStringList(saveBluePublicKey);
+ List publicKeyDataList = changeStringListToIntList(publicKey!);
+
+ var token = await Storage.getStringList(saveBlueToken);
+ List getTokenList = [0,0,0,0];
+ if(token != null){
+ getTokenList = changeStringListToIntList(token);
+ }
+
+ IoSenderManage.senderAddUser(
+ lockID: BlueManage().connectDeviceName,
+ authUserID:await Storage.getUid(),
+ keyID:"1",
+ userID:await Storage.getUid(),
+ openMode:1,
+ keyType:1,
+ startDate:DateTime.now().millisecondsSinceEpoch,
+ expireDate:0x11223344,
+ role:255,
+ password:"123456",
+ needAuthor:1,
+ publicKey:publicKeyDataList,
+ privateKey:getPrivateKeyList,
+ token: getTokenList
+ );
+ }
+ });
+ }
+
@override
void onReady() {
// TODO: implement onReady
diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
index 867d7287..cf2e3c45 100644
--- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
+++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
@@ -82,7 +82,7 @@ class LockDetailLogic extends BaseGetXController{
String? userId = '';
final data = await Storage.getString('userLoginData');
if (data != null && data.isNotEmpty) {
- userId = LoginEntity.fromJson(jsonDecode(data)).data!.userid.toString();
+ userId = LoginData.fromJson(jsonDecode(data)).userid.toString();
}
IoSenderManage.senderOpenLock(
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_entity.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_entity.dart
new file mode 100644
index 00000000..82a120f4
--- /dev/null
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_entity.dart
@@ -0,0 +1,43 @@
+class AddFingerprintEntity {
+ int? errorCode;
+ String? description;
+ String? errorMsg;
+ Data? data;
+
+ AddFingerprintEntity(
+ {this.errorCode, this.description, this.errorMsg, this.data});
+
+ AddFingerprintEntity.fromJson(Map json) {
+ errorCode = json['errorCode'];
+ description = json['description'];
+ errorMsg = json['errorMsg'];
+ data = json['data'] != null ? Data.fromJson(json['data']) : null;
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['errorCode'] = errorCode;
+ data['description'] = description;
+ data['errorMsg'] = errorMsg;
+ if (this.data != null) {
+ data['data'] = this.data!.toJson();
+ }
+ return data;
+ }
+}
+
+class Data {
+ int? fingerprintId;
+
+ Data({this.fingerprintId});
+
+ Data.fromJson(Map json) {
+ fingerprintId = json['fingerprintId'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['fingerprintId'] = fingerprintId;
+ return data;
+ }
+}
\ No newline at end of file
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_logic.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_logic.dart
index 388915f5..064d628c 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_logic.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_logic.dart
@@ -57,6 +57,7 @@ class AddFingerprintLogic extends BaseGetXController {
//成功
print("${reply.commandType!.typeValue} 数据解析成功");
state.ifConnectScuess.value = true;
+ state.fingerprintNumber.value = reply.data.last.toString();
break;
case 0x06:
//无权限
@@ -219,7 +220,7 @@ class AddFingerprintLogic extends BaseGetXController {
);
if(entity.errorCode!.codeIsSuccessful){
Toast.show(msg: "添加成功");
- updateFingerprintUserNoLoadData("");
+ updateFingerprintUserNoLoadData(entity.data!.fingerprintId.toString());
}
}
@@ -234,7 +235,9 @@ class AddFingerprintLogic extends BaseGetXController {
Toast.show(msg: "添加成功");
if(state.fromType.value == 2){
// 回调指纹号
- eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(""));
+ eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(fingerprintId));
+ }else if(state.fromType.value == 1){
+ eventBus.fire(OtherTypeRefreshListEvent());
}
Get.close(3);
}
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_state.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_state.dart
index a0eeebb9..b64e3e69 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_state.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_state.dart
@@ -13,7 +13,7 @@ class AddFingerprintState{
final isCoerced = "".obs;
final startDate = "".obs;
final weekDay = [].obs;
- final fromType = 0.obs;
+ final fromType = 1.obs;
AddFingerprintState() {
Map map = Get.arguments;
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_page.dart
index 7644eedb..4aa66dc4 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_page.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_page.dart
@@ -80,6 +80,7 @@ class _AddFingerprintTipPageState extends State {
"isCoerced": state.isCoerced.value,
"startDate": state.startDate.value,
"weekDay": state.weekDay.value,
+ "fromType": state.fromType.value,
});
}),
),
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_state.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_state.dart
index 95c43c07..db79140c 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_state.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addFingerprint/addFingerprintTip/addFingerprintTip_state.dart
@@ -11,7 +11,7 @@ class AddFingerprintTipState{
final isCoerced = "".obs;
final startDate = "".obs;
final weekDay = [].obs;
- final fromType = 0.obs;
+ final fromType = 1.obs;
AddFingerprintTipState() {
Map map = Get.arguments;
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_entity.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_entity.dart
new file mode 100644
index 00000000..c0794ecc
--- /dev/null
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_entity.dart
@@ -0,0 +1,43 @@
+class AddICCardEntity {
+ int? errorCode;
+ String? description;
+ String? errorMsg;
+ Data? data;
+
+ AddICCardEntity(
+ {this.errorCode, this.description, this.errorMsg, this.data});
+
+ AddICCardEntity.fromJson(Map json) {
+ errorCode = json['errorCode'];
+ description = json['description'];
+ errorMsg = json['errorMsg'];
+ data = json['data'] != null ? Data.fromJson(json['data']) : null;
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['errorCode'] = errorCode;
+ data['description'] = description;
+ data['errorMsg'] = errorMsg;
+ if (this.data != null) {
+ data['data'] = this.data!.toJson();
+ }
+ return data;
+ }
+}
+
+class Data {
+ int? cardId;
+
+ Data({this.cardId});
+
+ Data.fromJson(Map json) {
+ cardId = json['cardId'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['cardId'] = cardId;
+ return data;
+ }
+}
\ No newline at end of file
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_logic.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_logic.dart
index 7abfbc71..47844298 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_logic.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_logic.dart
@@ -45,12 +45,13 @@ class AddICCardLogic extends BaseGetXController{
Storage.setStringList(saveBlueToken, saveStrList);
int status = reply.data[2];
- print("status:$status");
+ print("_replyAddFingerprintStatus:$status");
switch(status){
case 0x00:
//成功
print("${reply.commandType!.typeValue} 数据解析成功");
+ state.cardNumber.value = reply.data.last.toString();
state.ifConnectScuess.value = true;
break;
case 0x06:
@@ -96,11 +97,11 @@ class AddICCardLogic extends BaseGetXController{
Future _replyAddICCardConfirmation(Reply reply) async {
var token = reply.data.sublist(2, 6);
var saveStrList = changeIntListToStringList(token);
- print("_replyAddFingerprintReplyToken:$token");
+ print("_replyAddICCardConfirmationReplyToken:$token");
Storage.setStringList(saveBlueToken, saveStrList);
int status = reply.data[2];
- print("status:$status");
+ print("_replyAddFingerprintstatus:$status");
switch(status){
case 0x00:
@@ -175,7 +176,7 @@ class AddICCardLogic extends BaseGetXController{
);
if (entity.errorCode!.codeIsSuccessful) {
Toast.show(msg: "添加成功");
- updateIdCardUserNoLoadData("0");
+ updateIdCardUserNoLoadData(entity.data!.cardId.toString());
}
}
@@ -188,8 +189,10 @@ class AddICCardLogic extends BaseGetXController{
if(entity.errorCode!.codeIsSuccessful){
Toast.show(msg: "添加成功");
if(state.fromType.value == 2){
- // 回调卡号
- eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(""));
+ // 回调指纹号
+ eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(cardId));
+ }else if(state.fromType.value == 1){
+ eventBus.fire(OtherTypeRefreshListEvent());
}
Get.close(2);
}
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_page.dart
index 255494ba..1c65025e 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_page.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/addICCard/addICCard_page.dart
@@ -45,7 +45,9 @@ class _AddICCardPageState extends State {
color: AppColors.blackColor,
borderRadius: BorderRadius.circular(10.w),
),
- child: Center(child: Text("尝试连接设备...", style:TextStyle(color: Colors.white, fontSize: 24.sp))),
+ child: Center(
+ child: Obx(() => Text(state.ifConnectScuess.value ? "已连接到锁,请将卡靠近锁的读卡区" : "尝试连接设备...", style:TextStyle(color: Colors.white, fontSize: 24.sp)))
+ ),
),
],
),
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_state.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_state.dart
index ca314d0b..c0e25752 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_state.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_state.dart
@@ -7,7 +7,7 @@ class OtherTypeAddKeyState{
final lockId = 0.obs;
final seletType = "0".obs;// 0永久 1显示 2循环
final lockType = 0.obs;// 0卡 1指纹 2钥匙
- final fromType = 0.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
+ final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
final isStressFingerprint = false.obs;
var beginTime = "".obs;// 开始时间
diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_logic.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_logic.dart
index eb2fa652..36ae60f6 100644
--- a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_logic.dart
+++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_logic.dart
@@ -321,7 +321,22 @@ class OtherTypeKeyListLogic extends BaseGetXController{
late StreamSubscription _teamEvent;
void _initRefreshAction() {
_teamEvent = eventBus.on().listen((event) {
- getFingerprintsListData();
+ switch (state.fromType.value) {
+ case 0:
+ // 卡
+ getICCardListData();
+ break;
+ case 1:
+ // 指纹
+ getFingerprintsListData();
+ break;
+ case 2:
+ // 遥控
+
+ break;
+ default:
+ break;
+ }
});
}
diff --git a/star_lock/lib/mine/addLock/saveLock/saveLock_state.dart b/star_lock/lib/mine/addLock/saveLock/saveLock_state.dart
index eb91647f..015ddb8a 100644
--- a/star_lock/lib/mine/addLock/saveLock/saveLock_state.dart
+++ b/star_lock/lib/mine/addLock/saveLock/saveLock_state.dart
@@ -1,5 +1,4 @@
-
import 'package:flutter/material.dart';
import 'package:get/get.dart';
diff --git a/star_lock/lib/mine/mine/starLockMine_page.dart b/star_lock/lib/mine/mine/starLockMine_page.dart
index f4fd31e4..13fefaf0 100644
--- a/star_lock/lib/mine/mine/starLockMine_page.dart
+++ b/star_lock/lib/mine/mine/starLockMine_page.dart
@@ -62,49 +62,52 @@ class _StarLockMinePageState extends State with BaseWidget {
fit: BoxFit.fill,
),
Obx(() => Center(
- child: Column(
- // crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- SizedBox(
- height: 120.h,
+ child: Column(
+ // crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ SizedBox(
+ height: 120.h,
+ ),
+ GestureDetector(
+ onTap: () {
+ // Navigator.pushNamed(context, Routers.starLockLoginPage);
+ Navigator.pushNamed(
+ context, Routers.minePersonInfoPage);
+ },
+ child: Container(
+ width: 105.w,
+ height: 105.w,
+ decoration: BoxDecoration(
+ borderRadius:
+ BorderRadius.all(Radius.circular(52.5.w)),
+ ),
+ child:
+ // state.headUrl().isNotEmpty ?
+ // Image(image: NetworkImage(state.loginData.value.data!.headUrl!)) :
+ Image.asset(
+ 'images/mine/icon_mine_main_defaultAvatar.png',
+ width: 60.w,
+ height: 60.w)),
+ ),
+ SizedBox(
+ height: 20.h,
+ ),
+ Text(state.mobile(),
+ style: TextStyle(
+ fontSize: 22.sp,
+ color: Colors.white,
+ )),
+ SizedBox(
+ height: 10.h,
+ ),
+ Text("${TranslationLoader.lanKeys!.accountNumber!.tr}:-",
+ style: TextStyle(
+ fontSize: 18.sp,
+ color: Colors.white,
+ fontWeight: FontWeight.w500)),
+ ],
),
- GestureDetector(
- onTap: () {
- // Navigator.pushNamed(context, Routers.starLockLoginPage);
- Navigator.pushNamed(context, Routers.minePersonInfoPage);
- },
- child: Container(
- width: 105.w,
- height: 105.w,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.all(Radius.circular(52.5.w)),
- ),
- child:
- // state.headUrl().isNotEmpty ?
- // Image(image: NetworkImage(state.loginData.value.data!.headUrl!)) :
- Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 60.w, height: 60.w)
- ),
- ),
- SizedBox(
- height: 20.h,
- ),
- Text(state.mobile(),
- style: TextStyle(
- fontSize: 22.sp,
- color: Colors.white,
- )),
- SizedBox(
- height: 10.h,
- ),
- Text(
- "${TranslationLoader.lanKeys!.accountNumber!.tr}:-",
- style: TextStyle(
- fontSize: 18.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500)),
- ],
- ),
- )),
+ )),
],
),
);
diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart
index 91b23912..d79cf444 100644
--- a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart
+++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart
@@ -78,7 +78,7 @@ class _AddAuthorizedAdministratorPageState
elevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios, color: Colors.white),
- onPressed: () => Navigator.of(context).pop(),
+ onPressed: () => Navigator.pop(context, true),
),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(45),
diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart
new file mode 100644
index 00000000..e18f0510
--- /dev/null
+++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart
@@ -0,0 +1,159 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_pickers/pickers.dart';
+import 'package:flutter_pickers/time_picker/model/date_mode.dart';
+import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:get/get.dart';
+import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
+import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart';
+import 'package:star_lock/network/api_repository.dart';
+import 'package:star_lock/tools/baseGetXController.dart';
+import 'package:star_lock/tools/toast.dart';
+
+import '../../../../../app_settings/app_colors.dart';
+import '../../../../../tools/commonItem.dart';
+import '../../../../../tools/titleAppBar.dart';
+import '../../../../../translations/trans_lib.dart';
+
+class AdminDetailChangeDatePage extends StatefulWidget {
+ const AdminDetailChangeDatePage({Key? key}) : super(key: key);
+
+ @override
+ State createState() =>
+ _AdminDetailChangeDatePage();
+}
+
+class _AdminDetailChangeDatePage extends State {
+ AuthorizedAdminListItem itemData = AuthorizedAdminListItem();
+
+ String _selectEffectiveDate = ''; //生效时间
+ String _selectFailureDate = ''; //失效时间
+ late DateTime _effectiveDateTime;
+ late DateTime _failureDateTime;
+
+ @override
+ Widget build(BuildContext context) {
+ dynamic obj = ModalRoute.of(context)?.settings.arguments;
+ if (obj != null && (obj["itemData"] != null)) {
+ itemData = obj["itemData"];
+ }
+
+ return Scaffold(
+ backgroundColor: AppColors.mainBackgroundColor,
+ appBar: TitleAppBar(
+ barTitle:
+ "${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.periodValidity!.tr}",
+ haveBack: true,
+ backgroundColor: AppColors.mainColor,
+ actionsList: [
+ TextButton(
+ child: Text(
+ TranslationLoader.lanKeys!.sure!.tr,
+ style: TextStyle(color: Colors.white, fontSize: 24.sp),
+ ),
+ onPressed: () {
+ updateAdministratorRequest();
+ },
+ ),
+ ],
+ ),
+ body: buildMainUI(),
+ );
+ }
+
+ Widget buildMainUI() {
+ return Column(
+ children: [
+ CommonItem(
+ leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
+ rightTitle: _selectEffectiveDate,
+ isHaveLine: true,
+ isHaveDirection: true,
+ action: () {
+ Pickers.showDatePicker(context, mode: DateMode.YMDHM,
+ onConfirm: (p) {
+ setState(() {
+ _selectEffectiveDate =
+ '${p.year}-${intToStr(p.month!)}-${intToStr(p.day!)} ${intToStr(p.hour!)}:${intToStr(p.minute!)}';
+ _effectiveDateTime = DateTime.parse(_selectEffectiveDate);
+ });
+ });
+ }),
+ CommonItem(
+ leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
+ rightTitle: _selectFailureDate,
+ isHaveDirection: true,
+ action: () {
+ Pickers.showDatePicker(context, mode: DateMode.YMDHM,
+ onConfirm: (p) {
+ setState(() {
+ _selectFailureDate =
+ '${p.year}-${intToStr(p.month!)}-${intToStr(p.day!)} ${intToStr(p.hour!)}:${intToStr(p.minute!)}';
+ _failureDateTime = DateTime.parse(_selectFailureDate);
+ });
+ });
+ }),
+ ],
+ );
+ }
+
+ //更新管理员信息请求
+ Future updateAdministratorRequest() async {
+ ElectronicKeyListEntity entity = await ApiRepository.to.updateAdministrator(
+ itemData.uid.toString(),
+ '',
+ _failureDateTime.millisecondsSinceEpoch.toString(),
+ _effectiveDateTime.millisecondsSinceEpoch.toString(),
+ '');
+ if (entity.errorCode!.codeIsSuccessful) {
+ print("修改管理员信息成功啦啦啦啦啦");
+ Toast.show(msg: "修改成功");
+ setState(() {
+ Navigator.pop(context);
+ });
+ }
+ }
+
+/*
+ //修改钥匙名称请求
+ Future updateKeyDateRequest() async {
+ KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate(
+ itemData.keyId.toString(),
+ itemData.lockId.toString(),
+ _failureDateTime.millisecondsSinceEpoch.toString(),
+ endDay,
+ '',
+ _effectiveDateTime.millisecondsSinceEpoch.toString(),
+ startDay,
+ weekDays);
+ if (entity.errorCode!.codeIsSuccessful) {
+ print("修改要是名称成功啦啦啦啦啦");
+ Toast.show(msg: "修改成功");
+ setState(() {
+ Navigator.pop(context);
+ });
+ }
+ }
+
+ //更新密码请求
+ Future updatePwdRequest() async {
+ PasswordKeyEntity entity = await ApiRepository.to.updatePasswordKey(
+ lockId,
+ pwdId,
+ '',
+ '',
+ _effectiveDateTime.millisecondsSinceEpoch.toString(),
+ _failureDateTime.millisecondsSinceEpoch.toString(),
+ '');
+ if (entity.errorCode!.codeIsSuccessful) {
+ Toast.show(msg: "修改成功");
+ setState(() {
+ Navigator.pop(context);
+ });
+ }
+ }
+ */
+
+ String intToStr(int v) {
+ return (v < 10) ? "0$v" : "$v";
+ }
+}
diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart
new file mode 100644
index 00000000..4a7f89a0
--- /dev/null
+++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart
@@ -0,0 +1,197 @@
+import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
+
+class AdministratorDetailEntity {
+ int? errorCode;
+ String? description;
+ String? errorMsg;
+ Data? data;
+
+ AdministratorDetailEntity(
+ {this.errorCode, this.description, this.errorMsg, this.data});
+
+ AdministratorDetailEntity.fromJson(Map json) {
+ errorCode = json['errorCode'];
+ description = json['description'];
+ errorMsg = json['errorMsg'];
+ data = json['data'] != null ? Data.fromJson(json['data']) : null;
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['errorCode'] = errorCode;
+ data['description'] = description;
+ data['errorMsg'] = errorMsg;
+ if (this.data != null) {
+ data['data'] = this.data!.toJson();
+ }
+ return data;
+ }
+}
+
+class Data {
+ int? uid;
+ int? keyStatus;
+ int? lockNum;
+ int? endDate;
+ int? startDate;
+ int? isRemoteUnlock;
+ String? name;
+ String? userid;
+ List? lockList;
+
+ Data(
+ {this.uid,
+ this.keyStatus,
+ this.lockNum,
+ this.endDate,
+ this.startDate,
+ this.isRemoteUnlock,
+ this.name,
+ this.userid,
+ this.lockList});
+
+ Data.fromJson(Map json) {
+ uid = json['uid'];
+ keyStatus = json['keyStatus'];
+ lockNum = json['lockNum'];
+ endDate = json['endDate'];
+ startDate = json['startDate'];
+ isRemoteUnlock = json['isRemoteUnlock'];
+ name = json['name'];
+ userid = json['userid'];
+ if (json['lockList'] != null) {
+ lockList = [];
+ json['lockList'].forEach((v) {
+ lockList!.add(LockListItem.fromJson(v));
+ });
+ }
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['uid'] = uid;
+ data['keyStatus'] = keyStatus;
+ data['lockNum'] = lockNum;
+ data['endDate'] = endDate;
+ data['startDate'] = startDate;
+ data['isRemoteUnlock'] = isRemoteUnlock;
+ data['name'] = name;
+ data['userid'] = userid;
+ if (lockList != null) {
+ data['lockList'] = lockList!.map((v) => v.toJson()).toList();
+ }
+ return data;
+ }
+}
+
+class LockItem {
+ int? id;
+ String? clientId;
+ int? lockOwnerId;
+ int? apiUserId;
+ int? lockId;
+ int? senderUserId;
+ String? keyName;
+ int? keyType;
+ int? startDate;
+ int? endDate;
+ List? weekDays;
+ String? remarks;
+ int? remoteEnable;
+ int? isCameraEnable;
+ int? faceAuthentication;
+ int? keyRight;
+ int? userType;
+ int? keyStatus;
+ int? groupId;
+ int? lockUserNo;
+ int? date;
+ String? createdAt;
+ String? updatedAt;
+
+ LockItem(
+ {this.id,
+ this.clientId,
+ this.lockOwnerId,
+ this.apiUserId,
+ this.lockId,
+ this.senderUserId,
+ this.keyName,
+ this.keyType,
+ this.startDate,
+ this.endDate,
+ this.weekDays,
+ this.remarks,
+ this.remoteEnable,
+ this.isCameraEnable,
+ this.faceAuthentication,
+ this.keyRight,
+ this.userType,
+ this.keyStatus,
+ this.groupId,
+ this.lockUserNo,
+ this.date,
+ this.createdAt,
+ this.updatedAt});
+
+ LockItem.fromJson(Map json) {
+ id = json['id'];
+ clientId = json['clientId'];
+ lockOwnerId = json['lockOwnerId'];
+ apiUserId = json['apiUserId'];
+ lockId = json['lockId'];
+ senderUserId = json['senderUserId'];
+ keyName = json['keyName'];
+ keyType = json['keyType'];
+ startDate = json['startDate'];
+ endDate = json['endDate'];
+ if (json['weekDays'] != null) {
+ weekDays = [];
+ json['weekDays'].forEach((v) {
+ weekDays!.add(v);
+ });
+ }
+ remarks = json['remarks'];
+ remoteEnable = json['remoteEnable'];
+ isCameraEnable = json['isCameraEnable'];
+ faceAuthentication = json['faceAuthentication'];
+ keyRight = json['keyRight'];
+ userType = json['userType'];
+ keyStatus = json['keyStatus'];
+ groupId = json['groupId'];
+ lockUserNo = json['lockUserNo'];
+ date = json['date'];
+ createdAt = json['created_at'];
+ updatedAt = json['updated_at'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['id'] = id;
+ data['clientId'] = clientId;
+ data['lockOwnerId'] = lockOwnerId;
+ data['apiUserId'] = apiUserId;
+ data['lockId'] = lockId;
+ data['senderUserId'] = senderUserId;
+ data['keyName'] = keyName;
+ data['keyType'] = keyType;
+ data['startDate'] = startDate;
+ data['endDate'] = endDate;
+ if (weekDays != null) {
+ data['weekDays'] = weekDays!.map((v) => v).toList();
+ }
+ data['remarks'] = remarks;
+ data['remoteEnable'] = remoteEnable;
+ data['isCameraEnable'] = isCameraEnable;
+ data['faceAuthentication'] = faceAuthentication;
+ data['keyRight'] = keyRight;
+ data['userType'] = userType;
+ data['keyStatus'] = keyStatus;
+ data['groupId'] = groupId;
+ data['lockUserNo'] = lockUserNo;
+ data['date'] = date;
+ data['created_at'] = createdAt;
+ data['updated_at'] = updatedAt;
+ return data;
+ }
+}
diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart
index cc6c77a4..fda48f48 100644
--- a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart
+++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
+import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart';
import 'package:star_lock/network/api_repository.dart';
import 'package:star_lock/tools/baseGetXController.dart';
import 'package:star_lock/tools/jh_pop_menus.dart';
@@ -28,12 +29,25 @@ class AdministratorDetailsPage extends StatefulWidget {
class _AdministratorDetailsPageState extends State {
final TextEditingController _changeNameController = TextEditingController();
AuthorizedAdminListItem itemData = AuthorizedAdminListItem();
+ bool _isOnRemote = false;
+ List lockItemList = [];
+ bool _isFirst = true;
+
+ @override
+ void initState() {
+ super.initState();
+ }
@override
Widget build(BuildContext context) {
- dynamic obj = ModalRoute.of(context)?.settings.arguments;
- if (obj != null && (obj["itemData"] != null)) {
- itemData = obj["itemData"];
+ if (_isFirst == true) {
+ dynamic obj = ModalRoute.of(context)?.settings.arguments;
+ if (obj != null && (obj["itemData"] != null)) {
+ itemData = obj["itemData"];
+ }
+ administratorDetailRequest();
+
+ _isOnRemote = itemData.isRemoteUnlock == 1 ? true : false;
}
return Scaffold(
@@ -80,8 +94,7 @@ class _AdministratorDetailsPageState extends State {
rightTitle: getUseDateStr(itemData),
isHaveDirection: true,
action: () {
- Navigator.pushNamed(
- context, Routers.electronicKeyDetailChangeDate,
+ Navigator.pushNamed(context, Routers.adminDetailChangeDatePage,
arguments: {"itemData": itemData});
}),
Container(height: 10.h),
@@ -90,16 +103,16 @@ class _AdministratorDetailsPageState extends State {
rightTitle: itemData.lockNum.toString(),
isHaveDirection: true,
action: () {
- //锁列表
+ //锁列表页面
+ Navigator.pushNamed(context, Routers.lockItemListPage,
+ arguments: {'lockList': lockItemList});
}),
Container(height: 10.h),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr,
rightTitle: "",
isHaveRightWidget: true,
- rightWidget: SizedBox(
- width: 60.w,
- child: _switch(itemData.isRemoteUnlock == 1 ? true : false)),
+ rightWidget: SizedBox(width: 60.w, child: _switch()),
action: () {}),
Container(height: 40.h),
SubmitBtn(
@@ -207,24 +220,41 @@ class _AdministratorDetailsPageState extends State {
);
}
- CupertinoSwitch _switch(isOn) {
+ CupertinoSwitch _switch() {
return CupertinoSwitch(
activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemGrey5,
thumbColor: CupertinoColors.white,
- value: isOn,
+ value: _isOnRemote,
onChanged: (value) {
setState(() {
- isOn = value;
+ _isOnRemote = !_isOnRemote;
+ updateAdministratorRequest();
});
},
);
}
+ //管理员详情请求
+ Future administratorDetailRequest() async {
+ _isFirst = false;
+ AdministratorDetailEntity entity =
+ await ApiRepository.to.authorizedAdminDetail(itemData.uid ?? 0);
+ if (entity.errorCode!.codeIsSuccessful) {
+ print("管理员详情请求成功啦啦啦啦啦");
+ lockItemList = entity.data!.lockList!;
+ }
+ }
+
//更新管理员信息请求
Future updateAdministratorRequest() async {
+ String isRemoteUnlock = _isOnRemote == true ? '1' : '2';
ElectronicKeyListEntity entity = await ApiRepository.to.updateAdministrator(
- itemData.uid.toString(), _changeNameController.text, '', '', '');
+ itemData.uid.toString(),
+ _changeNameController.text,
+ '',
+ '',
+ isRemoteUnlock);
if (entity.errorCode!.codeIsSuccessful) {
print("修改管理员信息成功啦啦啦啦啦");
Toast.show(msg: "修改成功");
@@ -234,15 +264,15 @@ class _AdministratorDetailsPageState extends State {
}
}
- //删除授权管理员请求
+ //删除授权管理员请求 是否删除授权管理员发送的钥匙。 1是,0否
Future deleteAdministratorRequest() async {
- ElectronicKeyListEntity entity =
- await ApiRepository.to.deleteAdministrator(itemData.uid.toString(), '');
+ AuthorizedAdminListEntity entity = await ApiRepository.to
+ .deleteAuthorizedAdmin(itemData.uid.toString(), '0');
if (entity.errorCode!.codeIsSuccessful) {
print("删除电子钥匙成功");
Toast.show(msg: "删除成功");
setState(() {
- Navigator.pop(context);
+ Navigator.pop(context, true);
});
}
}
diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart
index ea44142d..9da69699 100644
--- a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart
+++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart
@@ -23,8 +23,6 @@ class _AuthorizedAdministratorListPageState
@override
void initState() {
super.initState();
-
- mockNetworkDataRequest();
}
@override
@@ -45,7 +43,12 @@ class _AuthorizedAdministratorListPageState
onPressed: () {
// 处理操作按钮的点击事件
Navigator.pushNamed(
- context, Routers.addAuthorizedAdministratorPage);
+ context, Routers.addAuthorizedAdministratorPage)
+ .then((value) {
+ setState(() {
+ mockNetworkDataRequest();
+ });
+ });
},
),
],
@@ -82,15 +85,14 @@ class _AuthorizedAdministratorListPageState
Future> mockNetworkDataRequest() async {
AuthorizedAdminListEntity entity =
await ApiRepository.to.authorizedAdminList('1', '20');
+ List dataList = [];
if (entity.errorCode!.codeIsSuccessful) {
print("授权管理员列表成功:${entity.data?.itemList}");
+ if (entity.data != null) {
+ dataList = entity.data!.itemList!;
+ }
}
- if (entity.data != null) {
- return entity.data!.itemList!;
- } else {
- List dataList = [];
- return dataList;
- }
+ return dataList;
}
Widget _searchWidget() {
@@ -141,7 +143,11 @@ class _AuthorizedAdministratorListPageState
return GestureDetector(
onTap: () {
Navigator.pushNamed(context, Routers.administratorDetailsPage,
- arguments: {'itemData': itemData});
+ arguments: {'itemData': itemData}).then((value) {
+ setState(() {
+ mockNetworkDataRequest();
+ });
+ });
},
child: Container(
height: 100.h,
diff --git a/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart
index 048f332d..48de74fe 100644
--- a/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart
+++ b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart
@@ -1,6 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
+import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
+import 'package:star_lock/network/api_repository.dart';
+import 'package:star_lock/tools/baseGetXController.dart';
+import 'package:star_lock/tools/toast.dart';
import '../../../app_settings/app_colors.dart';
import '../../../tools/submitBtn.dart';
@@ -17,8 +21,30 @@ class HideInvalidUnlockPermissionsPage extends StatefulWidget {
class _HideInvalidUnlockPermissionsPageState
extends State {
+ bool _isOn = true;
+ bool _isFirst = false;
+
+ @override
+ void initState() {
+ super.initState();
+
+ _isFirst = true;
+ }
+
@override
Widget build(BuildContext context) {
+ if (_isFirst) {
+ dynamic obj = ModalRoute.of(context)?.settings.arguments;
+ if (obj != null && (obj["isOn"] != null)) {
+ int getValue = obj["isOn"];
+ if (getValue == 1) {
+ _isOn = true;
+ } else {
+ _isOn = false;
+ }
+ }
+ }
+
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
@@ -50,7 +76,7 @@ class _HideInvalidUnlockPermissionsPageState
children: [
Expanded(
child: Text(
- "${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}",
+ "${TranslationLoader.lanKeys!.currentMode!.tr} : ${_isOn == true ? TranslationLoader.lanKeys!.opened!.tr : TranslationLoader.lanKeys!.closed!.tr}",
style:
TextStyle(fontWeight: FontWeight.w600, fontSize: 22.sp),
)),
@@ -60,14 +86,31 @@ class _HideInvalidUnlockPermissionsPageState
height: 40.h,
),
SubmitBtn(
- btnName: TranslationLoader.lanKeys!.closed!.tr,
+ btnName: _isOn == true
+ ? TranslationLoader.lanKeys!.close!.tr
+ : TranslationLoader.lanKeys!.open!.tr,
borderRadius: 20.w,
fontSize: 32.sp,
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
- onClick: () {}),
+ onClick: () {
+ _isFirst = false;
+ setState(() {
+ _isOn = !_isOn;
+ });
+ changeSettingsRequest();
+ }),
],
),
));
}
+
+ //锁屏/隐藏无效开锁权限 1:锁屏 2:隐藏无效开锁权限
+ Future changeSettingsRequest() async {
+ ExpireLockListEntity entity =
+ await ApiRepository.to.changeSettings(_isOn == true ? '1' : '2', '2');
+ if (entity.errorCode!.codeIsSuccessful) {
+ Toast.show(msg: '操作成功');
+ }
+ }
}
diff --git a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart
index 9951a0c1..beb9b8ce 100644
--- a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart
+++ b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart
@@ -47,6 +47,14 @@ class _LockScreenPageState extends State {
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.lockScreen!.tr,
+ // backAction: () {
+ // Navigator.pop(context, true);
+ // },
+ // haveOtherLeftWidget: true,
+ // leftWidget: IconButton(
+ // icon: const Icon(Icons.arrow_back_ios, color: Colors.white),
+ // onPressed: () => Navigator.of(context).pop(true),
+ // ),
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Container(
@@ -83,8 +91,8 @@ class _LockScreenPageState extends State {
),
SubmitBtn(
btnName: _isOn == true
- ? TranslationLoader.lanKeys!.open!.tr
- : TranslationLoader.lanKeys!.closed!.tr,
+ ? TranslationLoader.lanKeys!.close!.tr
+ : TranslationLoader.lanKeys!.open!.tr,
onClick: () {
_isFirst = false;
setState(() {
diff --git a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart
index 6236370c..dfd5e047 100644
--- a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart
+++ b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart
@@ -63,7 +63,10 @@ class _LockUserManageListPageState extends State {
),
onPressed: () {
Navigator.pushNamed(
- context, Routers.massSendElectronicKeyManagePage);
+ context, Routers.massSendElectronicKeyManagePage)
+ .then((value) {
+ lockUserListRequest();
+ });
},
child: Text(
TranslationLoader.lanKeys!.sendGroupKey!.tr,
diff --git a/star_lock/lib/mine/mineSet/entity/userSettingInfoEntity.dart b/star_lock/lib/mine/mineSet/mineSet/entity/userSettingInfoEntity.dart
similarity index 100%
rename from star_lock/lib/mine/mineSet/entity/userSettingInfoEntity.dart
rename to star_lock/lib/mine/mineSet/mineSet/entity/userSettingInfoEntity.dart
diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart
similarity index 89%
rename from star_lock/lib/mine/mineSet/mineSet_page.dart
rename to star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart
index 0063d0bb..f2577f9c 100644
--- a/star_lock/lib/mine/mineSet/mineSet_page.dart
+++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart
@@ -2,17 +2,17 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
-import 'package:star_lock/mine/mineSet/entity/userSettingInfoEntity.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
import 'package:star_lock/network/api_repository.dart';
import 'package:star_lock/tools/baseGetXController.dart';
-import '../../appRouters.dart';
-import '../../app_settings/app_colors.dart';
-import '../../tools/commonItem.dart';
-import '../../tools/submitBtn.dart';
-import '../../tools/titleAppBar.dart';
-import '../../translations/trans_lib.dart';
+import '../../../appRouters.dart';
+import '../../../app_settings/app_colors.dart';
+import '../../../tools/commonItem.dart';
+import '../../../tools/submitBtn.dart';
+import '../../../tools/titleAppBar.dart';
+import '../../../translations/trans_lib.dart';
+import 'entity/userSettingInfoEntity.dart';
class MineSetPage extends StatefulWidget {
const MineSetPage({Key? key}) : super(key: key);
@@ -142,7 +142,11 @@ class _MineSetPageState extends State {
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.lockScreen!.tr,
- rightTitle: TranslationLoader.lanKeys!.opened!.tr,
+ rightTitle: _userInfoData.userSettings != null
+ ? (_userInfoData.userSettings!.lockScreen == 1
+ ? TranslationLoader.lanKeys!.opened!.tr
+ : TranslationLoader.lanKeys!.closed!.tr)
+ : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true,
isHaveDirection: true,
action: () {
@@ -156,12 +160,24 @@ class _MineSetPageState extends State {
CommonItem(
leftTitel: TranslationLoader
.lanKeys!.hideInvalidUnlockPermissions!.tr,
- rightTitle: TranslationLoader.lanKeys!.closed!.tr,
+ rightTitle: _userInfoData.userSettings != null
+ ? (_userInfoData
+ .userSettings!.hideExpiredAccessFlag ==
+ 1
+ ? TranslationLoader.lanKeys!.opened!.tr
+ : TranslationLoader.lanKeys!.closed!.tr)
+ : TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
- context, Routers.hideInvalidUnlockPermissionsPage);
+ context, Routers.hideInvalidUnlockPermissionsPage,
+ arguments: {
+ 'isOn': _userInfoData
+ .userSettings!.hideExpiredAccessFlag
+ }).then((value) {
+ userSettingsInfoRequest();
+ });
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!
diff --git a/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart b/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart
index d135d883..77ee6b03 100644
--- a/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart
+++ b/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart
@@ -152,7 +152,7 @@ class _SelectGetewayListPageState extends State {
}
var data = await Get.toNamed(Routers.recipientInformationPage, arguments: {
"idList":idList,
- "isFromType":1,
+ "isFromType":2,
});
if(data != null) {
logic.getGetewayListData();
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_logic.dart b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_logic.dart
index d7ccf401..4a1d9797 100644
--- a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_logic.dart
+++ b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_logic.dart
@@ -23,7 +23,7 @@ class RecipientInformationLogic extends BaseGetXController{
}
}
- // 转移智能锁确认
+ // 转移智能锁
Future transferLockInfoData() async{
var entity = await ApiRepository.to.transferLockInfoData(
receiverUserid: state.numberController.text,
@@ -35,6 +35,30 @@ class RecipientInformationLogic extends BaseGetXController{
}
}
+ // 转移网关确认
+ Future transferGateWayConfirmInfoData(void Function(RecipientInformationData recipientInformationData) action) async{
+ var entity = await ApiRepository.to.transferGatewayConfirmInfoData(
+ receiverUserid: state.numberController.text,
+ type: state.type.value.toString(),
+ countryCode: state.countryCode.value
+ );
+ if(entity.errorCode!.codeIsSuccessful){
+ action(entity.data!);
+ }
+ }
+
+ // 转移网关
+ Future transferGatewayInfoData() async{
+ var entity = await ApiRepository.to.transferGatewayInfoData(
+ receiverUserid: state.numberController.text,
+ plugIdList: state.idList.value,
+ countryCode: state.countryCode.value
+ );
+ if(entity.errorCode!.codeIsSuccessful){
+ Get.back(result: "scuess");
+ }
+ }
+
@override
void onReady() {
// TODO: implement onReady
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart
index da3c4f45..83ba7af6 100644
--- a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart
+++ b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart
@@ -59,7 +59,7 @@ class _RecipientInformationPageState extends State {
state.type.value = 1;
});
}),
- _electronicKeyItem(state.type.value == 2 ? 'images/select_circle.png' : 'images/normal_circle.png', "好房管家", () {
+ _electronicKeyItem(state.type.value == 2 ? 'images/select_circle.png' : 'images/normal_circle.png', "星寓", () {
setState(() {
state.type.value = 2;
});
@@ -120,7 +120,7 @@ class _RecipientInformationPageState extends State {
onChanged: (value) {},
decoration: InputDecoration(
border: InputBorder.none,
- hintText: state.type.value == 1 ? "请输入手机号或email" : "请输入好房管家管理员的账号",
+ hintText: state.type.value == 1 ? "请输入手机号或email" : "请输入星寓管理员的账号",
hintStyle: TextStyle(
color: AppColors.placeholderTextColor,
fontSize: ScreenUtil().setSp(22),
@@ -182,18 +182,35 @@ class _RecipientInformationPageState extends State {
Toast.show(msg: "请输入手机号或email");
return;
}
- if(state.type.value == 1){
- logic.transferLockConfirmInfoData((v){
- showCupertinoAlertDialog(context, v);
- });
+ if(state.isFromType.value == 1){
+ // 转移智能锁
+ if(state.type.value == 1){
+ logic.transferLockConfirmInfoData((v){
+ showCupertinoAlertDialog(context, v);
+ });
+ }else{
+ Get.toNamed(Routers.selectBranchPage, arguments: {
+ "idList":state.idList.value,
+ "countryCode":state.countryCode.value,
+ "number":state.numberController.text,
+ "isFromType":state.isFromType.value,
+ });
+ }
}else{
- Get.toNamed(Routers.selectBranchPage, arguments: {
- "idList":state.idList.value,
- "countryCode":state.countryCode.value,
- "number":state.numberController.text,
- });
+ // 转移网关
+ if(state.type.value == 1){
+ logic.transferGateWayConfirmInfoData((v){
+ showCupertinoAlertDialog(context, v);
+ });
+ }else{
+ Get.toNamed(Routers.selectBranchPage, arguments: {
+ "idList":state.idList.value,
+ "countryCode":state.countryCode.value,
+ "number":state.numberController.text,
+ "isFromType":state.isFromType.value
+ });
+ }
}
-
});
}
@@ -211,6 +228,7 @@ class _RecipientInformationPageState extends State {
);
}
+ // 点击确认
void showCupertinoAlertDialog(BuildContext context, RecipientInformationData recipientInformationData) {
showGeneralDialog(
context: context,
@@ -248,7 +266,7 @@ class _RecipientInformationPageState extends State {
child: Container(
width: 80.w,
color: Colors.red,
- child: Center(child: Text(state.type.value == 1 ? "个人用户" : "好房管家", style: TextStyle(fontSize: 18.sp, color: Colors.white))),
+ child: Center(child: Text(state.type.value == 1 ? "个人用户" : "星寓", style: TextStyle(fontSize: 18.sp, color: Colors.white))),
),
)
],
@@ -279,7 +297,13 @@ class _RecipientInformationPageState extends State {
ElevatedButton(
onPressed: () {
Get.back();
- logic.transferLockInfoData();
+ if(state.isFromType.value == 1){
+ // 转移智能锁 transferGatewayInfoData
+ logic.transferLockInfoData();
+ }else{
+ // 转移网关
+ logic.transferGatewayInfoData();
+ }
},
style: ElevatedButton.styleFrom(
onPrimary: AppColors.appBarIconColor,
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_state.dart b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_state.dart
index 5e75faa1..449da949 100644
--- a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_state.dart
+++ b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_state.dart
@@ -8,7 +8,7 @@ class RecipientInformationState{
final countryName = "中国".obs;
final countryCode = "86".obs;
- final isFromType = 1.obs;
+ final isFromType = 1.obs; // 1从转移智能锁过来 2 转移网关
final idList = [].obs;
RecipientInformationState() {
Map map = Get.arguments;
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart
index afe84454..521e126a 100644
--- a/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart
+++ b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart
@@ -175,7 +175,7 @@ class _SelectBranchPageState extends State {
child: Container(
width: 80.w,
color: Colors.red,
- child: Center(child: Text(state.type.value == 1 ? "个人用户" : "好房管家", style: TextStyle(fontSize: 18.sp, color: Colors.white))),
+ child: Center(child: Text(state.type.value == 1 ? "个人用户" : "星寓", style: TextStyle(fontSize: 18.sp, color: Colors.white))),
),
)
],
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/transferConfirmationBox/transferConfirmationBox_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/transferConfirmationBox/transferConfirmationBox_page.dart
deleted file mode 100644
index e69de29b..00000000
diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_page.dart
index a2fe3efe..a65bd4d0 100644
--- a/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_page.dart
+++ b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_page.dart
@@ -183,7 +183,7 @@ class _TransferSmartLockPageState extends State {
}
var data = await Get.toNamed(Routers.recipientInformationPage, arguments: {
"idList":idList,
- "isFromType":2,
+ "isFromType":1,
});
if(data != null) {
logic.getTransferLockListData();
diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart
index 074a2e73..8048dce4 100644
--- a/star_lock/lib/network/api.dart
+++ b/star_lock/lib/network/api.dart
@@ -94,6 +94,8 @@ abstract class Api {
final String transferLockURL = '/room/transfer'; // 转移智能锁
final String gatewaykListURL = '/plug/list'; // 转网关列表
+ final String transferGatewayConfirmURL = '/plug/transferPlugConfirm'; // 转移网关确认
+ final String transferGatewayURL = '/plug/transfer'; // 转移网关
final String getKeyDetailURL = '/key/get'; //获取单把钥匙详情信息
final String lockUserListURL = '/keyUser/listKeyUser'; //锁用户列表
@@ -102,6 +104,7 @@ abstract class Api {
final String addAuthorizedAdminURL = '/authorizedAdmin/add'; //增加授权管理员
final String keyListByUserURL = '/keyUser/listByUse'; //用户拥有的锁
final String authorizedAdminListURL = '/authorizedAdmin/list'; //授权管理员列表
+ final String authorizedAdminDetailURL = '/authorizedAdmin/detail'; //授权管理员详情
final String deleteAdministratorURL = '/authorizedAdmin/delete'; //删除授权管理员
final String updateAdministratorURL =
'/authorizedAdmin/update'; //管理员姓名/有效期/远程开锁修改
diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart
index a87c93b3..f15c8af0 100644
--- a/star_lock/lib/network/api_provider.dart
+++ b/star_lock/lib/network/api_provider.dart
@@ -409,16 +409,16 @@ class ApiProvider extends BaseProvider {
post(deleteElectronicKeyURL.toUrl,
jsonEncode({'uid': uid, 'includeUnderlings': includeUnderlings}));
- Future updateAdministrator(String uid, String name, String endDate,
- String startDate, String isRemoteUnlock) =>
+ Future updateAdministrator(String uid, String keyName,
+ String endDate, String startDate, String remoteEnable) =>
post(
- deleteElectronicKeyURL.toUrl,
+ updateAdministratorURL.toUrl,
jsonEncode({
'uid': uid,
- 'name': name,
+ 'keyName': keyName,
'endDate': endDate,
'startDate': startDate,
- 'isRemoteUnlock': isRemoteUnlock
+ 'remoteEnable': remoteEnable
}));
Future expireLockList(
@@ -928,17 +928,11 @@ class ApiProvider extends BaseProvider {
// 更新ICCard序号
Future updateIdCardUserNoLoadData(
- String cardId,
- String lockId,
- String cardUserNo) =>
+ String cardId, String lockId, String cardUserNo) =>
post(
updateICCardUserNoURL.toUrl,
- jsonEncode({
- 'cardId': cardId,
- 'lockId': lockId,
- 'cardUserNo': cardUserNo
- })
- );
+ jsonEncode(
+ {'cardId': cardId, 'lockId': lockId, 'cardUserNo': cardUserNo}));
// 获取转移锁锁列表
Future getTransferLockListData() =>
@@ -987,6 +981,34 @@ class ApiProvider extends BaseProvider {
})
);
+ // 转移网关确认
+ Future transferGatewayConfirmInfoData(
+ String receiverUserid,
+ String type,
+ String countryCode) =>
+ post(
+ transferGatewayConfirmURL.toUrl,
+ jsonEncode({
+ 'receiverUserid': receiverUserid,
+ 'type': type,
+ 'countryCode': countryCode
+ })
+ );
+
+ // 转移网关
+ Future transferGatewayInfoData(
+ String receiverUserid,
+ List plugIdList,
+ String countryCode) =>
+ post(
+ transferGatewayURL.toUrl,
+ jsonEncode({
+ 'receiverUserid': receiverUserid,
+ 'plugIdList': plugIdList,
+ 'countryCode': countryCode
+ })
+ );
+
Future listLockByGroup(String type, String keyGroupId) => post(
listLockByGroupURL.toUrl,
jsonEncode({'type': type, 'keyGroupId': keyGroupId}));
@@ -1012,6 +1034,26 @@ class ApiProvider extends BaseProvider {
authorizedAdminListURL.toUrl,
jsonEncode({'pageNo': pageNo, 'pageSize': pageSize}));
+ Future authorizedAdminDetail(int uid) =>
+ post(authorizedAdminDetailURL.toUrl, jsonEncode({'uid': uid}));
+
+ Future deleteAuthorizedAdmin(
+ String uid, String includeUnderlings) =>
+ post(deleteAdministratorURL.toUrl,
+ jsonEncode({'uid': uid, 'includeUnderlings': includeUnderlings}));
+
+ Future updateAuthorizedAdmin(String uid, String name,
+ String endDate, String startDate, String isRemoteUnlock) =>
+ post(
+ updateAdministratorURL.toUrl,
+ jsonEncode({
+ 'uid': uid,
+ 'name': name,
+ 'endDate': endDate,
+ 'startDate': startDate,
+ 'isRemoteUnlock': isRemoteUnlock
+ }));
+
Future setAlertMode(String alertMode, String isOn) => post(
setAlertModeURL.toUrl,
jsonEncode({'alertMode': alertMode, 'isOn': isOn}));
diff --git a/star_lock/lib/network/api_provider_base.dart b/star_lock/lib/network/api_provider_base.dart
index a81089fa..8a5933c8 100644
--- a/star_lock/lib/network/api_provider_base.dart
+++ b/star_lock/lib/network/api_provider_base.dart
@@ -61,8 +61,8 @@ class BaseProvider extends GetConnect with Api {
return res;
}
- getDataResult(T){
- switch(T["errorCode"]){
+ getDataResult(T) {
+ switch (T["errorCode"]) {
case 403:
Get.offNamedUntil(Routers.starLockLoginPage, (route) => false);
break;
diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart
index 6425f2aa..49a4cb65 100644
--- a/star_lock/lib/network/api_repository.dart
+++ b/star_lock/lib/network/api_repository.dart
@@ -8,8 +8,8 @@ import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/basicInformat
import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/LockGroupListEntity.dart';
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart';
import 'package:star_lock/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKeyEntity.dart';
+import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart';
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart';
-import 'package:star_lock/mine/mineSet/entity/userSettingInfoEntity.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/keyListByUserEntity.dart';
import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart';
@@ -27,9 +27,12 @@ import '../main/lockDetail/lcokSet/configuringWifi/configuringWifiEntity.dart';
import '../main/lockDetail/lcokSet/lockSet/CheckingInInfoDataEntity.dart';
import '../main/lockDetail/lcokSet/lockTime/GetServerDatetimeEntity.dart';
import '../main/lockDetail/lcokSet/normallyOpenMode/GetPassageModeConfigEntity.dart';
+import '../main/lockDetail/otherTypeKey/addFingerprint/addFingerprint/addFingerprint_entity.dart';
+import '../main/lockDetail/otherTypeKey/addICCard/addICCard_entity.dart';
import '../main/lockDetail/otherTypeKey/otherTypeKeyList/fingerprintListData_entity.dart';
import '../main/lockMian/entity/lockInfoEntity.dart';
import '../mine/addLock/saveLock/entity/SaveLockEntity.dart';
+import '../mine/mineSet/mineSet/entity/userSettingInfoEntity.dart';
import '../mine/mineSet/transferGateway/selectGetewayList_entity.dart';
import '../mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_entity.dart';
import '../mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_entity.dart';
@@ -404,10 +407,14 @@ class ApiRepository {
}
//更新授权管理员
- Future updateAdministrator(String uid, String name,
- String endDate, String startDate, String isRemoteUnlock) async {
+ Future updateAdministrator(
+ String uid,
+ String keyName,
+ String endDate,
+ String startDate,
+ String remoteEnable) async {
final res = await apiProvider.updateAdministrator(
- uid, name, endDate, startDate, isRemoteUnlock);
+ uid, keyName, endDate, startDate, remoteEnable);
return ElectronicKeyListEntity.fromJson(res.body);
}
@@ -653,6 +660,31 @@ class ApiRepository {
return AuthorizedAdminListEntity.fromJson(res.body);
}
+ //授权管理员详情
+ Future authorizedAdminDetail(int uid) async {
+ final res = await apiProvider.authorizedAdminDetail(uid);
+ return AdministratorDetailEntity.fromJson(res.body);
+ }
+
+ //删除授权管理员
+ Future deleteAuthorizedAdmin(
+ String uid, String includeUnderlings) async {
+ final res = await apiProvider.deleteAuthorizedAdmin(uid, includeUnderlings);
+ return AuthorizedAdminListEntity.fromJson(res.body);
+ }
+
+ //更新授权管理员
+ Future updateAuthorizedAdmin(
+ String uid,
+ String name,
+ String endDate,
+ String startDate,
+ String isRemoteUnlock) async {
+ final res = await apiProvider.updateAuthorizedAdmin(
+ uid, name, endDate, startDate, isRemoteUnlock);
+ return AuthorizedAdminListEntity.fromJson(res.body);
+ }
+
//提示音
Future setAlertMode(
String alertMode, String isOn) async {
@@ -883,7 +915,7 @@ class ApiRepository {
}
// 添加指纹
- Future addFingerprintsData({
+ Future addFingerprintsData({
required String lockId,
required String endDate,
required String addType,
@@ -904,7 +936,7 @@ class ApiRepository {
isCoerced,
startDate,
weekDay);
- return CheckingInListMonthEntity.fromJson(res.body);
+ return AddFingerprintEntity.fromJson(res.body);
}
// 编辑指纹
@@ -955,7 +987,7 @@ class ApiRepository {
}
// 添加ID卡
- Future addICCardData({
+ Future addICCardData({
required String lockId,
required String endDate,
required String cardName,
@@ -968,7 +1000,7 @@ class ApiRepository {
}) async {
final res = await apiProvider.addICCardData(lockId, endDate, cardName,
cardNumber, cardType, addType, startDate, isCoerced, weekDay);
- return CheckingInListMonthEntity.fromJson(res.body);
+ return AddICCardEntity.fromJson(res.body);
}
// 编辑IC卡
@@ -998,13 +1030,11 @@ class ApiRepository {
// 更新ICCard用户序号
Future updateIdCardUserNoLoadData(
- {
- required String lockId,
- required String cardId,
- required String cardUserNo
- }) async {
- final res =
- await apiProvider.updateIdCardUserNoLoadData(lockId, cardId, cardUserNo);
+ {required String lockId,
+ required String cardId,
+ required String cardUserNo}) async {
+ final res = await apiProvider.updateIdCardUserNoLoadData(
+ lockId, cardId, cardUserNo);
return LoginEntity.fromJson(res.body);
}
@@ -1015,32 +1045,49 @@ class ApiRepository {
}
// 转移智能锁确认
- Future transferLockConfirmInfoData({
- required String receiverUserid,
- required String type,
- required String countryCode
- }) async {
- final res = await apiProvider.transferLockConfirmInfoData(receiverUserid, type, countryCode);
+ Future transferLockConfirmInfoData(
+ {required String receiverUserid,
+ required String type,
+ required String countryCode}) async {
+ final res = await apiProvider.transferLockConfirmInfoData(
+ receiverUserid, type, countryCode);
return RecipientInformationEntity.fromJson(res.body);
}
// 转移智能锁
- Future transferLockInfoData({
- required String receiverUserid,
- required List lockIdList,
- required String countryCode
- }) async {
- final res = await apiProvider.transferLockInfoData(receiverUserid, lockIdList, countryCode);
+ Future transferLockInfoData(
+ {required String receiverUserid,
+ required List lockIdList,
+ required String countryCode}) async {
+ final res = await apiProvider.transferLockInfoData(
+ receiverUserid, lockIdList, countryCode);
return RecipientInformationEntity.fromJson(res.body);
}
// 获取网关列表
- Future getGatewayListData({
- required String pageNo,
- required String pageSize
- }) async {
+ Future getGatewayListData(
+ {required String pageNo, required String pageSize}) async {
final res = await apiProvider.getGatewayListData(pageNo, pageSize);
return GetewayDataEntity.fromJson(res.body);
}
+ // 转移网关确认
+ Future transferGatewayConfirmInfoData(
+ {required String receiverUserid,
+ required String type,
+ required String countryCode}) async {
+ final res = await apiProvider.transferGatewayConfirmInfoData(
+ receiverUserid, type, countryCode);
+ return RecipientInformationEntity.fromJson(res.body);
+ }
+
+ // 转移智能锁
+ Future transferGatewayInfoData(
+ {required String receiverUserid,
+ required List plugIdList,
+ required String countryCode}) async {
+ final res = await apiProvider.transferGatewayInfoData(
+ receiverUserid, plugIdList, countryCode);
+ return RecipientInformationEntity.fromJson(res.body);
+ }
}
diff --git a/star_lock/lib/tools/storage.dart b/star_lock/lib/tools/storage.dart
index b6fcbb3a..7025bcfd 100644
--- a/star_lock/lib/tools/storage.dart
+++ b/star_lock/lib/tools/storage.dart
@@ -5,6 +5,7 @@ import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
+import '../login/login/entity/LoginData.dart';
import '../login/login/entity/LoginEntity.dart';
class Storage {
@@ -122,7 +123,7 @@ class Storage {
String? userId = '';
final data = await Storage.getString('userLoginData');
if (data != null && data.isNotEmpty) {
- userId = LoginEntity.fromJson(jsonDecode(data)).data!.userid.toString();
+ userId = LoginData.fromJson(jsonDecode(data)).userid.toString();
}
print("pubUserId:$userId");
return userId;
diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml
index b294cf15..39a98c4a 100644
--- a/star_lock/pubspec.yaml
+++ b/star_lock/pubspec.yaml
@@ -100,7 +100,7 @@ dependencies:
# 谷歌地图
google_maps_flutter: ^2.2.5
- geocoding: ^2.1.0
+# geocoding: ^2.1.0
# 允许App发现网络的相关信息并且进行相应的配置
network_info_plus: ^4.0.2