1,新增添加人脸相关

2,新增消息通知相关
This commit is contained in:
Daisy 2023-11-03 13:57:32 +08:00
parent 624eaf258b
commit 45cc0801e5
14 changed files with 530 additions and 115 deletions

View File

@ -7,6 +7,7 @@
"card":"Card", "card":"Card",
"fingerprint":"Fingerprint", "fingerprint":"Fingerprint",
"remoteControl":"RemoteControl", "remoteControl":"RemoteControl",
"face":"face",
"operatingRecord":"Operating Record", "operatingRecord":"Operating Record",
"number":"Number", "number":"Number",
"additive":"Additive", "additive":"Additive",

View File

@ -7,6 +7,7 @@
"card":"card", "card":"card",
"fingerprint":"fingerprint", "fingerprint":"fingerprint",
"remoteControl":"remoteControl", "remoteControl":"remoteControl",
"face":"face",
"operatingRecord":"operatingRecord", "operatingRecord":"operatingRecord",
"number":"number", "number":"number",
"additive":"additive", "additive":"additive",

View File

@ -7,6 +7,7 @@
"card":"卡", "card":"卡",
"fingerprint":"指纹", "fingerprint":"指纹",
"remoteControl":"遥控", "remoteControl":"遥控",
"face":"人脸",
"operatingRecord":"操作记录", "operatingRecord":"操作记录",
"number":"号", "number":"号",
"additive":"添加者", "additive":"添加者",

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -11,8 +11,10 @@ import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/ma
import 'package:star_lock/main/lockDetail/lcokSet/catEyeWorkMode/catEyeWorkMode_page.dart'; import 'package:star_lock/main/lockDetail/lcokSet/catEyeWorkMode/catEyeWorkMode_page.dart';
import 'package:star_lock/main/lockDetail/lcokSet/faceUnlock/faceUnlock_page.dart'; import 'package:star_lock/main/lockDetail/lcokSet/faceUnlock/faceUnlock_page.dart';
import 'package:star_lock/main/lockDetail/lcokSet/motorPower/motorPower_page.dart'; import 'package:star_lock/main/lockDetail/lcokSet/motorPower/motorPower_page.dart';
import 'package:star_lock/main/lockDetail/lcokSet/msgNotification/msgNotification_page.dart';
import 'package:star_lock/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_page.dart'; import 'package:star_lock/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_page.dart';
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_main_page.dart'; import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_main_page.dart';
import 'package:star_lock/main/lockDetail/otherTypeKey/addFace/addFace_page.dart';
import 'package:star_lock/mine/about/webviewShow_page.dart'; 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';
@ -346,6 +348,8 @@ abstract class Routers {
static const motorPowerPage = '/motorPowerPage'; // static const motorPowerPage = '/motorPowerPage'; //
static const openDoorDirectionPage = '/openDoorDirectionPage'; // static const openDoorDirectionPage = '/openDoorDirectionPage'; //
static const catEyeWorkModePage = '/catEyeWorkModePage'; // static const catEyeWorkModePage = '/catEyeWorkModePage'; //
static const msgNotificationPage = '/msgNotificationPage'; //
static const addFaceTipPage = '/addFaceTipPage'; //
} }
abstract class AppRouters { abstract class AppRouters {
@ -855,6 +859,10 @@ abstract class AppRouters {
page: () => const OpenDoorDirectionPage()), page: () => const OpenDoorDirectionPage()),
GetPage( GetPage(
name: Routers.catEyeWorkModePage, name: Routers.catEyeWorkModePage,
page: () => const CatEyeWorkModePage()) page: () => const CatEyeWorkModePage()),
GetPage(
name: Routers.msgNotificationPage,
page: () => const MsgNotificationPage()),
GetPage(name: Routers.addFaceTipPage, page: () => const AddFaceTipPage())
]; ];
} }

View File

