Merge remote-tracking branch 'origin/master'

# Conflicts:
#	star_lock/lib/appRouters.dart
This commit is contained in:
魏少阳 2023-08-02 09:23:06 +08:00
commit 8768a77dd9
21 changed files with 1103 additions and 455 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

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

View File

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

View File

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

View File

@ -1,9 +1,6 @@
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/common/safetyVerification/safetyVerification_binding.dart'; import 'package:star_lock/common/safetyVerification/safetyVerification_binding.dart';
import 'package:star_lock/login/register/starLock_register_binding.dart'; import 'package:star_lock/login/register/starLock_register_binding.dart';
import 'package:star_lock/login/login/starLock_login_binding.dart';
import 'package:star_lock/mine/mine/starLockMine_binding.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart';
import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_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/lockGroup/lockGroupList_page.dart';
@ -16,7 +13,6 @@ import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLock_page.
import 'common/safetyVerification/safetyVerification_page.dart'; import 'common/safetyVerification/safetyVerification_page.dart';
import 'login/forgetPassword/starLock_forgetPassword_page.dart'; import 'login/forgetPassword/starLock_forgetPassword_page.dart';
import 'login/login/starLock_login_page.dart'; import 'login/login/starLock_login_page.dart';
import 'login/register/starLock_register_page.dart'; import 'login/register/starLock_register_page.dart';
import 'login/seletCountryRegion/seletCountryRegion_page.dart'; import 'login/seletCountryRegion/seletCountryRegion_page.dart';
@ -56,7 +52,6 @@ import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWireless
import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart'; import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart';
import 'main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart'; import 'main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart';
import 'main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart'; import 'main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart';
import 'main/lockMian/lockMain_binding.dart';
import 'mine/about/about_page.dart'; import 'mine/about/about_page.dart';
import 'mine/addLock/addLock/addLock_page.dart'; import 'mine/addLock/addLock/addLock_page.dart';
import 'main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart'; import 'main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart';
@ -91,7 +86,6 @@ import 'mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart';
import 'mine/gateway/gatewayDetail/gatewayDetail_page.dart'; import 'mine/gateway/gatewayDetail/gatewayDetail_page.dart';
import 'mine/gateway/gatewayList/gatewayList_page.dart'; import 'mine/gateway/gatewayList/gatewayList_page.dart';
import 'mine/message/messageList_page.dart'; import 'mine/message/messageList_page.dart';
// import 'mine/mine/starLockMine_binding.dart';
import 'mine/mineMultiLanguage/mineMultiLanguage_page.dart'; import 'mine/mineMultiLanguage/mineMultiLanguage_page.dart';
import 'mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart'; import 'mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart';
import 'mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart'; import 'mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart';
@ -105,7 +99,7 @@ import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_p
import 'mine/mineSet/lockGroup/lockItemList_page.dart'; import 'mine/mineSet/lockGroup/lockItemList_page.dart';
import 'mine/mineSet/lockScreen/lockScreen_page.dart'; import 'mine/mineSet/lockScreen/lockScreen_page.dart';
import 'mine/mineSet/lockUserManage/ownedKeyList_page.dart'; import 'mine/mineSet/lockUserManage/ownedKeyList_page.dart';
import 'mine/mine/starLockMine_page.dart'; import 'mine/mine_page.dart';
import 'mine/supportStaff/supportStaff_page.dart'; import 'mine/supportStaff/supportStaff_page.dart';
import 'mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart'; import 'mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart';
import 'mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart'; import 'mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart';
@ -118,8 +112,7 @@ import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRea
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart';
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart';
import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart'; import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart';
import 'starLockApplication/starLockApplication.dart'; import 'starLockApplication.dart';
import 'starLockApplication/starLockApplication_binding.dart';
abstract class Routers { abstract class Routers {
static const initial = '/'; // static const initial = '/'; //
@ -280,15 +273,15 @@ abstract class AppRouters {
static final routePages = [ static final routePages = [
GetPage( GetPage(
name: Routers.initial, name: Routers.initial,
page: () => const StarLockApplication(), binding: StarLockApplicationBinding() page: () => const StarLockApplication(),
), ),
GetPage( GetPage(
name: Routers.starLockMain, name: Routers.starLockMain,
page: () => const StarLockMainPage(), binding: LockMainBinding() page: () => const StarLockMain(),
), ),
GetPage( GetPage(
name: Routers.starLockMinePage, name: Routers.starLockMinePage,
page: () => const StarLockMinePage(), binding: StarLockMineBinding() page: () => const StarLockMinePage(),
), ),
GetPage( GetPage(
name: Routers.seletLockTypePage, name: Routers.seletLockTypePage,
@ -392,11 +385,11 @@ abstract class AppRouters {
), ),
GetPage( GetPage(
name: Routers.starLockLoginPage, name: Routers.starLockLoginPage,
page: () => const StarLockLoginPage(), binding: StarLockLoginBinding() page: () => const StarLockLoginPage(),
), ),
GetPage( GetPage(
name: Routers.starLockRegisterPage, name: Routers.starLockRegisterPage,
page: () => const StarLockRegisterPage(), binding: StarLockRegisterBinding() page: () => const StarLockRegisterPage(), binding:StarLockRegisterBinding()
), ),
GetPage( GetPage(
name: Routers.starLockForgetPasswordPage, name: Routers.starLockForgetPasswordPage,
@ -709,7 +702,8 @@ abstract class AppRouters {
), ),
GetPage( GetPage(
name: Routers.safetyVerificationPage, name: Routers.safetyVerificationPage,
page: () => const SafetyVerificationPage(), binding: SafetyVerificationBinding() page: () => const SafetyVerificationPage(),
binding: SafetyVerificationBinding(),
), ),
GetPage( GetPage(
name: Routers.ownedKeyListPage, page: () => const OwnedKeyListPage() name: Routers.ownedKeyListPage, page: () => const OwnedKeyListPage()

View File

@ -143,12 +143,7 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
SizedBox( SizedBox(
height: 20.h, height: 20.h,
), ),
SubmitBtn( SubmitBtn(btnName: TranslationLoader.lanKeys!.send!.tr, onClick: () {}),
btnName: TranslationLoader.lanKeys!.send!.tr,
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: () {}),
Container( Container(
padding: EdgeInsets.only(right: 30.w), padding: EdgeInsets.only(right: 30.w),
// color: Colors.red, // color: Colors.red,

View File

@ -78,7 +78,9 @@ class _AuthorizedAdminDetailPageState extends State<AuthorizedAdminDetailPage> {
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
rightTitle: "", rightTitle: "",
isHaveDirection: true, isHaveDirection: true,
action: () {}), action: () {
Navigator.pushNamed(context, Routers.keyOperationRecordPage);
}),
Container(height: 40.h), Container(height: 40.h),
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.delete!.tr, btnName: TranslationLoader.lanKeys!.delete!.tr,

View File

@ -47,11 +47,6 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
Navigator.pushNamed(context, Routers.authorizedAdminManagePage); Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
}, },
), ),
// SubmitBtn(
// btnName: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
// onClick: () {
// Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
// }),
SizedBox( SizedBox(
height: 64.h, height: 64.h,
) )
@ -66,7 +61,8 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
itemBuilder: (c, index) { itemBuilder: (c, index) {
return _electronicKeyItem('images/controls_user.png', "张三", return _electronicKeyItem('images/controls_user.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () { "2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); // Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
}); });
}); });
} }
@ -125,18 +121,16 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
], ],
), ),
SizedBox(height: 5.h), SizedBox(height: 5.h),
Container( Row(
child: Row( mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, children: [
children: [ Text(
Text( "2023.6.21 11.15 永久",
"2023.6.21 11.15 永久", style: TextStyle(
style: TextStyle( fontSize: 18.sp,
fontSize: 18.sp, color: AppColors.placeholderTextColor),
color: AppColors.placeholderTextColor), ),
), ],
],
),
), ),
SizedBox(width: 20.h), SizedBox(width: 20.h),
], ],

