Merge remote-tracking branch 'origin/master'

# Conflicts:
#	star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart
This commit is contained in:
魏少阳 2023-07-26 09:34:10 +08:00
commit 877dd8580d
50 changed files with 2542 additions and 789 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -199,9 +199,12 @@
"touchUnlock":"Touch Unlock", "touchUnlock":"Touch Unlock",
"pushNotification":"Push Notification", "pushNotification":"Push Notification",
"lockUserManagement":"Lock User Management", "lockUserManagement":"Lock User Management",
"aboutToExpire":"About to expire",
"authorizedAdmin":"Authorized Admin", "authorizedAdmin":"Authorized Admin",
"lockGroup":"Lock Group", "lockGroup":"Lock Group",
"transferSmartLock":"Transfer Smart Lock", "transferSmartLock":"Transfer Smart Lock",
"selectiveLock":"Selective lock",
"recipientInformation":"recipientInformation",
"transferGateway":"Transfer Gateway", "transferGateway":"Transfer Gateway",
"multiLanguage":"Multi Language", "multiLanguage":"Multi Language",
"lockScreen":"Lock Screen", "lockScreen":"Lock Screen",

View File

@ -202,6 +202,8 @@
"authorizedAdmin":"authorizedAdmin", "authorizedAdmin":"authorizedAdmin",
"lockGroup":"lockGroup", "lockGroup":"lockGroup",
"transferSmartLock":"transferSmartLock", "transferSmartLock":"transferSmartLock",
"selectiveLock":"selectiveLock",
"recipientInformation":"recipientInformation",
"transferGateway":"transferGateway", "transferGateway":"transferGateway",
"multiLanguage":"multiLanguage", "multiLanguage":"multiLanguage",
"lockScreen":"lockScreen", "lockScreen":"lockScreen",
@ -236,6 +238,7 @@
"problemTwo":"problemTwo", "problemTwo":"problemTwo",
"problemThree":"problemThree", "problemThree":"problemThree",
"pleaseEnterYourAnswer":"pleaseEnterYourAnswer", "pleaseEnterYourAnswer":"pleaseEnterYourAnswer",
"aboutToExpire":"aboutToExpire",
"designation": "designation", "designation": "designation",
"state": "state", "state": "state",

View File

