From 89977d5a3e99f2896cd079c3ffe4c78695d5c836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Tue, 18 Jul 2023 18:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BD=91=E5=85=B3=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/android/build.gradle | 1 + star_lock/images/lan/lan_en.json | 48 +++++ star_lock/images/lan/lan_keys.json | 48 +++++ star_lock/images/lan/lan_zh.json | 48 +++++ .../mine/icon_mine_gatewayListMainIcon.png | Bin 0 -> 4906 bytes .../mine/icon_mine_gatewayListNumber.png | Bin 0 -> 597 bytes .../mine/icon_mine_gatewayListOnline.png | Bin 0 -> 915 bytes .../mine/icon_mine_gatewaySignal_low.png | Bin 0 -> 3632 bytes .../mine/icon_mine_gatewaySignal_lower.png | Bin 0 -> 3630 bytes .../mine/icon_mine_gatewaySignal_middle.png | Bin 0 -> 3627 bytes .../mine/icon_mine_gatewaySignal_prompt.png | Bin 0 -> 3495 bytes .../mine/icon_mine_gatewaySignal_strong.png | Bin 0 -> 3620 bytes .../images/mine/icon_mine_main_about.png | Bin 0 -> 1458 bytes .../images/mine/icon_mine_main_personInfo.png | Bin 0 -> 2627 bytes star_lock/images/mine/icon_mine_main_vip.png | Bin 0 -> 3504 bytes .../mine/icon_mine_seletGatewayType_G2.png | Bin 0 -> 18189 bytes .../mine/icon_mine_seletGatewayType_G4.png | Bin 0 -> 22213 bytes .../mine/icon_mine_seletGatewayType_next.png | Bin 0 -> 15757 bytes star_lock/ios/Podfile.lock | 6 + star_lock/ios/Runner/Info.plist | 10 + star_lock/lib/appRouters.dart | 112 +++++++++- .../starLock_forgetPassword_page.dart | 109 ++++++---- .../lib/login/login/starLock_login_page.dart | 34 ++- .../register/starLock_register_page.dart | 120 +++++++---- .../checkingInSet/checkingInSet_page.dart | 2 +- .../electronicKeyDetail_page.dart | 4 +- .../editLockName/editLockName_page.dart | 4 +- star_lock/lib/mine/about/about_page.dart | 29 +++ .../gatewayConfigurationWifi_page.dart | 148 +++++++++++++ .../seletGateway/seletGatewayList_page.dart | 88 ++++++++ .../seletGatewayType_page.dart | 59 ++++++ .../seletGatewayTypeNextTip_page.dart | 60 ++++++ .../gatewayConnectionLockList_page.dart | 98 +++++++++ .../gatewayDetail/gatewayDetail_page.dart | 67 ++++++ .../gateway/gatewayList/gatewayList_page.dart | 97 +++++++++ .../lib/mine/message/messageList_page.dart | 85 ++++++++ .../minePersonInfo/minePersonInfo_page.dart | 89 ++++++++ .../minePersonInfoEditAccount_page.dart | 140 +++++++++++++ .../minePersonInfoEditAccountNext_page.dart | 80 +++++++ .../minePersonInfoEditIphone_page.dart | 116 +++++++++++ .../minePersonInfoEditName_page.dart | 44 ++++ .../minePersonInfoResetPassword_page.dart | 94 +++++++++ .../minePersonInfoSetSafetyProblem_page.dart | 121 +++++++++++ star_lock/lib/mine/mine_page.dart | 22 +- .../mine/supportStaff/supportStaff_page.dart | 29 +++ .../valueAddedServices_page.dart | 29 +++ star_lock/lib/tools/commonItem.dart | 11 +- star_lock/lib/tools/forgetPwdInput.dart | 48 ----- star_lock/lib/tools/seletImgTool.dart | 54 +++++ star_lock/lib/tools/showBottomSheetTool.dart | 14 +- star_lock/lib/tools/showTFView.dart | 4 +- star_lock/lib/tools/tf_input_haveBorder.dart | 102 +++++++++ .../{loginInput.dart => tf_loginInput.dart} | 14 +- star_lock/lib/translations/lanKeyEntity.dart | 197 +++++++++++++++++- .../flutter/generated_plugin_registrant.cc | 4 + .../linux/flutter/generated_plugins.cmake | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 + star_lock/pubspec.yaml | 3 + .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + 60 files changed, 2329 insertions(+), 170 deletions(-) create mode 100644 star_lock/images/mine/icon_mine_gatewayListMainIcon.png create mode 100644 star_lock/images/mine/icon_mine_gatewayListNumber.png create mode 100644 star_lock/images/mine/icon_mine_gatewayListOnline.png create mode 100644 star_lock/images/mine/icon_mine_gatewaySignal_low.png create mode 100644 star_lock/images/mine/icon_mine_gatewaySignal_lower.png create mode 100644 star_lock/images/mine/icon_mine_gatewaySignal_middle.png create mode 100644 star_lock/images/mine/icon_mine_gatewaySignal_prompt.png create mode 100644 star_lock/images/mine/icon_mine_gatewaySignal_strong.png create mode 100644 star_lock/images/mine/icon_mine_main_about.png create mode 100644 star_lock/images/mine/icon_mine_main_personInfo.png create mode 100644 star_lock/images/mine/icon_mine_main_vip.png create mode 100644 star_lock/images/mine/icon_mine_seletGatewayType_G2.png create mode 100644 star_lock/images/mine/icon_mine_seletGatewayType_G4.png create mode 100644 star_lock/images/mine/icon_mine_seletGatewayType_next.png create mode 100644 star_lock/lib/mine/about/about_page.dart create mode 100644 star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart create mode 100644 star_lock/lib/mine/gateway/addGateway/seletGateway/seletGatewayList_page.dart create mode 100644 star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart create mode 100644 star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart create mode 100644 star_lock/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart create mode 100644 star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart create mode 100644 star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart create mode 100644 star_lock/lib/mine/message/messageList_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoEditIphone/minePersonInfoEditIphone_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart create mode 100644 star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart create mode 100644 star_lock/lib/mine/supportStaff/supportStaff_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart delete mode 100644 star_lock/lib/tools/forgetPwdInput.dart create mode 100644 star_lock/lib/tools/seletImgTool.dart create mode 100644 star_lock/lib/tools/tf_input_haveBorder.dart rename star_lock/lib/tools/{loginInput.dart => tf_loginInput.dart} (73%) diff --git a/star_lock/android/build.gradle b/star_lock/android/build.gradle index 83ae2200..f8803dea 100644 --- a/star_lock/android/build.gradle +++ b/star_lock/android/build.gradle @@ -9,6 +9,7 @@ buildscript { classpath 'com.android.tools.build:gradle:7.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } + } allprojects { diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json index e0d24590..6f5d42f4 100644 --- a/star_lock/images/lan/lan_en.json +++ b/star_lock/images/lan/lan_en.json @@ -217,6 +217,54 @@ "thirdPartyInformationSharingList":"Third party information sharing list", "logout":"Logout", "deleteAccount":"Delete Account", + "personalInformation":"Personal Information", + "avatar":"Avatar", + "nickName":"NickName", + "changeNickName":"Change NickName", + "modifyAccount":"Modify Account", + "resetPasswords":"Reset Passwords", + "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", + "changeIphoneTip":"When you retrieve your password and log in to a new device, you can verify it with the attached phone", + "originalPassword":"Original Password", + "newPassword":"New Password", + "surePassword":"Sure Password", + "safetyProblemTip":"When you lose your phone, you can log in to the new device by answering the security questions you set", + "problemOne":"Problem One", + "problemTwo":"Problem Two", + "problemThree":"Problem Three", + "pleaseEnterYourAnswer":"Please Enter Your Answer", + + "designation": "designation", + "state": "State", + "wifiName": "Wifi Name", + "networkMAC": "Network MAC", + "gatewayUpgrade": "Gateway Upgrade", + "gatewayConnectionLock": "Gateway Connection Lock", + "strongSignal": "Strong Signal", + "mediumSignal": "Medium Signal", + "averageSignal": "Average Signal", + "weakSignal": "Weak Signal", + "selectGatewayType": "Select Gateway Type", + "addGateway": "Add Gateway", + "turnThePowerBackOn": "Turn The Power Back On", + "indicatorLight": "Indicator Light", + "seletGatewayTypeNextTip": "Repower the gateway and click Next when the indicator light flashes alternately", + "selectGateway": "Select Gateway", + "gatewayConfigurationWifiTip": "5G WiFi network is not supported, please choose 2.4G WiFi network for configuration", + "wifiPassward": "WiFi Passward", + "pleaseEnterTheWiFiPassword": "Please Enter The WiFi Password", + "gatewayName": "Gateway Name", + "pleaseEnterGatewayName": "Please Enter Gateway Name", + "wifiMAC": "WiFi MAC", + "ipAddress": "IP Address", + "subnetMask": "Subnet Mask", + "defaultGateway": "Default Gateway", + "automaticallyGetTheDNSServerAddress": "Automatically Get The DNS Server Address", + "preferredDNS": "Preferred DNS", + "alternativeDNS": "Alternative DNS", + "noStaticIPIsUsed": "No Static IP Is Used", "allLock":"All Lock", "searchAllLockType":"Search All Lock Type", diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json index 5fbcd5ce..a0b26ca5 100644 --- a/star_lock/images/lan/lan_keys.json +++ b/star_lock/images/lan/lan_keys.json @@ -219,6 +219,54 @@ "thirdPartyInformationSharingList":"thirdPartyInformationSharingList", "logout":"logout", "deleteAccount":"deleteAccount", + "personalInformation":"personalInformation", + "avatar":"avatar", + "nickName":"nickName", + "changeNickName":"changeNickName", + "modifyAccount":"modifyAccount", + "resetPasswords":"resetPasswords", + "safetyProblem":"safetyProblem", + "modifyAccountTip":"modifyAccountTip", + "pleaseEnterAccountNumber":"pleaseEnterAccountNumber", + "changeIphoneTip":"changeIphoneTip", + "originalPassword":"originalPassword", + "newPassword":"newPassword", + "surePassword":"surePassword", + "safetyProblemTip":"safetyProblemTip", + "problemOne":"problemOne", + "problemTwo":"problemTwo", + "problemThree":"problemThree", + "pleaseEnterYourAnswer":"pleaseEnterYourAnswer", + + "designation": "designation", + "state": "state", + "wifiName": "wifiName", + "networkMAC": "networkMAC", + "gatewayUpgrade": "gatewayUpgrade", + "gatewayConnectionLock": "gatewayConnectionLock", + "strongSignal": "strongSignal", + "mediumSignal": "mediumSignal", + "averageSignal": "averageSignal", + "weakSignal": "weakSignal", + "selectGatewayType": "selectGatewayType", + "addGateway": "addGateway", + "turnThePowerBackOn": "turnThePowerBackOn", + "indicatorLight": "indicatorLight", + "seletGatewayTypeNextTip": "seletGatewayTypeNextTip", + "selectGateway": "selectGateway", + "gatewayConfigurationWifiTip": "gatewayConfigurationWifiTip", + "wifiPassward": "wifiPassward", + "pleaseEnterTheWiFiPassword": "pleaseEnterTheWiFiPassword", + "gatewayName": "gatewayName", + "pleaseEnterGatewayName": "pleaseEnterGatewayName", + "wifiMAC": "wifiMAC", + "ipAddress": "ipAddress", + "subnetMask": "subnetMask", + "defaultGateway": "defaultGateway", + "automaticallyGetTheDNSServerAddress": "automaticallyGetTheDNSServerAddress", + "preferredDNS": "preferredDNS", + "alternativeDNS": "alternativeDNS", + "noStaticIPIsUsed": "noStaticIPIsUsed", "allLock":"allLock", "searchAllLockType":"searchAllLockType", diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index 4a36f461..579f169b 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -218,6 +218,54 @@ "thirdPartyInformationSharingList":"第三方信息共享清单", "logout":"退出", "deleteAccount":"删除账号", + "personalInformation":"个人信息", + "avatar":"头像", + "nickName":"昵称", + "changeNickName":"修改昵称", + "modifyAccount":"修改账号", + "resetPasswords":"重置密码", + "safetyProblem":"安全问题", + "modifyAccountTip":"为了你的账号安全,修改账号前请先使用账号密码验证", + "pleaseEnterAccountNumber":"请输入账号", + "changeIphoneTip":"找回密码和登陆新设备时,可通过绑定的手机验证", + "originalPassword":"原密码", + "newPassword":"新密码", + "surePassword":"确认密码", + "safetyProblemTip":"当你手机丢了,可以通过回答设置的安全问题来登录新设备", + "problemOne":"问题一", + "problemTwo":"问题二", + "problemThree":"问题三", + "pleaseEnterYourAnswer":"请输入你的答案", + + "designation": "名称", + "state": "状态", + "wifiName": "WiFi名称", + "networkMAC": "网络MAC", + "gatewayUpgrade": "网关升级", + "gatewayConnectionLock": "网关连接的锁", + "strongSignal": "信号强", + "mediumSignal": "信号中等", + "averageSignal": "信号一般", + "weakSignal": "信号弱", + "selectGatewayType": "选择网关类型", + "addGateway": "添加网关", + "turnThePowerBackOn": "重新通电", + "indicatorLight": "指示灯", + "seletGatewayTypeNextTip": "将网关重新通电,指示灯交替闪烁时点击下一步", + "selectGateway": "选择网关", + "gatewayConfigurationWifiTip": "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置", + "wifiPassward": "WiFi密码", + "pleaseEnterTheWiFiPassword": "请输入WiFi密码", + "gatewayName": "网关名称", + "pleaseEnterGatewayName": "请输入网关名称", + "wifiMAC": "网络MAC", + "ipAddress": "IP地址", + "subnetMask": "子网掩码", + "defaultGateway": "默认网关", + "automaticallyGetTheDNSServerAddress": "自动获取DNS服务器地址", + "preferredDNS": "首选DNS", + "alternativeDNS": "备选DNS", + "noStaticIPIsUsed": "不使用静态IP", "allLock":"所有锁", "searchAllLockType":"搜索所有锁类型", diff --git a/star_lock/images/mine/icon_mine_gatewayListMainIcon.png b/star_lock/images/mine/icon_mine_gatewayListMainIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5e8c690e96dfd6c0e414fb4c7edef086838576 GIT binary patch literal 4906 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_gatewayListNumber.png b/star_lock/images/mine/icon_mine_gatewayListNumber.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9c2118386a24b5f0b20f9155e83a1c23c0a2e4 GIT binary patch literal 597 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 AN&o-= literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_gatewaySignal_middle.png b/star_lock/images/mine/icon_mine_gatewaySignal_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..bb0bca1fe8d14f71085213341400934cd40b4497 GIT binary patch literal 3627 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_main_personInfo.png b/star_lock/images/mine/icon_mine_main_personInfo.png new file mode 100644 index 0000000000000000000000000000000000000000..c4cf8fb435beb861a55ff7415751da8355c329b5 GIT binary patch literal 2627 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_main_vip.png b/star_lock/images/mine/icon_mine_main_vip.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa63a1a4bb6fea76f592fa3b7cc8dcb31defb5a GIT binary patch literal 3504 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_seletGatewayType_G4.png b/star_lock/images/mine/icon_mine_seletGatewayType_G4.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeb57a0e58fcabec65e073f0249816fd77d4a47 GIT binary patch literal 22213 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 Lj2=~J*hTywGdB2# literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_seletGatewayType_next.png b/star_lock/images/mine/icon_mine_seletGatewayType_next.png new file mode 100644 index 0000000000000000000000000000000000000000..162a1ae4c2b9e6997e7560294b9bec020e034e09 GIT binary patch literal 15757 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 C$7?_U literal 0 HcmV?d00001 diff --git a/star_lock/ios/Podfile.lock b/star_lock/ios/Podfile.lock index 93e040b2..0995e36e 100644 --- a/star_lock/ios/Podfile.lock +++ b/star_lock/ios/Podfile.lock @@ -4,6 +4,8 @@ PODS: - Flutter (1.0.0) - flutter_native_contact_picker (0.0.1): - Flutter + - image_picker_ios (0.0.1): + - Flutter - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -14,6 +16,7 @@ DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) @@ -24,6 +27,8 @@ EXTERNAL SOURCES: :path: Flutter flutter_native_contact_picker: :path: ".symlinks/plugins/flutter_native_contact_picker/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: @@ -33,6 +38,7 @@ SPEC CHECKSUMS: device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907 + image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8 diff --git a/star_lock/ios/Runner/Info.plist b/star_lock/ios/Runner/Info.plist index 9023ff34..fdd0760f 100644 --- a/star_lock/ios/Runner/Info.plist +++ b/star_lock/ios/Runner/Info.plist @@ -2,6 +2,16 @@ + NSCameraUsageDescription + 这是你的自拍照 + NSMicrophoneUsageDescription + 用于音频插件 + NSPhotoLibraryUsageDescription + 用于相册 + UIBackgroundModes + + remote-notification + NSContactsUsageDescription Reason we need access to the contact list CFBundleDevelopmentRegion diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index c1d60edc..59c23f96 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -41,6 +41,7 @@ import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWireless import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart'; import 'main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart'; import 'main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart'; +import 'mine/about/about_page.dart'; import 'mine/addLock/addLock/addLock_page.dart'; import 'main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart'; import 'main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart'; @@ -66,8 +67,25 @@ import 'mine/addLock/lockAddress/lockAddress_page.dart'; import 'mine/addLock/nearbyLock/nearbyLock_page.dart'; import 'mine/addLock/saveLock/saveLock_page.dart'; import 'mine/addLock/seletLockType/seletLockType_page.dart'; +import 'mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart'; +import 'mine/gateway/addGateway/seletGateway/seletGatewayList_page.dart'; +import 'mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart'; +import 'mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart'; +import 'mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart'; +import 'mine/gateway/gatewayDetail/gatewayDetail_page.dart'; +import 'mine/gateway/gatewayList/gatewayList_page.dart'; +import 'mine/message/messageList_page.dart'; import 'mine/mineMultiLanguage/mineMultiLanguage_page.dart'; +import 'mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart'; +import 'mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart'; +import 'mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart'; +import 'mine/minePersonInfo/minePersonInfoEditIphone/minePersonInfoEditIphone_page.dart'; +import 'mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart'; +import 'mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart'; +import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart'; import 'mine/mine_page.dart'; +import 'mine/supportStaff/supportStaff_page.dart'; +import 'mine/valueAddedServices/valueAddedServices_page.dart'; import 'starLockApplication.dart'; abstract class Routers { @@ -136,6 +154,26 @@ abstract class Routers { static const mineSetPage = '/MineSetPage';// 我的设置 static const mineMultiLanguagePage = '/MineMultiLanguagePage';// 我的设置 + static const minePersonInfoPage = '/MinePersonInfoPage';// 我的信息 + static const minePersonInfoEditNamePage = '/MinePersonInfoEditNamePage';// 我的信息编辑昵称 + static const minePersonInfoEditAccountPage = '/MinePersonInfoEditAccountPage';// 我的信息修改账号 + static const minePersonInfoEditAccountNextPage = '/MinePersonInfoEditAccountNextPage';// 我的信息修改账号下一页 + static const minePersonInfoEditIphonePage = '/MinePersonInfoEditIphonePage';// 我的信息修改手机号 + static const minePersonInfoResetPasswordPage = '/MinePersonInfoResetPasswordPage';// 我的信息重置密码 + static const minePersonInfoSetSafetyProblemPage = '/MinePersonInfoSetSafetyProblemPage';// 我的信息设置安全问题 + + static const gatewayListPage = '/GatewayListPage';// 我的-网关 + static const gatewayDetailPage = '/GatewayDetailPage';// 我的-网关详情 + static const gatewayConnectionLockPage = '/GatewayConnectionLockPage';// 我的-网关网关链接的锁 + static const seletGatewayTypePage = '/SeletGatewayTypePage';// 我的-选择网关类型 + static const seletGatewayTypeNextTipPage = '/SeletGatewayTypeNextTipPage';// 我的-选择网关类型下一步 + static const seletGatewayPage = '/SeletGatewayPage';// 我的-选择网关 + static const gatewayConfigurationWifiPage = '/GatewayConfigurationWifiPage';// 我的-网关配置wifi + + static const messageListPage = '/MessageListPage';// 我的-消息 + static const supportStaffPage = '/SupportStaffPage';// 我的-客服 + static const valueAddedServicesPage = '/ValueAddedServicesPage';// 我的-增值服务 + static const abountPage = '/AbountPage';// 我的-关于 static const starLockLoginPage = '/StarLockLoginPage';// 登录 static const starLockRegisterPage = '/StarLockRegisterPage';// 注册 @@ -415,7 +453,79 @@ abstract class AppRouters { ), GetPage( name: Routers.checkingInDetailPage, - page: () => CheckingInDetailPage(), + page: () => const CheckingInDetailPage(), + ), + GetPage( + name: Routers.minePersonInfoPage, + page: () => const MinePersonInfoPage(), + ), + GetPage( + name: Routers.minePersonInfoEditNamePage, + page: () => const MinePersonInfoEditNamePage(), + ), + GetPage( + name: Routers.minePersonInfoEditAccountPage, + page: () => const MinePersonInfoEditAccountPage(), + ), + GetPage( + name: Routers.minePersonInfoEditIphonePage, + page: () => const MinePersonInfoEditIphonePage(), + ), + GetPage( + name: Routers.minePersonInfoResetPasswordPage, + page: () => const MinePersonInfoResetPasswordPage(), + ), + GetPage( + name: Routers.minePersonInfoSetSafetyProblemPage, + page: () => const MinePersonInfoSetSafetyProblemPage(), + ), + GetPage( + name: Routers.minePersonInfoEditAccountNextPage, + page: () => const MinePersonInfoEditAccountNextPage(), + ), + GetPage( + name: Routers.gatewayListPage, + page: () => const GatewayListPage(), + ), + GetPage( + name: Routers.messageListPage, + page: () => const MessageListPage(), + ), + GetPage( + name: Routers.supportStaffPage, + page: () => const SupportStaffPage(), + ), + GetPage( + name: Routers.valueAddedServicesPage, + page: () => const ValueAddedServicesPage(), + ), + GetPage( + name: Routers.abountPage, + page: () => const AbountPage(), + ), + GetPage( + name: Routers.gatewayDetailPage, + page: () => const GatewayDetailPage(), + ), + GetPage( + name: Routers.gatewayConnectionLockPage, + page: () => const GatewayConnectionLockListPage(), + ), + GetPage( + name: Routers.seletGatewayTypePage, + page: () => const SeletGatewayTypePage(), + ), + GetPage( + name: Routers.seletGatewayTypeNextTipPage, + page: () => const SeletGatewayTypeNextTipPage(), + ), + GetPage( + name: Routers.seletGatewayPage, + page: () => const SeletGatewayListPage(), + ), + GetPage( + name: Routers.gatewayConfigurationWifiPage, + page: () => const GatewayConfigurationWifiPage(), ), ]; } \ No newline at end of file diff --git a/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart b/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart index 0b3b6635..71946a56 100644 --- a/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart +++ b/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart @@ -8,8 +8,7 @@ import 'package:get/get.dart'; import '../../appRouters.dart'; import '../../app_settings/app_colors.dart'; -import '../../tools/forgetPwdInput.dart'; -import '../../tools/loginInput.dart'; +import '../../tools/tf_loginInput.dart'; import '../../tools/submitBtn.dart'; import '../../tools/titleAppBar.dart'; import '../../translations/trans_lib.dart'; @@ -43,51 +42,87 @@ class _StarLockForgetPasswordPageState extends State right: 40.w ), children: [ - LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, keyboardType: TextInputType.number,inputFormatters: [ - FilteringTextInputFormatter.allow(RegExp('[0-9]')), - LengthLimitingTextInputFormatter(20), + LoginInput(controller: _phoneController, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, + keyboardType: TextInputType.number, + inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), ]), SizedBox(height: 10.w), - LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - LengthLimitingTextInputFormatter(20), + LoginInput( + controller: _pwdController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), ]), SizedBox(height: 15.w), Text(TranslationLoader.lanKeys!.registerPasswordTip!.tr, style: TextStyle(color: const Color(0xFF999999), fontSize: 26.sp),), SizedBox(height: 10.w), - LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys!.sure!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _pwdController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.sure!.tr} ${TranslationLoader.lanKeys!.password!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 10.w), - ForgetPwdInput(controller: _codeController,hintText: '${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.verificationCode!.tr}',keyboardType: TextInputType.number,inputFormatters: [ - FilteringTextInputFormatter.allow(RegExp('[0-9]')), - LengthLimitingTextInputFormatter(6), - ],rightSlot: Container( - // margin: EdgeInsets.only(right: 30.w), - child: GestureDetector( - child: Container( - width: 180.w, - height: 60.h, - padding: EdgeInsets.all(5.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( + Row( + children: [ + Expanded( + child: LoginInput( + controller: _codeController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.verificationCode!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + ), + SizedBox(width: 20.w,), + GestureDetector( + child: Container( + width: 180.w, + height: 60.h, + padding: EdgeInsets.all(5.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: 26.sp, - )), + )), + ), ), - ), - onTap: (){ - if(_seconds==60){ - // _setVerify(); - }else{ - // Toast.show(msg: '正在获取验证码'); - } - }, - ), - )), + onTap: (){ + if(_seconds==60){ + // _setVerify(); + }else{ + // Toast.show(msg: '正在获取验证码'); + } + }, + ) + ], + ), SizedBox(height: 50.w), SubmitBtn(btnName: "${TranslationLoader.lanKeys!.reset!.tr} ${TranslationLoader.lanKeys!.password!.tr}", fontSize: 30.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ diff --git a/star_lock/lib/login/login/starLock_login_page.dart b/star_lock/lib/login/login/starLock_login_page.dart index 260985a0..79eaeb87 100644 --- a/star_lock/lib/login/login/starLock_login_page.dart +++ b/star_lock/lib/login/login/starLock_login_page.dart @@ -6,7 +6,7 @@ import 'package:get/get.dart'; import '../../appRouters.dart'; import '../../app_settings/app_colors.dart'; -import '../../tools/loginInput.dart'; +import '../../tools/tf_loginInput.dart'; import '../../tools/submitBtn.dart'; import '../../tools/titleAppBar.dart'; import '../../translations/trans_lib.dart'; @@ -48,14 +48,32 @@ class _StarLockLoginPageState extends State { ) ), SizedBox(height: 50.w), - LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, keyboardType: TextInputType.number,inputFormatters: [ - FilteringTextInputFormatter.allow(RegExp('[0-9]')), - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _phoneController, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, + keyboardType: TextInputType.number, + inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 50.w), - LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _pwdController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 20.h), Row( mainAxisAlignment: MainAxisAlignment.start, diff --git a/star_lock/lib/login/register/starLock_register_page.dart b/star_lock/lib/login/register/starLock_register_page.dart index deb33226..d2cc9082 100644 --- a/star_lock/lib/login/register/starLock_register_page.dart +++ b/star_lock/lib/login/register/starLock_register_page.dart @@ -8,8 +8,7 @@ import 'package:get/get.dart'; import '../../appRouters.dart'; import '../../app_settings/app_colors.dart'; -import '../../tools/forgetPwdInput.dart'; -import '../../tools/loginInput.dart'; +import '../../tools/tf_loginInput.dart'; import '../../tools/submitBtn.dart'; import '../../tools/titleAppBar.dart'; import '../../translations/trans_lib.dart'; @@ -27,7 +26,6 @@ class _StarLockRegisterPageState extends State { final TextEditingController _codeController = TextEditingController(); late Timer _timer; - int _seconds = 60; @override @@ -157,51 +155,91 @@ class _StarLockRegisterPageState extends State { Widget middleTFWidget (){ return Column( children: [ - LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, keyboardType: TextInputType.number,inputFormatters: [ - FilteringTextInputFormatter.allow(RegExp('[0-9]')), - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _phoneController, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, + keyboardType: TextInputType.number, + inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 10.w), - LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _pwdController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.password!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 15.w), Text(TranslationLoader.lanKeys!.registerPasswordTip!.tr, style: TextStyle(color: const Color(0xFF999999), fontSize: 26.sp),), SizedBox(height: 10.w), - LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys!.sure!.tr} ${TranslationLoader.lanKeys!.password!.tr}",inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), + LoginInput( + controller: _pwdController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.sure!.tr} ${TranslationLoader.lanKeys!.password!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ] + ), SizedBox(height: 10.w), - ForgetPwdInput(controller: _codeController,hintText: '${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.verificationCode!.tr}',keyboardType: TextInputType.number,inputFormatters: [ - FilteringTextInputFormatter.allow(RegExp('[0-9]')), - LengthLimitingTextInputFormatter(6), - ],rightSlot: Container( - // margin: EdgeInsets.only(right: 30.w), - child: GestureDetector( - child: Container( - width: 180.w, - height: 60.h, - padding: EdgeInsets.all(5.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: 26.sp - )), + Row( + children: [ + Expanded( + child: LoginInput( + controller: _codeController, + isPwd: true, + leftWidget:Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + hintText: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.verificationCode!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ] ), ), - onTap: (){ - if(_seconds==60){ - // _setVerify(); - }else{ - // Toast.show(msg: '正在获取验证码'); - } - }, - ), - )), + SizedBox(width: 20.w,), + GestureDetector( + child: Container( + width: 180.w, + height: 60.h, + padding: EdgeInsets.all(5.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: 26.sp, + )), + ), + ), + onTap: (){ + if(_seconds==60){ + // _setVerify(); + }else{ + // Toast.show(msg: '正在获取验证码'); + } + }, + ) + ], + ), SizedBox(height: 50.w), ], ); diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart index 5d374e40..67a822ae 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart @@ -19,7 +19,7 @@ class CheckingInSetPage extends StatefulWidget { } class _CheckingInSetPageState extends State { - late TextEditingController _changeNameController; + final TextEditingController _changeNameController = TextEditingController(); @override Widget build(BuildContext context) { 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 2cf40566..bb89b5f2 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 @@ -19,7 +19,7 @@ class ElectronicKeyDetailPage extends StatefulWidget { } class _ElectronicKeyDetailPageState extends State { - late TextEditingController _changeNameController; + final TextEditingController _changeNameController = TextEditingController(); @override Widget build(BuildContext context) { @@ -119,7 +119,7 @@ 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/lcokSet/basicInformation/editLockName/editLockName_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart index d8ff960b..d670a400 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart @@ -4,7 +4,7 @@ import 'package:flutter/services.dart'; import 'package:get/get.dart'; import '../../../../../app_settings/app_colors.dart'; -import '../../../../../tools/loginInput.dart'; +import '../../../../../tools/tf_loginInput.dart'; import '../../../../../tools/titleAppBar.dart'; import '../../../../../translations/trans_lib.dart'; @@ -36,7 +36,7 @@ class _EditLockNamePageState extends State { },), ],), body:Container( - child: LoginInput(controller: _changeLockNameController, leftImg:'', hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, inputFormatters: [ + child: LoginInput(controller: _changeLockNameController, leftWidget:const SizedBox(), hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), ) diff --git a/star_lock/lib/mine/about/about_page.dart b/star_lock/lib/mine/about/about_page.dart new file mode 100644 index 00000000..6406e87f --- /dev/null +++ b/star_lock/lib/mine/about/about_page.dart @@ -0,0 +1,29 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../app_settings/app_colors.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class AbountPage extends StatefulWidget { + const AbountPage({Key? key}) : super(key: key); + + @override + State createState() => _AbountPageState(); +} + +class _AbountPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.about!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + + ], + ), + ); + } +} diff --git a/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart b/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart new file mode 100644 index 00000000..67d7b5fe --- /dev/null +++ b/star_lock/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart @@ -0,0 +1,148 @@ +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/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class GatewayConfigurationWifiPage extends StatefulWidget { + const GatewayConfigurationWifiPage({Key? key}) : super(key: key); + + @override + State createState() => _GatewayConfigurationWifiPageState(); +} + +class _GatewayConfigurationWifiPageState extends State { + final _wifiPassward = TextEditingController(); + final _gatewayNamePassward = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.gateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + color: const Color(0xFFF2F6F9), + padding: EdgeInsets.all(15.h), + child: Text(TranslationLoader.lanKeys!.gatewayConfigurationWifiTip!.tr) + ), + Expanded( + child: ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys!.wifiName!.tr, rightTitle:"XinHongJia", allHeight:100.h, isHaveLine: true, isHaveDirection: true, action: (){ + // Navigator.pushNamed(context, Routers.minePersonInfoSetSafetyProblemPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys!.wifiPassward!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(_wifiPassward, TranslationLoader.lanKeys!.pleaseEnterTheWiFiPassword!.tr)), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys!.gatewayName!.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(_gatewayNamePassward, TranslationLoader.lanKeys!.pleaseEnterGatewayName!.tr)), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys!.wifiMAC!.tr, rightTitle:"48:55:19:7d:84:7a", allHeight:100.h, isHaveLine: false), + SizedBox(height: 10.h,), + Visibility( + visible: true , + child:Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys!.ipAddress!.tr, rightTitle:"192.168.1.1", allHeight:100.h, isHaveLine: true), + CommonItem(leftTitel:TranslationLoader.lanKeys!.subnetMask!.tr, rightTitle:"255.255.255.0", allHeight:100.h, isHaveLine: true), + CommonItem(leftTitel:TranslationLoader.lanKeys!.defaultGateway!.tr, rightTitle:"192.168.1.1", allHeight:100.h, isHaveLine: true), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys!.automaticallyGetTheDNSServerAddress!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + Visibility( + visible: true, + child:Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys!.preferredDNS!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(_gatewayNamePassward, TranslationLoader.lanKeys!.pleaseEnter!.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys!.alternativeDNS!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget: true, rightWidget: getTFWidget(_gatewayNamePassward, TranslationLoader.lanKeys!.pleaseEnter!.tr)), + ], + ) + ), + ], + ) + ), + SizedBox(height: 50.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.sure!.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); + } + ), + SizedBox(height: 10.h,), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + GestureDetector( + child: SizedBox( + // width: 150.w, + height: 50.h, + // color: Colors.red, + child: Center( + child: Text(TranslationLoader.lanKeys!.noStaticIPIsUsed!.tr,style: TextStyle(fontSize: 28.sp, color: AppColors.mainColor)), + ), + ), + onTap: (){ + // Navigator.pushNamed(context, Routers.starLockForgetPasswordPage); + }, + ), + SizedBox(width: 30.w), + ], + ), + SizedBox(height: 50.h,), + ], + ), + ) + ], + ), + ); + } + + // 接受者信息输入框 + Widget getTFWidget(TextEditingController controller, String tfStr){ + return SizedBox( + height: 50.h, + width: 400.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + controller: controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/mine/gateway/addGateway/seletGateway/seletGatewayList_page.dart b/star_lock/lib/mine/gateway/addGateway/seletGateway/seletGatewayList_page.dart new file mode 100644 index 00000000..a3987358 --- /dev/null +++ b/star_lock/lib/mine/gateway/addGateway/seletGateway/seletGatewayList_page.dart @@ -0,0 +1,88 @@ + +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 SeletGatewayListPage extends StatefulWidget { + const SeletGatewayListPage({Key? key}) : super(key: key); + + @override + State createState() => _SeletGatewayListPageState(); +} + +class _SeletGatewayListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + 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); + }); + } + ), + ); + } + + 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( + 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,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + 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), ), + ], + ), + ), + 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,), + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart b/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart new file mode 100644 index 00000000..a1acb4ca --- /dev/null +++ b/star_lock/lib/mine/gateway/addGateway/seletGatewayType/seletGatewayType_page.dart @@ -0,0 +1,59 @@ + +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 SeletGatewayTypePage extends StatefulWidget { + const SeletGatewayTypePage({Key? key}) : super(key: key); + + @override + State createState() => _SeletGatewayTypePageState(); +} + +class _SeletGatewayTypePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + 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)", (){ + Navigator.pushNamed(context, Routers.seletGatewayTypeNextTipPage); + }), + 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){ + return GestureDetector( + onTap: action, + child: Container( + color: Colors.white, + width: 1.sw, + height: 200.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) + ], + ), + ), + ), + ); + } +} diff --git a/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart b/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart new file mode 100644 index 00000000..cd353918 --- /dev/null +++ b/star_lock/lib/mine/gateway/addGateway/seletGatewayTypeNextTip/seletGatewayTypeNextTip_page.dart @@ -0,0 +1,60 @@ + +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/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class SeletGatewayTypeNextTipPage extends StatefulWidget { + const SeletGatewayTypeNextTipPage({Key? key}) : super(key: key); + + @override + State createState() => _SeletGatewayTypeNextTipPageState(); +} + +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( + children: [ + SizedBox(height: 40.h), + Center(child: Text(TranslationLoader.lanKeys!.turnThePowerBackOn!.tr, style: TextStyle(fontSize: 34.sp, fontWeight: FontWeight.w500),)), + 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), + ], + ), + SizedBox(height: 50.w), + Container( + padding: EdgeInsets.all(20.w), + child: Center(child: Text(TranslationLoader.lanKeys!.seletGatewayTypeNextTip!.tr, textAlign: TextAlign.center,))) + , + 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); + } + ), + ], + ) + ); + } +} diff --git a/star_lock/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart b/star_lock/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart new file mode 100644 index 00000000..e8fc166b --- /dev/null +++ b/star_lock/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart @@ -0,0 +1,98 @@ + +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/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class GatewayConnectionLockListPage extends StatefulWidget { + const GatewayConnectionLockListPage({Key? key}) : super(key: key); + + @override + State createState() => _GatewayConnectionLockListPageState(); +} + +class _GatewayConnectionLockListPageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.gateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + color: Colors.grey.shade300, + padding: EdgeInsets.all(15.h), + child: Text(TranslationLoader.lanKeys!.gatewayConnectionLock!.tr) + ), + Expanded( + child: ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _gatewayConnectionLockListItem('images/mine/icon_mine_gatewaySignal_prompt.png', "MCBN01 8f3106", TranslationLoader.lanKeys!.strongSignal!.tr,(){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }); + } + ), + ) + ], + ), + ); + } + + Widget _gatewayConnectionLockListItem(String lockTypeIcon, String gateWayName, String signalStrength, 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( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 10.w,), + Image.asset(lockTypeIcon, width: 90.w, height: 90.w,), + SizedBox(width: 20.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + 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(signalStrength, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart new file mode 100644 index 00000000..0cafcf05 --- /dev/null +++ b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart @@ -0,0 +1,67 @@ + +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/showTFView.dart'; +import '../../../tools/submitBtn.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class GatewayDetailPage extends StatefulWidget { + const GatewayDetailPage({Key? key}) : super(key: key); + + @override + State createState() => _GatewayDetailPageState(); +} + +class _GatewayDetailPageState extends State { + final _changeGatewayNameController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + 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!.wifiName!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + + }), + SizedBox(height: 80.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys!.delete!.tr, + 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: () { + + } + ), + ], + ), + ); + } + + // 修改名字 + void showCupertinoAlertDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + 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 new file mode 100644 index 00000000..585f32f4 --- /dev/null +++ b/star_lock/lib/mine/gateway/gatewayList/gatewayList_page.dart @@ -0,0 +1,97 @@ +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 GatewayListPage extends StatefulWidget { + const GatewayListPage({Key? key}) : super(key: key); + + @override + State createState() => _GatewayListPageState(); +} + +class _GatewayListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.gateway!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.seletGatewayTypePage); + }, + child: Image.asset('images/icon_add_white.png', width: 50.w, height: 50.w,) + ), + SizedBox(width: 30.w,), + ],), + body: ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _gatewatListItem('images/mine/icon_mine_gatewayListMainIcon.png', "星锁网关", "在线", "2", (){ + Navigator.pushNamed(context, Routers.gatewayDetailPage); + }); + } + ), + ); + } + + Widget _gatewatListItem(String lockTypeIcon, String gateWayName, String isOnline, String lockNumber, 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( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 10.w,), + Image.asset(lockTypeIcon, width: 90.w, height: 90.w,), + SizedBox(width: 20.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(height:5.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Image.asset('images/mine/icon_mine_gatewayListOnline.png', width: 40.w, height: 40.w,), + SizedBox(width: 10.w,), + Text("在线", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width: 80.w,), + Image.asset('images/mine/icon_mine_gatewayListNumber.png', width: 40.w, height: 40.w,), + SizedBox(width: 10.w,), + Text("2", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/mine/message/messageList_page.dart b/star_lock/lib/mine/message/messageList_page.dart new file mode 100644 index 00000000..c7e4eb80 --- /dev/null +++ b/star_lock/lib/mine/message/messageList_page.dart @@ -0,0 +1,85 @@ + +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 MessageListPage extends StatefulWidget { + const MessageListPage({Key? key}) : super(key: key); + + @override + State createState() => _MessageListPageState(); +} + +class _MessageListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.message!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _seletGatewayListListItem('images/mine/icon_mine_gatewayListMainIcon.png', "您的钥匙已发送成功", "2023.6.21 11.15", (){ + // Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage); + }); + } + ), + ); + } + + 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( + 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,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + 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), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ) + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart new file mode 100644 index 00000000..322071f7 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfo/minePersonInfo_page.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/tools/seletImgTool.dart'; + +import '../../../appRouters.dart'; +import '../../../tools/commonItem.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class MinePersonInfoPage extends StatefulWidget { + const MinePersonInfoPage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoPageState(); +} + +class _MinePersonInfoPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + 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), + ], + ) + ); + } + + Future _openModalBottomSheet() async { + final option = await showModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Container( + height: 200.0, + child: Column( + children: [ + ListTile( + title: Text('拍照', textAlign: TextAlign.center), + onTap: () { + SeletImageTool().getCameraImage((imgStr) { + print("111111$imgStr"); + }); + }, + ), + ListTile( + title: Text('从相册选择', textAlign: TextAlign.center), + onTap: () { + SeletImageTool().getImage((imgStr) { + print("111111$imgStr"); + }); + }, + ), + ListTile( + title: Text('取消', textAlign: TextAlign.center), + onTap: () { + Navigator.pop(context, '取消'); + }, + ), + ], + ), + ); + } + ); + } + +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart new file mode 100644 index 00000000..fab8121d --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/minePersonInfoEditAccount_page.dart @@ -0,0 +1,140 @@ +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/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class MinePersonInfoEditAccountPage extends StatefulWidget { + const MinePersonInfoEditAccountPage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoEditAccountPageState(); +} + +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( + 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) + ), + Container( + padding: EdgeInsets.all(30.w), + child: TextField( + maxLines: 1, + keyboardType: TextInputType.text, + // inputFormatters: inputFormatterstters??[], + controller:_editAccountController, + autofocus: false, + textAlign: TextAlign.start, + style:TextStyle( + height: 1.1, + fontSize: 30.sp, + fontWeight: FontWeight.w400, + 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) + ), + // 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, + ), + ), + disabledBorder: const OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: Color(0xffD3D3D3), + ///设置边框的粗细 + width: 1, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: const OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: Color(0xffD3D3D3), + ///设置边框的粗细 + width: 1, + ), + ), + ), + obscureText:false, + onChanged: (String value){ + + }, + ), + ), + SizedBox(height: 50.w), + SubmitBtn(btnName: TranslationLoader.lanKeys!.next!.tr, fontSize: 28.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + Navigator.pushNamed(context, Routers.minePersonInfoEditAccountNextPage); + }), + SizedBox(height: 50.w), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + GestureDetector( + child: SizedBox( + // width: 150.w, + height: 50.h, + // color: Colors.red, + child: Center( + child: Text('${TranslationLoader.lanKeys!.forgetPassword!.tr}?',style: TextStyle(fontSize: 24.sp)), + ), + ), + onTap: (){ + Navigator.pushNamed(context, Routers.starLockForgetPasswordPage); + }, + ), + SizedBox(width: 30.w), + ], + ), + ], + ) + ); + } +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart new file mode 100644 index 00000000..3ebde359 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart @@ -0,0 +1,80 @@ + +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_input_haveBorder.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class MinePersonInfoEditAccountNextPage extends StatefulWidget { + const MinePersonInfoEditAccountNextPage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoEditAccountNextPageState(); +} + +class _MinePersonInfoEditAccountNextPageState extends State { + final TextEditingController _editAccountController = TextEditingController(); + late Timer _timer; + int _seconds = 60; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Container( + width: 1.sw, + // color: Colors.grey, + padding: EdgeInsets.only(left:30.w, top: 15.h, bottom: 15.h), + child: Text(TranslationLoader.lanKeys!.pleaseEnterAccountNumber!.tr, style: TextStyle(fontWeight: FontWeight.w600),) + ), + Container( + padding: EdgeInsets.only(left:30.w, right:30.w, top: 10.h, bottom: 10.h), + child: TFInputHaveBorder(controller: _editAccountController, label: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr,), + ), + Container( + padding: EdgeInsets.only(left:30.w, right:30.w, top: 20.h, bottom: 10.h), + child: TFInputHaveBorder(controller: _editAccountController, label: "${TranslationLoader.lanKeys!.pleaseEnter!.tr} ${TranslationLoader.lanKeys!.verificationCode!.tr}", rightSlot:GestureDetector( + child: Container( + width: 180.w, + height: 90.h, + padding: EdgeInsets.all(5.h), + margin: EdgeInsets.only(right: 10.w), + // 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.grey, + fontSize: 26.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/minePersonInfoEditIphone/minePersonInfoEditIphone_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditIphone/minePersonInfoEditIphone_page.dart new file mode 100644 index 00000000..93910a40 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditIphone/minePersonInfoEditIphone_page.dart @@ -0,0 +1,116 @@ + +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 MinePersonInfoEditIphonePage extends StatefulWidget { + const MinePersonInfoEditIphonePage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoEditIphonePageState(); +} + +class _MinePersonInfoEditIphonePageState 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!.iphone!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Container( + width: 1.sw, + padding: EdgeInsets.only(top: 5.h, bottom: 5.h), + child: Text(TranslationLoader.lanKeys!.changeIphoneTip!.tr) + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.seletCountryRegionPage); + }, + child: Container( + height: 70.h, + // color: Colors.red, + // padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:5.w), + Expanded(child: Text(TranslationLoader.lanKeys!.countryAndRegion!.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500))), + SizedBox(width:20.w), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text("中国+86", textAlign: TextAlign.end, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500),) + ], + ), + SizedBox(width:5.w), + Image.asset('images/icon_right.png', width: 50.w, height: 50.w,), + ], + ), + ), + ), + Container(height: 0.5.h, color: Colors.grey,), + SizedBox(height: 10.w), + LoginInput(controller: _phoneController, isPwd: true, leftWidget:const SizedBox(), hintText: "${TranslationLoader.lanKeys!.sure!.tr} ${TranslationLoader.lanKeys!.password!.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: 180.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: 26.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/minePersonInfoEditName/minePersonInfoEditName_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart new file mode 100644 index 00000000..a84fde95 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart @@ -0,0 +1,44 @@ + +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/tf_loginInput.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class MinePersonInfoEditNamePage extends StatefulWidget { + const MinePersonInfoEditNamePage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoEditNamePageState(); +} + +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: (){ + + },),], + ), + 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), + ]), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart new file mode 100644 index 00000000..6c875413 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart @@ -0,0 +1,94 @@ +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 MinePersonInfoResetPasswordPage extends StatefulWidget { + const MinePersonInfoResetPasswordPage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoResetPasswordPageState(); +} + +class _MinePersonInfoResetPasswordPageState extends State { + final TextEditingController _oldPwdController = TextEditingController(); + final TextEditingController _newPwdController = TextEditingController(); + final TextEditingController _surePwdController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.resetPasswords!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + margin: EdgeInsets.only(left:30.w, right: 30.w), + child: Column( + children: [ + LoginInput( + controller: _oldPwdController, + isPwd: true, + leftWidget:Text("${TranslationLoader.lanKeys!.originalPassword!.tr} "), + hintText: "", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ] + ), + LoginInput( + controller: _newPwdController, + isPwd: true, + leftWidget:Text("${TranslationLoader.lanKeys!.newPassword!.tr} "), + hintText: "", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ] + ), + LoginInput( + controller: _surePwdController, + isPwd: true, + // isHaveLeftWidget: false, + leftWidget:Text("${TranslationLoader.lanKeys!.surePassword!.tr} "), + hintText: "", + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + ] + ), + Container( + width: 1.sw, + padding: EdgeInsets.only(top: 15.h, bottom: 10.h), + child: Text(TranslationLoader.lanKeys!.registerPasswordTip!.tr, style: TextStyle(fontSize: 26.w)) + ), + SizedBox(height: 50.w), + SubmitBtn(btnName: TranslationLoader.lanKeys!.save!.tr, fontSize: 30.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SizedBox(height: 50.w), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + child: SizedBox( + // width: 150.w, + height: 50.h, + // color: Colors.red, + child: Center( + child: Text('${TranslationLoader.lanKeys!.forgetPassword!.tr}?',style: TextStyle(color:AppColors.mainColor, fontSize: 24.sp)), + ), + ), + onTap: (){ + Navigator.pushNamed(context, Routers.starLockForgetPasswordPage); + }, + ) + ], + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart new file mode 100644 index 00000000..11fcfa75 --- /dev/null +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart @@ -0,0 +1,121 @@ +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/submitBtn.dart'; +import '../../../tools/tf_loginInput.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class MinePersonInfoSetSafetyProblemPage extends StatefulWidget { + const MinePersonInfoSetSafetyProblemPage({Key? key}) : super(key: key); + + @override + State createState() => _MinePersonInfoSetSafetyProblemPageState(); +} + +class _MinePersonInfoSetSafetyProblemPageState extends State { + final _fristEditingController = TextEditingController(); + final _secondEditingController = TextEditingController(); + final _thirdEditingController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.safetyProblem!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + children: [ + Container( + width: 1.sw, + color: Colors.grey.shade300, + padding: EdgeInsets.all(20.h), + child: Text(TranslationLoader.lanKeys!.safetyProblemTip!.tr) + ), + _safityProblemItem(TranslationLoader.lanKeys!.problemOne!.tr, "", _fristEditingController, (){ + _seletProblemBottomSheet(); + }), + SizedBox(height: 10.h), + _safityProblemItem(TranslationLoader.lanKeys!.problemTwo!.tr, "", _secondEditingController, (){ + _seletProblemBottomSheet(); + }), + SizedBox(height: 10.h), + _safityProblemItem(TranslationLoader.lanKeys!.problemThree!.tr, "", _thirdEditingController, (){ + _seletProblemBottomSheet(); + }), + SizedBox(height: 50.h,), + SubmitBtn(btnName:TranslationLoader.lanKeys!.sure!.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: () { + + } + ), + ], + ) + ); + } + + Widget _safityProblemItem(String problemTitle, String answerTitle,TextEditingController controller, Function() action){ + return Column( + children: [ + CommonItem(leftTitel:problemTitle, rightTitle:"", isHaveLine: true, isHaveDirection: true, action:action), + Container( + color: Colors.white, + padding: EdgeInsets.only(left: 35.w), + child: TextField( + //输入框一行 + maxLines: 1, + controller: controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + // contentPadding: const EdgeInsets.only(top: 8.0, left: -19.0, right: -15.0, bottom: 8.0), + // labelText: label, + hintText: TranslationLoader.lanKeys!.pleaseEnterYourAnswer!.tr, + //不需要输入框下划线 + border: InputBorder.none, + ), + obscureText:false, + ), + ) + ], + ); + } + + Future _seletProblemBottomSheet() async { + final option = await showModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Container( + height: 400.0.h, + child: ListView( + children: [ + ListTile(title: Text('你第一次乘坐飞机取得是哪个城市?', textAlign: TextAlign.center), + onTap: () { + Navigator.of(context).pop(true); + }, + ), + ListTile(title: Text('你的QQ号码是多少', textAlign: TextAlign.center), + onTap: () { + Navigator.of(context).pop(true); + }, + ), + ListTile(title: Text('你的第一个宠物叫什么名字', textAlign: TextAlign.center), + onTap: () { + Navigator.of(context).pop(true); + }, + ), + + ], + ), + ); + } + ); + } + +} diff --git a/star_lock/lib/mine/mine_page.dart b/star_lock/lib/mine/mine_page.dart index cf4b8f4d..33389429 100644 --- a/star_lock/lib/mine/mine_page.dart +++ b/star_lock/lib/mine/mine_page.dart @@ -53,7 +53,7 @@ class _StarLockMinePageState extends State with BaseWidget{ width: 150.w, height: 150.w, decoration: BoxDecoration( border: Border.all(width: 2, color: Colors.white), - borderRadius: BorderRadius.circular(60.h), + borderRadius: BorderRadius.circular(75.h), ), padding: EdgeInsets.all(20.w), child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 100.w, height: 100.w) @@ -62,7 +62,7 @@ class _StarLockMinePageState extends State with BaseWidget{ SizedBox(height: 20.h,), Text("15080825640", style: TextStyle(fontSize: 30.sp, color: Colors.white, fontWeight: FontWeight.w500)), SizedBox(height: 10.h,), - Text("账号:15080825640", style: TextStyle(fontSize: 22.sp, color: Colors.white, fontWeight: FontWeight.w500)), + Text("${TranslationLoader.lanKeys!.accountNumber!.tr}:15080825640", style: TextStyle(fontSize: 22.sp, color: Colors.white, fontWeight: FontWeight.w500)), ], ), ); @@ -73,29 +73,29 @@ class _StarLockMinePageState extends State with BaseWidget{ child: ListView( padding: EdgeInsets.only(left: 70.w, top: 50.h, right: 10.w), children: [ - mineItem('images/mine/icon_mine_main_personInfo.png', "个人信息", (){ - Navigator.pushNamed(context, Routers.seletLockTypePage); + 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, (){ 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, (){ - + Navigator.pushNamed(context, Routers.messageListPage); }), 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, (){ Navigator.pushNamed(context, Routers.mineSetPage); }), 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, (){ - + Navigator.pushNamed(context, Routers.abountPage); }), ], ), @@ -147,8 +147,8 @@ class _StarLockMinePageState extends State with BaseWidget{ child: Row( children: [ SizedBox(width:20.w), - Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), - SizedBox(width:10.w), + Image.asset(lockTypeIcon, width: 40.w, height: 40.w,), + SizedBox(width:15.w), Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), ], ), diff --git a/star_lock/lib/mine/supportStaff/supportStaff_page.dart b/star_lock/lib/mine/supportStaff/supportStaff_page.dart new file mode 100644 index 00000000..54b3ebf7 --- /dev/null +++ b/star_lock/lib/mine/supportStaff/supportStaff_page.dart @@ -0,0 +1,29 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../app_settings/app_colors.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class SupportStaffPage extends StatefulWidget { + const SupportStaffPage({Key? key}) : super(key: key); + + @override + State createState() => _SupportStaffPageState(); +} + +class _SupportStaffPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.supportStaff!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + + ], + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart new file mode 100644 index 00000000..1cfe01b2 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart @@ -0,0 +1,29 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../app_settings/app_colors.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class ValueAddedServicesPage extends StatefulWidget { + const ValueAddedServicesPage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesPageState(); +} + +class _ValueAddedServicesPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.valueAddedServices!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + + ], + ), + ); + } +} diff --git a/star_lock/lib/tools/commonItem.dart b/star_lock/lib/tools/commonItem.dart index 925e8e13..0693f7cd 100644 --- a/star_lock/lib/tools/commonItem.dart +++ b/star_lock/lib/tools/commonItem.dart @@ -12,7 +12,14 @@ class CommonItem extends StatelessWidget { Function()? action; double? allHeight; - CommonItem({Key? key,required this.leftTitel, this.rightTitle, this.allHeight = 45.0, this.isHaveDirection = false, this.isHaveLine = false, this.isHaveRightWidget = false, this.rightWidget, this.action}) : super(key: key); + CommonItem({Key? key, + required this.leftTitel, + this.rightTitle, + this.allHeight = 45, + this.isHaveDirection = false, + this.isHaveLine = false, + this.isHaveRightWidget = false, + this.rightWidget, this.action}) : super(key: key); @override Widget build(BuildContext context) { @@ -24,7 +31,7 @@ class CommonItem extends StatelessWidget { Container( height: allHeight??70.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), diff --git a/star_lock/lib/tools/forgetPwdInput.dart b/star_lock/lib/tools/forgetPwdInput.dart deleted file mode 100644 index 38de0872..00000000 --- a/star_lock/lib/tools/forgetPwdInput.dart +++ /dev/null @@ -1,48 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; - -class ForgetPwdInput extends StatelessWidget { - TextEditingController? controller; - List? inputFormatters; - TextInputType? keyboardType; - String? hintText; - String? label; - Widget? rightSlot; - bool? isPwd; - ForgetPwdInput({Key? key, this.rightSlot, this.isPwd, this.label,this.hintText,this.keyboardType,this.inputFormatters, @required this.controller}) : super(key: key); - - @override - Widget build(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - child: Row( - children: [ - SizedBox(width: 90.w, height: 40.w,), - Expanded( - 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: hintText, - //不需要输入框下划线 - border: InputBorder.none, - ), - ), - ), - rightSlot??const SizedBox(width: 0,height: 0) - ], - ), - ), - Container(height: 0.5.h, color: Colors.grey,), - ], - ); - } -} diff --git a/star_lock/lib/tools/seletImgTool.dart b/star_lock/lib/tools/seletImgTool.dart new file mode 100644 index 00000000..c9181105 --- /dev/null +++ b/star_lock/lib/tools/seletImgTool.dart @@ -0,0 +1,54 @@ + +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; + +typedef BlockImgCallback = void Function(dynamic imgStr); + +class SeletImageTool { +// 实例化ImagePicker + final ImagePicker _picker = ImagePicker(); + ImageProvider? _imageProvider; + XFile? pickedFile; + XFile? cameraImages; + // 打开相机 + Future getCameraImage(BlockImgCallback callback) async { + try { + cameraImages = await _picker.pickImage(source: ImageSource.camera, maxWidth: 800); + if (cameraImages != null) { + // 获取图像地址 + _imageProvider = FileImage(File(cameraImages!.path)); + } else { + _imageProvider = null; + } + + } catch (e) { + if (e is MissingPluginException) { + // Toast.Show('当前平台不支持!'); + } else { + // Toast.Show('暂未开放相机权限'); + } + } + } + + // 打开相册 + Future getImage(BlockImgCallback callback) async { + try { + pickedFile = await _picker.pickImage(source: ImageSource.gallery, maxWidth: 800); + if (pickedFile != null) { + // 获取图像地址 + _imageProvider = FileImage(File(pickedFile!.path)); + } else { + _imageProvider = null; + } + } catch (e) { + if (e is MissingPluginException) { + // Toast.Show('当前平台不支持!'); + } else { + // Toast.Show('暂未开放相册权限'); + } + } + } +} \ No newline at end of file diff --git a/star_lock/lib/tools/showBottomSheetTool.dart b/star_lock/lib/tools/showBottomSheetTool.dart index 86ff18db..b30b054f 100644 --- a/star_lock/lib/tools/showBottomSheetTool.dart +++ b/star_lock/lib/tools/showBottomSheetTool.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_picker/flutter_picker.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; ///2023/7/17 ///底部弹出选择器工具类 @@ -19,12 +20,13 @@ class ShowBottomSheetTool { //字体大小 double textFontSize; - ShowBottomSheetTool( - {this.pickerHeight = 200.0, - this.itemHeight = 45.0, - this.btnColor = Colors.black, - this.titleColor = const Color.fromRGBO(127, 127, 127, 1.0), - this.textFontSize = 16.0}); + ShowBottomSheetTool({ + this.pickerHeight = 200.0, + this.itemHeight = 45.0, + this.btnColor = Colors.black, + this.titleColor = const Color.fromRGBO(127, 127, 127, 1.0), + this.textFontSize = 16.0 + }); ///单列 void showSingleRowPicker( diff --git a/star_lock/lib/tools/showTFView.dart b/star_lock/lib/tools/showTFView.dart index 1f05b803..dc3b0c3d 100644 --- a/star_lock/lib/tools/showTFView.dart +++ b/star_lock/lib/tools/showTFView.dart @@ -66,14 +66,14 @@ class ShowTFView extends StatelessWidget { ), actions: [ CupertinoDialogAction( - child: Text(TranslationLoader.lanKeys!.cancel!.tr), + child: Text(TranslationLoader.lanKeys!.cancel!.tr, style: const TextStyle(color: Colors.black),), onPressed: () { Navigator.pop(context); // print("取消"); }, ), CupertinoDialogAction( - child: Text(TranslationLoader.lanKeys!.sure!.tr), + child: Text(TranslationLoader.lanKeys!.sure!.tr, style: const TextStyle(color: Colors.black)), onPressed: () { Navigator.pop(context); // print("确定"); diff --git a/star_lock/lib/tools/tf_input_haveBorder.dart b/star_lock/lib/tools/tf_input_haveBorder.dart new file mode 100644 index 00000000..96e7b3a3 --- /dev/null +++ b/star_lock/lib/tools/tf_input_haveBorder.dart @@ -0,0 +1,102 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +/* +* 登录注册页面 input +* */ + +class TFInputHaveBorder extends StatelessWidget { + + TextEditingController? controller; + List? inputFormatters; + TextInputType? keyboardType; + Color? background; + String? hintText; + String? leftImg; + String? label; + bool? isPwd; + Widget? rightSlot; + TFInputHaveBorder({Key? key, required this.controller,this.rightSlot,this.label,this.isPwd,this.inputFormatters,this.keyboardType,this.background,this.hintText, this.leftImg}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Stack( + alignment: Alignment.centerRight, + children: [ + TextField( + maxLines: 1, + keyboardType: TextInputType.text, + // inputFormatters: inputFormatterstters??[], + controller:controller, + autofocus: false, + textAlign: TextAlign.start, + style:TextStyle(height: 1.1, fontSize: 30.sp, fontWeight: FontWeight.w400, color: const Color(0xFF333333)), + decoration: InputDecoration( + hintText: label, + hintStyle: TextStyle( + height: 1.1, + fontSize: 30.sp, + fontWeight: FontWeight.w400, + 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, + ), + ), + disabledBorder: const OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: Color(0xffD3D3D3), + ///设置边框的粗细 + width: 1, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: const OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(10)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: Color(0xffD3D3D3), + ///设置边框的粗细 + width: 1, + ), + ), + ), + obscureText:false, + onChanged: (String value){ + + }, + ), + rightSlot??const SizedBox(width: 0,height: 0) + ], + ); + } +} diff --git a/star_lock/lib/tools/loginInput.dart b/star_lock/lib/tools/tf_loginInput.dart similarity index 73% rename from star_lock/lib/tools/loginInput.dart rename to star_lock/lib/tools/tf_loginInput.dart index c6790038..2862b123 100644 --- a/star_lock/lib/tools/loginInput.dart +++ b/star_lock/lib/tools/tf_loginInput.dart @@ -14,11 +14,12 @@ class LoginInput extends StatelessWidget { TextInputType? keyboardType; Color? background; String? hintText; - String? leftImg; + bool? isHaveLeftWidget; + Widget? leftWidget; 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.leftImg}) : 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) { @@ -35,18 +36,15 @@ class LoginInput extends StatelessWidget { autofocus: false, decoration: InputDecoration( //输入里面输入文字内边距设置 - contentPadding: const EdgeInsets.only( - top: 12.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, hintText: hintText, //不需要输入框下划线 border: InputBorder.none, //左边图标设置 - icon: (leftImg!.isNotEmpty)?Padding( - padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), - child: Image.asset(leftImg!, width: 40.w, height: 40.w,), - ):SizedBox(width: 65.w, height: 40.w,), + icon: isHaveLeftWidget == true?leftWidget:SizedBox(width: 20.w, height: 40.w,), ), + obscureText: isPwd??false, ), Container(height: 0.5.h, color: Colors.grey,), ], diff --git a/star_lock/lib/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart index 7a34486e..4ce1d017 100644 --- a/star_lock/lib/translations/lanKeyEntity.dart +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -220,6 +220,54 @@ class LanKeyEntity { this.thirdPartyInformationSharingList, this.logout, this.deleteAccount, + this.personalInformation, + this.avatar, + this.nickName, + this.changeNickName, + this.modifyAccount, + this.resetPasswords, + this.safetyProblem, + this.modifyAccountTip, + this.pleaseEnterAccountNumber, + this.changeIphoneTip, + this.originalPassword, + this.newPassword, + this.surePassword, + this.safetyProblemTip, + this.problemOne, + this.problemTwo, + this.problemThree, + this.pleaseEnterYourAnswer, + + this.designation, + this.state, + this.wifiName, + this.networkMAC, + this.gatewayUpgrade, + this.gatewayConnectionLock, + this.strongSignal, + this.mediumSignal, + this.averageSignal, + this.weakSignal, + this.selectGatewayType, + this.addGateway, + this.turnThePowerBackOn, + this.indicatorLight, + this.seletGatewayTypeNextTip, + this.selectGateway, + this.gatewayConfigurationWifiTip, + this.wifiPassward, + this.pleaseEnterTheWiFiPassword, + this.gatewayName, + this.pleaseEnterGatewayName, + this.wifiMAC, + this.ipAddress, + this.subnetMask, + this.defaultGateway, + this.automaticallyGetTheDNSServerAddress, + this.preferredDNS, + this.alternativeDNS, + this.noStaticIPIsUsed, this.allLock, this.searchAllLockType, @@ -470,6 +518,57 @@ class LanKeyEntity { thirdPartyInformationSharingList = json['thirdPartyInformationSharingList']; logout = json['logout']; deleteAccount = json['deleteAccount']; + personalInformation = json['personalInformation']; + avatar = json['avatar']; + nickName = json['nickName']; + changeNickName = json['changeNickName']; + modifyAccount = json['modifyAccount']; + resetPasswords = json['resetPasswords']; + safetyProblem = json['safetyProblem']; + modifyAccountTip = json['modifyAccountTip']; + pleaseEnterAccountNumber = json['pleaseEnterAccountNumber']; + changeIphoneTip = json['changeIphoneTip']; + originalPassword = json['originalPassword']; + newPassword = json['newPassword']; + surePassword = json['surePassword']; + safetyProblemTip = json['safetyProblemTip']; + problemOne = json['problemOne']; + problemTwo = json['problemTwo']; + problemThree = json['problemThree']; + pleaseEnterYourAnswer = json['pleaseEnterYourAnswer']; + + designation = json['designation']; + state = json['state']; + wifiName = json['wifiName']; + networkMAC = json['networkMAC']; + gatewayUpgrade = json['gatewayUpgrade']; + gatewayConnectionLock = json['gatewayConnectionLock']; + strongSignal = json['strongSignal']; + mediumSignal = json['mediumSignal']; + averageSignal = json['averageSignal']; + weakSignal = json['weakSignal']; + selectGatewayType = json['selectGatewayType']; + addGateway = json['addGateway']; + turnThePowerBackOn = json['turnThePowerBackOn']; + indicatorLight = json['indicatorLight']; + seletGatewayTypeNextTip = json['seletGatewayTypeNextTip']; + selectGateway = json['selectGateway']; + gatewayConfigurationWifiTip = json['gatewayConfigurationWifiTip']; + wifiPassward = json['wifiPassward']; + pleaseEnterTheWiFiPassword = json['pleaseEnterTheWiFiPassword']; + gatewayName = json['gatewayName']; + pleaseEnterGatewayName = json['pleaseEnterGatewayName']; + gatewayName = json['gatewayName']; + pleaseEnterGatewayName = json['pleaseEnterGatewayName']; + wifiMAC = json['wifiMAC']; + ipAddress = json['ipAddress']; + subnetMask = json['subnetMask']; + defaultGateway = json['defaultGateway']; + automaticallyGetTheDNSServerAddress = json['automaticallyGetTheDNSServerAddress']; + preferredDNS = json['preferredDNS']; + alternativeDNS = json['alternativeDNS']; + noStaticIPIsUsed = json['noStaticIPIsUsed']; + allLock = json['allLock']; searchAllLockType = json['searchAllLockType']; @@ -648,7 +747,6 @@ class LanKeyEntity { String? leaveEarly; String? noCardPunched; - String? basicInformation; String? wirelessKeyboard; String? doorMagnetic; @@ -719,6 +817,54 @@ class LanKeyEntity { String? thirdPartyInformationSharingList; String? logout; String? deleteAccount; + String? personalInformation; + String? avatar; + String? nickName; + String? changeNickName; + String? modifyAccount; + String? resetPasswords; + String? safetyProblem; + String? modifyAccountTip; + String? pleaseEnterAccountNumber; + String? changeIphoneTip; + String? originalPassword; + String? newPassword; + String? surePassword; + String? safetyProblemTip; + String? problemOne; + String? problemTwo; + String? problemThree; + String? pleaseEnterYourAnswer; + + String? designation; + String? state; + String? wifiName; + String? networkMAC; + String? gatewayUpgrade; + String? gatewayConnectionLock; + String? strongSignal; + String? mediumSignal; + String? averageSignal; + String? weakSignal; + String? selectGatewayType; + String? addGateway; + String? turnThePowerBackOn; + String? indicatorLight; + String? seletGatewayTypeNextTip; + String? selectGateway; + String? gatewayConfigurationWifiTip; + String? wifiPassward; + String? pleaseEnterTheWiFiPassword; + String? gatewayName; + String? pleaseEnterGatewayName; + String? wifiMAC; + String? ipAddress; + String? subnetMask; + String? defaultGateway; + String? automaticallyGetTheDNSServerAddress; + String? preferredDNS; + String? alternativeDNS; + String? noStaticIPIsUsed; String? allLock; String? searchAllLockType; @@ -970,6 +1116,55 @@ class LanKeyEntity { map['thirdPartyInformationSharingList'] = thirdPartyInformationSharingList; map['logout'] = logout; map['deleteAccount'] = deleteAccount; + map['personalInformation'] = personalInformation; + map['avatar'] = avatar; + map['nickName'] = nickName; + map['changeNickName'] = changeNickName; + map['modifyAccount'] = modifyAccount; + map['resetPasswords'] = resetPasswords; + map['safetyProblem'] = safetyProblem; + map['safetyProblem'] = safetyProblem; + map['modifyAccountTip'] = modifyAccountTip; + map['pleaseEnterAccountNumber'] = pleaseEnterAccountNumber; + map['changeIphoneTip'] = changeIphoneTip; + map['originalPassword'] = originalPassword; + map['newPassword'] = newPassword; + map['surePassword'] = surePassword; + map['safetyProblemTip'] = safetyProblemTip; + map['problemOne'] = problemOne; + map['problemTwo'] = problemTwo; + map['problemThree'] = problemThree; + map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer; + + map['designation'] = designation; + map['state'] = state; + map['wifiName'] = wifiName; + map['networkMAC'] = networkMAC; + map['gatewayUpgrade'] = gatewayUpgrade; + map['gatewayConnectionLock'] = gatewayConnectionLock; + map['strongSignal'] = strongSignal; + map['mediumSignal'] = mediumSignal; + map['averageSignal'] = averageSignal; + map['weakSignal'] = weakSignal; + map['selectGatewayType'] = selectGatewayType; + map['addGateway'] = addGateway; + map['turnThePowerBackOn'] = turnThePowerBackOn; + map['indicatorLight'] = indicatorLight; + map['seletGatewayTypeNextTip'] = seletGatewayTypeNextTip; + map['selectGateway'] = selectGateway; + map['gatewayConfigurationWifiTip'] = gatewayConfigurationWifiTip; + map['wifiPassward'] = wifiPassward; + map['pleaseEnterTheWiFiPassword'] = pleaseEnterTheWiFiPassword; + map['gatewayName'] = gatewayName; + map['pleaseEnterGatewayName'] = pleaseEnterGatewayName; + map['wifiMAC'] = wifiMAC; + map['ipAddress'] = ipAddress; + map['subnetMask'] = subnetMask; + map['defaultGateway'] = defaultGateway; + map['automaticallyGetTheDNSServerAddress'] = automaticallyGetTheDNSServerAddress; + map['preferredDNS'] = preferredDNS; + map['alternativeDNS'] = alternativeDNS; + map['noStaticIPIsUsed'] = noStaticIPIsUsed; map['allLock'] = allLock; map['searchAllLockType'] = searchAllLockType; diff --git a/star_lock/linux/flutter/generated_plugin_registrant.cc b/star_lock/linux/flutter/generated_plugin_registrant.cc index e71a16d2..64a0ecea 100644 --- a/star_lock/linux/flutter/generated_plugin_registrant.cc +++ b/star_lock/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); } diff --git a/star_lock/linux/flutter/generated_plugins.cmake b/star_lock/linux/flutter/generated_plugins.cmake index 2e1de87a..2db3c22a 100644 --- a/star_lock/linux/flutter/generated_plugins.cmake +++ b/star_lock/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift index 47b97425..9bbe890f 100644 --- a/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,11 +6,13 @@ import FlutterMacOS import Foundation import device_info_plus +import file_selector_macos import package_info_plus import path_provider_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) } diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml index 8b737eb5..acaa1e4b 100644 --- a/star_lock/pubspec.yaml +++ b/star_lock/pubspec.yaml @@ -62,6 +62,9 @@ dependencies: flutter_pickers: ^2.1.9 #万年历 syncfusion_flutter_datepicker: ^22.1.38 + #图片选择 + image_picker: ^1.0.1 + dev_dependencies: flutter_test: sdk: flutter diff --git a/star_lock/windows/flutter/generated_plugin_registrant.cc b/star_lock/windows/flutter/generated_plugin_registrant.cc index 8b6d4680..77ab7a09 100644 --- a/star_lock/windows/flutter/generated_plugin_registrant.cc +++ b/star_lock/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); } diff --git a/star_lock/windows/flutter/generated_plugins.cmake b/star_lock/windows/flutter/generated_plugins.cmake index b93c4c30..a423a024 100644 --- a/star_lock/windows/flutter/generated_plugins.cmake +++ b/star_lock/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + file_selector_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST