人脸模块新增管理员标志

This commit is contained in:
Daisy 2024-03-14 15:22:19 +08:00
parent f2e7478010
commit 5ff2988cb5
8 changed files with 74 additions and 45 deletions

View File

@ -242,6 +242,7 @@ class AddFaceLogic extends BaseGetXController {
featureData: state.featureData.value, featureData: state.featureData.value,
addType: state.addType.value, addType: state.addType.value,
cyclicConfig: state.cyclicConfig.value, cyclicConfig: state.cyclicConfig.value,
faceRight: state.isAdministrator.value == true ? 1 : 0,
); );
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
@ -263,7 +264,8 @@ class AddFaceLogic extends BaseGetXController {
showToast("添加成功"); showToast("添加成功");
if (state.fromType.value == 2) { if (state.fromType.value == 2) {
// //
eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(state.faceNumber.value)); eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(
state.faceNumber.value));
} else if (state.fromType.value == 1) { } else if (state.fromType.value == 1) {
eventBus.fire(OtherTypeRefreshListEvent()); eventBus.fire(OtherTypeRefreshListEvent());
} }

View File

@ -19,6 +19,7 @@ class AddFaceState {
final fromType = 1.obs; final fromType = 1.obs;
final featureData = ''.obs; final featureData = ''.obs;
final isClickAddFace = false.obs; final isClickAddFace = false.obs;
final isAdministrator = false.obs;
AddFaceState() { AddFaceState() {
Map map = Get.arguments; Map map = Get.arguments;
@ -31,5 +32,6 @@ class AddFaceState {
lockId.value = map["lockId"]; lockId.value = map["lockId"];
cyclicConfig.value = map["cyclicConfig"]; cyclicConfig.value = map["cyclicConfig"];
fromType.value = map["fromType"]; fromType.value = map["fromType"];
isAdministrator.value = map["isAdministrator"];
} }
} }

View File

@ -82,6 +82,7 @@ class AddFaceTypeLogic extends BaseGetXController {
"startDate": int.parse(startDate), "startDate": int.parse(startDate),
"cyclicConfig": state.weekdaysList.value, "cyclicConfig": state.weekdaysList.value,
"fromType": state.fromType.value, "fromType": state.fromType.value,
"isAdministrator": state.isAdministrator.value,
}); });
} }

View File

@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
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';
@ -20,10 +21,10 @@ class AddFaceTypePage extends StatefulWidget {
const AddFaceTypePage( const AddFaceTypePage(
{Key? key, {Key? key,
required this.selectType, required this.selectType,
required this.lockId, required this.lockId,
required this.fromType, required this.fromType,
required this.fromTypeTwoStaffName}) required this.fromTypeTwoStaffName})
: super(key: key); : super(key: key);
@override @override
@ -70,7 +71,6 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
TranslationLoader.lanKeys!.pleaseEnter!.tr, TranslationLoader.lanKeys!.pleaseEnter!.tr,
state.nameController), state.nameController),
keyTimeLimitWidget(), keyTimeLimitWidget(),
SizedBox(height: 10.h),
keyBottomWidget() keyBottomWidget()
], ],
); );
@ -137,16 +137,12 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
action: () async { action: () async {
Pickers.showDatePicker(context, mode: DateMode.YMDHM, Pickers.showDatePicker(context, mode: DateMode.YMDHM,
onConfirm: (p) { onConfirm: (p) {
setState(() { state.beginTime.value =
setState(() { '${p.year}-${p.month!.toString().padLeft(2, '0')}-${p.day!.toString().padLeft(2, '0')} ${p.hour!.toString().padLeft(2, '0')}:${p.minute!.toString().padLeft(2, '0')}';
state.beginTime.value = state.beginTimeTimestamp.value =
'${p.year}-${p.month!.toString().padLeft(2, '0')}-${p.day!.toString().padLeft(2, '0')} ${p.hour!.toString().padLeft(2, '0')}:${p.minute!.toString().padLeft(2, '0')}'; DateTime.parse(state.beginTime.value)
state.beginTimeTimestamp.value = .millisecondsSinceEpoch
DateTime.parse(state.beginTime.value) .toString();
.millisecondsSinceEpoch
.toString();
});
});
}); });
})), })),
Obx(() => CommonItem( Obx(() => CommonItem(
@ -156,16 +152,12 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
action: () { action: () {
Pickers.showDatePicker(context, mode: DateMode.YMDHM, Pickers.showDatePicker(context, mode: DateMode.YMDHM,
onConfirm: (p) { onConfirm: (p) {
setState(() { state.endTime.value =
setState(() { '${p.year}-${p.month!.toString().padLeft(2, '0')}-${p.day!.toString().padLeft(2, '0')} ${p.hour!.toString().padLeft(2, '0')}:${p.minute!.toString().padLeft(2, '0')}';
state.endTime.value = state.endTimeTimestamp.value =
'${p.year}-${p.month!.toString().padLeft(2, '0')}-${p.day!.toString().padLeft(2, '0')} ${p.hour!.toString().padLeft(2, '0')}:${p.minute!.toString().padLeft(2, '0')}'; DateTime.parse(state.endTime.value)
state.endTimeTimestamp.value = .millisecondsSinceEpoch
DateTime.parse(state.endTime.value) .toString();
.millisecondsSinceEpoch
.toString();
});
});
}); });
})), })),
Container(height: 10.h), Container(height: 10.h),
@ -183,6 +175,13 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
// isHaveRightWidget: true, // isHaveRightWidget: true,
// rightWidget: SizedBox( // rightWidget: SizedBox(
// width: 60.w, height: 50.h, child: _isStressFingerprint())), // width: 60.w, height: 50.h, child: _isStressFingerprint())),
CommonItem(
leftTitel: "是否是管理员",
rightTitle: "",
isTipsImg: false,
isHaveRightWidget: true,
rightWidget: SizedBox(
width: 60.w, height: 50.h, child: Obx(() => _isAdmin()))),
SizedBox(height: 30.h), SizedBox(height: 30.h),
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.next!.tr, btnName: TranslationLoader.lanKeys!.next!.tr,
@ -305,4 +304,17 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
), ),
); );
} }
//
CupertinoSwitch _isAdmin() {
return CupertinoSwitch(
activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemGrey5,
thumbColor: CupertinoColors.white,
value: state.isAdministrator.value,
onChanged: (value) {
state.isAdministrator.value = value;
},
);
}
} }