@ -1,6 +1,6 @@
{ {
"starLock":"星锁", "starLock":"星锁",
"clickUnlockAndHoldDownClose":"点击开锁,长按关闭", "clickUnlockAndHoldDownClose":"点击开锁长按关闭",
"checkingIn":"考勤", "checkingIn":"考勤",
"electronicKey":"电子钥匙", "electronicKey":"电子钥匙",
"password":"密码", "password":"密码",
@ -202,6 +202,8 @@
"authorizedAdmin":"授权管理员", "authorizedAdmin":"授权管理员",
"lockGroup":"锁分组", "lockGroup":"锁分组",
"transferSmartLock":"转移智能锁", "transferSmartLock":"转移智能锁",
"selectiveLock":"选择锁",
"recipientInformation":"接收人信息",
"transferGateway":"转移网关", "transferGateway":"转移网关",
"multiLanguage":"多语言", "multiLanguage":"多语言",
"lockScreen":"锁屏", "lockScreen":"锁屏",
@ -236,6 +238,7 @@
"problemTwo":"问题二", "problemTwo":"问题二",
"problemThree":"问题三", "problemThree":"问题三",
"pleaseEnterYourAnswer":"请输入你的答案", "pleaseEnterYourAnswer":"请输入你的答案",
"aboutToExpire":"即将到期",
"designation": "名称", "designation": "名称",
"state": "状态", "state": "状态",

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,6 +1,12 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_page.dart';
import 'package:star_lock/mine/mineSet/mineSet_page.dart'; import 'package:star_lock/mine/mineSet/mineSet_page.dart';
import 'package:star_lock/mine/mineSet/transferGateway/selectGetewayList_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/recipientInformation_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/selectBranch_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLock_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';
@ -85,6 +91,7 @@ import 'mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassw
import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart'; import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart';
import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart'; import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart';
import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart'; import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_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/mine_page.dart'; import 'mine/mine_page.dart';
import 'mine/supportStaff/supportStaff_page.dart'; import 'mine/supportStaff/supportStaff_page.dart';
@ -98,113 +105,160 @@ import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedS
import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart'; import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart';
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 'starLockApplication.dart'; import 'starLockApplication.dart';
abstract class Routers { abstract class Routers {
static const initial = '/';// static const initial = '/'; //
static const starLockMain = '/StarLockMain';// static const starLockMain = '/StarLockMain'; //
static const starLockMinePage = '/StarLockMinePage';// static const starLockMinePage = '/StarLockMinePage'; //
static const seletLockTypePage = '/SeletLockTypePage';// static const seletLockTypePage = '/SeletLockTypePage'; //
static const addLockPage = '/AddLockPage';// static const addLockPage = '/AddLockPage'; //
static const nearbyLockPage = '/NearbyLockPage';// static const nearbyLockPage = '/NearbyLockPage'; //
static const lockAddressPage = '/LockAddressPage';// static const lockAddressPage = '/LockAddressPage'; //
static const saveLockPage = '/SaveLockPage';// static const saveLockPage = '/SaveLockPage'; //
static const lockDetailPage = '/LockDetailPage';// static const lockDetailPage = '/LockDetailPage'; //
static const electronicKeyListPage = '/ElectronicKeyListPage';// static const electronicKeyListPage = '/ElectronicKeyListPage'; //
static const electronicKeyDetailPage = '/ElectronicKeyDetailPage';// static const electronicKeyDetailPage = '/ElectronicKeyDetailPage'; //
static const electronicKeyDetailChangeDate = '/ElectronicKeyDetailChangeDate';// static const electronicKeyDetailChangeDate =
static const sendElectronicKeyManagePage = '/SendElectronicKeyManagePage';// '/ElectronicKeyDetailChangeDate'; //
static const massSendElectronicKeyManagePage = '/MassSendElectronicKeyManagePage';// static const sendElectronicKeyManagePage =
static const electronicKeyPeriodValidityPage = '/ElectronicKeyPeriodValidityPage';// '/SendElectronicKeyManagePage'; //
static const sendEmailNotificationPage = '/SendEmailNotificationPage';// static const massSendElectronicKeyManagePage =
static const passwordKeyListPage = '/PasswordKeyListPage';// '/MassSendElectronicKeyManagePage'; //
static const passwordKeyManagePage = '/PasswordKeyManagePage';// static const electronicKeyPeriodValidityPage =
static const passwordKeyDetailPage = '/PasswordKeyDetailPage';// '/ElectronicKeyPeriodValidityPage'; //
static const otherTypeKeyListPage = '/OtherTypeKeyListPage';// static const sendEmailNotificationPage = '/SendEmailNotificationPage'; //
static const otherTypeKeyDetailPage = '/OtherTypeKeyDetailPage';// static const passwordKeyListPage = '/PasswordKeyListPage'; //
static const otherTypeKeyManagePage = '/OtherTypeKeyManagePage';// static const passwordKeyManagePage = '/PasswordKeyManagePage'; //
static const authorizedAdminListPage = '/AuthorizedAdminListPage';// static const passwordKeyDetailPage = '/PasswordKeyDetailPage'; //
static const authorizedAdminDetailPage = '/AuthorizedAdminDetailPage';// static const otherTypeKeyListPage = '/OtherTypeKeyListPage'; //
static const authorizedAdminManagePage = '/AuthorizedAdminManagePage';// static const otherTypeKeyDetailPage =
static const volumeAuthorizationLockManagePage = '/VolumeAuthorizationLockManagePage';// '/OtherTypeKeyDetailPage'; //
static const lockOperatingRecordPage = '/LockOperatingRecordPage';// static const otherTypeKeyManagePage =
static const lockSetPage = '/LockSetPage';// '/OtherTypeKeyManagePage'; //
static const basicInformationPage = '/BasicInformationPage';// static const authorizedAdminListPage = '/AuthorizedAdminListPage'; //
static const uploadElectricQuantityPage = '/UploadElectricQuantityPage';// static const authorizedAdminDetailPage =
static const editLockNamePage = '/EditLockNamePage';// '/AuthorizedAdminDetailPage'; //
static const lockSeletGroupingPage = '/LockSeletGroupingPage';// static const authorizedAdminManagePage =
static const adminOpenLockPasswordPage = '/AdminOpenLockPasswordPage';// '/AuthorizedAdminManagePage'; //
static const wirelessKeyboardPage = '/WirelessKeyboardPage';// static const volumeAuthorizationLockManagePage =
static const addWirelessKeyboardPage = '/AddWirelessKeyboardPage';// '/VolumeAuthorizationLockManagePage'; //
static const addWirelessKeyboardScreenNotLightOnPage = '/AddWirelessKeyboardScreenNotLightOnPage';// static const lockOperatingRecordPage = '/LockOperatingRecordPage'; //
static const seletWirelessKeyboardPage = '/SeletWirelessKeyboardPage';// static const lockSetPage = '/LockSetPage'; //
static const doorMagneticPage = '/DoorMagneticPage';// static const basicInformationPage = '/BasicInformationPage'; //
static const addDoorMagneticPage = '/AddDoorMagneticPage';// static const uploadElectricQuantityPage =
static const nearbyDoorMagneticPage = '/NearbyDoorMagneticPage';// '/UploadElectricQuantityPage'; //
static const remoteUnlockingPage = '/RemoteUnlockingPage';// static const editLockNamePage = '/EditLockNamePage'; //
static const automaticBlockingPage = '/AutomaticBlockingPage';// static const lockSeletGroupingPage = '/LockSeletGroupingPage'; //
static const normallyOpenModePage = '/NormallyOpenModePage';// static const adminOpenLockPasswordPage =
static const lockSoundSetPage = '/LockSoundSetPage';// '/AdminOpenLockPasswordPage'; //
static const burglarAlarmPage = '/BurglarAlarmPage';// static const wirelessKeyboardPage = '/WirelessKeyboardPage'; //
static const resetButtonPage = '/ResetButtonPage';// static const addWirelessKeyboardPage = '/AddWirelessKeyboardPage'; //
static const unlockQRCodePage = '/UnlockQRCodePage';// static const addWirelessKeyboardScreenNotLightOnPage =
static const lockTimePage = '/LockTimePage';// '/AddWirelessKeyboardScreenNotLightOnPage'; //
static const diagnosePage = '/DiagnosePage';// static const seletWirelessKeyboardPage =
static const uploadDataPage = '/UploadDataPage';// '/SeletWirelessKeyboardPage'; //
static const importOtherLockDataPage = '/ImportOtherLockDataPage';// static const doorMagneticPage = '/DoorMagneticPage'; //
static const lockEscalationPage = '/LockEscalationPage';// static const addDoorMagneticPage = '/AddDoorMagneticPage'; //
static const markedHouseStatePage = '/MarkedHouseStatePage';// static const nearbyDoorMagneticPage = '/NearbyDoorMagneticPage'; //
static const checkingInListPage = '/CheckingInListPage';// static const remoteUnlockingPage = '/RemoteUnlockingPage'; //
static const checkingInSetPage = '/CheckingInSetPage';// static const automaticBlockingPage = '/AutomaticBlockingPage'; //
static const checkingInStaffManagePage = '/CheckingInStaffManagePage';// static const normallyOpenModePage = '/NormallyOpenModePage'; //
static const checkingInAddStaffPage = '/CheckingInAddStaffPage';// static const lockSoundSetPage = '/LockSoundSetPage'; //
static const checkingInSetWorkTimePage = '/CheckingInSetWorkTimePage';// static const burglarAlarmPage = '/BurglarAlarmPage'; //
static const checkingInSetWorkdaySet = '/CheckingInSetWorkdaySet';// static const resetButtonPage = '/ResetButtonPage'; //
static const checkingInSetHolidaysPage = '/CheckingInSetHolidaysPage';// static const unlockQRCodePage = '/UnlockQRCodePage'; //
static const checkingInAddHolidaysPage = '/CheckingInAddHolidaysPage';// static const lockTimePage = '/LockTimePage'; //
static const checkingInDetailPage = '/CheckingInDetailPage';// static const diagnosePage = '/DiagnosePage'; //
static const uploadDataPage = '/UploadDataPage'; //
static const importOtherLockDataPage = '/ImportOtherLockDataPage'; //
static const lockEscalationPage = '/LockEscalationPage'; //
static const markedHouseStatePage = '/MarkedHouseStatePage'; //
static const checkingInListPage = '/CheckingInListPage'; //
static const checkingInSetPage = '/CheckingInSetPage'; //
static const checkingInStaffManagePage = '/CheckingInStaffManagePage'; //
static const checkingInAddStaffPage = '/CheckingInAddStaffPage'; //
static const checkingInSetWorkTimePage =
'/CheckingInSetWorkTimePage'; //
static const checkingInSetWorkdaySet = '/CheckingInSetWorkdaySet'; //
static const checkingInSetHolidaysPage =
'/CheckingInSetHolidaysPage'; //
static const checkingInAddHolidaysPage = '/CheckingInAddHolidaysPage'; //
static const checkingInDetailPage = '/CheckingInDetailPage'; //
static const mineSetPage = '/MineSetPage';// static const mineSetPage = '/MineSetPage'; //
static const mineMultiLanguagePage = '/MineMultiLanguagePage';// static const mineMultiLanguagePage = '/MineMultiLanguagePage'; //
static const minePersonInfoPage = '/MinePersonInfoPage';// static const minePersonInfoPage = '/MinePersonInfoPage'; //
static const minePersonInfoEditNamePage = '/MinePersonInfoEditNamePage';// static const minePersonInfoEditNamePage =
static const minePersonInfoEditAccountPage = '/MinePersonInfoEditAccountPage';// '/MinePersonInfoEditNamePage'; //
static const minePersonInfoEditAccountNextPage = '/MinePersonInfoEditAccountNextPage';// static const minePersonInfoEditAccountPage =
static const minePersonInfoEditIphonePage = '/MinePersonInfoEditIphonePage';// '/MinePersonInfoEditAccountPage'; //
static const minePersonInfoResetPasswordPage = '/MinePersonInfoResetPasswordPage';// static const minePersonInfoEditAccountNextPage =
static const minePersonInfoSetSafetyProblemPage = '/MinePersonInfoSetSafetyProblemPage';// '/MinePersonInfoEditAccountNextPage'; //
static const minePersonInfoEditIphonePage =
'/MinePersonInfoEditIphonePage'; //
static const minePersonInfoResetPasswordPage =
'/MinePersonInfoResetPasswordPage'; //
static const minePersonInfoSetSafetyProblemPage =
'/MinePersonInfoSetSafetyProblemPage'; //
static const gatewayListPage = '/GatewayListPage';// - static const gatewayListPage = '/GatewayListPage'; // -
static const gatewayDetailPage = '/GatewayDetailPage';// - static const gatewayDetailPage = '/GatewayDetailPage'; // -
static const gatewayConnectionLockPage = '/GatewayConnectionLockPage';// - static const gatewayConnectionLockPage =
static const seletGatewayTypePage = '/SeletGatewayTypePage';// - '/GatewayConnectionLockPage'; // -
static const seletGatewayTypeNextTipPage = '/SeletGatewayTypeNextTipPage';// - static const seletGatewayTypePage = '/SeletGatewayTypePage'; // -
static const seletGatewayPage = '/SeletGatewayPage';// - static const seletGatewayTypeNextTipPage =
static const gatewayConfigurationWifiPage = '/GatewayConfigurationWifiPage';// -wifi '/SeletGatewayTypeNextTipPage'; // -
static const seletGatewayPage = '/SeletGatewayPage'; // -
static const gatewayConfigurationWifiPage =
'/GatewayConfigurationWifiPage'; // -wifi
static const messageListPage = '/MessageListPage';// - static const messageListPage = '/MessageListPage'; // -
static const supportStaffPage = '/SupportStaffPage';// - static const supportStaffPage = '/SupportStaffPage'; // -
static const valueAddedServicesPage = '/ValueAddedServicesPage';// - static const valueAddedServicesPage = '/ValueAddedServicesPage'; // -
static const abountPage = '/AbountPage';// - static const abountPage = '/AbountPage'; // -
static const valueAddedServicesNoteAndEmailDetailPage = '/ValueAddedServicesNoteAndEmailDetailPage';// - static const valueAddedServicesNoteAndEmailDetailPage =
static const valueAddedServicesRealNamePage = '/ValueAddedServicesRealNamePage';// - '/ValueAddedServicesNoteAndEmailDetailPage'; // -
static const valueAddedServicesHighFunctionPage = '/ValueAddedServicesHighFunctionPage';// - static const valueAddedServicesRealNamePage =
static const valueAddedServicesBuyPage = '/ValueAddedServicesBuyPage';// - '/ValueAddedServicesRealNamePage'; // -
static const valueAddedServicesListSMSTemplatePage = '/ValueAddedServicesListSMSTemplatePage';// - static const valueAddedServicesHighFunctionPage =
static const valueAddedServicesAddSMSTemplatePage = '/valueAddedServicesAddSMSTemplatePage';// - '/ValueAddedServicesHighFunctionPage'; // -
static const valueAddedServicesListEmailTemplatePage = '/ValueAddedServicesListEmailTemplatePage';// - static const valueAddedServicesBuyPage =
static const valueAddedServicesAddEmailTemplatePage = '/ValueAddedServicesAddEmailTemplatePage';// - '/ValueAddedServicesBuyPage'; // -
static const valueAddedServicesBuyAndUseRecordManagePage = '/ValueAddedServicesBuyAndUseRecordManagePage';// -使 static const valueAddedServicesListSMSTemplatePage =
'/ValueAddedServicesListSMSTemplatePage'; // -
static const valueAddedServicesAddSMSTemplatePage =
'/valueAddedServicesAddSMSTemplatePage'; // -
static const valueAddedServicesListEmailTemplatePage =
'/ValueAddedServicesListEmailTemplatePage'; // -
static const valueAddedServicesAddEmailTemplatePage =
'/ValueAddedServicesAddEmailTemplatePage'; // -
static const valueAddedServicesBuyAndUseRecordManagePage =
'/ValueAddedServicesBuyAndUseRecordManagePage'; // -使
static const lockScreenPage = '/LockScreenPage';// - static const lockScreenPage = '/LockScreenPage'; // -
static const aPPUnlockNeedMobileNetworkingLockPage = '/APPUnlockNeedMobileNetworkingLockPage';// -app开锁时需手机连网的锁 static const aPPUnlockNeedMobileNetworkingLockPage =
static const hideInvalidUnlockPermissionsPage = '/HideInvalidUnlockPermissionsPage';// - '/APPUnlockNeedMobileNetworkingLockPage'; // -app开锁时需手机连网的锁
static const hideInvalidUnlockPermissionsPage =
'/HideInvalidUnlockPermissionsPage'; // -
static const starLockLoginPage = '/StarLockLoginPage';// static const lockUserManageLisPage = '/LockUserManageLisPage'; //-
static const starLockRegisterPage = '/StarLockRegisterPage';// static const authorizedAdministratorListPage =
static const starLockForgetPasswordPage = '/StarLockForgetPasswordPage';// '/AuthorizedAdministratorListPage'; //-
static const seletCountryRegionPage = '/SeletCountryRegionPage';// 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 starLockLoginPage = '/StarLockLoginPage'; //
static const starLockRegisterPage = '/StarLockRegisterPage'; //
static const starLockForgetPasswordPage =
'/StarLockForgetPasswordPage'; //
static const seletCountryRegionPage = '/SeletCountryRegionPage'; //
} }
abstract class AppRouters { abstract class AppRouters {
@ -424,7 +478,7 @@ abstract class AppRouters {
GetPage( GetPage(
name: Routers.lockTimePage, name: Routers.lockTimePage,
page: () => const LockTimePage(), page: () => const LockTimePage(),
),// ), //
GetPage( GetPage(
name: Routers.diagnosePage, name: Routers.diagnosePage,
page: () => const DiagnosePage(), page: () => const DiagnosePage(),
@ -601,5 +655,26 @@ abstract class AppRouters {
name: Routers.hideInvalidUnlockPermissionsPage, name: Routers.hideInvalidUnlockPermissionsPage,
page: () => const HideInvalidUnlockPermissionsPage(), page: () => const HideInvalidUnlockPermissionsPage(),
), ),
GetPage(
name: Routers.authorizedAdministratorListPage,
page: () => const AuthorizedAdministratorListPage()),
GetPage(
name: Routers.lockUserManageLisPage,
page: () => const LockUserManageListListPage()),
GetPage(
name: Routers.lockGroupListPage, page: () => const LockGroupListPage()),
GetPage(
name: Routers.lockItemListPage, page: () => const LockItemListPage()),
GetPage(
name: Routers.transferSmartLockPage,
page: () => const TransferSmartLockPage()),
GetPage(
name: Routers.recipientInformationPage,
page: () => const RecipientInformationPage()),
GetPage(
name: Routers.selectBranchPage, page: () => const SelectBranchPage()),
GetPage(
name: Routers.selectGetewayListPage,
page: () => const SelectGetewayListPage())
]; ];
} }

View File

@ -1,10 +1,8 @@
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class AppColors { class AppColors {
// static Color mainColor = const Color(0xFF385DEA); // static Color mainColor = const Color(0xFF385DEA);
static Color mainColor = const Color(0xFF4777EE); static Color mainColor = const Color(0xFF4777EE);
static Color mainBackgroundColor = const Color(0xFFF5F5F5); static Color mainBackgroundColor = const Color(0xFFF5F5F5);
@ -22,7 +20,6 @@ class AppColors {
static Color buttonEnableTextColor = const Color(0xFFFFFFFF); static Color buttonEnableTextColor = const Color(0xFFFFFFFF);
static Color buttonDisableTextColor = buttonEnableTextColor.withOpacity(0.6); static Color buttonDisableTextColor = buttonEnableTextColor.withOpacity(0.6);
static Color deleteBtnBgColor = const Color(0xFFFF495C).withOpacity(0.7); static Color deleteBtnBgColor = const Color(0xFFFF495C).withOpacity(0.7);
static Color touristColor = const Color(0xFFF58A22); static Color touristColor = const Color(0xFFF58A22);
@ -37,20 +34,21 @@ class AppColors {
static Color dialogInputBgColor = pickerItemSelectedBgColor; static Color dialogInputBgColor = pickerItemSelectedBgColor;
static Color introduceDialogBgColor = const Color(0xFF112B4C); static Color introduceDialogBgColor = const Color(0xFF112B4C);
static Color pickerTitleTextColor = const Color(0xFF000000); static Color pickerTitleTextColor = const Color(0xFF000000);
static Color pickerInfoTextColor = pickerTitleTextColor.withOpacity(0.5); static Color pickerInfoTextColor = pickerTitleTextColor.withOpacity(0.5);
static Color pickerItemSelectedTextColor = const Color(0xFF0093E5); static Color pickerItemSelectedTextColor = const Color(0xFF0093E5);
static Color pickerItemSelectedBgColor = const Color(0xFFE4E4E4); static Color pickerItemSelectedBgColor = const Color(0xFFE4E4E4);
static Color pickerItemUnselectTextColor = pickerTitleTextColor.withOpacity(0.5); static Color pickerItemUnselectTextColor =
pickerTitleTextColor.withOpacity(0.5);
static Color normalTextColor = const Color(0xFFFFFFFF); static Color normalTextColor = const Color(0xFFFFFFFF);
static Color inputErrorTextColor = const Color(0xFFFF6666); static Color inputErrorTextColor = const Color(0xFFFF6666);
static Color errorImageColor = const Color(0xFFFF495C ); static Color errorImageColor = const Color(0xFFFF495C);
static Color inputTitleTextColor = const Color(0xFFFFFFFF).withOpacity(0.6); static Color inputTitleTextColor = const Color(0xFFFFFFFF).withOpacity(0.6);
static Color settingItemInfoTextColor = const Color(0xFFFFFFFF).withOpacity(0.6); static Color settingItemInfoTextColor =
static Color dividerColor = const Color(0xFFFFFFFF).withOpacity(0.6); const Color(0xFFFFFFFF).withOpacity(0.6);
static Color dividerColor = const Color(0xFFFFFFFF).withOpacity(0.6);
static Color textFieldEnableBorderColor = normalTextColor.withOpacity(0.2); static Color textFieldEnableBorderColor = normalTextColor.withOpacity(0.2);
static Color textFieldFocusBorderColor = normalTextColor.withOpacity(0.2); static Color textFieldFocusBorderColor = normalTextColor.withOpacity(0.2);
@ -59,7 +57,6 @@ class AppColors {
static Color protocolTextColor = touristColor; static Color protocolTextColor = touristColor;
static Color topTabBarSelectedBgColor = buttonEnableColor; static Color topTabBarSelectedBgColor = buttonEnableColor;
static Color topTabBarUnselectedBgColor = buttonEnableTextColor; static Color topTabBarUnselectedBgColor = buttonEnableTextColor;
static Color tapTabBarSelectedTextColor = buttonEnableTextColor; static Color tapTabBarSelectedTextColor = buttonEnableTextColor;
@ -71,26 +68,26 @@ class AppColors {
static Color wifiDisableColor = const Color(0xFFA8A8A8); static Color wifiDisableColor = const Color(0xFFA8A8A8);
static Color get paginationColor => const Color(0xFF01295C).withOpacity(45); static Color get paginationColor => const Color(0xFF01295C).withOpacity(45);
static Color get paginationActiveColor => const Color(0xFFFFFFFF).withOpacity(65); static Color get paginationActiveColor =>
const Color(0xFFFFFFFF).withOpacity(65);
static Color scanPointerLineColor = Colors.blue; static Color scanPointerLineColor = Colors.blue;
static Color scanColor0 = const Color(0xFF0093E5).withOpacity(0.05); static Color scanColor0 = const Color(0xFF0093E5).withOpacity(0.05);
static Color scanColor1 = const Color(0xFF0093E5).withOpacity(0.1); static Color scanColor1 = const Color(0xFF0093E5).withOpacity(0.1);
static Color scanColor2 = const Color(0xFF0093E5).withOpacity(0.3); static Color scanColor2 = const Color(0xFF0093E5).withOpacity(0.3);
static Color scanColor3 = const Color(0xFF0093E5).withOpacity(0.5); static Color scanColor3 = const Color(0xFF0093E5).withOpacity(0.5);
static Color scanColor4 = const Color(0xFF0093E5).withOpacity(0.9); static Color scanColor4 = const Color(0xFF0093E5).withOpacity(0.9);
static Color scanCircleCenterColor0 = Colors.blue.withOpacity(0.9); static Color scanCircleCenterColor0 = Colors.blue.withOpacity(0.9);
static Color scanCircleCenterColor1 = const Color(0xffE9F3FF).withOpacity(0.8); static Color scanCircleCenterColor1 =
const Color(0xffE9F3FF).withOpacity(0.8);
static Color starCenterColor = const Color(0xFF0093E5); static Color starCenterColor = const Color(0xFF0093E5);
static Color starMiddleColor = const Color.fromRGBO(255, 255, 255,1); static Color starMiddleColor = const Color.fromRGBO(255, 255, 255, 1);
static Color starBorderColor = const Color.fromRGBO(255, 255, 255,0.2); static Color starBorderColor = const Color.fromRGBO(255, 255, 255, 0.2);
static Color starOutsideColor = const Color.fromRGBO(255, 255, 255,0.01); static Color starOutsideColor = const Color.fromRGBO(255, 255, 255, 0.01);
static Color workingStateInfoBgColor = const Color(0xFF20354E); static Color workingStateInfoBgColor = const Color(0xFF20354E);
@ -98,9 +95,9 @@ class AppColors {
static Color color_level_1 = const Color(0xFFFFFFFF); static Color color_level_1 = const Color(0xFFFFFFFF);
static Color color_level_2 = const Color(0xFFF7B500); static Color color_level_2 = const Color(0xFFF7B500);
static Color switchTrackSelectedColor = const Color(0xFF0093E5); static Color switchTrackSelectedColor = const Color(0xFF0093E5);
static Color switchTrackUnselectedColor = const Color(0xFF5A6676).withOpacity(0.5); static Color switchTrackUnselectedColor =
const Color(0xFF5A6676).withOpacity(0.5);
static Color switchThumbColor = const Color(0xFFFFFFFF); static Color switchThumbColor = const Color(0xFFFFFFFF);
static Color popMenuItemUnselectedBg = const Color(0xFF112B4C); static Color popMenuItemUnselectedBg = const Color(0xFF112B4C);
@ -108,15 +105,17 @@ class AppColors {
static Color blackColor = const Color(0xFF000000); static Color blackColor = const Color(0xFF000000);
static Color dateSelectedBgColor = const Color(0xFF0093E5); static Color dateSelectedBgColor = const Color(0xFF0093E5);
static Color dateSelectedTextColor = const Color(0xFFFFFFFF); static Color dateSelectedTextColor = const Color(0xFFFFFFFF);
static Color dateUnselectedTextColor = blackColor; static Color dateUnselectedTextColor = blackColor;
static Color dateUnselectedDialogBgColor = const Color(0xFFC9C9C9).withOpacity(0.5); static Color dateUnselectedDialogBgColor =
const Color(0xFFC9C9C9).withOpacity(0.5);
static Color dateUnselectedBgColor = const Color(0xFFFFFFFF); static Color dateUnselectedBgColor = const Color(0xFFFFFFFF);
static Color progressBgColor = const Color(0xFF022345); static Color progressBgColor = const Color(0xFF022345);
static Color progressValueColor = const Color(0xFF0093E5); static Color progressValueColor = const Color(0xFF0093E5);
} static const greyLineColor = Color.fromRGBO(240, 240, 240, 1); //线
static const darkGrayTextColor = Color.fromRGBO(65, 65, 65, 1); //
static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //
}

View File

@ -25,19 +25,18 @@ void main() async {
} }
class MyApp extends StatefulWidget { class MyApp extends StatefulWidget {
const MyApp({GlobalKey? key}):super(key: key); const MyApp({GlobalKey? key}) : super(key: key);
@override @override
State<MyApp> createState() => _MyAppState(); State<MyApp> createState() => _MyAppState();
} }
class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget { class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ScreenUtilInit( return ScreenUtilInit(
designSize: const Size(750, 1334), designSize: const Size(750, 1334),
builder: (w, a) => _initMaterialApp()); builder: (w, a) => _initMaterialApp());
} }
GetMaterialApp _initMaterialApp() => GetMaterialApp( GetMaterialApp _initMaterialApp() => GetMaterialApp(
@ -49,17 +48,19 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
GlobalCupertinoLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate, GlobalWidgetsLocalizations.delegate,
], ],
localeResolutionCallback: (locale,supportedLocales){ localeResolutionCallback: (locale, supportedLocales) {
if(!supportedLocales.contains(locale)) { if (!supportedLocales.contains(locale)) {
int idx = appSupportedLocales.indexWhere((element) => element.languageCode == locale!.languageCode); int idx = appSupportedLocales.indexWhere(
if(idx != -1) { (element) => element.languageCode == locale!.languageCode);
if (idx != -1) {
locale = appSupportedLocales[idx]; locale = appSupportedLocales[idx];
}else { } else {
locale = const Locale('zh', 'CN'); locale = const Locale('zh', 'CN');
} }
} }
// print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}"); // print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}");
AppManager().setLanCode(code: '${locale!.languageCode}_${locale.countryCode}'); AppManager()
.setLanCode(code: '${locale!.languageCode}_${locale.countryCode}');
return locale; return locale;
}, },
// locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale, // locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale,
@ -70,21 +71,19 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
backgroundColor: const Color(0xFFF6F6F6), backgroundColor: const Color(0xFFF6F6F6),
primaryColor: const Color(0xFFFFFFFF), primaryColor: const Color(0xFFFFFFFF),
textTheme: TextTheme( textTheme: TextTheme(
//Material组件上的文字显示, //Material组件上的文字显示,
bodyText1: TextStyle( bodyText1:
fontSize: 28.sp, color: const Color(0xff2E2B2B)), TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)),
//Material组件上的文字显示 //Material组件上的文字显示
bodyText2: TextStyle( bodyText2:
fontSize: 28.sp, color: const Color(0xff2E2B2B)), TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)),
button: TextStyle(fontSize: 28.sp)), button: TextStyle(fontSize: 28.sp)),
iconTheme: iconTheme: IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)),
IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
backgroundColor: const Color(0xFFFFFFFF), backgroundColor: const Color(0xFFFFFFFF),
elevation: 0, elevation: 0,
centerTitle: true, centerTitle: true,
iconTheme: iconTheme: IconThemeData(color: const Color(0xff333333), size: 36.sp),
IconThemeData(color: const Color(0xff333333), size: 36.sp),
titleTextStyle: TextStyle( titleTextStyle: TextStyle(
color: const Color(0xff333333), color: const Color(0xff333333),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
@ -95,8 +94,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
), ),
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
getPages: AppRouters.routePages, getPages: AppRouters.routePages,
initialRoute: '/' initialRoute: '/');
);
@override @override
void initState() { void initState() {
@ -119,15 +117,14 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
print("应用进入后台"); print("应用进入后台");
} }
} }
} }
// //
Future _initTranslation() async => TranslationLoader.loadTranslation( Future _initTranslation() async => TranslationLoader.loadTranslation(
zhSource: "images/lan/lan_zh.json", zhSource: "images/lan/lan_zh.json",
enSource: "images/lan/lan_en.json", enSource: "images/lan/lan_en.json",
keySource: "images/lan/lan_keys.json", keySource: "images/lan/lan_keys.json",
); );
// //
Future _setCommonServices() async { Future _setCommonServices() async {

View File

@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -30,10 +31,9 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
} }
Widget indexChangeWidget(){ Widget indexChangeWidget() {
switch (int.parse(widget.type)) { switch (int.parse(widget.type)) {
case 0: case 0:
{ {
@ -49,7 +49,7 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
); );
} }
default: default:
// //
return Column( return Column(
children: [ children: [
keyInfoWidget(), keyInfoWidget(),
@ -61,45 +61,68 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
} }
// widget // widget
Widget keyInfoWidget(){ Widget keyInfoWidget() {
return Column( return Column(
children: [ children: [
Container(height: 10.h), Container(height: 10.h),
CommonItem(leftTitel:TranslationLoader.lanKeys!.receiver!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(true, TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr)), CommonItem(
CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(false, TranslationLoader.lanKeys!.pleaseEnter!.tr)), leftTitel: TranslationLoader.lanKeys!.receiver!.tr,
rightTitle: "",
isHaveLine: true,
isHaveRightWidget: true,
rightWidget: getTFWidget(
true, TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr)),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.name!.tr,
rightTitle: "",
isHaveRightWidget: true,
rightWidget:
getTFWidget(false, TranslationLoader.lanKeys!.pleaseEnter!.tr)),
Container(height: 10.h), Container(height: 10.h),
], ],
); );
} }
// //
Widget keyTimeWidget(){ Widget keyTimeWidget() {
return Column( return Column(
children: [ children: [
CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ CommonItem(
// _showDatePicker(); leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
}), rightTitle: "2020.06.20 11:49",
CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ isHaveLine: true,
// _showDatePicker(); isHaveDirection: true,
}), action: () {
// _showDatePicker();
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
rightTitle: "2020.06.20 11:49",
isHaveDirection: true,
action: () {
// _showDatePicker();
}),
Container(height: 10.h), Container(height: 10.h),
], ],
); );
} }
// //
Widget keyRealNameWidget(){ Widget keyRealNameWidget() {
return Column( return Column(
children: [ children: [
CommonItem(leftTitel:TranslationLoader.lanKeys!.realNameAuthentication!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ CommonItem(
leftTitel: TranslationLoader.lanKeys!.realNameAuthentication!.tr,
}), rightTitle: "",
isHaveRightWidget: true,
rightWidget: Container(width: 80.w, height: 50.h, child: _switch()),
action: () {}),
Container(height: 10.h), Container(height: 10.h),
], ],
); );
} }
Widget keyBottomWidget(String tipStr){ Widget keyBottomWidget(String tipStr) {
return Column( return Column(
children: [ children: [
Container( Container(
@ -107,24 +130,37 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
child: Row( child: Row(
// crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded(child: Text(tipStr, textAlign: TextAlign.start,)), Expanded(
child: Text(
tipStr,
textAlign: TextAlign.start,
)),
], ],
), ),
), ),
SubmitBtn(btnName: TranslationLoader.lanKeys!.sender!.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), SubmitBtn(
onClick: (){ btnName: TranslationLoader.lanKeys!.sender!.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,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
TextButton(onPressed: (){ TextButton(
Navigator.pushNamed(context, Routers.volumeAuthorizationLockManagePage); onPressed: () {
}, child: Text(TranslationLoader.lanKeys!.volumeAuthorizationLock!.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),)), Navigator.pushNamed(
context, Routers.volumeAuthorizationLockManagePage);
},
child: Text(
TranslationLoader.lanKeys!.volumeAuthorizationLock!.tr,
style: TextStyle(
color: AppColors.mainColor,
fontWeight: FontWeight.w500),
)),
], ],
), ),
), ),
@ -133,7 +169,7 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
} }
// //
Widget sendElectronicKeySucceed(){ Widget sendElectronicKeySucceed() {
return Column( return Column(
children: [ children: [
Container( Container(
@ -142,37 +178,72 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
color: Colors.white, color: Colors.white,
child: Column( child: Column(
children: [ children: [
SizedBox(height: 30.h,), SizedBox(
Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), height: 30.h,
SizedBox(height: 20.h,), ),
Image.asset(
'images/main/icon_main_addLock.png',
width: 150.w,
height: 150.w,
color: AppColors.mainColor,
),
SizedBox(
height: 20.h,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text("发送成功",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), Text(
"发送成功",
style: TextStyle(
fontSize: 32.sp,
color: Colors.black,
fontWeight: FontWeight.w500),
),
], ],
), ),
], ],
), ),
), ),
SizedBox(height: 20.h,), SizedBox(
SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ height: 20.h,
),
}), SubmitBtn(
SubmitBtn(btnName: '邮件通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ btnName: '完成',
Navigator.pushNamed(context, Routers.sendEmailNotificationPage); fontSize: 28.sp,
}), borderRadius: 20.w,
SubmitBtn(btnName: '微信通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
}), onClick: () {}),
SubmitBtn(btnName: '标记为已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ SubmitBtn(
btnName: '邮件通知',
}), fontSize: 28.sp,
borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: () {
Navigator.pushNamed(context, Routers.sendEmailNotificationPage);
}),
SubmitBtn(
btnName: '微信通知',
fontSize: 28.sp,
borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: () {}),
SubmitBtn(
btnName: '标记为已入住',
fontSize: 28.sp,
borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: () {}),
], ],
); );
} }
// //
Widget getTFWidget(bool isHaveBtn, String tfStr){ Widget getTFWidget(bool isHaveBtn, String tfStr) {
return Container( return Container(
height: 50.h, height: 50.h,
width: 500.w, width: 500.w,
@ -184,7 +255,7 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
maxLines: 1, maxLines: 1,
// controller: _controller, // controller: _controller,
autofocus: false, autofocus: false,
textAlign:TextAlign.end, textAlign: TextAlign.end,
decoration: InputDecoration( decoration: InputDecoration(
// //
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
@ -194,34 +265,38 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
), ),
), ),
), ),
SizedBox(width: 10.w,), SizedBox(
isHaveBtn?Container( width: 10.w,
width: 50.w, ),
height: 50.w, isHaveBtn
decoration: const BoxDecoration( ? Container(
color: Colors.white, width: 50.w,
image: DecorationImage( height: 50.w,
image: AssetImage('images/icon_lock.png'), decoration: const BoxDecoration(
fit: BoxFit.fill color: Colors.white,
), image: DecorationImage(
), image: AssetImage('images/icon_lock.png'),
alignment: Alignment.center, fit: BoxFit.fill),
child: InkWell( ),
onTap: () async { alignment: Alignment.center,
Contact? contact = await _contactPicker.selectContact(); child: InkWell(
setState(() { onTap: () async {
_contact = contact!; Contact? contact = await _contactPicker.selectContact();
// print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); setState(() {
}); _contact = contact!;
}, // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}");
), });
):Container() },
),
)
: Container()
], ],
), ),
); );
} }
Switch _switch(){ CupertinoSwitch _switch() {
/*
return Switch( return Switch(
value: false, value: false,
onChanged: (value){ onChanged: (value){
@ -231,6 +306,18 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
}); });
} }
); );
*/
bool _isOn = false;
return CupertinoSwitch(
activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemGrey5,
thumbColor: CupertinoColors.white,
value: _isOn,
onChanged: (value) {
setState(() {
_isOn = value;
});
},
);
} }
} }

View File

@ -1,4 +1,3 @@
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';
@ -13,7 +12,8 @@ class AuthorizedAdminListPage extends StatefulWidget {
const AuthorizedAdminListPage({Key? key}) : super(key: key); const AuthorizedAdminListPage({Key? key}) : super(key: key);
@override @override
State<AuthorizedAdminListPage> createState() => _AuthorizedAdminListPageState(); State<AuthorizedAdminListPage> createState() =>
_AuthorizedAdminListPageState();
} }
class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> { class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
@ -21,13 +21,20 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
TextButton( barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
child: Text(TranslationLoader.lanKeys!.reset!.tr, style: const TextStyle(color: Colors.white),), haveBack: true,
onPressed: (){ backgroundColor: AppColors.mainColor,
actionsList: [
},), TextButton(
],), child: Text(
TranslationLoader.lanKeys!.reset!.tr,
style: const TextStyle(color: Colors.white),
),
onPressed: () {},
),
],
),
body: Column( body: Column(
children: [ children: [
_searchWidget(), _searchWidget(),
@ -35,24 +42,23 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.authorizedAdmin!.tr, btnName: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
borderRadius: 20.w, borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), margin: EdgeInsets.only(
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: (){ onClick: () {
Navigator.pushNamed(context, Routers.authorizedAdminManagePage); Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
} }),
),
], ],
), ),
); );
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 80.h, height: 60.h,
margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)),
child: TextField( child: TextField(
// //
maxLines: 1, maxLines: 1,
@ -67,40 +73,54 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
border: InputBorder.none, border: InputBorder.none,
// //
icon: Padding( icon: Padding(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), padding: EdgeInsets.only(
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
), ),
), ),
), ),
); );
} }
Widget _buildMainUI(){ Widget _buildMainUI() {
return ListView.builder( return ListView.builder(
itemCount:10, itemCount: 10,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
}); });
} });
);
} }
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 100.h, height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 30.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -108,23 +128,31 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
lockTypeTitle,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
SizedBox(height:5.h), SizedBox(height: 5.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15 永久",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),

View File

@ -19,87 +19,108 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.electronicKey!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.electronicKey!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
TextButton( TextButton(
child: Text(TranslationLoader.lanKeys!.reset!.tr, style: const TextStyle(color: Colors.white),), child: Text(
onPressed: (){ TranslationLoader.lanKeys!.reset!.tr,
style: const TextStyle(color: Colors.white),
},),
],),
body: Column(
children: [
_searchWidget(),
Expanded(child: _buildMainUI()),
SubmitBtn(
btnName: TranslationLoader.lanKeys!.sendKey!.tr,
borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: (){
Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage);
}
), ),
], onPressed: () {},
), ),
],
),
body: Column(
children: [
_searchWidget(),
Expanded(child: _buildMainUI()),
SubmitBtn(
btnName: TranslationLoader.lanKeys!.sendKey!.tr,
borderRadius: 20.w,
margin: EdgeInsets.only(
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: () {
Navigator.pushNamed(
context, Routers.sendElectronicKeyManagePage);
}),
],
),
); );
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 80.h, height: 60.h,
margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)), child: TextField(
child: TextField( //
// maxLines: 1,
maxLines: 1, // controller: _controller,
// controller: _controller, autofocus: false,
autofocus: false, decoration: InputDecoration(
decoration: InputDecoration( //
// contentPadding: const EdgeInsets.only(
contentPadding: const EdgeInsets.only( top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, //线
//线 border: InputBorder.none,
border: InputBorder.none, //
// icon: Padding(
icon: Padding( padding: EdgeInsets.only(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), child: Image.asset(
), 'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
), ),
), ),
); ),
} ),
Widget _buildMainUI(){
return ListView.builder(
itemCount:10,
itemBuilder: (c, index){
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
});
}
); );
} }
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ Widget _buildMainUI() {
return ListView.builder(
itemCount: 10,
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 100.h, height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 30.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -109,26 +130,38 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
SizedBox(width:20.w), lockTypeTitle,
Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
SizedBox(width: 20.w),
Text(
"待接收",
style: TextStyle(
fontSize: 24.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.w), SizedBox(width: 20.w),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15-2023.6.21 11.15",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),

View File

@ -1,4 +1,3 @@
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';
@ -12,7 +11,8 @@ class ImportOtherLockDataPage extends StatefulWidget {
const ImportOtherLockDataPage({Key? key}) : super(key: key); const ImportOtherLockDataPage({Key? key}) : super(key: key);
@override @override
State<ImportOtherLockDataPage> createState() => _ImportOtherLockDataPageState(); State<ImportOtherLockDataPage> createState() =>
_ImportOtherLockDataPageState();
} }
class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> { class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
@ -20,43 +20,48 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.importOtherLockData!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
body:Container( barTitle: TranslationLoader.lanKeys!.importOtherLockData!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Container(
padding: EdgeInsets.all(30.w), padding: EdgeInsets.all(30.w),
child: Column( child: Column(
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Expanded(child: Text(TranslationLoader.lanKeys!.importOtherLockDataTip!.tr)), Expanded(
child: Text(TranslationLoader
.lanKeys!.importOtherLockDataTip!.tr)),
], ],
), ),
SizedBox(height: 20.h,), SizedBox(
height: 20.h,
),
_searchWidget(), _searchWidget(),
SizedBox(height: 10.h,), SizedBox(
height: 10.h,
),
Expanded(child: _buildMainUI()), Expanded(child: _buildMainUI()),
SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr, SubmitBtn(
btnName: TranslationLoader.lanKeys!.sure!.tr,
borderRadius: 20.w, borderRadius: 20.w,
fontSize: 32.sp, fontSize: 32.sp,
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
padding: EdgeInsets.only(top: 20.w, bottom: 20.w), padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
onClick: () { onClick: () {}),
}
),
], ],
), ),
) ));
);
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 70.h, height: 60.h,
// margin: EdgeInsets.only(top:20.w), // margin: EdgeInsets.only(top:20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)),
child: TextField( child: TextField(
// //
maxLines: 1, maxLines: 1,
@ -71,40 +76,54 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
border: InputBorder.none, border: InputBorder.none,
// //
icon: Padding( icon: Padding(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), padding: EdgeInsets.only(
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
), ),
), ),
), ),
); );
} }
Widget _buildMainUI(){ Widget _buildMainUI() {
return ListView.builder( return ListView.builder(
itemCount:20, itemCount: 20,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage); // Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
}); });
} });
);
} }
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 100.h, height: 100.h,
margin: EdgeInsets.only(top: 15.h), margin: EdgeInsets.only(top: 15.h),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 30.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -114,30 +133,41 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
SizedBox(width:20.w), lockTypeTitle,
Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
SizedBox(width: 20.w),
Text(
"待接收",
style: TextStyle(
fontSize: 24.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.w), SizedBox(width: 20.w),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15-2023.6.21 11.15",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
); );
} }
} }

View File

@ -20,8 +20,11 @@ class _UnlockQRCodePageState extends State<UnlockQRCodePage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.burglarAlarm!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
body:Column( barTitle: TranslationLoader.lanKeys!.burglarAlarm!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column(
children: [ children: [
Container( Container(
padding: EdgeInsets.all(25.w), padding: EdgeInsets.all(25.w),
@ -30,11 +33,11 @@ class _UnlockQRCodePageState extends State<UnlockQRCodePage> {
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(10.h)), borderRadius: BorderRadius.all(Radius.circular(10.h)),
), ),
child: Text("拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边") child: Text(
), "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边")),
Container( Container(
width: 1.sw, width: 1.sw,
padding: EdgeInsets.only(top:50.w), padding: EdgeInsets.only(top: 50.w),
margin: EdgeInsets.only(left: 25.w, right: 25.w), margin: EdgeInsets.only(left: 25.w, right: 25.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,

View File

@ -1,4 +1,3 @@
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';
@ -19,103 +18,146 @@ class _LockDetailPageState extends State<LockDetailPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: Colors.white, backgroundColor: Colors.white,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.starLock!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
body: Column( barTitle: TranslationLoader.lanKeys!.starLock!.tr,
children: [ haveBack: true,
topWidget(), backgroundColor: AppColors.mainColor),
Expanded(child: bottomWidget()) body: Column(
], children: [topWidget(), Expanded(child: bottomWidget())],
), ),
); );
} }
Widget topWidget(){ Widget topWidget() {
return Column( return Column(
children: [ children: [
SizedBox(height:40.h), SizedBox(height: 40.h),
Stack( Stack(
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
children: [ children: [
Align( Align(
alignment:Alignment.center, alignment: Alignment.center,
child: Text("MCBN01-ea9240", style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),) child: Text(
), "MCBN01-ea9240",
Row( style:
mainAxisAlignment: MainAxisAlignment.end, TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),
children: [ )),
Text("100%", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), Row(
SizedBox(width:5.w), mainAxisAlignment: MainAxisAlignment.end,
Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,),
SizedBox(width:30.w),
],
),
],
),
SizedBox(height: 40.h),
Container(
width: 1.sw,
height: 280.w,
child: Stack(
children: [ children: [
Center(child: Image.asset('images/main/icon_main_openLockBtn.png', width: 280.w, height: 280.w)), Text(
Align( "100%",
alignment: const Alignment(0.5, 1), style:
child: Image.asset('images/main/icon_main_remoteUnlocking.png', width: 90.w, height: 90.w,) TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500),
), ),
SizedBox(width: 5.w),
Image.asset(
'images/main/icon_main_cell.png',
width: 50.w,
height: 50.w,
),
SizedBox(width: 30.w),
], ],
), ),
), ],
SizedBox(height: 40.h,), ),
Row( SizedBox(height: 40.h),
mainAxisAlignment: MainAxisAlignment.center, Container(
width: 1.sw,
height: 280.w,
child: Stack(
children: [ children: [
Text(TranslationLoader.lanKeys!.clickUnlockAndHoldDownClose!.tr, style: TextStyle(fontSize: 28.sp, color: const Color(0xFFB3B3B3), fontWeight: FontWeight.w500),), Center(
child: Image.asset('images/main/icon_main_openLockBtn.png',
width: 280.w, height: 280.w)),
Align(
alignment: const Alignment(0.5, 1),
child: Image.asset(
'images/main/icon_main_remoteUnlocking.png',
width: 90.w,
height: 90.w,
)),
], ],
), ),
SizedBox(height: 40.h,), ),
Container(height: 0.5.h, color: Colors.grey,) SizedBox(
], height: 40.h,
); ),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
TranslationLoader.lanKeys!.clickUnlockAndHoldDownClose!.tr,
style: TextStyle(
fontSize: 24.sp,
color: const Color(0xFFB3B3B3),
fontWeight: FontWeight.w500),
),
],
),
SizedBox(
height: 40.h,
),
Divider(
height: 1,
color: const Color(0xFFB3B3B3),
indent: 20.w,
endIndent: 20.w,
)
],
);
} }
Widget bottomWidget(){ Widget bottomWidget() {
return Container( return Container(
margin: EdgeInsets.only(left:10.w, right:10.w, top: 25.h), margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 25.h),
// color: Colors.blue, // color: Colors.blue,
child: SizedBox( child: SizedBox(
child:GridView.count( child: GridView.count(
crossAxisCount: 4, crossAxisCount: 4,
// childAspectRatio: 3, // childAspectRatio: 3,
crossAxisSpacing: 20.w, crossAxisSpacing: 20.w,
mainAxisSpacing: 10.h, mainAxisSpacing: 10.h,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
children: [ children: [
bottomItem('images/main/icon_main_clockingIn.png', TranslationLoader.lanKeys!.checkingIn!.tr, (){ bottomItem('images/main/icon_main_clockingIn.png',
TranslationLoader.lanKeys!.checkingIn!.tr, () {
Navigator.pushNamed(context, Routers.checkingInListPage); Navigator.pushNamed(context, Routers.checkingInListPage);
}), }),
bottomItem('images/main/icon_main_electronicKey.png', TranslationLoader.lanKeys!.electronicKey!.tr, (){ bottomItem('images/main/icon_main_electronicKey.png',
TranslationLoader.lanKeys!.electronicKey!.tr, () {
Navigator.pushNamed(context, Routers.electronicKeyListPage); Navigator.pushNamed(context, Routers.electronicKeyListPage);
}), }),
bottomItem('images/main/icon_main_password.png', TranslationLoader.lanKeys!.password!.tr, (){ bottomItem('images/main/icon_main_password.png',
TranslationLoader.lanKeys!.password!.tr, () {
Navigator.pushNamed(context, Routers.passwordKeyListPage); Navigator.pushNamed(context, Routers.passwordKeyListPage);
}), }),
bottomItem('images/main/icon_main_icCard.png', TranslationLoader.lanKeys!.card!.tr, (){ bottomItem('images/main/icon_main_icCard.png',
Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 0); TranslationLoader.lanKeys!.card!.tr, () {
Navigator.pushNamed(context, Routers.otherTypeKeyListPage,
arguments: 0);
}), }),
bottomItem('images/main/icon_main_fingerprint.png', TranslationLoader.lanKeys!.fingerprint!.tr, (){ bottomItem('images/main/icon_main_fingerprint.png',
Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 1); TranslationLoader.lanKeys!.fingerprint!.tr, () {
Navigator.pushNamed(context, Routers.otherTypeKeyListPage,
arguments: 1);
}), }),
bottomItem('images/main/icon_main_remoteControl.png', TranslationLoader.lanKeys!.remoteControl!.tr, (){ bottomItem('images/main/icon_main_remoteControl.png',
Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 2); TranslationLoader.lanKeys!.remoteControl!.tr, () {
Navigator.pushNamed(context, Routers.otherTypeKeyListPage,
arguments: 2);
}), }),
bottomItem('images/main/icon_main_authorizedAdmin.png', TranslationLoader.lanKeys!.authorizedAdmin!.tr, (){ bottomItem('images/main/icon_main_authorizedAdmin.png',
TranslationLoader.lanKeys!.authorizedAdmin!.tr, () {
Navigator.pushNamed(context, Routers.authorizedAdminListPage); Navigator.pushNamed(context, Routers.authorizedAdminListPage);
}), }),
bottomItem('images/main/icon_main_operatingRecord.png', TranslationLoader.lanKeys!.operatingRecord!.tr, (){ bottomItem('images/main/icon_main_operatingRecord.png',
TranslationLoader.lanKeys!.operatingRecord!.tr, () {
Navigator.pushNamed(context, Routers.lockOperatingRecordPage); Navigator.pushNamed(context, Routers.lockOperatingRecordPage);
}), }),
bottomItem('images/main/icon_main_set.png', TranslationLoader.lanKeys!.set!.tr, (){ bottomItem('images/main/icon_main_set.png',
TranslationLoader.lanKeys!.set!.tr, () {
Navigator.pushNamed(context, Routers.lockSetPage); Navigator.pushNamed(context, Routers.lockSetPage);
}), }),
], ],
@ -124,27 +166,31 @@ class _LockDetailPageState extends State<LockDetailPage> {
); );
} }
Widget bottomItem(String iconUrl,String name, Function() onClick){ Widget bottomItem(String iconUrl, String name, Function() onClick) {
var width = 65.w; var width = 65.w;
var height = 70.h; var height = 70.h;
return GestureDetector( return GestureDetector(
onTap:onClick, onTap: onClick,
child: Container( child: Container(
// height: 300.h, // height: 300.h,
color: Colors.white, color: Colors.white,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox( SizedBox(
width: width, width: width,
height: height, height: height,
child: Image.asset(iconUrl, width: width,height: height,fit: BoxFit.fitWidth), child: Image.asset(iconUrl,
width: width, height: height, fit: BoxFit.fitWidth),
), ),
SizedBox(height: 15.w), SizedBox(height: 15.w),
Expanded(child: Text(name,style: TextStyle(fontSize: 25.sp, color:const Color(0xff333333)),textAlign: TextAlign.center)) Expanded(
child: Text(name,
style: TextStyle(
fontSize: 25.sp, color: const Color(0xff333333)),
textAlign: TextAlign.center))
], ],
) )),
),
); );
} }
} }

View File

@ -1,4 +1,3 @@
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';
@ -12,7 +11,8 @@ class LockOperatingRecordPage extends StatefulWidget {
const LockOperatingRecordPage({Key? key}) : super(key: key); const LockOperatingRecordPage({Key? key}) : super(key: key);
@override @override
State<LockOperatingRecordPage> createState() => _LockOperatingRecordPageState(); State<LockOperatingRecordPage> createState() =>
_LockOperatingRecordPageState();
} }
class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> { class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
@ -20,29 +20,42 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.operatingRecord!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
TextButton( barTitle: TranslationLoader.lanKeys!.operatingRecord!.tr,
child: const Text("操作", style: TextStyle(color: Colors.white),), haveBack: true,
onPressed: (){ backgroundColor: AppColors.mainColor,
JhPopMenus.showLinePop(context, clickCallback: (index, selText) { actionsList: [
print('选中index: $index'); TextButton(
print('选中text: $selText'); child: const Text(
"操作",
style: TextStyle(color: Colors.white),
),
onPressed: () {
JhPopMenus.showLinePop(context, clickCallback: (index, selText) {
print('选中index: $index');
print('选中text: $selText');
if (selText == '添加朋友') { if (selText == '添加朋友') {
// JhNavUtils.pushNamed(context, 'WxAddFriendPage'); // JhNavUtils.pushNamed(context, 'WxAddFriendPage');
} }
if (selText == '扫一扫') { if (selText == '扫一扫') {
// _scan(); // _scan();
} }
}); });
},), },
],), ),
],
),
body: Column( body: Column(
children: [ children: [
Container( Container(
// crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
padding: EdgeInsets.all(20.h), padding: EdgeInsets.all(20.h),
child: Text(TranslationLoader.lanKeys!.lockOperatingRecordTip!.tr, textAlign: TextAlign.start,), child: Text(
TranslationLoader.lanKeys!.lockOperatingRecordTip!.tr,
textAlign: TextAlign.start,
style: TextStyle(fontSize: 24.sp),
),
), ),
_searchWidget(), _searchWidget(),
Expanded(child: _buildMainUI()), Expanded(child: _buildMainUI()),
@ -51,13 +64,12 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
); );
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 60.h, height: 60.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w), margin: EdgeInsets.only(left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)),
child: TextField( child: TextField(
// //
maxLines: 1, maxLines: 1,
@ -73,84 +85,109 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
border: InputBorder.none, border: InputBorder.none,
// //
icon: Padding( icon: Padding(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), padding: EdgeInsets.only(
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
), ),
), ),
), ),
); );
} }
Widget _buildMainUI(){ Widget _buildMainUI() {
return ListView.builder( return ListView.builder(
itemCount:20, itemCount: 20,
itemBuilder: (c, index){ itemBuilder: (c, index) {
if(index%2 == 0){ if (index % 2 == 0) {
return _dateItem("2023-06-29"); return _dateItem("2023-06-29");
}else{ } else {
return _operatingRecordItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ return _operatingRecordItem('images/controls_user.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage); // Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
}); });
} }
} });
);
} }
Widget _dateItem(String lockDate){ Widget _dateItem(String lockDate) {
return Container( return Container(
height: 70.h, height: 70.h,
// color: Colors.red, // color: Colors.red,
padding: EdgeInsets.only(left:20.h, right: 20.h), padding: EdgeInsets.only(left: 20.h, right: 20.h),
child: Row( child: Row(
children: [ children: [
Text(lockDate, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
lockDate,
style: TextStyle(fontSize: 28.sp),
),
], ],
), ),
); );
} }
Widget _operatingRecordItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ Widget _operatingRecordItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 110.h, height: 90.h,
padding: EdgeInsets.only(left: 20.w, right: 20.w), padding: EdgeInsets.only(left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 20.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Row( Row(
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
lockTypeTitle,
style: TextStyle(
fontSize: 28.sp, color: AppColors.blackColor),
),
], ],
), ),
SizedBox(height:10.h), SizedBox(height: 10.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15-2023.6.21 11.15",
style: TextStyle(
fontSize: 28.sp,
color: AppColors.darkGrayTextColor),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
); );
} }
} }

