1,根据田总最新需求-> 新增权限管理相关页面

This commit is contained in:
Daisy 2023-08-01 09:47:03 +08:00
parent 5dec697b3d
commit c520a825aa
9 changed files with 1027 additions and 404 deletions

View File

@ -203,7 +203,12 @@
"touchUnlock":"Touch Unlock",
"pushNotification":"Push Notification",
"lockUserManagement":"Lock User Management",
"authorityManagement":"Authority management",
"associatedDevice":"Associated device",
"associatedName":"Associated name",
"device":"Device",
"aboutToExpire":"About to expire",
"deAuthorize":"de-authorize",
"changeName":"Change name",
"authorizedAdmin":"Authorized Admin",
"addAuthorizedAdmin":"Adding an Authorized Administrator",

View File

@ -203,6 +203,10 @@
"touchUnlock":"touchUnlock",
"pushNotification":"pushNotification",
"lockUserManagement":"lockUserManagement",
"authorityManagement":"authorityManagement",
"associatedDevice":"associatedDevice",
"associatedName":"associatedName",
"device":"device",
"authorizedAdmin":"authorizedAdmin",
"addAuthorizedAdmin":"addAuthorizedAdmin",
"lockGroup":"lockGroup",
@ -246,6 +250,7 @@
"problemThree":"problemThree",
"pleaseEnterYourAnswer":"pleaseEnterYourAnswer",
"aboutToExpire":"aboutToExpire",
"deAuthorize":"deAuthorize",
"changeName":"changeName",
"designation": "designation",

View File

@ -203,6 +203,10 @@
"touchUnlock":"触摸开锁",
"pushNotification":"消息推送",
"lockUserManagement":"锁用户管理",
"authorityManagement":"权限管理",
"associatedDevice":"关联设备",
"associatedName":"关联姓名",
"device":"设备",
"authorizedAdmin":"授权管理员",
"addAuthorizedAdmin":"添加授权管理员",
"lockGroup":"锁分组",
@ -247,6 +251,7 @@
"pleaseEnterYourAnswer":"请输入你的答案",
"aboutToExpire":"即将到期",
"changeName":"修改名称",
"deAuthorize":"去授权",
"designation": "名称",
"state": "状态",

View File

