1,我的设置--授权管理员关联的锁接口对接
2,没有锁也可开通高级功能权限放开 3,修复N天未开门通知页面默认天数报错问题
This commit is contained in:
parent
15dd47d2f0
commit
dd8d56c012
@ -6,27 +6,26 @@ import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/ma
|
|||||||
typedef _CallBack = void Function(int selectIndex, String selectLockId);
|
typedef _CallBack = void Function(int selectIndex, String selectLockId);
|
||||||
|
|
||||||
class massSendLockGroupCell extends StatelessWidget {
|
class massSendLockGroupCell extends StatelessWidget {
|
||||||
|
massSendLockGroupCell(int index,
|
||||||
|
{required this.currentIndex,
|
||||||
|
required this.lockListByGroup,
|
||||||
|
required this.selectLockAction,
|
||||||
|
required this.isVip,
|
||||||
|
Key? key})
|
||||||
|
: super(key: key);
|
||||||
final int currentIndex;
|
final int currentIndex;
|
||||||
List lockListByGroup;
|
List lockListByGroup;
|
||||||
final _CallBack selectLockAction;
|
final _CallBack selectLockAction;
|
||||||
bool isVip;
|
bool isVip;
|
||||||
|
|
||||||
massSendLockGroupCell(int index,
|
|
||||||
{Key? key,
|
|
||||||
required this.currentIndex,
|
|
||||||
required this.lockListByGroup,
|
|
||||||
required this.selectLockAction,
|
|
||||||
required this.isVip})
|
|
||||||
: super(key: key);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: lockListByGroup.length,
|
itemCount: lockListByGroup.length,
|
||||||
itemBuilder: (_, itemIndex) {
|
itemBuilder: (_, int itemIndex) {
|
||||||
LockListItem itemData = lockListByGroup[itemIndex];
|
final LockListItem itemData = lockListByGroup[itemIndex];
|
||||||
return _itemBuilder(itemData, itemIndex);
|
return _itemBuilder(itemData, itemIndex);
|
||||||
},
|
},
|
||||||
separatorBuilder: (BuildContext context, int index) {
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
@ -68,8 +67,8 @@ class massSendLockGroupCell extends StatelessWidget {
|
|||||||
)),
|
)),
|
||||||
Image.asset(
|
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: 30.w,
|
width: 30.w,
|
||||||
height: 30.w,
|
height: 30.w,
|
||||||
color: !isVip ? Colors.grey : AppColors.mainColor,
|
color: !isVip ? Colors.grey : AppColors.mainColor,
|
||||||
|
|||||||
@ -9,7 +9,7 @@ class MassSendLockGroupListLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//分组列表请求
|
//分组列表请求
|
||||||
Future<void> mockNetworkDataRequest() async {
|
Future<void> mockNetworkDataRequest() async {
|
||||||
MassSendLockGroupListEntity entity =
|
final MassSendLockGroupListEntity entity =
|
||||||
await ApiRepository.to.lockGroupList(state.keyLimits);
|
await ApiRepository.to.lockGroupList(state.keyLimits);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
if (entity.data != null) {
|
if (entity.data != null) {
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
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/appRouters.dart';
|
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
import 'package:star_lock/app_settings/app_colors.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupCell.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupCell.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_logic.dart';
|
||||||
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_state.dart';
|
||||||
import 'package:star_lock/tools/ExpandedListView.dart';
|
import 'package:star_lock/tools/ExpandedListView.dart';
|
||||||
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
||||||
import 'package:star_lock/tools/submitBtn.dart';
|
import 'package:star_lock/tools/submitBtn.dart';
|
||||||
@ -21,8 +21,10 @@ class MassSendLockGroupListPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _MassSendLockGroupListPageState extends State<MassSendLockGroupListPage> {
|
class _MassSendLockGroupListPageState extends State<MassSendLockGroupListPage> {
|
||||||
final logic = Get.put(MassSendLockGroupListLogic());
|
final MassSendLockGroupListLogic logic =
|
||||||
final state = Get.find<MassSendLockGroupListLogic>().state;
|
Get.put(MassSendLockGroupListLogic());
|
||||||
|
final MassSendLockGroupListState state =
|
||||||
|
Get.find<MassSendLockGroupListLogic>().state;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
initState() {
|
initState() {
|
||||||
@ -77,7 +79,7 @@ class _MassSendLockGroupListPageState extends State<MassSendLockGroupListPage> {
|
|||||||
child: SubmitBtn(
|
child: SubmitBtn(
|
||||||
btnName: '确定'.tr,
|
btnName: '确定'.tr,
|
||||||
onClick: () {
|
onClick: () {
|
||||||
Map<String, dynamic> resultMap = {};
|
final Map<String, dynamic> resultMap = {};
|
||||||
resultMap['selectLockIdList'] =
|
resultMap['selectLockIdList'] =
|
||||||
state.selectLockIdList.value;
|
state.selectLockIdList.value;
|
||||||
Navigator.pop(context, resultMap);
|
Navigator.pop(context, resultMap);
|
||||||
@ -94,12 +96,12 @@ class _MassSendLockGroupListPageState extends State<MassSendLockGroupListPage> {
|
|||||||
Widget _buildListView(BuildContext context, List itemList) {
|
Widget _buildListView(BuildContext context, List itemList) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
itemCount: itemList.length,
|
itemCount: itemList.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
GroupListItem itemData = itemList[index];
|
final GroupListItem itemData = itemList[index];
|
||||||
return _buildLockExpandedList(context, index, itemData);
|
return _buildLockExpandedList(context, index, itemData);
|
||||||
},
|
},
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
separatorBuilder: (context, index) {
|
separatorBuilder: (BuildContext context, index) {
|
||||||
return const Divider(
|
return const Divider(
|
||||||
height: 1,
|
height: 1,
|
||||||
color: AppColors.greyLineColor,
|
color: AppColors.greyLineColor,
|
||||||
|
|||||||
@ -9,8 +9,9 @@ class CoerceFingerprintListLogic extends BaseGetXController {
|
|||||||
final CoerceFingerprintListState state = CoerceFingerprintListState();
|
final CoerceFingerprintListState state = CoerceFingerprintListState();
|
||||||
|
|
||||||
// 锁用户列表
|
// 锁用户列表
|
||||||
void getCoercedFingerprintList() async {
|
Future<void> getCoercedFingerprintList() async {
|
||||||
var entity = await ApiRepository.to.getCoercedFingerprintList(
|
final CoerceFingerprintListEntity entity =
|
||||||
|
await ApiRepository.to.getCoercedFingerprintList(
|
||||||
lockId: state.getLockId.value,
|
lockId: state.getLockId.value,
|
||||||
pageNo: state.pageNum.value,
|
pageNo: state.pageNum.value,
|
||||||
pageSize: state.pageSize.value,
|
pageSize: state.pageSize.value,
|
||||||
@ -24,15 +25,15 @@ class CoerceFingerprintListLogic extends BaseGetXController {
|
|||||||
//获取指纹有效期
|
//获取指纹有效期
|
||||||
String getfingerprintUseDateStr(
|
String getfingerprintUseDateStr(
|
||||||
CoerceFingerprintItemData fingerprintItemData) {
|
CoerceFingerprintItemData fingerprintItemData) {
|
||||||
var keyDateTypeStr = ""; // 永久:1;限时2,单次3,循环:4
|
var keyDateTypeStr = ''; // 永久:1;限时2,单次3,循环:4
|
||||||
if (fingerprintItemData.fingerprintType! == 1) {
|
if (fingerprintItemData.fingerprintType! == 1) {
|
||||||
keyDateTypeStr = "永久".tr;
|
keyDateTypeStr = '永久'.tr;
|
||||||
} else if (fingerprintItemData.fingerprintType! == 2) {
|
} else if (fingerprintItemData.fingerprintType! == 2) {
|
||||||
keyDateTypeStr =
|
keyDateTypeStr =
|
||||||
"${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时";
|
'${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时';
|
||||||
} else if (fingerprintItemData.fingerprintType! == 4) {
|
} else if (fingerprintItemData.fingerprintType! == 4) {
|
||||||
keyDateTypeStr =
|
keyDateTypeStr =
|
||||||
"${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环";
|
'${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环';
|
||||||
}
|
}
|
||||||
return keyDateTypeStr;
|
return keyDateTypeStr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_entity.dart';
|
import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_entity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_logic.dart';
|
import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_logic.dart';
|
||||||
|
import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_state.dart';
|
||||||
import 'package:star_lock/tools/keySearchWidget.dart';
|
import 'package:star_lock/tools/keySearchWidget.dart';
|
||||||
|
|
||||||
import '../../../../../../app_settings/app_colors.dart';
|
import '../../../../../../app_settings/app_colors.dart';
|
||||||
@ -18,8 +19,10 @@ class CoerceFingerprintListPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
||||||
final logic = Get.put(CoerceFingerprintListLogic());
|
final CoerceFingerprintListLogic logic =
|
||||||
final state = Get.find<CoerceFingerprintListLogic>().state;
|
Get.put(CoerceFingerprintListLogic());
|
||||||
|
final CoerceFingerprintListState state =
|
||||||
|
Get.find<CoerceFingerprintListLogic>().state;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
initState() {
|
initState() {
|
||||||
@ -37,7 +40,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: <Widget>[
|
||||||
KeySearchWidget(
|
KeySearchWidget(
|
||||||
editingController: state.searchController,
|
editingController: state.searchController,
|
||||||
onSubmittedAction: () {
|
onSubmittedAction: () {
|
||||||
@ -48,7 +51,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
SizedBox(
|
SizedBox(
|
||||||
height: 20.h,
|
height: 20.h,
|
||||||
),
|
),
|
||||||
Expanded(child: Obx(() => _buildMainUI())),
|
Expanded(child: Obx(_buildMainUI)),
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName: '确定'.tr,
|
btnName: '确定'.tr,
|
||||||
onClick: () {
|
onClick: () {
|
||||||
@ -68,7 +71,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: state.fingerprintList.length,
|
itemCount: state.fingerprintList.length,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (BuildContext c, int index) {
|
||||||
return _electronicKeyItem(state.fingerprintList[index], index);
|
return _electronicKeyItem(state.fingerprintList[index], index);
|
||||||
},
|
},
|
||||||
separatorBuilder: (BuildContext context, int index) {
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
@ -85,7 +88,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
for (int i = 0; i < state.fingerprintList.value.length; i++) {
|
for (int i = 0; i < state.fingerprintList.value.length; i++) {
|
||||||
CoerceFingerprintItemData item = state.fingerprintList.value[i];
|
final CoerceFingerprintItemData item = state.fingerprintList.value[i];
|
||||||
if (selectIndex == i) {
|
if (selectIndex == i) {
|
||||||
item.isCurrentSelect = true;
|
item.isCurrentSelect = true;
|
||||||
} else {
|
} else {
|
||||||
@ -100,7 +103,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
height: 90.h,
|
height: 90.h,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: <Widget>[
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 30.w,
|
||||||
),
|
),
|
||||||
@ -115,9 +118,9 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: <Widget>[
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: <Widget>[
|
||||||
Text(
|
Text(
|
||||||
itemData.fingerprintName ?? '',
|
itemData.fingerprintName ?? '',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
@ -133,7 +136,7 @@ class _CoerceFingerprintListPageState extends State<CoerceFingerprintListPage> {
|
|||||||
SizedBox(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: <Widget>[
|
||||||
Text(
|
Text(
|
||||||
logic.getfingerprintUseDateStr(itemData),
|
logic.getfingerprintUseDateStr(itemData),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
|||||||
@ -22,7 +22,7 @@ class NDaysUnopenedState {
|
|||||||
];
|
];
|
||||||
|
|
||||||
var isUnOpenNotice = false.obs; // 是否N天未开门提醒
|
var isUnOpenNotice = false.obs; // 是否N天未开门提醒
|
||||||
var unOpenDoorTime = 1.obs; // 未开门时间
|
var unOpenDoorTime = 3.obs; // 未开门时间
|
||||||
|
|
||||||
var getLockId = 0.obs;
|
var getLockId = 0.obs;
|
||||||
var lockUserKeys = LockUserListKeys().obs;
|
var lockUserKeys = LockUserListKeys().obs;
|
||||||
@ -43,7 +43,9 @@ class NDaysUnopenedState {
|
|||||||
msgNoticeInfo.value = map['lockSetInfoData'];
|
msgNoticeInfo.value = map['lockSetInfoData'];
|
||||||
isUnOpenNotice.value =
|
isUnOpenNotice.value =
|
||||||
msgNoticeInfo.value.dayNotOpenDoorState == 1 ? true : false;
|
msgNoticeInfo.value.dayNotOpenDoorState == 1 ? true : false;
|
||||||
unOpenDoorTime.value = msgNoticeInfo.value.dayNotOpenDoorValue!;
|
if (msgNoticeInfo.value.dayNotOpenDoorValue != 0) {
|
||||||
|
unOpenDoorTime.value = msgNoticeInfo.value.dayNotOpenDoorValue!;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,13 +93,13 @@ class StarLockMinePageState extends State<StarLockMinePage> with BaseWidget {
|
|||||||
Obx(() => GestureDetector(
|
Obx(() => GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (!state.isVip.value) {
|
if (!state.isVip.value) {
|
||||||
if (CommonDataManage().currentKeyInfo.isLockOwner !=
|
// if (CommonDataManage().currentKeyInfo.isLockOwner !=
|
||||||
1) {
|
// 1) {
|
||||||
logic.showToast('请先添加锁');
|
// logic.showToast('请先添加锁');
|
||||||
} else {
|
// } else {
|
||||||
Get.toNamed(Routers.advancedFeaturesWebPage,
|
Get.toNamed(Routers.advancedFeaturesWebPage,
|
||||||
arguments: <String, bool>{'isShop': true});
|
arguments: <String, bool>{'isShop': true});
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
Routers.valueAddedServicesHighFunctionPage);
|
Routers.valueAddedServicesHighFunctionPage);
|
||||||
|
|||||||
@ -0,0 +1,85 @@
|
|||||||
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
|
||||||
|
|
||||||
|
class AdministratorAssociationLockEntity {
|
||||||
|
AdministratorAssociationLockEntity(
|
||||||
|
{this.errorCode, this.description, this.errorMsg, this.data});
|
||||||
|
|
||||||
|
AdministratorAssociationLockEntity.fromJson(Map<String, dynamic> json) {
|
||||||
|
errorCode = json['errorCode'];
|
||||||
|
description = json['description'];
|
||||||
|
errorMsg = json['errorMsg'];
|
||||||
|
if (json['data'] != null) {
|
||||||
|
data = <GroupListItemData>[];
|
||||||
|
json['data'].forEach((v) {
|
||||||
|
data!.add(GroupListItemData.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int? errorCode;
|
||||||
|
String? description;
|
||||||
|
String? errorMsg;
|
||||||
|
List<GroupListItemData>? data;
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = <String, dynamic>{};
|
||||||
|
data['errorCode'] = errorCode;
|
||||||
|
data['description'] = description;
|
||||||
|
data['errorMsg'] = errorMsg;
|
||||||
|
if (this.data != null) {
|
||||||
|
data['data'] =
|
||||||
|
this.data!.map((GroupListItemData v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GroupListItemData {
|
||||||
|
GroupListItemData(
|
||||||
|
{this.uid, this.groupName, this.groupType, this.groupId, this.lockList});
|
||||||
|
GroupListItemData.fromJson(Map<String, dynamic> json) {
|
||||||
|
uid = json['uid'];
|
||||||
|
groupName = json['groupName'];
|
||||||
|
groupType = json['groupType'];
|
||||||
|
groupId = json['groupId'];
|
||||||
|
if (json['lockList'] != null) {
|
||||||
|
lockList = <LockListItem>[];
|
||||||
|
json['lockList'].forEach((v) {
|
||||||
|
lockList!.add(LockListItem.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int? uid;
|
||||||
|
String? groupName;
|
||||||
|
int? groupType;
|
||||||
|
int? groupId;
|
||||||
|
List<LockListItem>? lockList;
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = <String, dynamic>{};
|
||||||
|
data['uid'] = uid;
|
||||||
|
data['groupName'] = groupName;
|
||||||
|
data['groupType'] = groupType;
|
||||||
|
data['groupId'] = groupId;
|
||||||
|
if (lockList != null) {
|
||||||
|
data['lockList'] = lockList!.map((LockListItem v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// class LockListItemData {
|
||||||
|
// LockListItemData({this.lockId, this.lockAlias});
|
||||||
|
// LockListItemData.fromJson(Map<String, dynamic> json) {
|
||||||
|
// lockId = json['lockId'];
|
||||||
|
// lockAlias = json['lockAlias'];
|
||||||
|
// }
|
||||||
|
// int? lockId;
|
||||||
|
// String? lockAlias;
|
||||||
|
|
||||||
|
// Map<String, dynamic> toJson() {
|
||||||
|
// final Map<String, dynamic> data = <String, dynamic>{};
|
||||||
|
// data['lockId'] = lockId;
|
||||||
|
// data['lockAlias'] = lockAlias;
|
||||||
|
// return data;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_state.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_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';
|
||||||
@ -11,11 +11,13 @@ class AdministratorAssociationLockLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//获取授权管理员下锁列表
|
//获取授权管理员下锁列表
|
||||||
Future<void> administratorOwnLockListRequest() async {
|
Future<void> administratorOwnLockListRequest() async {
|
||||||
var entity = await ApiRepository.to.administratorOwnLockList(
|
final AdministratorAssociationLockEntity entity =
|
||||||
|
await ApiRepository.to.administratorOwnLockList(
|
||||||
uid: state.itemData.value.uid ?? 0,
|
uid: state.itemData.value.uid ?? 0,
|
||||||
);
|
);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
EasyLoading.showToast('修改成功', duration: 2000.milliseconds);
|
state.itemLockList.value = entity.data!;
|
||||||
|
state.itemLockList.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupCell.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupCell.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart';
|
||||||
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_entity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_logic.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_logic.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_state.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_state.dart';
|
||||||
import 'package:star_lock/tools/ExpandedListView.dart';
|
import 'package:star_lock/tools/ExpandedListView.dart';
|
||||||
@ -44,17 +45,14 @@ class _AdministratorAssociationLockPageState
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: _buildListView(),
|
body: Obx(_buildListView),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildListView() {
|
Widget _buildListView() {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
itemCount: state.itemLockList.length,
|
itemCount: state.itemLockList.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: _buildLockExpandedList,
|
||||||
final GroupListItem itemData = state.itemLockList[index];
|
|
||||||
return _buildLockExpandedList(context, index, itemData);
|
|
||||||
},
|
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
separatorBuilder: (BuildContext context, int index) {
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
return const Divider(
|
return const Divider(
|
||||||
@ -65,38 +63,23 @@ class _AdministratorAssociationLockPageState
|
|||||||
}
|
}
|
||||||
|
|
||||||
//设备多层级列表
|
//设备多层级列表
|
||||||
Widget _buildLockExpandedList(context, index, GroupListItem itemData) {
|
Widget _buildLockExpandedList(context, index) {
|
||||||
List lockItemList = itemData.lockList ?? [];
|
final GroupListItemData itemData = state.itemLockList[index];
|
||||||
|
final List lockItemList = itemData.lockList ?? [];
|
||||||
|
final GroupListItem getItemData = GroupListItem();
|
||||||
|
getItemData.keyGroupId = itemData.groupId;
|
||||||
|
getItemData.keyGroupName = itemData.groupName;
|
||||||
|
getItemData.groupType = itemData.groupType;
|
||||||
|
|
||||||
return ExpandedListTile(
|
return ExpandedListTile(
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
//是否选中组
|
|
||||||
if (itemData.isChecked) {
|
|
||||||
var selectList = itemData.lockList;
|
|
||||||
for (LockListItem lockListItem in selectList!) {
|
|
||||||
lockListItem.isChecked = true;
|
|
||||||
state.selectLockIdList.value.add(lockListItem.lockId);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var selectList = itemData.lockList;
|
|
||||||
for (LockListItem lockListItem in selectList!) {
|
|
||||||
lockListItem.isChecked = false;
|
|
||||||
state.selectLockIdList.value.remove(lockListItem.lockId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
typeImgList: const [],
|
typeImgList: const [],
|
||||||
groupItem: itemData,
|
groupItem: getItemData,
|
||||||
child: massSendLockGroupCell(index,
|
child: massSendLockGroupCell(index,
|
||||||
currentIndex: index, lockListByGroup: lockItemList, isVip: true,
|
currentIndex: index,
|
||||||
selectLockAction: (int selectIndex, String selectLockId) {
|
lockListByGroup: lockItemList,
|
||||||
final LockListItem lockItem = lockItemList[selectIndex];
|
isVip: true,
|
||||||
lockItem.isChecked = !lockItem.isChecked;
|
selectLockAction: (int selectIndex, String selectLockId) {}),
|
||||||
if (lockItem.isChecked) {
|
|
||||||
state.selectLockIdList.value.add(lockItem.lockId);
|
|
||||||
}
|
|
||||||
setState(() {});
|
|
||||||
}),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,12 +66,12 @@ class _ValueAddedServicesPageListState
|
|||||||
TranslationLoader.lanKeys!.advancedFunction!.tr, () async {
|
TranslationLoader.lanKeys!.advancedFunction!.tr, () async {
|
||||||
var isVip = await Storage.getBool(saveIsVip);
|
var isVip = await Storage.getBool(saveIsVip);
|
||||||
if (isVip == null || !isVip) {
|
if (isVip == null || !isVip) {
|
||||||
if (CommonDataManage().currentKeyInfo.isLockOwner != 1) {
|
// if (CommonDataManage().currentKeyInfo.isLockOwner != 1) {
|
||||||
logic.showToast('请先添加锁');
|
// logic.showToast('请先添加锁');
|
||||||
} else {
|
// } else {
|
||||||
Get.toNamed(Routers.advancedFeaturesWebPage,
|
Get.toNamed(Routers.advancedFeaturesWebPage,
|
||||||
arguments: {'isShop': true});
|
arguments: <String, bool>{'isShop': true});
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
Get.toNamed(Routers.valueAddedServicesHighFunctionPage);
|
Get.toNamed(Routers.valueAddedServicesHighFunctionPage);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_
|
|||||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_entity.dart';
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_entity.dart';
|
||||||
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/administratorAssociationLock/administratorAssociationLock_entity.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/authorizedAdministrator/authorizedAdminListEntity.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElectronicKey/expireLockList_entity.dart';
|
import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElectronicKey/expireLockList_entity.dart';
|
||||||
@ -1014,10 +1015,10 @@ class ApiRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取授权管理员下锁列表
|
//获取授权管理员下锁列表
|
||||||
Future<AuthorizedAdminListEntity> administratorOwnLockList(
|
Future<AdministratorAssociationLockEntity> administratorOwnLockList(
|
||||||
{required int uid}) async {
|
{required int uid}) async {
|
||||||
final res = await apiProvider.administratorOwnLockList(uid);
|
final res = await apiProvider.administratorOwnLockList(uid);
|
||||||
return AuthorizedAdminListEntity.fromJson(res.body);
|
return AdministratorAssociationLockEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除授权管理员
|
//删除授权管理员
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user