View File

@ -1,4 +1,3 @@
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';
@ -17,38 +16,46 @@ class OtherTypeKeyListPage extends StatefulWidget {
} }
class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> { class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var type = ModalRoute.of(context)?.settings.arguments as int; var type = ModalRoute.of(context)?.settings.arguments as int;
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: getAppBarTitle(type), haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
TextButton( barTitle: getAppBarTitle(type),
child: Text(TranslationLoader.lanKeys!.reset!.tr, style: const TextStyle(color: Colors.white),), haveBack: true,
onPressed: (){ backgroundColor: AppColors.mainColor,
actionsList: [
},), TextButton(
],), child: Text(
TranslationLoader.lanKeys!.reset!.tr,
style: const TextStyle(color: Colors.white),
),
onPressed: () {},
),
],
),
body: Column( body: Column(
children: [ children: [
_searchWidget(), _searchWidget(),
Expanded(child: _buildMainUI(type)), Expanded(child: _buildMainUI(type)),
SubmitBtn( SubmitBtn(
btnName: '${TranslationLoader.lanKeys!.getTip!.tr} ${getAppBarTitle(type)}', btnName:
'${TranslationLoader.lanKeys!.getTip!.tr} ${getAppBarTitle(type)}',
borderRadius: 20.w, borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), margin: EdgeInsets.only(
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: (){ onClick: () {
Navigator.pushNamed(context, Routers.otherTypeKeyManagePage, arguments: type); Navigator.pushNamed(context, Routers.otherTypeKeyManagePage,
} arguments: type);
), }),
], ],
), ),
); );
} }
String getAppBarTitle(int type){ String getAppBarTitle(int type) {
String title = ""; String title = "";
switch (type) { switch (type) {
case 0: case 0:
@ -66,13 +73,12 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
return title; return title;
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 80.h, height: 60.h,
margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)),
child: TextField( child: TextField(
// //
maxLines: 1, maxLines: 1,
@ -87,40 +93,55 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
border: InputBorder.none, border: InputBorder.none,
// //
icon: Padding( icon: Padding(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), padding: EdgeInsets.only(
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
), ),
), ),
), ),
); );
} }
Widget _buildMainUI(int type){ Widget _buildMainUI(int type) {
return ListView.builder( return ListView.builder(
itemCount:10, itemCount: 10,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ return _electronicKeyItem('images/icon_lock.png', "张三",
Navigator.pushNamed(context, Routers.otherTypeKeyDetailPage, arguments: type); "2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.otherTypeKeyDetailPage,
arguments: type);
}); });
} });
);
} }
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 100.h, height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 30.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -128,23 +149,31 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
lockTypeTitle,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
SizedBox(height:5.h), SizedBox(height: 5.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15 永久",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),

View File

@ -20,13 +20,20 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.password!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
TextButton( barTitle: TranslationLoader.lanKeys!.password!.tr,
child: Text(TranslationLoader.lanKeys!.reset!.tr, style: const TextStyle(color: Colors.white),), haveBack: true,
onPressed: (){ backgroundColor: AppColors.mainColor,
actionsList: [
},), TextButton(
],), child: Text(
TranslationLoader.lanKeys!.reset!.tr,
style: const TextStyle(color: Colors.white),
),
onPressed: () {},
),
],
),
body: Column( body: Column(
children: [ children: [
_searchWidget(), _searchWidget(),
@ -34,24 +41,23 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.getPassword!.tr, btnName: TranslationLoader.lanKeys!.getPassword!.tr,
borderRadius: 20.w, borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), margin: EdgeInsets.only(
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
padding: EdgeInsets.only(top: 25.w, bottom: 25.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: (){ onClick: () {
Navigator.pushNamed(context, Routers.passwordKeyManagePage); Navigator.pushNamed(context, Routers.passwordKeyManagePage);
} }),
),
], ],
), ),
); );
} }
Widget _searchWidget(){ Widget _searchWidget() {
return Container( return Container(
height: 80.h, height: 60.h,
margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white, borderRadius: BorderRadius.circular(5)),
borderRadius: BorderRadius.circular(5)),
child: TextField( child: TextField(
// //
maxLines: 1, maxLines: 1,
@ -66,40 +72,54 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
border: InputBorder.none, border: InputBorder.none,
// //
icon: Padding( icon: Padding(
padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), padding: EdgeInsets.only(
child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
), ),
), ),
), ),
); );
} }
Widget _buildMainUI(){ Widget _buildMainUI() {
return ListView.builder( return ListView.builder(
itemCount:10, itemCount: 10,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.passwordKeyDetailPage); Navigator.pushNamed(context, Routers.passwordKeyDetailPage);
}); });
} });
);
} }
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function()? action){ Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function()? action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
height: 100.h, height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 30.w,), SizedBox(
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), width: 30.w,
SizedBox(width: 30.w,), ),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -107,23 +127,31 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
lockTypeTitle,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
SizedBox(height:5.h), SizedBox(height: 5.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
"2023.6.21 11.15 永久",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),

View File

@ -16,54 +16,66 @@ class AddLockPage extends StatefulWidget {
State<AddLockPage> createState() => _AddLockPageState(); State<AddLockPage> createState() => _AddLockPageState();
} }
class _AddLockPageState extends State<AddLockPage> with BaseWidget{ class _AddLockPageState extends State<AddLockPage> with BaseWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: Colors.white,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.addLock!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.addLock!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column( body: Column(
// mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox(height: 100.h,), SizedBox(
height: 100.h,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text(TranslationLoader.lanKeys!.lightTouchScreen!.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),), Text(
TranslationLoader.lanKeys!.lightTouchScreen!.tr,
style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
SizedBox(height: 120.h,), SizedBox(
Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w,), height: 120.h,
SizedBox(height: 120.h,), ),
Image.asset(
'images/lockType/addLock_touchScreen.png',
width: 278.w,
height: 278.w,
),
SizedBox(
height: 120.h,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text(TranslationLoader.lanKeys!.lightTouchScreenTip!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),), Text(
TranslationLoader.lanKeys!.lightTouchScreenTip!.tr,
style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
SizedBox(height: 120.h,), SizedBox(
height: 120.h,
),
SubmitBtn( SubmitBtn(
btnName: TranslationLoader.lanKeys!.next!.tr, btnName: TranslationLoader.lanKeys!.next!.tr,
borderRadius: 20.w, borderRadius: 20.w,
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), onClick: () {
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
onClick: (){
Navigator.pushNamed(context, Routers.nearbyLockPage); Navigator.pushNamed(context, Routers.nearbyLockPage);
} }),
),
], ],
), ),
); );
} }
void onShow() {}
void onShow(){ void onHide() {}
}
void onHide(){
}
} }

View File

@ -15,12 +15,15 @@ class SeletLockTypePage extends StatefulWidget {
State<SeletLockTypePage> createState() => _SeletLockTypePageState(); State<SeletLockTypePage> createState() => _SeletLockTypePageState();
} }
class _SeletLockTypePageState extends State<SeletLockTypePage> with BaseWidget{ class _SeletLockTypePageState extends State<SeletLockTypePage> with BaseWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.addLock!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.addLock!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column( body: Column(
children: [ children: [
allLock(), allLock(),
@ -33,25 +36,33 @@ class _SeletLockTypePageState extends State<SeletLockTypePage> with BaseWidget{
crossAxisSpacing: 10, crossAxisSpacing: 10,
mainAxisSpacing: 10, mainAxisSpacing: 10,
children: [ children: [
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.doorLock!.tr, (){ lockTypeItem('images/lockType/lockType_doorLock.png',
TranslationLoader.lanKeys!.doorLock!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.padlock!.tr, (){ lockTypeItem('images/lockType/lockType_padlock.png',
TranslationLoader.lanKeys!.padlock!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.safeLock!.tr, (){ lockTypeItem('images/lockType/lockType_safeLock.png',
TranslationLoader.lanKeys!.safeLock!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.intelligentLockCore!.tr, (){ lockTypeItem(
'images/lockType/lockType_intelligentLockCore.png',
TranslationLoader.lanKeys!.intelligentLockCore!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.parkingLock!.tr, (){ lockTypeItem('images/lockType/lockType_parkingLock.png',
TranslationLoader.lanKeys!.parkingLock!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.bicycleLock!.tr, (){ lockTypeItem('images/lockType/lockType_bicycleLock.png',
TranslationLoader.lanKeys!.bicycleLock!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys!.longRangeControl!.tr, (){ lockTypeItem('images/lockType/lockType_remoteControl.png',
TranslationLoader.lanKeys!.longRangeControl!.tr, () {
Navigator.pushNamed(context, Routers.addLockPage); Navigator.pushNamed(context, Routers.addLockPage);
}), }),
], ],
@ -63,41 +74,51 @@ class _SeletLockTypePageState extends State<SeletLockTypePage> with BaseWidget{
); );
} }
Widget allLock() {
Widget allLock(){
return GestureDetector( return GestureDetector(
onTap: (){ onTap: () {},
},
child: Container( child: Container(
height: 150.h, height: 150.h,
color: Colors.white, color: Colors.white,
margin: const EdgeInsets.all(10), margin: const EdgeInsets.all(10),
child: Row( child: Row(
children: [ children: [
SizedBox(width:40.w), SizedBox(width: 40.w),
Image.asset('images/icon_lock.png', width: 80.w, height: 100.w,), Image.asset(
SizedBox(width:40.w), 'images/lockType/lockType_allLocks.png',
width: 88.w,
height: 80.w,
),
SizedBox(width: 40.w),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text(TranslationLoader.lanKeys!.allLock!.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500)), Text(TranslationLoader.lanKeys!.allLock!.tr,
Text(TranslationLoader.lanKeys!.searchAllLockType!.tr, style: TextStyle(fontSize: 26.sp, fontWeight: FontWeight.w500)), style: TextStyle(
fontSize: 30.sp, fontWeight: FontWeight.w500)),
Text(TranslationLoader.lanKeys!.searchAllLockType!.tr,
style: TextStyle(
fontSize: 26.sp, fontWeight: FontWeight.w500)),
], ],
), ),
), ),
SizedBox(width:40.w), SizedBox(width: 40.w),
Image.asset('images/icon_right.png', width: 60.w, height: 60.w,), Image.asset(
SizedBox(width:40.w), 'images/icon_right.png',
width: 60.w,
height: 60.w,
),
SizedBox(width: 40.w),
], ],
), ),
), ),
); );
} }
Widget lockTypeItem(String lockTypeIcon, String lockTypeTitle, Function() action){ Widget lockTypeItem(
String lockTypeIcon, String lockTypeTitle, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
@ -106,30 +127,38 @@ class _SeletLockTypePageState extends State<SeletLockTypePage> with BaseWidget{
// margin: EdgeInsets.all(10), // margin: EdgeInsets.all(10),
child: Row( child: Row(
children: [ children: [
SizedBox(width:20.w), SizedBox(width: 20.w),
Image.asset(lockTypeIcon, width: 40.w, height: 50.w,), Image.asset(
SizedBox(width:20.w), lockTypeIcon,
width: 40.w,
height: 57.w,
),
SizedBox(width: 20.w),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text(lockTypeTitle, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500)), Text(lockTypeTitle,
style: TextStyle(
fontSize: 30.sp, fontWeight: FontWeight.w500)),
], ],
), ),
), ),
SizedBox(width:20.w), SizedBox(width: 20.w),
Image.asset('images/icon_right.png', width: 60.w, height: 60.w,), Image.asset(
SizedBox(width:20.w), 'images/icon_right.png',
width: 60.w,
height: 60.w,
),
SizedBox(width: 20.w),
], ],
), ),
), ),
); );
} }
void onShow(){ void onShow() {}
}
void onHide(){ void onHide() {}
}
} }

View File

@ -19,42 +19,65 @@ class _GatewayListPageState extends State<GatewayListPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.gateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ appBar: TitleAppBar(
GestureDetector( barTitle: TranslationLoader.lanKeys!.gateway!.tr,
onTap: (){ haveBack: true,
Navigator.pushNamed(context, Routers.seletGatewayTypePage); backgroundColor: AppColors.mainColor,
}, actionsList: [
child: Image.asset('images/icon_add_white.png', width: 50.w, height: 50.w,) GestureDetector(
), onTap: () {
SizedBox(width: 30.w,), Navigator.pushNamed(context, Routers.seletGatewayTypePage);
],), },
child: Image.asset(
'images/icon_add_white.png',
width: 50.w,
height: 50.w,
)),
SizedBox(
width: 30.w,
),
],
),
body: ListView.builder( body: ListView.builder(
itemCount:10, itemCount: 10,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _gatewatListItem('images/mine/icon_mine_gatewayListMainIcon.png', "星锁网关", "在线", "2", (){ return _gatewatListItem(
'images/mine/icon_mine_gatewayListMainIcon.png',
"星锁网关",
"在线",
"2", () {
Navigator.pushNamed(context, Routers.gatewayDetailPage); Navigator.pushNamed(context, Routers.gatewayDetailPage);
}); });
} }),
),
); );
} }
Widget _gatewatListItem(String lockTypeIcon, String gateWayName, String isOnline, String lockNumber, Function() action){ Widget _gatewatListItem(String lockTypeIcon, String gateWayName,
String isOnline, String lockNumber, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
// height: 100.h, // height: 100.h,
margin: const EdgeInsets.only(bottom: 2), margin: const EdgeInsets.only(bottom: 2),
padding: EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), padding:
decoration: BoxDecoration( EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h),
decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 10.w,), SizedBox(
Image.asset(lockTypeIcon, width: 90.w, height: 90.w,), width: 10.w,
SizedBox(width: 20.w,), ),
Image.asset(
lockTypeIcon,
width: 60.w,
height: 60.w,
),
SizedBox(
width: 20.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -64,31 +87,56 @@ class _GatewayListPageState extends State<GatewayListPage> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
gateWayName,
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(height:5.h), SizedBox(height: 5.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Image.asset('images/mine/icon_mine_gatewayListOnline.png', width: 40.w, height: 40.w,), Image.asset(
SizedBox(width: 10.w,), 'images/mine/icon_mine_gatewayListOnline.png',
Text("在线", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), width: 40.w,
SizedBox(width: 80.w,), height: 40.w,
Image.asset('images/mine/icon_mine_gatewayListNumber.png', width: 40.w, height: 40.w,), ),
SizedBox(width: 10.w,), SizedBox(
Text("2", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), width: 10.w,
),
Text(
"在线",
style: TextStyle(
fontSize: 24.sp, fontWeight: FontWeight.w500),
),
SizedBox(
width: 80.w,
),
Image.asset(
'images/mine/icon_mine_gatewayListNumber.png',
width: 40.w,
height: 40.w,
),
SizedBox(
width: 10.w,
),
Text(
"2",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
), ),

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -20,34 +19,47 @@ class _MessageListPageState extends State<MessageListPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.message!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.message!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: ListView.builder( body: ListView.builder(
itemCount:10, itemCount: 10,
itemBuilder: (c, index){ itemBuilder: (c, index) {
return _seletGatewayListListItem('images/mine/icon_mine_gatewayListMainIcon.png', "您的钥匙已发送成功", "2023.6.21 11.15", (){ return _seletGatewayListListItem('images/icon_lockGroup_item.png',
"您的钥匙已发送成功", "2023.6.21 11.15", () {
// Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage); // Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage);
}); });
} }),
),
); );
} }
Widget _seletGatewayListListItem(String lockTypeIcon, String gateWayName, String networkSignal, Function() action){ Widget _seletGatewayListListItem(String lockTypeIcon, String gateWayName,
String networkSignal, Function() action) {
return GestureDetector( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
// height: 100.h, // height: 100.h,
margin: const EdgeInsets.only(bottom: 2), margin: const EdgeInsets.only(bottom: 2),
padding: EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), padding:
decoration: BoxDecoration( EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h),
decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: [ children: [
SizedBox(width: 10.w,), SizedBox(
Image.asset(lockTypeIcon, width: 80.w, height: 80.w,), width: 10.w,
SizedBox(width: 20.w,), ),
Image.asset(
lockTypeIcon,
width: 80.w,
height: 80.w,
),
SizedBox(
width: 20.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -57,22 +69,30 @@ class _MessageListPageState extends State<MessageListPage> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), Text(
gateWayName,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(height:5.h), SizedBox(height: 5.h),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
// Image.asset('images/mine/icon_mine_gatewaySignal_strong.png', width: 40.w, height: 40.w,), // Image.asset('images/mine/icon_mine_gatewaySignal_strong.png', width: 40.w, height: 40.w,),
// SizedBox(width: 10.w,), // SizedBox(width: 10.w,),
Text(networkSignal, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), Text(
networkSignal,
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
], ],
), ),
), ),
SizedBox(width:20.h), SizedBox(width: 20.h),
], ],
), ),
) )
@ -81,5 +101,4 @@ class _MessageListPageState extends State<MessageListPage> {
), ),
); );
} }
} }