@ -123,5 +123,7 @@ class AppColors {
static const toBeReceiveBgColor = Color.fromRGBO(246, 203, 203, 1); // static const toBeReceiveBgColor = Color.fromRGBO(246, 203, 203, 1); //
static const expireTextBgColor = Color.fromRGBO(253, 166, 8, 1); // static const expireTextBgColor = Color.fromRGBO(253, 166, 8, 1); //
static const blueTextTipsColor = Color.fromRGBO(0, 113, 255, 1); //tips static const blueTextTipsColor = Color.fromRGBO(0, 113, 255, 1); //tips
static const blueViewBgColor = Color.fromRGBO(223, 237, 254, 1); // static const blueViewBgColor =
Color.fromRGBO(223, 237, 254, 1); // 139 148 176
static const msgNoticeTextColor = Color.fromRGBO(139, 148, 176, 1); //
} }

View File

@ -281,6 +281,16 @@ class _LockSetPageState extends State<LockSetPage> with RouteAware {
Get.toNamed(Routers.faceUnlockPage); Get.toNamed(Routers.faceUnlockPage);
})), })),
// ), // ),
Visibility(
visible: true,
child: CommonItem(
leftTitel: '消息通知',
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Get.toNamed(Routers.msgNotificationPage);
})),
Visibility( Visibility(
visible: true, visible: true,
child: CommonItem( child: CommonItem(

View File

@ -0,0 +1,253 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:star_lock/tools/custom_bottom_sheet.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/commonItem.dart';
import '../../../../tools/titleAppBar.dart';
class MsgNotificationPage extends StatefulWidget {
const MsgNotificationPage({Key? key}) : super(key: key);
@override
State<MsgNotificationPage> createState() => _MsgNotificationPageState();
}
class _MsgNotificationPageState extends State<MsgNotificationPage> {
bool faceOn = false; //
bool autoBright = false; //
String senseDistance = '远距离'; //
String antiMisoperation = '关闭'; //
List<String> senseDistanceList = ['远距离', '近距离'];
List<String> antiMisoperationList = ['关闭', '5秒', '10秒', '15秒', '30秒', '60秒'];
//
final TextStyle titleStyle = TextStyle(
color: Colors.black, fontSize: 24.sp, fontWeight: FontWeight.w500);
//
final TextStyle subTipsStyle =
TextStyle(color: AppColors.placeholderTextColor, fontSize: 22.sp);
late InlineSpan tipsPreviewSpan = TextSpan(children: [
TextSpan(text: '添加和使用面容开锁时:\n', style: titleStyle),
TextSpan(
text:
'\n1、请尽量保持单人在门前操作\n2、请站立在门锁正前方约0.5~0.8米,面向门锁;\n3、请保持脸部无遮挡露出五官\n4、面容识别异常时可触摸数字键盘任意按键手动重启人脸识别。',
style: subTipsStyle),
]);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: TitleAppBar(
barTitle: '消息通知',
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column(
children: [
Container(
alignment: Alignment.centerLeft,
margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h),
child: Text(
'门锁通知',
style: TextStyle(
color: AppColors.msgNoticeTextColor, fontSize: 24.sp),
),
),
CommonItem(
leftTitel: '回家开门',
rightTitle: "已启用",
isHaveLine: false,
isHaveDirection: true,
),
SizedBox(
height: 20.h,
),
CommonItem(
leftTitel: '离家开门',
rightTitle: "",
isHaveLine: false,
isHaveRightWidget: true,
rightWidget:
SizedBox(width: 60.w, height: 50.h, child: _switch(2))),
SizedBox(
height: 20.h,
),
CommonItem(
leftTitel: '关门',
rightTitle: "",
isHaveLine: false,
isHaveRightWidget: true,
rightWidget:
SizedBox(width: 60.w, height: 50.h, child: _switch(2))),
SizedBox(
height: 20.h,
),
CommonItem(
leftTitel: '异常',
rightTitle: "已启用",
isHaveLine: true,
isHaveDirection: true,
),
SizedBox(
height: 30.h,
),
Container(
alignment: Alignment.centerLeft,
margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h),
child: Text(
'门铃通知',
style: TextStyle(
color: AppColors.msgNoticeTextColor, fontSize: 24.sp),
),
),
CommonItem(
leftTitel: '有人按门铃',
rightTitle: "",
isHaveLine: false,
isHaveRightWidget: true,
rightWidget:
SizedBox(width: 60.w, height: 50.h, child: _switch(2))),
SizedBox(
height: 30.h,
),
Container(
alignment: Alignment.centerLeft,
margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h),
child: Text(
'猫眼通知',
style: TextStyle(
color: AppColors.msgNoticeTextColor, fontSize: 24.sp),
),
),
CommonItem(
leftTitel: '有人出现在门口',
rightTitle: "",
isHaveLine: false,
isHaveRightWidget: true,
rightWidget:
SizedBox(width: 60.w, height: 50.h, child: _switch(2))),
],
));
}
Widget _buildSubTitleItem(
String leftStr, String subTitle, String rightStr, Function()? action) {
return GestureDetector(
onTap: action,
child: Container(
margin: EdgeInsets.only(left: 20.sp, right: 20.sp, top: 20.h),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(
width: 20.w,
),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
alignment: Alignment.centerLeft,
child: Text(
leftStr,
style: TextStyle(fontSize: 24.sp, color: Colors.black),
),
),
SizedBox(
height: 10.h,
),
Container(
alignment: Alignment.centerLeft,
child: Text(
subTitle,
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 20.sp, color: AppColors.btnDisableColor),
),
)
],
)),
SizedBox(
width: 20.w,
),
Text(
rightStr,
style: TextStyle(
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
),
SizedBox(
width: 10.w,
),
Image.asset(
'images/icon_right_grey.png',
width: 12.w,
height: 21.w,
)
],
),
),
);
}
Widget _buildTipsView() {
return Container(
width: ScreenUtil().screenWidth - 40.w,
margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h),
decoration: BoxDecoration(
color: AppColors.mainBackgroundColor,
borderRadius: BorderRadius.circular(10.0),
),
child: Padding(
padding:
EdgeInsets.only(left: 20.w, top: 30.h, bottom: 40.h, right: 15.w),
child: RichText(text: tipsPreviewSpan)),
);
}
CupertinoSwitch _switch(int getIndex) {
return CupertinoSwitch(
activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemGrey5,
thumbColor: CupertinoColors.white,
value: getIndex == 1 ? faceOn : autoBright,
onChanged: (value) {
setState(() {
if (getIndex == 1) {
faceOn = value;
} else {
autoBright = value;
}
});
},
);
}
Future _openBottomItemSheet(
List<String> bottomItemList, int clickIndex) async {
showModalBottomSheet(
context: context,
shape: RoundedRectangleBorder(
borderRadius: BorderRadiusDirectional.circular(10)),
builder: (BuildContext context) {
return AlertBottomWidget(
topTitle: '',
items: bottomItemList,
chooseCallback: (value) {
if (clickIndex == 0) {
//
senseDistance = senseDistanceList[value];
} else if (clickIndex == 1) {
//
antiMisoperation = antiMisoperationList[value];
}
setState(() {});
},
);
});
}
}

