1,优化完善人脸模块限时和循环类型逻辑
This commit is contained in:
parent
a291c8e678
commit
945e24aa37
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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/services.dart';
|
||||||
@ -42,7 +41,7 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
state.selectType.value = widget.selectType;
|
state.selectType.value = widget.selectType;
|
||||||
state.lockId.value = widget.lockId;
|
state.lockId.value = widget.lockId;
|
||||||
if(widget.fromTypeTwoStaffName.isNotEmpty){
|
if (widget.fromTypeTwoStaffName.isNotEmpty) {
|
||||||
state.nameController.text = widget.fromTypeTwoStaffName;
|
state.nameController.text = widget.fromTypeTwoStaffName;
|
||||||
}
|
}
|
||||||
state.fromType.value = widget.fromType;
|
state.fromType.value = widget.fromType;
|
||||||
@ -56,12 +55,14 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if(state.selectType.value == "1"){
|
if (state.selectType.value == "1") {
|
||||||
state.beginTime.value = DateTool().dateToYMDHNString(DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间
|
state.beginTime.value = DateTool().dateToYMDHNString(
|
||||||
state.endTime.value = DateTool().dateToYMDHNString(DateTime.now().millisecondsSinceEpoch.toString());//默认为当前时间
|
DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间
|
||||||
}else{
|
state.endTime.value = DateTool().dateToYMDHNString(
|
||||||
|
DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间
|
||||||
|
} else {
|
||||||
state.beginTime.value = ""; //默认为当前时间
|
state.beginTime.value = ""; //默认为当前时间
|
||||||
state.endTime.value = "";//默认为当前时间
|
state.endTime.value = ""; //默认为当前时间
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -141,7 +142,8 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
action: () async {
|
action: () async {
|
||||||
Pickers.showDatePicker(context, mode: DateMode.YMDHM, onConfirm: (p) {
|
Pickers.showDatePicker(context, mode: DateMode.YMDHM,
|
||||||
|
onConfirm: (p) {
|
||||||
state.beginTime.value = DateTool().getYMDHNDateString(p, 1);
|
state.beginTime.value = DateTool().getYMDHNDateString(p, 1);
|
||||||
});
|
});
|
||||||
})),
|
})),
|
||||||
@ -150,7 +152,8 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
rightTitle: state.endTime.value,
|
rightTitle: state.endTime.value,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
action: () {
|
action: () {
|
||||||
Pickers.showDatePicker(context, mode: DateMode.YMDHM, onConfirm: (p) {
|
Pickers.showDatePicker(context, mode: DateMode.YMDHM,
|
||||||
|
onConfirm: (p) {
|
||||||
state.endTime.value = DateTool().getYMDHNDateString(p, 1);
|
state.endTime.value = DateTool().getYMDHNDateString(p, 1);
|
||||||
});
|
});
|
||||||
})),
|
})),
|
||||||
@ -160,7 +163,7 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 循环顶部选择日期
|
// 循环顶部选择日期
|
||||||
Widget keyCyclicDate(){
|
Widget keyCyclicDate() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Obx(() => CommonItem(
|
Obx(() => CommonItem(
|
||||||
@ -169,21 +172,22 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
action: () async {
|
action: () async {
|
||||||
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage,
|
var result =
|
||||||
arguments: {
|
await Get.toNamed(Routers.seletKeyCyclicDatePage, arguments: {
|
||||||
'validityValue': state.weekdaysList.value,
|
'validityValue': state.weekdaysList.value,
|
||||||
'starDate': state.beginTime.value,
|
'starDate': state.beginTime.value,
|
||||||
'endDate': state.endTime.value,
|
'endDate': state.endTime.value,
|
||||||
'starTime': state.effectiveDateTime.value,
|
'starTime': state.effectiveDateTime.value,
|
||||||
'endTime': state.failureDateTime.value
|
'endTime': state.failureDateTime.value
|
||||||
});
|
});
|
||||||
if(result != null && result.isNotEmpty){
|
if (result != null && result.isNotEmpty) {
|
||||||
state.weekdaysList.value = result['validityValue'];
|
state.weekdaysList.value = result['validityValue'];
|
||||||
state.beginTime.value = result['starDate'];
|
state.beginTime.value = result['starDate'];
|
||||||
state.endTime.value = result['endDate'];
|
state.endTime.value = result['endDate'];
|
||||||
state.effectiveDateTime.value = result['starTime'];
|
state.effectiveDateTime.value = result['starTime'];
|
||||||
state.failureDateTime.value = result['endTime'];
|
state.failureDateTime.value = result['endTime'];
|
||||||
Get.log('得到的有效期数据:${state.weekdaysList.value} == ${state.beginTime.value} == ${state.endTime.value}== ${state.effectiveDateTime.value} == ${state.failureDateTime.value}');
|
Get.log(
|
||||||
|
'得到的有效期数据:${state.weekdaysList.value} == ${state.beginTime.value} == ${state.endTime.value}== ${state.effectiveDateTime.value} == ${state.failureDateTime.value}');
|
||||||
}
|
}
|
||||||
})),
|
})),
|
||||||
Obx(() => Visibility(
|
Obx(() => Visibility(
|
||||||
@ -202,20 +206,20 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
'starTime': state.effectiveDateTime.value,
|
'starTime': state.effectiveDateTime.value,
|
||||||
'endTime': state.failureDateTime.value
|
'endTime': state.failureDateTime.value
|
||||||
});
|
});
|
||||||
if(result != null && result.isNotEmpty){
|
if (result != null && result.isNotEmpty) {
|
||||||
state.weekdaysList.value = result['validityValue'];
|
state.weekdaysList.value = result['validityValue'];
|
||||||
state.beginTime.value = result['starDate'];
|
state.beginTime.value = result['starDate'];
|
||||||
state.endTime.value = result['endDate'];
|
state.endTime.value = result['endDate'];
|
||||||
state.effectiveDateTime.value = result['starTime'];
|
state.effectiveDateTime.value = result['starTime'];
|
||||||
state.failureDateTime.value = result['endTime'];
|
state.failureDateTime.value = result['endTime'];
|
||||||
}
|
}
|
||||||
})
|
}))),
|
||||||
)),
|
|
||||||
Obx(() => Visibility(
|
Obx(() => Visibility(
|
||||||
visible: state.effectiveDateTime.value.isNotEmpty,
|
visible: state.effectiveDateTime.value.isNotEmpty,
|
||||||
child: CommonItem(
|
child: CommonItem(
|
||||||
leftTitel: "有效时间".tr,
|
leftTitel: "有效时间".tr,
|
||||||
rightTitle: "${state.effectiveDateTime.value}-${state.failureDateTime.value}",
|
rightTitle:
|
||||||
|
"${state.effectiveDateTime.value}-${state.failureDateTime.value}",
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
action: () async {
|
action: () async {
|
||||||
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage,
|
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage,
|
||||||
@ -226,7 +230,7 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
'starTime': state.effectiveDateTime.value,
|
'starTime': state.effectiveDateTime.value,
|
||||||
'endTime': state.failureDateTime.value
|
'endTime': state.failureDateTime.value
|
||||||
});
|
});
|
||||||
if(result != null && result.isNotEmpty){
|
if (result != null && result.isNotEmpty) {
|
||||||
state.weekdaysList.value = result['validityValue'];
|
state.weekdaysList.value = result['validityValue'];
|
||||||
state.beginTime.value = result['starDate'];
|
state.beginTime.value = result['starDate'];
|
||||||
state.endTime.value = result['endDate'];
|
state.endTime.value = result['endDate'];
|
||||||
@ -234,8 +238,7 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
state.failureDateTime.value = result['endTime'];
|
state.failureDateTime.value = result['endTime'];
|
||||||
Get.back(result: result);
|
Get.back(result: result);
|
||||||
}
|
}
|
||||||
})
|
}))),
|
||||||
)),
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -248,8 +251,8 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
isTipsImg: false,
|
isTipsImg: false,
|
||||||
isHaveRightWidget: true,
|
isHaveRightWidget: true,
|
||||||
rightWidget: SizedBox(
|
rightWidget:
|
||||||
width: 60.w, height: 50.h, child: _isAdmin()))),
|
SizedBox(width: 60.w, height: 50.h, child: _isAdmin()))),
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
Obx(() => CommonItem(
|
Obx(() => CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.stressCard!.tr,
|
leftTitel: TranslationLoader.lanKeys!.stressCard!.tr,
|
||||||
@ -318,7 +321,8 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
FilteringTextInputFormatter.deny('\n'),
|
FilteringTextInputFormatter.deny('\n'),
|
||||||
LengthLimitingTextInputFormatter(18),
|
LengthLimitingTextInputFormatter(18),
|
||||||
],
|
],
|
||||||
style: TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
controller: state.nameController,
|
controller: state.nameController,
|
||||||
autofocus: false,
|
autofocus: false,
|
||||||
textAlign: TextAlign.end,
|
textAlign: TextAlign.end,
|
||||||
@ -327,10 +331,18 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
// 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)),
|
focusedBorder: const OutlineInputBorder(
|
||||||
disabledBorder: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
borderSide:
|
||||||
enabledBorder: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
BorderSide(width: 0, color: Colors.transparent)),
|
||||||
border: const OutlineInputBorder(borderSide: BorderSide(width: 0, color: Colors.transparent)),
|
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),
|
contentPadding: const EdgeInsets.symmetric(vertical: 0),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -368,5 +380,4 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/main/lockDetail/face/addFaceType/addFaceType_state.dart';
|
import 'package:star_lock/main/lockDetail/face/addFaceType/addFaceType_state.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
import 'package:star_lock/tools/dateTool.dart';
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../network/api_repository.dart';
|
import '../../../../network/api_repository.dart';
|
||||||
|
|
||||||
@ -12,18 +13,28 @@ class AddFaceTypeLogic extends BaseGetXController {
|
|||||||
var faceType = 0; // 永久:1;限时2,单次3,循环:4
|
var faceType = 0; // 永久:1;限时2,单次3,循环:4
|
||||||
var startDate = "";
|
var startDate = "";
|
||||||
var endDate = "";
|
var endDate = "";
|
||||||
if (state.seletType.value == "0") {
|
var startTime = "";
|
||||||
|
var endTime = "";
|
||||||
|
if (state.selectType.value == "0") {
|
||||||
faceType = 1;
|
faceType = 1;
|
||||||
startDate = "0";
|
startDate = "0";
|
||||||
endDate = "0";
|
endDate = "0";
|
||||||
} else if (state.seletType.value == "1") {
|
startTime = "0";
|
||||||
|
endTime = "0";
|
||||||
|
} else if (state.selectType.value == "1") {
|
||||||
faceType = 2;
|
faceType = 2;
|
||||||
if (state.beginTimeTimestamp.value.isEmpty) {
|
startDate =
|
||||||
showToast("请选择开始时间");
|
DateTool().dateToTimestamp(state.beginTime.value, 1).toString();
|
||||||
|
endDate = DateTool().dateToTimestamp(state.endTime.value, 1).toString();
|
||||||
|
startTime = "0";
|
||||||
|
endTime = "0";
|
||||||
|
|
||||||
|
if (startDate.isEmpty) {
|
||||||
|
showToast("请选择开始时间".tr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (state.endTimeTimestamp.value.isEmpty) {
|
if (endDate.isEmpty) {
|
||||||
showToast("请选择结束时间");
|
showToast("请选择结束时间".tr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,45 +43,25 @@ class AddFaceTypeLogic extends BaseGetXController {
|
|||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (int.parse(state.beginTimeTimestamp.value) >=
|
if (int.parse(startDate) >= int.parse(endDate)) {
|
||||||
int.parse(state.endTimeTimestamp.value)) {
|
showToast("失效时间要大于生效时间".tr);
|
||||||
showToast("失效时间要大于生效时间");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
} else if (state.selectType.value == "2") {
|
||||||
startDate = state.beginTimeTimestamp.value;
|
if (state.beginTime.value.isEmpty) {
|
||||||
endDate = state.endTimeTimestamp.value;
|
showToast("请选择有效期".tr);
|
||||||
} else if (state.seletType.value == "2") {
|
|
||||||
if (state.effectiveDateTime.value <= 0) {
|
|
||||||
showToast("请选择生效时间");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (state.failureDateTime.value <= 0) {
|
startDate =
|
||||||
showToast("请选择失效时间");
|
DateTool().dateToTimestamp(state.beginTime.value, 1).toString();
|
||||||
return;
|
endDate = DateTool().dateToTimestamp(state.endTime.value, 1).toString();
|
||||||
}
|
startTime = DateTool()
|
||||||
|
.dateToTimestamp(state.effectiveDateTime.value, 0)
|
||||||
if (state.weekdaysList.value.isEmpty) {
|
.toString();
|
||||||
showToast("请选择有效日");
|
endTime =
|
||||||
return;
|
DateTool().dateToTimestamp(state.failureDateTime.value, 0).toString();
|
||||||
}
|
|
||||||
|
|
||||||
// if(DateTime.now().millisecondsSinceEpoch >= state.effectiveDateTime.value){
|
|
||||||
// Toast.show(msg: "生效时间要大于当前时间");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (state.effectiveDateTime.value >= state.failureDateTime.value) {
|
|
||||||
showToast("失效时间要大于生效时间");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
startDate = state.effectiveDateTime.value.toString();
|
|
||||||
endDate = state.failureDateTime.value.toString();
|
|
||||||
faceType = 4;
|
faceType = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
print(
|
|
||||||
"传出去的给你限时人脸开始时间:${int.parse(startDate) ~/ 1000} 限时人脸结束时间:${int.parse(endDate) ~/ 1000}");
|
|
||||||
// 人脸
|
// 人脸
|
||||||
Get.toNamed(Routers.addFacePage, arguments: {
|
Get.toNamed(Routers.addFacePage, arguments: {
|
||||||
"lockId": state.lockId.value,
|
"lockId": state.lockId.value,
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
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:star_lock/tools/dateTool.dart';
|
||||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||||
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
|
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
|
||||||
|
|
||||||
@ -37,9 +39,9 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
state.seletType.value = widget.selectType;
|
state.selectType.value = widget.selectType;
|
||||||
state.lockId.value = widget.lockId;
|
state.lockId.value = widget.lockId;
|
||||||
if(widget.fromTypeTwoStaffName.isNotEmpty){
|
if (widget.fromTypeTwoStaffName.isNotEmpty) {
|
||||||
state.nameController.text = widget.fromTypeTwoStaffName;
|
state.nameController.text = widget.fromTypeTwoStaffName;
|
||||||
}
|
}
|
||||||
state.fromType.value = widget.fromType;
|
state.fromType.value = widget.fromType;
|
||||||
@ -47,12 +49,29 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
return indexChangeWidget();
|
return indexChangeWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
// TODO: implement initState
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
if (state.selectType.value == "1") {
|
||||||
|
state.beginTime.value = DateTool().dateToYMDHNString(
|
||||||
|
DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间
|
||||||
|
state.endTime.value = DateTool().dateToYMDHNString(
|
||||||
|
DateTime.now().millisecondsSinceEpoch.toString()); //默认为当前时间
|
||||||
|
} else {
|
||||||
|
state.beginTime.value = ""; //默认为当前时间
|
||||||
|
state.endTime.value = ""; //默认为当前时间
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Widget indexChangeWidget() {
|
Widget indexChangeWidget() {
|
||||||
switch (int.parse(widget.selectType)) {
|
switch (int.parse(widget.selectType)) {
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
// 永久
|
// 永久
|
||||||
// return sendElectronicKeySucceed();
|
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
perpetualKeyWidget(
|
perpetualKeyWidget(
|
||||||
@ -86,21 +105,7 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
TranslationLoader.lanKeys!.name!.tr,
|
TranslationLoader.lanKeys!.name!.tr,
|
||||||
TranslationLoader.lanKeys!.pleaseEnter!.tr,
|
TranslationLoader.lanKeys!.pleaseEnter!.tr,
|
||||||
state.nameController),
|
state.nameController),
|
||||||
CommonItem(
|
keyCyclicDate(),
|
||||||
leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr,
|
|
||||||
rightTitle: "",
|
|
||||||
isHaveDirection: true,
|
|
||||||
action: () async {
|
|
||||||
Map result = await Get.toNamed(
|
|
||||||
Routers.electronicKeyPeriodValidityPage);
|
|
||||||
state.weekdaysList.value = result['validityValue'];
|
|
||||||
state.effectiveDateTime.value =
|
|
||||||
result['starDate'].millisecondsSinceEpoch;
|
|
||||||
state.failureDateTime.value =
|
|
||||||
result['endDate'].millisecondsSinceEpoch;
|
|
||||||
print(
|
|
||||||
'得到的有效期数据:${state.weekdaysList.value} == ${state.effectiveDateTime.value} == ${state.failureDateTime.value}');
|
|
||||||
}),
|
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
keyBottomWidget()
|
keyBottomWidget()
|
||||||
],
|
],
|
||||||
@ -139,12 +144,7 @@ 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) {
|
||||||
state.beginTime.value =
|
state.beginTime.value = DateTool().getYMDHNDateString(p, 1);
|
||||||
'${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.beginTimeTimestamp.value =
|
|
||||||
DateTime.parse(state.beginTime.value)
|
|
||||||
.millisecondsSinceEpoch
|
|
||||||
.toString();
|
|
||||||
});
|
});
|
||||||
})),
|
})),
|
||||||
Obx(() => CommonItem(
|
Obx(() => CommonItem(
|
||||||
@ -154,12 +154,7 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
action: () {
|
action: () {
|
||||||
Pickers.showDatePicker(context, mode: DateMode.YMDHM,
|
Pickers.showDatePicker(context, mode: DateMode.YMDHM,
|
||||||
onConfirm: (p) {
|
onConfirm: (p) {
|
||||||
state.endTime.value =
|
state.endTime.value = DateTool().getYMDHNDateString(p, 1);
|
||||||
'${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.endTimeTimestamp.value =
|
|
||||||
DateTime.parse(state.endTime.value)
|
|
||||||
.millisecondsSinceEpoch
|
|
||||||
.toString();
|
|
||||||
});
|
});
|
||||||
})),
|
})),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
@ -167,16 +162,90 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 循环顶部选择日期
|
||||||
|
Widget keyCyclicDate() {
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
Obx(() => CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr,
|
||||||
|
rightTitle: "${state.beginTime.value}\n${state.endTime.value}",
|
||||||
|
isHaveDirection: true,
|
||||||
|
isHaveLine: true,
|
||||||
|
action: () async {
|
||||||
|
var result =
|
||||||
|
await Get.toNamed(Routers.seletKeyCyclicDatePage, arguments: {
|
||||||
|
'validityValue': state.weekdaysList.value,
|
||||||
|
'starDate': state.beginTime.value,
|
||||||
|
'endDate': state.endTime.value,
|
||||||
|
'starTime': state.effectiveDateTime.value,
|
||||||
|
'endTime': state.failureDateTime.value
|
||||||
|
});
|
||||||
|
if (result != null && result.isNotEmpty) {
|
||||||
|
state.weekdaysList.value = result['validityValue'];
|
||||||
|
state.beginTime.value = result['starDate'];
|
||||||
|
state.endTime.value = result['endDate'];
|
||||||
|
state.effectiveDateTime.value = result['starTime'];
|
||||||
|
state.failureDateTime.value = result['endTime'];
|
||||||
|
Get.log(
|
||||||
|
'得到的有效期数据:${state.weekdaysList.value} == ${state.beginTime.value} == ${state.endTime.value}== ${state.effectiveDateTime.value} == ${state.failureDateTime.value}');
|
||||||
|
}
|
||||||
|
})),
|
||||||
|
Obx(() => Visibility(
|
||||||
|
visible: state.weekdaysList.isNotEmpty ? true : false,
|
||||||
|
child: CommonItem(
|
||||||
|
leftTitel: "有效日",
|
||||||
|
rightTitle: state.weekdaysList.value.join(",").toString(),
|
||||||
|
isHaveDirection: true,
|
||||||
|
isHaveLine: true,
|
||||||
|
action: () async {
|
||||||
|
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage,
|
||||||
|
arguments: {
|
||||||
|
'validityValue': state.weekdaysList.value,
|
||||||
|
'starDate': state.beginTime.value,
|
||||||
|
'endDate': state.endTime.value,
|
||||||
|
'starTime': state.effectiveDateTime.value,
|
||||||
|
'endTime': state.failureDateTime.value
|
||||||
|
});
|
||||||
|
if (result != null && result.isNotEmpty) {
|
||||||
|
state.weekdaysList.value = result['validityValue'];
|
||||||
|
state.beginTime.value = result['starDate'];
|
||||||
|
state.endTime.value = result['endDate'];
|
||||||
|
state.effectiveDateTime.value = result['starTime'];
|
||||||
|
state.failureDateTime.value = result['endTime'];
|
||||||
|
}
|
||||||
|
}))),
|
||||||
|
Obx(() => Visibility(
|
||||||
|
visible: state.effectiveDateTime.value.isNotEmpty,
|
||||||
|
child: CommonItem(
|
||||||
|
leftTitel: "有效时间".tr,
|
||||||
|
rightTitle:
|
||||||
|
"${state.effectiveDateTime.value}-${state.failureDateTime.value}",
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () async {
|
||||||
|
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage,
|
||||||
|
arguments: {
|
||||||
|
'validityValue': state.weekdaysList.value,
|
||||||
|
'starDate': state.beginTime.value,
|
||||||
|
'endDate': state.endTime.value,
|
||||||
|
'starTime': state.effectiveDateTime.value,
|
||||||
|
'endTime': state.failureDateTime.value
|
||||||
|
});
|
||||||
|
if (result != null && result.isNotEmpty) {
|
||||||
|
state.weekdaysList.value = result['validityValue'];
|
||||||
|
state.beginTime.value = result['starDate'];
|
||||||
|
state.endTime.value = result['endDate'];
|
||||||
|
state.effectiveDateTime.value = result['starTime'];
|
||||||
|
state.failureDateTime.value = result['endTime'];
|
||||||
|
Get.back(result: result);
|
||||||
|
}
|
||||||
|
}))),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Widget keyBottomWidget() {
|
Widget keyBottomWidget() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
// CommonItem(
|
|
||||||
// leftTitel: TranslationLoader.lanKeys!.face!.tr,
|
|
||||||
// rightTitle: "",
|
|
||||||
// isTipsImg: false,
|
|
||||||
// isHaveRightWidget: true,
|
|
||||||
// rightWidget: SizedBox(
|
|
||||||
// width: 60.w, height: 50.h, child: _isStressFingerprint())),
|
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel: "是否是管理员",
|
leftTitel: "是否是管理员",
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
@ -205,97 +274,48 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送电子钥匙成功
|
|
||||||
Widget sendElectronicKeySucceed() {
|
|
||||||
return Column(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
height: 300.h,
|
|
||||||
width: 1.sw,
|
|
||||||
color: Colors.white,
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
height: 30.h,
|
|
||||||
),
|
|
||||||
Image.asset(
|
|
||||||
'images/main/icon_main_addLock.png',
|
|
||||||
width: 150.w,
|
|
||||||
height: 150.w,
|
|
||||||
color: AppColors.mainColor,
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 20.h,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"操作成功,密码为",
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 32.sp,
|
|
||||||
color: Colors.black,
|
|
||||||
fontWeight: FontWeight.w500),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 10.h,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"62689876",
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 60.sp,
|
|
||||||
color: Colors.black,
|
|
||||||
fontWeight: FontWeight.w500),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 20.h,
|
|
||||||
),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName: '完成'.tr,
|
|
||||||
fontSize: 28.sp,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName: '分享',
|
|
||||||
fontSize: 28.sp,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName: '标记为:已入住',
|
|
||||||
fontSize: 28.sp,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 接受者信息输入框
|
// 接受者信息输入框
|
||||||
Widget getTFWidget(String tfStr) {
|
Widget getTFWidget(String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
// color: Colors.red,
|
||||||
|
height: 65.h,
|
||||||
width: 300.w,
|
width: 300.w,
|
||||||
|
padding: EdgeInsets.only(top: 5.h),
|
||||||
child: Row(
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TextField(
|
child: TextField(
|
||||||
//输入框一行
|
//输入框一行
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
|
inputFormatters: <TextInputFormatter>[
|
||||||
|
FilteringTextInputFormatter.deny('\n'),
|
||||||
|
LengthLimitingTextInputFormatter(18),
|
||||||
|
],
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
controller: state.nameController,
|
controller: state.nameController,
|
||||||
autofocus: false,
|
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: 24.sp),
|
hintStyle: TextStyle(fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
focusedBorder: const OutlineInputBorder(
|
||||||
border: InputBorder.none,
|
borderSide:
|
||||||
|
BorderSide(width: 0, color: Colors.transparent)),
|
||||||
|
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),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import 'package:get/get.dart';
|
|||||||
|
|
||||||
class AddFaceTypeState {
|
class AddFaceTypeState {
|
||||||
final lockId = 0.obs;
|
final lockId = 0.obs;
|
||||||
final seletType = "0".obs; // 0永久 1显示 2循环
|
final selectType = "0".obs; // 0永久 1显示 2循环
|
||||||
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;
|
||||||
@ -11,11 +11,8 @@ class AddFaceTypeState {
|
|||||||
|
|
||||||
var beginTime = "".obs; // 开始时间
|
var beginTime = "".obs; // 开始时间
|
||||||
var endTime = "".obs; // 结束时间
|
var endTime = "".obs; // 结束时间
|
||||||
var beginTimeTimestamp = "".obs; // 开始时间时间戳
|
var effectiveDateTime = "".obs; // 生效时间
|
||||||
var endTimeTimestamp = "".obs; // 结束时间时间戳
|
var failureDateTime = "".obs; // 失效时间
|
||||||
|
|
||||||
var effectiveDateTime = 0.obs; // 生效时间
|
|
||||||
var failureDateTime = 0.obs; // 失效时间
|
|
||||||
var weekdaysList = [].obs;
|
var weekdaysList = [].obs;
|
||||||
|
|
||||||
final TextEditingController nameController = TextEditingController();
|
final TextEditingController nameController = TextEditingController();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user