View File

@ -0,0 +1,152 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class AuthorizedAdministratorListPage extends StatefulWidget {
const AuthorizedAdministratorListPage({Key? key}) : super(key: key);
@override
State<AuthorizedAdministratorListPage> createState() =>
_AuthorizedAdministratorListPageState();
}
class _AuthorizedAdministratorListPageState
extends State<AuthorizedAdministratorListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
IconButton(
icon: Image.asset('images/icon_add_white.png'),
onPressed: () {
//
Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
},
),
],
),
body: Column(
children: [
_searchWidget(),
Expanded(child: _buildMainUI()),
],
),
);
}
Widget _searchWidget() {
return Container(
height: 60.h,
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: TextField(
//
maxLines: 1,
// controller: _controller,
autofocus: false,
decoration: InputDecoration(
//
contentPadding: const EdgeInsets.only(
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
//线
border: InputBorder.none,
//
icon: Padding(
padding: EdgeInsets.only(
top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
),
),
),
);
}
Widget _buildMainUI() {
return ListView.builder(
itemCount: 10,
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector(
onTap: action,
child: Container(
height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10.w),
),
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
lockTypeTitle,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
],
),
SizedBox(height: 5.h),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
"2023.6.21 11.15 永久",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
],
),
),
SizedBox(width: 20.h),
],
),
),
SizedBox(width: 20.h),
],
),
),
);
}
}

View File

@ -0,0 +1,71 @@
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/commonItem.dart';
import '../../../../../tools/submitBtn.dart';
import '../../../../../tools/titleAppBar.dart';
import '../../../../../translations/trans_lib.dart';
class LockGroupListPage extends StatefulWidget {
const LockGroupListPage({Key? key}) : super(key: key);
@override
State<LockGroupListPage> createState() => _LockGroupListPageState();
}
class _LockGroupListPageState extends State<LockGroupListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.basicInformation!.tr,
haveBack: true,
actionsList: [
IconButton(
icon: Image.asset('images/icon_add_white.png'),
onPressed: () {
// -
},
),
],
backgroundColor: AppColors.mainColor),
body: Column(
children: [
Expanded(child: _buildMainUI()),
],
),
);
}
Widget _buildMainUI() {
return ListView.builder(
itemCount: 2,
itemBuilder: (c, index) {
if (index == 1) {
return Center(
child: SizedBox(
height: 40.h,
child: const Text(
'锁数量1',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 14),
),
),
);
} else {
return CommonItem(
leftTitel: "未分组1",
rightTitle: "",
allHeight: 70.h,
isHaveLine: true,
action: () {
Navigator.pushNamed(context, Routers.lockItemListPage);
});
}
});
}
}

View File

@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../../app_settings/app_colors.dart';
import '../../../../../tools/commonItem.dart';
import '../../../../../tools/titleAppBar.dart';
import '../../../../../translations/trans_lib.dart';
class LockItemListPage extends StatefulWidget {
const LockItemListPage({Key? key}) : super(key: key);
@override
State<LockItemListPage> createState() => _LockItemListPageState();
}
class _LockItemListPageState extends State<LockItemListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.basicInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: ListView.builder(
itemBuilder: (context, index) {
return _listItemView();
},
itemCount: 2,
),
);
}
Widget _listItemView() {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 20.w,
),
Image.asset(
'images/icon_lockGroup_item.png',
width: 30,
height: 30,
fit: BoxFit.fill,
),
SizedBox(
width: 8.w,
),
const Text(
'Daisy',
style: TextStyle(fontSize: 14),
)
],
),
),
onTap: () {},
);
}
}

View File

@ -0,0 +1,171 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class LockUserManageListListPage extends StatefulWidget {
const LockUserManageListListPage({Key? key}) : super(key: key);
@override
State<LockUserManageListListPage> createState() =>
_LockUserManageListListPageState();
}
class _LockUserManageListListPageState
extends State<LockUserManageListListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.lockUserManagement!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
TextButton(
child: Text(
TranslationLoader.lanKeys!.aboutToExpire!.tr,
style: const TextStyle(color: Colors.white),
),
onPressed: () {},
),
],
),
body: Column(
children: [
_searchWidget(),
Expanded(child: _buildMainUI()),
SizedBox(
width: ScreenUtil().screenWidth - 40.w,
height: 80.h,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.white,
),
onPressed: () {},
child: Text(
'群发钥匙',
style: TextStyle(
color: AppColors.mainColor,
fontSize: 28.sp,
fontWeight: FontWeight.w600),
)),
),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _searchWidget() {
return Container(
height: 60.h,
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: TextField(
//
maxLines: 1,
// controller: _controller,
autofocus: false,
decoration: InputDecoration(
//
contentPadding: const EdgeInsets.only(
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
//线
border: InputBorder.none,
//
icon: Padding(
padding: EdgeInsets.only(
top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
),
),
),
);
}
Widget _buildMainUI() {
return ListView.builder(
itemCount: 10,
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector(
onTap: action,
child: Container(
height: 100.h,
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10.w),
),
child: Row(
children: [
SizedBox(
width: 30.w,
),
Image.asset(
lockTypeIcon,
width: 50.w,
height: 50.w,
),
SizedBox(
width: 30.w,
),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
lockTypeTitle,
style: TextStyle(
fontSize: 32.sp, fontWeight: FontWeight.w500),
),
],
),
SizedBox(height: 5.h),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
"2023.6.21 11.15 永久",
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
),
],
),
),
SizedBox(width: 20.h),
],
),
),
SizedBox(width: 20.h),
],
),
),
);
}
}

View File

@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -17,52 +18,136 @@ class MineSetPage extends StatefulWidget {
} }
class _MineSetPageState extends State<MineSetPage> { class _MineSetPageState extends State<MineSetPage> {
bool _isOn = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.moreSet!.tr, haveBack:true, backgroundColor: AppColors.mainColor), appBar: TitleAppBar(
body:Column( barTitle: TranslationLoader.lanKeys!.moreSet!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column(
children: [ children: [
Expanded( Expanded(
child: ListView( child: ListView(
children: [ children: [
CommonItem(leftTitel:TranslationLoader.lanKeys!.prompTone!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), CommonItem(
CommonItem(leftTitel:TranslationLoader.lanKeys!.touchUnlock!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), leftTitel: TranslationLoader.lanKeys!.prompTone!.tr,
CommonItem(leftTitel:TranslationLoader.lanKeys!.pushNotification!.tr, rightTitle:"", isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), rightTitle: "",
SizedBox(height: 10.h,), isHaveLine: true,
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockUserManagement!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ isHaveRightWidget: true,
rightWidget: SizedBox(
}), width: 80.w, height: 50.h, child: _switch())),
CommonItem(leftTitel:TranslationLoader.lanKeys!.authorizedAdmin!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ CommonItem(
leftTitel: TranslationLoader.lanKeys!.touchUnlock!.tr,
}), rightTitle: "",
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockGroup!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ isHaveLine: true,
isHaveRightWidget: true,
}), rightWidget: SizedBox(
CommonItem(leftTitel:TranslationLoader.lanKeys!.transferSmartLock!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ width: 80.w, height: 50.h, child: _switch())),
CommonItem(
}), leftTitel:
CommonItem(leftTitel:TranslationLoader.lanKeys!.transferGateway!.tr, rightTitle:"", isHaveDirection: true, action: (){ TranslationLoader.lanKeys!.pushNotification!.tr,
rightTitle: "",
}), isHaveRightWidget: true,
SizedBox(height: 10.h,), rightWidget: SizedBox(
CommonItem(leftTitel:TranslationLoader.lanKeys!.multiLanguage!.tr, rightTitle:"简体中文", isHaveLine: true, isHaveDirection: true, action: (){ width: 80.w, height: 50.h, child: _switch())),
Navigator.pushNamed(context, Routers.mineMultiLanguagePage); SizedBox(
}), height: 10.h,
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockScreen!.tr, rightTitle:TranslationLoader.lanKeys!.opened!.tr, isHaveLine: true, isHaveDirection: true, action: (){ ),
Navigator.pushNamed(context, Routers.lockScreenPage); CommonItem(
}), leftTitel:
CommonItem(leftTitel:TranslationLoader.lanKeys!.hideInvalidUnlockPermissions!.tr, rightTitle:TranslationLoader.lanKeys!.closed!.tr, isHaveLine: true, isHaveDirection: true, action: (){ TranslationLoader.lanKeys!.lockUserManagement!.tr,
Navigator.pushNamed(context, Routers.hideInvalidUnlockPermissionsPage); rightTitle: "",
}), isHaveLine: true,
CommonItem(leftTitel:TranslationLoader.lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLock!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ isHaveDirection: true,
Navigator.pushNamed(context, Routers.aPPUnlockNeedMobileNetworkingLockPage); action: () {
}), Navigator.pushNamed(
context, Routers.lockUserManageLisPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.authorizedAdministratorListPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(context, Routers.lockGroupListPage);
}),
CommonItem(
leftTitel:
TranslationLoader.lanKeys!.transferSmartLock!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.transferSmartLockPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr,
rightTitle: "",
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.selectGetewayListPage);
}),
SizedBox(
height: 10.h,
),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.multiLanguage!.tr,
rightTitle: "简体中文",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.mineMultiLanguagePage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.lockScreen!.tr,
rightTitle: TranslationLoader.lanKeys!.opened!.tr,
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(context, Routers.lockScreenPage);
}),
CommonItem(
leftTitel: TranslationLoader
.lanKeys!.hideInvalidUnlockPermissions!.tr,
rightTitle: TranslationLoader.lanKeys!.closed!.tr,
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(
context, Routers.hideInvalidUnlockPermissionsPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!
.appUnlockRequiresMobilePhoneAccessToTheLock!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {
Navigator.pushNamed(context,
Routers.aPPUnlockNeedMobileNetworkingLockPage);
}),
// CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){ // CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){
// //
// }), // }),
SizedBox(height: 10.h,), SizedBox(
height: 10.h,
),
// CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ // CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){
// //
// }), // }),
@ -87,8 +172,7 @@ class _MineSetPageState extends State<MineSetPage> {
), ),
// keyBottomWidget() // keyBottomWidget()
], ],
) ));
);
} }
// Widget keyBottomWidget() { // Widget keyBottomWidget() {
@ -123,15 +207,17 @@ class _MineSetPageState extends State<MineSetPage> {
// ); // );
// } // }
Switch _switch(){ CupertinoSwitch _switch() {
return Switch( return CupertinoSwitch(
value: false, activeColor: CupertinoColors.activeBlue,
onChanged: (value){ trackColor: CupertinoColors.systemGrey5,
// switchValue = !switchValue; thumbColor: CupertinoColors.white,
setState(() { value: _isOn,
onChanged: (value) {
}); setState(() {
} _isOn = value;
});
},
); );
} }
} }

View File

@ -0,0 +1,132 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class SelectGetewayListPage extends StatefulWidget {
const SelectGetewayListPage({Key? key}) : super(key: key);
@override
State<SelectGetewayListPage> createState() => _SelectGetewayListPageState();
}
class _SelectGetewayListPageState extends State<SelectGetewayListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.selectGateway!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
TextButton(
onPressed: () {},
child: Text(
'全选',
style: TextStyle(color: Colors.white, fontSize: 28.sp),
))
],
),
body: Column(
children: [
SizedBox(
height: 10.h,
),
Expanded(child: _buildMainUI()),
SizedBox(
height: 20.h,
),
_buildNextBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 10,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 20.w,
),
GestureDetector(
child: Image.asset(
'images/icon_round_unSelet.png',
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Image.asset(
'images/getewayType_G2.png',
width: 60.w,
height: 60.w,
fit: BoxFit.fill,
),
SizedBox(
width: 16.w,
),
Text(
'星锁网关',
style: TextStyle(fontSize: 28.sp),
)
],
),
),
onTap: () {},
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: Colors.grey,
width: ScreenUtil().screenWidth,
height: 64.h,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, Routers.recipientInformationPage);
},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
}

View File

