From 36b1729ee1afc70c35f7e4c84efcdb46b5abd20c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Tue, 18 Jun 2024 10:36:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BE=A4=E5=8F=91=E7=94=B5?= =?UTF-8?q?=E5=AD=90=E9=92=A5=E5=8C=99=E3=80=81=E9=94=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E3=80=81=E6=88=91=E7=9A=84-=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E7=AE=A1=E7=90=86=E5=91=98=E6=A8=A1=E5=9D=97=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/lan/lan_en.json | 4 +- images/lan/lan_keys.json | 4 +- images/lan/lan_zh.json | 4 +- .../massSendElectronicKey_page.dart | 27 ++++--- .../massSendElectronicKey_state.dart | 2 +- .../lockUserList/lockUserList_entity.dart | 18 ++--- .../lockUserList/lockUserList_logic.dart | 3 +- .../lockUserList/lockUserList_page.dart | 22 +++--- .../lockUserList/lockUserList_state.dart | 1 + .../massSendLockGroupListEntity.dart | 38 ++++----- .../massSendLockGroupList_logic.dart | 2 +- .../massSendLockGroupList_page.dart | 4 +- .../massSendLockGroupList_state.dart | 2 +- .../massSendReceiverCell.dart | 47 ++++++----- .../massSendReceiver_logic.dart | 1 + .../massSendReceiver_page.dart | 12 ++- .../massSendReceiver_state.dart | 2 +- .../addAuthorizedAdministrator_page.dart | 78 ++++++++++--------- .../addAuthorizedAdministrator_state.dart | 4 +- .../authorizedAdministratorList_logic.dart | 11 +-- .../authorizedAdministratorList_page.dart | 6 +- .../keyListByUserEntity.dart | 72 ++++++++--------- .../lockUserManageList_logic.dart | 5 -- .../lockUserManageList_page.dart | 8 +- .../ownedKeyList/ownedKeyList_logic.dart | 18 ++--- .../ownedKeyList/ownedKeyList_page.dart | 25 +++--- 26 files changed, 227 insertions(+), 193 deletions(-) diff --git a/images/lan/lan_en.json b/images/lan/lan_en.json index 082f6f50..cb39e17a 100755 --- a/images/lan/lan_en.json +++ b/images/lan/lan_en.json @@ -904,5 +904,7 @@ "确认": "Confirm", "移除成功": "Remove successfully", "转移成功": "Transfer success", - "该已锁被删除": "The locked is deleted" + "该已锁被删除": "The locked is deleted", + "授权管理员只能查看和管理自己下发的钥匙、密码等权限": "Authorized administrators can only view and manage the keys, passwords, etc. they issued", + "添加授权管理员": "Add authorized administrator" } diff --git a/images/lan/lan_keys.json b/images/lan/lan_keys.json index 2baa7bae..49d763d5 100755 --- a/images/lan/lan_keys.json +++ b/images/lan/lan_keys.json @@ -936,5 +936,7 @@ "确认": "确认", "移除成功": "移除成功", "转移成功": "转移成功", - "该已锁被删除": "该已锁被删除" + "该已锁被删除": "该已锁被删除", + "授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限", + "添加授权管理员": "添加授权管理员" } diff --git a/images/lan/lan_zh.json b/images/lan/lan_zh.json index 4dc2b1c1..91ab9c85 100755 --- a/images/lan/lan_zh.json +++ b/images/lan/lan_zh.json @@ -901,5 +901,7 @@ "确认": "确认", "移除成功": "移除成功", "转移成功": "转移成功", - "该已锁被删除": "该已锁被删除" + "该已锁被删除": "该已锁被删除", + "授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限", + "添加授权管理员": "添加授权管理员" } diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart index 66ca8f01..e962d675 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart @@ -204,18 +204,21 @@ class _MassSendElectronicKeyPageState extends State { ? TranslationLoader.lanKeys!.pleaseSelect!.tr : state.lockIdList.length.toString(), isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.massSendLockGroupListPage, - arguments: { - 'keyLimits': '2', - }).then((Object? value) { - //得到选中的锁ID列表 - if (value != null) { - value as Map; - state.lockIdList = value['selectLockIdList']; - setState(() {}); - } - }); + action: () async { + final result = await Get.toNamed(Routers.massSendLockGroupListPage, + arguments: { + 'keyLimits': '1', + 'lockIdList': state.lockIdList + }); + if (result != null && result.isNotEmpty) { + final List selectLockIdList = result['selectLockIdList']; + state.lockIdList.clear(); + // state.lockIdList.addAll(state.lockIdList.value); + selectLockIdList.forEach((element) { + state.lockIdList.add(element); + }); + setState(() {}); + } }), Container(height: 10.h), ], diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart index 9a7002ab..d2208c78 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart @@ -8,7 +8,7 @@ class MassSendElectronicKeyState{ final RxBool isRemoteUnlock = false.obs; //是否允许远程开锁 List receiverList = []; //接受者列表 - List lockIdList = []; //选中的锁ID列表 + List lockIdList = []; //选中的锁ID列表 RxString beginTime = ''.obs; //默认为当前时间 开始时间 RxString endTime = ''.obs;//默认为当前时间 结束时间 diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart index 218d6d55..68c125f7 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart @@ -1,8 +1,4 @@ class LockUserListEntity { - int? errorCode; - String? description; - String? errorMsg; - List? data; LockUserListEntity( {this.errorCode, this.description, this.errorMsg, this.data}); @@ -18,6 +14,10 @@ class LockUserListEntity { }); } } + int? errorCode; + String? description; + String? errorMsg; + List? data; Map toJson() { final Map data = {}; @@ -32,11 +32,6 @@ class LockUserListEntity { } class LockUserItemData { - int? uid; - String? nickname; - String? headUrl; - String? userid; - bool? isCheck = false; LockUserItemData( {this.uid, this.nickname, this.headUrl, this.userid, this.isCheck}); @@ -47,6 +42,11 @@ class LockUserItemData { headUrl = json['headUrl']; userid = json['userid']; } + int? uid; + String? nickname; + String? headUrl; + String? userid; + bool? isCheck = false; Map toJson() { final Map data = {}; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_logic.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_logic.dart index 5289e0fd..10365755 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_logic.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_logic.dart @@ -1,3 +1,4 @@ + import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -8,7 +9,7 @@ class LockUserListLogic extends BaseGetXController { //请求锁用户列表 Future lockUserListRequest() async { - LockUserListEntity entity = await ApiRepository.to.lockUserList( + final LockUserListEntity entity = await ApiRepository.to.lockUserList( state.pageNo.value.toString(), state.pageSize.value.toString(), ''); if (entity.errorCode!.codeIsSuccessful) { state.dataList.value = entity.data!; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart index f58abdf6..f23a80f5 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart @@ -1,9 +1,11 @@ + import 'package:flutter/material.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/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_logic.dart'; +import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/submitBtn.dart'; @@ -18,8 +20,8 @@ class LockUserListPage extends StatefulWidget { } class _LockUserListPageState extends State { - final logic = Get.put(LockUserListLogic()); - final state = Get.find().state; + final LockUserListLogic logic = Get.put(LockUserListLogic()); + final LockUserListState state = Get.find().state; @override void initState() { @@ -48,9 +50,9 @@ class _LockUserListPageState extends State { ), body: Column( children: [ - SizedBox( - height: 20.h, - ), + // SizedBox( + // height: 20.h, + // ), KeySearchWidget( editingController: state.searchController, onSubmittedAction: () { @@ -62,14 +64,14 @@ class _LockUserListPageState extends State { ), Obx(() => Expanded( child: state.dataList.isEmpty - ? NoData() + ? NoData(noDataHeight: 1.sh - 200.h) : ListView.separated( - itemBuilder: (context, index) { - LockUserItemData indexEntity = state.dataList[index]; + itemBuilder: (BuildContext context, int index) { + final LockUserItemData indexEntity = state.dataList[index]; return _electronicKeyItem(indexEntity); }, itemCount: state.dataList.length, - separatorBuilder: (context, index) { + separatorBuilder: (BuildContext context, int index) { return const Divider( height: 1, color: AppColors.greyLineColor); }, @@ -95,7 +97,7 @@ class _LockUserListPageState extends State { child: SubmitBtn( btnName: '确定'.tr, onClick: () { - Map resultMap = {}; + final Map resultMap = {}; resultMap['lockUserList'] = state.selectDataList.value; Navigator.pop(context, resultMap); }, diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart index 4bbbbdb7..cf9921bc 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_state.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart'; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart index cf2dac59..c68154f9 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart @@ -1,8 +1,4 @@ class MassSendLockGroupListEntity { - int? errorCode; - String? description; - String? errorMsg; - GroupListData? data; MassSendLockGroupListEntity( {this.errorCode, this.description, this.errorMsg, this.data}); @@ -13,6 +9,10 @@ class MassSendLockGroupListEntity { errorMsg = json['errorMsg']; data = json['data'] != null ? GroupListData.fromJson(json['data']) : null; } + int? errorCode; + String? description; + String? errorMsg; + GroupListData? data; Map toJson() { final Map data = {}; @@ -27,7 +27,6 @@ class MassSendLockGroupListEntity { } class GroupListData { - List? groupList; GroupListData({this.groupList}); @@ -39,6 +38,7 @@ class GroupListData { }); } } + List? groupList; Map toJson() { final Map data = {}; @@ -50,14 +50,6 @@ class GroupListData { } class GroupListItem { - int? lockNum; - int? keyGroupId; - int? groupType; //组类型 0未分组 1非未分组 - String? keyGroupName; - List? lockList; - bool isChecked = false; - // bool get isChecked => _isChecked ?? false; - bool isVip = false; // set isChecked(bool value) => _isChecked = value; @@ -80,6 +72,14 @@ class GroupListItem { }); } } + int? lockNum; + int? keyGroupId; + int? groupType; //组类型 0未分组 1非未分组 + String? keyGroupName; + List? lockList; + bool isChecked = false; + // bool get isChecked => _isChecked ?? false; + bool isVip = false; Map toJson() { final Map data = {}; @@ -95,12 +95,6 @@ class GroupListItem { } class LockListItem { - int? lockId; - String? lockAlias; - bool _isChecked = false; - bool get isChecked => _isChecked ?? false; - - set isChecked(bool value) => _isChecked = value; LockListItem({this.lockId, this.lockAlias}); @@ -108,6 +102,12 @@ class LockListItem { lockId = json['lockId']; lockAlias = json['lockAlias']; } + int? lockId; + String? lockAlias; + bool _isChecked = false; + bool get isChecked => _isChecked ?? false; + + set isChecked(bool value) => _isChecked = value; Map toJson() { final Map data = {}; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart index f613187d..70703c12 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart @@ -1,4 +1,4 @@ -import 'package:star_lock/app_settings/app_settings.dart'; + import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart'; import 'package:star_lock/network/api_repository.dart'; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart index 91b2f73e..fe07e90b 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart @@ -12,8 +12,6 @@ import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/translations/trans_lib.dart'; -import '../../../../../app_settings/app_settings.dart'; - class MassSendLockGroupListPage extends StatefulWidget { const MassSendLockGroupListPage({Key? key}) : super(key: key); @@ -81,7 +79,7 @@ class _MassSendLockGroupListPageState extends State { child: SubmitBtn( btnName: '确定'.tr, onClick: () { - Map resultMap = {}; + final Map resultMap = {}; resultMap['selectLockIdList'] = state.selectLockIdList.value; Get.back(result: resultMap); }, diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart index ffcaab90..11edaa76 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart @@ -1,5 +1,5 @@ + import 'package:get/get.dart'; -import 'package:star_lock/app_settings/app_settings.dart'; class MassSendLockGroupListState {// 1管理员(包括超级管理员跟管理员) 2普通用户 MassSendLockGroupListState(){ diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart index 3048b287..28f5d7b2 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart @@ -32,16 +32,16 @@ class _MassSendReceiverCellState extends State { @override void initState() { super.initState(); - _receiverController = - TextEditingController(text: widget.userData.userid ?? ''); - _nickNameController = - TextEditingController(text: widget.userData.nickname ?? ''); - _receiverController.addListener(() { - widget.userData.userid = _receiverController.text; - }); - _nickNameController.addListener(() { - widget.userData.nickname = _nickNameController.text; - }); + // _receiverController = + // TextEditingController(text: widget.userData.userid ?? ''); + // _nickNameController = + // TextEditingController(text: widget.userData.nickname ?? ''); + // _receiverController.addListener(() { + // widget.userData.userid = _receiverController.text; + // }); + // _nickNameController.addListener(() { + // widget.userData.nickname = _nickNameController.text; + // }); } @override @@ -53,6 +53,17 @@ class _MassSendReceiverCellState extends State { @override Widget build(BuildContext context) { + _receiverController = + TextEditingController(text: widget.userData.userid ?? ''); + _nickNameController = + TextEditingController(text: widget.userData.nickname ?? ''); + _receiverController.addListener(() { + widget.userData.userid = _receiverController.text; + }); + _nickNameController.addListener(() { + widget.userData.nickname = _nickNameController.text; + }); + return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -106,13 +117,10 @@ class _MassSendReceiverCellState extends State { controller: _nickNameController, isContactPickerEnabled: false, onSubmitted: (String text) { - final bool isEmail = RegexpTool.isEmail(text); - final bool isPhoneNumber = - RegexpTool.isPhoneNumber(text); - if (text.trim() == '' || isEmail || isPhoneNumber) { - errorTxt.value = ''; - } else { - errorTxt.value = '账号格式错误'.tr; + if (text.trim() == '') { + errorTxt.value = '请输入姓名'; + } else if (text.length > 50) { + errorTxt.value = '姓名长度不能超过50个字符哦'; } }), ], @@ -224,7 +232,10 @@ class _MassSendReceiverCellState extends State { if (selectedContact != null) { setState(() { if (selectedContact.phoneNumbers?.isNotEmpty ?? false) { - _receiverController.text = selectedContact.phoneNumbers!.first; + // _receiverController.text = selectedContact.phoneNumbers!.first; + String phoneNumber = selectedContact.phoneNumbers!.first; + phoneNumber = phoneNumber.replaceAll(' ', ''); // 去掉手机号中的空格 + _receiverController.text = phoneNumber; } if (selectedContact.fullName?.isNotEmpty ?? false) { _nickNameController.text = selectedContact.fullName!; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_logic.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_logic.dart index 5fc8b6bf..3f62bdb8 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_logic.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_logic.dart @@ -1,3 +1,4 @@ + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_entity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_state.dart'; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_page.dart index a628f331..fb7da11d 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -73,8 +74,17 @@ class _MassSendReceiverPageState extends State { return; } } + + // 遍历state.lockUserList,里面有重复的数据,留下第一个,其他去重 + final List tempList = []; + for (final LockUserItemData item in state.lockUserList) { + if (!tempList.any((LockUserItemData e) => e.userid == item.userid)) { + tempList.add(item); + } + } + final Map resultMap = {}; - resultMap['lockUserList'] = state.lockUserList; + resultMap['lockUserList'] = tempList; Navigator.pop(context, resultMap); }, ), diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_state.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_state.dart index 7617a81b..673ba7af 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_state.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiver_state.dart @@ -16,5 +16,5 @@ class MassSendReceiverState { TextEditingController keyNameController = TextEditingController(); RxString countryCode = '86'.obs; - RxString countryName = '中国'.obs; + RxString countryName = '中国'.tr.obs; } diff --git a/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart b/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart index ddca6ae2..25a34e80 100755 --- a/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart +++ b/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart @@ -52,7 +52,7 @@ class _AddAuthorizedAdministratorPageState : _permanentAdministrator())); } -//永久 + //永久 Widget _permanentAdministrator() { if (state.isSendSuccess.value == true) { return sendElectronicKeySucceed(); @@ -69,29 +69,32 @@ class _AddAuthorizedAdministratorPageState ? TranslationLoader.lanKeys!.pleaseSelect!.tr : state.lockIdList.value.length.toString(), isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.massSendLockGroupListPage, - arguments: {'keyLimits': '1'}) - .then((Object? value) { - //得到选中的锁ID列表 - if (value != null) { - value as Map; - state.lockIdList.value = value['selectLockIdList']; - - setState(() {}); - } - }); + action: () async { + final result = await Get.toNamed(Routers.massSendLockGroupListPage, + arguments: { + 'keyLimits': '1', + 'lockIdList': state.lockIdList.value + }); + if (result != null && result.isNotEmpty) { + final List selectLockIdList = result['selectLockIdList']; + state.lockIdList.value.clear(); + // state.lockIdList.addAll(state.lockIdList.value); + selectLockIdList.forEach((element) { + state.lockIdList.value.add(element); + }); + setState(() {}); + } }), SizedBox( height: 10.h, ), CommonItem( - leftTitel: '仅管理自己创建的用户', + leftTitel: '仅管理自己创建的用户'.tr, rightTitle: '', isHaveRightWidget: true, isTipsImg: true, tipsImgAction: () { - ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'); + ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'.tr); }, rightWidget: SizedBox( width: 60.w, @@ -124,31 +127,33 @@ class _AddAuthorizedAdministratorPageState ? TranslationLoader.lanKeys!.pleaseSelect!.tr : state.lockIdList.value.length.toString(), isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.massSendLockGroupListPage, - arguments: { + action: () async { + final result = await Get.toNamed(Routers.massSendLockGroupListPage, + arguments: { 'keyLimits': '1', - }).then((Object? value) { - //得到选中的锁ID列表 - if (value != null) { - value as Map; - state.lockIdList.value = value['selectLockIdList']; - - setState(() {}); - } - }); + 'lockIdList': state.lockIdList.value + }); + if (result != null && result.isNotEmpty) { + final List selectLockIdList = result['selectLockIdList']; + state.lockIdList.value.clear(); + // state.lockIdList.addAll(state.lockIdList.value); + selectLockIdList.forEach((element) { + state.lockIdList.value.add(element); + }); + setState(() {}); + } }), SizedBox( height: 10.h, ), // remoteUnlockingWidget(), CommonItem( - leftTitel: '仅管理自己创建的用户', + leftTitel: '仅管理自己创建的用户'.tr, rightTitle: '', isHaveRightWidget: true, isTipsImg: true, tipsImgAction: () { - ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'); + ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'.tr); }, rightWidget: SizedBox( width: 60.w, @@ -212,8 +217,7 @@ class _AddAuthorizedAdministratorPageState } // 接受者信息输入框 - Widget getTFWidget( - bool isHaveBtn, String tfStr, TextEditingController editController) { + Widget getTFWidget(bool isHaveBtn, String tfStr, TextEditingController editController) { return SizedBox( height: 65.h, width: 300.w, @@ -311,7 +315,7 @@ class _AddAuthorizedAdministratorPageState trackColor: CupertinoColors.systemGrey5, thumbColor: CupertinoColors.white, value: state.onlyManageYouCreatesUser.value, - onChanged: (value) { + onChanged: (bool value) { setState(() { state.onlyManageYouCreatesUser.value = !state.onlyManageYouCreatesUser.value; @@ -451,7 +455,7 @@ class _AddAuthorizedAdministratorPageState mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '发送成功', + '发送成功'.tr, style: TextStyle( fontSize: 26.sp, color: Colors.black, @@ -514,10 +518,10 @@ class _AddAuthorizedAdministratorPageState List initBottomSheetList() { final List widgetList = []; - widgetList.add(buildCenter3('images/icon_wechat.png', '微信好友', 0)); - widgetList.add(buildCenter3('images/icon_message.png', '短信', 1)); - widgetList.add(buildCenter3('images/icon_email.png', '邮件', 2)); - widgetList.add(buildCenter3('images/icon_more.png', '更多', 3)); + widgetList.add(buildCenter3('images/icon_wechat.png', '微信好友'.tr, 0)); + widgetList.add(buildCenter3('images/icon_message.png', '短信'.tr, 1)); + widgetList.add(buildCenter3('images/icon_email.png', '邮件'.tr, 2)); + widgetList.add(buildCenter3('images/icon_more.png', '更多'.tr, 3)); return widgetList; } diff --git a/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart b/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart index 40f6201f..081859bb 100755 --- a/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart +++ b/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart @@ -14,8 +14,8 @@ class AddAuthorizedAdministratorState { final FlutterContactPicker contactPicker = FlutterContactPicker(); late Contact contact; RxString type = ''.obs; - var lockIdList = [].obs; - var weekdaysList = [].obs; + RxList lockIdList = [].obs; + RxList weekdaysList = [].obs; RxBool isCreateUser = false.obs; //用户未注册时传1 已注册传0 RxString beginDate = DateTool() diff --git a/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_logic.dart b/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_logic.dart index a9cfb383..fb535bdb 100755 --- a/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_logic.dart +++ b/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_logic.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:get/get.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../common/XSConstantMacro/XSConstantMacro.dart'; @@ -36,7 +37,7 @@ class AuthorizedAdministratorListLogic extends BaseGetXController { final AuthorizedAdminListEntity entity = await ApiRepository.to .deleteAuthorizedAdmin(uid, includeUnderlings.toString()); if (entity.errorCode!.codeIsSuccessful) { - showToast('删除成功', something: () { + showToast('删除成功'.tr, something: () { pageNo = 1; mockNetworkDataRequest(); }); @@ -56,17 +57,17 @@ class AuthorizedAdministratorListLogic extends BaseGetXController { useDateStr = '${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}'; } else { - useDateStr = '限期'; + useDateStr = '限时'.tr; } } else if (indexEntity.keyType == XSConstantMacro.keyTypeLong) { //永久 - useDateStr = '永久'; + useDateStr = '永久'.tr; } else if (indexEntity.keyType == XSConstantMacro.keyTypeOnce) { //单次 - useDateStr = '单次'; + useDateStr = '单次'.tr; } else if (indexEntity.keyType == XSConstantMacro.keyTypeLoop) { //循环 - useDateStr = '循环'; + useDateStr = '循环'.tr; } return useDateStr; } diff --git a/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart b/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart index a792ca1c..31540aa5 100755 --- a/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart +++ b/lib/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart @@ -111,7 +111,7 @@ class _AuthorizedAdministratorListPageState child: SizedBox( width: 360.w, child: SubmitBtn( - btnName: '添加授权管理员', + btnName: '添加授权管理员'.tr, onClick: () { Navigator.pushNamed( context, Routers.addAuthorizedAdministratorPage) @@ -143,7 +143,7 @@ class _AuthorizedAdministratorListPageState onPressed: (BuildContext context) { ShowTipView() .showDeleteAdministratorIsHaveAllDataDialog( - '同时删除其发送的所有钥匙,钥匙删除后不能恢复', (bool isAllData) { + '同时删除其发送的所有钥匙,钥匙删除后不能恢复'.tr, (bool isAllData) { logic.deleteAdministratorRequest( authorizedAdminListItem.uid.toString(), isAllData ? 1 : 0); @@ -151,7 +151,7 @@ class _AuthorizedAdministratorListPageState }, backgroundColor: Colors.red, foregroundColor: Colors.white, - label: '删除', + label: '删除'.tr, padding: EdgeInsets.only(left: 5.w, right: 5.w), ), ], diff --git a/lib/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart b/lib/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart index 65449998..488c7fcd 100755 --- a/lib/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart +++ b/lib/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart @@ -1,8 +1,4 @@ class KeyListByUserEntity { - int? errorCode; - String? description; - String? errorMsg; - KeyListByUserData? data; KeyListByUserEntity( {this.errorCode, this.description, this.errorMsg, this.data}); @@ -14,6 +10,10 @@ class KeyListByUserEntity { data = json['data'] != null ? KeyListByUserData.fromJson(json['data']) : null; } + int? errorCode; + String? description; + String? errorMsg; + KeyListByUserData? data; Map toJson() { final Map data = {}; @@ -28,11 +28,6 @@ class KeyListByUserEntity { } class KeyListByUserData { - List? keyList; - int? pageNo; - int? pageSize; - int? pages; - int? total; KeyListByUserData( {this.keyList, this.pageNo, this.pageSize, this.pages, this.total}); @@ -49,6 +44,11 @@ class KeyListByUserData { pages = json['pages']; total = json['total']; } + List? keyList; + int? pageNo; + int? pageSize; + int? pages; + int? total; Map toJson() { final Map data = {}; @@ -64,31 +64,6 @@ class KeyListByUserData { } class KeyListItem { - String? clientId; - int? lockOwnerId; - 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; - UserInfo? userInfo; - int? keyId; - int? uid; - String? lockAlias; KeyListItem( {this.clientId, @@ -150,6 +125,31 @@ class KeyListItem { uid = json['uid']; lockAlias = json['lockAlias']; } + String? clientId; + int? lockOwnerId; + 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; + UserInfo? userInfo; + int? keyId; + int? uid; + String? lockAlias; Map toJson() { final Map data = {}; @@ -187,8 +187,6 @@ class KeyListItem { } class UserInfo { - int? id; - String? accountName; UserInfo({this.id, this.accountName}); @@ -196,6 +194,8 @@ class UserInfo { id = json['id']; accountName = json['account_name']; } + int? id; + String? accountName; Map toJson() { final Map data = {}; diff --git a/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_logic.dart b/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_logic.dart index 39f8edf7..994f9f54 100755 --- a/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_logic.dart +++ b/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_logic.dart @@ -59,11 +59,6 @@ class LockUserManageListLogic extends BaseGetXController { _getElectronicKeyListRefreshUIAction(); } - @override - void onInit() { - super.onInit(); - } - @override void onClose() { super.onClose(); diff --git a/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_page.dart b/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_page.dart index 6a347f1c..8d1293d6 100755 --- a/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_page.dart +++ b/lib/mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -234,14 +235,13 @@ class _LockUserManageListPageState extends State { ); } - void showIosTipViewDialog( - BuildContext context, LockUserItemData lockUserData) { + void showIosTipViewDialog(BuildContext context, LockUserItemData lockUserData) { showDialog( context: context, builder: (BuildContext context) { return ShowIosTipView( - title: "提示", - tipTitle: "删除用户时,会将用户拥有的钥匙一起删除。", + title: '提示', + tipTitle: '删除用户时,会将用户拥有的钥匙一起删除。', sureClick: () { Get.back(); logic.deletelockUserRequest(lockUserData.uid!); diff --git a/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_logic.dart b/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_logic.dart index fe56fc19..dbd1d8b9 100755 --- a/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_logic.dart +++ b/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_logic.dart @@ -13,7 +13,7 @@ class OwnedKeyListLogic extends BaseGetXController { //请求用户拥有的锁 Future mockNetworkDataRequest() async { - KeyListByUserEntity entity = await ApiRepository.to.keyListByUser(pageNo.toString(), pageSize, state.getUidStr.toString()); + final KeyListByUserEntity entity = await ApiRepository.to.keyListByUser(pageNo.toString(), pageSize, state.getUidStr.toString()); // if (entity.errorCode!.codeIsSuccessful) { // } // if (entity.data != null) { @@ -39,12 +39,12 @@ class OwnedKeyListLogic extends BaseGetXController { //删除电子钥匙名称请求 setAdministrator Future deleteKeyRequest(int keyId) async { - ElectronicKeyListEntity entity = await ApiRepository.to.deleteElectronicKey( + final ElectronicKeyListEntity entity = await ApiRepository.to.deleteElectronicKey( keyId:keyId.toString(), includeUnderlings: 0 ); if (entity.errorCode!.codeIsSuccessful) { - showToast("删除成功", something: () { + showToast('删除成功'.tr, something: () { pageNo = 1; mockNetworkDataRequest(); eventBus.fire(LockUserManageListRefreshUI()); @@ -72,24 +72,24 @@ class OwnedKeyListLogic extends BaseGetXController { if (indexEntity.keyType == XSConstantMacro.keyTypeTime) { //限期 if (indexEntity.startDate != null && indexEntity.endDate != null) { - DateTime startDateStr = + final DateTime startDateStr = DateTime.fromMillisecondsSinceEpoch(indexEntity.startDate!); - DateTime endDateStr = + final DateTime endDateStr = DateTime.fromMillisecondsSinceEpoch(indexEntity.endDate!); useDateStr = '${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}'; } else { - useDateStr = '限期'; + useDateStr = '限时'.tr; } } else if (indexEntity.keyType == XSConstantMacro.keyTypeLong) { //永久 - useDateStr = '永久'; + useDateStr = '永久'.tr; } else if (indexEntity.keyType == XSConstantMacro.keyTypeOnce) { //单次 - useDateStr = '单次'; + useDateStr = '单次'.tr; } else if (indexEntity.keyType == XSConstantMacro.keyTypeLoop) { //循环 - useDateStr = '循环'; + useDateStr = '循环'.tr; } return useDateStr; } diff --git a/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart b/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart index 58784bce..4e8ec6a0 100755 --- a/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart +++ b/lib/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart @@ -1,12 +1,11 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:get/get.dart'; -import 'package:get/get_utils/get_utils.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart'; -import 'package:star_lock/network/api_repository.dart'; -import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_state.dart'; import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/showIosTipView.dart'; import 'package:star_lock/translations/trans_lib.dart'; @@ -24,13 +23,15 @@ class OwnedKeyListPage extends StatefulWidget { } class _OwnedKeyListPageState extends State { - final logic = Get.put(OwnedKeyListLogic()); - final state = Get.find().state; + final OwnedKeyListLogic logic = Get.put(OwnedKeyListLogic()); + final OwnedKeyListState state = Get.find().state; Future getHttpData() async { logic.mockNetworkDataRequest().then((KeyListByUserEntity value){ - if(mounted) setState(() {}); + if(mounted) { + setState(() {}); + } }); } @@ -88,8 +89,8 @@ class _OwnedKeyListPageState extends State { : SlidableAutoCloseBehavior( child: ListView.builder( itemCount: state.dataList.length, - itemBuilder: (c, index) { - KeyListItem itemData = state.dataList[index]; + itemBuilder: (BuildContext c, int index) { + final KeyListItem itemData = state.dataList[index]; return Slidable( key:ValueKey(itemData.keyId), endActionPane: ActionPane( @@ -102,7 +103,7 @@ class _OwnedKeyListPageState extends State { }, backgroundColor: Colors.red, foregroundColor: Colors.white, - label: '删除', + label: '删除'.tr, padding: EdgeInsets.only(left: 5.w, right: 5.w), ), ], @@ -158,7 +159,7 @@ class _OwnedKeyListPageState extends State { ), Visibility( visible: isHaveExpired, - child: Text("已过期", + child: Text('已过期'.tr, style: TextStyle(fontSize: 22.sp, color: Colors.grey)), ), SizedBox(width: 10.w), @@ -190,8 +191,8 @@ class _OwnedKeyListPageState extends State { context: Get.context!, builder: (BuildContext context) { return ShowIosTipView( - title: "提示", - tipTitle: "删除钥匙会在用户APP连网后生效", + title: '提示'.tr, + tipTitle: '删除钥匙会在用户APP连网后生效'.tr, sureClick: () { Get.back(); logic.deleteKeyRequest(lockUserData.keyId!);