View File

@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/tools/jh_pop_menus.dart';
import '../../../../../appRouters.dart'; import '../../../../../appRouters.dart';
import '../../../../../app_settings/app_colors.dart'; import '../../../../../app_settings/app_colors.dart';
@ -30,6 +31,25 @@ class _ElectronicKeyDetailPageState extends State<ElectronicKeyDetailPage> {
appBar: TitleAppBar( appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.keyDetail!.tr, barTitle: TranslationLoader.lanKeys!.keyDetail!.tr,
haveBack: true, haveBack: true,
actionsList: [
IconButton(
icon: Image.asset(
'images/icon_bar_more.png',
height: 30.h,
width: 10.w,
),
onPressed: () {
JhPopMenus.showLinePop(context,
clickCallback: (index, selText) {
print('选中index: $index');
print('选中text: $selText');
}, listData: [
{'text': '冻结'},
{'text': '取消授权'}
]);
},
),
],
backgroundColor: AppColors.mainColor), backgroundColor: AppColors.mainColor),
body: Column( body: Column(
children: [ children: [
@ -78,7 +98,8 @@ class _ElectronicKeyDetailPageState extends State<ElectronicKeyDetailPage> {
rightTitle: "", rightTitle: "",
isHaveDirection: true, isHaveDirection: true,
action: () { action: () {
Navigator.pushNamed(context, Routers.keyOperationRecordPage, arguments: {}); Navigator.pushNamed(context, Routers.keyOperationRecordPage,
arguments: {});
}), }),
Container(height: 40.h), Container(height: 40.h),
SubmitBtn( SubmitBtn(

View File

@ -42,10 +42,15 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
if (selText == '扫一扫') { if (selText == '扫一扫') {
// _scan(); // _scan();
} }
}); }, listData: [
{'text': '读取记录'},
{'text': '清空记录'},
{'text': '导出记录'},
]);
}, },
), ),
], ],
/* /*
actionsList: [ actionsList: [
TextButton( TextButton(

View File

@ -80,7 +80,9 @@ class _OtherTypeKeyDetailPageState extends State<OtherTypeKeyDetailPage> {
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
rightTitle: "", rightTitle: "",
isHaveDirection: true, isHaveDirection: true,
action: () {}), action: () {
Navigator.pushNamed(context, Routers.keyOperationRecordPage);
}),
Container(height: 40.h), Container(height: 40.h),
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.delete!.tr, btnName: TranslationLoader.lanKeys!.delete!.tr,

View File

@ -27,14 +27,24 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> {
haveBack: true, haveBack: true,
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
actionsList: [ actionsList: [
TextButton( IconButton(
child: Text( icon: Image.asset(
"分享", 'images/icon_bar_share.png',
style: TextStyle(color: Colors.white, fontSize: 24.sp), height: 30.h,
width: 30.w,
), ),
onPressed: () {}, onPressed: () {},
), ),
], ],
// actionsList: [
// TextButton(
// child: Text(
// "分享",
// style: TextStyle(color: Colors.white, fontSize: 24.sp),
// ),
// onPressed: () {},
// ),
// ],
), ),
body: Column( body: Column(
children: [ children: [
@ -76,7 +86,9 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> {
leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr,
rightTitle: "", rightTitle: "",
isHaveDirection: true, isHaveDirection: true,
action: () {}), action: () {
Navigator.pushNamed(context, Routers.keyOperationRecordPage);
}),
Container(height: 40.h), Container(height: 40.h),
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.delete!.tr, btnName: TranslationLoader.lanKeys!.delete!.tr,

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

@ -90,7 +90,8 @@ class _AuthorizedAdministratorListPageState
itemBuilder: (c, index) { itemBuilder: (c, index) {
return _electronicKeyItem('images/controls_user.png', "张三", return _electronicKeyItem('images/controls_user.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () { "2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); // Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
}); });
}); });
} }

View File

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_utils/get_utils.dart';
import 'package:star_lock/translations/trans_lib.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
@ -18,7 +20,7 @@ class _OwnedKeyListPageState extends State<OwnedKeyListPage> {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar( appBar: TitleAppBar(
barTitle: "拥有的钥匙", barTitle: TranslationLoader.lanKeys!.ownedKey!.tr,
haveBack: true, haveBack: true,
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
), ),
@ -38,9 +40,9 @@ class _OwnedKeyListPageState extends State<OwnedKeyListPage> {
// margin: EdgeInsets.only(left: 30.w, top: 30.w, right: 30.w, bottom: 30.w), // margin: EdgeInsets.only(left: 30.w, top: 30.w, right: 30.w, bottom: 30.w),
child: Padding( child: Padding(
padding: padding:
EdgeInsets.only(left: 30.w, top: 30.w, right: 20.w, bottom: 10.w), EdgeInsets.only(left: 30.w, top: 20.w, right: 20.w, bottom: 10.w),
child: Text( child: Text(
"拥有的钥匙", TranslationLoader.lanKeys!.ownedKey!.tr,
style: TextStyle(fontSize: 24.sp), style: TextStyle(fontSize: 24.sp),
), ),
), ),

View File

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

View File

@ -111,28 +111,23 @@ class _ValueAddedServicesNoteAndEmailDetailPageState
Routers.valueAddedServicesListEmailTemplatePage); Routers.valueAddedServicesListEmailTemplatePage);
} }
}, },
child: Container( child: Row(
// width:100, children: [
// padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5), SizedBox(
child: Row( width: 30.w,
children: [ ),
SizedBox( Image.asset(
width: 30.w, "images/mine/icon_mine_valueAddedServices_buyIcon.png",
), width: 36.w,
Image.asset( height: 36.w,
"images/mine/icon_mine_valueAddedServices_buyIcon.png", ),
width: 36.w, Text(
height: 36.w, (type == 1)
), ? TranslationLoader.lanKeys!.customSMSTemplate!.tr
Text( : TranslationLoader.lanKeys!.customMailTemplate!.tr,
(type == 1) style: TextStyle(fontSize: 24.sp),
? TranslationLoader.lanKeys!.customSMSTemplate!.tr ),
: TranslationLoader ],
.lanKeys!.customMailTemplate!.tr,
style: TextStyle(fontSize: 24.sp),
),
],
),
), ),
), ),
GestureDetector( GestureDetector(
@ -143,7 +138,7 @@ class _ValueAddedServicesNoteAndEmailDetailPageState
child: Container( child: Container(
width: 90, width: 90,
// height: 70.h, // height: 70.h,
margin: const EdgeInsets.only(left: 30, right: 30), margin: const EdgeInsets.only(left: 10, right: 30),
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
top: 5, bottom: 5, left: 5, right: 5), top: 5, bottom: 5, left: 5, right: 5),
// color: Colors.red, // color: Colors.red,

View File

@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'screen_utils.dart'; import 'screen_utils.dart';
List _listData = [ // List _listData = [
{'text': '读取记录'}, // {'text': '读取记录'},
{'text': '清空记录'}, // {'text': '清空记录'},
{'text': '导出记录'}, // {'text': '导出记录'},
]; // ];
const Color _bgColor = Color(0xFF2D2D2D); const Color _bgColor = Color(0xFF2D2D2D);
const double _fontSize = 20.0; const double _fontSize = 20.0;
@ -17,6 +17,7 @@ class JhPopMenus {
/// pop /// pop
static void show( static void show(
BuildContext context, { BuildContext context, {
required List<dynamic> listData,
Function(int selectIndex, String selectText)? clickCallback, Function(int selectIndex, String selectText)? clickCallback,
}) { }) {
// Cell // Cell
@ -31,7 +32,7 @@ class JhPopMenus {
color: _bgColor, color: _bgColor,
child: InkWell( child: InkWell(
onTap: () { onTap: () {
clickCallback?.call(index, _listData[index]['text']); clickCallback?.call(index, listData[index]['text']);
Navigator.pop(context); Navigator.pop(context);
}, },
child: Row( child: Row(
@ -74,13 +75,14 @@ class JhPopMenus {
} }
Navigator.of(context) Navigator.of(context)
.push(DialogRouter(_BasePopMenus(child: menusView(_listData)))); .push(DialogRouter(_BasePopMenus(child: menusView(listData))));
} }
/// 线 pop /// 线 pop
static void showLinePop( static void showLinePop(
BuildContext context, { BuildContext context, {
bool isShowBg = false, bool isShowBg = false,
required List<dynamic> listData,
Function(int selectIndex, String selectText)? clickCallback, Function(int selectIndex, String selectText)? clickCallback,
}) { }) {
// 线 // 线
@ -94,7 +96,7 @@ class JhPopMenus {
color: _bgColor, color: _bgColor,
child: InkWell( child: InkWell(
onTap: () { onTap: () {
clickCallback?.call(index, _listData[index]['text']); clickCallback?.call(index, listData[index]['text']);
Navigator.pop(context); Navigator.pop(context);
}, },
child: SizedBox( child: SizedBox(
@ -158,12 +160,12 @@ class JhPopMenus {
context: context, context: context,
barrierDismissible: false, barrierDismissible: false,
builder: (context) { builder: (context) {
return _BasePopMenus(child: menusView(_listData)); return _BasePopMenus(child: menusView(listData));
}, },
); );
} else { } else {
Navigator.of(context) Navigator.of(context)
.push(DialogRouter(_BasePopMenus(child: menusView(_listData)))); .push(DialogRouter(_BasePopMenus(child: menusView(listData))));
} }
} }
} }

View File

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