@ -0,0 +1,198 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class RecipientInformationPage extends StatefulWidget {
const RecipientInformationPage({Key? key}) : super(key: key);
@override
State<RecipientInformationPage> createState() =>
_RecipientInformationPageState();
}
class _RecipientInformationPageState extends State<RecipientInformationPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
children: [
SizedBox(height: 150.h, child: _buildMainUI()),
SizedBox(
height: 20.h,
),
_buildAccoutRow(),
_buildBottomText(),
_buildNextBtn(),
Expanded(
child: SizedBox(
height: 64.h,
)),
_buildRemoveBadLockBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 2,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
if (index == 0) {
return _electronicKeyItem(
'images/select_circle.png', "个人用户", () {});
} else {
return _electronicKeyItem(
'images/normal_circle.png', "好房管家", () {});
}
});
}
Widget _electronicKeyItem(
String leftIcon, String leftTitle, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 40.w,
),
GestureDetector(
child: Image.asset(
leftIcon,
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Text(
leftTitle,
style: TextStyle(fontSize: 28.sp),
)
],
),
),
onTap: () {},
);
}
Widget _buildAccoutRow() {
return Container(
height: 60.h,
color: Colors.white,
child: Row(
children: [
SizedBox(
width: 40.w,
),
Text(
'账号',
style:
TextStyle(color: AppColors.darkGrayTextColor, fontSize: 24.sp),
),
Expanded(
child: TextField(
textAlign: TextAlign.right,
keyboardType: TextInputType.text,
onChanged: (value) {},
decoration: InputDecoration(
border: InputBorder.none,
hintText: '请输入手机号或email',
hintStyle: TextStyle(
color: AppColors.placeholderTextColor,
fontSize: ScreenUtil().setSp(24),
textBaseline: TextBaseline.alphabetic),
),
)),
SizedBox(
width: 20.w,
),
Image.asset(
'images/icon_addressBook.png',
width: 28.w,
height: 28.h,
),
SizedBox(
width: 40.w,
)
],
),
);
}
Widget _buildBottomText() {
return Padding(
padding: EdgeInsets.only(top: 20.h, bottom: 80.h),
child: Text(
'选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权',
style:
TextStyle(fontSize: 20.sp, color: AppColors.placeholderTextColor),
textAlign: TextAlign.left,
),
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: Colors.grey,
width: ScreenUtil().screenWidth - 80.w,
height: 64.h,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, Routers.selectBranchPage);
},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
Widget _buildRemoveBadLockBtn() {
return Row(
children: [
const Expanded(child: SizedBox()),
TextButton(
onPressed: () {},
child: Text(
'移除坏锁',
style: TextStyle(
fontSize: 28.sp, color: AppColors.darkGrayTextColor),
textAlign: TextAlign.end,
)),
SizedBox(
width: 10.h,
)
],
);
}
}

View File

@ -0,0 +1,134 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class SelectBranchPage extends StatefulWidget {
const SelectBranchPage({Key? key}) : super(key: key);
@override
State<SelectBranchPage> createState() => _SelectBranchPageState();
}
class _SelectBranchPageState extends State<SelectBranchPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
children: [
_buildTopView(),
SizedBox(
height: 20.h,
),
Expanded(child: _buildMainUI()),
_buildNextBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _buildTopView() {
return Container(
height: 120.h,
width: ScreenUtil().screenWidth,
color: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 40.w, top: 20.h, bottom: 16.h),
child: Text(
'公寓',
style: TextStyle(fontSize: 28.sp),
),
),
Padding(
padding: EdgeInsets.only(left: 40.w),
child: Text('管理员18682150237',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 24.sp)),
)
],
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 5,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
return _electronicKeyItem('images/select_circle.png', "分组一", () {});
});
}
Widget _electronicKeyItem(
String leftIcon, String leftTitle, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 40.w,
),
GestureDetector(
child: Image.asset(
leftIcon,
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Text(
leftTitle,
style: TextStyle(fontSize: 28.sp),
)
],
),
),
onTap: () {},
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: AppColors.mainColor,
width: ScreenUtil().screenWidth,
height: 64.h,
child: TextButton(
onPressed: () {},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
}

View File

@ -0,0 +1,166 @@
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/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class TransferSmartLockPage extends StatefulWidget {
const TransferSmartLockPage({Key? key}) : super(key: key);
@override
State<TransferSmartLockPage> createState() => _TransferSmartLockPageState();
}
class _TransferSmartLockPageState extends State<TransferSmartLockPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.selectiveLock!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
TextButton(
onPressed: () {},
child: Text(
'全选',
style: TextStyle(color: Colors.white, fontSize: 28.sp),
))
],
),
body: Column(
children: [
_searchWidget(),
SizedBox(
height: 10.h,
),
Expanded(child: _buildMainUI()),
SizedBox(
height: 20.h,
),
_buildNextBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _searchWidget() {
return Container(
height: 60.h,
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: TextField(
//
maxLines: 1,
// controller: _controller,
autofocus: false,
decoration: InputDecoration(
//
contentPadding: const EdgeInsets.only(
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
//线
border: InputBorder.none,
//
icon: Padding(
padding: EdgeInsets.only(
top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
),
),
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 10,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 20.w,
),
GestureDetector(
child: Image.asset(
'images/icon_round_unSelet.png',
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Image.asset(
'images/icon_lockGroup_item.png',
width: 30,
height: 30,
fit: BoxFit.fill,
),
SizedBox(
width: 8.w,
),
const Text(
'Daisy',
style: TextStyle(fontSize: 14),
)
],
),
),
onTap: () {},
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: Colors.grey,
width: ScreenUtil().screenWidth,
height: 64.h,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, Routers.recipientInformationPage);
},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
}

View File

@ -1,6 +1,6 @@
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:star_lock/app_settings/app_colors.dart';
class CommonItem extends StatelessWidget { class CommonItem extends StatelessWidget {
String? leftTitel; String? leftTitel;
@ -12,14 +12,17 @@ class CommonItem extends StatelessWidget {
Function()? action; Function()? action;
double? allHeight; double? allHeight;
CommonItem({Key? key, CommonItem(
required this.leftTitel, {Key? key,
this.rightTitle, required this.leftTitel,
this.allHeight = 45, this.rightTitle,
this.isHaveDirection = false, this.allHeight = 45,
this.isHaveLine = false, this.isHaveDirection = false,
this.isHaveRightWidget = false, this.isHaveLine = false,
this.rightWidget, this.action}) : super(key: key); this.isHaveRightWidget = false,
this.rightWidget,
this.action})
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -29,27 +32,53 @@ class CommonItem extends StatelessWidget {
// mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Container( Container(
height: allHeight??70.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),
Expanded(child: Text(leftTitel!, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))), Expanded(
SizedBox(width:20.w), child: Text(leftTitel!,
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500))),
SizedBox(width: 20.w),
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
isHaveRightWidget!?rightWidget!:Text(rightTitle!, textAlign: TextAlign.end, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) isHaveRightWidget!
? rightWidget!
: Text(
rightTitle!,
textAlign: TextAlign.end,
style: TextStyle(
fontSize: 28.sp, fontWeight: FontWeight.w500),
)
], ],
), ),
SizedBox(width:5.w), SizedBox(width: 5.w),
isHaveDirection!?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), isHaveDirection!
? Image.asset(
'images/icon_right.png',
width: 50.w,
height: 50.w,
)
: SizedBox(width: 10.w),
// SizedBox(width:10.w), // SizedBox(width:10.w),
], ],
), ),
), ),
isHaveLine!?Container(height: 0.5.h, color: Colors.grey,):Container() // isHaveLine!?Container(height: 0.5.h, color: Colors.grey,):Container()
//by DaisyWu
isHaveLine!
? Divider(
color: AppColors.greyLineColor,
indent: 20.w,
endIndent: 20.w,
height: 1,
)
: Container()
], ],
), ),
); );

View File

@ -4,13 +4,11 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import '../app_settings/app_colors.dart'; import '../app_settings/app_colors.dart';
/* /*
* *
* */ * */
class SubmitBtn extends StatelessWidget { class SubmitBtn extends StatelessWidget {
String? btnName; String? btnName;
Function()? onClick; Function()? onClick;
@ -29,10 +27,39 @@ class SubmitBtn extends StatelessWidget {
double? borderRadius; double? borderRadius;
SubmitBtn({Key? key, required this.btnName,this.borderRadius,this.color,this.padding,this.onClick,this.margin,this.width,this.backgroundColorList,this.fontSize}) : super(key: key); SubmitBtn(
{Key? key,
required this.btnName,
this.borderRadius,
this.color,
this.padding,
this.onClick,
this.margin,
this.width,
this.backgroundColorList,
this.fontSize})
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SizedBox(
width: ScreenUtil().screenWidth - 40.w,
height: 44,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.mainColor,
),
onPressed: () {
if (onClick != null) {
onClick!();
}
},
child: Text(
btnName!,
style: TextStyle(color: Colors.white, fontSize: 30.sp),
)),
);
/*
return GestureDetector( return GestureDetector(
child: Container( child: Container(
width: width??690.w, width: width??690.w,
@ -41,31 +68,33 @@ class SubmitBtn extends StatelessWidget {
bottom: 20.w bottom: 20.w
), ),
margin: margin??EdgeInsets.only(top: 30.w), margin: margin??EdgeInsets.only(top: 30.w),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(borderRadius??30.w), borderRadius: BorderRadius.circular(borderRadius ?? 10.w),
gradient: LinearGradient( gradient: LinearGradient(
begin: Alignment.centerLeft, begin: Alignment.centerLeft,
end: Alignment.centerRight, end: Alignment.centerRight,
colors: backgroundColorList??[ colors: backgroundColorList ??
AppColors.mainColor,AppColors.mainColor, [
], AppColors.mainColor,
) AppColors.mainColor,
), ],
)),
child: Center( child: Center(
child: Text(btnName!,style: TextStyle( child: Text(btnName!,
fontSize: fontSize??36.sp, style: TextStyle(
height: 1.3, fontSize: fontSize ?? 30.sp,
decoration: TextDecoration.none, height: 1.3,
fontWeight: FontWeight.w500, decoration: TextDecoration.none,
color: color??Colors.white fontWeight: FontWeight.w500,
)), color: color ?? Colors.white)),
), ),
), ),
onTap: (){ onTap: () {
if(onClick!=null){ if (onClick != null) {
onClick!(); onClick!();
} }
}, },
); );
*/
} }
} }

View File

