Merge remote-tracking branch 'origin/master'
# Conflicts: # star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart
BIN
star_lock/images/controls_user.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
star_lock/images/getewayType_G2.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
star_lock/images/icon_addressBook.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
star_lock/images/icon_btn_add.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
star_lock/images/icon_fingerprint.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
star_lock/images/icon_lockGroup_item.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
star_lock/images/icon_password.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
@ -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",
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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": "状态",
|
||||||
|
|||||||
BIN
star_lock/images/lockType/addLock_touchScreen.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
star_lock/images/lockType/lockType_allLocks.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
star_lock/images/lockType/lockType_bicycleLock.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
star_lock/images/lockType/lockType_doorLock.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
star_lock/images/lockType/lockType_intelligentLockCore.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
star_lock/images/lockType/lockType_padlock.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
star_lock/images/lockType/lockType_parkingLock.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
star_lock/images/lockType/lockType_remoteControl.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
star_lock/images/lockType/lockType_safeLock.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
star_lock/images/normal_circle.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
star_lock/images/select_circle.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
@ -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())
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -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); //占位字体颜色
|
||||||
}
|
}
|
||||||
@ -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 {
|
||||||
|
|||||||
@ -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;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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))
|
||||||
],
|
],
|
||||||
)
|
)),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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(){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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() {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
71
star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart
Normal 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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
66
star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart
Normal 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: () {},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
});
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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()
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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!();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,7 +1506,8 @@ 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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||