@ -2,6 +2,9 @@ import 'package:get/get.dart';
import 'package:star_lock/common/safetyVerification/safetyVerification_binding.dart';
import 'package:star_lock/login/register/starLock_register_binding.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart';
import 'package:star_lock/mine/mineSet/authorityManagement/authorityManagement_page.dart';
import 'package:star_lock/mine/mineSet/authorityManagement/getDeviceList_page.dart';
import 'package:star_lock/mine/mineSet/authorityManagement/getNameList_page.dart';
import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart';
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_page.dart';
@ -243,26 +246,35 @@ abstract class Routers {
'/ValueAddedServicesListEmailTemplatePage'; // -
static const valueAddedServicesAddEmailTemplatePage =
'/ValueAddedServicesAddEmailTemplatePage'; // -
static const valueAddedServicesBuyAndUseRecordManagePage = '/ValueAddedServicesBuyAndUseRecordManagePage'; // -使
static const valueAddedServicesBuyAndUseRecordManagePage =
'/ValueAddedServicesBuyAndUseRecordManagePage'; // -使
static const lockScreenPage = '/LockScreenPage'; // -
static const aPPUnlockNeedMobileNetworkingLockPage = '/APPUnlockNeedMobileNetworkingLockPage'; // -app开锁时需手机连网的锁
static const hideInvalidUnlockPermissionsPage = '/HideInvalidUnlockPermissionsPage'; // -
static const aPPUnlockNeedMobileNetworkingLockPage =
'/APPUnlockNeedMobileNetworkingLockPage'; // -app开锁时需手机连网的锁
static const hideInvalidUnlockPermissionsPage =
'/HideInvalidUnlockPermissionsPage'; // -
static const lockUserManageLisPage = '/LockUserManageLisPage'; //-
static const authorizedAdministratorListPage = '/AuthorizedAdministratorListPage'; //-
static const authorizedAdministratorListPage =
'/AuthorizedAdministratorListPage'; //-
static const lockGroupListPage = '/LockGroupListPage'; //-
static const lockItemListPage = '/LockItemListPage'; //-
static const transferSmartLockPage = '/transferSmartLockPage'; //
static const recipientInformationPage = '/recipientInformationPage'; //
static const selectBranchPage = '/SelectBranchPage'; //
static const selectGetewayListPage = '/selectGetewayListPage'; //
static const addAuthorizedAdministratorPage = '/addAuthorizedAdministratorPage'; //
static const addAuthorizedAdministratorPage =
'/addAuthorizedAdministratorPage'; //
static const ownedKeyListPage = '/ownedKeyListPage'; //
static const authorityManagementPage = '/authorityManagementPage'; //
static const getDeviceListPage = '/getDeviceListPage'; //
static const getNameListPage = '/getNameListPage'; //
static const starLockLoginPage = '/StarLockLoginPage'; //
static const starLockRegisterPage = '/StarLockRegisterPage'; //
static const starLockForgetPasswordPage = '/StarLockForgetPasswordPage'; //
static const starLockForgetPasswordPage =
'/StarLockForgetPasswordPage'; //
static const seletCountryRegionPage = '/SeletCountryRegionPage'; //
static const safetyVerificationPage = '/SafetyVerificationPage'; //
@ -388,9 +400,9 @@ abstract class AppRouters {
page: () => const StarLockLoginPage(),
),
GetPage(
name: Routers.starLockRegisterPage,
page: () => const StarLockRegisterPage(), binding:StarLockRegisterBinding()
),
name: Routers.starLockRegisterPage,
page: () => const StarLockRegisterPage(),
binding: StarLockRegisterBinding()),
GetPage(
name: Routers.starLockForgetPasswordPage,
page: () => const StarLockForgetPasswordPage(),
@ -665,51 +677,46 @@ abstract class AppRouters {
),
GetPage(
name: Routers.authorizedAdministratorListPage,
page: () => const AuthorizedAdministratorListPage()
),
page: () => const AuthorizedAdministratorListPage()),
GetPage(
name: Routers.lockUserManageLisPage,
page: () => const LockUserManageListListPage()
),
page: () => const LockUserManageListListPage()),
GetPage(
name: Routers.lockGroupListPage, page: () => const LockGroupListPage()
),
name: Routers.lockGroupListPage, page: () => const LockGroupListPage()),
GetPage(
name: Routers.lockItemListPage, page: () => const LockItemListPage()
),
name: Routers.lockItemListPage, page: () => const LockItemListPage()),
GetPage(
name: Routers.transferSmartLockPage,
page: () => const TransferSmartLockPage()
),
page: () => const TransferSmartLockPage()),
GetPage(
name: Routers.recipientInformationPage,
page: () => const RecipientInformationPage()
),
page: () => const RecipientInformationPage()),
GetPage(
name: Routers.selectBranchPage, page: () => const SelectBranchPage()
),
name: Routers.selectBranchPage, page: () => const SelectBranchPage()),
GetPage(
name: Routers.selectGetewayListPage,
page: () => const SelectGetewayListPage()
),
page: () => const SelectGetewayListPage()),
GetPage(
name: Routers.minePersonInfoEditEmailPage,
page: () => const MinePersonInfoEditEmailPage()
),
page: () => const MinePersonInfoEditEmailPage()),
GetPage(
name: Routers.addAuthorizedAdministratorPage,
page: () => const AddAuthorizedAdministratorPage()
),
page: () => const AddAuthorizedAdministratorPage()),
GetPage(
name: Routers.safetyVerificationPage,
page: () => const SafetyVerificationPage(),
name: Routers.safetyVerificationPage,
page: () => const SafetyVerificationPage(),
binding: SafetyVerificationBinding(),
),
GetPage(
name: Routers.ownedKeyListPage, page: () => const OwnedKeyListPage()
),
name: Routers.ownedKeyListPage, page: () => const OwnedKeyListPage()),
GetPage(
name: Routers.keyOperationRecordPage,
page: () => const KeyOperationRecordPage())
page: () => const KeyOperationRecordPage()),
GetPage(
name: Routers.authorityManagementPage,
page: () => const AuthorityManagementPage()),
GetPage(
name: Routers.getDeviceListPage, page: () => const GetDeviceListPage()),
GetPage(name: Routers.getNameListPage, page: () => const GetNameListPage())
];
}

View File

