Merge branch 'release' of gitee.com:starlock-cn/app-starlock into release

This commit is contained in:
Daisy 2024-06-24 09:22:43 +08:00
commit 7d55cc2159
8 changed files with 73 additions and 90 deletions

View File

@ -921,5 +921,8 @@
"系统的全局配置在此项内进行设置":"The global configuration of the system is set in this item",
"导出操作记录":"Export operation record",
"立即查看":"View now",
"导出成功":"Export success"
"导出成功":"Export success",
"发送钥匙": "Send key",
"进度": "Progress",
"失败": "Failure"
}

View File

@ -953,5 +953,8 @@
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
"导出操作记录":"导出操作记录",
"立即查看":"立即查看",
"导出成功":"导出成功"
"导出成功":"导出成功",
"发送钥匙": "发送钥匙",
"进度": "进度",
"失败": "失败"
}

View File

@ -918,5 +918,9 @@
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
"导出操作记录":"导出操作记录",
"立即查看":"立即查看",
"导出成功":"导出成功"
"导出成功":"导出成功",
"发送钥匙": "发送钥匙",
"进度": "进度",
"失败": "失败"
}

View File

@ -3,13 +3,15 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../../appRouters.dart';
import '../../../../../app_settings/app_colors.dart';
import '../massSendLockGroupList/lockUserList/lockUserList_entity.dart';
typedef BlockCallback = void Function(List receiverList);
class MassSendElectronicKeyProgressPage extends StatefulWidget {
MassSendElectronicKeyProgressPage({required this.receiverList, Key? key}) : super(key: key);
MassSendElectronicKeyProgressPage({required this.receiverList, required this.callback, Key? key}) : super(key: key);
List receiverList;
BlockCallback callback;
@override
State<MassSendElectronicKeyProgressPage> createState() => _MassSendElectronicKeyProgressPageState();
@ -86,7 +88,7 @@ class _MassSendElectronicKeyProgressPageState extends State<MassSendElectronicKe
children: <Widget>[
Text('进度'.tr + ':' + '$failCount/${widget.receiverList.length}', style: TextStyle(fontSize: 24.sp)),
SizedBox(width: 20.w),
Text('失败:$failCount', style: TextStyle(fontSize: 24.sp, color: Colors.red))
Text('失败'.tr + ':' + '$failCount', style: TextStyle(fontSize: 24.sp, color: Colors.red))
],
),
);
@ -117,19 +119,6 @@ class _MassSendElectronicKeyProgressPageState extends State<MassSendElectronicKe
);
}
Widget progressItem(){
return Container(
padding: EdgeInsets.only(left: 15.w, top: 15.h, bottom: 10.h),
child: Row(
children: <Widget>[
Text('发送中'.tr+'1/2', style: TextStyle(fontSize: 24.sp)),
SizedBox(width: 20.w),
Text('失败:1', style: TextStyle(fontSize: 24.sp, color: Colors.red))
],
),
);
}
Widget bottomBtn(){
return Container(
height: 80.h,
@ -157,19 +146,10 @@ class _MassSendElectronicKeyProgressPageState extends State<MassSendElectronicKe
Expanded(
child: GestureDetector(
onTap: (){
Get.back();
//
widget.receiverList.removeWhere((element) => (element as LockUserItemData).isSendSuccess == true);
Navigator.pushNamed(context, Routers.massSendReceiverPage,
arguments: <String, List>{
'lockUserList': widget.receiverList,
}).then((Object? value) {
// if (value != null) {
// value as Map<String, dynamic>;
// state.receiverList = value['lockUserList'];
// setState(() {});
// }
});
Get.back();
//
widget.receiverList.removeWhere((element) => (element as LockUserItemData).isSendSuccess == true);
widget.callback(widget.receiverList);
},
child: Container(
alignment: Alignment.center,

View File

@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/main/lockDetail/lockSet/basicInformation/basicInformation/KeyDetailEntity.dart';
import 'package:star_lock/tools/baseGetXController.dart';
import 'package:star_lock/tools/pickers/time_picker/time_utils.dart';
import '../../../../../appRouters.dart';
import '../../../../../common/XSConstantMacro/XSConstantMacro.dart';
import '../../../../../network/api_repository.dart';
import '../../../../../tools/dateTool.dart';
@ -31,7 +31,7 @@ class MassSendElectronicKeyLogic extends BaseGetXController {
return;
}
if (state.receiverList.isEmpty) {
if (state.receiverList.value.isEmpty) {
showToast('请选择接收者'.tr);
return;
}
@ -57,33 +57,16 @@ class MassSendElectronicKeyLogic extends BaseGetXController {
final KeyDetailEntity entity = await ApiRepository.to.canSendKey(getFailureDateTime, state.lockIdList);
if (entity.errorCode!.codeIsSuccessful) {
// final List<Future> futures = <Future>[];
//
for (int i = 0; i < state.receiverList.length; i++) {
final LockUserItemData data = state.receiverList[i];
AppLog.log('receiverUserID:${data.userid} receiverUserName:${data.nickname} data.isSendSuccess:${data.isSendSuccess} data.sendFailReason:${data.sendFailReason}');
for (int i = 0; i < state.receiverList.value.length; i++) {
final LockUserItemData data = state.receiverList.value[i];
await batchSendElectronicKeyRequest(data.userid ?? '', data.nickname ?? '');
// futures.add(
// batchSendElectronicKeyRequest(data.userid ?? '', data.nickname ?? '').catchError((error) {
// //
// AppLog.log('Error in batchSendElectronicKeyRequest: $error');
// })
// );
AppLog.log('接口调用成功 receiverUserID:${data.userid} receiverUserName:${data.nickname} data.isSendSuccess:${data.isSendSuccess} data.sendFailReason:${data.sendFailReason}');
}
// Future完成
// try {
// await Future.wait(futures);
// } catch (e) {
// AppLog.log('Error in Future.wait: $e');
// }
// state.isSendSuccess的值state.isSendSuccess的值
bool isSendSuccess = true;
for (int i = 0; i < state.receiverList.length; i++) {
final LockUserItemData data = state.receiverList[i];
AppLog.log('遍历是否弹框 receiverUserID:${data.userid} receiverUserName:${data.nickname} data.isSendSuccess:${data.isSendSuccess} data.sendFailReason:${data.sendFailReason}');
for (int i = 0; i < state.receiverList.value.length; i++) {
final LockUserItemData data = state.receiverList.value[i];
if (!(data.isSendSuccess ?? false)) {
isSendSuccess = false;
break;
@ -178,13 +161,12 @@ class MassSendElectronicKeyLogic extends BaseGetXController {
state.isCreateUser.value = false;
// true
for (int i = 0; i < state.receiverList.length; i++) {
final LockUserItemData data = state.receiverList[i];
for (int i = 0; i < state.receiverList.value.length; i++) {
final LockUserItemData data = state.receiverList.value[i];
if (data.userid == receiverUserID) {
data.isSendSuccess = true;
data.sendFailReason = '';
}
AppLog.log('发送成功receiverUserID:$receiverUserID data.userid:${data.userid} receiverUserName:${data.nickname} data.isSendSuccess:${data.isSendSuccess} data.sendFailReason:${data.sendFailReason}');
}
// resetData();
} else {
@ -192,16 +174,15 @@ class MassSendElectronicKeyLogic extends BaseGetXController {
if (entity.errorCode == 425) {
//
state.isCreateUser.value = true;
batchSendElectronicKeyRequest(receiverUserID, receiverUserName);
await batchSendElectronicKeyRequest(receiverUserID, receiverUserName);
}else{
// false
for (int i = 0; i < state.receiverList.length; i++) {
final LockUserItemData data = state.receiverList[i];
for (int i = 0; i < state.receiverList.value.length; i++) {
final LockUserItemData data = state.receiverList.value[i];
if (data.userid == receiverUserID) {
data.isSendSuccess = false;
data.sendFailReason = entity.errorMsg;
}
AppLog.log('发送失败之后 receiverUserID:$receiverUserID data.userid:${data.userid} receiverUserName:${data.nickname} data.isSendSuccess:${data.isSendSuccess} data.sendFailReason:${data.sendFailReason}');
}
}
}
@ -225,7 +206,20 @@ class MassSendElectronicKeyLogic extends BaseGetXController {
builder: (BuildContext context) {
return Dialog(
backgroundColor: Colors.transparent,
child: MassSendElectronicKeyProgressPage(receiverList:state.receiverList),
child: MassSendElectronicKeyProgressPage(receiverList:state.receiverList.value, callback: (List receiverList){
Navigator.pushNamed(context, Routers.massSendReceiverPage,
arguments: <String, List>{
'lockUserList': state.receiverList.value,
}).then((Object? value) {
if (value != null) {
value as Map<String, dynamic>;
state.receiverList.value = value['lockUserList'];
for (int i = 0; i < state.receiverList.value.length; i++) {
final LockUserItemData data = state.receiverList.value[i];
}
}
});
}),
);
},
);

View File

@ -1,11 +1,9 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart';
import 'package:star_lock/tools/pickers/pickers.dart';
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
@ -155,26 +153,26 @@ class _MassSendElectronicKeyPageState extends State<MassSendElectronicKeyPage> {
Widget keyInfoWidget() {
return Column(
children: <Widget>[
CommonItem(
Obx(() => CommonItem(
leftTitel: TranslationLoader.lanKeys!.receiver!.tr,
rightTitle: state.receiverList.isEmpty
rightTitle: state.receiverList.value.isEmpty
? TranslationLoader.lanKeys!.pleaseAdd!.tr
: state.receiverList.length.toString(),
: state.receiverList.value.length.toString(),
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(context, Routers.massSendReceiverPage,
arguments: <String, List>{
'lockUserList': state.receiverList,
'lockUserList': state.receiverList.value,
}).then((Object? value) {
if (value != null) {
value as Map<String, dynamic>;
state.receiverList = value['lockUserList'];
setState(() {});
state.receiverList.value = value['lockUserList'];
// setState(() {});
}
});
},
),
)),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr,
rightTitle: '',
@ -247,10 +245,8 @@ class _MassSendElectronicKeyPageState extends State<MassSendElectronicKeyPage> {
rightTitle: state.endTime.value,
isHaveDirection: true,
action: () {
PDuration selectDate =
PDuration.parse(DateTime.tryParse(state.endTime.value));
Pickers.showDatePicker(context,
selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) {
PDuration selectDate = PDuration.parse(DateTime.tryParse(state.endTime.value));
Pickers.showDatePicker(context, selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) {
state.endTime.value = DateTool().getYMDHNDateString(p, 1);
});
})),
@ -298,7 +294,6 @@ class _MassSendElectronicKeyPageState extends State<MassSendElectronicKeyPage> {
state.endTime.value = result['endDate'];
state.effectiveDateTime.value = result['starTime'];
state.failureDateTime.value = result['endTime'];
AppLog.log('111weekdaysList:${state.weekdaysList} beginTime:${state.beginTime} endTime:${state.endTime} effectiveDateTime:${state.effectiveDateTime} failureDateTime:${state.failureDateTime}');
}
})),
Obx(() => Visibility(

View File

@ -7,7 +7,7 @@ class MassSendElectronicKeyState{
late Contact contact;
final RxBool isRemoteUnlock = false.obs; //
List receiverList = []; //
RxList receiverList = [].obs; //
List<int> lockIdList = <int>[]; //ID列表
RxString beginTime = ''.obs; //

View File

@ -1,6 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart';
@ -146,18 +147,21 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage>
],
),
)),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
rightTitle: '',
isHaveDirection: true,
action: () {
Get.toNamed(Routers.lockOperatingRecordPage,
arguments: <String, Object?>{
'type': 1,
'id': state.itemData.value.keyboardPwdId.toString(),
'recordName': state.itemData.value.keyboardPwdName
});
}),
Visibility(
visible: state.itemData.value.keyboardPwdType != 4,
child: CommonItem(
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
rightTitle: '',
isHaveDirection: true,
action: () {
Get.toNamed(Routers.lockOperatingRecordPage,
arguments: <String, Object?>{
'type': 1,
'id': state.itemData.value.keyboardPwdId.toString(),
'recordName': state.itemData.value.keyboardPwdName
});
}),
),
Visibility(
visible: state.itemData.value.isCustom == 0 &&
state.itemData.value.keyboardPwdType != 1 &&