1,新增我的设置--授权管理员关联锁列表页面
2,获取授权管理员下锁列表接口对接
This commit is contained in:
parent
e8fa6b5856
commit
b84c448d5e
@ -42,6 +42,7 @@ import 'package:star_lock/mine/about/webviewShow_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/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_page.dart';
|
||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_page.dart';
|
||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorChangeDate/adminDetailChangeDate_page.dart';
|
||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart';
|
||||
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart';
|
||||
@ -448,6 +449,8 @@ abstract class Routers {
|
||||
static const advancedFeaturesWebPage = '/advancedFeaturesWebPage'; // 高级功能
|
||||
static const advancedFunctionRecordPage =
|
||||
'/advancedFunctionRecordPage'; //高级功能购买记录
|
||||
static const String administratorAssociationLockPage =
|
||||
'/administratorAssociationLockPage'; //我的设置-授权管理员-关联锁
|
||||
}
|
||||
|
||||
abstract class AppRouters {
|
||||
@ -1070,5 +1073,8 @@ abstract class AppRouters {
|
||||
GetPage(
|
||||
name: Routers.advancedFunctionRecordPage,
|
||||
page: (() => const AdvancedFunctionRecordPage())),
|
||||
GetPage(
|
||||
name: Routers.administratorAssociationLockPage,
|
||||
page: () => const AdministratorAssociationLockPage()),
|
||||
];
|
||||
}
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_state.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
import 'package:star_lock/tools/custom_bottom_sheet.dart';
|
||||
|
||||
class AdministratorAssociationLockLogic extends BaseGetXController {
|
||||
AdministratorAssociationLockState state = AdministratorAssociationLockState();
|
||||
|
||||
//获取授权管理员下锁列表
|
||||
Future<void> administratorOwnLockListRequest() async {
|
||||
var entity = await ApiRepository.to.administratorOwnLockList(
|
||||
uid: state.itemData.value.uid ?? 0,
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
EasyLoading.showToast('修改成功', duration: 2000.milliseconds);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> openModalBottomSheet() async {
|
||||
final List<String> textList = <String>['添加'.tr, '删除'.tr];
|
||||
|
||||
showModalBottomSheet(
|
||||
context: Get.context!,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadiusDirectional.circular(10)),
|
||||
builder: (BuildContext context) {
|
||||
return AlertBottomWidget(
|
||||
topTitle: '',
|
||||
items: textList,
|
||||
chooseCallback: (int value) {
|
||||
final int index = value;
|
||||
if (index == 0) {
|
||||
} else {}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
super.onReady();
|
||||
|
||||
administratorOwnLockListRequest();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,102 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.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/massSendLockGroupListEntity.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/tools/ExpandedListView.dart';
|
||||
|
||||
import '../../../../../app_settings/app_colors.dart';
|
||||
import '../../../../../tools/titleAppBar.dart';
|
||||
|
||||
class AdministratorAssociationLockPage extends StatefulWidget {
|
||||
const AdministratorAssociationLockPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<AdministratorAssociationLockPage> createState() =>
|
||||
_AdministratorAssociationLockPageState();
|
||||
}
|
||||
|
||||
class _AdministratorAssociationLockPageState
|
||||
extends State<AdministratorAssociationLockPage> {
|
||||
final AdministratorAssociationLockLogic logic =
|
||||
Get.put(AdministratorAssociationLockLogic());
|
||||
final AdministratorAssociationLockState state =
|
||||
Get.find<AdministratorAssociationLockLogic>().state;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColors.mainBackgroundColor,
|
||||
appBar: TitleAppBar(
|
||||
barTitle: '锁'.tr,
|
||||
haveBack: true,
|
||||
backgroundColor: AppColors.mainColor,
|
||||
actionsList: <Widget>[
|
||||
IconButton(
|
||||
icon: Image.asset(
|
||||
'images/icon_bar_more.png',
|
||||
height: 30.h,
|
||||
width: 10.w,
|
||||
),
|
||||
onPressed: logic.openModalBottomSheet,
|
||||
),
|
||||
],
|
||||
),
|
||||
body: _buildListView(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildListView() {
|
||||
return ListView.separated(
|
||||
itemCount: state.itemLockList.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
final GroupListItem itemData = state.itemLockList[index];
|
||||
return _buildLockExpandedList(context, index, itemData);
|
||||
},
|
||||
shrinkWrap: true,
|
||||
separatorBuilder: (BuildContext context, int index) {
|
||||
return const Divider(
|
||||
height: 1,
|
||||
color: AppColors.greyLineColor,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
//设备多层级列表
|
||||
Widget _buildLockExpandedList(context, index, GroupListItem itemData) {
|
||||
List lockItemList = itemData.lockList ?? [];
|
||||
return ExpandedListTile(
|
||||
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 [],
|
||||
groupItem: itemData,
|
||||
child: massSendLockGroupCell(index,
|
||||
currentIndex: index, lockListByGroup: lockItemList, isVip: true,
|
||||
selectLockAction: (int selectIndex, String selectLockId) {
|
||||
final LockListItem lockItem = lockItemList[selectIndex];
|
||||
lockItem.isChecked = !lockItem.isChecked;
|
||||
if (lockItem.isChecked) {
|
||||
state.selectLockIdList.value.add(lockItem.lockId);
|
||||
}
|
||||
setState(() {});
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdminListEntity.dart';
|
||||
|
||||
class AdministratorAssociationLockState {
|
||||
AdministratorAssociationLockState() {
|
||||
final Map map = Get.arguments;
|
||||
if (map['itemData'] != null) {
|
||||
itemData.value = map['itemData'];
|
||||
}
|
||||
}
|
||||
|
||||
RxList itemLockList = [].obs;
|
||||
Rx<AuthorizedAdminListItem> itemData = AuthorizedAdminListItem().obs;
|
||||
RxList selectLockIdList = [].obs;
|
||||
}
|
||||
@ -88,11 +88,12 @@ class _AdministratorDetailsPageState extends State<AdministratorDetailsPage> {
|
||||
CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.lock!.tr,
|
||||
rightTitle: state.itemData.value.lockNum.toString(),
|
||||
isHaveDirection: false,
|
||||
isHaveDirection: true,
|
||||
action: () {
|
||||
// //锁列表页面
|
||||
// Navigator.pushNamed(context, Routers.lockItemListPage,
|
||||
// arguments: {'lockList': state.lockItemList});
|
||||
Get.toNamed(Routers.administratorAssociationLockPage,
|
||||
arguments: <String, AuthorizedAdminListItem>{
|
||||
'itemData': state.itemData.value,
|
||||
});
|
||||
}),
|
||||
Container(height: 10.h),
|
||||
CommonItem(
|
||||
|
||||
@ -143,6 +143,8 @@ abstract class Api {
|
||||
final String canSendKeyURL = '/keyUser/canSendKey'; //群发钥匙检查
|
||||
final String batchSendKeyURL = '/key/batchSend'; //批处理群发钥匙
|
||||
final String addAuthorizedAdminURL = '/authorizedAdmin/add'; //增加授权管理员
|
||||
final String administratorOwnLockListURL =
|
||||
'/authorizedAdmin/ownLockList'; //获取授权管理员下锁列表
|
||||
final String keyListByUserURL = '/keyUser/listByUse'; //用户拥有的锁
|
||||
final String authorizedAdminListURL = '/authorizedAdmin/list'; //授权管理员列表
|
||||
final String authorizedAdminDetailURL = '/authorizedAdmin/detail'; //授权管理员详情
|
||||
@ -234,5 +236,4 @@ abstract class Api {
|
||||
final String deleteLockCloudStorageURL = '/lockCloudStorage/delete'; //删除云存
|
||||
|
||||
final String getUserNoList = '/key/getUserNoList'; //获取指定锁下所有userNo
|
||||
|
||||
}
|
||||
|
||||
@ -374,12 +374,15 @@ class ApiProvider extends BaseProvider {
|
||||
}));
|
||||
|
||||
// 获取锁信息列表
|
||||
Future<Response> getStarLockListInfo(int pageNo, int pageSize,{bool isUnShowLoading = true}) => post(
|
||||
getStarLockInfoURL.toUrl,
|
||||
jsonEncode({
|
||||
"pageNo": pageNo,
|
||||
'pageSize': pageSize,
|
||||
}),isUnShowLoading: isUnShowLoading);
|
||||
Future<Response> getStarLockListInfo(int pageNo, int pageSize,
|
||||
{bool isUnShowLoading = true}) =>
|
||||
post(
|
||||
getStarLockInfoURL.toUrl,
|
||||
jsonEncode({
|
||||
"pageNo": pageNo,
|
||||
'pageSize': pageSize,
|
||||
}),
|
||||
isUnShowLoading: isUnShowLoading);
|
||||
|
||||
// 获取所有锁设置信息
|
||||
Future<Response> getLockSettingInfoData(String lockId) => post(
|
||||
@ -1499,6 +1502,10 @@ class ApiProvider extends BaseProvider {
|
||||
Future<Response> authorizedAdminDetail(int uid) =>
|
||||
post(authorizedAdminDetailURL.toUrl, jsonEncode({'uid': uid}));
|
||||
|
||||
//获取授权管理员下锁列表
|
||||
Future<Response> administratorOwnLockList(int uid) =>
|
||||
post(administratorOwnLockListURL.toUrl, jsonEncode({'uid': uid}));
|
||||
|
||||
Future<Response> deleteAuthorizedAdmin(
|
||||
String uid, String includeUnderlings) =>
|
||||
post(deleteAdministratorURL.toUrl,
|
||||
|
||||
@ -1012,6 +1012,13 @@ class ApiRepository {
|
||||
return AdministratorDetailEntity.fromJson(res.body);
|
||||
}
|
||||
|
||||
//获取授权管理员下锁列表
|
||||
Future<AuthorizedAdminListEntity> administratorOwnLockList(
|
||||
{required int uid}) async {
|
||||
final res = await apiProvider.administratorOwnLockList(uid);
|
||||
return AuthorizedAdminListEntity.fromJson(res.body);
|
||||
}
|
||||
|
||||
//删除授权管理员
|
||||
Future<AuthorizedAdminListEntity> deleteAuthorizedAdmin(
|
||||
String uid, String includeUnderlings) async {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user