@ -0,0 +1,296 @@
import 'package:flutter/material.dart';
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_utils/get_utils.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/tools/submitBtn.dart';
import 'package:star_lock/translations/trans_lib.dart';
class AuthorityManagementPage extends StatefulWidget {
const AuthorityManagementPage({Key? key}) : super(key: key);
@override
State<StatefulWidget> createState() {
return _AuthorityManagementPageState();
}
}
class _AuthorityManagementPageState extends State<AuthorityManagementPage>
with SingleTickerProviderStateMixin {
TabController? _tabController;
final FlutterContactPicker _contactPicker = FlutterContactPicker();
late Contact _contact;
final _templateNameTf = TextEditingController();
bool isNameSelect = false;
bool isDeviceSelect = false;
int selectDeviceIndex = 0;
int selectNameIndex = 0;
List tabs = [
TranslationLoader.lanKeys!.name!.tr,
TranslationLoader.lanKeys!.device!.tr
];
@override
void initState() {
super.initState();
_tabController = TabController(length: 2, vsync: this);
}
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
backgroundColor: AppColors.mainColor,
title: Text(
TranslationLoader.lanKeys!.authorityManagement!.tr,
style: TextStyle(
color: Colors.white,
fontSize: 28.sp,
fontWeight: FontWeight.w600),
),
elevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios, color: Colors.white),
onPressed: () => Navigator.of(context).pop(),
),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(45),
child: Material(
color: Colors.white,
child: Theme(
data: ThemeData(
///,
highlightColor: Colors.transparent,
///
splashColor: Colors.transparent,
),
child: TabBar(
controller: _tabController,
indicatorSize: TabBarIndicatorSize.label,
indicatorColor: AppColors.mainColor,
unselectedLabelColor: AppColors.blackColor,
labelColor: AppColors.mainColor,
// isScrollable: true,
tabs: tabs.map((e) => Tab(text: e)).toList()),
)),
),
),
body: TabBarView(
controller: _tabController,
children: [_permissionNameList(), _permissionDeviceList()])));
}
//
Widget _permissionNameList() {
return Column(
children: [
SizedBox(
height: 10.h,
),
Expanded(
child: ListView.separated(
itemBuilder: (context, index) {
if (index == 0) {
return _buildNameWidget(
context, index, 'images/icon_password.png', '密码1');
} else if (index == 1) {
return _buildNameWidget(
context, index, 'images/icon_card.png', '卡1');
} else if (index == 2) {
return _buildNameWidget(
context, index, 'images/icon_fingerprint.png', '指纹1');
} else if (index == 3) {
return _buildNameWidget(
context, index, 'images/icon_card.png', '遥控1');
}
return null;
// return _buildNameWidget(context, index);
},
separatorBuilder: (context, index) {
return const Divider(
height: 1,
color: AppColors.greyLineColor,
);
},
itemCount: 5)),
SizedBox(
height: 20.h,
),
_buildDeauthorizationBtn1(),
SizedBox(
height: 40.h,
)
],
);
}
//
Widget _permissionDeviceList() {
return Column(
children: [
SizedBox(
height: 10.h,
),
Expanded(
child: ListView.separated(
itemBuilder: (context, index) {
if (index == 0) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "大门锁");
} else if (index == 1) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "办公室锁");
} else if (index == 2) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "会议室锁");
} else {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "宴会厅锁");
}
},
separatorBuilder: (context, index) {
return const Divider(
height: 1,
color: AppColors.greyLineColor,
);
},
itemCount: 5)),
SizedBox(
height: 20.h,
),
_buildDeauthorizationBtn2(),
SizedBox(
height: 40.h,
)
],
);
}
Widget _buildNameWidget(context, index, imageName, getName) {
return GestureDetector(
child: Container(
height: 90.h,
color: Colors.white,
width: ScreenUtil().screenWidth,
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
imageName,
width: 36.w,
height: 36.w,
),
SizedBox(
width: 10.w,
),
Text(
getName,
style: TextStyle(fontSize: 22.sp, color: AppColors.blackColor),
),
Expanded(
child: SizedBox(
width: 20.w,
)),
Image.asset(
isNameSelect == false
? 'images/icon_round_unSelet.png'
: 'images/icon_round_selet.png',
width: 30.sp,
height: 30.sp,
),
SizedBox(
width: 30.w,
)
],
),
),
onTap: () {
selectNameIndex = index;
setState(() {
if (selectNameIndex == index) {
isNameSelect = !isNameSelect;
}
});
},
);
}
Widget _buildDeviceWidget(context, index, imageName, deviceName) {
return GestureDetector(
child: Container(
height: 90.h,
color: Colors.white,
width: ScreenUtil().screenWidth,
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
imageName,
width: 36.w,
height: 36.w,
),
SizedBox(
width: 10.w,
),
Text(
deviceName,
style: TextStyle(fontSize: 22.sp, color: AppColors.blackColor),
),
Expanded(
child: SizedBox(
width: 20.w,
)),
Image.asset(
isDeviceSelect == false
? 'images/icon_round_unSelet.png'
: 'images/icon_round_selet.png',
width: 30.sp,
height: 30.sp,
),
SizedBox(
width: 30.w,
)
],
),
),
onTap: () {
selectDeviceIndex = index;
setState(() {
if (selectDeviceIndex == index) {
isDeviceSelect = !isDeviceSelect;
}
});
},
);
}
//-
Widget _buildDeauthorizationBtn1() {
return SubmitBtn(
btnName: TranslationLoader.lanKeys!.deAuthorize!.tr,
onClick: () {
Navigator.pushNamed(context, Routers.getDeviceListPage);
},
);
}
//-
Widget _buildDeauthorizationBtn2() {
return SubmitBtn(
btnName: TranslationLoader.lanKeys!.deAuthorize!.tr,
onClick: () {
Navigator.pushNamed(context, Routers.getNameListPage);
},
);
}
}

View File