@ -12,7 +12,6 @@ class LanKeyEntity {
this.number, this.number,
this.additive, this.additive,
this.addTime, this.addTime,
this.reset, this.reset,
this.sendKey, this.sendKey,
this.timeLimit, this.timeLimit,
@ -41,7 +40,6 @@ class LanKeyEntity {
this.fridayShort, this.fridayShort,
this.saturdayShort, this.saturdayShort,
this.sundayShort, this.sundayShort,
this.realNameAuthentication, this.realNameAuthentication,
this.sendKeyBottomTip, this.sendKeyBottomTip,
this.send, this.send,
@ -85,7 +83,6 @@ class LanKeyEntity {
this.earlyArrivalList, this.earlyArrivalList,
this.lateList, this.lateList,
this.hardWorkingList, this.hardWorkingList,
this.basicInformation, this.basicInformation,
this.wirelessKeyboard, this.wirelessKeyboard,
this.doorMagnetic, this.doorMagnetic,
@ -184,7 +181,6 @@ class LanKeyEntity {
this.beLate, this.beLate,
this.leaveEarly, this.leaveEarly,
this.noCardPunched, this.noCardPunched,
this.lanEnglish, this.lanEnglish,
this.lanChinese, this.lanChinese,
this.multilingual, this.multilingual,
@ -194,7 +190,6 @@ class LanKeyEntity {
this.supportStaff, this.supportStaff,
this.set, this.set,
this.moreServices, this.moreServices,
this.moreSet, this.moreSet,
this.prompTone, this.prompTone,
this.touchUnlock, this.touchUnlock,
@ -203,8 +198,9 @@ class LanKeyEntity {
this.authorizedAdmin, this.authorizedAdmin,
this.lockGroup, this.lockGroup,
this.transferSmartLock, this.transferSmartLock,
this.selectiveLock,
this.recipientInformation,
this.transferGateway, this.transferGateway,
this.multiLanguage, this.multiLanguage,
this.lockScreen, this.lockScreen,
this.closed, this.closed,
@ -238,7 +234,7 @@ class LanKeyEntity {
this.problemTwo, this.problemTwo,
this.problemThree, this.problemThree,
this.pleaseEnterYourAnswer, this.pleaseEnterYourAnswer,
this.aboutToExpire,
this.designation, this.designation,
this.state, this.state,
this.wifiName, this.wifiName,
@ -268,7 +264,6 @@ class LanKeyEntity {
this.preferredDNS, this.preferredDNS,
this.alternativeDNS, this.alternativeDNS,
this.noStaticIPIsUsed, this.noStaticIPIsUsed,
this.allLock, this.allLock,
this.searchAllLockType, this.searchAllLockType,
this.doorLock, this.doorLock,
@ -284,7 +279,6 @@ class LanKeyEntity {
this.nearbyLock, this.nearbyLock,
this.addSuccessfullyPleaseRename, this.addSuccessfullyPleaseRename,
this.whenAddingLockThePhoneMustBeNextToTheLock, this.whenAddingLockThePhoneMustBeNextToTheLock,
this.login, this.login,
this.register, this.register,
this.forgetPassword, this.forgetPassword,
@ -295,20 +289,17 @@ class LanKeyEntity {
this.email, this.email,
this.countryAndRegion, this.countryAndRegion,
this.selet, this.selet,
this.businessCooperation, this.businessCooperation,
this.officialWebsite, this.officialWebsite,
this.computerWebVersion, this.computerWebVersion,
this.hotelSystem, this.hotelSystem,
this.manualWebVersion, this.manualWebVersion,
this.introduce, this.introduce,
this.note, this.note,
this.mail, this.mail,
this.advancedFunction, this.advancedFunction,
this.pushMessage, this.pushMessage,
this.recordsRetention, this.recordsRetention,
this.smsBuyTip, this.smsBuyTip,
this.emailBuyTip, this.emailBuyTip,
this.currentRemainingQuantity, this.currentRemainingQuantity,
@ -316,14 +307,12 @@ class LanKeyEntity {
this.customSMSTemplate, this.customSMSTemplate,
this.customMailTemplate, this.customMailTemplate,
this.record, this.record,
this.buyRealNameTip, this.buyRealNameTip,
this.buyRealNameSeletYouWantBuyTip, this.buyRealNameSeletYouWantBuyTip,
this.forTheFirstTime, this.forTheFirstTime,
this.onceDay, this.onceDay,
this.weekOnce, this.weekOnce,
this.monthOnce, this.monthOnce,
this.currentState, this.currentState,
this.onTrial, this.onTrial,
this.haveNotOpened, this.haveNotOpened,
@ -335,7 +324,6 @@ class LanKeyEntity {
this.tipsForBuyingAdvancedFeatures, this.tipsForBuyingAdvancedFeatures,
this.freeTrial, this.freeTrial,
this.openNow, this.openNow,
this.buySMS, this.buySMS,
this.buyMail, this.buyMail,
this.buyRealNameAuthenticationTimes, this.buyRealNameAuthenticationTimes,
@ -344,7 +332,6 @@ class LanKeyEntity {
this.modeOfPayment, this.modeOfPayment,
this.alipay, this.alipay,
this.goToPay, this.goToPay,
this.customTemplatesTip, this.customTemplatesTip,
this.haveOpened, this.haveOpened,
this.unHaveOpenedTip1, this.unHaveOpenedTip1,
@ -367,12 +354,10 @@ class LanKeyEntity {
this.and, this.and,
this.willBeReplacedWithTheActualValue, this.willBeReplacedWithTheActualValue,
this.downloadLink, this.downloadLink,
this.lockScreenTip, this.lockScreenTip,
this.hideInvalidUnlockPermissionsTip, this.hideInvalidUnlockPermissionsTip,
this.appUnlockRequiresMobilePhoneAccessToTheLockTip, this.appUnlockRequiresMobilePhoneAccessToTheLockTip,
this.checkAll, this.checkAll,
}); });
LanKeyEntity.fromJson(dynamic json) { LanKeyEntity.fromJson(dynamic json) {
@ -520,8 +505,10 @@ class LanKeyEntity {
whenScreenFlashesClickNext = json['whenScreenFlashesClickNext']; whenScreenFlashesClickNext = json['whenScreenFlashesClickNext'];
theScreenNeverFlickered = json['theScreenNeverFlickered']; theScreenNeverFlickered = json['theScreenNeverFlickered'];
enterNumberOrPressSet = json['enterNumberOrPressSet']; enterNumberOrPressSet = json['enterNumberOrPressSet'];
theLocationOfTheSetKeyWillBeDifferent = json['theLocationOfTheSetKeyWillBeDifferent']; theLocationOfTheSetKeyWillBeDifferent =
pressAndHoldTheResetButtonTwoSeconds = json['pressAndHoldTheResetButtonTwoSeconds']; json['theLocationOfTheSetKeyWillBeDifferent'];
pressAndHoldTheResetButtonTwoSeconds =
json['pressAndHoldTheResetButtonTwoSeconds'];
nearbyEquipment = json['nearbyEquipment']; nearbyEquipment = json['nearbyEquipment'];
noData = json['noData']; noData = json['noData'];
doorMagneticListTopTip = json['doorMagneticListTopTip']; doorMagneticListTopTip = json['doorMagneticListTopTip'];
@ -579,6 +566,8 @@ class LanKeyEntity {
authorizedAdmin = json['authorizedAdmin']; authorizedAdmin = json['authorizedAdmin'];
lockGroup = json['lockGroup']; lockGroup = json['lockGroup'];
transferSmartLock = json['transferSmartLock']; transferSmartLock = json['transferSmartLock'];
selectiveLock = json['selectiveLock'];
recipientInformation = json['recipientInformation'];
transferGateway = json['transferGateway']; transferGateway = json['transferGateway'];
multiLanguage = json['multiLanguage']; multiLanguage = json['multiLanguage'];
@ -586,12 +575,14 @@ class LanKeyEntity {
closed = json['closed']; closed = json['closed'];
opened = json['opened']; opened = json['opened'];
hideInvalidUnlockPermissions = json['hideInvalidUnlockPermissions']; hideInvalidUnlockPermissions = json['hideInvalidUnlockPermissions'];
appUnlockRequiresMobilePhoneAccessToTheLock = json['appUnlockRequiresMobilePhoneAccessToTheLock']; appUnlockRequiresMobilePhoneAccessToTheLock =
json['appUnlockRequiresMobilePhoneAccessToTheLock'];
valueAddedServices = json['valueAddedServices']; valueAddedServices = json['valueAddedServices'];
about = json['about']; about = json['about'];
userAgreement = json['userAgreement']; userAgreement = json['userAgreement'];
privacyPolicy = json['privacyPolicy']; privacyPolicy = json['privacyPolicy'];
personalInformationCollectionList = json['personalInformationCollectionList']; personalInformationCollectionList =
json['personalInformationCollectionList'];
applicationPermissionDescription = json['applicationPermissionDescription']; applicationPermissionDescription = json['applicationPermissionDescription'];
thirdPartyInformationSharingList = json['thirdPartyInformationSharingList']; thirdPartyInformationSharingList = json['thirdPartyInformationSharingList'];
logout = json['logout']; logout = json['logout'];
@ -614,6 +605,7 @@ class LanKeyEntity {
problemTwo = json['problemTwo']; problemTwo = json['problemTwo'];
problemThree = json['problemThree']; problemThree = json['problemThree'];
pleaseEnterYourAnswer = json['pleaseEnterYourAnswer']; pleaseEnterYourAnswer = json['pleaseEnterYourAnswer'];
aboutToExpire = json['aboutToExpire'];
designation = json['designation']; designation = json['designation'];
state = json['state']; state = json['state'];
@ -642,12 +634,12 @@ class LanKeyEntity {
ipAddress = json['ipAddress']; ipAddress = json['ipAddress'];
subnetMask = json['subnetMask']; subnetMask = json['subnetMask'];
defaultGateway = json['defaultGateway']; defaultGateway = json['defaultGateway'];
automaticallyGetTheDNSServerAddress = json['automaticallyGetTheDNSServerAddress']; automaticallyGetTheDNSServerAddress =
json['automaticallyGetTheDNSServerAddress'];
preferredDNS = json['preferredDNS']; preferredDNS = json['preferredDNS'];
alternativeDNS = json['alternativeDNS']; alternativeDNS = json['alternativeDNS'];
noStaticIPIsUsed = json['noStaticIPIsUsed']; noStaticIPIsUsed = json['noStaticIPIsUsed'];
allLock = json['allLock']; allLock = json['allLock'];
searchAllLockType = json['searchAllLockType']; searchAllLockType = json['searchAllLockType'];
doorLock = json['doorLock']; doorLock = json['doorLock'];
@ -662,7 +654,8 @@ class LanKeyEntity {
next = json['next']; next = json['next'];
nearbyLock = json['nearbyLock']; nearbyLock = json['nearbyLock'];
addSuccessfullyPleaseRename = json['addSuccessfullyPleaseRename']; addSuccessfullyPleaseRename = json['addSuccessfullyPleaseRename'];
whenAddingLockThePhoneMustBeNextToTheLock = json['whenAddingLockThePhoneMustBeNextToTheLock']; whenAddingLockThePhoneMustBeNextToTheLock =
json['whenAddingLockThePhoneMustBeNextToTheLock'];
login = json['login']; login = json['login'];
register = json['register']; register = json['register'];
@ -706,7 +699,8 @@ class LanKeyEntity {
currentState = json['currentState']; currentState = json['currentState'];
onTrial = json['onTrial']; onTrial = json['onTrial'];
haveNotOpened = json['haveNotOpened']; haveNotOpened = json['haveNotOpened'];
advancedFeaturesAndBenefitsContent = json['advancedFeaturesAndBenefitsContent']; advancedFeaturesAndBenefitsContent =
json['advancedFeaturesAndBenefitsContent'];
smsTemplate = json['smsTemplate']; smsTemplate = json['smsTemplate'];
emailTemplate = json['emailTemplate']; emailTemplate = json['emailTemplate'];
cardIssuingtool = json['cardIssuingtool']; cardIssuingtool = json['cardIssuingtool'];
@ -749,7 +743,8 @@ class LanKeyEntity {
lockScreenTip = json['lockScreenTip']; lockScreenTip = json['lockScreenTip'];
hideInvalidUnlockPermissionsTip = json['hideInvalidUnlockPermissionsTip']; hideInvalidUnlockPermissionsTip = json['hideInvalidUnlockPermissionsTip'];
appUnlockRequiresMobilePhoneAccessToTheLockTip = json['appUnlockRequiresMobilePhoneAccessToTheLockTip']; appUnlockRequiresMobilePhoneAccessToTheLockTip =
json['appUnlockRequiresMobilePhoneAccessToTheLockTip'];
checkAll = json['checkAll']; checkAll = json['checkAll'];
} }
String? starLock; String? starLock;
@ -955,6 +950,8 @@ class LanKeyEntity {
String? authorizedAdmin; String? authorizedAdmin;
String? lockGroup; String? lockGroup;
String? transferSmartLock; String? transferSmartLock;
String? selectiveLock;
String? recipientInformation;
String? transferGateway; String? transferGateway;
String? multiLanguage; String? multiLanguage;
@ -990,6 +987,7 @@ class LanKeyEntity {
String? problemTwo; String? problemTwo;
String? problemThree; String? problemThree;
String? pleaseEnterYourAnswer; String? pleaseEnterYourAnswer;
String? aboutToExpire;
String? designation; String? designation;
String? state; String? state;
@ -1275,8 +1273,10 @@ class LanKeyEntity {
map['whenScreenFlashesClickNext'] = whenScreenFlashesClickNext; map['whenScreenFlashesClickNext'] = whenScreenFlashesClickNext;
map['theScreenNeverFlickered'] = theScreenNeverFlickered; map['theScreenNeverFlickered'] = theScreenNeverFlickered;
map['enterNumberOrPressSet'] = enterNumberOrPressSet; map['enterNumberOrPressSet'] = enterNumberOrPressSet;
map['theLocationOfTheSetKeyWillBeDifferent'] = theLocationOfTheSetKeyWillBeDifferent; map['theLocationOfTheSetKeyWillBeDifferent'] =
map['pressAndHoldTheResetButtonTwoSeconds'] = pressAndHoldTheResetButtonTwoSeconds; theLocationOfTheSetKeyWillBeDifferent;
map['pressAndHoldTheResetButtonTwoSeconds'] =
pressAndHoldTheResetButtonTwoSeconds;
map['nearbyEquipment'] = nearbyEquipment; map['nearbyEquipment'] = nearbyEquipment;
map['noData'] = noData; map['noData'] = noData;
map['doorMagneticListTopTip'] = doorMagneticListTopTip; map['doorMagneticListTopTip'] = doorMagneticListTopTip;
@ -1330,6 +1330,8 @@ class LanKeyEntity {
map['authorizedAdmin'] = authorizedAdmin; map['authorizedAdmin'] = authorizedAdmin;
map['lockGroup'] = lockGroup; map['lockGroup'] = lockGroup;
map['transferSmartLock'] = transferSmartLock; map['transferSmartLock'] = transferSmartLock;
map['selectiveLock'] = selectiveLock;
map['recipientInformation'] = recipientInformation;
map['transferGateway'] = transferGateway; map['transferGateway'] = transferGateway;
map['multiLanguage'] = multiLanguage; map['multiLanguage'] = multiLanguage;
@ -1337,12 +1339,14 @@ class LanKeyEntity {
map['closed'] = closed; map['closed'] = closed;
map['opened'] = opened; map['opened'] = opened;
map['hideInvalidUnlockPermissions'] = hideInvalidUnlockPermissions; map['hideInvalidUnlockPermissions'] = hideInvalidUnlockPermissions;
map['appUnlockRequiresMobilePhoneAccessToTheLock'] = appUnlockRequiresMobilePhoneAccessToTheLock; map['appUnlockRequiresMobilePhoneAccessToTheLock'] =
appUnlockRequiresMobilePhoneAccessToTheLock;
map['valueAddedServices'] = valueAddedServices; map['valueAddedServices'] = valueAddedServices;
map['about'] = about; map['about'] = about;
map['userAgreement'] = userAgreement; map['userAgreement'] = userAgreement;
map['privacyPolicy'] = privacyPolicy; map['privacyPolicy'] = privacyPolicy;
map['personalInformationCollectionList'] = personalInformationCollectionList; map['personalInformationCollectionList'] =
personalInformationCollectionList;
map['applicationPermissionDescription'] = applicationPermissionDescription; map['applicationPermissionDescription'] = applicationPermissionDescription;
map['thirdPartyInformationSharingList'] = thirdPartyInformationSharingList; map['thirdPartyInformationSharingList'] = thirdPartyInformationSharingList;
map['logout'] = logout; map['logout'] = logout;
@ -1366,6 +1370,7 @@ class LanKeyEntity {
map['problemTwo'] = problemTwo; map['problemTwo'] = problemTwo;
map['problemThree'] = problemThree; map['problemThree'] = problemThree;
map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer; map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer;
map['aboutToExpire'] = aboutToExpire;
map['designation'] = designation; map['designation'] = designation;
map['state'] = state; map['state'] = state;
@ -1392,7 +1397,8 @@ class LanKeyEntity {
map['ipAddress'] = ipAddress; map['ipAddress'] = ipAddress;
map['subnetMask'] = subnetMask; map['subnetMask'] = subnetMask;
map['defaultGateway'] = defaultGateway; map['defaultGateway'] = defaultGateway;
map['automaticallyGetTheDNSServerAddress'] = automaticallyGetTheDNSServerAddress; map['automaticallyGetTheDNSServerAddress'] =
automaticallyGetTheDNSServerAddress;
map['preferredDNS'] = preferredDNS; map['preferredDNS'] = preferredDNS;
map['alternativeDNS'] = alternativeDNS; map['alternativeDNS'] = alternativeDNS;
map['noStaticIPIsUsed'] = noStaticIPIsUsed; map['noStaticIPIsUsed'] = noStaticIPIsUsed;
@ -1411,7 +1417,8 @@ class LanKeyEntity {
map['next'] = next; map['next'] = next;
map['nearbyLock'] = nearbyLock; map['nearbyLock'] = nearbyLock;
map['addSuccessfullyPleaseRename'] = addSuccessfullyPleaseRename; map['addSuccessfullyPleaseRename'] = addSuccessfullyPleaseRename;
map['whenAddingLockThePhoneMustBeNextToTheLock'] = whenAddingLockThePhoneMustBeNextToTheLock; map['whenAddingLockThePhoneMustBeNextToTheLock'] =
whenAddingLockThePhoneMustBeNextToTheLock;
map['login'] = login; map['login'] = login;
map['register'] = register; map['register'] = register;
@ -1455,7 +1462,8 @@ class LanKeyEntity {
map['currentState'] = currentState; map['currentState'] = currentState;
map['onTrial'] = onTrial; map['onTrial'] = onTrial;
map['haveNotOpened'] = haveNotOpened; map['haveNotOpened'] = haveNotOpened;
map['advancedFeaturesAndBenefitsContent'] = advancedFeaturesAndBenefitsContent; map['advancedFeaturesAndBenefitsContent'] =
advancedFeaturesAndBenefitsContent;
map['smsTemplate'] = smsTemplate; map['smsTemplate'] = smsTemplate;
map['emailTemplate'] = emailTemplate; map['emailTemplate'] = emailTemplate;
map['cardIssuingtool'] = cardIssuingtool; map['cardIssuingtool'] = cardIssuingtool;
@ -1498,9 +1506,10 @@ class LanKeyEntity {
map['lockScreenTip'] = lockScreenTip; map['lockScreenTip'] = lockScreenTip;
map['hideInvalidUnlockPermissionsTip'] = hideInvalidUnlockPermissionsTip; map['hideInvalidUnlockPermissionsTip'] = hideInvalidUnlockPermissionsTip;
map['appUnlockRequiresMobilePhoneAccessToTheLockTip'] = appUnlockRequiresMobilePhoneAccessToTheLockTip; map['appUnlockRequiresMobilePhoneAccessToTheLockTip'] =
appUnlockRequiresMobilePhoneAccessToTheLockTip;
map['checkAll'] = checkAll; map['checkAll'] = checkAll;
return map; return map;
} }
} }

View File

@ -99,6 +99,7 @@ flutter:
- images/main/ - images/main/
- images/lan/ - images/lan/
- images/mine/ - images/mine/
- images/lockType/
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware # https://flutter.dev/assets-and-images/#resolution-aware