View File

@ -7,6 +7,7 @@ class AddFaceTypeState {
final fromType = 1.obs; // // 1 2 final fromType = 1.obs; // // 1 2
var fromTypeTwoStaffName = "".obs; // var fromTypeTwoStaffName = "".obs; //
final isStressFingerprint = false.obs; final isStressFingerprint = false.obs;
final isAdministrator = false.obs; //
var beginTime = "".obs; // var beginTime = "".obs; //
var endTime = "".obs; // var endTime = "".obs; //

View File

@ -91,6 +91,7 @@ class FingerprintItemData {
int? faceType; int? faceType;
List? cyclicConfig; List? cyclicConfig;
String? featureData; String? featureData;
int? faceRight;
FingerprintItemData( FingerprintItemData(
{this.fingerprintStatus, {this.fingerprintStatus,
@ -119,7 +120,8 @@ class FingerprintItemData {
this.addType, this.addType,
this.faceType, this.faceType,
this.cyclicConfig, this.cyclicConfig,
this.featureData}); this.featureData,
this.faceRight});
FingerprintItemData.fromJson(Map<String, dynamic> json) { FingerprintItemData.fromJson(Map<String, dynamic> json) {
fingerprintStatus = json['fingerprintStatus']; fingerprintStatus = json['fingerprintStatus'];
@ -149,6 +151,7 @@ class FingerprintItemData {
faceType = json['faceType']; faceType = json['faceType'];
cyclicConfig = json['cyclicConfig']; cyclicConfig = json['cyclicConfig'];
featureData = json['featureData']; featureData = json['featureData'];
faceRight = json['faceRight'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -180,6 +183,7 @@ class FingerprintItemData {
data['faceType'] = faceType; data['faceType'] = faceType;
data['cyclicConfig'] = cyclicConfig; data['cyclicConfig'] = cyclicConfig;
data['featureData'] = featureData; data['featureData'] = featureData;
data['faceRight'] = faceRight;
return data; return data;
} }

View File

@ -1059,6 +1059,7 @@ class ApiProvider extends BaseProvider {
String featureData, String featureData,
String addType, String addType,
List cyclicConfig, List cyclicConfig,
int faceRight,
) => ) =>
post( post(
addFaceURL.toUrl, addFaceURL.toUrl,
@ -1072,6 +1073,7 @@ class ApiProvider extends BaseProvider {
'featureData': featureData, 'featureData': featureData,
'addType': addType, 'addType': addType,
'cyclicConfig': cyclicConfig, 'cyclicConfig': cyclicConfig,
'faceRight': faceRight
})); }));
// //
@ -1267,11 +1269,7 @@ class ApiProvider extends BaseProvider {
// //
Future<Response> removeBrokenLockData(List lockIdList) => Future<Response> removeBrokenLockData(List lockIdList) =>
post( post(removeBadLockURL.toUrl, jsonEncode({'lockIds': lockIdList}));
removeBadLockURL.toUrl,
jsonEncode({
'lockIds': lockIdList
}));
Future<Response> listLockByGroup(String type, String keyGroupId) => post( Future<Response> listLockByGroup(String type, String keyGroupId) => post(
listLockByGroupURL.toUrl, listLockByGroupURL.toUrl,

View File

@ -1193,19 +1193,28 @@ class ApiRepository {
} }
// //
Future<AddFaceEntity> addFaceData({ Future<AddFaceEntity> addFaceData(
required int lockId, {required int lockId,
required String faceName, required String faceName,
required String faceNumber, required String faceNumber,
required int faceType, required int faceType,
required int startDate, required int startDate,
required int endDate, required int endDate,
required String featureData, required String featureData,
required String addType, required String addType,
required List cyclicConfig, required List cyclicConfig,
}) async { required int faceRight}) async {
final res = await apiProvider.addFaceData(lockId, faceName, faceNumber, final res = await apiProvider.addFaceData(
faceType, startDate, endDate, featureData, addType, cyclicConfig); lockId,
faceName,
faceNumber,
faceType,
startDate,
endDate,
featureData,
addType,
cyclicConfig,
faceRight);
return AddFaceEntity.fromJson(res.body); return AddFaceEntity.fromJson(res.body);
} }