From b1e2cf4ebd2b9bc17543053a2cbc2256744e16ee Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Tue, 25 Jul 2023 15:48:40 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=9B=BE=E7=89=87=202=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E7=AE=A1=E7=90=86=E5=91=98=E6=A8=A1=E5=9D=97UI=203?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=94=81=E5=88=86=E7=BB=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97UI=204=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=94=81=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97UI=205=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=BD=AC=E7=A7=BB=E6=99=BA=E8=83=BD=E9=94=81?= =?UTF-8?q?=E6=A8=A1=E5=9D=97UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/icon_addressBook.png | Bin 0 -> 1795 bytes star_lock/images/icon_lockGroup_item.png | Bin 0 -> 4192 bytes star_lock/images/lan/lan_en.json | 4 +- star_lock/images/lan/lan_keys.json | 4 +- star_lock/images/lan/lan_zh.json | 2 + star_lock/images/normal_circle.png | Bin 0 -> 1343 bytes star_lock/images/select_circle.png | Bin 0 -> 1763 bytes star_lock/lib/appRouters.dart | 28 ++- star_lock/lib/app_settings/app_colors.dart | 2 + star_lock/lib/main.dart | 47 ++--- .../authorizedAdministratorList_page.dart | 2 +- .../mineSet/lockGroup/lockGroupList_page.dart | 71 +++++++ .../mineSet/lockGroup/lockItemList_page.dart | 66 ++++++ .../lockUserManageList_page.dart | 2 +- star_lock/lib/mine/mineSet/mineSet_page.dart | 9 +- .../recipientInformation_page.dart | 198 ++++++++++++++++++ .../transferSmartLock/selectBranch_page.dart | 134 ++++++++++++ .../transferSmartLock_page.dart | 166 +++++++++++++++ star_lock/lib/translations/lanKeyEntity.dart | 8 + 19 files changed, 709 insertions(+), 34 deletions(-) create mode 100644 star_lock/images/icon_addressBook.png create mode 100644 star_lock/images/icon_lockGroup_item.png create mode 100644 star_lock/images/normal_circle.png create mode 100644 star_lock/images/select_circle.png create mode 100644 star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart create mode 100644 star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart create mode 100644 star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart create mode 100644 star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart create mode 100644 star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart diff --git a/star_lock/images/icon_addressBook.png b/star_lock/images/icon_addressBook.png new file mode 100644 index 0000000000000000000000000000000000000000..09aa9ba3e766ae077fc3c637244ccd6f9f51118b GIT binary patch literal 1795 zcmV+e2mJVnP)w-2#;etvE;;f3?u9bFgy!}21?2; z^D8Mumvp=3ZWl_Il)wEGDA|S?hG7PpU=WNZ*kEbKF-Bv@AQ4;lSH$uviS77ty}wNM z)5*HhIp5sZIY&2)>$;c|>V)l!^KgQv_%0Oy2q8kN)w*t3*1g@`-Bi2XhHcyEcDv|y zy8r-=0foi+mzE&!g9yXiJi5#63Q4~=q z6rO~`;WwB-<3WI*ve<5F%)rwpp!KXLgbX zvMfVUl#OwQ>~R8BLWr=nwY6ER)u=i-E6HRMtE;QWieyK;)RQvjMp3O+VHk#rA-yw1=!(X(gI;>L{|8@>zygb?A!j~`i%kg&rcx<^W&iFszd*HGtx_`>kH?`X%8~eyVHku$A#^&OUl$e@KvUq}-X5ye z>iY8Xa^GfODj`HDm&+*{h5~^Au3o*m5ekLgVaO)T^SpK8!i8rv?D;8|%PId{^aQGn zM&kjklqVL8VT=@~7>PvQP%-GkaU3)njR)w>#eNT(rg@*1kzg=5Ry&^OztOVk$FGG2 z_J?P^UZ-YY+%1OYD(a_RufrRrJOH#>t?Sd483xhmbf$W4ad8ppbo$7=bQ~x9{{8#0 zSNCqWi&m?3T@*#|094De?oH*jC+w`sf+ z!2VuzTngjIah&tijQj93u>fG(_Q=MQ(Cv2d@#DwML2=-0X5s5?|N|H2kFD#Wx>;BOriXxVlmdwNL9LGtO%jJoD@HEXuAOJKPjl3jDL+=wp z1k17x{1%JFkWQx``(sxCux&eAsZ`b{S!50foCo!K9j@yh2z-60J3BkS9NsT0l?p1A z%E%0TQdj^7QW#ovyIq*3IW*J$^5x51=AMVAX>I}m;M1p112^Ypvw7#+x4A@VeLPJ( zu)lZx{P~l*k=`P6gh(XvIvS0xwOXx#&n+%4A{-9)uWj4Lq{S~m*k8nX00@V}pqa&U z9EVGnF1=Y=T6%&3t0>E|_RX6&H#AM#Gz{a&^Z9)KaWEL%_O4ym6?S%ZHYZtRygv{R z0Fg+<1Tb?n!*Lwa=`_xtKmQxg^A?705k;0|)qFnxD4kB<(RF?8>({USn=f9xSPujO z{p(JrgGs~zeNFq7?Pjz2-&e0*txYP(gXejytgP58D=WWq9A|kV#(Z1_fbZYG=XG6I zY1LtG-MaOsD2o5#0U#QUzUDY?ZJPb?+_`he=ktFA0s#}#eZwmPKqwSaFJHd=$g-^a zZ{NQCWtQlQ<2Xd4(bqt46=fL4P9zc&zetv4T)A@P(G24J6af@tvDmZQw{QOu3WcVA zQ6iCm7cBI5;Z!O$QGJBxc_@mq;d71_#XulnUc7j5>Uxb|izl!ckH?>mTWSFI>zy>d zp%0-b2*UR9&5jZb1`&_PpQ7hiKU8BF#?E9i=7$d-CS6S@JuWg=GMS9&k7W;hA9P)J z{rU6fo8#0f8HO3VxHJuf5KLO-3j_kVd-v`J%d(HX-wp)ZEX&%tTyA@u`UfF|Y92|0 zTrRiWD_8b89O@S(Nh*q>_z${82T>FUmP(G~G7Q7mg+k%UkTmB+!m=z1g~F4=c_c9S z`(QB~4!=gwu=6gloOl7Ia{Adgdhl*`YlJ&fn)R3E4Gb7~L79_G{@X+F%X lhtmH#sfW^saU%Y$;C~$!RdqF#F2eu-002ovPDHLkV1mXoUW@<$ literal 0 HcmV?d00001 diff --git a/star_lock/images/icon_lockGroup_item.png b/star_lock/images/icon_lockGroup_item.png new file mode 100644 index 0000000000000000000000000000000000000000..68fa570c11e764b25af170d5a93e49b3f2e3f609 GIT binary patch literal 4192 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json index 398e0481..6e9c5107 100644 --- a/star_lock/images/lan/lan_en.json +++ b/star_lock/images/lan/lan_en.json @@ -199,9 +199,12 @@ "touchUnlock":"Touch Unlock", "pushNotification":"Push Notification", "lockUserManagement":"Lock User Management", + "aboutToExpire":"About to expire", "authorizedAdmin":"Authorized Admin", "lockGroup":"Lock Group", "transferSmartLock":"Transfer Smart Lock", + "selectiveLock":"Selective lock", + "recipientInformation":"recipientInformation", "transferGateway":"Transfer Gateway", "multiLanguage":"Multi Language", "lockScreen":"Lock Screen", @@ -236,7 +239,6 @@ "problemTwo":"Problem Two", "problemThree":"Problem Three", "pleaseEnterYourAnswer":"Please Enter Your Answer", - "aboutToExpire":"About to expire", "designation": "designation", "state": "State", diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json index 833edfed..79399173 100644 --- a/star_lock/images/lan/lan_keys.json +++ b/star_lock/images/lan/lan_keys.json @@ -202,6 +202,8 @@ "authorizedAdmin":"authorizedAdmin", "lockGroup":"lockGroup", "transferSmartLock":"transferSmartLock", + "selectiveLock":"selectiveLock", + "recipientInformation":"recipientInformation", "transferGateway":"transferGateway", "multiLanguage":"multiLanguage", "lockScreen":"lockScreen", @@ -236,7 +238,7 @@ "problemTwo":"problemTwo", "problemThree":"problemThree", "pleaseEnterYourAnswer":"pleaseEnterYourAnswer", - "aboutToExpire":"About to expire", + "aboutToExpire":"aboutToExpire", "designation": "designation", "state": "state", diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index bd462406..91d7a2b5 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -202,6 +202,8 @@ "authorizedAdmin":"授权管理员", "lockGroup":"锁分组", "transferSmartLock":"转移智能锁", + "selectiveLock":"选择锁", + "recipientInformation":"接收人信息", "transferGateway":"转移网关", "multiLanguage":"多语言", "lockScreen":"锁屏", diff --git a/star_lock/images/normal_circle.png b/star_lock/images/normal_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..7884e181787c04cc9c51ae0ba6f8bd8ca1d7b11b GIT binary patch literal 1343 zcmV-F1;F}=P)}q%4Uw~2y z%ku5pH~8}93$)wqUB_|i0011vDdBMV{rdX4!Z1vVVVH>PxyEivC>S#3jY}>X9 z0Kl?rHl0qFU%q?^FJ8P@dj7yN(%0A5aB*>Q)a&(*5kiqY1L$z9kPN!2~SvD&O!XeM|5DW$vo@kcw zcnr;E69^%Dj^or*sZ{0l>(>wpg??SyG)+)db%### zj1od9tSHJc#`x!?JH&d$Iz%>vK!2f18M`L6+<63_EM(=@f&Z0=)>EBSo>LGd|h&-38)^z@|D z=^SitZ~r4nQuw#q&QPn>Mi&wwCR5Iu)ON7Q!^m3d^!t zw6(QW?smK7@p$aF)1!>XW4OG$ET_}yGRkB!Kq(zIn@zvH9;MlA0;P1A$z%XUqftmC z5<7&DJMeqQhQ`zMN`98bTl?iC<0#vlkng%Gkw2wA!0G=van zG#Yz?AXH|Pfw>$)mSx!7+}zhRt=MQZRwg-3qtO6O(~215eOZ?0`sbu?i+)9n@xHF> zMNQM{t6Jl?NkCoK^&-Z2KcCMR7fJ%A2l%5hmuY@?y5)Hu7=|%Px8A&YbDU16AN^*b z9MQ5Ys8*}c?RNi+9C4anuLreS?a32cNs>y-RJoRtzGE;LK&#b)uV26Je*gY`E*lR9 zgDHeigi<;jkH>S__}bc9c57>^oXKP$8jUVJ|G%X=l6_5f9}EBh002ovPDHLkV1nmc Be(L}L literal 0 HcmV?d00001 diff --git a/star_lock/images/select_circle.png b/star_lock/images/select_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..a14a5c4fb171f3c1fe3219402ad9f6c0be9c1a58 GIT binary patch literal 1763 zcmV<91|0c`P)T|@ zjOTF|wsjq8q)`${m)`$Mj5Oc()0uD1ne+dKGEEcR(u)@_X3FLA1w~PKUDth@rui6# zDbh4uJMmkTsagQjWdx(;2} zQLR={sZ?$%iV_9@mSyFUk&)#{BqH|}esgm(S}K*IgpjJw=UWH_0vH+^0>^Q-=PHVV zQmKSoE{9^VxMCQFYiMX_b#88MwWsj0SnP5>pTEYktSkt^b)M(JFwDE=tV`20$g&Jc zl5VN0%KQEPm9uBh{?_UF9mB7$uirKd!yOC;7skfMKnQtn=tdcaft{TlWHOl*LP+J( zrAv#QoM#I!iXtyb((>To;KRwu$=fcMt1G}(s#dGm-rio^-`~G12*Q%x{m>RZ9*K#srio-S30am`1A)Mu>FMc*t$y3GV2|rN6bePh$H#j^Y9WfE z5Q#*>RHvqy7O-xKgPoF;BTiO;HA0G$9FwtZ(36^Cg zs}iz=mn3PK=lORA&+VJoOdI%1HjvJm*vXrCQ#&ln0VjpAVG5xU3Lo(Vb0LDjVEZx@ z1Oe4*H7ZFGB9X{hLKFUw_Qt+fNx#ly!_+t%i+_jTOJ&|F4rb@LOe*%jK?xLZN6U;Dt9P?mp6R@3Hn? z(8o%?GV#w}4o6Roye7*&{hpd-*6AzyD4*XaTo@#iRZ!RB(Vc_%m7P8sw5^w~sswy7{1Z;!; z9@F1@R(TgCUmZ@pRvI22#_|54Uh_jkLu~`*_D!tCyI<$6v=-Nq+ixByuh(1uOt!bT zFK`@}wA)B*rj3plpl)cVaJX7GisLwN9G6Ta5*J9hT%PfGJU8ru{UtXC>a|+s^msfs zDwWC%Q4}TYbUJMVrL+ATb-SESrxU8G^5o#)z(>=xZJ-^CyT8|Jm6N7vXqx6DrfIr5 zfj@pa?5A4gJaQ#`grcabuJ>;i>4tP&2TjvO;&3>Moxl$`d%p$jG^eiXU>K%IIF3u! zYBk$HV{M+fd!<%6Yqc6!mX(Rec$Z)I-@nlx^HZ1$HN&6eBmm%WIOKdj z-!@oa@Nm!BFU?QWmK*e3E(exnW#9;YbaZsNP$;ZuTKmV{D>F30r+Pp7;Zqc@%rp;_ zrfDb^iz_1|Bg?=Md?XT)4a0EBa(lOVeE4v)+-rUPF=Oc{$g&K>FkHtTPQ9qSUhk?T zNw@60%WpqraP?yE{=n6XhfYGHOw)uUNw>USZ`}&7!_UsnuBxiaXEK?#!71u+m;cQt z-LL;|KB4jbXSAgSlF4MCswzJ_JKGEo0D(Z@P9~FCv0JqK0~CJvyt`N6>O}@We9l-} zAGKNynM`IS5D45kdHgN->FMc*gpf)ikyx}VAO8S_AHQ(mr>`6zbQ6b9QTXXA2Y&p* zVF_-UCK8FnA|a&G=onjC+-qxV{}u!x8V-j$0_dgPmrA9uySuwOKR<8pRRaHQD1^h| zs2~U(!2sPiS|v$BGMQX$)o5thTsZdU|5rBm?(Qy9sZ`qrLr0wvK@g%76BB*wjHFU2 zNRnjR8TtS1Nu5+LyMd-@B9qBE;Gd}SDXL< literal 0 HcmV?d00001 diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 6b0e6cc2..7311e0af 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -1,7 +1,11 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageListPage.dart'; +import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart'; +import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_page.dart'; import 'package:star_lock/mine/mineSet/mineSet_page.dart'; +import 'package:star_lock/mine/mineSet/transferSmartLock/recipientInformation_page.dart'; +import 'package:star_lock/mine/mineSet/transferSmartLock/selectBranch_page.dart'; +import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLock_page.dart'; import 'login/forgetPassword/starLock_forgetPassword_page.dart'; import 'login/login/starLock_login_page.dart'; @@ -86,6 +90,7 @@ import 'mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassw import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart'; import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart'; import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart'; +import 'mine/mineSet/lockGroup/lockItemList_page.dart'; import 'mine/mineSet/lockScreen/lockScreen_page.dart'; import 'mine/mine_page.dart'; import 'mine/supportStaff/supportStaff_page.dart'; @@ -99,7 +104,7 @@ import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedS import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart'; -import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorListPage.dart'; +import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart'; import 'starLockApplication.dart'; abstract class Routers { @@ -241,6 +246,11 @@ abstract class Routers { static const lockUserManageLisPage = '/LockUserManageLisPage'; //我的设置-锁用户管理 static const authorizedAdministratorListPage = '/AuthorizedAdministratorListPage'; //我的设置-授权管理员 + static const lockGroupListPage = '/LockGroupListPage'; //我的设置-锁分组 + static const lockItemListPage = '/LockItemListPage'; //锁分组-锁列表 + static const transferSmartLockPage = '/transferSmartLockPage'; //转移智能锁 + static const recipientInformationPage = '/recipientInformationPage'; //接受人信息 + static const selectBranchPage = '/SelectBranchPage'; //选择分店 static const starLockLoginPage = '/StarLockLoginPage'; // 登录 static const starLockRegisterPage = '/StarLockRegisterPage'; // 注册 @@ -648,6 +658,18 @@ abstract class AppRouters { page: () => const AuthorizedAdministratorListPage()), GetPage( name: Routers.lockUserManageLisPage, - page: () => const LockUserManageListListPage()) + page: () => const LockUserManageListListPage()), + GetPage( + name: Routers.lockGroupListPage, page: () => const LockGroupListPage()), + GetPage( + name: Routers.lockItemListPage, page: () => const LockItemListPage()), + GetPage( + name: Routers.transferSmartLockPage, + page: () => const TransferSmartLockPage()), + GetPage( + name: Routers.recipientInformationPage, + page: () => const RecipientInformationPage()), + GetPage( + name: Routers.selectBranchPage, page: () => const SelectBranchPage()) ]; } diff --git a/star_lock/lib/app_settings/app_colors.dart b/star_lock/lib/app_settings/app_colors.dart index 5901a74d..746a9ab9 100644 --- a/star_lock/lib/app_settings/app_colors.dart +++ b/star_lock/lib/app_settings/app_colors.dart @@ -116,4 +116,6 @@ class AppColors { static Color progressValueColor = const Color(0xFF0093E5); static const greyLineColor = Color.fromRGBO(240, 240, 240, 1); //灰色分割线 + static const darkGrayTextColor = Color.fromRGBO(65, 65, 65, 1); //深灰色字体 + static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //占位字体颜色 } diff --git a/star_lock/lib/main.dart b/star_lock/lib/main.dart index 5e81342f..7fc3b1e4 100644 --- a/star_lock/lib/main.dart +++ b/star_lock/lib/main.dart @@ -23,19 +23,18 @@ void main() async { } class MyApp extends StatefulWidget { - const MyApp({GlobalKey? key}):super(key: key); + const MyApp({GlobalKey? key}) : super(key: key); @override State createState() => _MyAppState(); } class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { - @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(750, 1334), - builder: (w, a) => _initMaterialApp()); + builder: (w, a) => _initMaterialApp()); } GetMaterialApp _initMaterialApp() => GetMaterialApp( @@ -47,17 +46,19 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], - localeResolutionCallback: (locale,supportedLocales){ - if(!supportedLocales.contains(locale)) { - int idx = appSupportedLocales.indexWhere((element) => element.languageCode == locale!.languageCode); - if(idx != -1) { + localeResolutionCallback: (locale, supportedLocales) { + if (!supportedLocales.contains(locale)) { + int idx = appSupportedLocales.indexWhere( + (element) => element.languageCode == locale!.languageCode); + if (idx != -1) { locale = appSupportedLocales[idx]; - }else { + } else { locale = const Locale('zh', 'CN'); } } // print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}"); - AppManager().setLanCode(code: '${locale!.languageCode}_${locale.countryCode}'); + AppManager() + .setLanCode(code: '${locale!.languageCode}_${locale.countryCode}'); return locale; }, // locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale, @@ -68,21 +69,19 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { backgroundColor: const Color(0xFFF6F6F6), primaryColor: const Color(0xFFFFFFFF), textTheme: TextTheme( - //用在非Material组件上的文字显示, - bodyText1: TextStyle( - fontSize: 28.sp, color: const Color(0xff2E2B2B)), + //用在非Material组件上的文字显示, + bodyText1: + TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)), //Material组件上的文字显示 - bodyText2: TextStyle( - fontSize: 28.sp, color: const Color(0xff2E2B2B)), + bodyText2: + TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)), button: TextStyle(fontSize: 28.sp)), - iconTheme: - IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)), + iconTheme: IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)), appBarTheme: AppBarTheme( backgroundColor: const Color(0xFFFFFFFF), elevation: 0, centerTitle: true, - iconTheme: - IconThemeData(color: const Color(0xff333333), size: 36.sp), + iconTheme: IconThemeData(color: const Color(0xff333333), size: 36.sp), titleTextStyle: TextStyle( color: const Color(0xff333333), fontWeight: FontWeight.w400, @@ -93,8 +92,7 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { ), debugShowCheckedModeBanner: false, getPages: AppRouters.routePages, - initialRoute: '/' - ); + initialRoute: '/'); @override void initState() { @@ -117,15 +115,14 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { print("应用进入后台"); } } - } // 设置国际化信息 Future _initTranslation() async => TranslationLoader.loadTranslation( - zhSource: "images/lan/lan_zh.json", - enSource: "images/lan/lan_en.json", - keySource: "images/lan/lan_keys.json", -); + zhSource: "images/lan/lan_zh.json", + enSource: "images/lan/lan_en.json", + keySource: "images/lan/lan_keys.json", + ); // 设置包名服务设备信息 Future _setCommonServices() async { diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart index 2827c7ba..82073e45 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart @@ -27,7 +27,7 @@ class _AuthorizedAdministratorListPageState backgroundColor: AppColors.mainColor, actionsList: [ IconButton( - icon: const Icon(Icons.add), + icon: Image.asset('images/icon_add_white.png'), onPressed: () { // 处理操作按钮的点击事件 Navigator.pushNamed(context, Routers.authorizedAdminManagePage); diff --git a/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart b/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart new file mode 100644 index 00000000..6d22bf78 --- /dev/null +++ b/star_lock/lib/mine/mineSet/lockGroup/lockGroupList_page.dart @@ -0,0 +1,71 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class LockGroupListPage extends StatefulWidget { + const LockGroupListPage({Key? key}) : super(key: key); + + @override + State createState() => _LockGroupListPageState(); +} + +class _LockGroupListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, + haveBack: true, + actionsList: [ + IconButton( + icon: Image.asset('images/icon_add_white.png'), + onPressed: () { + // 处理操作按钮的点击事件-添加锁分组 + }, + ), + ], + backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Expanded(child: _buildMainUI()), + ], + ), + ); + } + + Widget _buildMainUI() { + return ListView.builder( + itemCount: 2, + itemBuilder: (c, index) { + if (index == 1) { + return Center( + child: SizedBox( + height: 40.h, + child: const Text( + '锁数量:1', + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 14), + ), + ), + ); + } else { + return CommonItem( + leftTitel: "未分组(1)", + rightTitle: "", + allHeight: 70.h, + isHaveLine: true, + action: () { + Navigator.pushNamed(context, Routers.lockItemListPage); + }); + } + }); + } +} diff --git a/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart new file mode 100644 index 00000000..9b87feec --- /dev/null +++ b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class LockItemListPage extends StatefulWidget { + const LockItemListPage({Key? key}) : super(key: key); + + @override + State createState() => _LockItemListPageState(); +} + +class _LockItemListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemBuilder: (context, index) { + return _listItemView(); + }, + itemCount: 2, + ), + ); + } + + Widget _listItemView() { + return GestureDetector( + child: Container( + color: Colors.white, + height: 70.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: 20.w, + ), + Image.asset( + 'images/icon_lockGroup_item.png', + width: 30, + height: 30, + fit: BoxFit.fill, + ), + SizedBox( + width: 8.w, + ), + const Text( + 'Daisy', + style: TextStyle(fontSize: 14), + ) + ], + ), + ), + onTap: () {}, + ); + } +} diff --git a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart index 0e1a2fb7..ce9cc138 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart @@ -23,7 +23,7 @@ class _LockUserManageListListPageState return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr, + barTitle: TranslationLoader.lanKeys!.lockUserManagement!.tr, haveBack: true, backgroundColor: AppColors.mainColor, actionsList: [ diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart index 782a14e4..6310488f 100644 --- a/star_lock/lib/mine/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet_page.dart @@ -81,14 +81,19 @@ class _MineSetPageState extends State { rightTitle: "", isHaveLine: true, isHaveDirection: true, - action: () {}), + action: () { + Navigator.pushNamed(context, Routers.lockGroupListPage); + }), CommonItem( leftTitel: TranslationLoader.lanKeys!.transferSmartLock!.tr, rightTitle: "", isHaveLine: true, isHaveDirection: true, - action: () {}), + action: () { + Navigator.pushNamed( + context, Routers.transferSmartLockPage); + }), CommonItem( leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr, rightTitle: "", diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart new file mode 100644 index 00000000..dc8129ea --- /dev/null +++ b/star_lock/lib/mine/mineSet/transferSmartLock/recipientInformation_page.dart @@ -0,0 +1,198 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class RecipientInformationPage extends StatefulWidget { + const RecipientInformationPage({Key? key}) : super(key: key); + + @override + State createState() => + _RecipientInformationPageState(); +} + +class _RecipientInformationPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + ), + body: Column( + children: [ + SizedBox(height: 150.h, child: _buildMainUI()), + SizedBox( + height: 20.h, + ), + _buildAccoutRow(), + _buildBottomText(), + _buildNextBtn(), + Expanded( + child: SizedBox( + height: 64.h, + )), + _buildRemoveBadLockBtn(), + SizedBox( + height: 64.h, + ) + ], + ), + ); + } + + Widget _buildMainUI() { + return ListView.separated( + itemCount: 2, + separatorBuilder: (context, index) { + return Divider( + height: 1, + indent: 20.w, + endIndent: 20.w, + color: AppColors.greyLineColor, + ); + }, + itemBuilder: (c, index) { + if (index == 0) { + return _electronicKeyItem( + 'images/select_circle.png', "个人用户", () {}); + } else { + return _electronicKeyItem( + 'images/normal_circle.png', "好房管家", () {}); + } + }); + } + + Widget _electronicKeyItem( + String leftIcon, String leftTitle, Function() action) { + return GestureDetector( + child: Container( + color: Colors.white, + height: 70.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: 40.w, + ), + GestureDetector( + child: Image.asset( + leftIcon, + width: 16, + height: 16, + ), + ), + SizedBox( + width: 16.w, + ), + Text( + leftTitle, + style: TextStyle(fontSize: 28.sp), + ) + ], + ), + ), + onTap: () {}, + ); + } + + Widget _buildAccoutRow() { + return Container( + height: 60.h, + color: Colors.white, + child: Row( + children: [ + SizedBox( + width: 40.w, + ), + Text( + '账号', + style: + TextStyle(color: AppColors.darkGrayTextColor, fontSize: 24.sp), + ), + Expanded( + child: TextField( + textAlign: TextAlign.right, + keyboardType: TextInputType.text, + onChanged: (value) {}, + decoration: InputDecoration( + border: InputBorder.none, + hintText: '请输入手机号或email', + hintStyle: TextStyle( + color: AppColors.placeholderTextColor, + fontSize: ScreenUtil().setSp(24), + textBaseline: TextBaseline.alphabetic), + ), + )), + SizedBox( + width: 20.w, + ), + Image.asset( + 'images/icon_addressBook.png', + width: 28.w, + height: 28.h, + ), + SizedBox( + width: 40.w, + ) + ], + ), + ); + } + + Widget _buildBottomText() { + return Padding( + padding: EdgeInsets.only(top: 20.h, bottom: 80.h), + child: Text( + '选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权', + style: + TextStyle(fontSize: 20.sp, color: AppColors.placeholderTextColor), + textAlign: TextAlign.left, + ), + ); + } + + Widget _buildNextBtn() { + return GestureDetector( + child: Container( + color: Colors.grey, + width: ScreenUtil().screenWidth - 80.w, + height: 64.h, + child: TextButton( + onPressed: () { + Navigator.pushNamed(context, Routers.selectBranchPage); + }, + child: Text( + '下一步', + style: TextStyle(fontSize: 28.sp, color: Colors.white), + )), + ), + ); + } + + Widget _buildRemoveBadLockBtn() { + return Row( + children: [ + const Expanded(child: SizedBox()), + TextButton( + onPressed: () {}, + child: Text( + '移除坏锁', + style: TextStyle( + fontSize: 28.sp, color: AppColors.darkGrayTextColor), + textAlign: TextAlign.end, + )), + SizedBox( + width: 10.h, + ) + ], + ); + } +} diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart new file mode 100644 index 00000000..e6d63755 --- /dev/null +++ b/star_lock/lib/mine/mineSet/transferSmartLock/selectBranch_page.dart @@ -0,0 +1,134 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class SelectBranchPage extends StatefulWidget { + const SelectBranchPage({Key? key}) : super(key: key); + + @override + State createState() => _SelectBranchPageState(); +} + +class _SelectBranchPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + ), + body: Column( + children: [ + _buildTopView(), + SizedBox( + height: 20.h, + ), + Expanded(child: _buildMainUI()), + _buildNextBtn(), + SizedBox( + height: 64.h, + ) + ], + ), + ); + } + + Widget _buildTopView() { + return Container( + height: 120.h, + width: ScreenUtil().screenWidth, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 40.w, top: 20.h, bottom: 16.h), + child: Text( + '公寓', + style: TextStyle(fontSize: 28.sp), + ), + ), + Padding( + padding: EdgeInsets.only(left: 40.w), + child: Text('管理员:18682150237', + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 24.sp)), + ) + ], + ), + ); + } + + Widget _buildMainUI() { + return ListView.separated( + itemCount: 5, + separatorBuilder: (context, index) { + return Divider( + height: 1, + indent: 20.w, + endIndent: 20.w, + color: AppColors.greyLineColor, + ); + }, + itemBuilder: (c, index) { + return _electronicKeyItem('images/select_circle.png', "分组一", () {}); + }); + } + + Widget _electronicKeyItem( + String leftIcon, String leftTitle, Function() action) { + return GestureDetector( + child: Container( + color: Colors.white, + height: 70.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: 40.w, + ), + GestureDetector( + child: Image.asset( + leftIcon, + width: 16, + height: 16, + ), + ), + SizedBox( + width: 16.w, + ), + Text( + leftTitle, + style: TextStyle(fontSize: 28.sp), + ) + ], + ), + ), + onTap: () {}, + ); + } + + Widget _buildNextBtn() { + return GestureDetector( + child: Container( + color: AppColors.mainColor, + width: ScreenUtil().screenWidth, + height: 64.h, + child: TextButton( + onPressed: () {}, + child: Text( + '下一步', + style: TextStyle(fontSize: 28.sp, color: Colors.white), + )), + ), + ); + } +} diff --git a/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart new file mode 100644 index 00000000..0101074a --- /dev/null +++ b/star_lock/lib/mine/mineSet/transferSmartLock/transferSmartLock_page.dart @@ -0,0 +1,166 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class TransferSmartLockPage extends StatefulWidget { + const TransferSmartLockPage({Key? key}) : super(key: key); + + @override + State createState() => _TransferSmartLockPageState(); +} + +class _TransferSmartLockPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.selectiveLock!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + onPressed: () {}, + child: Text( + '全选', + style: TextStyle(color: Colors.white, fontSize: 28.sp), + )) + ], + ), + body: Column( + children: [ + _searchWidget(), + SizedBox( + height: 10.h, + ), + Expanded(child: _buildMainUI()), + SizedBox( + height: 20.h, + ), + _buildNextBtn(), + SizedBox( + height: 64.h, + ) + ], + ), + ); + } + + Widget _searchWidget() { + return Container( + height: 60.h, + margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only( + top: 30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset( + 'images/main/icon_main_search.png', + width: 40.w, + height: 40.w, + ), + ), + ), + ), + ); + } + + Widget _buildMainUI() { + return ListView.separated( + itemCount: 10, + separatorBuilder: (context, index) { + return Divider( + height: 1, + indent: 20.w, + endIndent: 20.w, + color: AppColors.greyLineColor, + ); + }, + itemBuilder: (c, index) { + return _electronicKeyItem('images/icon_lock.png', "张三", + "2023.6.21 11.15", "2023.6.21 11.15", () { + Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); + }); + }); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, + String beginTime, String endTime, Function() action) { + return GestureDetector( + child: Container( + color: Colors.white, + height: 70.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: 20.w, + ), + GestureDetector( + child: Image.asset( + 'images/icon_round_unSelet.png', + width: 16, + height: 16, + ), + ), + SizedBox( + width: 16.w, + ), + Image.asset( + 'images/icon_lockGroup_item.png', + width: 30, + height: 30, + fit: BoxFit.fill, + ), + SizedBox( + width: 8.w, + ), + const Text( + 'Daisy', + style: TextStyle(fontSize: 14), + ) + ], + ), + ), + onTap: () {}, + ); + } + + Widget _buildNextBtn() { + return GestureDetector( + child: Container( + color: Colors.grey, + width: ScreenUtil().screenWidth, + height: 64.h, + child: TextButton( + onPressed: () { + Navigator.pushNamed(context, Routers.recipientInformationPage); + }, + child: Text( + '下一步', + style: TextStyle(fontSize: 28.sp, color: Colors.white), + )), + ), + ); + } +} diff --git a/star_lock/lib/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart index ddf9fac9..30d51c93 100644 --- a/star_lock/lib/translations/lanKeyEntity.dart +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -198,6 +198,8 @@ class LanKeyEntity { this.authorizedAdmin, this.lockGroup, this.transferSmartLock, + this.selectiveLock, + this.recipientInformation, this.transferGateway, this.multiLanguage, this.lockScreen, @@ -564,6 +566,8 @@ class LanKeyEntity { authorizedAdmin = json['authorizedAdmin']; lockGroup = json['lockGroup']; transferSmartLock = json['transferSmartLock']; + selectiveLock = json['selectiveLock']; + recipientInformation = json['recipientInformation']; transferGateway = json['transferGateway']; multiLanguage = json['multiLanguage']; @@ -946,6 +950,8 @@ class LanKeyEntity { String? authorizedAdmin; String? lockGroup; String? transferSmartLock; + String? selectiveLock; + String? recipientInformation; String? transferGateway; String? multiLanguage; @@ -1324,6 +1330,8 @@ class LanKeyEntity { map['authorizedAdmin'] = authorizedAdmin; map['lockGroup'] = lockGroup; map['transferSmartLock'] = transferSmartLock; + map['selectiveLock'] = selectiveLock; + map['recipientInformation'] = recipientInformation; map['transferGateway'] = transferGateway; map['multiLanguage'] = multiLanguage;