Merge branch 'release' of gitee.com:starlock-cn/app-starlock into release
This commit is contained in:
commit
7d55cc2159
@ -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"
|
||||
}
|
||||
|
||||
@ -953,5 +953,8 @@
|
||||
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
|
||||
"导出操作记录":"导出操作记录",
|
||||
"立即查看":"立即查看",
|
||||
"导出成功":"导出成功"
|
||||
"导出成功":"导出成功",
|
||||
"发送钥匙": "发送钥匙",
|
||||
"进度": "进度",
|
||||
"失败": "失败"
|
||||
}
|
||||
|
||||
@ -918,5 +918,9 @@
|
||||
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
|
||||
"导出操作记录":"导出操作记录",
|
||||
"立即查看":"立即查看",
|
||||
"导出成功":"导出成功"
|
||||
"导出成功":"导出成功",
|
||||
"发送钥匙": "发送钥匙",
|
||||
"进度": "进度",
|
||||
"失败": "失败"
|
||||
|
||||
}
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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];
|
||||
}
|
||||
}
|
||||
});
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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; //默认为当前时间 开始时间
|
||||
|
||||
@ -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 &&
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user