View File

@ -364,9 +364,10 @@ class _LockDetailPageState extends State<LockDetailPage>
if (state.keyInfos.value.lockFeature!.d3Face == 1) { if (state.keyInfos.value.lockFeature!.d3Face == 1) {
showWidgetArr.add( showWidgetArr.add(
bottomItem('images/main/icon_face.png', '人脸', () { bottomItem('images/main/icon_face.png', '人脸', () {
// Navigator.pushNamed(context, Routers.otherTypeKeyListPage, Get.toNamed(Routers.otherTypeKeyListPage, arguments: {
// arguments: 1); "lockId": widget.lockListInfoItemEntity.lockId,
// Toast.show(msg: "功能暂未开放"); "fromType": 3
}); // Toast.show(msg: "功能暂未开放");
// tokNative('flutter_videoTalk_to_ios', // tokNative('flutter_videoTalk_to_ios',
// arguments: {'videoTalk': 'videoTalk'}).then((result) { // arguments: {'videoTalk': 'videoTalk'}).then((result) {

View File

@ -0,0 +1,75 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../../appRouters.dart';
import '../../../../../app_settings/app_colors.dart';
import '../../../../../tools/submitBtn.dart';
import '../../../../../tools/titleAppBar.dart';
import '../../../../../translations/trans_lib.dart';
class AddFaceTipPage extends StatefulWidget {
const AddFaceTipPage({Key? key}) : super(key: key);
@override
State<AddFaceTipPage> createState() => _AddFaceTipPageState();
}
class _AddFaceTipPageState extends State<AddFaceTipPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.addLock!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: ListView(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 50.h,
),
Image.asset(
'images/main/icon_main_addFace.png',
width: 100.w,
height: 457.h,
fit: BoxFit.fitHeight,
),
SizedBox(
height: 60.h,
),
Container(
padding: EdgeInsets.only(left: 20.w, right: 20.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Text(
"请单人正对门锁,距离一个成年人手臂长度(约0.6米).\n保持脸部无遮挡,露出五官",
// TranslationLoader.lanKeys!.lightTouchScreenTip!.tr,
textAlign: TextAlign.center,
maxLines: null,
style:
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600),
),
),
],
),
),
SizedBox(
height: 120.h,
),
Container(
padding: EdgeInsets.only(left: 20.w, right: 20.w),
child: SubmitBtn(
btnName: "开始添加", //TranslationLoader.lanKeys!.next!.tr,
borderRadius: 20.w,
onClick: () {}),
),
],
),
);
}
}

