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/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/authorizedAdministrator/administratorAssociationLock/administratorAssociationLock_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorChangeDate/adminDetailChangeDate_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/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';
|
||||||
@ -448,6 +449,8 @@ abstract class Routers {
|
|||||||
static const advancedFeaturesWebPage = '/advancedFeaturesWebPage'; // 高级功能
|
static const advancedFeaturesWebPage = '/advancedFeaturesWebPage'; // 高级功能
|
||||||
static const advancedFunctionRecordPage =
|
static const advancedFunctionRecordPage =
|
||||||
'/advancedFunctionRecordPage'; //高级功能购买记录
|
'/advancedFunctionRecordPage'; //高级功能购买记录
|
||||||
|
static const String administratorAssociationLockPage =
|
||||||
|
'/administratorAssociationLockPage'; //我的设置-授权管理员-关联锁
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class AppRouters {
|
abstract class AppRouters {
|
||||||
@ -1070,5 +1073,8 @@ abstract class AppRouters {
|
|||||||
GetPage(
|
GetPage(
|
||||||
name: Routers.advancedFunctionRecordPage,
|
name: Routers.advancedFunctionRecordPage,
|
||||||
page: (() => const 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(
|
CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.lock!.tr,
|
leftTitel: TranslationLoader.lanKeys!.lock!.tr,
|
||||||
rightTitle: state.itemData.value.lockNum.toString(),
|
rightTitle: state.itemData.value.lockNum.toString(),
|
||||||
isHaveDirection: false,
|
isHaveDirection: true,
|
||||||
action: () {
|
action: () {
|
||||||
// //锁列表页面
|
Get.toNamed(Routers.administratorAssociationLockPage,
|
||||||
// Navigator.pushNamed(context, Routers.lockItemListPage,
|
arguments: <String, AuthorizedAdminListItem>{
|
||||||
// arguments: {'lockList': state.lockItemList});
|
'itemData': state.itemData.value,
|
||||||
|
});
|
||||||
}),
|
}),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
|
|||||||
@ -143,6 +143,8 @@ abstract class Api {
|
|||||||
final String canSendKeyURL = '/keyUser/canSendKey'; //群发钥匙检查
|
final String canSendKeyURL = '/keyUser/canSendKey'; //群发钥匙检查
|
||||||
final String batchSendKeyURL = '/key/batchSend'; //批处理群发钥匙
|
final String batchSendKeyURL = '/key/batchSend'; //批处理群发钥匙
|
||||||
final String addAuthorizedAdminURL = '/authorizedAdmin/add'; //增加授权管理员
|
final String addAuthorizedAdminURL = '/authorizedAdmin/add'; //增加授权管理员
|
||||||
|
final String administratorOwnLockListURL =
|
||||||
|
'/authorizedAdmin/ownLockList'; //获取授权管理员下锁列表
|
||||||
final String keyListByUserURL = '/keyUser/listByUse'; //用户拥有的锁
|
final String keyListByUserURL = '/keyUser/listByUse'; //用户拥有的锁
|
||||||
final String authorizedAdminListURL = '/authorizedAdmin/list'; //授权管理员列表
|
final String authorizedAdminListURL = '/authorizedAdmin/list'; //授权管理员列表
|
||||||
final String authorizedAdminDetailURL = '/authorizedAdmin/detail'; //授权管理员详情
|
final String authorizedAdminDetailURL = '/authorizedAdmin/detail'; //授权管理员详情
|
||||||
@ -234,5 +236,4 @@ abstract class Api {
|
|||||||
final String deleteLockCloudStorageURL = '/lockCloudStorage/delete'; //删除云存
|
final String deleteLockCloudStorageURL = '/lockCloudStorage/delete'; //删除云存
|
||||||
|
|
||||||
final String getUserNoList = '/key/getUserNoList'; //获取指定锁下所有userNo
|
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(
|
Future<Response> getStarLockListInfo(int pageNo, int pageSize,
|
||||||
getStarLockInfoURL.toUrl,
|
{bool isUnShowLoading = true}) =>
|
||||||
jsonEncode({
|
post(
|
||||||
"pageNo": pageNo,
|
getStarLockInfoURL.toUrl,
|
||||||
'pageSize': pageSize,
|
jsonEncode({
|
||||||
}),isUnShowLoading: isUnShowLoading);
|
"pageNo": pageNo,
|
||||||
|
'pageSize': pageSize,
|
||||||
|
}),
|
||||||
|
isUnShowLoading: isUnShowLoading);
|
||||||
|
|
||||||
// 获取所有锁设置信息
|
// 获取所有锁设置信息
|
||||||
Future<Response> getLockSettingInfoData(String lockId) => post(
|
Future<Response> getLockSettingInfoData(String lockId) => post(
|
||||||
@ -1499,6 +1502,10 @@ class ApiProvider extends BaseProvider {
|
|||||||
Future<Response> authorizedAdminDetail(int uid) =>
|
Future<Response> authorizedAdminDetail(int uid) =>
|
||||||
post(authorizedAdminDetailURL.toUrl, jsonEncode({'uid': uid}));
|
post(authorizedAdminDetailURL.toUrl, jsonEncode({'uid': uid}));
|
||||||
|
|
||||||
|
//获取授权管理员下锁列表
|
||||||
|
Future<Response> administratorOwnLockList(int uid) =>
|
||||||
|
post(administratorOwnLockListURL.toUrl, jsonEncode({'uid': uid}));
|
||||||
|
|
||||||
Future<Response> deleteAuthorizedAdmin(
|
Future<Response> deleteAuthorizedAdmin(
|
||||||
String uid, String includeUnderlings) =>
|
String uid, String includeUnderlings) =>
|
||||||
post(deleteAdministratorURL.toUrl,
|
post(deleteAdministratorURL.toUrl,
|
||||||
|
|||||||
@ -1012,6 +1012,13 @@ class ApiRepository {
|
|||||||
return AdministratorDetailEntity.fromJson(res.body);
|
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(
|
Future<AuthorizedAdminListEntity> deleteAuthorizedAdmin(
|
||||||
String uid, String includeUnderlings) async {
|
String uid, String includeUnderlings) async {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user