@ -0,0 +1,136 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/tools/submitBtn.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class GetDeviceListPage extends StatefulWidget {
const GetDeviceListPage({Key? key}) : super(key: key);
@override
State<GetDeviceListPage> createState() => _GetDeviceListPageState();
}
class _GetDeviceListPageState extends State<GetDeviceListPage> {
bool isNameSelect = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.associatedDevice!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 30.w, top: 16.w, right: 30.w, bottom: 16.w),
child: Text(
'请选择姓名要关联哪些设备',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 20.sp),
textAlign: TextAlign.start,
),
),
Expanded(child: _permissionDeviceList()),
],
),
);
}
//
Widget _permissionDeviceList() {
return Column(
children: [
Expanded(
child: ListView.separated(
itemBuilder: (context, index) {
if (index == 0) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "大门锁");
} else if (index == 1) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "办公室锁");
} else if (index == 2) {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "会议室锁");
} else {
return _buildDeviceWidget(
context, index, 'images/icon_lock.png', "宴会厅锁");
}
},
separatorBuilder: (context, index) {
return const Divider(
height: 1,
color: AppColors.greyLineColor,
);
},
itemCount: 5)),
SizedBox(
height: 20.h,
),
SubmitBtn(
btnName: '确定',
onClick: () {},
),
SizedBox(
height: 40.h,
)
],
);
}
Widget _buildDeviceWidget(context, index, imageName, deviceName) {
return GestureDetector(
child: Container(
height: 90.h,
color: Colors.white,
width: ScreenUtil().screenWidth,
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
isNameSelect == false
? 'images/icon_round_unSelet.png'
: 'images/icon_round_selet.png',
width: 30.sp,
height: 30.sp,
),
SizedBox(
width: 20.w,
),
Image.asset(
imageName,
width: 36.w,
height: 36.w,
),
SizedBox(
width: 10.w,
),
Text(
deviceName,
style: TextStyle(fontSize: 22.sp, color: AppColors.blackColor),
),
SizedBox(
width: 30.w,
)
],
),
),
onTap: () {
setState(() {
isNameSelect = !isNameSelect;
});
},
);
}
}

View File

@ -0,0 +1,138 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/tools/submitBtn.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class GetNameListPage extends StatefulWidget {
const GetNameListPage({Key? key}) : super(key: key);
@override
State<GetNameListPage> createState() => _GetNameListPageState();
}
class _GetNameListPageState extends State<GetNameListPage> {
bool isNameSelect = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.associatedName!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 30.w, top: 16.w, right: 30.w, bottom: 16.w),
child: Text(
'请选择设备要关联哪些姓名',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 20.sp),
textAlign: TextAlign.start,
),
),
Expanded(child: _permissionNameList()),
],
),
);
}
//
Widget _permissionNameList() {
return Column(
children: [
Expanded(
child: ListView.separated(
itemBuilder: (context, index) {
if (index == 0) {
return _buildNameWidget(
context, index, 'images/icon_password.png', '密码1');
} else if (index == 1) {
return _buildNameWidget(
context, index, 'images/icon_card.png', '卡1');
} else if (index == 2) {
return _buildNameWidget(
context, index, 'images/icon_fingerprint.png', '指纹1');
} else if (index == 3) {
return _buildNameWidget(
context, index, 'images/icon_card.png', '遥控1');
}
return null;
},
separatorBuilder: (context, index) {
return const Divider(
height: 1,
color: AppColors.greyLineColor,
);
},
itemCount: 5)),
SizedBox(
height: 20.h,
),
SubmitBtn(
btnName: '确定',
onClick: () {},
),
SizedBox(
height: 40.h,
)
],
);
}
Widget _buildNameWidget(context, index, imageName, getName) {
return GestureDetector(
child: Container(
height: 90.h,
color: Colors.white,
width: ScreenUtil().screenWidth,
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
imageName,
width: 36.w,
height: 36.w,
),
SizedBox(
width: 10.w,
),
Text(
getName,
style: TextStyle(fontSize: 22.sp, color: AppColors.blackColor),
),
Expanded(
child: SizedBox(
width: 20.w,
)),
Image.asset(
isNameSelect == false
? 'images/icon_round_unSelet.png'
: 'images/icon_round_selet.png',
width: 30.sp,
height: 30.sp,
),
SizedBox(
width: 30.w,
)
],
),
),
onTap: () {
setState(() {
isNameSelect = !isNameSelect;
});
},
);
}
}

View File

