1、修复锁锁分组模块bug
2、修复我的模块进入添加授权管理员红屏问题 3、修复我的模块锁用户管理模块问题
This commit is contained in:
parent
5354d1bd1f
commit
dfee353519
@ -27,7 +27,6 @@ import 'package:star_lock/mine/about/webviewShow_page.dart';
|
|||||||
import 'package:star_lock/mine/mine/safeVerify/safeVerify_page.dart';
|
import 'package:star_lock/mine/mine/safeVerify/safeVerify_page.dart';
|
||||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart';
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart';
|
||||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_page.dart';
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart';
|
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_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/authorizedAdministrator/administratorDetails/administratorDetails_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart';
|
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart';
|
||||||
@ -163,6 +162,7 @@ import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetwor
|
|||||||
import 'mine/mineSet/authorityManagement/authorityManagement_page.dart';
|
import 'mine/mineSet/authorityManagement/authorityManagement_page.dart';
|
||||||
import 'mine/mineSet/authorityManagement/getDeviceList_page.dart';
|
import 'mine/mineSet/authorityManagement/getDeviceList_page.dart';
|
||||||
import 'mine/mineSet/authorityManagement/getNameList_page.dart';
|
import 'mine/mineSet/authorityManagement/getNameList_page.dart';
|
||||||
|
import 'mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart';
|
||||||
import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart';
|
import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart';
|
||||||
import 'mine/mineSet/lockGroup/groupEditLock/groupEditLock_page.dart';
|
import 'mine/mineSet/lockGroup/groupEditLock/groupEditLock_page.dart';
|
||||||
import 'mine/mineSet/lockGroup/lockGroupDetailList/lockItemList_page.dart';
|
import 'mine/mineSet/lockGroup/lockGroupDetailList/lockItemList_page.dart';
|
||||||
@ -180,7 +180,7 @@ import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedS
|
|||||||
import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart';
|
||||||
import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart';
|
import 'mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart';
|
||||||
import 'starLockApplication/starLockApplication.dart';
|
import 'starLockApplication/starLockApplication.dart';
|
||||||
|
|
||||||
abstract class Routers {
|
abstract class Routers {
|
||||||
|
|||||||
@ -12,7 +12,6 @@ import '../../../../appRouters.dart';
|
|||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
import '../../../../tools/EasyRefreshTool.dart';
|
import '../../../../tools/EasyRefreshTool.dart';
|
||||||
import '../../../../tools/keySearchWidget.dart';
|
import '../../../../tools/keySearchWidget.dart';
|
||||||
import '../../../../tools/left_slide_actions.dart';
|
|
||||||
import '../../../../tools/showIosTipView.dart';
|
import '../../../../tools/showIosTipView.dart';
|
||||||
import '../../../../tools/submitBtn.dart';
|
import '../../../../tools/submitBtn.dart';
|
||||||
import '../../../../tools/titleAppBar.dart';
|
import '../../../../tools/titleAppBar.dart';
|
||||||
@ -198,29 +197,6 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildDeleteBtn(String keyId) {
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
// 省略: 弹出是否删除的确认对话框。
|
|
||||||
showIosTipViewDialog(context, keyId);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: 60,
|
|
||||||
color: const Color(0xFFF20101),
|
|
||||||
alignment: Alignment.center,
|
|
||||||
child: const Text(
|
|
||||||
'删除',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 16,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
color: Colors.white,
|
|
||||||
height: 1,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void showIosTipViewDialog(BuildContext context, String keyId) {
|
void showIosTipViewDialog(BuildContext context, String keyId) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
@ -291,7 +267,6 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
//已过期
|
//已过期
|
||||||
keyStatus = '已过期';
|
keyStatus = '已过期';
|
||||||
}
|
}
|
||||||
|
|
||||||
return keyStatus;
|
return keyStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
// import 'package:flutter_reactive_ble/flutter_reactive_ble.dart';
|
|
||||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
@ -15,7 +14,6 @@ import '../../../common/XSConstantMacro/XSConstantMacro.dart';
|
|||||||
import '../../../tools/appRouteObserver.dart';
|
import '../../../tools/appRouteObserver.dart';
|
||||||
import '../../../tools/dateTool.dart';
|
import '../../../tools/dateTool.dart';
|
||||||
import '../../../tools/eventBusEventManage.dart';
|
import '../../../tools/eventBusEventManage.dart';
|
||||||
import '../../../tools/jh_pop_menus.dart';
|
|
||||||
import '../../../tools/storage.dart';
|
import '../../../tools/storage.dart';
|
||||||
import '../../../translations/trans_lib.dart';
|
import '../../../translations/trans_lib.dart';
|
||||||
import '../../lockMian/entity/lockListInfo_entity.dart';
|
import '../../lockMian/entity/lockListInfo_entity.dart';
|
||||||
|
|||||||
@ -312,7 +312,6 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
showEasyLoading();
|
showEasyLoading();
|
||||||
showBlueConnetctToastTimer(isShowBlueConnetctToast: false, action: (){
|
showBlueConnetctToastTimer(isShowBlueConnetctToast: false, action: (){
|
||||||
dismissEasyLoading();
|
dismissEasyLoading();
|
||||||
print("333333");
|
|
||||||
showDeletAlertTipDialog();
|
showDeletAlertTipDialog();
|
||||||
});
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
||||||
@ -337,7 +336,6 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
||||||
dismissEasyLoading();
|
dismissEasyLoading();
|
||||||
cancelBlueConnetctToastTimer();
|
cancelBlueConnetctToastTimer();
|
||||||
print("444444");
|
|
||||||
if(state.ifCurrentScreen.value == true){
|
if(state.ifCurrentScreen.value == true){
|
||||||
showDeletAlertTipDialog();
|
showDeletAlertTipDialog();
|
||||||
}
|
}
|
||||||
@ -440,7 +438,6 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
|
|
||||||
state.isOpenBlueBroadcast.value = state.lockSettingInfo.value.bluetoothBroadcast!;
|
state.isOpenBlueBroadcast.value = state.lockSettingInfo.value.bluetoothBroadcast!;
|
||||||
state.isOpenExceptionWarnings.value = state.lockSettingInfo.value.bluetoothBroadcast!;
|
state.isOpenExceptionWarnings.value = state.lockSettingInfo.value.bluetoothBroadcast!;
|
||||||
Get.log('请求成功333');
|
|
||||||
// await _readSupportFunctionsNoParameters(56);
|
// await _readSupportFunctionsNoParameters(56);
|
||||||
// _readSupportFunctionsNoParameters(62);
|
// _readSupportFunctionsNoParameters(62);
|
||||||
}
|
}
|
||||||
@ -470,7 +467,7 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
eventBus.fire(RefreshLockListInfoDataEvent());
|
eventBus.fire(RefreshLockListInfoDataEvent());
|
||||||
eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(0, state.lockSettingInfo.value.attendance!.toString()));
|
eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(0, state.lockSettingInfo.value.attendance!.toString()));
|
||||||
});
|
});
|
||||||
print("state.lockSettingInfo.value.attendance:${state.lockSettingInfo.value.attendance}");
|
// print("state.lockSettingInfo.value.attendance:${state.lockSettingInfo.value.attendance}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,7 +499,7 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
showToast("设置成功",something: (){
|
showToast("设置成功",something: (){
|
||||||
eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(1, state.lockSettingInfo.value.appUnlockOnline!.toString()));
|
eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(1, state.lockSettingInfo.value.appUnlockOnline!.toString()));
|
||||||
eventBus.fire(RefreshLockListInfoDataEvent());
|
eventBus.fire(RefreshLockListInfoDataEvent());
|
||||||
print("state.lockSettingInfo.value.appUnlockOnline:${state.lockSettingInfo.value.appUnlockOnline}");
|
// print("state.lockSettingInfo.value.appUnlockOnline:${state.lockSettingInfo.value.appUnlockOnline}");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -844,7 +841,7 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
Future.delayed(const Duration(milliseconds: 200)).then((e) {
|
Future.delayed(const Duration(milliseconds: 200)).then((e) {
|
||||||
Get.back();
|
Get.close(2);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -550,18 +550,18 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
|
|||||||
// ),
|
// ),
|
||||||
// Obx(() =>
|
// Obx(() =>
|
||||||
// 诊断
|
// 诊断
|
||||||
Visibility(
|
// Visibility(
|
||||||
visible: true,
|
// visible: true,
|
||||||
child: CommonItem(
|
// child: CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.diagnose!.tr,
|
// leftTitel: TranslationLoader.lanKeys!.diagnose!.tr,
|
||||||
rightTitle: "",
|
// rightTitle: "",
|
||||||
isHaveLine: true,
|
// isHaveLine: true,
|
||||||
isHaveDirection: true,
|
// isHaveDirection: true,
|
||||||
action: () {
|
// action: () {
|
||||||
Get.toNamed(Routers.diagnosePage, arguments: {
|
// Get.toNamed(Routers.diagnosePage, arguments: {
|
||||||
'lockSetInfoData': state.lockSetInfoData.value
|
// 'lockSetInfoData': state.lockSetInfoData.value
|
||||||
});
|
// });
|
||||||
})),
|
// })),
|
||||||
// ),
|
// ),
|
||||||
// Obx(() =>
|
// Obx(() =>
|
||||||
// 上传数据
|
// 上传数据
|
||||||
|
|||||||
@ -111,6 +111,7 @@ class _AddLockPageState extends State<AddLockPage> with BaseWidget {
|
|||||||
Permission.location,
|
Permission.location,
|
||||||
].request();
|
].request();
|
||||||
|
|
||||||
|
print("statuses:$statuses");
|
||||||
//granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示
|
//granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示
|
||||||
if (statuses[Permission.bluetoothScan]!.isGranted &&
|
if (statuses[Permission.bluetoothScan]!.isGranted &&
|
||||||
statuses[Permission.bluetoothConnect]!.isGranted &&
|
statuses[Permission.bluetoothConnect]!.isGranted &&
|
||||||
|
|||||||
@ -50,12 +50,10 @@ class _SelectLockTypePageState extends State<SelectLockTypePage>
|
|||||||
lockTypeItem('images/lockType/lockType_NFCLock.png',
|
lockTypeItem('images/lockType/lockType_NFCLock.png',
|
||||||
TranslationLoader.lanKeys!.NFCPassiveLock!.tr, () {
|
TranslationLoader.lanKeys!.NFCPassiveLock!.tr, () {
|
||||||
// Navigator.pushNamed(context, Routers.addLockPage);
|
// Navigator.pushNamed(context, Routers.addLockPage);
|
||||||
getNearByLimits();
|
|
||||||
}),
|
}),
|
||||||
lockTypeItem('images/lockType/lockType_padlock.png',
|
lockTypeItem('images/lockType/lockType_padlock.png',
|
||||||
TranslationLoader.lanKeys!.padlock!.tr, () {
|
TranslationLoader.lanKeys!.padlock!.tr, () {
|
||||||
// Navigator.pushNamed(context, Routers.addLockPage);
|
// Navigator.pushNamed(context, Routers.addLockPage);
|
||||||
getNearByLimits();
|
|
||||||
}),
|
}),
|
||||||
lockTypeItem('images/lockType/lockType_safeLock.png',
|
lockTypeItem('images/lockType/lockType_safeLock.png',
|
||||||
TranslationLoader.lanKeys!.safeLock!.tr, () {
|
TranslationLoader.lanKeys!.safeLock!.tr, () {
|
||||||
@ -81,12 +79,10 @@ class _SelectLockTypePageState extends State<SelectLockTypePage>
|
|||||||
lockTypeItem('images/lockType/lockType_gatewayLock.png',
|
lockTypeItem('images/lockType/lockType_gatewayLock.png',
|
||||||
TranslationLoader.lanKeys!.gateway!.tr, () {
|
TranslationLoader.lanKeys!.gateway!.tr, () {
|
||||||
// Navigator.pushNamed(context, Routers.gatewayListPage);
|
// Navigator.pushNamed(context, Routers.gatewayListPage);
|
||||||
getNearByLimits();
|
|
||||||
}),
|
}),
|
||||||
lockTypeItem('images/lockType/lockType_camera.png', '网络摄像头',
|
lockTypeItem('images/lockType/lockType_camera.png', '网络摄像头',
|
||||||
() {
|
() {
|
||||||
// Navigator.pushNamed(context, Routers.gatewayListPage);
|
// Navigator.pushNamed(context, Routers.gatewayListPage);
|
||||||
getNearByLimits();
|
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -185,67 +181,6 @@ class _SelectLockTypePageState extends State<SelectLockTypePage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//跳转到附近的锁页面先判断权限
|
|
||||||
void getNearByLimits() {
|
|
||||||
if (Platform.isIOS) {
|
|
||||||
Navigator.pushNamed(context, Routers.nearbyLockPage);
|
|
||||||
} else {
|
|
||||||
positionPermissionAlert();
|
|
||||||
// getMicrophonePermission().then((value) {
|
|
||||||
// if (value) {
|
|
||||||
// // 有权限
|
|
||||||
// Navigator.pushNamed(context, Routers.nearbyLockPage);
|
|
||||||
// } else {
|
|
||||||
// //没有权限
|
|
||||||
// openAppSettings(); //打开app系统设置
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
///请求权限
|
|
||||||
Future<bool> getMicrophonePermission() async {
|
|
||||||
// You can request multiple permissions at once.
|
|
||||||
Map<Permission, PermissionStatus> statuses = await [
|
|
||||||
Permission.bluetoothScan,
|
|
||||||
Permission.bluetoothConnect,
|
|
||||||
Permission.location,
|
|
||||||
].request();
|
|
||||||
|
|
||||||
//granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示
|
|
||||||
if (statuses[Permission.bluetoothScan]!.isGranted &&
|
|
||||||
statuses[Permission.bluetoothConnect]!.isGranted &&
|
|
||||||
statuses[Permission.location]!.isGranted) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> positionPermissionAlert() async {
|
|
||||||
//安卓平台下首次进入应用需向用户告知获取权限用途弹窗
|
|
||||||
if (Platform.isAndroid) {
|
|
||||||
AppFirstEnterHandle().getAppFirstEnter(context, isAgreePosition);
|
|
||||||
var getFlag = await Storage.getString(isAgreePosition);
|
|
||||||
if (getFlag == isAgreePosition) {
|
|
||||||
onPermissionPush();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
onPermissionPush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void onPermissionPush() {
|
|
||||||
getMicrophonePermission().then((value) {
|
|
||||||
if (value) {
|
|
||||||
// 有权限
|
|
||||||
Navigator.pushNamed(context, Routers.nearbyLockPage);
|
|
||||||
} else {
|
|
||||||
//没有权限
|
|
||||||
openAppSettings(); //打开app系统设置
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void onShow() {}
|
void onShow() {}
|
||||||
|
|
||||||
void onHide() {}
|
void onHide() {}
|
||||||
|
|||||||
@ -1,14 +1,14 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
import 'package:star_lock/mine/mineSet/addAuthorizedAdministrator/AddAuthorizedAdministrator_state.dart';
|
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/translations/trans_lib.dart';
|
import 'package:star_lock/translations/trans_lib.dart';
|
||||||
|
|
||||||
|
import 'addAuthorizedAdministrator_state.dart';
|
||||||
|
|
||||||
class AddAuthorizedAdministratorLogic extends BaseGetXController {
|
class AddAuthorizedAdministratorLogic extends BaseGetXController {
|
||||||
final AddAuthorizedAdministratorState state =
|
AddAuthorizedAdministratorState state = AddAuthorizedAdministratorState();
|
||||||
AddAuthorizedAdministratorState();
|
|
||||||
|
|
||||||
//发送批量授权管理员
|
//发送批量授权管理员
|
||||||
Future<void> addAuthorizedAdminRequest() async {
|
Future<void> addAuthorizedAdminRequest() async {
|
||||||
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
|
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@ -23,9 +24,7 @@ class AddAuthorizedAdministratorPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AddAuthorizedAdministratorPageState
|
class _AddAuthorizedAdministratorPageState extends State<AddAuthorizedAdministratorPage> with SingleTickerProviderStateMixin {
|
||||||
extends State<AddAuthorizedAdministratorPage>
|
|
||||||
with SingleTickerProviderStateMixin {
|
|
||||||
final logic = Get.put(AddAuthorizedAdministratorLogic());
|
final logic = Get.put(AddAuthorizedAdministratorLogic());
|
||||||
final state = Get.find<AddAuthorizedAdministratorLogic>().state;
|
final state = Get.find<AddAuthorizedAdministratorLogic>().state;
|
||||||
|
|
||||||
@ -244,25 +243,32 @@ class _AddAuthorizedAdministratorPageState
|
|||||||
Widget getTFWidget(
|
Widget getTFWidget(
|
||||||
bool isHaveBtn, String tfStr, TextEditingController editController) {
|
bool isHaveBtn, String tfStr, TextEditingController editController) {
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
height: 50.h,
|
height: 65.h,
|
||||||
width: 300.w,
|
width: 300.w,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TextField(
|
child: TextField(
|
||||||
controller: editController,
|
|
||||||
//输入框一行
|
//输入框一行
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
// controller: _controller,
|
inputFormatters: <TextInputFormatter>[
|
||||||
autofocus: false,
|
FilteringTextInputFormatter.deny('\n'),
|
||||||
|
LengthLimitingTextInputFormatter(18),
|
||||||
|
],
|
||||||
|
style: TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
controller: editController,
|
||||||
|
// autofocus: false,
|
||||||
textAlign: TextAlign.end,
|
textAlign: TextAlign.end,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
// contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
hintStyle: TextStyle(fontSize: 22.sp),
|
hintStyle: TextStyle(fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
focusedBorder: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
||||||
border: InputBorder.none,
|
disabledBorder: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
||||||
|
enabledBorder: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
||||||
|
border: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
||||||
|
contentPadding: const EdgeInsets.symmetric(vertical: 0),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -1,8 +1,9 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
|
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../main/lockMian/entity/lockListInfo_entity.dart';
|
import '../../../../main/lockMian/entity/lockListInfo_entity.dart';
|
||||||
|
|
||||||
class AddAuthorizedAdministratorState {
|
class AddAuthorizedAdministratorState {
|
||||||
late TabController? tabController;
|
late TabController? tabController;
|
||||||
@ -34,7 +35,9 @@ class AddAuthorizedAdministratorState {
|
|||||||
final keyInfo = LockListInfoItemEntity().obs;
|
final keyInfo = LockListInfoItemEntity().obs;
|
||||||
|
|
||||||
AddAuthorizedAdministratorState() {
|
AddAuthorizedAdministratorState() {
|
||||||
Map map = Get.arguments;
|
// Map map = Get.arguments;
|
||||||
keyInfo.value = map["keyInfo"];
|
// if ((map["keyInfo"] != null)) {
|
||||||
|
// keyInfo.value = map["keyInfo"];
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3,7 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.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/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDeta
|
|||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/jh_pop_menus.dart';
|
import 'package:star_lock/tools/jh_pop_menus.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||||
|
|
||||||
import '../../../../../appRouters.dart';
|
import '../../../../../appRouters.dart';
|
||||||
import '../../../../../app_settings/app_colors.dart';
|
import '../../../../../app_settings/app_colors.dart';
|
||||||
@ -102,11 +102,11 @@ class _AdministratorDetailsPageState extends State<AdministratorDetailsPage> {
|
|||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.lock!.tr,
|
leftTitel: TranslationLoader.lanKeys!.lock!.tr,
|
||||||
rightTitle: itemData.lockNum.toString(),
|
rightTitle: itemData.lockNum.toString(),
|
||||||
isHaveDirection: true,
|
isHaveDirection: false,
|
||||||
action: () {
|
action: () {
|
||||||
//锁列表页面
|
//锁列表页面
|
||||||
Navigator.pushNamed(context, Routers.lockItemListPage,
|
// Navigator.pushNamed(context, Routers.lockItemListPage,
|
||||||
arguments: {'lockList': lockItemList});
|
// arguments: {'lockList': lockItemList});
|
||||||
}),
|
}),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
|
|||||||
@ -3,17 +3,17 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/noData.dart';
|
import 'package:star_lock/tools/noData.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../../app_settings/app_colors.dart';
|
||||||
import '../../../../tools/titleAppBar.dart';
|
import '../../../../../tools/titleAppBar.dart';
|
||||||
import '../../../../translations/trans_lib.dart';
|
import '../../../../../translations/trans_lib.dart';
|
||||||
import '../../../tools/left_slide_actions.dart';
|
import '../../../../tools/left_slide_actions.dart';
|
||||||
import '../../../tools/showIosTipView.dart';
|
import '../../../../tools/showIosTipView.dart';
|
||||||
|
|
||||||
class AuthorizedAdministratorListPage extends StatefulWidget {
|
class AuthorizedAdministratorListPage extends StatefulWidget {
|
||||||
const AuthorizedAdministratorListPage({Key? key}) : super(key: key);
|
const AuthorizedAdministratorListPage({Key? key}) : super(key: key);
|
||||||
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,13 @@ class GroupEditLockLogic extends BaseGetXController {
|
|||||||
final GroupEditLockState state = GroupEditLockState();
|
final GroupEditLockState state = GroupEditLockState();
|
||||||
|
|
||||||
//锁分组里面添加锁
|
//锁分组里面添加锁
|
||||||
Future<void> lockGroupAddLock(List lockId) async {
|
Future<void> lockGroupAddLock(List lockIds) async {
|
||||||
|
if(lockIds.isEmpty){
|
||||||
|
showToast("请选择锁");
|
||||||
|
return;
|
||||||
|
}
|
||||||
var entity = await ApiRepository.to.lockGroupAddLock(
|
var entity = await ApiRepository.to.lockGroupAddLock(
|
||||||
lockIds: lockId,
|
lockIds: lockIds,
|
||||||
groupId: state.selectGroupListItem.keyGroupId!);
|
groupId: state.selectGroupListItem.keyGroupId!);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
showToast("添加成功");
|
showToast("添加成功");
|
||||||
@ -23,8 +27,12 @@ class GroupEditLockLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//锁分组里面添加锁
|
//锁分组里面添加锁
|
||||||
Future<void> lockGroupDeletLock(List lockId) async {
|
Future<void> lockGroupDeletLock(List lockIds) async {
|
||||||
var entity = await ApiRepository.to.lockGroupDeletLock(lockIds: lockId);
|
if(lockIds.isEmpty){
|
||||||
|
showToast("请选择锁");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var entity = await ApiRepository.to.lockGroupDeletLock(lockIds: lockIds);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
showToast("删除成功");
|
showToast("删除成功");
|
||||||
eventBus.fire(LockGroupEditGroupLockRefreshEvent());
|
eventBus.fire(LockGroupEditGroupLockRefreshEvent());
|
||||||
|
|||||||
@ -79,37 +79,37 @@ class _GroupEditLockPageState extends State<GroupEditLockPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _listItemView(LockListItem itemData) {
|
Widget _listItemView(LockListItem itemData) {
|
||||||
return Container(
|
return GestureDetector(
|
||||||
color: Colors.white,
|
onTap: (){
|
||||||
height: 80.h,
|
setState(() {
|
||||||
child: Row(
|
itemData.isChecked = !itemData.isChecked;
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
});
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
},
|
||||||
children: [
|
child: Container(
|
||||||
SizedBox(width: 20.w,),
|
color: Colors.white,
|
||||||
Image.asset('images/icon_lockGroup_item.png', width: 36, height: 36, fit: BoxFit.fill,),
|
height: 80.h,
|
||||||
SizedBox(width: 10.w,),
|
child: Row(
|
||||||
Text(
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
itemData.lockAlias ?? '',
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
style: TextStyle(fontSize: 24.sp),
|
children: [
|
||||||
),
|
SizedBox(width: 20.w,),
|
||||||
Expanded(child: SizedBox(width: 10.w)),
|
Image.asset('images/icon_lockGroup_item.png', width: 36, height: 36, fit: BoxFit.fill,),
|
||||||
GestureDetector(
|
SizedBox(width: 10.w,),
|
||||||
child: Image.asset(
|
Text(
|
||||||
|
itemData.lockAlias ?? '',
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
|
Expanded(child: SizedBox(width: 10.w)),
|
||||||
|
Image.asset(
|
||||||
itemData.isChecked
|
itemData.isChecked
|
||||||
? 'images/icon_round_select.png'
|
? 'images/icon_round_select.png'
|
||||||
: 'images/icon_round_unSelect.png',
|
: 'images/icon_round_unSelect.png',
|
||||||
width: 35.w,
|
width: 35.w,
|
||||||
height: 35.w,
|
height: 35.w,
|
||||||
),
|
),
|
||||||
onTap: (){
|
SizedBox(width: 30.w)
|
||||||
setState(() {
|
],
|
||||||
itemData.isChecked = !itemData.isChecked;
|
),
|
||||||
});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
SizedBox(width: 30.w)
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class _LockItemListPageState extends State<LockItemListPage> {
|
|||||||
appBar: TitleAppBar(
|
appBar: TitleAppBar(
|
||||||
barTitle: TranslationLoader.lanKeys!.lock!.tr,
|
barTitle: TranslationLoader.lanKeys!.lock!.tr,
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
actionsList: (lockList.isNotEmpty && groupListItem.groupType == 0) ? [
|
actionsList: (lockList.isNotEmpty && groupListItem.groupType != 0) ? [
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Image.asset(
|
icon: Image.asset(
|
||||||
'images/icon_bar_more.png',
|
'images/icon_bar_more.png',
|
||||||
@ -81,6 +81,7 @@ class _LockItemListPageState extends State<LockItemListPage> {
|
|||||||
: Stack(
|
: Stack(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
NoData(),
|
||||||
Positioned(
|
Positioned(
|
||||||
bottom: 350.h,
|
bottom: 350.h,
|
||||||
left: (ScreenUtil().screenWidth - 200.w) / 2,
|
left: (ScreenUtil().screenWidth - 200.w) / 2,
|
||||||
@ -92,7 +93,6 @@ class _LockItemListPageState extends State<LockItemListPage> {
|
|||||||
Get.toNamed(Routers.groupEditLockPage, arguments: {'groupListItem': groupListItem, 'ungrouped': ungrouped, 'type': 0});
|
Get.toNamed(Routers.groupEditLockPage, arguments: {'groupListItem': groupListItem, 'ungrouped': ungrouped, 'type': 0});
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
NoData(),
|
|
||||||
],
|
],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/keyOperationRecord/keyOperationRecord_entity.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/keyOperationRecord/keyOperationRecord_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||||
|
|||||||
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
|
||||||
|
import '../../../../network/api_repository.dart';
|
||||||
|
import 'expireLockList_entity.dart';
|
||||||
|
import 'expireLockList_state.dart';
|
||||||
|
|
||||||
|
class ExpireLockListLogic extends BaseGetXController{
|
||||||
|
ExpireLockListState state = ExpireLockListState();
|
||||||
|
|
||||||
|
//请求即将到期列表
|
||||||
|
Future<ExpireLockListEntity> expireLockListRequest() async {
|
||||||
|
ExpireLockListEntity entity = await ApiRepository.to.expireLockList(pageNo.toString(), pageSize.toString());
|
||||||
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
|
if (pageNo == 1) {
|
||||||
|
state.dataList.value = entity.data!.itemList!;
|
||||||
|
pageNo++;
|
||||||
|
} else {
|
||||||
|
if (entity.data!.itemList!.isNotEmpty) {
|
||||||
|
state.dataList.value.addAll(entity.data!.itemList!);
|
||||||
|
pageNo++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
//使用期限
|
||||||
|
String getExpireDateStr(ExpireLockItem itemData) {
|
||||||
|
DateTime startDateStr =
|
||||||
|
DateTime.fromMillisecondsSinceEpoch(itemData.startDate!);
|
||||||
|
DateTime endDateStr =
|
||||||
|
DateTime.fromMillisecondsSinceEpoch(itemData.endDate!);
|
||||||
|
String useDateStr =
|
||||||
|
'${startDateStr.toLocal().toString().substring(0, 10)}-${endDateStr.toLocal().toString().substring(0, 10)}';
|
||||||
|
return useDateStr;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,14 +1,15 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../tools/EasyRefreshTool.dart';
|
||||||
|
import '../../../../tools/noData.dart';
|
||||||
import '../../../../tools/titleAppBar.dart';
|
import '../../../../tools/titleAppBar.dart';
|
||||||
import '../../../../translations/trans_lib.dart';
|
import '../../../../translations/trans_lib.dart';
|
||||||
|
import 'expireLockList_logic.dart';
|
||||||
|
|
||||||
class ExpireLockListPage extends StatefulWidget {
|
class ExpireLockListPage extends StatefulWidget {
|
||||||
const ExpireLockListPage({Key? key}) : super(key: key);
|
const ExpireLockListPage({Key? key}) : super(key: key);
|
||||||
@ -18,13 +19,20 @@ class ExpireLockListPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _ExpireLockListPageState extends State<ExpireLockListPage> {
|
class _ExpireLockListPageState extends State<ExpireLockListPage> {
|
||||||
List<ExpireLockItem> dataList = [];
|
final logic = Get.put(ExpireLockListLogic());
|
||||||
|
final state = Get.find<ExpireLockListLogic>().state;
|
||||||
|
|
||||||
|
Future<void> getHttpData() async {
|
||||||
|
logic.expireLockListRequest().then((ExpireLockListEntity value){
|
||||||
|
if(mounted) setState(() {});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
expireLockListRequest();
|
getHttpData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -36,15 +44,26 @@ class _ExpireLockListPageState extends State<ExpireLockListPage> {
|
|||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
),
|
),
|
||||||
body: _buildMainUI(),
|
body: EasyRefreshTool(
|
||||||
|
onRefresh: (){
|
||||||
|
logic.pageNo = 1;
|
||||||
|
getHttpData();
|
||||||
|
},
|
||||||
|
onLoad: (){
|
||||||
|
getHttpData();
|
||||||
|
},
|
||||||
|
child: Obx(() => _buildMainUI())
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.separated(
|
return state.dataList.isEmpty
|
||||||
itemCount: dataList.length,
|
? NoData(noDataHeight: 1.sh - ScreenUtil().statusBarHeight - ScreenUtil().bottomBarHeight - 190.h - 64.h)
|
||||||
|
: ListView.separated(
|
||||||
|
itemCount: state.dataList.length,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
ExpireLockItem indexEntity = dataList[index];
|
ExpireLockItem indexEntity = state.dataList[index];
|
||||||
return _electronicKeyItem(indexEntity);
|
return _electronicKeyItem(indexEntity);
|
||||||
},
|
},
|
||||||
separatorBuilder: (BuildContext context, int index) {
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
@ -56,30 +75,6 @@ class _ExpireLockListPageState extends State<ExpireLockListPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//请求即将到期列表
|
|
||||||
Future<List<ExpireLockItem>> expireLockListRequest() async {
|
|
||||||
ExpireLockListEntity entity =
|
|
||||||
await ApiRepository.to.expireLockList('0', '1', '20');
|
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
|
||||||
setState(() {
|
|
||||||
dataList = entity.data!.itemList!;
|
|
||||||
// dataList = entity.data!;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return dataList;
|
|
||||||
}
|
|
||||||
|
|
||||||
//使用期限
|
|
||||||
String getExpireDateStr(ExpireLockItem itemData) {
|
|
||||||
DateTime startDateStr =
|
|
||||||
DateTime.fromMillisecondsSinceEpoch(itemData.startDate!);
|
|
||||||
DateTime endDateStr =
|
|
||||||
DateTime.fromMillisecondsSinceEpoch(itemData.endDate!);
|
|
||||||
String useDateStr =
|
|
||||||
'${startDateStr.toLocal().toString().substring(0, 10)}-${endDateStr.toLocal().toString().substring(0, 10)}';
|
|
||||||
return useDateStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _electronicKeyItem(ExpireLockItem itemData) {
|
Widget _electronicKeyItem(ExpireLockItem itemData) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@ -130,7 +125,7 @@ class _ExpireLockListPageState extends State<ExpireLockListPage> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
getExpireDateStr(itemData),
|
logic.getExpireDateStr(itemData),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.sp,
|
fontSize: 18.sp,
|
||||||
color: AppColors.placeholderTextColor),
|
color: AppColors.placeholderTextColor),
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
import 'expireLockList_entity.dart';
|
||||||
|
|
||||||
|
class ExpireLockListState{
|
||||||
|
final dataList = <ExpireLockItem>[].obs;
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@ import 'dart:async';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
import '../../../../network/api_repository.dart';
|
import '../../../../network/api_repository.dart';
|
||||||
|
|||||||
@ -1,17 +1,19 @@
|
|||||||
|
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import '../../../../network/api_repository.dart';
|
import '../../../../network/api_repository.dart';
|
||||||
|
import 'transferSmartLock_entity.dart';
|
||||||
import 'transferSmartLock_state.dart';
|
import 'transferSmartLock_state.dart';
|
||||||
|
|
||||||
class TransferSmartLockLogic extends BaseGetXController{
|
class TransferSmartLockLogic extends BaseGetXController{
|
||||||
TransferSmartLockState state = TransferSmartLockState();
|
TransferSmartLockState state = TransferSmartLockState();
|
||||||
|
|
||||||
// 获取锁列表
|
// 获取锁列表
|
||||||
Future<void> getTransferLockListData() async{
|
Future<TransferSmartLockEntity> getTransferLockListData() async{
|
||||||
var entity = await ApiRepository.to.getTransferLockListData();
|
var entity = await ApiRepository.to.getTransferLockListData();
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
state.transferSmartLockListData.value = entity.data!.list!;
|
state.transferSmartLockListData.value = entity.data!.list!;
|
||||||
}
|
}
|
||||||
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -20,7 +22,7 @@ class TransferSmartLockLogic extends BaseGetXController{
|
|||||||
super.onReady();
|
super.onReady();
|
||||||
print("onReady()");
|
print("onReady()");
|
||||||
|
|
||||||
getTransferLockListData();
|
// getTransferLockListData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import '../../../../../appRouters.dart';
|
|||||||
import '../../../../../app_settings/app_colors.dart';
|
import '../../../../../app_settings/app_colors.dart';
|
||||||
import '../../../../../tools/titleAppBar.dart';
|
import '../../../../../tools/titleAppBar.dart';
|
||||||
import '../../../../../translations/trans_lib.dart';
|
import '../../../../../translations/trans_lib.dart';
|
||||||
|
import '../../../../tools/EasyRefreshTool.dart';
|
||||||
|
import '../../../../tools/keySearchWidget.dart';
|
||||||
import '../../../../tools/noData.dart';
|
import '../../../../tools/noData.dart';
|
||||||
import 'transferSmartLock_entity.dart';
|
import 'transferSmartLock_entity.dart';
|
||||||
import 'transferSmartLock_logic.dart';
|
import 'transferSmartLock_logic.dart';
|
||||||
@ -21,6 +23,19 @@ class _TransferSmartLockPageState extends State<TransferSmartLockPage> {
|
|||||||
final logic = Get.put(TransferSmartLockLogic());
|
final logic = Get.put(TransferSmartLockLogic());
|
||||||
final state = Get.find<TransferSmartLockLogic>().state;
|
final state = Get.find<TransferSmartLockLogic>().state;
|
||||||
|
|
||||||
|
Future<void> getHttpData() async {
|
||||||
|
logic.getTransferLockListData().then((TransferSmartLockEntity value){
|
||||||
|
setState(() {});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
getHttpData();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@ -47,67 +62,24 @@ class _TransferSmartLockPageState extends State<TransferSmartLockPage> {
|
|||||||
child: Text(state.isSelectAll == true ? TranslationLoader.lanKeys!.checkAll!.tr : TranslationLoader.lanKeys!.cancel!.tr, style: TextStyle(color: Colors.white, fontSize: 24.sp)))
|
child: Text(state.isSelectAll == true ? TranslationLoader.lanKeys!.checkAll!.tr : TranslationLoader.lanKeys!.cancel!.tr, style: TextStyle(color: Colors.white, fontSize: 24.sp)))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: Column(
|
body: EasyRefreshTool(
|
||||||
children: [
|
onRefresh: (){
|
||||||
_searchWidget(),
|
getHttpData();
|
||||||
SizedBox(height: 10.h),
|
|
||||||
Expanded(child: _buildMainUI()),
|
|
||||||
SizedBox(height: 20.h),
|
|
||||||
_buildNextBtn(),
|
|
||||||
SizedBox(height: 64.h)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _searchWidget() {
|
|
||||||
return Container(
|
|
||||||
height: 60.h,
|
|
||||||
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.w),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white, borderRadius: BorderRadius.circular(5)),
|
|
||||||
child: TextField(
|
|
||||||
//输入框一行
|
|
||||||
maxLines: 1,
|
|
||||||
controller: state.searchController,
|
|
||||||
autofocus: false,
|
|
||||||
onChanged: (value){
|
|
||||||
print("onChanged:$value");
|
|
||||||
},
|
},
|
||||||
onEditingComplete: (){
|
child: Column(
|
||||||
print("onEditingComplete:");
|
children: [
|
||||||
},
|
// KeySearchWidget(
|
||||||
onSubmitted: (value) async {
|
// editingController: state.searchController,
|
||||||
FocusScope.of(context).requestFocus(FocusNode());
|
// onSubmittedAction: () {
|
||||||
await logic.getTransferLockListData();
|
// getHttpData();
|
||||||
if(state.searchController.text.isNotEmpty){
|
// },
|
||||||
var contrList = <TransferSmartLockItemData>[];
|
// ),
|
||||||
for (var element in state.transferSmartLockListData.value) {
|
SizedBox(height: 10.h),
|
||||||
if(element.lockAlias!.contains(state.searchController.text)){
|
Expanded(child: _buildMainUI()),
|
||||||
contrList.add(element);
|
SizedBox(height: 20.h),
|
||||||
}
|
_buildNextBtn(),
|
||||||
}
|
SizedBox(height: 64.h)
|
||||||
state.transferSmartLockListData.value = contrList;
|
],
|
||||||
print("contrList:${contrList[0].lockAlias} state.transferSmartLockListData.value:${state.transferSmartLockListData.value[0].lockAlias}");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
decoration: InputDecoration(
|
|
||||||
//输入里面输入文字内边距设置
|
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
|
|
||||||
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
|
|
||||||
hintStyle: TextStyle(fontSize: 22.sp, height: 3.0),
|
|
||||||
//不需要输入框下划线
|
|
||||||
border: InputBorder.none,
|
|
||||||
//左边图标设置
|
|
||||||
icon: Padding(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
top: 20.h, bottom: 20.h, right: 20.w, left: 10.w),
|
|
||||||
child: Image.asset(
|
|
||||||
'images/main/icon_main_search.png',
|
|
||||||
width: 40.w,
|
|
||||||
height: 40.w,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -486,7 +486,7 @@ class ApiProvider extends BaseProvider {
|
|||||||
Future<Response> lockGroupAddLock(List lockIds, int groupId) => post(
|
Future<Response> lockGroupAddLock(List lockIds, int groupId) => post(
|
||||||
lockGroupAddLockURL.toUrl,
|
lockGroupAddLockURL.toUrl,
|
||||||
jsonEncode({
|
jsonEncode({
|
||||||
'lockId': lockIds,
|
'lockIds': lockIds,
|
||||||
'groupId': groupId,
|
'groupId': groupId,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@ -494,7 +494,7 @@ class ApiProvider extends BaseProvider {
|
|||||||
Future<Response> lockGroupDeletLock(List lockIds) => post(
|
Future<Response> lockGroupDeletLock(List lockIds) => post(
|
||||||
lockGroupDeletLockURL.toUrl,
|
lockGroupDeletLockURL.toUrl,
|
||||||
jsonEncode({
|
jsonEncode({
|
||||||
'lockId': lockIds,
|
'lockIds': lockIds,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Future<Response> selectLockList() =>
|
Future<Response> selectLockList() =>
|
||||||
@ -523,12 +523,10 @@ class ApiProvider extends BaseProvider {
|
|||||||
'remoteEnable': remoteEnable
|
'remoteEnable': remoteEnable
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Future<Response> expireLockList(
|
Future<Response> expireLockList(String pageNo, String pageSize) =>
|
||||||
String operatorUid, String pageNo, String pageSize) =>
|
|
||||||
post(
|
post(
|
||||||
expireLockListURL.toUrl,
|
expireLockListURL.toUrl,
|
||||||
jsonEncode({
|
jsonEncode({
|
||||||
'operatorUid': operatorUid,
|
|
||||||
'pageNo': pageNo,
|
'pageNo': pageNo,
|
||||||
'pageSize': pageSize,
|
'pageSize': pageSize,
|
||||||
}));
|
}));
|
||||||
|
|||||||
@ -16,8 +16,8 @@ import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/min
|
|||||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_entity.dart';
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.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/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
|
||||||
import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart';
|
import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart';
|
||||||
@ -541,9 +541,8 @@ class ApiRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//即将到期的锁列表
|
//即将到期的锁列表
|
||||||
Future<ExpireLockListEntity> expireLockList(
|
Future<ExpireLockListEntity> expireLockList(String pageNo, String pageSize) async {
|
||||||
String operatorUid, String pageNo, String pageSize) async {
|
final res = await apiProvider.expireLockList(pageNo, pageSize);
|
||||||
final res = await apiProvider.expireLockList(operatorUid, pageNo, pageSize);
|
|
||||||
return ExpireLockListEntity.fromJson(res.body);
|
return ExpireLockListEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user