View File

@ -157,6 +157,12 @@ class OtherTypeAddKeyLogic extends BaseGetXController {
case 2: case 2:
// //
break;
case 3:
//
Get.toNamed(Routers.addFaceTipPage);
break; break;
default: default:
break; break;

View File

@ -44,9 +44,9 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
), ),
onPressed: () async { onPressed: () async {
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if(isDemoMode == false){ if (isDemoMode == false) {
showDeletAlertDialog(context); showDeletAlertDialog(context);
}else{ } else {
// Get.toNamed(Routers.seletLockTypePage); // Get.toNamed(Routers.seletLockTypePage);
Toast.show(msg: "演示模式"); Toast.show(msg: "演示模式");
} }
@ -62,14 +62,16 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
), ),
Expanded(child: _buildMainUI(state.fromType.value)), Expanded(child: _buildMainUI(state.fromType.value)),
AddBottomWhiteBtn( AddBottomWhiteBtn(
btnName: '${TranslationLoader.lanKeys!.add!.tr}${getAppBarTitle(state.fromType.value)}', btnName:
'${TranslationLoader.lanKeys!.add!.tr}${getAppBarTitle(state.fromType.value)}',
onClick: () async { onClick: () async {
var data = await Get.toNamed(Routers.otherTypeKeyManagePage, arguments: { var data =
await Get.toNamed(Routers.otherTypeKeyManagePage, arguments: {
"lockId": state.lockId.value, "lockId": state.lockId.value,
"keyType": state.fromType.value, "keyType": state.fromType.value,
"fromType": 1 // 1 2 "fromType": 1 // 1 2
}); });
if(data != null) { if (data != null) {
switch (state.fromType.value) { switch (state.fromType.value) {
case 0: case 0:
// //
@ -82,6 +84,10 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
case 2: case 2:
// //
break;
case 3:
//
break; break;
default: default:
break; break;
@ -109,6 +115,9 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
case 2: case 2:
title = TranslationLoader.lanKeys!.remoteControl!.tr; title = TranslationLoader.lanKeys!.remoteControl!.tr;
break; break;
case 3:
title = TranslationLoader.lanKeys!.face!.tr;
break;
default: default:
break; break;
} }
@ -126,13 +135,13 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
maxLines: 1, maxLines: 1,
controller: state.searchController, controller: state.searchController,
autofocus: false, autofocus: false,
onChanged: (value){ onChanged: (value) {
print("onChanged:$value"); print("onChanged:$value");
}, },
onEditingComplete: (){ onEditingComplete: () {
print("onEditingComplete:"); print("onEditingComplete:");
}, },
onSubmitted: (value){ onSubmitted: (value) {
switch (state.fromType.value) { switch (state.fromType.value) {
case 0: case 0:
// //
@ -145,15 +154,19 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
case 2: case 2:
// //
break;
case 3:
//
break; break;
default: default:
break; break;
} }
}, },
decoration: InputDecoration( decoration: InputDecoration(
// //
contentPadding: const EdgeInsets.only(top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), contentPadding: const EdgeInsets.only(
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), hintStyle: TextStyle(fontSize: 22.sp, height: 3.0),
//线 //线
@ -186,10 +199,12 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
// typeImgName = 'images/icon_card.png'; // typeImgName = 'images/icon_card.png';
// } // }
return Obx(() => state.fingerprintItemListData.value.isNotEmpty ? ListView.separated( return Obx(() => state.fingerprintItemListData.value.isNotEmpty
? ListView.separated(
itemCount: state.fingerprintItemListData.value.length, itemCount: state.fingerprintItemListData.value.length,
itemBuilder: (c, index) { itemBuilder: (c, index) {
FingerprintItemData fingerprintItemData = state.fingerprintItemListData.value[index]; FingerprintItemData fingerprintItemData =
state.fingerprintItemListData.value[index];
switch (state.fromType.value) { switch (state.fromType.value) {
case 0: case 0:
// //
@ -203,12 +218,20 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
decoration: const BoxDecoration( decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(1)), borderRadius: BorderRadius.all(Radius.circular(1)),
), ),
child: _keyItem('images/icon_card.png', fingerprintItemData.cardName!, fingerprintItemData.cardType! == 1 ? "永久" : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}", () async { child: _keyItem(
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage, arguments: { 'images/icon_card.png',
fingerprintItemData.cardName!,
fingerprintItemData.cardType! == 1
? "永久"
: "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}",
() async {
var data = await Get.toNamed(
Routers.otherTypeKeyDetailPage,
arguments: {
"fingerprintItemData": fingerprintItemData, "fingerprintItemData": fingerprintItemData,
"type": type, "type": type,
}); });
if(data != null) { if (data != null) {
logic.getICCardListData(); logic.getICCardListData();
} }
}), }),
@ -216,12 +239,19 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
} }
return const SizedBox.shrink(); return const SizedBox.shrink();
return _keyItem('images/icon_card.png', fingerprintItemData.cardName!, fingerprintItemData.cardType! == 1 ? "永久" : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}", () async { return _keyItem(
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage, arguments: { 'images/icon_card.png',
fingerprintItemData.cardName!,
fingerprintItemData.cardType! == 1
? "永久"
: "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}",
() async {
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage,
arguments: {
"fingerprintItemData": fingerprintItemData, "fingerprintItemData": fingerprintItemData,
"type": type, "type": type,
}); });
if(data != null) { if (data != null) {
logic.getICCardListData(); logic.getICCardListData();
} }
}); });
@ -233,17 +263,26 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
key: Key(fingerprintItemData.fingerprintName!), key: Key(fingerprintItemData.fingerprintName!),
actionsWidth: 60, actionsWidth: 60,
actions: [ actions: [
_buildDeleteBtn(fingerprintItemData.fingerprintId.toString()), _buildDeleteBtn(
fingerprintItemData.fingerprintId.toString()),
], ],
decoration: const BoxDecoration( decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(1)), borderRadius: BorderRadius.all(Radius.circular(1)),
), ),
child: _keyItem('images/icon_fingerprint.png', fingerprintItemData.fingerprintName!, fingerprintItemData.fingerprintType! == 1 ? "永久" : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}", () async { child: _keyItem(
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage, arguments: { 'images/icon_fingerprint.png',
fingerprintItemData.fingerprintName!,
fingerprintItemData.fingerprintType! == 1
? "永久"
: "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}",
() async {
var data = await Get.toNamed(
Routers.otherTypeKeyDetailPage,
arguments: {
"fingerprintItemData": fingerprintItemData, "fingerprintItemData": fingerprintItemData,
"type": type, "type": type,
}); });
if(data != null) { if (data != null) {
logic.getFingerprintsListData(); logic.getFingerprintsListData();
} }
}), }),
@ -251,12 +290,19 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
} }
return const SizedBox.shrink(); return const SizedBox.shrink();
return _keyItem('images/icon_fingerprint.png', fingerprintItemData.fingerprintName!, fingerprintItemData.fingerprintType! == 1 ? "永久" : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}", () async { return _keyItem(
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage, arguments: { 'images/icon_fingerprint.png',
fingerprintItemData.fingerprintName!,
fingerprintItemData.fingerprintType! == 1
? "永久"
: "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}",
() async {
var data = await Get.toNamed(Routers.otherTypeKeyDetailPage,
arguments: {
"fingerprintItemData": fingerprintItemData, "fingerprintItemData": fingerprintItemData,
"type": type, "type": type,
}); });
if(data != null) { if (data != null) {
logic.getFingerprintsListData(); logic.getFingerprintsListData();
} }
}); });
@ -275,7 +321,8 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
color: AppColors.greyLineColor, color: AppColors.greyLineColor,
); );
}, },
) :const NoData()); )
: const NoData());
} }
Widget _buildDeleteBtn(String idStr) { Widget _buildDeleteBtn(String idStr) {
@ -338,7 +385,8 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
); );
} }
Widget _keyItem(String lockTypeIcon, String lockTypeTitle, String showTime, Function() action) { Widget _keyItem(String lockTypeIcon, String lockTypeTitle, String showTime,
Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
@ -361,7 +409,9 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor)), Text(lockTypeTitle,
style: TextStyle(
fontSize: 24.sp, color: AppColors.blackColor)),
], ],
), ),
SizedBox(height: 5.h), SizedBox(height: 5.h),
@ -369,7 +419,10 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text(showTime, style: TextStyle(fontSize: 18.sp, color: AppColors.placeholderTextColor)), Text(showTime,
style: TextStyle(
fontSize: 18.sp,
color: AppColors.placeholderTextColor)),
], ],
), ),
), ),