@ -76,6 +76,17 @@ class _MineSetPageState extends State<MineSetPage> {
Navigator.pushNamed(
context, Routers.authorizedAdministratorListPage);
}),
//by DaisyWu --
CommonItem(
leftTitel:
TranslationLoader.lanKeys!.authorityManagement!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.authorityManagementPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr,
rightTitle: "",

View File

@ -1,374 +1,378 @@
class LanKeyEntity {
LanKeyEntity({
this.starLock,
this.clickUnlockAndHoldDownClose,
this.checkingIn,
this.electronicKey,
this.password,
this.card,
this.fingerprint,
this.remoteControl,
this.operatingRecord,
this.number,
this.additive,
this.addTime,
this.reset,
this.sendKey,
this.timeLimit,
this.permanent,
this.once,
this.circulation,
this.receiver,
this.pleaseEnterNumberOrEmail,
this.name,
this.enterYourName,
this.effectiveTime,
this.failureTime,
this.effectiveDate,
this.failureDate,
this.monday,
this.tuesday,
this.wednesday,
this.thursday,
this.friday,
this.saturday,
this.sunday,
this.mondayShort,
this.tuesdayShort,
this.wednesdayShort,
this.thursdayShort,
this.fridayShort,
this.saturdayShort,
this.sundayShort,
this.realNameAuthentication,
this.sendKeyBottomTip,
this.send,
this.periodValidity,
this.sendGroupKey,
this.lock,
this.pleaseAdd,
this.pleaseSelet,
this.remoteUnlockingAllowed,
this.pleaseEnter,
this.getPassword,
this.custom,
this.clearAll,
this.recursiveDevice,
this.pleaseNameYourPassword,
this.pleaseEnterDigitsNumber,
this.getPasswordTip1,
this.getPasswordTip2,
this.getPasswordTip3,
this.getPasswordTip4,
this.getPasswordTip5,
this.getPasswordTip6,
this.getTip,
this.addTip,
this.sender,
this.senderTime,
this.keyDetail,
this.detail,
this.delete,
this.passwordDetail,
this.share,
this.amend,
this.sure,
this.cancel,
this.add,
this.accountNumber,
this.volumeAuthorizationLock,
this.authorizedAdminTip,
this.lockOperatingRecordTip,
this.rankingList,
this.earlyArrivalList,
this.lateList,
this.hardWorkingList,
this.basicInformation,
this.wirelessKeyboard,
this.doorMagnetic,
this.remoteUnlocking,
this.automaticBlocking,
this.normallyOpenMode,
this.lockSound,
this.burglarAlarm,
this.resetButton,
this.lockTime,
this.diagnose,
this.uploadData,
this.importOtherLockData,
this.lockEscalation,
this.markedHouseState,
this.unlockReminder,
this.unlockQRCode,
this.lockNumber,
this.electricQuantity,
this.lockName,
this.lockGrouping,
this.selectGroup,
this.createNewGroup,
this.adminOpenLockPassword,
this.update,
this.updateElectricQuantityTip,
this.adminOpenLockPasswordTip,
this.updateLockAdminPassword,
this.whenScreenFlashesClickNext,
this.theScreenNeverFlickered,
this.enterNumberOrPressSet,
this.theLocationOfTheSetKeyWillBeDifferent,
this.pressAndHoldTheResetButtonTwoSeconds,
this.nearbyEquipment,
this.noData,
this.doorMagneticListTopTip,
this.remoteUnlockingPageTip,
this.currentMode,
this.delayTime,
this.automaticBlockingTip,
this.time,
this.normallyOpen,
this.date,
this.begin,
this.end,
this.allDay,
this.save,
this.normallyOpenModeTip,
this.pleaseSeletLockVolume,
this.lockSoundTip,
this.low,
this.lower,
this.medium,
this.high,
this.higher,
this.burglarAlarmTip,
this.resetButtonTip1,
this.resetButtonTip2,
this.calibrationTime,
this.setTheDSTMode,
this.diagnoseTip,
this.uploading,
this.uploadDataTip,
this.importOtherLockDataTip,
this.haveNewVersion,
this.currentVersion,
this.newVersion,
this.upgrade,
this.leisure,
this.checkedIn,
this.company,
this.staff,
this.work,
this.workday,
this.holidays,
this.punchingMode,
this.whetherTheEmployeeHasAKey,
this.selectKey,
this.officeHours,
this.closingTime,
this.thisWeek,
this.singleDayWeekend,
this.twoDaysOff,
this.oddOrEvenDaysOff,
this.year,
this.month,
this.libertyDay,
this.coverDate,
this.addedHoliday,
this.startDate,
this.accessDate,
this.mustFillIn,
this.endDate,
this.dailyCharts,
this.monthlyLeaderboard,
this.noAttendanceRecord,
this.everyoneIsVeryMotivated,
this.workingHoursWereNotReleased,
this.beLate,
this.leaveEarly,
this.noCardPunched,
this.lanEnglish,
this.lanChinese,
this.multilingual,
this.addLock,
this.addDevice,
this.gateway,
this.message,
this.supportStaff,
this.set,
this.moreServices,
this.moreSet,
this.prompTone,
this.touchUnlock,
this.pushNotification,
this.lockUserManagement,
this.authorizedAdmin,
this.addAuthorizedAdmin,
this.lockGroup,
this.transferSmartLock,
this.selectiveLock,
this.recipientInformation,
this.transferGateway,
this.multiLanguage,
this.lockScreen,
this.closed,
this.opened,
this.hideInvalidUnlockPermissions,
this.appUnlockRequiresMobilePhoneAccessToTheLock,
this.valueAddedServices,
this.about,
this.userAgreement,
this.privacyPolicy,
this.personalInformationCollectionList,
this.applicationPermissionDescription,
this.thirdPartyInformationSharingList,
this.logout,
this.deleteAccount,
this.personalInformation,
this.avatar,
this.nickName,
this.changeNickName,
this.modifyAccount,
this.resetPasswords,
this.safetyProblem,
this.modifyAccountTip,
this.pleaseEnterAccountNumber,
this.pleaseEnterNewAccountNumber,
this.changeIphoneTip,
this.changeEmailTip,
this.originalPassword,
this.newPassword,
this.surePassword,
this.safetyProblemTip,
this.problemOne,
this.problemTwo,
this.problemThree,
this.pleaseEnterYourAnswer,
this.aboutToExpire,
this.changeName,
this.designation,
this.state,
this.wifiName,
this.networkMAC,
this.gatewayUpgrade,
this.gatewayConnectionLock,
this.strongSignal,
this.mediumSignal,
this.averageSignal,
this.weakSignal,
this.selectGatewayType,
this.addGateway,
this.turnThePowerBackOn,
this.indicatorLight,
this.seletGatewayTypeNextTip,
this.selectGateway,
this.gatewayConfigurationWifiTip,
this.wifiPassward,
this.pleaseEnterTheWiFiPassword,
this.gatewayName,
this.pleaseEnterGatewayName,
this.wifiMAC,
this.ipAddress,
this.subnetMask,
this.defaultGateway,
this.automaticallyGetTheDNSServerAddress,
this.preferredDNS,
this.alternativeDNS,
this.noStaticIPIsUsed,
this.allLock,
this.searchAllLockType,
this.doorLock,
this.padlock,
this.safeLock,
this.intelligentLockCore,
this.itelligentAccessControl,
this.parkingLock,
this.bicycleLock,
this.longRangeControl,
this.lightTouchScreen,
this.lightTouchScreenTip,
this.next,
this.nearbyLock,
this.addSuccessfullyPleaseRename,
this.whenAddingLockThePhoneMustBeNextToTheLock,
this.login,
this.register,
this.forgetPassword,
this.readAndAgree,
this.verificationCode,
this.registerPasswordTip,
this.iphone,
this.email,
this.countryAndRegion,
this.selet,
this.businessCooperation,
this.officialWebsite,
this.computerWebVersion,
this.hotelSystem,
this.manualWebVersion,
this.introduce,
this.note,
this.mail,
this.advancedFunction,
this.pushMessage,
this.recordsRetention,
this.smsBuyTip,
this.emailBuyTip,
this.currentRemainingQuantity,
this.buy,
this.customSMSTemplate,
this.customMailTemplate,
this.record,
this.buyRealNameTip,
this.buyRealNameSeletYouWantBuyTip,
this.forTheFirstTime,
this.onceDay,
this.weekOnce,
this.monthOnce,
this.currentState,
this.onTrial,
this.haveNotOpened,
this.advancedFeaturesAndBenefitsContent,
this.smsTemplate,
this.emailTemplate,
this.cardIssuingtool,
this.titleForBuyingAdvancedFeatures,
this.tipsForBuyingAdvancedFeatures,
this.freeTrial,
this.openNow,
this.buySMS,
this.buyMail,
this.buyRealNameAuthenticationTimes,
this.enablingAdvancedFeatures,
this.chooseAPackage,
this.modeOfPayment,
this.alipay,
this.goToPay,
this.customTemplatesTip,
this.haveOpened,
this.unHaveOpenedTip1,
this.unHaveOpenedTip2,
this.freeTrialKeywords,
this.goToTheOpen,
this.creatingANewTemplate,
this.type,
this.templateContent,
this.preview,
this.hello,
this.yourRoomIs,
this.roomName,
this.theCodeToOpenTheDoorIs,
this.templateTip1,
this.templateTip2,
this.templateTip3,
this.expectedNotoCount,
this.templateTip4,
this.and,
this.willBeReplacedWithTheActualValue,
this.downloadLink,
this.lockScreenTip,
this.hideInvalidUnlockPermissionsTip,
this.appUnlockRequiresMobilePhoneAccessToTheLockTip,
this.checkAll,
this.getVerificationCode
});
LanKeyEntity(
{this.starLock,
this.clickUnlockAndHoldDownClose,
this.checkingIn,
this.electronicKey,
this.password,
this.card,
this.fingerprint,
this.remoteControl,
this.operatingRecord,
this.number,
this.additive,
this.addTime,
this.reset,
this.sendKey,
this.timeLimit,
this.permanent,
this.once,
this.circulation,
this.receiver,
this.pleaseEnterNumberOrEmail,
this.name,
this.enterYourName,
this.effectiveTime,
this.failureTime,
this.effectiveDate,
this.failureDate,
this.monday,
this.tuesday,
this.wednesday,
this.thursday,
this.friday,
this.saturday,
this.sunday,
this.mondayShort,
this.tuesdayShort,
this.wednesdayShort,
this.thursdayShort,
this.fridayShort,
this.saturdayShort,
this.sundayShort,
this.realNameAuthentication,
this.sendKeyBottomTip,
this.send,
this.periodValidity,
this.sendGroupKey,
this.lock,
this.pleaseAdd,
this.pleaseSelet,
this.remoteUnlockingAllowed,
this.pleaseEnter,
this.getPassword,
this.custom,
this.clearAll,
this.recursiveDevice,
this.pleaseNameYourPassword,
this.pleaseEnterDigitsNumber,
this.getPasswordTip1,
this.getPasswordTip2,
this.getPasswordTip3,
this.getPasswordTip4,
this.getPasswordTip5,
this.getPasswordTip6,
this.getTip,
this.addTip,
this.sender,
this.senderTime,
this.keyDetail,
this.detail,
this.delete,
this.passwordDetail,
this.share,
this.amend,
this.sure,
this.cancel,
this.add,
this.accountNumber,
this.volumeAuthorizationLock,
this.authorizedAdminTip,
this.lockOperatingRecordTip,
this.rankingList,
this.earlyArrivalList,
this.lateList,
this.hardWorkingList,
this.basicInformation,
this.wirelessKeyboard,
this.doorMagnetic,
this.remoteUnlocking,
this.automaticBlocking,
this.normallyOpenMode,
this.lockSound,
this.burglarAlarm,
this.resetButton,
this.lockTime,
this.diagnose,
this.uploadData,
this.importOtherLockData,
this.lockEscalation,
this.markedHouseState,
this.unlockReminder,
this.unlockQRCode,
this.lockNumber,
this.electricQuantity,
this.lockName,
this.lockGrouping,
this.selectGroup,
this.createNewGroup,
this.adminOpenLockPassword,
this.update,
this.updateElectricQuantityTip,
this.adminOpenLockPasswordTip,
this.updateLockAdminPassword,
this.whenScreenFlashesClickNext,
this.theScreenNeverFlickered,
this.enterNumberOrPressSet,
this.theLocationOfTheSetKeyWillBeDifferent,
this.pressAndHoldTheResetButtonTwoSeconds,
this.nearbyEquipment,
this.noData,
this.doorMagneticListTopTip,
this.remoteUnlockingPageTip,
this.currentMode,
this.delayTime,
this.automaticBlockingTip,
this.time,
this.normallyOpen,
this.date,
this.begin,
this.end,
this.allDay,
this.save,
this.normallyOpenModeTip,
this.pleaseSeletLockVolume,
this.lockSoundTip,
this.low,
this.lower,
this.medium,
this.high,
this.higher,
this.burglarAlarmTip,
this.resetButtonTip1,
this.resetButtonTip2,
this.calibrationTime,
this.setTheDSTMode,
this.diagnoseTip,
this.uploading,
this.uploadDataTip,
this.importOtherLockDataTip,
this.haveNewVersion,
this.currentVersion,
this.newVersion,
this.upgrade,
this.leisure,
this.checkedIn,
this.company,
this.staff,
this.work,
this.workday,
this.holidays,
this.punchingMode,
this.whetherTheEmployeeHasAKey,
this.selectKey,
this.officeHours,
this.closingTime,
this.thisWeek,
this.singleDayWeekend,
this.twoDaysOff,
this.oddOrEvenDaysOff,
this.year,
this.month,
this.libertyDay,
this.coverDate,
this.addedHoliday,
this.startDate,
this.accessDate,
this.mustFillIn,
this.endDate,
this.dailyCharts,
this.monthlyLeaderboard,
this.noAttendanceRecord,
this.everyoneIsVeryMotivated,
this.workingHoursWereNotReleased,
this.beLate,
this.leaveEarly,
this.noCardPunched,
this.lanEnglish,
this.lanChinese,
this.multilingual,
this.addLock,
this.addDevice,
this.gateway,
this.message,
this.supportStaff,
this.set,
this.moreServices,
this.moreSet,
this.prompTone,
this.touchUnlock,
this.pushNotification,
this.lockUserManagement,
this.authorityManagement,
this.associatedDevice,
this.associatedName,
this.device,
this.authorizedAdmin,
this.addAuthorizedAdmin,
this.lockGroup,
this.transferSmartLock,
this.selectiveLock,
this.recipientInformation,
this.transferGateway,
this.multiLanguage,
this.lockScreen,
this.closed,
this.opened,
this.hideInvalidUnlockPermissions,
this.appUnlockRequiresMobilePhoneAccessToTheLock,
this.valueAddedServices,
this.about,
this.userAgreement,
this.privacyPolicy,
this.personalInformationCollectionList,
this.applicationPermissionDescription,
this.thirdPartyInformationSharingList,
this.logout,
this.deleteAccount,
this.personalInformation,
this.avatar,
this.nickName,
this.changeNickName,
this.modifyAccount,
this.resetPasswords,
this.safetyProblem,
this.modifyAccountTip,
this.pleaseEnterAccountNumber,
this.pleaseEnterNewAccountNumber,
this.changeIphoneTip,
this.changeEmailTip,
this.originalPassword,
this.newPassword,
this.surePassword,
this.safetyProblemTip,
this.problemOne,
this.problemTwo,
this.problemThree,
this.pleaseEnterYourAnswer,
this.aboutToExpire,
this.deAuthorize,
this.changeName,
this.designation,
this.state,
this.wifiName,
this.networkMAC,
this.gatewayUpgrade,
this.gatewayConnectionLock,
this.strongSignal,
this.mediumSignal,
this.averageSignal,
this.weakSignal,
this.selectGatewayType,
this.addGateway,
this.turnThePowerBackOn,
this.indicatorLight,
this.seletGatewayTypeNextTip,
this.selectGateway,
this.gatewayConfigurationWifiTip,
this.wifiPassward,
this.pleaseEnterTheWiFiPassword,
this.gatewayName,
this.pleaseEnterGatewayName,
this.wifiMAC,
this.ipAddress,
this.subnetMask,
this.defaultGateway,
this.automaticallyGetTheDNSServerAddress,
this.preferredDNS,
this.alternativeDNS,
this.noStaticIPIsUsed,
this.allLock,
this.searchAllLockType,
this.doorLock,
this.padlock,
this.safeLock,
this.intelligentLockCore,
this.itelligentAccessControl,
this.parkingLock,
this.bicycleLock,
this.longRangeControl,
this.lightTouchScreen,
this.lightTouchScreenTip,
this.next,
this.nearbyLock,
this.addSuccessfullyPleaseRename,
this.whenAddingLockThePhoneMustBeNextToTheLock,
this.login,
this.register,
this.forgetPassword,
this.readAndAgree,
this.verificationCode,
this.registerPasswordTip,
this.iphone,
this.email,
this.countryAndRegion,
this.selet,
this.businessCooperation,
this.officialWebsite,
this.computerWebVersion,
this.hotelSystem,
this.manualWebVersion,
this.introduce,
this.note,
this.mail,
this.advancedFunction,
this.pushMessage,
this.recordsRetention,
this.smsBuyTip,
this.emailBuyTip,
this.currentRemainingQuantity,
this.buy,
this.customSMSTemplate,
this.customMailTemplate,
this.record,
this.buyRealNameTip,
this.buyRealNameSeletYouWantBuyTip,
this.forTheFirstTime,
this.onceDay,
this.weekOnce,
this.monthOnce,
this.currentState,
this.onTrial,
this.haveNotOpened,
this.advancedFeaturesAndBenefitsContent,
this.smsTemplate,
this.emailTemplate,
this.cardIssuingtool,
this.titleForBuyingAdvancedFeatures,
this.tipsForBuyingAdvancedFeatures,
this.freeTrial,
this.openNow,
this.buySMS,
this.buyMail,
this.buyRealNameAuthenticationTimes,
this.enablingAdvancedFeatures,
this.chooseAPackage,
this.modeOfPayment,
this.alipay,
this.goToPay,
this.customTemplatesTip,
this.haveOpened,
this.unHaveOpenedTip1,
this.unHaveOpenedTip2,
this.freeTrialKeywords,
this.goToTheOpen,
this.creatingANewTemplate,
this.type,
this.templateContent,
this.preview,
this.hello,
this.yourRoomIs,
this.roomName,
this.theCodeToOpenTheDoorIs,
this.templateTip1,
this.templateTip2,
this.templateTip3,
this.expectedNotoCount,
this.templateTip4,
this.and,
this.willBeReplacedWithTheActualValue,
this.downloadLink,
this.lockScreenTip,
this.hideInvalidUnlockPermissionsTip,
this.appUnlockRequiresMobilePhoneAccessToTheLockTip,
this.checkAll,
this.getVerificationCode});
LanKeyEntity.fromJson(dynamic json) {
starLock = json['starLock'];
@ -577,6 +581,11 @@ class LanKeyEntity {
touchUnlock = json['touchUnlock'];
pushNotification = json['pushNotification'];
lockUserManagement = json['lockUserManagement'];
authorityManagement = json['authorityManagement'];
associatedDevice = json['associatedDevice'];
associatedName = json['associatedName'];
device = json['device'];
authorizedAdmin = json['authorizedAdmin'];
addAuthorizedAdmin = json['addAuthorizedAdmin'];
lockGroup = json['lockGroup'];
@ -623,6 +632,7 @@ class LanKeyEntity {
problemThree = json['problemThree'];
pleaseEnterYourAnswer = json['pleaseEnterYourAnswer'];
aboutToExpire = json['aboutToExpire'];
deAuthorize = json['deAuthorize'];
changeName = json['changeName'];
designation = json['designation'];
@ -969,6 +979,10 @@ class LanKeyEntity {
String? touchUnlock;
String? pushNotification;
String? lockUserManagement;
String? authorityManagement;
String? associatedDevice;
String? associatedName;
String? device;
String? authorizedAdmin;
String? addAuthorizedAdmin;
String? lockGroup;
@ -1015,6 +1029,7 @@ class LanKeyEntity {
String? problemThree;
String? pleaseEnterYourAnswer;
String? aboutToExpire;
String? deAuthorize;
String? changeName;
String? designation;
@ -1359,6 +1374,10 @@ class LanKeyEntity {
map['touchUnlock'] = touchUnlock;
map['pushNotification'] = pushNotification;
map['lockUserManagement'] = lockUserManagement;
map['authorityManagement'] = authorityManagement;
map['associatedDevice'] = associatedDevice;
map['associatedName'] = associatedName;
map['device'] = device;
map['authorizedAdmin'] = authorizedAdmin;
map['addAuthorizedAdmin'] = addAuthorizedAdmin;
map['lockGroup'] = lockGroup;
@ -1406,6 +1425,7 @@ class LanKeyEntity {
map['problemThree'] = problemThree;
map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer;
map['aboutToExpire'] = aboutToExpire;
map['deAuthorize'] = deAuthorize;
map['changeName'] = changeName;
map['designation'] = designation;