From 76ceab6f346761e8cda28a034cb6bffe18c82081 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Thu, 27 Jul 2023 15:26:30 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=98=9F=E9=94=81=E4=B8=BB=E7=95=8C?= =?UTF-8?q?=E9=9D=A2UI=E6=9B=B4=E6=96=B0=202=EF=BC=8C=E9=94=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8UI=E6=9B=B4=E6=96=B0=203=EF=BC=8C=E4=BE=A7=E8=BE=B9?= =?UTF-8?q?=E6=A0=8F=20=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E5=9D=97UI=E6=9B=B4=E6=96=B0=204=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=94=81=E6=A8=A1=E5=9D=97UI=E6=9B=B4=E6=96=B0=205=EF=BC=8C?= =?UTF-8?q?=E6=88=91=E7=9A=84-=E8=AE=BE=E7=BD=AE=E6=A8=A1=E5=9D=97UI?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=206=EF=BC=8C=E6=96=B0=E5=A2=9E=E2=80=9C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=88=E6=9D=83=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E2=80=9D=E9=A1=B5=E9=9D=A2UI=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/icon_bar_more.png | Bin 0 -> 624 bytes star_lock/images/icon_bar_search.png | Bin 0 -> 1307 bytes star_lock/images/icon_right_grey.png | Bin 0 -> 753 bytes star_lock/images/lan/lan_en.json | 5 + star_lock/images/lan/lan_keys.json | 5 + star_lock/images/lan/lan_zh.json | 9 +- .../images/main/icon_main_openLockBtn.png | Bin 7632 -> 88009 bytes .../images/main/icon_main_remoteUnlocking.png | Bin 4528 -> 6412 bytes .../images/mine/icon_mine_editPersonInfo.png | Bin 0 -> 1853 bytes .../mine/icon_mine_main_defaultAvatar.png | Bin 5513 -> 15550 bytes star_lock/images/mine/icon_mine_topBg.png | Bin 0 -> 63641 bytes star_lock/lib/appRouters.dart | 14 +- star_lock/lib/app_settings/app_colors.dart | 4 +- star_lock/lib/main.dart | 2 +- .../authorizedAdminManage_page.dart | 15 +- .../authorizedAdminDetail_page.dart | 141 +++++-- .../authorizedAdminList_page.dart | 6 +- .../volumeAuthorizationLock_page.dart | 144 ++++--- .../checkingInSet/checkingInSet_page.dart | 85 ++-- .../electronicKeyDetail_page.dart | 152 +++++--- .../electronicKeyDetailChangeDate_page.dart | 72 ++-- .../electronicKeyList_page.dart | 6 +- .../electronicKeyPeriodValidity_page.dart | 113 +++--- .../massSendElectronicKey_page.dart | 100 +++-- .../massSendElectronicKeyManage_tabbar.dart | 63 ++- .../sendElectronicKey_page.dart | 259 ++++++++----- .../automaticBlocking_page.dart | 126 +++--- .../ImportOtherLockData_page.dart | 10 +- .../lcokSet/lockSet/lockSet_page.dart | 295 ++++++++++---- .../lockSoundSet/lockSoundSet_page.dart | 178 ++++++--- .../normallyOpenMode_page.dart | 159 ++++---- .../lockDetail/lockDetail_page.dart | 47 +-- .../lockOperatingRecord_page.dart | 9 +- .../otherTypeKeyDetail_page.dart | 140 +++++-- .../otherTypeKeyList_page.dart | 6 +- .../passwordKeyDetail_page.dart | 139 +++++-- .../passwordKeyList/passwordKeyList_page.dart | 6 +- .../passwordKey_perpetual_page.dart | 237 ++++++++---- .../lib/main/lockMian/lockMain_page.dart | 138 ++++--- star_lock/lib/mine/about/about_page.dart | 66 +++- .../mine/addLock/addLock/addLock_page.dart | 6 +- .../addLock/nearbyLock/nearbyLock_page.dart | 83 ++-- .../seletLockType/seletLockType_page.dart | 49 +-- .../gatewayConfigurationWifi_page.dart | 244 ++++++++---- .../seletGateway/seletGatewayList_page.dart | 83 ++-- .../seletGatewayType_page.dart | 41 +- .../seletGatewayTypeNextTip_page.dart | 59 +-- .../gatewayDetail/gatewayDetail_page.dart | 78 ++-- .../gateway/gatewayList/gatewayList_page.dart | 22 +- .../minePersonInfo/minePersonInfo_page.dart | 102 +++-- .../minePersonInfoEditAccount_page.dart | 87 +++-- .../minePersonInfoEditAccountNext_page.dart | 109 ++++-- .../minePersonInfoEditIphone_page.dart | 119 ++++-- .../minePersonInfoEditName_page.dart | 48 ++- .../minePersonInfoEmail_page.dart | 117 ++++++ .../minePersonInfoResetPassword_page.dart | 69 ++-- .../minePersonInfoSetSafetyProblem_page.dart | 108 +++--- ...ppUnlockNeedMobileNetworkingLock_page.dart | 112 ++++-- .../addAuthorizedAdministrator_page.dart | 366 ++++++++++++++++++ .../authorizedAdministratorList_page.dart | 22 +- .../hideInvalidUnlockPermissions_page.dart | 49 ++- .../mineSet/lockGroup/lockGroupList_page.dart | 23 +- .../mineSet/lockGroup/lockItemList_page.dart | 24 +- .../mineSet/lockScreen/lockScreen_page.dart | 43 +- .../lockUserManageList_page.dart | 65 ++-- star_lock/lib/mine/mineSet/mineSet_page.dart | 71 ++-- .../selectGetewayList_page.dart | 17 +- .../recipientInformation_page.dart | 31 +- .../transferSmartLock/selectBranch_page.dart | 1 - .../transferSmartLock_page.dart | 16 +- star_lock/lib/mine/mine_page.dart | 170 +++++--- star_lock/lib/tools/commonItem.dart | 19 +- star_lock/lib/tools/submitBtn.dart | 11 +- star_lock/lib/tools/tf_loginInput.dart | 34 +- star_lock/lib/tools/titleAppBar.dart | 46 ++- star_lock/lib/translations/lanKeyEntity.dart | 20 + 76 files changed, 3652 insertions(+), 1663 deletions(-) create mode 100644 star_lock/images/icon_bar_more.png create mode 100644 star_lock/images/icon_bar_search.png create mode 100644 star_lock/images/icon_right_grey.png create mode 100644 star_lock/images/mine/icon_mine_editPersonInfo.png create mode 100644 star_lock/images/mine/icon_mine_topBg.png create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart create mode 100644 star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart diff --git a/star_lock/images/icon_bar_more.png b/star_lock/images/icon_bar_more.png new file mode 100644 index 0000000000000000000000000000000000000000..053fce9af44727052c9827d566bc1b71f92f3a58 GIT binary patch literal 624 zcmV-$0+0QPP)5rkJsY3AB$bIs{~ch+>CZO^xx&S9IKbLy@O zA9!xw=X3Es@AG_K69B4>fhTg??p@RrOCvII$(&OQ00;nGbIqU1OPg+H_A@h>**`n? z-J#S80J(foTMbZ~{&ayw07Uk&oJ9jt;YY7hHWJ^Idvzc%GuHF`K-kwrRx*fYGc^m} zQV0>ztR9%iAx;43#|C@!?$|$_I7R^I+|c5YlFU#41bJR(`qbwEK*t@+!sEcYJ)UJ( zN@8(7TpGGC@}XU+n;Ivh6~bRpJK#TqJp*COnZZ!YHc}bU^@p*Jv{V&;FR@>)!1sJE zf4NSDVKI18ONEs*PXZw7yZcixQb7z9dTBaP?lDqfHCw$e9I#NUQODLjCaVz7B1Q%( zBnwz0094$pc=hf$Jd@}o0Ce&8r*^Hb-!04ibt>3yh7P`6kQ~JldpEY&8%@d+gJPs> zM}_|h?7FhF{ahK5eProqaJ4)pSJ=l4f4<1>QBU}EoeGYrFCAJ-v9MCUrGn)uztCH= z@n@NCntCZ~iKS*N&6C2R{ief2bV9G=mc7&}BqgkofeN`IWe5OOs?fcob0*qN0O;zy z&z)Lbe~fH7>r^;@<9*xWSIMb-DfuG1?|6b|>)x?3?c*hLQ9_P}2}w0x7MC)J1I5mbHsYky%AaTVtA9%B!)+8^U&hWec*h zbLVldU)XwgoMmR0+0c`mWY5ilv308v?5a`r~zRPq=DWtSI@m7k{OI<~nXj`&R_(nv+i| zVC}~_Vf#uS3_=JDy5tHaaK(4R(_z6jbclIM&|_`F3r2wY-RY5Ql)z!ZDnZ+O#kY+F zrOp!o%XLYGA;F%$B<`kR|KaheNPrST;K&ccws6%2LI`+$*hZ@w%2OYXPtVJr)3CKa z3Awsp3+wp}w5p3Ja;o~h@`8{}t2=N@uGW*sK9ga39sqLvy~4#mm@UEye@`G)XHI5mN7*RDY!{8NP!^0YUQv<1U_;| z!7cV)h^1p*B${`Wz3nBl^n%5Tl8pvav(!Xp6CKYkfLkkvotVX=RGjy48k-sHU?Xj7 zI-5m>j*)3RsFlO^P2es7aQGLtKVsS$0k!}us70}H(Gc&C7X?`Ox+q%IOk8R%0-Bge z|ARTY#R9r#{R7mAD+`cSGe~KIY-;|2gW(bQswp*;oydqda2y~CipQ?S5kGpYIRV&hjE~@7@wswlIVI5PN z(k7Ip7nUJJeTvxLEAPw6VqXNRF<-J~0D$3XGBEBYqpmsPlw^?NVjw;>kx9!ivk$G0 zg^d7^r^s_i7{q&6h*H#alz%H8D0z8JA86TfS8}ukJu67KMMdS1hjU#caycOciW`vH zXo@SdX)CNt{_n4fZ!Dc4RA_E&My~zjJbIF@S7t+5YQS1sBBY1q1SjmcF(Fmprj5w5#=8K_`G=FP`=6@4(D}bq<<7dVYNNH>afcJm)p=|cOC3kf!>PH-dzhPF#OGEWOb0MG?#8uuUh3gze RdV&A|002ovPDHLkV1fcxa6oxvDh@3Gtzqq(aGFeqozuzAb(Od|Tmw#Z4$((adDP__h&&uq9WhTa$mbG?`e=4p| z1^^(X99nBX;Uc1(b6yJx5rviz3(gqBuBld;L8$ZC$gIM$m%+B+`(P<6im2)(;+)U-4Gu&ysKS!6@me#e zdWlX>PG;S1H%Cpa48rC&R_Bbdc}nn=!3UQAvV9jfH#a}L_t*?hM0umpm~}dxq?HHp z)6>)6*4i(Ov45`1I-egJ9QYWS)9JK5o6Rx+10lqSF&1rH$p*mk82kME{G-umBvs2+ jl@HAi4-d^_AH@FxKU{d_=5WWi00000NkvXXu0mjfqmfqE literal 0 HcmV?d00001 diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json index 6e9c5107..c015147b 100644 --- a/star_lock/images/lan/lan_en.json +++ b/star_lock/images/lan/lan_en.json @@ -188,6 +188,7 @@ "lanChinese":"Chinese", "multilingual":"Multilingual", "addLock":"Add Lock", + "addDevice":"Add device", "gateway":"Gateway", "message":"Message", "supportStaff":"Support Staff", @@ -201,6 +202,7 @@ "lockUserManagement":"Lock User Management", "aboutToExpire":"About to expire", "authorizedAdmin":"Authorized Admin", + "addAuthorizedAdmin":"Adding an Authorized Administrator", "lockGroup":"Lock Group", "transferSmartLock":"Transfer Smart Lock", "selectiveLock":"Selective lock", @@ -230,7 +232,9 @@ "safetyProblem":"Safety Problem", "modifyAccountTip":"For the security of your account, please use the account password verification before modifying the account", "pleaseEnterAccountNumber":"Please enter your account number", + "pleaseEnterNewAccountNumber":"Please enter your new account number", "changeIphoneTip":"When you retrieve your password and log in to a new device, you can verify it with the attached phone", + "changeEmailTip":"When you retrieve your password and log in to a new device, you can verify it with the attached Email", "originalPassword":"Original Password", "newPassword":"New Password", "surePassword":"Sure Password", @@ -276,6 +280,7 @@ "padlock":"Pad lock", "safeLock":"Safe Lock", "intelligentLockCore":"Intelligent Lock Core", + "itelligentAccessControl":"Intelligent access control", "parkingLock":"Parking Lock", "bicycleLock":"Bicycle Lock", "longRangeControl":"LongRange Control", diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json index 79399173..6199a990 100644 --- a/star_lock/images/lan/lan_keys.json +++ b/star_lock/images/lan/lan_keys.json @@ -188,6 +188,7 @@ "lanChinese":"lanChinese", "multilingual":"multilingual", "addLock":"addLock", + "addDevice":"addDevice", "gateway":"gateway", "message":"message", "supportStaff":"supportStaff", @@ -200,6 +201,7 @@ "pushNotification":"pushNotification", "lockUserManagement":"lockUserManagement", "authorizedAdmin":"authorizedAdmin", + "addAuthorizedAdmin":"addAuthorizedAdmin", "lockGroup":"lockGroup", "transferSmartLock":"transferSmartLock", "selectiveLock":"selectiveLock", @@ -229,7 +231,9 @@ "safetyProblem":"safetyProblem", "modifyAccountTip":"modifyAccountTip", "pleaseEnterAccountNumber":"pleaseEnterAccountNumber", + "pleaseEnterNewAccountNumber":"pleaseEnterNewAccountNumber", "changeIphoneTip":"changeIphoneTip", + "changeEmailTip":"changeEmailTip", "originalPassword":"originalPassword", "newPassword":"newPassword", "surePassword":"surePassword", @@ -276,6 +280,7 @@ "padlock":"padlock", "safeLock":"safeLock", "intelligentLockCore":"intelligentLockCore", + "itelligentAccessControl":"itelligentAccessControl", "parkingLock":"parkingLock", "bicycleLock":"bicycleLock", "longRangeControl":"longRangeControl", diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index 9700d58b..7d913bc3 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -188,6 +188,7 @@ "lanChinese":"中文", "multilingual":"多语言", "addLock":"添加锁", + "addDevice":"添加设备", "gateway":"网关", "message":"消息", "supportStaff":"客服", @@ -200,6 +201,7 @@ "pushNotification":"消息推送", "lockUserManagement":"锁用户管理", "authorizedAdmin":"授权管理员", + "addAuthorizedAdmin":"添加授权管理员", "lockGroup":"锁分组", "transferSmartLock":"转移智能锁", "selectiveLock":"选择锁", @@ -229,7 +231,9 @@ "safetyProblem":"安全问题", "modifyAccountTip":"为了你的账号安全,修改账号前请先使用账号密码验证", "pleaseEnterAccountNumber":"请输入账号", - "changeIphoneTip":"找回密码和登陆新设备时,可通过绑定的手机验证", + "pleaseEnterNewAccountNumber":"请输入新账号", + "changeIphoneTip":"找回密码和登录新设备时,可通过绑定的手机验证", + "changeEmailTip":"找回密码和登录新设备时,可通过绑定的邮箱验证", "originalPassword":"原密码", "newPassword":"新密码", "surePassword":"确认密码", @@ -276,11 +280,12 @@ "padlock":"挂锁", "safeLock":"保险箱锁", "intelligentLockCore":"智能锁芯", + "itelligentAccessControl":"智能门禁", "parkingLock":"车位锁", "bicycleLock":"自行车锁", "longRangeControl":"远程控制", "lightTouchScreen":"摸亮触摸屏", - "lightTouchScreenTip":"摸亮触摸屏,锁进入可添加状态,点击下一步", + "lightTouchScreenTip":"摸亮触摸屏,锁进入可添加状态,点击下一步", "next":"下一步", "nearbyLock":"附近的锁", "addSuccessfullyPleaseRename":"添加成功,请重命名", diff --git a/star_lock/images/main/icon_main_openLockBtn.png b/star_lock/images/main/icon_main_openLockBtn.png index 52cf88e5b3da38bd7cbbc669864e41c608ecbadf..f2e2bda54cca767944507c1a1caed4ff08bfa956 100644 GIT binary patch literal 88009 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

qjTnF% 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 LNkvXXu0mjfs47_1 literal 7632 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 diff --git a/star_lock/images/main/icon_main_remoteUnlocking.png b/star_lock/images/main/icon_main_remoteUnlocking.png index 46924b3572448533e637134d70f0ea583d121aa7..c7fd44dee83d85e34acc2cdce45e4fb512509c14 100644 GIT binary patch literal 6412 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 O0000aC diff --git a/star_lock/images/mine/icon_mine_editPersonInfo.png b/star_lock/images/mine/icon_mine_editPersonInfo.png new file mode 100644 index 0000000000000000000000000000000000000000..bf78f41cd267a19f7938ba087e724f9eef32b8f4 GIT binary patch literal 1853 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 literal 5513 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 NxorMNf#JO;{|6|##()3- literal 0 HcmV?d00001 diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 511ecde2..8494412b 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart'; +import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart'; import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_page.dart'; import 'package:star_lock/mine/mineSet/mineSet_page.dart'; @@ -202,6 +204,8 @@ abstract class Routers { '/MinePersonInfoResetPasswordPage'; // 我的信息重置密码 static const minePersonInfoSetSafetyProblemPage = '/MinePersonInfoSetSafetyProblemPage'; // 我的信息设置安全问题 + static const minePersonInfoEditEmailPage = + '/MinePersonInfoEditEmailPage'; //我的信息-邮箱 static const gatewayListPage = '/GatewayListPage'; // 我的-网关 static const gatewayDetailPage = '/GatewayDetailPage'; // 我的-网关详情 @@ -253,6 +257,8 @@ abstract class Routers { static const recipientInformationPage = '/recipientInformationPage'; //接受人信息 static const selectBranchPage = '/SelectBranchPage'; //选择分店 static const selectGetewayListPage = '/selectGetewayListPage'; //选择网关 + static const addAuthorizedAdministratorPage = + '/addAuthorizedAdministratorPage'; //添加授权管理员 static const starLockLoginPage = '/StarLockLoginPage'; // 登录 static const starLockRegisterPage = '/StarLockRegisterPage'; // 注册 @@ -675,6 +681,12 @@ abstract class AppRouters { name: Routers.selectBranchPage, page: () => const SelectBranchPage()), GetPage( name: Routers.selectGetewayListPage, - page: () => const SelectGetewayListPage()) + page: () => const SelectGetewayListPage()), + GetPage( + name: Routers.minePersonInfoEditEmailPage, + page: () => const MinePersonInfoEditEmailPage()), + GetPage( + name: Routers.addAuthorizedAdministratorPage, + page: () => const AddAuthorizedAdministratorPage()) ]; } diff --git a/star_lock/lib/app_settings/app_colors.dart b/star_lock/lib/app_settings/app_colors.dart index 746a9ab9..da75713e 100644 --- a/star_lock/lib/app_settings/app_colors.dart +++ b/star_lock/lib/app_settings/app_colors.dart @@ -115,7 +115,9 @@ class AppColors { static Color progressBgColor = const Color(0xFF022345); static Color progressValueColor = const Color(0xFF0093E5); - static const greyLineColor = Color.fromRGBO(240, 240, 240, 1); //灰色分割线 + static const greyLineColor = Color.fromRGBO(220, 220, 220, 1); //灰色分割线 static const darkGrayTextColor = Color.fromRGBO(65, 65, 65, 1); //深灰色字体 static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //占位字体颜色 + static const greyBackgroundColor = Color.fromRGBO(240, 240, 240, 1); //灰色背景色 + static const btnDisableColor = Color.fromRGBO(178, 178, 178, 1); //按钮不可用灰色 } diff --git a/star_lock/lib/main.dart b/star_lock/lib/main.dart index d150cb7d..4a489821 100644 --- a/star_lock/lib/main.dart +++ b/star_lock/lib/main.dart @@ -35,7 +35,7 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { @override Widget build(BuildContext context) { return ScreenUtilInit( - designSize: const Size(750, 1334), + designSize: const Size(585, 1265), builder: (w, a) => _initMaterialApp()); } diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart index 9ccf59bc..fb3f04e0 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -11,20 +10,26 @@ class AuthorizedAdminManagePage extends StatefulWidget { const AuthorizedAdminManagePage({Key? key}) : super(key: key); @override - State createState() => _AuthorizedAdminManagePageState(); + State createState() => + _AuthorizedAdminManagePageState(); } class _AuthorizedAdminManagePageState extends State { - var index=0; + var index = 0; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: Column( children: [ - AuthorizedAdminManageTabbar(initialIndex: index,), + AuthorizedAdminManageTabbar( + initialIndex: index, + ), ], ), ); diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart index 4fa80c62..1a8ed05f 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -15,7 +14,8 @@ class AuthorizedAdminDetailPage extends StatefulWidget { const AuthorizedAdminDetailPage({Key? key}) : super(key: key); @override - State createState() => _AuthorizedAdminDetailPageState(); + State createState() => + _AuthorizedAdminDetailPageState(); } class _AuthorizedAdminDetailPageState extends State { @@ -23,51 +23,82 @@ class _AuthorizedAdminDetailPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.authorizedAdmin!.tr}${TranslationLoader.lanKeys!.detail!.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ - TextButton( - child: Text(TranslationLoader.lanKeys!.share!.tr, style: TextStyle(color: Colors.white),), - onPressed: (){ - - },), - ],), + appBar: TitleAppBar( + barTitle: + "${TranslationLoader.lanKeys!.authorizedAdmin!.tr}${TranslationLoader.lanKeys!.detail!.tr}", + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.share!.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () {}, + ), + ], + ), body: Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.password!.tr, rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"永久", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.password!.tr, + rightTitle: "98765432", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.name!.tr, + rightTitle: "你好", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "永久", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyDetailChangeDate); + }), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.sender!.tr, rightTitle:"15080825640", action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.senderTime!.tr, rightTitle:"2020.06.21 11:49", action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.sender!.tr, + rightTitle: "15080825640", + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.senderTime!.tr, + rightTitle: "2020.06.21 11:49", + action: () {}), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.operatingRecord!.tr, rightTitle:"", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, + rightTitle: "", + isHaveDirection: true, + action: () {}), Container(height: 40.h), SubmitBtn( btnName: TranslationLoader.lanKeys!.delete!.tr, + isDelete: true, 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), - onClick: (){ - - } - ), + onClick: () {}), ], ), ); } - Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget? rightWidget, Function()? action}){ + Widget commonItem(String leftTitle, String rightTitle, + {bool isHaveDirection = false, + bool isHaveLine = false, + bool isHaveRightWidget = false, + Widget? rightWidget, + Function()? action}) { return GestureDetector( onTap: action, child: Column( @@ -76,27 +107,50 @@ class _AuthorizedAdminDetailPageState extends State { Container( // height: 80.h, 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( children: [ - SizedBox(width:20.w), - Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), - SizedBox(width:20.w), + SizedBox(width: 20.w), + Text( + leftTitle, + style: + TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), + ), + SizedBox(width: 20.w), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, 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), - isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + SizedBox(width: 5.w), + isHaveDirection + ? Image.asset( + 'images/icon_right.png', + width: 50.w, + height: 50.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() ], ), ); @@ -112,7 +166,9 @@ class _AuthorizedAdminDetailPageState extends State { title: const Text("修改密码"), content: Column( children: [ - const SizedBox(height: 10,), + const SizedBox( + height: 10, + ), Container( height: 80.h, // color: Colors.white, @@ -172,5 +228,4 @@ class _AuthorizedAdminDetailPageState extends State { ); }); } - } diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart index 64441ddf..0ac8d08f 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart @@ -56,7 +56,7 @@ class _AuthorizedAdminListPageState extends State { Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -64,17 +64,19 @@ class _AuthorizedAdminListPageState extends State { 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart index 75f0033d..8fe513f9 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart @@ -1,4 +1,4 @@ - +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -12,13 +12,16 @@ import '../../../../translations/trans_lib.dart'; class VolumeAuthorizationLockPage extends StatefulWidget { final String type; - const VolumeAuthorizationLockPage({Key? key, required this.type}):super(key:key); + const VolumeAuthorizationLockPage({Key? key, required this.type}) + : super(key: key); @override - State createState() => _VolumeAuthorizationLockPageState(); + State createState() => + _VolumeAuthorizationLockPageState(); } -class _VolumeAuthorizationLockPageState extends State { +class _VolumeAuthorizationLockPageState + extends State { final FlutterContactPicker _contactPicker = FlutterContactPicker(); late Contact _contact; @@ -31,10 +34,9 @@ class _VolumeAuthorizationLockPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.checkingIn!.tr} ${TranslationLoader.lanKeys!.set!.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: + "${TranslationLoader.lanKeys!.checkingIn!.tr} ${TranslationLoader.lanKeys!.set!.tr}", + haveBack: true, + backgroundColor: AppColors.mainColor), body: Column( children: [ - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.company!.tr} ${TranslationLoader.lanKeys!.name!.tr}", rightTitle:"深圳市志超科技", isHaveLine: true, isHaveDirection: true, action: (){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.staff!.tr, rightTitle:"0", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.checkingInStaffManagePage); - }), - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.work!.tr} ${TranslationLoader.lanKeys!.time!.tr}", rightTitle:"9:00 - 18:00", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.checkingInSetWorkTimePage); - }), - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.workday!.tr} ${TranslationLoader.lanKeys!.set!.tr}", rightTitle:"1,2,3,4,5", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.checkingInSetWorkdaySet); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.holidays!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.checkingInSetHolidaysPage); - }), - SizedBox(height: 30.h,), - SubmitBtn(btnName: "${TranslationLoader.lanKeys!.delete!.tr} ${TranslationLoader.lanKeys!.company!.tr}", + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.company!.tr} ${TranslationLoader.lanKeys!.name!.tr}", + rightTitle: "深圳市志超科技", + isHaveLine: true, + isHaveDirection: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.staff!.tr, + rightTitle: "0", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.checkingInStaffManagePage); + }), + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.work!.tr} ${TranslationLoader.lanKeys!.time!.tr}", + rightTitle: "9:00 - 18:00", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.checkingInSetWorkTimePage); + }), + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.workday!.tr} ${TranslationLoader.lanKeys!.set!.tr}", + rightTitle: "1,2,3,4,5", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.checkingInSetWorkdaySet); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.holidays!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.checkingInSetHolidaysPage); + }), + SizedBox( + height: 30.h, + ), + SubmitBtn( + btnName: + "${TranslationLoader.lanKeys!.delete!.tr} ${TranslationLoader.lanKeys!.company!.tr}", borderRadius: 20.w, fontSize: 32.sp, + isDelete: true, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () { - - } - ), + onClick: () {}), ], ), ); @@ -62,7 +95,11 @@ class _CheckingInSetPageState extends State { showDialog( context: context, builder: (BuildContext context) { - return ShowTFView(title:"${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", tipTitle:"", controller: _changeNameController); + return ShowTFView( + title: + "${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", + tipTitle: "", + controller: _changeNameController); }); } } diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart index bb89b5f2..4c3b1fc7 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart @@ -15,7 +15,8 @@ class ElectronicKeyDetailPage extends StatefulWidget { const ElectronicKeyDetailPage({Key? key}) : super(key: key); @override - State createState() => _ElectronicKeyDetailPageState(); + State createState() => + _ElectronicKeyDetailPageState(); } class _ElectronicKeyDetailPageState extends State { @@ -26,49 +27,75 @@ class _ElectronicKeyDetailPageState extends State { return Scaffold( resizeToAvoidBottomInset: false, backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.keyDetail!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.keyDetail!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"魏", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, allHeight: 90.h,rightTitle:"2020.06.20 11:49\n2020.06.21 11:49", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.name!.tr, + rightTitle: "魏", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + allHeight: 90.h, + rightTitle: "2020.06.20 11:49\n2020.06.21 11:49", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyDetailChangeDate); + }), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.receiver!.tr, rightTitle:"786612630@qq.com",action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.sender!.tr, rightTitle:"15080825640", action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.senderTime!.tr, rightTitle:"2020.06.21 11:49", action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.receiver!.tr, + rightTitle: "786612630@qq.com", + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.sender!.tr, + rightTitle: "15080825640", + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.senderTime!.tr, + rightTitle: "2020.06.21 11:49", + action: () {}), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.realNameAuthentication!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w,child: _switch()), action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.realNameAuthentication!.tr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: Container(width: 80.w, child: _switch()), + action: () {}), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.operatingRecord!.tr, rightTitle:"", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, + rightTitle: "", + isHaveDirection: true, + action: () {}), Container(height: 40.h), SubmitBtn( btnName: TranslationLoader.lanKeys!.delete!.tr, borderRadius: 20.w, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + isDelete: true, + 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: (){ - - } - ), + onClick: () {}), ], ), ); } - Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget? rightWidget, Function()? action}){ + Widget commonItem(String leftTitle, String rightTitle, + {bool isHaveDirection = false, + bool isHaveLine = false, + bool isHaveRightWidget = false, + Widget? rightWidget, + Function()? action}) { return GestureDetector( onTap: action, child: Column( @@ -77,41 +104,67 @@ class _ElectronicKeyDetailPageState extends State { Container( // height: 80.h, 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( children: [ - SizedBox(width:20.w), - Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), - SizedBox(width:20.w), + SizedBox(width: 20.w), + Text( + leftTitle, + style: + TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), + ), + SizedBox(width: 20.w), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, 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), - isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + SizedBox(width: 5.w), + isHaveDirection + ? Image.asset( + 'images/icon_right.png', + width: 50.w, + height: 50.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() ], ), ); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } @@ -119,8 +172,11 @@ class _ElectronicKeyDetailPageState extends State { showDialog( context: context, builder: (BuildContext context) { - return ShowTFView(title:"${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", tipTitle:"请输入", controller: _changeNameController); + return ShowTFView( + title: + "${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", + tipTitle: "请输入", + controller: _changeNameController); }); } - } diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart index 7763a1fe..40615e15 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart @@ -1,6 +1,6 @@ - import 'package:flutter/material.dart'; import 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import '../../../../../app_settings/app_colors.dart'; @@ -13,45 +13,69 @@ class ElectronicKeyDetailChangeDate extends StatefulWidget { const ElectronicKeyDetailChangeDate({Key? key}) : super(key: key); @override - State createState() => _ElectronicKeyDetailChangeDateState(); + State createState() => + _ElectronicKeyDetailChangeDateState(); } -class _ElectronicKeyDetailChangeDateState extends State { - +class _ElectronicKeyDetailChangeDateState + extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.periodValidity!.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ - TextButton(child: Text(TranslationLoader.lanKeys!.sure!.tr, style: const TextStyle(color: Colors.white),), onPressed: (){ - - },), - ],), - body: buildMainUI(), + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: + "${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.periodValidity!.tr}", + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.sure!.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () {}, + ), + ], + ), + body: buildMainUI(), ); } - Widget buildMainUI(){ + Widget buildMainUI() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, isHaveLine: true, action:(){ - ShowSeletDateTime().showDatePicker(context, '2100-01-01 00:00', '1900-01-01 00:00', getNowDate(),'yyyy-MMMM-dd HH:mm', (dateTime, List index) { - - }); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ - ShowSeletDateTime().showDatePicker(context, '00:00', '00:00', getNowDate(),'HH:mm', (dateTime, List index) { - - }); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveDirection: true, + isHaveLine: true, + action: () { + ShowSeletDateTime().showDatePicker( + context, + '2100-01-01 00:00', + '1900-01-01 00:00', + getNowDate(), + 'yyyy-MMMM-dd HH:mm', + (dateTime, List index) {}); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveDirection: true, + action: () { + ShowSeletDateTime().showDatePicker(context, '00:00', '00:00', + getNowDate(), 'HH:mm', (dateTime, List index) {}); + }), ], ); } - String getNowDate(){ + String getNowDate() { // 获取当前时间对象 DateTime today = DateTime.now(); - String dateSlug ="${today.hour.toString().padLeft(2,'0')}:${today.minute.toString().padLeft(2,'0')}"; + String dateSlug = + "${today.hour.toString().padLeft(2, '0')}:${today.minute.toString().padLeft(2, '0')}"; // //获取当前时间的年 // int year = now.year; diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart index 55b18a7a..131c477e 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart @@ -56,7 +56,7 @@ class _ElectronicKeyListPageState extends State { Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -64,17 +64,19 @@ class _ElectronicKeyListPageState extends State { 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart index 7f8bcb87..3648016a 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart @@ -12,26 +12,32 @@ class ElectronicKeyPeriodValidityPage extends StatefulWidget { const ElectronicKeyPeriodValidityPage({Key? key}) : super(key: key); @override - State createState() => _ElectronicKeyPeriodValidityPageState(); + State createState() => + _ElectronicKeyPeriodValidityPageState(); } -class _ElectronicKeyPeriodValidityPageState extends State { +class _ElectronicKeyPeriodValidityPageState + extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.periodValidity!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.periodValidity!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: Column( children: [ topWidget(), - SizedBox(height: 10.h,), + SizedBox( + height: 1.h, + ), bottomWidget() ], - ) - ); + )); } - Widget topWidget(){ + Widget topWidget() { return Container( height: 150.h, width: 1.sw, @@ -42,28 +48,26 @@ class _ElectronicKeyPeriodValidityPageState extends State createState() => _MassSendElectronicKeyPageState(); + State createState() => + _MassSendElectronicKeyPageState(); } class _MassSendElectronicKeyPageState extends State { @@ -32,10 +34,9 @@ class _MassSendElectronicKeyPageState extends State { void initState() { // TODO: implement initState super.initState(); - } - Widget indexChangeWidget(){ + Widget indexChangeWidget() { switch (int.parse(widget.type)) { case 0: { @@ -82,82 +83,99 @@ class _MassSendElectronicKeyPageState extends State { } // 顶部钥匙信息widget - Widget keyInfoWidget(){ + Widget keyInfoWidget() { return Column( children: [ Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.receiver!.tr, rightTitle:TranslationLoader.lanKeys!.pleaseAdd!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.lock!.tr, rightTitle:TranslationLoader.lanKeys!.pleaseSelet!.tr, isHaveDirection: true, action: (){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.receiver!.tr, + rightTitle: TranslationLoader.lanKeys!.pleaseAdd!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lock!.tr, + rightTitle: TranslationLoader.lanKeys!.pleaseSelet!.tr, + isHaveDirection: true, + action: () {}), Container(height: 10.h), ], ); } // 生效失效时间 - Widget keyTimeWidget(){ + Widget keyTimeWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true), - CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveLine: true), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "2020.06.20 11:49", + ), Container(height: 10.h), ], ); } // 远程开锁 - Widget remoteUnlockingWidget(){ + Widget remoteUnlockingWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ - - }), - Container(height: 10.h), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: Container(width: 80.w, height: 50.h, child: _switch()), + action: () {}), + Container(height: 40.h), ], ); } // 有效期 - Widget periodValidityWidget(){ + Widget periodValidityWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.periodValidity!.tr, rightTitle:"", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyPeriodValidityPage); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, + rightTitle: "", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyPeriodValidityPage); + }), Container(height: 10.h), ], ); } - Widget keyBottomWidget(){ + Widget keyBottomWidget() { return Column( children: [ SubmitBtn( btnName: TranslationLoader.lanKeys!.send!.tr, - borderRadius: 20.w, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), - padding: EdgeInsets.only(top: 25.w, bottom: 25.w), - onClick: (){ + onClick: () { // Navigator.pushNamed(context, Routers.nearbyLockPage); - } - ), + }), ], ); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart index c6fb8264..83d42fb3 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart @@ -8,15 +8,19 @@ import '../../../../../translations/trans_lib.dart'; import '../massSendElectronicKey_page.dart'; class MassSendElectronicKeyManageTabbar extends StatefulWidget { - var initialIndex=1; + var initialIndex = 1; - MassSendElectronicKeyManageTabbar({Key? key, required this.initialIndex}) : super(key: key); + MassSendElectronicKeyManageTabbar({Key? key, required this.initialIndex}) + : super(key: key); @override - State createState() => _MassSendElectronicKeyManageTabbarState(); + State createState() => + _MassSendElectronicKeyManageTabbarState(); } -class _MassSendElectronicKeyManageTabbarState extends State with SingleTickerProviderStateMixin { +class _MassSendElectronicKeyManageTabbarState + extends State + with SingleTickerProviderStateMixin { late TabController _tabController; final List _itemTabs = [ @@ -29,33 +33,44 @@ class _MassSendElectronicKeyManageTabbarState extends State _tab(item)).toList(), isScrollable: true, indicatorColor: Colors.red, unselectedLabelColor: Colors.black, - unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), - automaticIndicatorColorAdjustment:true, + unselectedLabelStyle: TextStyle( + color: AppColors.mainColor, + fontSize: 28.sp, + ), + automaticIndicatorColorAdjustment: true, labelColor: AppColors.mainColor, - labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), - indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + labelStyle: TextStyle( + color: AppColors.mainColor, + fontSize: 32.sp, + fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator( + borderSide: BorderSide(color: AppColors.mainColor, width: 4.w), + strokeCap: StrokeCap.round, + width: 30.w), ); } @@ -63,19 +78,27 @@ class _MassSendElectronicKeyManageTabbarState extends State MassSendElectronicKeyPage(type: item.type,)).toList(), + children: _itemTabs + .map((ItemView item) => MassSendElectronicKeyPage( + type: item.type, + )) + .toList(), ), ); } diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart index c91ad57d..10b7e935 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart @@ -1,4 +1,4 @@ - +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -32,10 +32,9 @@ class _SendElectronicKeyPageState extends State { void initState() { // TODO: implement initState super.initState(); - } - Widget indexChangeWidget(){ + Widget indexChangeWidget() { switch (int.parse(widget.type)) { case 0: { @@ -55,22 +54,14 @@ class _SendElectronicKeyPageState extends State { { // 永久 return Column( - children: [ - keyInfoWidget(), - keyRealNameWidget(), - keyBottomWidget() - ], + children: [keyInfoWidget(), keyRealNameWidget(), keyBottomWidget()], ); } case 2: { // 单次 return Column( - children: [ - keyInfoWidget(), - keyRealNameWidget(), - keyBottomWidget() - ], + children: [keyInfoWidget(), keyRealNameWidget(), keyBottomWidget()], ); } case 3: @@ -91,56 +82,84 @@ class _SendElectronicKeyPageState extends State { } // 顶部钥匙信息widget - Widget keyInfoWidget(){ + Widget keyInfoWidget() { return Column( children: [ Container(height: 10.h), - CommonItem(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!.enterYourName!.tr)), + CommonItem( + 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!.enterYourName!.tr)), Container(height: 10.h), ], ); } // 生效失效时间 - Widget keyTimeWidget(){ + Widget keyTimeWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ - // _showDatePicker(); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ - // _showDatePicker(); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveLine: true, + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), Container(height: 10.h), ], ); } // 实名认证 - Widget keyRealNameWidget(){ + Widget keyRealNameWidget() { return Column( 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), ], ); } // 有效期 - Widget keyPeriodValidityWidget(){ + Widget keyPeriodValidityWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.periodValidity!.tr, rightTitle:"", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyPeriodValidityPage); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, + rightTitle: "", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyPeriodValidityPage); + }), ], ); } - Widget keyBottomWidget(){ + Widget keyBottomWidget() { return Column( children: [ Container( @@ -148,24 +167,32 @@ class _SendElectronicKeyPageState extends State { child: Row( // crossAxisAlignment: CrossAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.sendKeyBottomTip!.tr, textAlign: TextAlign.start,)), + Expanded( + child: Text( + TranslationLoader.lanKeys!.sendKeyBottomTip!.tr, + textAlign: TextAlign.start, + )), ], ), ), - SubmitBtn(btnName: TranslationLoader.lanKeys!.send!.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), - onClick: (){ - - } - ), + SubmitBtn(btnName: TranslationLoader.lanKeys!.send!.tr, onClick: () {}), Container( - padding: EdgeInsets.only(right:30.w), + padding: EdgeInsets.only(right: 30.w), // color: Colors.red, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - TextButton(onPressed: (){ - Navigator.pushNamed(context, Routers.massSendElectronicKeyManagePage); - }, child: Text(TranslationLoader.lanKeys!.sendGroupKey!.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),)), + TextButton( + onPressed: () { + Navigator.pushNamed( + context, Routers.massSendElectronicKeyManagePage); + }, + child: Text( + TranslationLoader.lanKeys!.sendGroupKey!.tr, + style: TextStyle( + color: AppColors.mainColor, + fontWeight: FontWeight.w500), + )), ], ), ), @@ -174,7 +201,7 @@ class _SendElectronicKeyPageState extends State { } // 发送电子钥匙成功 - Widget sendElectronicKeySucceed(){ + Widget sendElectronicKeySucceed() { return Column( children: [ Container( @@ -183,49 +210,84 @@ class _SendElectronicKeyPageState extends State { color: Colors.white, child: Column( children: [ - SizedBox(height: 30.h,), - Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), - SizedBox(height: 20.h,), + SizedBox( + height: 30.h, + ), + Image.asset( + 'images/main/icon_main_addLock.png', + width: 150.w, + height: 150.w, + color: AppColors.mainColor, + ), + SizedBox( + height: 20.h, + ), Row( mainAxisAlignment: MainAxisAlignment.center, 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,), - 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: (){ - - }), + SizedBox( + height: 20.h, + ), + 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( height: 50.h, width: 500.w, child: Row( children: [ - Expanded( - child: TextField( + Expanded( + child: TextField( //输入框一行 maxLines: 1, // controller: _controller, autofocus: false, - textAlign:TextAlign.end, + textAlign: TextAlign.end, decoration: InputDecoration( //输入里面输入文字内边距设置 contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), @@ -233,45 +295,50 @@ class _SendElectronicKeyPageState extends State { //不需要输入框下划线 border: InputBorder.none, ), - ), - ), - SizedBox(width: 10.w,), - isHaveBtn?Container( - width: 50.w, - height: 50.w, - decoration: const BoxDecoration( - color: Colors.white, - image: DecorationImage( - image: AssetImage('images/icon_lock.png'), - fit: BoxFit.fill - ), ), - alignment: Alignment.center, - child: InkWell( - onTap: () async { - Contact? contact = await _contactPicker.selectContact(); - setState(() { - _contact = contact!; - // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); - }); - }, ), - ):Container() + SizedBox( + width: 10.w, + ), + isHaveBtn + ? Container( + width: 50.w, + height: 50.w, + decoration: const BoxDecoration( + color: Colors.white, + image: DecorationImage( + image: AssetImage('images/icon_lock.png'), + fit: BoxFit.fill), + ), + alignment: Alignment.center, + child: InkWell( + onTap: () async { + Contact? contact = await _contactPicker.selectContact(); + setState(() { + _contact = contact!; + // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); + }); + }, + ), + ) + : Container() ], ), ); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart index f3d743dc..8378e94f 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart @@ -1,6 +1,6 @@ - import 'dart:convert'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -25,35 +25,56 @@ class _AutomaticBlockingPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.automaticBlocking!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:ListView( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.automaticBlocking!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.automaticBlocking!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), - Container(height: 10.h,), - Builder( - builder: (context) { - return CommonItem(leftTitel:TranslationLoader.lanKeys!.delayTime!.tr, rightTitle:"5s", isHaveLine: false, isHaveDirection: true, action: (){ - var list = ["5S", "10S", "15S", "30S", "60S", TranslationLoader.lanKeys!.custom!.tr]; - ShowBottomSheetTool().showSingleRowPicker( - //上下文 - context, - //默认的索引 - normalIndex: 2, - title: TranslationLoader.lanKeys!.time!.tr, - cancelTitle: TranslationLoader.lanKeys!.cancel!.tr, - sureTitle: TranslationLoader.lanKeys!.sure!.tr, - //要显示的列表 - //可自定义数据适配器 - //adapter: PickerAdapter(), - data: list, - //选择事件的回调 - clickCallBack: (int index, var str) { - - }); - }); - } + CommonItem( + leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, + rightTitle: "", + isHaveLine: false, + isHaveRightWidget: true, + rightWidget: + Container(width: 80.w, height: 50.h, child: _switch())), + Container( + height: 10.h, + ), + Builder(builder: (context) { + return CommonItem( + leftTitel: TranslationLoader.lanKeys!.delayTime!.tr, + rightTitle: "5s", + isHaveLine: false, + isHaveDirection: true, + action: () { + var list = [ + "5S", + "10S", + "15S", + "30S", + "60S", + TranslationLoader.lanKeys!.custom!.tr + ]; + ShowBottomSheetTool().showSingleRowPicker( + //上下文 + context, + //默认的索引 + normalIndex: 2, + title: TranslationLoader.lanKeys!.time!.tr, + cancelTitle: TranslationLoader.lanKeys!.cancel!.tr, + sureTitle: TranslationLoader.lanKeys!.sure!.tr, + //要显示的列表 + //可自定义数据适配器 + //adapter: PickerAdapter(), + data: list, + //选择事件的回调 + clickCallBack: (int index, var str) {}); + }); + }), + Container( + height: 10.h, ), - Container(height: 10.h,), Visibility( visible: true, child: Container( @@ -62,7 +83,10 @@ class _AutomaticBlockingPageState extends State { child: Column( children: [ Row( - children: [Text("${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)"),], + children: [ + Text( + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)"), + ], ), TextField( //输入框一行 @@ -71,43 +95,49 @@ class _AutomaticBlockingPageState extends State { autofocus: false, decoration: InputDecoration( //输入里面输入文字内边距设置 - contentPadding: const EdgeInsets.only( - top: 12.0, bottom: 8.0), - hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)", + contentPadding: + const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)", hintStyle: TextStyle(fontSize: 30.sp), //不需要输入框下划线 border: InputBorder.none, ), ), - Container(height: 0.5.h, color: Colors.grey,), + Container( + height: 0.5.h, + color: Colors.grey, + ), ], ), - ) - ), + )), Container( padding: EdgeInsets.all(30.w), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.automaticBlockingTip!.tr)), + Expanded( + child: Text( + TranslationLoader.lanKeys!.automaticBlockingTip!.tr)), ], ), ) ], - ) - ); + )); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart b/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart index a62e92f9..5ecce6f0 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart @@ -59,7 +59,7 @@ class _ImportOtherLockDataPageState extends State { Widget _searchWidget() { return Container( height: 60.h, - // margin: EdgeInsets.only(top:20.w), + margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -67,17 +67,19 @@ class _ImportOtherLockDataPageState extends State { maxLines: 1, // controller: _controller, autofocus: false, + decoration: InputDecoration( //输入里面输入文字内边距设置 - contentPadding: EdgeInsets.only( - top: 8.h, left: -25.0.h, right: -15.0.h, bottom: 8.0.h), + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart index 78293a6c..84c9e4fb 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart @@ -1,4 +1,4 @@ - +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -22,100 +22,227 @@ class _LockSetPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.set!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Column( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.set!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Column( children: [ Expanded( child: ListView( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.basicInformation!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.basicInformationPage); - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.wirelessKeyboard!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.wirelessKeyboardPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.doorMagnetic!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.doorMagneticPage); - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.remoteUnlocking!.tr, rightTitle:TranslationLoader.lanKeys!.closed!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.remoteUnlockingPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.automaticBlocking!.tr, rightTitle:"5s", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.automaticBlockingPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.normallyOpenMode!.tr, rightTitle:TranslationLoader.lanKeys!.closed!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.normallyOpenModePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.lockSound!.tr, rightTitle:"高", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.lockSoundSetPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.burglarAlarm!.tr, rightTitle:TranslationLoader.lanKeys!.opened!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.burglarAlarmPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.resetButton!.tr, rightTitle:TranslationLoader.lanKeys!.opened!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.resetButtonPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.unlockQRCode!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.unlockQRCodePage); - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.lockTime!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.lockTimePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.diagnose!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.diagnosePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.uploadData!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.uploadDataPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.importOtherLockData!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.importOtherLockDataPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.lockEscalation!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.lockEscalationPage); - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:"Amazon Alexa", rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:"Google Home", rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.markedHouseState!.tr, rightTitle:"空闲", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.markedHouseStatePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.checkingIn!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), - CommonItem(leftTitel:TranslationLoader.lanKeys!.unlockReminder!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), - SizedBox(height: 30.h,), - SubmitBtn(btnName: TranslationLoader.lanKeys!.delete!.tr, - borderRadius: 20.w, - fontSize: 32.sp, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), - padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () { - - } + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.basicInformation!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.basicInformationPage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.wirelessKeyboard!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.wirelessKeyboardPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.doorMagnetic!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.doorMagneticPage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr, + rightTitle: TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.remoteUnlockingPage); + }), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.automaticBlocking!.tr, + rightTitle: "5s", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.automaticBlockingPage); + }), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.normallyOpenMode!.tr, + rightTitle: TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.normallyOpenModePage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockSound!.tr, + rightTitle: "高", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.lockSoundSetPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr, + rightTitle: TranslationLoader.lanKeys!.opened!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.burglarAlarmPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, + rightTitle: TranslationLoader.lanKeys!.opened!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.resetButtonPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.unlockQRCode!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.unlockQRCodePage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockTime!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.lockTimePage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.diagnose!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.diagnosePage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.uploadData!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.uploadDataPage); + }), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.importOtherLockData!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.importOtherLockDataPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockEscalation!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.lockEscalationPage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: "Amazon Alexa", + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: "Google Home", + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.markedHouseState!.tr, + rightTitle: "空闲", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.markedHouseStatePage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: Container( + width: 80.w, height: 50.h, child: _switch())), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr, + rightTitle: "", + isHaveLine: false, + isHaveRightWidget: true, + rightWidget: Container( + width: 80.w, height: 50.h, child: _switch())), + SizedBox( + height: 30.h, + ), + Container( + padding: EdgeInsets.only(left: 20.w, right: 20.w), + child: SubmitBtn( + btnName: TranslationLoader.lanKeys!.delete!.tr, + isDelete: true, + onClick: () {}), ), ], ), ), ], - ) - ); + )); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } } diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart index 1b7102d3..f11735e8 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart @@ -1,4 +1,4 @@ - +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -17,97 +17,163 @@ class LockSoundSetPage extends StatefulWidget { } class _LockSoundSetPageState extends State { - @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.lockSound!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:ListView( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.lockSound!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.lockSound!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), - Container(height: 10.h,), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockSound!.tr, + rightTitle: "", + isHaveLine: false, + isHaveRightWidget: true, + rightWidget: + Container(width: 80.w, height: 50.h, child: _switch())), + Container( + height: 10.h, + ), Container( padding: EdgeInsets.all(30.w), color: Colors.white, child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.lockSoundTip!.tr)), + Expanded( + child: Text(TranslationLoader.lanKeys!.lockSoundTip!.tr)), ], ), ), - SizedBox(height: 10.h,), + SizedBox( + height: 10.h, + ), Visibility( visible: true, child: Container( color: Colors.white, child: Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.pleaseSeletLockVolume!.tr, rightTitle:"", isHaveLine: true), - CommonItem(leftTitel:TranslationLoader.lanKeys!.low!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.pleaseSeletLockVolume!.tr, + rightTitle: "", + isHaveLine: true), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.low!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), - CommonItem(leftTitel:TranslationLoader.lanKeys!.lower!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lower!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), - CommonItem(leftTitel:TranslationLoader.lanKeys!.medium!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.medium!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), - CommonItem(leftTitel:TranslationLoader.lanKeys!.higher!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.higher!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), - CommonItem(leftTitel:TranslationLoader.lanKeys!.high!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.high!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), ], ), - ) - ), + )), SubmitBtn( btnName: TranslationLoader.lanKeys!.save!.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: (){ + onClick: () { // Navigator.pushNamed(context, Routers.nearbyLockPage); - } - ), + }), ], - ) - ); + )); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart index 3962352e..805b157b 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart @@ -1,4 +1,4 @@ - +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -17,27 +17,41 @@ class NormallyOpenModePage extends StatefulWidget { } class _NormallyOpenModePageState extends State { - @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.normallyOpenMode!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:ListView( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.normallyOpenMode!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.normallyOpenMode!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), - Container(height: 10.h,), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, + rightTitle: "", + isHaveLine: false, + isHaveRightWidget: true, + rightWidget: + Container(width: 80.w, height: 50.h, child: _switch())), + Container( + height: 10.h, + ), Container( padding: EdgeInsets.all(30.w), color: Colors.white, child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.normallyOpenModeTip!.tr)), + Expanded( + child: Text( + TranslationLoader.lanKeys!.normallyOpenModeTip!.tr)), ], ), ), - SizedBox(height: 10.h,), + SizedBox( + height: 10.h, + ), Visibility( visible: true, child: Container( @@ -45,27 +59,26 @@ class _NormallyOpenModePageState extends State { child: Column( children: [ topWidget(), - SizedBox(height: 10.h,), + SizedBox( + height: 10.h, + ), bottomWidget() ], ), - ) - ), + )), SubmitBtn( btnName: TranslationLoader.lanKeys!.save!.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: (){ + onClick: () { // Navigator.pushNamed(context, Routers.nearbyLockPage); - } - ), + }), ], - ) - ); + )); } - Widget topWidget(){ + Widget topWidget() { return Container( height: 150.h, width: 1.sw, @@ -76,29 +89,28 @@ class _NormallyOpenModePageState extends State { Container( height: 60.h, // color: Colors.red, - padding: EdgeInsets.only(left:20.h, top: 15.h), - child: Text("${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.date!.tr}", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600)) - ), + padding: EdgeInsets.only(left: 20.h, top: 15.h), + child: Text( + "${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.date!.tr}", + style: + TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600))), Container( height: 90.h, - padding: EdgeInsets.only(left:10.w, right: 10.w), + padding: EdgeInsets.only(left: 10.w, right: 10.w), child: GridView.builder( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 7, - childAspectRatio: 1.0 - ), + crossAxisCount: 7, childAspectRatio: 1.0), itemCount: 7, physics: const NeverScrollableScrollPhysics(), - itemBuilder: (context,index){ + itemBuilder: (context, index) { return btnItem(index); - }) - ), + })), ], ), ); } - Widget btnItem(int index){ + Widget btnItem(int index) { String dateStr; switch (index) { case 0: @@ -127,9 +139,7 @@ class _NormallyOpenModePageState extends State { break; } return GestureDetector( - onTap: (){ - - }, + onTap: () {}, child: Container( width: 70.h, height: 70.h, @@ -144,55 +154,74 @@ class _NormallyOpenModePageState extends State { ); } - Widget bottomWidget(){ + Widget bottomWidget() { return Column( children: [ - Container(color: AppColors.mainBackgroundColor, height: 10.h,), - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.time!.tr}", rightTitle:"", isHaveLine: true, isHaveRightWidget: true, - rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row( - children: [ - Text(TranslationLoader.lanKeys!.allDay!.tr), - SizedBox(width: 5.w,), - Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,), - ], - ), - )), + Container( + color: AppColors.mainBackgroundColor, + height: 10.h, + ), + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.time!.tr}", + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: () {}, + child: Row( + children: [ + Text(TranslationLoader.lanKeys!.allDay!.tr), + SizedBox( + width: 5.w, + ), + Image.asset( + 'images/icon_round_unSelet.png', + width: 40.w, + height: 40.w, + ), + ], + ), + )), Visibility( visible: true, child: Container( color: Colors.white, child: Column( children: [ - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.begin!.tr} ${TranslationLoader.lanKeys!.time!.tr}", rightTitle:"", isHaveDirection: true, isHaveLine: true, action:(){ - - }), - CommonItem(leftTitel:"${TranslationLoader.lanKeys!.end!.tr} ${TranslationLoader.lanKeys!.time!.tr}", rightTitle:"", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.begin!.tr} ${TranslationLoader.lanKeys!.time!.tr}", + rightTitle: "", + isHaveDirection: true, + isHaveLine: true, + action: () {}), + CommonItem( + leftTitel: + "${TranslationLoader.lanKeys!.end!.tr} ${TranslationLoader.lanKeys!.time!.tr}", + rightTitle: "", + isHaveDirection: true, + action: () {}), Container(height: 10.h), ], ), - ) - ), - + )), ], ); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index eec1a81b..670c7a61 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -32,7 +32,7 @@ class _LockDetailPageState extends State { Widget topWidget() { return Column( children: [ - SizedBox(height: 40.h), + SizedBox(height: 30.h), Stack( alignment: Alignment.centerRight, children: [ @@ -41,48 +41,49 @@ class _LockDetailPageState extends State { child: Text( "MCBN01-ea9240", style: - TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500), + TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w400), )), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Text( "100%", - style: - TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), + style: TextStyle( + fontSize: 18.sp, color: AppColors.darkGrayTextColor), ), - SizedBox(width: 5.w), + SizedBox(width: 2.w), Image.asset( 'images/main/icon_main_cell.png', - width: 50.w, - height: 50.w, + width: 30.w, + height: 24.w, ), SizedBox(width: 30.w), ], ), ], ), - SizedBox(height: 40.h), + SizedBox(height: 30.h), Container( - width: 1.sw, + // width: 1.sw, + color: Colors.white, height: 280.w, child: Stack( children: [ Center( child: Image.asset('images/main/icon_main_openLockBtn.png', - width: 280.w, height: 280.w)), + width: 268.w, height: 268.w)), Align( - alignment: const Alignment(0.5, 1), + alignment: const Alignment(0.6, 1), child: Image.asset( 'images/main/icon_main_remoteUnlocking.png', - width: 90.w, - height: 90.w, + width: 50.w, + height: 52.w, )), ], ), ), SizedBox( - height: 40.h, + height: 30.h, ), Row( mainAxisAlignment: MainAxisAlignment.center, @@ -90,18 +91,18 @@ class _LockDetailPageState extends State { Text( TranslationLoader.lanKeys!.clickUnlockAndHoldDownClose!.tr, style: TextStyle( - fontSize: 24.sp, + fontSize: 20.sp, color: const Color(0xFFB3B3B3), fontWeight: FontWeight.w500), ), ], ), SizedBox( - height: 40.h, + height: 30.h, ), Divider( height: 1, - color: const Color(0xFFB3B3B3), + color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ) @@ -111,14 +112,14 @@ class _LockDetailPageState extends State { Widget bottomWidget() { return Container( - margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 25.h), + margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 40.h), // color: Colors.blue, child: SizedBox( child: GridView.count( crossAxisCount: 4, // childAspectRatio: 3, crossAxisSpacing: 20.w, - mainAxisSpacing: 10.h, + mainAxisSpacing: 0.h, physics: const NeverScrollableScrollPhysics(), children: [ bottomItem('images/main/icon_main_clockingIn.png', @@ -167,8 +168,8 @@ class _LockDetailPageState extends State { } Widget bottomItem(String iconUrl, String name, Function() onClick) { - var width = 65.w; - var height = 70.h; + var width = 40.w; + var height = 36.h; return GestureDetector( onTap: onClick, child: Container( @@ -183,11 +184,11 @@ class _LockDetailPageState extends State { child: Image.asset(iconUrl, width: width, height: height, fit: BoxFit.fitWidth), ), - SizedBox(height: 15.w), + SizedBox(height: 10.w), Expanded( child: Text(name, style: TextStyle( - fontSize: 25.sp, color: const Color(0xff333333)), + fontSize: 20.sp, color: AppColors.blackColor), textAlign: TextAlign.center)) ], )), diff --git a/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart b/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart index 83ae0f5e..06924cd6 100644 --- a/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart +++ b/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart @@ -67,7 +67,7 @@ class _LockOperatingRecordPageState extends State { Widget _searchWidget() { return Container( height: 60.h, - margin: EdgeInsets.only(left: 20.w, right: 20.w), + margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -75,18 +75,19 @@ class _LockOperatingRecordPageState extends State { maxLines: 1, // controller: _controller, autofocus: false, + decoration: InputDecoration( //输入里面输入文字内边距设置 contentPadding: const EdgeInsets.only( - top: 12.0, left: -22.0, right: -15.0, bottom: 10.0), + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, - hintStyle: TextStyle(fontSize: 28.sp), + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart index 0a37848f..12de22c9 100644 --- a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart @@ -24,51 +24,78 @@ class _OtherTypeKeyDetailPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: "${getAppBarTitle(type)}${TranslationLoader.lanKeys!.number!.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ - TextButton( - child: Text(TranslationLoader.lanKeys!.share!.tr, style: const TextStyle(color: Colors.white),), - onPressed: (){ - - },), - ],), + appBar: TitleAppBar( + barTitle: + "${getAppBarTitle(type)}${TranslationLoader.lanKeys!.number!.tr}", + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.share!.tr, + style: const TextStyle(color: Colors.white), + ), + onPressed: () {}, + ), + ], + ), body: Column( children: [ - CommonItem(leftTitel:"${getAppBarTitle(type)}${TranslationLoader.lanKeys!.number!.tr}", rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.periodValidity!.tr, rightTitle:"永久", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); - }), + CommonItem( + leftTitel: + "${getAppBarTitle(type)}${TranslationLoader.lanKeys!.number!.tr}", + rightTitle: "98765432", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.name!.tr, + rightTitle: "你好", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, + rightTitle: "永久", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyDetailChangeDate); + }), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.additive!.tr, rightTitle:"15080825640", action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.addTime!.tr, rightTitle:"2020.06.21 11:49", action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.additive!.tr, + rightTitle: "15080825640", + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.addTime!.tr, + rightTitle: "2020.06.21 11:49", + action: () {}), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.operatingRecord!.tr, rightTitle:"", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, + rightTitle: "", + isHaveDirection: true, + action: () {}), Container(height: 40.h), SubmitBtn( btnName: TranslationLoader.lanKeys!.delete!.tr, + isDelete: true, 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), - onClick: (){ - - } - ), + onClick: () {}), ], ), ); } - String getAppBarTitle(int type){ + String getAppBarTitle(int type) { String title = ""; switch (type) { case 0: @@ -86,7 +113,12 @@ class _OtherTypeKeyDetailPageState extends State { return title; } - Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget? rightWidget, Function()? action}){ + Widget commonItem(String leftTitle, String rightTitle, + {bool isHaveDirection = false, + bool isHaveLine = false, + bool isHaveRightWidget = false, + Widget? rightWidget, + Function()? action}) { return GestureDetector( onTap: action, child: Column( @@ -95,27 +127,50 @@ class _OtherTypeKeyDetailPageState extends State { Container( // height: 80.h, 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( children: [ - SizedBox(width:20.w), - Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), - SizedBox(width:20.w), + SizedBox(width: 20.w), + Text( + leftTitle, + style: + TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), + ), + SizedBox(width: 20.w), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, 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), - isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + SizedBox(width: 5.w), + isHaveDirection + ? Image.asset( + 'images/icon_right.png', + width: 50.w, + height: 50.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() ], ), ); @@ -131,7 +186,9 @@ class _OtherTypeKeyDetailPageState extends State { title: const Text("修改密码"), content: Column( children: [ - const SizedBox(height: 10,), + const SizedBox( + height: 10, + ), Container( height: 80.h, // color: Colors.white, @@ -191,5 +248,4 @@ class _OtherTypeKeyDetailPageState extends State { ); }); } - } diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart index ec538074..c745a7a5 100644 --- a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart @@ -76,7 +76,7 @@ class _OtherTypeKeyListPageState extends State { Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -84,17 +84,19 @@ class _OtherTypeKeyListPageState extends State { 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart index fa178d0c..9d18d11c 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart @@ -22,51 +22,81 @@ class _PasswordKeyDetailPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.passwordDetail!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ - TextButton( - child: const Text("分享", style: TextStyle(color: Colors.white),), - onPressed: (){ - - },), - ],), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.passwordDetail!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: const Text( + "分享", + style: TextStyle(color: Colors.white), + ), + onPressed: () {}, + ), + ], + ), body: Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.password!.tr, rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"永久", isHaveDirection: true, action:(){ - Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.password!.tr, + rightTitle: "98765432", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.name!.tr, + rightTitle: "你好", + isHaveDirection: true, + isHaveLine: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "永久", + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.electronicKeyDetailChangeDate); + }), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.sender!.tr, rightTitle:"15080825640", action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.senderTime!.tr, rightTitle:"2020.06.21 11:49", action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.sender!.tr, + rightTitle: "15080825640", + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.senderTime!.tr, + rightTitle: "2020.06.21 11:49", + action: () {}), Container(height: 10.h), - CommonItem(leftTitel:TranslationLoader.lanKeys!.operatingRecord!.tr, rightTitle:"", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, + rightTitle: "", + isHaveDirection: true, + action: () {}), Container(height: 40.h), SubmitBtn( btnName: TranslationLoader.lanKeys!.delete!.tr, + isDelete: true, 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), - onClick: (){ - - } - ), + onClick: () {}), ], ), ); } - Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget? rightWidget, Function()? action}){ + Widget commonItem(String leftTitle, String rightTitle, + {bool isHaveDirection = false, + bool isHaveLine = false, + bool isHaveRightWidget = false, + Widget? rightWidget, + Function()? action}) { return GestureDetector( onTap: action, child: Column( @@ -75,27 +105,50 @@ class _PasswordKeyDetailPageState extends State { Container( // height: 80.h, 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( children: [ - SizedBox(width:20.w), - Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), - SizedBox(width:20.w), + SizedBox(width: 20.w), + Text( + leftTitle, + style: + TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), + ), + SizedBox(width: 20.w), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, 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), - isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + SizedBox(width: 5.w), + isHaveDirection + ? Image.asset( + 'images/icon_right.png', + width: 50.w, + height: 50.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() ], ), ); @@ -108,10 +161,13 @@ class _PasswordKeyDetailPageState extends State { return Card( color: const Color(0x00FFFFFF), child: CupertinoAlertDialog( - title: Text("${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.password!.tr}"), + title: Text( + "${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.password!.tr}"), content: Column( children: [ - const SizedBox(height: 10,), + const SizedBox( + height: 10, + ), Container( height: 80.h, // color: Colors.white, @@ -171,5 +227,4 @@ class _PasswordKeyDetailPageState extends State { ); }); } - } diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart index b1b742ca..e2d59d7a 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart @@ -55,7 +55,7 @@ class _PasswordKeyListPageState extends State { Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -63,17 +63,19 @@ class _PasswordKeyListPageState extends State { 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart index 411f7224..3c9cb002 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -11,13 +12,14 @@ import '../../../../translations/trans_lib.dart'; class PasswordKeyPerpetualPage extends StatefulWidget { final String type; - const PasswordKeyPerpetualPage({Key? key, required this.type}) : super(key: key); + const PasswordKeyPerpetualPage({Key? key, required this.type}) + : super(key: key); @override - State createState() => _PasswordKeyPerpetualPageState(); + State createState() => + _PasswordKeyPerpetualPageState(); } class _PasswordKeyPerpetualPageState extends State { - final TextEditingController _controller = TextEditingController(); @override @@ -29,10 +31,9 @@ class _PasswordKeyPerpetualPageState extends State { void initState() { // TODO: implement initState super.initState(); - } - Widget indexChangeWidget(){ + Widget indexChangeWidget() { switch (int.parse(widget.type)) { case 0: { @@ -40,7 +41,10 @@ class _PasswordKeyPerpetualPageState extends State { // return sendElectronicKeySucceed(); return Column( children: [ - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip1!.tr) ], ); @@ -52,7 +56,10 @@ class _PasswordKeyPerpetualPageState extends State { return Column( children: [ keyTimeLimitWidget(), - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip2!.tr) ], ); @@ -63,7 +70,10 @@ class _PasswordKeyPerpetualPageState extends State { // 单次 return Column( children: [ - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip3!.tr) ], ); @@ -75,8 +85,12 @@ class _PasswordKeyPerpetualPageState extends State { return Column( children: [ keyIfPerpetualWidget(), - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), - perpetualKeyWidget(TranslationLoader.lanKeys!.password!.tr, "请输入6-9位数字", _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), + perpetualKeyWidget(TranslationLoader.lanKeys!.password!.tr, + "请输入6-9位数字", _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip4!.tr) ], ); @@ -88,7 +102,10 @@ class _PasswordKeyPerpetualPageState extends State { return Column( children: [ keyCirculationWidget(), - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip5!.tr) ], ); @@ -99,7 +116,10 @@ class _PasswordKeyPerpetualPageState extends State { // 清空 return Column( children: [ - perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, _controller), + perpetualKeyWidget( + TranslationLoader.lanKeys!.name!.tr, + TranslationLoader.lanKeys!.pleaseNameYourPassword!.tr, + _controller), keyBottomWidget(TranslationLoader.lanKeys!.getPasswordTip6!.tr) ], ); @@ -112,61 +132,86 @@ class _PasswordKeyPerpetualPageState extends State { } // 密码命名输入框 - Widget perpetualKeyWidget(String titleStr, String rightTitle, TextEditingController controller){ + Widget perpetualKeyWidget( + String titleStr, String rightTitle, TextEditingController controller) { return Column( children: [ Container(height: 10.h), - CommonItem(leftTitel:titleStr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), + CommonItem( + leftTitel: titleStr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: getTFWidget(rightTitle)), Container(height: 10.h), ], ); } // 限时顶部选择日期 - Widget keyTimeLimitWidget(){ + Widget keyTimeLimitWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ - // _showDatePicker(); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ - // _showDatePicker(); - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveLine: true, + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), Container(height: 10.h), ], ); } // 自定义是否永久 - Widget keyIfPerpetualWidget(){ + Widget keyIfPerpetualWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.permanent!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.permanent!.tr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: Container(width: 80.w, height: 50.h, child: _switch()), + action: () {}), Container(height: 10.h), ], ); } // 循环 - Widget keyCirculationWidget(){ + Widget keyCirculationWidget() { return Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.recursiveDevice!.tr, rightTitle:"周末", isHaveLine: true, isHaveDirection: true, action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"10:00", isHaveLine: true, isHaveDirection: true, action:(){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"11:00", isHaveDirection: true, action:(){ - - }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.recursiveDevice!.tr, + rightTitle: "周末", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "10:00", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "11:00", + isHaveDirection: true, + action: () {}), ], ); } - Widget keyBottomWidget(String tipStr){ + Widget keyBottomWidget(String tipStr) { return Column( children: [ Container( @@ -174,21 +219,26 @@ class _PasswordKeyPerpetualPageState extends State { child: Row( // crossAxisAlignment: CrossAxisAlignment.start, children: [ - Expanded(child: Text(tipStr, textAlign: TextAlign.start,)), + Expanded( + child: Text( + tipStr, + textAlign: TextAlign.start, + )), ], ), ), - SubmitBtn(btnName: TranslationLoader.lanKeys!.getPassword!.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: (){ - - } - ), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.getPassword!.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: () {}), ], ); } // 发送电子钥匙成功 - Widget sendElectronicKeySucceed(){ + Widget sendElectronicKeySucceed() { return Column( children: [ Container( @@ -197,31 +247,70 @@ class _PasswordKeyPerpetualPageState extends State { color: Colors.white, child: Column( children: [ - SizedBox(height: 30.h,), - Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), - SizedBox(height: 20.h,), - Text("操作成功,密码为",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), - SizedBox(height: 10.h,), - Text("62689876",style: TextStyle(fontSize: 60.sp, color: Colors.black, fontWeight: FontWeight.w500),), + SizedBox( + height: 30.h, + ), + Image.asset( + 'images/main/icon_main_addLock.png', + width: 150.w, + height: 150.w, + color: AppColors.mainColor, + ), + SizedBox( + height: 20.h, + ), + Text( + "操作成功,密码为", + style: TextStyle( + fontSize: 32.sp, + color: Colors.black, + fontWeight: FontWeight.w500), + ), + SizedBox( + height: 10.h, + ), + Text( + "62689876", + style: TextStyle( + fontSize: 60.sp, + color: Colors.black, + fontWeight: FontWeight.w500), + ), ], ), ), - SizedBox(height: 20.h,), - 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: (){ - - }), + SizedBox( + height: 20.h, + ), + 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: () {}), ], ); } // 接受者信息输入框 - Widget getTFWidget(String tfStr){ + Widget getTFWidget(String tfStr) { return Container( height: 50.h, width: 500.w, @@ -233,7 +322,7 @@ class _PasswordKeyPerpetualPageState extends State { maxLines: 1, // controller: _controller, autofocus: false, - textAlign:TextAlign.end, + textAlign: TextAlign.end, decoration: InputDecoration( //输入里面输入文字内边距设置 contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), @@ -243,22 +332,26 @@ class _PasswordKeyPerpetualPageState extends State { ), ), ), - SizedBox(width: 10.w,), + SizedBox( + width: 10.w, + ), ], ), ); } - Switch _switch(){ - return Switch( - value: false, - onChanged: (value){ - // switchValue = !switchValue; - setState(() { - - }); - } + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, ); } - } diff --git a/star_lock/lib/main/lockMian/lockMain_page.dart b/star_lock/lib/main/lockMian/lockMain_page.dart index d385a814..9d7954b3 100644 --- a/star_lock/lib/main/lockMian/lockMain_page.dart +++ b/star_lock/lib/main/lockMian/lockMain_page.dart @@ -21,7 +21,7 @@ class StarLockMain extends StatefulWidget { State createState() => _StarLockMainState(); } -class _StarLockMainState extends State with BaseWidget{ +class _StarLockMainState extends State with BaseWidget { // final logic = Get.put(GetxBle()); StreamSubscription? _streamSubscription; @@ -41,21 +41,29 @@ class _StarLockMainState extends State with BaseWidget{ GetxBle.call.scanner.startScan([]); } - @override Widget build(BuildContext context) { return Scaffold( backgroundColor: const Color(0xFFF5F5F5), - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.starLock!.tr, haveBack:false, haveOtherLeftWidget: true, leftWidget: Builder( - builder: (context) => IconButton( - icon: Image.asset("images/main/mainLeft_menu_icon.png",color:Colors.white, width: 60.w, height: 60.w,), - onPressed: () { - Scaffold.of(context).openDrawer(); - }, - ) - ),backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.starLock!.tr, + haveBack: false, + haveOtherLeftWidget: true, + leftWidget: Builder( + builder: (context) => IconButton( + icon: Image.asset( + "images/main/mainLeft_menu_icon.png", + color: Colors.white, + width: 44.w, + height: 44.w, + ), + onPressed: () { + Scaffold.of(context).openDrawer(); + }, + )), + backgroundColor: AppColors.mainColor), drawer: Drawer( - width:1.sw/3*2, + width: 1.sw / 3 * 2, child: StarLockMinePage(), ), body: getLockList(), @@ -63,57 +71,75 @@ class _StarLockMainState extends State with BaseWidget{ ); } - Widget getLockList(){ + Widget getLockList() { return ListView.builder( - itemCount:10, - itemBuilder: (c, index){ - return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ + itemCount: 10, + itemBuilder: (c, index) { + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () { Navigator.pushNamed(context, Routers.lockDetailPage); }); - } - ); + }); } - Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function() action){ + Widget nearbyLockItem( + String lockTypeIcon, String lockTypeTitle, Function() action) { return GestureDetector( onTap: action, child: Container( - height: 150.h, + height: 122.h, margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), - decoration: BoxDecoration( + decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(20.w), ), child: Column( // mainAxisAlignment: MainAxisAlignment.center, children: [ - SizedBox(height: 30.h,), + SizedBox( + height: 20.h, + ), Row( children: [ - SizedBox(width:20.w), - Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), - SizedBox(width:20.w), + SizedBox(width: 30.w), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + Text( + lockTypeTitle, + style: TextStyle( + fontSize: 24.sp, fontWeight: FontWeight.w500), + ), ], ), ), - SizedBox(width:20.w), - Text("100%", style: 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(width: 20.w), + Text( + "100%", + style: TextStyle( + fontSize: 18.sp, color: AppColors.darkGrayTextColor), + ), + SizedBox(width: 2.w), + Image.asset( + 'images/main/icon_main_cell.png', + width: 30.w, + height: 24.w, + ), + SizedBox(width: 30.w), ], ), - SizedBox(height: 20.h,), + SizedBox( + height: 30.h, + ), Row( children: [ - SizedBox(width:30.w), - Text("永久/管理员", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width: 30.w), + Text( + "永久/管理员", + style: TextStyle( + fontSize: 18.sp, color: AppColors.darkGrayTextColor), + ), ], ), ], @@ -122,7 +148,7 @@ class _StarLockMainState extends State with BaseWidget{ ); } - Widget unHaveData(){ + Widget unHaveData() { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -134,38 +160,46 @@ class _StarLockMainState extends State with BaseWidget{ border: Border.all(width: 4, color: AppColors.mainColor), borderRadius: BorderRadius.circular(75), ), - child:InkWell( + child: InkWell( child: Padding( padding: const EdgeInsets.all(30.0), - child: Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w,), + child: Image.asset( + 'images/main/icon_main_addLock.png', + width: 150.w, + height: 150.w, + ), ), onTap: () { //实现回调函数 - Navigator.pushNamed(context, Routers.seletLockTypePage, - // arguments: { - // "url": ConstConfig.privacAgreementUrl, - // "title": '隐私政策' - // } + Navigator.pushNamed( + context, Routers.seletLockTypePage, + // arguments: { + // "url": ConstConfig.privacAgreementUrl, + // "title": '隐私政策' + // } ); }, - ) - ), + )), ], ), - SizedBox(height: h(50.h),), + SizedBox( + height: h(50.h), + ), Container( padding: EdgeInsets.all(30.w), - child: Text(TranslationLoader.lanKeys!.whenAddingLockThePhoneMustBeNextToTheLock!.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w800, color: AppColors.mainColor),) - ) + child: Text( + TranslationLoader + .lanKeys!.whenAddingLockThePhoneMustBeNextToTheLock!.tr, + style: TextStyle( + fontSize: 30.sp, + fontWeight: FontWeight.w800, + color: AppColors.mainColor), + )) ], ); } - void onShow(){ + void onShow() {} - } - - void onHide(){ - - } + void onHide() {} } diff --git a/star_lock/lib/mine/about/about_page.dart b/star_lock/lib/mine/about/about_page.dart index cc3d47a4..2e15f739 100644 --- a/star_lock/lib/mine/about/about_page.dart +++ b/star_lock/lib/mine/about/about_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -20,23 +19,72 @@ class _AbountPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.about!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.about!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - SizedBox(height: 150.h,), + SizedBox( + height: 150.h, + ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset("images/icon_main_1024.png", width: 200.w, height: 200.w,), + Image.asset( + "images/icon_main_1024.png", + width: 200.w, + height: 200.w, + ), ], ), - SizedBox(height: 30.h,), + SizedBox( + height: 30.h, + ), const Text("通通锁 6.7.0"), - SizedBox(height: 80.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.introduce!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - - }), + SizedBox( + height: 80.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.introduce!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.userAgreement!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.privacyPolicy!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.personalInformationCollectionList!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.applicationPermissionDescription!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.thirdPartyInformationSharingList!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), ], ), ); diff --git a/star_lock/lib/mine/addLock/addLock/addLock_page.dart b/star_lock/lib/mine/addLock/addLock/addLock_page.dart index 6c8cd325..cd10b81f 100644 --- a/star_lock/lib/mine/addLock/addLock/addLock_page.dart +++ b/star_lock/lib/mine/addLock/addLock/addLock_page.dart @@ -37,7 +37,9 @@ class _AddLockPageState extends State with BaseWidget { children: [ Text( TranslationLoader.lanKeys!.lightTouchScreen!.tr, - style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500), + style: TextStyle( + fontSize: 24.sp, + ), ), ], ), @@ -57,7 +59,7 @@ class _AddLockPageState extends State with BaseWidget { children: [ Text( TranslationLoader.lanKeys!.lightTouchScreenTip!.tr, - style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), + style: TextStyle(fontSize: 20.sp, fontWeight: FontWeight.w500), ), ], ), diff --git a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart index addf5cbd..ad7c8070 100644 --- a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart +++ b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart @@ -17,20 +17,24 @@ class _NearbyLockPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.nearbyLock!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body: ListView.builder( - itemCount:20, - itemBuilder: (c, index){ - return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ - Navigator.pushNamed(context, Routers.lockAddressPage); - }); - } - ), + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.nearbyLock!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemCount: 20, + itemBuilder: (c, index) { + return nearbyLockItem( + 'images/icon_lockGroup_item.png', "MCBN01-ea9240", () { + Navigator.pushNamed(context, Routers.lockAddressPage); + }); + }), ); } - Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function() action){ + Widget nearbyLockItem( + String lockTypeIcon, String lockTypeTitle, Function() action) { return GestureDetector( onTap: action, child: Column( @@ -41,33 +45,52 @@ class _NearbyLockPageState extends State { color: Colors.white, child: Row( children: [ - SizedBox(width:20.w), - Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), - SizedBox(width:20.w), - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), - ], - ), + SizedBox(width: 20.w), + Image.asset( + lockTypeIcon, + width: 50.w, + height: 50.w, ), - SizedBox(width:20.w), - Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,), - SizedBox(width:30.w), + SizedBox(width: 20.w), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + lockTypeTitle, + style: TextStyle( + fontSize: 20.sp, color: AppColors.darkGrayTextColor), + ), + ], + ), + SizedBox( + width: 10.w, + ), + Image.asset( + "images/mine/icon_mine_main_about.png", + width: 22.w, + height: 22.w, + ), + Expanded(child: SizedBox(width: 20.w)), + Image.asset( + 'images/main/icon_main_addLock.png', + width: 28.w, + height: 28.w, + ), + SizedBox(width: 30.w), ], ), ), - Container(height: 0.5.h, color: Colors.grey,) + Container( + height: 0.5.h, + color: Colors.grey, + ) ], ), ); } - void onShow(){ - } + void onShow() {} - void onHide(){ - } + void onHide() {} } diff --git a/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart index 27c7af92..632e205f 100644 --- a/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart +++ b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart @@ -32,7 +32,7 @@ class _SeletLockTypePageState extends State with BaseWidget { padding: const EdgeInsets.only(left: 10, right: 10, bottom: 10), child: GridView.count( crossAxisCount: 2, - childAspectRatio: 3, + childAspectRatio: 2.83, crossAxisSpacing: 10, mainAxisSpacing: 10, children: [ @@ -48,22 +48,24 @@ class _SeletLockTypePageState extends State with BaseWidget { TranslationLoader.lanKeys!.safeLock!.tr, () { Navigator.pushNamed(context, Routers.addLockPage); }), - lockTypeItem( - 'images/lockType/lockType_intelligentLockCore.png', - TranslationLoader.lanKeys!.intelligentLockCore!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage); - }), lockTypeItem('images/lockType/lockType_parkingLock.png', TranslationLoader.lanKeys!.parkingLock!.tr, () { Navigator.pushNamed(context, Routers.addLockPage); }), - lockTypeItem('images/lockType/lockType_bicycleLock.png', - TranslationLoader.lanKeys!.bicycleLock!.tr, () { + lockTypeItem( + 'images/lockType/lockType_intelligentLockCore.png', + TranslationLoader.lanKeys!.itelligentAccessControl!.tr, + () { Navigator.pushNamed(context, Routers.addLockPage); }), + + // lockTypeItem('images/lockType/lockType_bicycleLock.png', + // TranslationLoader.lanKeys!.bicycleLock!.tr, () { + // Navigator.pushNamed(context, Routers.addLockPage); + // }), lockTypeItem('images/lockType/lockType_remoteControl.png', - TranslationLoader.lanKeys!.longRangeControl!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage); + TranslationLoader.lanKeys!.gateway!.tr, () { + Navigator.pushNamed(context, Routers.gatewayListPage); }), ], ), @@ -83,7 +85,7 @@ class _SeletLockTypePageState extends State with BaseWidget { margin: const EdgeInsets.all(10), child: Row( children: [ - SizedBox(width: 40.w), + SizedBox(width: 30.w), Image.asset( 'images/lockType/lockType_allLocks.png', width: 88.w, @@ -97,18 +99,19 @@ class _SeletLockTypePageState extends State with BaseWidget { children: [ Text(TranslationLoader.lanKeys!.allLock!.tr, style: TextStyle( - fontSize: 30.sp, fontWeight: FontWeight.w500)), + fontSize: 24.sp, + )), Text(TranslationLoader.lanKeys!.searchAllLockType!.tr, style: TextStyle( - fontSize: 26.sp, fontWeight: FontWeight.w500)), + fontSize: 20.sp, color: AppColors.darkGrayTextColor)), ], ), ), SizedBox(width: 40.w), Image.asset( - 'images/icon_right.png', - width: 60.w, - height: 60.w, + 'images/icon_right_grey.png', + width: 12.w, + height: 21.w, ), SizedBox(width: 40.w), ], @@ -127,11 +130,11 @@ class _SeletLockTypePageState extends State with BaseWidget { // margin: EdgeInsets.all(10), child: Row( children: [ - SizedBox(width: 20.w), + SizedBox(width: 30.w), Image.asset( lockTypeIcon, - width: 40.w, - height: 57.w, + width: 32.w, + height: 48.w, ), SizedBox(width: 20.w), Expanded( @@ -141,15 +144,15 @@ class _SeletLockTypePageState extends State with BaseWidget { children: [ Text(lockTypeTitle, style: TextStyle( - fontSize: 30.sp, fontWeight: FontWeight.w500)), + fontSize: 22.sp, color: AppColors.blackColor)), ], ), ), SizedBox(width: 20.w), Image.asset( - 'images/icon_right.png', - width: 60.w, - height: 60.w, + 'images/icon_right_grey.png', + width: 12.w, + height: 21.w, ), SizedBox(width: 20.w), ], diff --git a/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart b/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart index 67d7b5fe..f7b72ee7 100644 --- a/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart +++ b/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -12,10 +13,12 @@ class GatewayConfigurationWifiPage extends StatefulWidget { const GatewayConfigurationWifiPage({Key? key}) : super(key: key); @override - State createState() => _GatewayConfigurationWifiPageState(); + State createState() => + _GatewayConfigurationWifiPageState(); } -class _GatewayConfigurationWifiPageState extends State { +class _GatewayConfigurationWifiPageState + extends State { final _wifiPassward = TextEditingController(); final _gatewayNamePassward = TextEditingController(); @@ -23,80 +26,159 @@ class _GatewayConfigurationWifiPageState extends State { @override Widget build(BuildContext context) { - return Scaffold( + return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.selectGateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.selectGateway!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: ListView.builder( - itemCount:10, - itemBuilder: (c, index){ - return _seletGatewayListListItem('images/mine/icon_mine_gatewayListMainIcon.png', "G2 41c21c", "-34", (){ - Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage); + itemCount: 10, + itemBuilder: (c, index) { + return _seletGatewayListListItem( + 'images/mine/icon_mine_gatewayListMainIcon.png', + "G2 41c21c", + "-34", () { + 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( onTap: action, child: Container( // height: 100.h, margin: const EdgeInsets.only(bottom: 2), - padding: EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), - decoration: BoxDecoration( + padding: + EdgeInsets.only(left: 10.w, right: 20.w, top: 16.h, bottom: 16.h), + decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10.w), ), child: Row( children: [ - SizedBox(width: 10.w,), - Image.asset(lockTypeIcon, width: 80.w, height: 80.w,), - SizedBox(width: 20.w,), + SizedBox( + width: 10.w, + ), + Image.asset( + lockTypeIcon, + width: 60.w, + height: 60.w, + ), + SizedBox( + width: 20.w, + ), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -57,32 +72,50 @@ class _SeletGatewayListPageState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + Text( + gateWayName, + style: TextStyle(fontSize: 24.sp), + ), ], ), ), - SizedBox(height:5.h), + SizedBox(height: 5.h), Container( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Image.asset('images/mine/icon_mine_gatewaySignal_strong.png', width: 40.w, height: 40.w,), - SizedBox(width: 10.w,), - Text(networkSignal, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + Image.asset( + 'images/mine/icon_mine_gatewaySignal_strong.png', + width: 22.w, + height: 22.w, + ), + SizedBox( + width: 10.w, + ), + Text( + networkSignal, + style: TextStyle(fontSize: 22.sp), + ), ], ), ), - SizedBox(width:20.h), + SizedBox(width: 20.h), ], ), ), - SizedBox(width:20.h), - Image.asset('images/icon_add_white.png', width: 70.w, height: 70.w, color: AppColors.mainColor,), - SizedBox(width: 20.w,), + SizedBox(width: 20.h), + Image.asset( + 'images/icon_add_white.png', + width: 36.w, + height: 36.w, + color: AppColors.mainColor, + ), + SizedBox( + width: 20.w, + ), ], ), ), ); } - } diff --git a/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart b/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart index a1acb4ca..a2001929 100644 --- a/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart +++ b/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -20,36 +19,52 @@ class _SeletGatewayTypePageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.selectGatewayType!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:ListView( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.selectGatewayType!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView( children: [ - _seletGatewayType('images/mine/icon_mine_seletGatewayType_G2.png', "G2(Wi-Fi)", (){ + _seletGatewayType( + 'images/mine/icon_mine_seletGatewayType_G2.png', "G2(Wi-Fi)", + () { Navigator.pushNamed(context, Routers.seletGatewayTypeNextTipPage); }), - SizedBox(height: 2.h,), - _seletGatewayType('images/mine/icon_mine_seletGatewayType_G4.png', "G4(4G) ", (){ + SizedBox( + height: 2.h, + ), + _seletGatewayType( + 'images/mine/icon_mine_seletGatewayType_G4.png', "G4(4G) ", + () { Navigator.pushNamed(context, Routers.seletGatewayTypeNextTipPage); }), ], - ) - ); + )); } - Widget _seletGatewayType(String iconStr, String gatewayType, Function() action){ + Widget _seletGatewayType( + String iconStr, String gatewayType, Function() action) { return GestureDetector( onTap: action, child: Container( color: Colors.white, width: 1.sw, - height: 200.h, + height: 140.h, padding: EdgeInsets.all(30.w), child: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset(iconStr, width: 150.w, height: 150.w,), - SizedBox(width: 30.w), - Text(gatewayType) + Image.asset( + iconStr, + width: 150.w, + height: 150.w, + ), + // SizedBox(width: 20.w), + Text( + gatewayType, + style: TextStyle(fontSize: 22.sp), + ) ], ), ), diff --git a/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart b/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart index cd353918..7a414682 100644 --- a/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart +++ b/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -13,48 +12,62 @@ class SeletGatewayTypeNextTipPage extends StatefulWidget { const SeletGatewayTypeNextTipPage({Key? key}) : super(key: key); @override - State createState() => _SeletGatewayTypeNextTipPageState(); + State createState() => + _SeletGatewayTypeNextTipPageState(); } -class _SeletGatewayTypeNextTipPageState extends State { +class _SeletGatewayTypeNextTipPageState + extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.addGateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:ListView( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.addGateway!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView( children: [ SizedBox(height: 40.h), - Center(child: Text(TranslationLoader.lanKeys!.turnThePowerBackOn!.tr, style: TextStyle(fontSize: 34.sp, fontWeight: FontWeight.w500),)), + Center( + child: Text( + TranslationLoader.lanKeys!.turnThePowerBackOn!.tr, + style: TextStyle(fontSize: 24.sp), + )), SizedBox(height: 80.h), Stack( alignment: Alignment.center, children: [ Positioned( - bottom: 40.h, - left: 190.w, - child: Text(TranslationLoader.lanKeys!.indicatorLight!.tr) - ), - Image.asset("images/mine/icon_mine_seletGatewayType_next.png", width: 300.w, height: 300.w), + bottom: 50.h, + left: 120.w, + child: Text( + TranslationLoader.lanKeys!.indicatorLight!.tr, + style: TextStyle(fontSize: 20.sp), + )), + Image.asset("images/mine/icon_mine_seletGatewayType_next.png", + width: 220.w, height: 220.w), ], ), SizedBox(height: 50.w), Container( padding: EdgeInsets.all(20.w), - child: Center(child: Text(TranslationLoader.lanKeys!.seletGatewayTypeNextTip!.tr, textAlign: TextAlign.center,))) - , + child: Center( + child: Text( + TranslationLoader.lanKeys!.seletGatewayTypeNextTip!.tr, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 18.sp), + ))), SizedBox(height: 40.w), - SubmitBtn( - btnName: TranslationLoader.lanKeys!.next!.tr, - borderRadius: 20.w, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w, bottom: 20.w), - padding: EdgeInsets.only(top: 15.w, bottom: 15.w), - onClick: (){ - Navigator.pushNamed(context, Routers.seletGatewayPage); - } + Container( + padding: EdgeInsets.only(left: 20.w, right: 20.w), + child: SubmitBtn( + btnName: TranslationLoader.lanKeys!.next!.tr, + onClick: () { + Navigator.pushNamed(context, Routers.seletGatewayPage); + }), ), ], - ) - ); + )); } } diff --git a/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart index 07e50368..d10e9edb 100644 --- a/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart +++ b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -25,32 +24,63 @@ class _GatewayDetailPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.gateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.gateway!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), body: ListView( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.designation!.tr, rightTitle:"星锁网关", isHaveLine: true, isHaveDirection: true, action: (){ - showCupertinoAlertDialog(context); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.state!.tr, rightTitle:"在线", isHaveLine: true, isHaveDirection: false), - CommonItem(leftTitel:TranslationLoader.lanKeys!.wifiName!.tr, rightTitle:"XinHongJia", isHaveLine: true, isHaveDirection: false), - CommonItem(leftTitel:TranslationLoader.lanKeys!.networkMAC!.tr, rightTitle:"39:23:df:34:12", isHaveLine: false, isHaveDirection: false), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.nearbyLock!.tr, rightTitle:"2", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.gatewayConnectionLockPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.gatewayUpgrade!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ - - }), - SizedBox(height: 80.h,), - SubmitBtn(btnName: TranslationLoader.lanKeys!.delete!.tr, + CommonItem( + leftTitel: TranslationLoader.lanKeys!.designation!.tr, + rightTitle: "星锁网关", + isHaveLine: true, + isHaveDirection: true, + action: () { + showCupertinoAlertDialog(context); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.state!.tr, + rightTitle: "在线", + isHaveLine: true, + isHaveDirection: false), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.wifiName!.tr, + rightTitle: "XinHongJia", + isHaveLine: true, + isHaveDirection: false), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.networkMAC!.tr, + rightTitle: "39:23:df:34:12", + isHaveLine: false, + isHaveDirection: false), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.nearbyLock!.tr, + rightTitle: "2", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.gatewayConnectionLockPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.gatewayUpgrade!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () {}), + SizedBox( + height: 80.h, + ), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.delete!.tr, + isDelete: true, borderRadius: 20.w, fontSize: 32.sp, margin: EdgeInsets.only(left: 30.w, right: 30.w), padding: EdgeInsets.only(top: 15.w, bottom: 15.w), - onClick: () { - - } - ), + onClick: () {}), ], ), ); @@ -61,7 +91,11 @@ class _GatewayDetailPageState extends State { showDialog( context: context, builder: (BuildContext context) { - return ShowTFView(title:"${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", tipTitle:"请输入", controller: _changeGatewayNameController); + return ShowTFView( + title: + "${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}", + tipTitle: "请输入", + controller: _changeGatewayNameController); }); } } diff --git a/star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart b/star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart index e247e947..aefc1036 100644 --- a/star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart +++ b/star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart @@ -30,8 +30,8 @@ class _GatewayListPageState extends State { }, child: Image.asset( 'images/icon_add_white.png', - width: 50.w, - height: 50.w, + width: 40.w, + height: 40.w, )), SizedBox( width: 30.w, @@ -60,7 +60,7 @@ class _GatewayListPageState extends State { // height: 100.h, margin: const EdgeInsets.only(bottom: 2), padding: - EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), + EdgeInsets.only(left: 10.w, right: 20.w, top: 18.h, bottom: 18.h), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10.w), @@ -89,8 +89,7 @@ class _GatewayListPageState extends State { children: [ Text( gateWayName, - style: TextStyle( - fontSize: 28.sp, fontWeight: FontWeight.w500), + style: TextStyle(fontSize: 24.sp), ), ], ), @@ -102,24 +101,23 @@ class _GatewayListPageState extends State { children: [ Image.asset( 'images/mine/icon_mine_gatewayListOnline.png', - width: 40.w, - height: 40.w, + width: 22.w, + height: 22.w, ), SizedBox( width: 10.w, ), Text( "在线", - style: TextStyle( - fontSize: 24.sp, fontWeight: FontWeight.w500), + style: TextStyle(fontSize: 18.sp), ), SizedBox( width: 80.w, ), Image.asset( 'images/mine/icon_mine_gatewayListNumber.png', - width: 40.w, - height: 40.w, + width: 22.w, + height: 22.w, ), SizedBox( width: 10.w, @@ -127,7 +125,7 @@ class _GatewayListPageState extends State { Text( "2", style: TextStyle( - fontSize: 28.sp, fontWeight: FontWeight.w500), + fontSize: 18.sp, fontWeight: FontWeight.w500), ), ], ), diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart index 322071f7..b4de92ba 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart @@ -22,31 +22,83 @@ class _MinePersonInfoPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.personalInformation!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Column( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.personalInformation!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Column( children: [ - CommonItem(leftTitel:TranslationLoader.lanKeys!.avatar!.tr, rightTitle:"", allHeight: 100.h, isHaveLine: true,isHaveDirection: true,isHaveRightWidget:true, rightWidget: Container(width: 75.w, height: 75.h,child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png')), action: (){ - _openModalBottomSheet(); - },), - CommonItem(leftTitel:TranslationLoader.lanKeys!.nickName!.tr, rightTitle:"你好", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.minePersonInfoEditNamePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.accountNumber!.tr, rightTitle:"786612630@qq.com", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.minePersonInfoEditAccountPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.iphone!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.minePersonInfoEditIphonePage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.resetPasswords!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.minePersonInfoResetPasswordPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.safetyProblem!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - Navigator.pushNamed(context, Routers.minePersonInfoSetSafetyProblemPage); - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.countryAndRegion!.tr, rightTitle:"中国", isHaveLine: false, isHaveDirection: false), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.avatar!.tr, + rightTitle: "", + allHeight: 100.h, + isHaveLine: true, + isHaveDirection: true, + isHaveRightWidget: true, + rightWidget: Container(), + /* + Container( + width: 75.w, + height: 75.h, + child: Image.asset( + 'images/mine/icon_mine_main_defaultAvatar.png')), + */ + action: () { + _openModalBottomSheet(); + }, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.nickName!.tr, + rightTitle: "你好", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.minePersonInfoEditNamePage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.accountNumber!.tr, + rightTitle: "786612630@qq.com", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.minePersonInfoEditAccountPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.email!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.minePersonInfoEditEmailPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.resetPasswords!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.minePersonInfoResetPasswordPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.safetyProblem!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.minePersonInfoSetSafetyProblemPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr, + rightTitle: "中国", + isHaveLine: false, + isHaveDirection: false), ], - ) - ); + )); } Future _openModalBottomSheet() async { @@ -82,8 +134,6 @@ class _MinePersonInfoPageState extends State { ], ), ); - } - ); + }); } - } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart index fab8121d..da48fab7 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart @@ -12,69 +12,79 @@ class MinePersonInfoEditAccountPage extends StatefulWidget { const MinePersonInfoEditAccountPage({Key? key}) : super(key: key); @override - State createState() => _MinePersonInfoEditAccountPageState(); + State createState() => + _MinePersonInfoEditAccountPageState(); } -class _MinePersonInfoEditAccountPageState extends State { +class _MinePersonInfoEditAccountPageState + extends State { final TextEditingController _editAccountController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Column( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Column( children: [ Container( - width: 1.sw, - color: Colors.grey.shade300, - padding: EdgeInsets.only(left:15.w, top: 10.h, bottom: 10.h), - child: Text(TranslationLoader.lanKeys!.modifyAccountTip!.tr) - ), + width: 1.sw, + color: AppColors.greyBackgroundColor, + padding: EdgeInsets.only(left: 15.w, top: 10.h, bottom: 10.h), + child: Text( + TranslationLoader.lanKeys!.modifyAccountTip!.tr, + style: TextStyle(fontSize: 20.sp), + )), Container( - padding: EdgeInsets.all(30.w), + padding: EdgeInsets.all(20.h), + height: 110.h, child: TextField( - maxLines: 1, + // maxLines: 1, keyboardType: TextInputType.text, // inputFormatters: inputFormatterstters??[], - controller:_editAccountController, + controller: _editAccountController, autofocus: false, textAlign: TextAlign.start, - style:TextStyle( - height: 1.1, - fontSize: 30.sp, + style: TextStyle( + height: 3.2, + fontSize: 22.sp, fontWeight: FontWeight.w400, - color: const Color(0xFF333333) - ), + color: const Color(0xFF333333)), decoration: InputDecoration( hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, hintStyle: TextStyle( - height: 1.1, - fontSize: 30.sp, - fontWeight: FontWeight.w400, - color: const Color(0xFF999999) - ), + // height: 3.0, + fontSize: 22.sp, + color: const Color(0xFF999999)), // labelText:"label", labelStyle: const TextStyle(color: Color(0xFF999999)), border: const OutlineInputBorder( ///设置边框四个角的弧度 borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 borderSide: BorderSide( ///设置边框的颜色 color: Color(0xffD3D3D3), + ///设置边框的粗细 width: 1, ), ), + ///设置输入框可编辑时的边框样式 enabledBorder: const OutlineInputBorder( ///设置边框四个角的弧度 borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 borderSide: BorderSide( ///设置边框的颜色 color: Color(0xffD3D3D3), + ///设置边框的粗细 width: 1, ), @@ -82,37 +92,43 @@ class _MinePersonInfoEditAccountPageState extends State createState() => _MinePersonInfoEditAccountNextPageState(); + State createState() => + _MinePersonInfoEditAccountNextPageState(); } -class _MinePersonInfoEditAccountNextPageState extends State { +class _MinePersonInfoEditAccountNextPageState + extends State { final TextEditingController _editAccountController = TextEditingController(); late Timer _timer; int _seconds = 60; @@ -28,53 +29,77 @@ class _MinePersonInfoEditAccountNextPageState extends State createState() => _MinePersonInfoEditIphonePageState(); + State createState() => + _MinePersonInfoEditIphonePageState(); } -class _MinePersonInfoEditIphonePageState extends State { +class _MinePersonInfoEditIphonePageState + extends State { final TextEditingController _phoneController = TextEditingController(); final TextEditingController _codeController = TextEditingController(); late Timer _timer; @@ -29,18 +30,23 @@ class _MinePersonInfoEditIphonePageState extends State createState() => _MinePersonInfoEditNamePageState(); + State createState() => + _MinePersonInfoEditNamePageState(); } -class _MinePersonInfoEditNamePageState extends State { - final TextEditingController _changeNickNameController = TextEditingController(); +class _MinePersonInfoEditNamePageState + extends State { + final TextEditingController _changeNickNameController = + TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.changeNickName!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ - TextButton( - child: Text(TranslationLoader.lanKeys!.save!.tr, style: const TextStyle(color: Colors.white),), - onPressed: (){ - - },),], + backgroundColor: Colors.white, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.changeNickName!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.save!.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () {}, + ), + ], ), - body:Container( + body: Container( padding: EdgeInsets.all(15.w), child: Column( children: [ - LoginInput(controller: _changeNickNameController, isPwd: true, leftWidget:SizedBox(width: 15.w), hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - // LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _changeNickNameController, + isPwd: true, + leftWidget: SizedBox(width: 15.w), + hintText: + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.accountNumber!.tr}", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ]), ], ), - ) - ); + )); } } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart new file mode 100644 index 00000000..8615a9a3 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart @@ -0,0 +1,117 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/submitBtn.dart'; +import '../../../tools/tf_loginInput.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class MinePersonInfoEditEmailPage extends StatefulWidget { + const MinePersonInfoEditEmailPage({Key? key}) : super(key: key); + + @override + State createState() => + _MinePersonInfoEditEmailPageState(); +} + +class _MinePersonInfoEditEmailPageState + extends State { + final TextEditingController _phoneController = TextEditingController(); + final TextEditingController _codeController = TextEditingController(); + late Timer _timer; + int _seconds = 60; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.email!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Container( + padding: EdgeInsets.only(top: 10.h, left: 30.w, right: 30.w), + child: Column( + children: [ + Container( + width: 1.sw, + padding: EdgeInsets.only(top: 5.h, bottom: 5.h), + child: Text( + TranslationLoader.lanKeys!.changeEmailTip!.tr, + style: TextStyle(fontSize: 20.sp), + )), + LoginInput( + controller: _phoneController, + isPwd: true, + leftWidget: const SizedBox(), + hintText: + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.email!.tr}", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 10.w), + Row( + children: [ + Expanded( + child: LoginInput( + controller: _codeController, + isPwd: true, + leftWidget: const SizedBox(), + hintText: + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.verificationCode!.tr}", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ]), + ), + SizedBox( + width: 20.w, + ), + GestureDetector( + child: Container( + width: 140.w, + // height: 60.h, + padding: EdgeInsets.all(8.h), + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(5)), + child: Center( + child: Text( + _seconds == 60 + ? '${TranslationLoader.lanKeys!.getTip!.tr}${TranslationLoader.lanKeys!.verificationCode!.tr}' + : (_seconds < 10) + ? '0$_seconds s' + : '$_seconds s', + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 22.sp, + )), + ), + ), + onTap: () { + if (_seconds == 60) { + // _setVerify(); + } else { + // Toast.show(msg: '正在获取验证码'); + } + }, + ) + ], + ), + SizedBox(height: 50.w), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.sure!.tr, + fontSize: 28.sp, + borderRadius: 20.w, + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: () {}), + ], + ), + )); + } +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart index 6c875413..915c6def 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart @@ -13,10 +13,12 @@ class MinePersonInfoResetPasswordPage extends StatefulWidget { const MinePersonInfoResetPasswordPage({Key? key}) : super(key: key); @override - State createState() => _MinePersonInfoResetPasswordPageState(); + State createState() => + _MinePersonInfoResetPasswordPageState(); } -class _MinePersonInfoResetPasswordPageState extends State { +class _MinePersonInfoResetPasswordPageState + extends State { final TextEditingController _oldPwdController = TextEditingController(); final TextEditingController _newPwdController = TextEditingController(); final TextEditingController _surePwdController = TextEditingController(); @@ -25,49 +27,63 @@ class _MinePersonInfoResetPasswordPageState extends State createState() => _MinePersonInfoSetSafetyProblemPageState(); + State createState() => + _MinePersonInfoSetSafetyProblemPageState(); } -class _MinePersonInfoSetSafetyProblemPageState extends State { +class _MinePersonInfoSetSafetyProblemPageState + extends State { final _fristEditingController = TextEditingController(); final _secondEditingController = TextEditingController(); final _thirdEditingController = TextEditingController(); @@ -25,45 +27,61 @@ class _MinePersonInfoSetSafetyProblemPageState extends State[ - ListTile(title: Text('你第一次乘坐飞机取得是哪个城市?', textAlign: TextAlign.center), + ListTile( + title: Text('你第一次乘坐飞机取得是哪个城市?', textAlign: TextAlign.center), onTap: () { Navigator.of(context).pop(true); }, ), - ListTile(title: Text('你的QQ号码是多少', textAlign: TextAlign.center), + ListTile( + title: Text('你的QQ号码是多少', textAlign: TextAlign.center), onTap: () { Navigator.of(context).pop(true); }, ), - ListTile(title: Text('你的第一个宠物叫什么名字', textAlign: TextAlign.center), + ListTile( + title: Text('你的第一个宠物叫什么名字', textAlign: TextAlign.center), onTap: () { Navigator.of(context).pop(true); }, ), - ], ), ); - } - ); + }); } - } diff --git a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart index 9633f116..72799c6e 100644 --- a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart +++ b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -13,79 +12,120 @@ class APPUnlockNeedMobileNetworkingLockPage extends StatefulWidget { const APPUnlockNeedMobileNetworkingLockPage({Key? key}) : super(key: key); @override - State createState() => _APPUnlockNeedMobileNetworkingLockPageState(); + State createState() => + _APPUnlockNeedMobileNetworkingLockPageState(); } -class _APPUnlockNeedMobileNetworkingLockPageState extends State { +class _APPUnlockNeedMobileNetworkingLockPageState + extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLock!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Column( + appBar: TitleAppBar( + barTitle: TranslationLoader + .lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLock!.tr, + haveBack: true, + actionsList: [ + IconButton( + onPressed: () {}, + icon: Image.asset( + "images/icon_bar_search.png", + width: 30.w, + height: 30.w, + )) + ], + backgroundColor: AppColors.mainColor), + body: Column( children: [ Container( padding: EdgeInsets.all(30.w), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLockTip!.tr)), + Expanded( + child: Text( + TranslationLoader.lanKeys! + .appUnlockRequiresMobilePhoneAccessToTheLockTip!.tr, + style: TextStyle(fontSize: 22.sp), + )), ], ), ), - CommonItem(leftTitel:TranslationLoader.lanKeys!.checkAll!.tr, rightTitle:"", allHeight:100.h, isHaveLine: false, isHaveRightWidget: true, + CommonItem( + leftTitel: TranslationLoader.lanKeys!.checkAll!.tr, + rightTitle: "", + allHeight: 70.h, + isHaveLine: false, + isHaveRightWidget: true, rightWidget: GestureDetector( - onTap: (){ - - }, - child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) - ), + onTap: () {}, + child: Row( + children: [ + Image.asset( + 'images/icon_round_unSelet.png', + width: 26.w, + height: 26.w, + ), + ], + ), + )), SizedBox(height: 15.h), Expanded( child: ListView.builder( - itemCount:10, - itemBuilder: (c, index){ - return _gatewatListItem('images/mine/icon_mine_gatewayListMainIcon.png', "星锁网关", "在线", "2", (){ + itemCount: 10, + itemBuilder: (c, index) { + return _gatewatListItem( + 'images/mine/icon_mine_gatewayListMainIcon.png', + "星锁网关", + "在线", + "2", () { // Navigator.pushNamed(context, Routers.gatewayDetailPage); }); - } - ), - ), - SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr, - borderRadius: 20.w, - fontSize: 32.sp, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.h, bottom: 30.h), - padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () { - - } + }), ), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.sure!.tr, onClick: () {}), + SizedBox( + height: 40.h, + ) ], - ) - ); + )); } - 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( onTap: action, child: Container( height: 80.h, margin: const EdgeInsets.only(bottom: 2), - padding: EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), - decoration: BoxDecoration( + padding: + EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), + decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10.w), ), child: Row( children: [ - SizedBox(width: 15.w,), - Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,), - SizedBox(width: 10.w,), - Text("MCBN01_8f3106", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600),) + SizedBox( + width: 15.w, + ), + Image.asset( + 'images/icon_round_unSelet.png', + width: 30.w, + height: 30.w, + ), + SizedBox( + width: 10.w, + ), + Text( + "MCBN01_8f3106", + style: TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w600), + ) ], ), ), ); } - } diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart new file mode 100644 index 00000000..5ccef3b0 --- /dev/null +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart @@ -0,0 +1,366 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get_utils/get_utils.dart'; +import 'package:star_lock/appRouters.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/tools/commonItem.dart'; +import 'package:star_lock/tools/submitBtn.dart'; +import 'package:star_lock/translations/trans_lib.dart'; + +class AddAuthorizedAdministratorPage extends StatefulWidget { + const AddAuthorizedAdministratorPage({Key? key}) : super(key: key); + + @override + State createState() { + return _AddAuthorizedAdministratorPageState(); + } +} + +class _AddAuthorizedAdministratorPageState + extends State + with SingleTickerProviderStateMixin { + TabController? _tabController; + final FlutterContactPicker _contactPicker = FlutterContactPicker(); + late Contact _contact; + final _templateNameTf = TextEditingController(); + + List tabs = [ + TranslationLoader.lanKeys!.permanent!.tr, + TranslationLoader.lanKeys!.timeLimit!.tr + ]; + + @override + void initState() { + super.initState(); + + _tabController = TabController(length: 2, vsync: this); + } + + @override + Widget build(BuildContext context) { + return DefaultTabController( + length: 2, + child: Scaffold( + appBar: AppBar( + backgroundColor: AppColors.mainColor, + title: Text( + TranslationLoader.lanKeys!.addAuthorizedAdmin!.tr, + style: TextStyle( + color: Colors.white, + fontSize: 28.sp, + fontWeight: FontWeight.w600), + ), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.white), + onPressed: () => Navigator.of(context).pop(), + ), + bottom: PreferredSize( + preferredSize: const Size.fromHeight(45), + child: Material( + color: Colors.white, + child: Theme( + data: ThemeData( + ///点击的背景高亮颜色,处理阴影 + highlightColor: Colors.transparent, + + ///点击水波纹颜色 + splashColor: Colors.transparent, + ), + child: TabBar( + controller: _tabController, + indicatorSize: TabBarIndicatorSize.label, + indicatorColor: AppColors.mainColor, + unselectedLabelColor: AppColors.blackColor, + labelColor: AppColors.mainColor, + // isScrollable: true, + tabs: tabs.map((e) => Tab(text: e)).toList()), + )), + ), + ), + body: TabBarView(controller: _tabController, children: [ + _permanentAdministrator(), + _timeLimitAdministrator() + ]))); + } + +//永久 + Widget _permanentAdministrator() { + return Column( + children: [ + SizedBox( + height: 10.h, + ), + _buildAccoutRow(), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lock!.tr, + rightTitle: TranslationLoader.lanKeys!.pleaseSelet!.tr, + isHaveDirection: true, + action: () {}), + SizedBox( + height: 10.h, + ), + remoteUnlockingWidget(), + SizedBox( + height: 20.h, + ), + _buildSureBtn() + ], + ); + } + + //限时管理员 + Widget _timeLimitAdministrator() { + return Column( + children: [ + SizedBox( + height: 10.h, + ), + _buildAccoutRow(), + SizedBox( + height: 10.h, + ), + keyTimeWidget(), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lock!.tr, + rightTitle: TranslationLoader.lanKeys!.pleaseSelet!.tr, + isHaveDirection: true, + action: () {}), + SizedBox( + height: 10.h, + ), + remoteUnlockingWidget(), + SizedBox( + height: 20.h, + ), + _buildSureBtn() + ], + ); + } + + Widget _buildAccoutRow() { + return Column( + children: [ + Container( + color: Colors.white, + height: 60.h, + child: Row( + children: [ + SizedBox( + width: 40.w, + ), + Text( + TranslationLoader.lanKeys!.accountNumber!.tr, + 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: + TranslationLoader.lanKeys!.pleaseEnterAccountNumber!.tr, + 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, + ) + ], + ), + ), + const SizedBox( + height: 1, + ), + Container( + color: Colors.white, + child: Row( + children: [ + SizedBox( + width: 40.w, + ), + Text( + TranslationLoader.lanKeys!.name!.tr, + 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: TranslationLoader.lanKeys!.pleaseEnter!.tr, + hintStyle: TextStyle( + color: AppColors.placeholderTextColor, + fontSize: ScreenUtil().setSp(24), + textBaseline: TextBaseline.alphabetic), + ), + )), + SizedBox( + width: 40.w, + ) + ], + ), + ), + ], + ); + } + + Widget getTFWidget(TextEditingController tfController, String tfStr) { + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + controller: tfController, + autofocus: false, + textAlign: TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + ], + ), + ); + } + + // 远程开锁 + Widget remoteUnlockingWidget() { + return Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: Container(width: 80.w, height: 50.h, child: _switch()), + action: () {}), + Container(height: 40.h), + ], + ); + } + + // 生效失效时间 + Widget keyTimeWidget() { + return Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveLine: true, + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: "2020.06.20 11:49", + isHaveDirection: true, + action: () { + // _showDatePicker(); + }), + Container(height: 10.h), + ], + ); + } + + Widget keyBottomWidget(String tipStr) { + return Column( + children: [ + Container( + padding: EdgeInsets.all(20.w), + child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + 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), + onClick: () {}), + Container( + padding: EdgeInsets.only(right: 30.w), + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () { + Navigator.pushNamed( + context, Routers.volumeAuthorizationLockManagePage); + }, + child: Text( + TranslationLoader.lanKeys!.volumeAuthorizationLock!.tr, + style: TextStyle( + color: AppColors.mainColor, + fontWeight: FontWeight.w500), + )), + ], + ), + ), + ], + ); + } + + CupertinoSwitch _switch() { + bool _isOn = false; + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: _isOn, + onChanged: (value) { + setState(() { + _isOn = value; + }); + }, + ); + } + + Widget _buildSureBtn() { + return SubmitBtn( + btnName: TranslationLoader.lanKeys!.sure!.tr, + onClick: () {}, + ); + } +} diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart index 42225461..df90fec3 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart @@ -30,7 +30,8 @@ class _AuthorizedAdministratorListPageState icon: Image.asset('images/icon_add_white.png'), onPressed: () { // 处理操作按钮的点击事件 - Navigator.pushNamed(context, Routers.authorizedAdminManagePage); + Navigator.pushNamed( + context, Routers.addAuthorizedAdministratorPage); }, ), ], @@ -47,7 +48,7 @@ class _AuthorizedAdministratorListPageState Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -55,17 +56,19 @@ class _AuthorizedAdministratorListPageState 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, @@ -81,7 +84,7 @@ class _AuthorizedAdministratorListPageState return ListView.builder( itemCount: 10, itemBuilder: (c, index) { - return _electronicKeyItem('images/icon_lock.png', "张三", + return _electronicKeyItem('images/controls_user.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15", () { Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); }); @@ -93,7 +96,7 @@ class _AuthorizedAdministratorListPageState return GestureDetector( onTap: action, child: Container( - height: 100.h, + height: 90.h, margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), decoration: BoxDecoration( color: Colors.white, @@ -106,8 +109,8 @@ class _AuthorizedAdministratorListPageState ), Image.asset( lockTypeIcon, - width: 50.w, - height: 50.w, + width: 44.w, + height: 44.w, ), SizedBox( width: 30.w, @@ -122,7 +125,7 @@ class _AuthorizedAdministratorListPageState Text( lockTypeTitle, style: TextStyle( - fontSize: 32.sp, fontWeight: FontWeight.w500), + fontSize: 24.sp, fontWeight: FontWeight.w500), ), ], ), @@ -134,7 +137,8 @@ class _AuthorizedAdministratorListPageState Text( "2023.6.21 11.15 永久", style: TextStyle( - fontSize: 28.sp, fontWeight: FontWeight.w500), + fontSize: 20.sp, + color: AppColors.darkGrayTextColor), ), ], ), diff --git a/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart index 5863154c..048f332d 100644 --- a/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart +++ b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -12,45 +11,63 @@ class HideInvalidUnlockPermissionsPage extends StatefulWidget { const HideInvalidUnlockPermissionsPage({Key? key}) : super(key: key); @override - State createState() => _HideInvalidUnlockPermissionsPageState(); + State createState() => + _HideInvalidUnlockPermissionsPageState(); } -class _HideInvalidUnlockPermissionsPageState extends State { +class _HideInvalidUnlockPermissionsPageState + extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.hideInvalidUnlockPermissions!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Container( + appBar: TitleAppBar( + barTitle: + TranslationLoader.lanKeys!.hideInvalidUnlockPermissions!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Container( padding: EdgeInsets.all(30.w), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.hideInvalidUnlockPermissionsTip!.tr)), + Expanded( + child: Text( + TranslationLoader + .lanKeys!.hideInvalidUnlockPermissionsTip!.tr, + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 22.sp), + )), ], ), - SizedBox(height: 20.h,), + SizedBox( + height: 20.h, + ), Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + Expanded( + child: Text( + "${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", + style: + TextStyle(fontWeight: FontWeight.w600, fontSize: 22.sp), + )), ], ), - SizedBox(height: 30.h,), - SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr, + SizedBox( + height: 40.h, + ), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.closed!.tr, borderRadius: 20.w, fontSize: 32.sp, // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () { - - } - ), + onClick: () {}), ], ), - ) - ); + )); } } diff --git a/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart b/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart index 6d22bf78..e6289123 100644 --- a/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart +++ b/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart @@ -22,7 +22,7 @@ class _LockGroupListPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, + barTitle: TranslationLoader.lanKeys!.lockGroup!.tr, haveBack: true, actionsList: [ IconButton( @@ -47,13 +47,20 @@ class _LockGroupListPageState extends State { itemBuilder: (c, index) { if (index == 1) { return Center( - child: SizedBox( - height: 40.h, - child: const Text( - '锁数量:1', - style: TextStyle( - color: AppColors.darkGrayTextColor, fontSize: 14), - ), + child: Column( + children: [ + SizedBox( + height: 10.h, + ), + SizedBox( + height: 40.h, + child: const Text( + '锁数量:1', + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 14), + ), + ) + ], ), ); } else { diff --git a/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart index 9b87feec..92ebb0c0 100644 --- a/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart +++ b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart @@ -20,14 +20,32 @@ class _LockItemListPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, + barTitle: TranslationLoader.lanKeys!.lock!.tr, haveBack: true, + actionsList: [ + IconButton( + icon: Image.asset( + 'images/icon_bar_more.png', + height: 30.h, + width: 10.w, + ), + onPressed: () { + // 处理操作按钮的点击事件-添加锁分组 + }, + ), + ], backgroundColor: AppColors.mainColor), - body: ListView.builder( + body: ListView.separated( itemBuilder: (context, index) { return _listItemView(); }, itemCount: 2, + separatorBuilder: (BuildContext context, int index) { + return Divider( + height: 1.h, + color: AppColors.greyLineColor, + ); + }, ), ); } @@ -51,7 +69,7 @@ class _LockItemListPageState extends State { fit: BoxFit.fill, ), SizedBox( - width: 8.w, + width: 10.w, ), const Text( 'Daisy', diff --git a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart index 4fbdec69..1105eb9b 100644 --- a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart +++ b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -20,37 +19,47 @@ class _LockScreenPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.lockScreen!.tr, haveBack:true, backgroundColor: AppColors.mainColor), - body:Container( + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.lockScreen!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Container( padding: EdgeInsets.all(30.w), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text(TranslationLoader.lanKeys!.lockSoundTip!.tr)), + Expanded( + child: Text( + TranslationLoader.lanKeys!.lockSoundTip!.tr, + style: TextStyle( + fontSize: 22.sp, color: AppColors.darkGrayTextColor), + )), ], ), - SizedBox(height: 20.h,), + SizedBox( + height: 20.h, + ), Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + Expanded( + child: Text( + "${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", + style: + TextStyle(fontWeight: FontWeight.w600, fontSize: 22.sp), + )), ], ), - SizedBox(height: 30.h,), - SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr, - borderRadius: 20.w, - fontSize: 32.sp, - // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), - padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () { - - } + SizedBox( + height: 40.h, ), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.closed!.tr, + onClick: () {}), ], ), - ) - ); + )); } } diff --git a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart index 2b5bef11..9e9d83a5 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart @@ -29,7 +29,7 @@ class _LockUserManageListListPageState TextButton( child: Text( TranslationLoader.lanKeys!.aboutToExpire!.tr, - style: const TextStyle(color: Colors.white), + style: TextStyle(color: Colors.white, fontSize: 24.sp), ), onPressed: () {}, ), @@ -38,6 +38,9 @@ class _LockUserManageListListPageState body: Column( children: [ _searchWidget(), + SizedBox( + height: 20.h, + ), Expanded(child: _buildMainUI()), SizedBox( width: ScreenUtil().screenWidth - 40.w, @@ -46,12 +49,15 @@ class _LockUserManageListListPageState style: ElevatedButton.styleFrom( backgroundColor: Colors.white, ), - onPressed: () {}, + onPressed: () { + Navigator.pushNamed( + context, Routers.massSendElectronicKeyManagePage); + }, child: Text( '群发钥匙', style: TextStyle( color: AppColors.mainColor, - fontSize: 28.sp, + fontSize: 24.sp, fontWeight: FontWeight.w600), )), ), @@ -79,12 +85,13 @@ class _LockUserManageListListPageState contentPadding: const EdgeInsets.only( top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, @@ -100,7 +107,7 @@ class _LockUserManageListListPageState return ListView.builder( itemCount: 10, itemBuilder: (c, index) { - return _electronicKeyItem('images/icon_lock.png', "张三", + return _electronicKeyItem('images/controls_user.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15", () { Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); }); @@ -112,12 +119,13 @@ class _LockUserManageListListPageState 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), - ), + height: 90.h, + margin: EdgeInsets.only(top: 1.h), + color: Colors.white, + // decoration: BoxDecoration( + // color: Colors.white, + // borderRadius: BorderRadius.circular(10.w), + // ), child: Row( children: [ SizedBox( @@ -125,8 +133,8 @@ class _LockUserManageListListPageState ), Image.asset( lockTypeIcon, - width: 50.w, - height: 50.w, + width: 44.w, + height: 44.w, ), SizedBox( width: 30.w, @@ -140,29 +148,32 @@ class _LockUserManageListListPageState children: [ Text( lockTypeTitle, - style: TextStyle( - fontSize: 32.sp, fontWeight: FontWeight.w500), + style: TextStyle(fontSize: 24.sp), ), ], ), 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), - ), - ], - ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + "2023.6.21 11.15 永久", + style: TextStyle( + fontSize: 20.sp, + color: AppColors.darkGrayTextColor), + ), + ], ), SizedBox(width: 20.h), ], ), ), - SizedBox(width: 20.h), + Image.asset( + 'images/icon_right_grey.png', + width: 12.w, + height: 21.w, + ), + SizedBox(width: 20.w), ], ), ), diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart index c5fd0330..6073a4cd 100644 --- a/star_lock/lib/mine/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet_page.dart @@ -39,21 +39,21 @@ class _MineSetPageState extends State { isHaveLine: true, isHaveRightWidget: true, rightWidget: SizedBox( - width: 80.w, height: 50.h, child: _switch())), + width: 10.w, height: 50.h, child: _switch())), CommonItem( leftTitel: TranslationLoader.lanKeys!.touchUnlock!.tr, rightTitle: "", isHaveLine: true, isHaveRightWidget: true, rightWidget: SizedBox( - width: 80.w, height: 50.h, child: _switch())), + width: 10.w, height: 50.h, child: _switch())), CommonItem( leftTitel: TranslationLoader.lanKeys!.pushNotification!.tr, rightTitle: "", isHaveRightWidget: true, rightWidget: SizedBox( - width: 80.w, height: 50.h, child: _switch())), + width: 10.w, height: 50.h, child: _switch())), SizedBox( height: 10.h, ), @@ -146,7 +146,7 @@ class _MineSetPageState extends State { // // }), SizedBox( - height: 10.h, + height: 50.h, ), // CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ // @@ -167,45 +167,44 @@ class _MineSetPageState extends State { // CommonItem(leftTitel:TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ // // }), + keyBottomWidget() ], ), ), - // keyBottomWidget() ], )); } - // Widget keyBottomWidget() { - // return Column( - // children: [ - // SubmitBtn(btnName: TranslationLoader.lanKeys!.logout!.tr, - // borderRadius: 20.w, - // fontSize: 32.sp, - // margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), - // padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - // onClick: () { - // - // } - // ), - // Container( - // padding: EdgeInsets.only(right: 30.w), - // // color: Colors.red, - // child: Row( - // mainAxisAlignment: MainAxisAlignment.end, - // children: [ - // TextButton( - // child: Text( TranslationLoader.lanKeys!.deleteAccount!.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),), - // onPressed: () { - // - // }, - // ), - // ], - // ), - // ), - // SizedBox(height: 30.h,) - // ], - // ); - // } + Widget keyBottomWidget() { + return Column( + children: [ + SubmitBtn( + btnName: TranslationLoader.lanKeys!.logout!.tr, + isDelete: true, + onClick: () {}), + Container( + padding: EdgeInsets.only(right: 30.w), + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.deleteAccount!.tr, + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 18.sp), + ), + onPressed: () {}, + ), + ], + ), + ), + SizedBox( + height: 30.h, + ) + ], + ); + } CupertinoSwitch _switch() { return CupertinoSwitch( diff --git a/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart b/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart index 5804a64b..c819482d 100644 --- a/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart +++ b/star_lock/lib/mine/mineSet/transferGateway/selectGetewayList_page.dart @@ -28,15 +28,12 @@ class _SelectGetewayListPageState extends State { onPressed: () {}, child: Text( '全选', - style: TextStyle(color: Colors.white, fontSize: 28.sp), + style: TextStyle(color: Colors.white, fontSize: 24.sp), )) ], ), body: Column( children: [ - SizedBox( - height: 10.h, - ), Expanded(child: _buildMainUI()), SizedBox( height: 20.h, @@ -74,7 +71,7 @@ class _SelectGetewayListPageState extends State { return GestureDetector( child: Container( color: Colors.white, - height: 70.h, + height: 80.h, child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, @@ -94,8 +91,8 @@ class _SelectGetewayListPageState extends State { ), Image.asset( 'images/getewayType_G2.png', - width: 60.w, - height: 60.w, + width: 50.w, + height: 50.w, fit: BoxFit.fill, ), SizedBox( @@ -103,7 +100,7 @@ class _SelectGetewayListPageState extends State { ), Text( '星锁网关', - style: TextStyle(fontSize: 28.sp), + style: TextStyle(fontSize: 24.sp), ) ], ), @@ -115,7 +112,7 @@ class _SelectGetewayListPageState extends State { Widget _buildNextBtn() { return GestureDetector( child: Container( - color: Colors.grey, + color: AppColors.btnDisableColor, width: ScreenUtil().screenWidth, height: 64.h, child: TextButton( @@ -124,7 +121,7 @@ class _SelectGetewayListPageState extends State { }, child: Text( '下一步', - style: TextStyle(fontSize: 28.sp, color: Colors.white), + style: TextStyle(fontSize: 24.sp, color: Colors.white), )), ), ); diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart index dc8129ea..770654aa 100644 --- a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart +++ b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/tools/submitBtn.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -85,8 +86,8 @@ class _RecipientInformationPageState extends State { GestureDetector( child: Image.asset( leftIcon, - width: 16, - height: 16, + width: 20.w, + height: 20.w, ), ), SizedBox( @@ -94,7 +95,7 @@ class _RecipientInformationPageState extends State { ), Text( leftTitle, - style: TextStyle(fontSize: 28.sp), + style: TextStyle(fontSize: 24.sp), ) ], ), @@ -115,7 +116,7 @@ class _RecipientInformationPageState extends State { Text( '账号', style: - TextStyle(color: AppColors.darkGrayTextColor, fontSize: 24.sp), + TextStyle(color: AppColors.darkGrayTextColor, fontSize: 22.sp), ), Expanded( child: TextField( @@ -127,7 +128,7 @@ class _RecipientInformationPageState extends State { hintText: '请输入手机号或email', hintStyle: TextStyle( color: AppColors.placeholderTextColor, - fontSize: ScreenUtil().setSp(24), + fontSize: ScreenUtil().setSp(22), textBaseline: TextBaseline.alphabetic), ), )), @@ -153,28 +154,14 @@ class _RecipientInformationPageState extends State { child: Text( '选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权', style: - TextStyle(fontSize: 20.sp, color: AppColors.placeholderTextColor), + TextStyle(fontSize: 18.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), - )), - ), - ); + return SubmitBtn(btnName: '下一步', onClick: () {}); } Widget _buildRemoveBadLockBtn() { @@ -186,7 +173,7 @@ class _RecipientInformationPageState extends State { child: Text( '移除坏锁', style: TextStyle( - fontSize: 28.sp, color: AppColors.darkGrayTextColor), + fontSize: 18.sp, color: AppColors.darkGrayTextColor), textAlign: TextAlign.end, )), SizedBox( diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart index e6d63755..910281c7 100644 --- a/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart +++ b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart @@ -2,7 +2,6 @@ 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'; diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart index 0101074a..dfa010fb 100644 --- a/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart +++ b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart @@ -28,7 +28,7 @@ class _TransferSmartLockPageState extends State { onPressed: () {}, child: Text( '全选', - style: TextStyle(color: Colors.white, fontSize: 28.sp), + style: TextStyle(color: Colors.white, fontSize: 24.sp), )) ], ), @@ -54,7 +54,7 @@ class _TransferSmartLockPageState extends State { Widget _searchWidget() { return Container( 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: 10.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(5)), child: TextField( @@ -62,17 +62,19 @@ class _TransferSmartLockPageState extends State { 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, + hintStyle: TextStyle(fontSize: 22.sp, height: 3.0), //不需要输入框下划线 border: InputBorder.none, //左边图标设置 icon: Padding( padding: EdgeInsets.only( - top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + top: 20.h, bottom: 20.h, right: 20.w, left: 10.w), child: Image.asset( 'images/main/icon_main_search.png', width: 40.w, @@ -108,7 +110,7 @@ class _TransferSmartLockPageState extends State { return GestureDetector( child: Container( color: Colors.white, - height: 70.h, + height: 90.h, child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, @@ -133,11 +135,11 @@ class _TransferSmartLockPageState extends State { fit: BoxFit.fill, ), SizedBox( - width: 8.w, + width: 10.w, ), - const Text( + Text( 'Daisy', - style: TextStyle(fontSize: 14), + style: TextStyle(fontSize: 22.sp), ) ], ), diff --git a/star_lock/lib/mine/mine_page.dart b/star_lock/lib/mine/mine_page.dart index f33318ff..c78f31f1 100644 --- a/star_lock/lib/mine/mine_page.dart +++ b/star_lock/lib/mine/mine_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -18,7 +17,8 @@ class StarLockMinePage extends StatefulWidget { } GlobalKey<_StarLockMinePageState> starLockMineKey = GlobalKey(); -class _StarLockMinePageState extends State with BaseWidget{ + +class _StarLockMinePageState extends State with BaseWidget { @override Widget build(BuildContext context) { return Scaffold( @@ -28,73 +28,112 @@ class _StarLockMinePageState extends State with BaseWidget{ children: [ topWidget(), bottomListWidget(), - SizedBox(height: 40.h,), - keyBottomWidget() + SizedBox( + height: 40.h, + ), + // keyBottomWidget() ], ), ); } - Widget topWidget(){ + Widget topWidget() { return Container( - height: 450.h, + height: 380.h, width: 1.sw, color: AppColors.mainColor, // color: Colors.red, - child: Column( - // crossAxisAlignment: CrossAxisAlignment.center, + child: Stack( children: [ - SizedBox(height: 120.h,), - GestureDetector( - onTap: (){ - Navigator.pushNamed(context, Routers.starLockLoginPage); - }, - child: Container( - width: 150.w, height: 150.w, - decoration: BoxDecoration( - border: Border.all(width: 2, color: Colors.white), - borderRadius: BorderRadius.circular(75.h), + Image.asset( + 'images/mine/icon_mine_topBg.png', + width: 400.w, + height: 380.h, + fit: BoxFit.fill, + ), + Center( + child: Column( + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 120.h, ), - padding: EdgeInsets.all(20.w), - child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 100.w, height: 100.w) + GestureDetector( + onTap: () { + // Navigator.pushNamed(context, Routers.starLockLoginPage); + Navigator.pushNamed(context, Routers.minePersonInfoPage); + }, + child: SizedBox( + width: 108.w, + height: 105.w, + child: Image.asset( + 'images/mine/icon_mine_main_defaultAvatar.png', + width: 60.w, + height: 60.w)), + ), + SizedBox( + height: 20.h, + ), + Text("15080825640", + style: TextStyle( + fontSize: 22.sp, + color: Colors.white, + )), + SizedBox( + height: 10.h, + ), + Text( + "${TranslationLoader.lanKeys!.accountNumber!.tr}:15080825640", + style: TextStyle( + fontSize: 18.sp, + color: Colors.white, + fontWeight: FontWeight.w500)), + ], ), ), - SizedBox(height: 20.h,), - Text("15080825640", style: TextStyle(fontSize: 30.sp, color: Colors.white, fontWeight: FontWeight.w500)), - SizedBox(height: 10.h,), - Text("${TranslationLoader.lanKeys!.accountNumber!.tr}:15080825640", style: TextStyle(fontSize: 22.sp, color: Colors.white, fontWeight: FontWeight.w500)), ], ), ); } - Widget bottomListWidget(){ + Widget bottomListWidget() { return Expanded( child: ListView( - padding: EdgeInsets.only(left: 70.w, top: 50.h, right: 10.w), + padding: EdgeInsets.only( + left: 60.w, + top: 50.h, + ), children: [ - mineItem('images/mine/icon_mine_main_personInfo.png', TranslationLoader.lanKeys!.personalInformation!.tr, (){ - Navigator.pushNamed(context, Routers.minePersonInfoPage); - }), - mineItem('images/mine/icon_mine_main_addLock.png', TranslationLoader.lanKeys!.addLock!.tr, (){ + // mineItem('images/mine/icon_mine_main_personInfo.png', + // TranslationLoader.lanKeys!.personalInformation!.tr, () { + // Navigator.pushNamed(context, Routers.minePersonInfoPage); + // }), + mineItem('images/mine/icon_mine_main_addLock.png', + TranslationLoader.lanKeys!.addDevice!.tr, () { Navigator.pushNamed(context, Routers.seletLockTypePage); }), - mineItem('images/mine/icon_mine_main_gateway.png', TranslationLoader.lanKeys!.gateway!.tr, (){ - Navigator.pushNamed(context, Routers.gatewayListPage); - }), - mineItem('images/mine/icon_mine_main_message.png', TranslationLoader.lanKeys!.message!.tr, (){ + // mineItem('images/mine/icon_mine_main_gateway.png', + // TranslationLoader.lanKeys!.gateway!.tr, () { + // Navigator.pushNamed(context, Routers.gatewayListPage); + // }), + mineItem('images/mine/icon_mine_main_message.png', + TranslationLoader.lanKeys!.message!.tr, () { Navigator.pushNamed(context, Routers.messageListPage); }), - mineItem('images/mine/icon_mine_main_supportStaff.png', TranslationLoader.lanKeys!.supportStaff!.tr, (){ + mineItem('images/mine/icon_mine_main_supportStaff.png', + TranslationLoader.lanKeys!.supportStaff!.tr, () { Navigator.pushNamed(context, Routers.supportStaffPage); }), - mineItem('images/mine/icon_mine_main_set.png', TranslationLoader.lanKeys!.set!.tr, (){ + mineItem('images/mine/icon_mine_main_set.png', + TranslationLoader.lanKeys!.set!.tr, () { Navigator.pushNamed(context, Routers.mineSetPage); }), - mineItem('images/mine/icon_mine_main_vip.png', TranslationLoader.lanKeys!.valueAddedServices!.tr, (){ + mineItem('images/mine/icon_mine_main_vip.png', + TranslationLoader.lanKeys!.valueAddedServices!.tr, () { Navigator.pushNamed(context, Routers.valueAddedServicesPage); }), - mineItem('images/mine/icon_mine_main_about.png', TranslationLoader.lanKeys!.about!.tr, (){ + mineItem('images/mine/icon_mine_main_about.png', + TranslationLoader.lanKeys!.about!.tr, () { Navigator.pushNamed(context, Routers.abountPage); }), ], @@ -105,15 +144,13 @@ class _StarLockMinePageState extends State with BaseWidget{ Widget keyBottomWidget() { return Column( children: [ - SubmitBtn(btnName: TranslationLoader.lanKeys!.logout!.tr, + SubmitBtn( + btnName: TranslationLoader.lanKeys!.logout!.tr, borderRadius: 20.w, fontSize: 32.sp, margin: EdgeInsets.only(left: 60.w, right: 60.w), padding: EdgeInsets.only(top: 15.w, bottom: 15.w), - onClick: () { - - } - ), + onClick: () {}), Container( padding: EdgeInsets.only(right: 30.w), // color: Colors.red, @@ -121,20 +158,25 @@ class _StarLockMinePageState extends State with BaseWidget{ mainAxisAlignment: MainAxisAlignment.end, children: [ TextButton( - child: Text(TranslationLoader.lanKeys!.deleteAccount!.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),), - onPressed: () { - - }, + child: Text( + TranslationLoader.lanKeys!.deleteAccount!.tr, + style: TextStyle( + color: AppColors.mainColor, fontWeight: FontWeight.w500), + ), + onPressed: () {}, ), ], ), ), - SizedBox(height: 30.h,) + SizedBox( + height: 30.h, + ) ], ); } - Widget mineItem(String lockTypeIcon, String lockTypeTitle, Function() action){ + Widget mineItem( + String lockTypeIcon, String lockTypeTitle, Function() action) { return GestureDetector( onTap: action, child: Row( @@ -142,31 +184,35 @@ class _StarLockMinePageState extends State with BaseWidget{ Center( child: Container( // height: 80.h, - width: 400.w, + width: 330.w, padding: EdgeInsets.all(20.h), color: Colors.white, child: Row( children: [ - SizedBox(width:20.w), - Image.asset(lockTypeIcon, width: 40.w, height: 40.w,), - SizedBox(width:15.w), - Expanded(child: Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), )), + Image.asset( + lockTypeIcon, + width: 28.w, + height: 28.w, + ), + SizedBox(width: 15.w), + Text( + lockTypeTitle, + style: TextStyle(fontSize: 22.sp), + ), ], ), ), ), - Container(height: 0.5.h, color: Colors.grey,) + Container( + height: 0.5.h, + color: Colors.grey, + ) ], ), ); } - void onShow(){ + void onShow() {} - } - - void onHide(){ - - } + void onHide() {} } - diff --git a/star_lock/lib/tools/commonItem.dart b/star_lock/lib/tools/commonItem.dart index eb0e1cd3..b7b999da 100644 --- a/star_lock/lib/tools/commonItem.dart +++ b/star_lock/lib/tools/commonItem.dart @@ -40,9 +40,7 @@ class CommonItem extends StatelessWidget { children: [ SizedBox(width: 20.w), Expanded( - child: Text(leftTitel!, - style: TextStyle( - fontSize: 28.sp, fontWeight: FontWeight.w500))), + child: Text(leftTitel!, style: TextStyle(fontSize: 22.sp))), SizedBox(width: 20.w), Row( mainAxisAlignment: MainAxisAlignment.end, @@ -53,19 +51,20 @@ class CommonItem extends StatelessWidget { rightTitle!, textAlign: TextAlign.end, style: TextStyle( - fontSize: 28.sp, fontWeight: FontWeight.w500), + fontSize: 22.sp, + color: AppColors.darkGrayTextColor), ) ], ), - SizedBox(width: 5.w), + SizedBox(width: 8.w), isHaveDirection! ? Image.asset( - 'images/icon_right.png', - width: 50.w, - height: 50.w, + 'images/icon_right_grey.png', + width: 12.w, + height: 21.w, ) - : SizedBox(width: 10.w), - // SizedBox(width:10.w), + : SizedBox(width: 20.w), + SizedBox(width: 20.w), ], ), ), diff --git a/star_lock/lib/tools/submitBtn.dart b/star_lock/lib/tools/submitBtn.dart index a0f8c2c7..f13751d4 100644 --- a/star_lock/lib/tools/submitBtn.dart +++ b/star_lock/lib/tools/submitBtn.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; import '../app_settings/app_colors.dart'; @@ -27,6 +28,8 @@ class SubmitBtn extends StatelessWidget { double? borderRadius; + bool? isDelete; + SubmitBtn( {Key? key, required this.btnName, @@ -37,6 +40,7 @@ class SubmitBtn extends StatelessWidget { this.margin, this.width, this.backgroundColorList, + this.isDelete, this.fontSize}) : super(key: key); @@ -44,10 +48,11 @@ class SubmitBtn extends StatelessWidget { Widget build(BuildContext context) { return SizedBox( width: ScreenUtil().screenWidth - 40.w, - height: 44, + height: 60.h, child: ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: AppColors.mainColor, + backgroundColor: + isDelete == true ? Colors.red : AppColors.mainColor, ), onPressed: () { if (onClick != null) { @@ -56,7 +61,7 @@ class SubmitBtn extends StatelessWidget { }, child: Text( btnName!, - style: TextStyle(color: Colors.white, fontSize: 30.sp), + style: TextStyle(color: Colors.white, fontSize: 24.sp), )), ); /* diff --git a/star_lock/lib/tools/tf_loginInput.dart b/star_lock/lib/tools/tf_loginInput.dart index 2862b123..53637088 100644 --- a/star_lock/lib/tools/tf_loginInput.dart +++ b/star_lock/lib/tools/tf_loginInput.dart @@ -8,7 +8,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; * */ class LoginInput extends StatelessWidget { - TextEditingController? controller; List? inputFormatters; TextInputType? keyboardType; @@ -19,7 +18,19 @@ class LoginInput extends StatelessWidget { String? label; bool? isPwd; Widget? rightSlot; - LoginInput({Key? key, required this.controller,this.rightSlot,this.label,this.isPwd,this.inputFormatters,this.keyboardType,this.background,this.hintText, this.isHaveLeftWidget = true, this.leftWidget}) : super(key: key); + LoginInput( + {Key? key, + required this.controller, + this.rightSlot, + this.label, + this.isPwd, + this.inputFormatters, + this.keyboardType, + this.background, + this.hintText, + this.isHaveLeftWidget = true, + this.leftWidget}) + : super(key: key); @override Widget build(BuildContext context) { @@ -36,17 +47,28 @@ class LoginInput extends StatelessWidget { autofocus: false, decoration: InputDecoration( //输入里面输入文字内边距设置 - contentPadding: const EdgeInsets.only(top: 8.0, left: -19.0, right: -15.0, bottom: 8.0), + contentPadding: const EdgeInsets.only( + top: 8.0, left: -19.0, right: -15.0, bottom: 8.0), labelText: label, + labelStyle: TextStyle(fontSize: 22.sp), + hintStyle: TextStyle(fontSize: 22.sp), hintText: hintText, //不需要输入框下划线 border: InputBorder.none, //左边图标设置 - icon: isHaveLeftWidget == true?leftWidget:SizedBox(width: 20.w, height: 40.w,), + icon: isHaveLeftWidget == true + ? leftWidget + : SizedBox( + width: 20.w, + height: 40.w, + ), ), - obscureText: isPwd??false, + obscureText: isPwd ?? false, + ), + Container( + height: 0.5.h, + color: Colors.grey, ), - Container(height: 0.5.h, color: Colors.grey,), ], ), ); diff --git a/star_lock/lib/tools/titleAppBar.dart b/star_lock/lib/tools/titleAppBar.dart index 449c912c..479c5929 100644 --- a/star_lock/lib/tools/titleAppBar.dart +++ b/star_lock/lib/tools/titleAppBar.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class TitleAppBar extends AppBar { - @override final Color? backgroundColor; final String? barTitle; @@ -15,26 +14,47 @@ class TitleAppBar extends AppBar { final Widget? leftWidget; List? actionsList; - TitleAppBar({Key? key,this.barTitle,this.titleColor, this.haveTitleWidget = false, this.titleWidget, this.iconColor,this.backgroundColor,this.actionsList, this.haveBack, this.haveOtherLeftWidget = false , this.leftWidget}) : super(key: key); + TitleAppBar( + {Key? key, + this.barTitle, + this.titleColor, + this.haveTitleWidget = false, + this.titleWidget, + this.iconColor, + this.backgroundColor, + this.actionsList, + this.haveBack, + this.haveOtherLeftWidget = false, + this.leftWidget}) + : super(key: key); @override _TitleAppBarState createState() => _TitleAppBarState(); - } class _TitleAppBarState extends State { @override Widget build(BuildContext context) { return AppBar( - elevation: 0, - leading:widget.haveOtherLeftWidget!?widget.leftWidget:(widget.haveBack!?IconButton( - icon: Icon(Icons.arrow_back_ios,color: widget.iconColor??Colors.white), - onPressed: () => Navigator.of(context).pop(), - ):Container()), - backgroundColor: widget.backgroundColor??Colors.white, - title: widget.haveTitleWidget!?widget.titleWidget:Text(widget.barTitle??'', style: TextStyle(color: widget.titleColor??Colors.white,fontSize: 36.sp, fontWeight:FontWeight.w500)), - centerTitle: true, - actions: widget.actionsList??[] - ); + elevation: 0, + leading: widget.haveOtherLeftWidget! + ? widget.leftWidget + : (widget.haveBack! + ? IconButton( + icon: Icon(Icons.arrow_back_ios, + color: widget.iconColor ?? Colors.white), + onPressed: () => Navigator.of(context).pop(), + ) + : Container()), + backgroundColor: widget.backgroundColor ?? Colors.white, + title: widget.haveTitleWidget! + ? widget.titleWidget + : Text(widget.barTitle ?? '', + style: TextStyle( + color: widget.titleColor ?? Colors.white, + fontSize: 28.sp, + fontWeight: FontWeight.w600)), + centerTitle: true, + actions: widget.actionsList ?? []); } } diff --git a/star_lock/lib/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart index 30d51c93..099ad663 100644 --- a/star_lock/lib/translations/lanKeyEntity.dart +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -185,6 +185,7 @@ class LanKeyEntity { this.lanChinese, this.multilingual, this.addLock, + this.addDevice, this.gateway, this.message, this.supportStaff, @@ -196,6 +197,7 @@ class LanKeyEntity { this.pushNotification, this.lockUserManagement, this.authorizedAdmin, + this.addAuthorizedAdmin, this.lockGroup, this.transferSmartLock, this.selectiveLock, @@ -225,7 +227,9 @@ class LanKeyEntity { this.safetyProblem, this.modifyAccountTip, this.pleaseEnterAccountNumber, + this.pleaseEnterNewAccountNumber, this.changeIphoneTip, + this.changeEmailTip, this.originalPassword, this.newPassword, this.surePassword, @@ -270,6 +274,7 @@ class LanKeyEntity { this.padlock, this.safeLock, this.intelligentLockCore, + this.itelligentAccessControl, this.parkingLock, this.bicycleLock, this.longRangeControl, @@ -552,6 +557,7 @@ class LanKeyEntity { lanChinese = json['lanChinese']; multilingual = json['multilingual']; addLock = json['addLock']; + addDevice = json['addDevice']; gateway = json['gateway']; message = json['message']; supportStaff = json['supportStaff']; @@ -564,6 +570,7 @@ class LanKeyEntity { pushNotification = json['pushNotification']; lockUserManagement = json['lockUserManagement']; authorizedAdmin = json['authorizedAdmin']; + addAuthorizedAdmin = json['addAuthorizedAdmin']; lockGroup = json['lockGroup']; transferSmartLock = json['transferSmartLock']; selectiveLock = json['selectiveLock']; @@ -596,7 +603,9 @@ class LanKeyEntity { safetyProblem = json['safetyProblem']; modifyAccountTip = json['modifyAccountTip']; pleaseEnterAccountNumber = json['pleaseEnterAccountNumber']; + pleaseEnterNewAccountNumber = json['pleaseEnterNewAccountNumber']; changeIphoneTip = json['changeIphoneTip']; + changeEmailTip = json['changeEmailTip']; originalPassword = json['originalPassword']; newPassword = json['newPassword']; surePassword = json['surePassword']; @@ -646,6 +655,7 @@ class LanKeyEntity { padlock = json['padlock']; safeLock = json['safeLock']; intelligentLockCore = json['intelligentLockCore']; + itelligentAccessControl = json['itelligentAccessControl']; parkingLock = json['parkingLock']; bicycleLock = json['bicycleLock']; longRangeControl = json['longRangeControl']; @@ -936,6 +946,7 @@ class LanKeyEntity { String? lanChinese; String? multilingual; String? addLock; + String? addDevice; String? gateway; String? message; String? supportStaff; @@ -948,6 +959,7 @@ class LanKeyEntity { String? pushNotification; String? lockUserManagement; String? authorizedAdmin; + String? addAuthorizedAdmin; String? lockGroup; String? transferSmartLock; String? selectiveLock; @@ -978,7 +990,9 @@ class LanKeyEntity { String? safetyProblem; String? modifyAccountTip; String? pleaseEnterAccountNumber; + String? pleaseEnterNewAccountNumber; String? changeIphoneTip; + String? changeEmailTip; String? originalPassword; String? newPassword; String? surePassword; @@ -1025,6 +1039,7 @@ class LanKeyEntity { String? padlock; String? safeLock; String? intelligentLockCore; + String? itelligentAccessControl; String? parkingLock; String? bicycleLock; String? longRangeControl; @@ -1316,6 +1331,7 @@ class LanKeyEntity { map['lanChinese'] = lanChinese; map['multilingual'] = multilingual; map['addLock'] = addLock; + map['addDevice'] = addDevice; map['gateway'] = gateway; map['message'] = message; map['supportStaff'] = supportStaff; @@ -1328,6 +1344,7 @@ class LanKeyEntity { map['pushNotification'] = pushNotification; map['lockUserManagement'] = lockUserManagement; map['authorizedAdmin'] = authorizedAdmin; + map['addAuthorizedAdmin'] = addAuthorizedAdmin; map['lockGroup'] = lockGroup; map['transferSmartLock'] = transferSmartLock; map['selectiveLock'] = selectiveLock; @@ -1361,7 +1378,9 @@ class LanKeyEntity { map['safetyProblem'] = safetyProblem; map['modifyAccountTip'] = modifyAccountTip; map['pleaseEnterAccountNumber'] = pleaseEnterAccountNumber; + map['pleaseEnterNewAccountNumber'] = pleaseEnterNewAccountNumber; map['changeIphoneTip'] = changeIphoneTip; + map['changeEmailTip'] = changeEmailTip; map['originalPassword'] = originalPassword; map['newPassword'] = newPassword; map['surePassword'] = surePassword; @@ -1409,6 +1428,7 @@ class LanKeyEntity { map['padlock'] = padlock; map['safeLock'] = safeLock; map['intelligentLockCore'] = intelligentLockCore; + map['itelligentAccessControl'] = itelligentAccessControl; map['parkingLock'] = parkingLock; map['bicycleLock'] = bicycleLock; map['longRangeControl'] = longRangeControl;