View File

@ -36,14 +36,14 @@ class CommonItem extends StatelessWidget {
Container( Container(
height: allHeight ?? 60.h, height: allHeight ?? 60.h,
color: Colors.white, color: Colors.white,
padding: EdgeInsets.only(left: 20.w, right: 10.w), // , top: 20.w, bottom: 20.w padding: EdgeInsets.only(
left: 20.w, right: 10.w), // , top: 20.w, bottom: 20.w
child: Row( child: Row(
children: [ children: [
SizedBox(width: 20.w), SizedBox(width: 20.w),
SizedBox( SizedBox(
width: isHaveRightWidget! ? 100.w : 300.w, // width: isHaveRightWidget! ? 100.w : 300.w,
child: Text(leftTitel!, style: TextStyle(fontSize: 22.sp)) child: Text(leftTitel!, style: TextStyle(fontSize: 22.sp))),
),
SizedBox(width: 6.w), SizedBox(width: 6.w),
isTipsImg == true isTipsImg == true
? Image.asset( ? Image.asset(

View File

@ -8,6 +8,7 @@ class LanKeyEntity {
this.card, this.card,
this.fingerprint, this.fingerprint,
this.remoteControl, this.remoteControl,
this.face,
this.operatingRecord, this.operatingRecord,
this.number, this.number,
this.additive, this.additive,
@ -415,6 +416,7 @@ class LanKeyEntity {
card = json['card']; card = json['card'];
fingerprint = json['fingerprint']; fingerprint = json['fingerprint'];
remoteControl = json['remoteControl']; remoteControl = json['remoteControl'];
face = json['face'];
operatingRecord = json['operatingRecord']; operatingRecord = json['operatingRecord'];
number = json['number']; number = json['number'];
additive = json['additive']; additive = json['additive'];
@ -850,6 +852,7 @@ class LanKeyEntity {
String? card; String? card;
String? fingerprint; String? fingerprint;
String? remoteControl; String? remoteControl;
String? face;
String? operatingRecord; String? operatingRecord;
String? number; String? number;
String? additive; String? additive;
@ -1275,6 +1278,7 @@ class LanKeyEntity {
map['card'] = card; map['card'] = card;
map['fingerprint'] = fingerprint; map['fingerprint'] = fingerprint;
map['remoteControl'] = remoteControl; map['remoteControl'] = remoteControl;
map['face'] = face;
map['operatingRecord'] = operatingRecord; map['operatingRecord'] = operatingRecord;
map['number'] = number; map['number'] = number;
map['additive'] = additive; map['additive'] = additive;