diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json index 6f5d42f4..33c9433e 100644 --- a/star_lock/images/lan/lan_en.json +++ b/star_lock/images/lan/lan_en.json @@ -202,6 +202,7 @@ "authorizedAdmin":"Authorized Admin", "lockGroup":"Lock Group", "transferSmartLock":"Transfer Smart Lock", + "transferGateway":"Transfer Gateway", "multiLanguage":"Multi Language", "lockScreen":"Lock Screen", "closed":"Closed", @@ -291,5 +292,75 @@ "iphone":"Iphone", "email":"Email", "countryAndRegion":"Country And Region", - "selet":"Selet" + "selet":"Selet", + + "businessCooperation":"Business Cooperation", + "officialWebsite":"Official Website", + "computerWebVersion":"Computer Web Version", + "hotelSystem":"Hotel System", + "manualWebVersion":"Manual Web Version", + "introduce":"Introduce", + + "note":"Note", + "mail":"Mail", + "advancedFunction":"Advanced Function", + "pushMessage":"Push Message", + "recordsRetention":"Records Retention", + + "smsBuyTip":"You can send the password and electronic key information to the recipient via SMS.", + "emailBuyTip":"You can send the password and electronic key information to the recipient by email.", + "currentRemainingQuantity":"Current Remaining Quantity", + "buy":"Buy", + "customSMSTemplate":"Custom SMS Template", + "customMailTemplate":"Custom Mail Template", + "record":"Record", + "buyRealNameTip":"When an electronic key is sent to the user, the user can be required to authenticate with his real name before unlocking to ensure that he is operating. The real-name authentication calls the interface of the national Public security system. For the payment function, please purchase the number of times before using it.", + "buyRealNameSeletYouWantBuyTip":"Please select the frequency of real name authentication you want", + "forTheFirstTime":"For the first time", + "onceDay":"once a day", + "weekOnce":"once a week", + "monthOnce":"once every month", + "currentState":"Current State", + "onTrial":"On Trial", + "haveNotOpened":"Have Not Opened", + "advancedFeaturesAndBenefitsContent":"Advanced Features And Benefits Content", + "smsTemplate":"SMS Template", + "emailTemplate":"Email Template", + "cardIssuingtool":"Card Issuing tool", + "titleForBuyingAdvancedFeatures":"Tips for buying advanced features", + "tipsForBuyingAdvancedFeatures":"More advanced features are under development, and if you need them, you are welcome to open the service based on the number of locks. Advanced features are only available for your own locks. If you are an authorized administrator, please contact the top administrator of the lock to open the service", + "freeTrial":"Free Trial", + "openNow":"Open Now", + + "buySMS":"Buy SMS", + "buyMail":"Buy Mail", + "buyRealNameAuthenticationTimes":"Purchase Real Name Authentication Times", + "enablingAdvancedFeatures":"Enabling Advanced Features", + "chooseAPackage":"Choose A Package", + "modeOfPayment":"Mode Of Payment", + "alipay":"Alipay", + "goToPay":"Go To Pay", + + "customTemplatesTip":"You can define the content of your own template for sending passwords or electronic key information to others", + "haveOpened":"Have Opened", + "unHaveOpenedTip1":"This function is an advanced function, please open it before using", + "unHaveOpenedTip2":"Advanced features are only available for your own locks", + "freeTrialKeywords":"Free Trial", + "goToTheOpen":"Go to the open", + "creatingANewTemplate":"Creating a new template", + "type":"Type", + "templateContent":"Template Content", + "preview":"Preview", + "hello":"Hello", + "yourRoomIs":"Your room is", + "roomName":"Room Name", + "theCodeToOpenTheDoorIs":"The code to open the door is", + "templateTip1":"After entering the password, please press the # key or other unlocking key to end. The password must be used at least once within 24 hours of being valid, otherwise it will be invalid", + "templateTip2":"You have received an electronic key, please use the applet to open the door.", + "templateTip3":"Or install an App to open the door。", + "expectedNotoCount":"The number of short creeds is expected to be generated", + "templateTip4": "Tip: When sending messages to other people, be critical", + "and":"And", + "willBeReplacedWithTheActualValue":"Will be replaced with the actual value", + "downloadLink":"Download Link" } diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json index a0b26ca5..98a2e7da 100644 --- a/star_lock/images/lan/lan_keys.json +++ b/star_lock/images/lan/lan_keys.json @@ -203,7 +203,6 @@ "lockGroup":"lockGroup", "transferSmartLock":"transferSmartLock", "transferGateway":"transferGateway", - "multiLanguage":"multiLanguage", "lockScreen":"lockScreen", "closed":"closed", @@ -293,5 +292,75 @@ "iphone":"iphone", "email":"email", "countryAndRegion":"countryAndRegion", - "selet":"selet" + "selet":"selet", + + "businessCooperation":"businessCooperation", + "officialWebsite":"officialWebsite", + "computerWebVersion":"computerWebVersion", + "hotelSystem":"hotelSystem", + "manualWebVersion":"manualWebVersion", + "introduce":"introduce", + + "note":"note", + "mail":"mail", + "advancedFunction":"advancedFunction", + "pushMessage":"pushMessage", + "recordsRetention":"recordsRetention", + + "smsBuyTip":"smsBuyTip", + "emailBuyTip":"emailBuyTip", + "currentRemainingQuantity":"currentRemainingQuantity", + "buy":"buy", + "customSMSTemplate":"customSMSTemplate", + "customMailTemplate":"customMailTemplate", + "record":"record", + "buyRealNameTip":"buyRealNameTip", + "buyRealNameSeletYouWantBuyTip":"buyRealNameSeletYouWantBuyTip", + "forTheFirstTime":"forTheFirstTime", + "onceDay":"onceDay", + "weekOnce":"weekOnce", + "monthOnce":"monthOnce", + "currentState":"currentState", + "onTrial":"onTrial", + "haveNotOpened":"haveNotOpened", + "advancedFeaturesAndBenefitsContent":"advancedFeaturesAndBenefitsContent", + "smsTemplate":"smsTemplate", + "emailTemplate":"emailTemplate", + "cardIssuingtool":"cardIssuingtool", + "titleForBuyingAdvancedFeatures":"titleForBuyingAdvancedFeatures", + "tipsForBuyingAdvancedFeatures":"tipsForBuyingAdvancedFeatures", + "freeTrial":"freeTrial", + "openNow":"openNow", + + "buySMS":"buySMS", + "buyMail":"buyMail", + "buyRealNameAuthenticationTimes":"buyRealNameAuthenticationTimes", + "enablingAdvancedFeatures":"enablingAdvancedFeatures", + "chooseAPackage":"chooseAPackage", + "modeOfPayment":"modeOfPayment", + "alipay":"alipay", + "goToPay":"goToPay", + + "customTemplatesTip":"customTemplatesTip", + "haveOpened":"haveOpened", + "unHaveOpenedTip1":"unHaveOpenedTip1", + "unHaveOpenedTip2":"unHaveOpenedTip2", + "freeTrialKeywords":"freeTrialKeywords", + "goToTheOpen":"goToTheOpen", + "creatingANewTemplate":"creatingANewTemplate", + "type":"type", + "templateContent":"templateContent", + "preview":"preview", + "hello":"hello", + "yourRoomIs":"yourRoomIs", + "roomName":"roomName", + "theCodeToOpenTheDoorIs":"theCodeToOpenTheDoorIs", + "templateTip1":"templateTip1", + "templateTip2":"templateTip2", + "templateTip3":"templateTip3", + "expectedNotoCount":"expectedNotoCount", + "templateTip4": "templateTip4", + "and":"and", + "willBeReplacedWithTheActualValue":"willBeReplacedWithTheActualValue", + "downloadLink":"downloadLink" } \ No newline at end of file diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index 579f169b..e099283b 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -292,5 +292,78 @@ "iphone":"手机", "email":"邮箱", "countryAndRegion":"国家/地区", - "selet":"选择" + "selet":"选择", + + "businessCooperation":"商务合作", + "officialWebsite":"官网", + "computerWebVersion":"电脑网页版", + "hotelSystem":"酒店系统", + "manualWebVersion":"说明书网页版", + "introduce":"介绍", + + "note":"短信", + "mail":"邮件", + "advancedFunction":"高级功能", + "pushMessage":"推送", + "recordsRetention":"记录保存", + + "smsBuyTip":"您可通过短信将密码、电子钥匙信息发给接收人。", + "emailBuyTip":"您可通过邮件将密码、电子钥匙信息发给接收人。", + "currentRemainingQuantity":"当前剩余数量", + "buy":"购买", + "customSMSTemplate":"自定义短信模版", + "customMailTemplate":"自定义邮件模版", + "record":"记录", + + "buyRealNameTip":"给用户发送电子钥匙时,可以要求其开锁前先进行实名认证,以保证是他本人在操作。实名认证调用国家公安系统接口,为付费功能,请购买次数后再使用。", + "buyRealNameSeletYouWantBuyTip":"请选择你希望的实名认证频数", + "forTheFirstTime":"仅首次", + "onceDay":"每日一次", + "weekOnce":"每周一次", + "monthOnce":"每月一次", + + "currentState":"当前状态", + "onTrial":"试用中", + "haveNotOpened":"未开通", + "advancedFeaturesAndBenefitsContent":"高级功能权益内容", + "smsTemplate":"短信模板", + "emailTemplate":"邮件模板", + "cardIssuingtool":"发卡工具", + "titleForBuyingAdvancedFeatures":"购买高级功能须知", + "tipsForBuyingAdvancedFeatures":"更多的高级功能正在开发中,如果您需要这些功能,欢迎根据锁的数量开通服务。高级功能仅能用于您自己的锁。如果您是授权管理员,请联系锁的最高管理员开通服务", + "freeTrial":"免费体验", + "openNow":"立即开通", + + "buySMS":"购买短信", + "buyMail":"购买邮件", + "buyRealNameAuthenticationTimes":"购买实名认证次数", + "enablingAdvancedFeatures":"开通高级功能", + "chooseAPackage":"选择套餐", + "modeOfPayment":"支付方式", + "alipay":"支付宝", + "goToPay":"去支付", + + "customTemplatesTip":"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人", + "haveOpened":"已开通", + "unHaveOpenedTip1":"该功能是高级功能,请开通后再使用", + "unHaveOpenedTip2":"高级功能仅能用于你自己的锁", + "freeTrialKeywords":"免费试用", + "goToTheOpen":"去开通", + "creatingANewTemplate":"新建模板", + "type":"类型", + "templateContent":"模版内容", + "preview":"预览", + "hello":"你好", + "yourRoomIs":"您的房间是", + "roomName":"房间名", + "theCodeToOpenTheDoorIs":"开门密码是", + "templateTip1":"输入密码后请按#号键或其他开锁键结束。密码生效后24小时内至少要使用一次,否则将失效", + "templateTip2":"你收到一把电子钥匙,请使用小程序开门。", + "templateTip3":"或安装App来开门。", + "expectedNotoCount":"预计产生短信条数", + + "templateTip4": "提示:向其他人发送消息时,关键宇", + "and":"和", + "willBeReplacedWithTheActualValue":"将替换为实际值", + "downloadLink":"下载链接" } \ No newline at end of file diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_bjft.png b/star_lock/images/mine/icon_mine_highFunctionContent_bjft.png new file mode 100644 index 00000000..07c50285 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_bjft.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_dxmb.png b/star_lock/images/mine/icon_mine_highFunctionContent_dxmb.png new file mode 100644 index 00000000..7da20938 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_dxmb.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_fkgj.png b/star_lock/images/mine/icon_mine_highFunctionContent_fkgj.png new file mode 100644 index 00000000..19b24230 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_fkgj.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_left.png b/star_lock/images/mine/icon_mine_highFunctionContent_left.png new file mode 100644 index 00000000..7d5f5fc5 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_left.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_right.png b/star_lock/images/mine/icon_mine_highFunctionContent_right.png new file mode 100644 index 00000000..52121185 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_right.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_sfz.png b/star_lock/images/mine/icon_mine_highFunctionContent_sfz.png new file mode 100644 index 00000000..7d7d47d3 Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_sfz.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_sqgly.png b/star_lock/images/mine/icon_mine_highFunctionContent_sqgly.png new file mode 100644 index 00000000..55914eda Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_sqgly.png differ diff --git a/star_lock/images/mine/icon_mine_highFunctionContent_yjmb.png b/star_lock/images/mine/icon_mine_highFunctionContent_yjmb.png new file mode 100644 index 00000000..7fb1c12f Binary files /dev/null and b/star_lock/images/mine/icon_mine_highFunctionContent_yjmb.png differ diff --git a/star_lock/images/mine/icon_mine_supportStaff_jump.png b/star_lock/images/mine/icon_mine_supportStaff_jump.png new file mode 100644 index 00000000..465c14bb Binary files /dev/null and b/star_lock/images/mine/icon_mine_supportStaff_jump.png differ diff --git a/star_lock/images/mine/icon_mine_supportStaff_openEmail.png b/star_lock/images/mine/icon_mine_supportStaff_openEmail.png new file mode 100644 index 00000000..48c48ce7 Binary files /dev/null and b/star_lock/images/mine/icon_mine_supportStaff_openEmail.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_buyIcon.png b/star_lock/images/mine/icon_mine_valueAddedServices_buyIcon.png new file mode 100644 index 00000000..f2a62952 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_buyIcon.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_checkIn.png b/star_lock/images/mine/icon_mine_valueAddedServices_checkIn.png new file mode 100644 index 00000000..cffd3a55 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_checkIn.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_email.png b/star_lock/images/mine/icon_mine_valueAddedServices_email.png new file mode 100644 index 00000000..6b7bb944 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_email.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_note.png b/star_lock/images/mine/icon_mine_valueAddedServices_note.png new file mode 100644 index 00000000..fc702cc6 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_note.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_noteTop.png b/star_lock/images/mine/icon_mine_valueAddedServices_noteTop.png new file mode 100644 index 00000000..4e5ba6c7 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_noteTop.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_push.png b/star_lock/images/mine/icon_mine_valueAddedServices_push.png new file mode 100644 index 00000000..651684e7 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_push.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_realName.png b/star_lock/images/mine/icon_mine_valueAddedServices_realName.png new file mode 100644 index 00000000..dee41e53 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_realName.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_storage.png b/star_lock/images/mine/icon_mine_valueAddedServices_storage.png new file mode 100644 index 00000000..3147cd54 Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_storage.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_vip.png b/star_lock/images/mine/icon_mine_valueAddedServices_vip.png new file mode 100644 index 00000000..85d41b0d Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_vip.png differ diff --git a/star_lock/images/mine/icon_mine_valueAddedServices_zfb.png b/star_lock/images/mine/icon_mine_valueAddedServices_zfb.png new file mode 100644 index 00000000..21ffe9ae Binary files /dev/null and b/star_lock/images/mine/icon_mine_valueAddedServices_zfb.png differ diff --git a/star_lock/ios/Podfile.lock b/star_lock/ios/Podfile.lock index 0995e36e..c44d32b2 100644 --- a/star_lock/ios/Podfile.lock +++ b/star_lock/ios/Podfile.lock @@ -11,6 +11,8 @@ PODS: - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - url_launcher_ios (0.0.1): + - Flutter DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) @@ -19,6 +21,7 @@ DEPENDENCIES: - 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`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) EXTERNAL SOURCES: device_info_plus: @@ -33,6 +36,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed @@ -41,6 +46,7 @@ SPEC CHECKSUMS: image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8 + url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 PODFILE CHECKSUM: 663715e941f9adb426e33bf9376914006f9ea95b diff --git a/star_lock/ios/Runner.xcodeproj/project.pbxproj b/star_lock/ios/Runner.xcodeproj/project.pbxproj index e1f65647..ae156cc4 100644 --- a/star_lock/ios/Runner.xcodeproj/project.pbxproj +++ b/star_lock/ios/Runner.xcodeproj/project.pbxproj @@ -327,6 +327,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + EXCLUDED_ARCHS = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -396,6 +397,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + EXCLUDED_ARCHS = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -451,6 +453,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + EXCLUDED_ARCHS = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 59c23f96..4d6223ea 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -83,9 +83,21 @@ import 'mine/minePersonInfo/minePersonInfoEditIphone/minePersonInfoEditIphone_pa import 'mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart'; import 'mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart'; import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart'; +import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart'; +import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart'; +import 'mine/mineSet/lockScreen/lockScreen_page.dart'; import 'mine/mine_page.dart'; import 'mine/supportStaff/supportStaff_page.dart'; -import 'mine/valueAddedServices/valueAddedServices_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart'; import 'starLockApplication.dart'; abstract class Routers { @@ -175,6 +187,20 @@ abstract class Routers { static const valueAddedServicesPage = '/ValueAddedServicesPage';// 我的-增值服务 static const abountPage = '/AbountPage';// 我的-关于 + static const valueAddedServicesNoteAndEmailDetailPage = '/ValueAddedServicesNoteAndEmailDetailPage';// 增值服务-短信邮件详情 + static const valueAddedServicesRealNamePage = '/ValueAddedServicesRealNamePage';// 增值服务-实名认证详情 + static const valueAddedServicesHighFunctionPage = '/ValueAddedServicesHighFunctionPage';// 增值服务-高级功能 + static const valueAddedServicesBuyPage = '/ValueAddedServicesBuyPage';// 增值服务-购买服务 + static const valueAddedServicesListSMSTemplatePage = '/ValueAddedServicesListSMSTemplatePage';// 增值服务-短信模版列表 + static const valueAddedServicesAddSMSTemplatePage = '/valueAddedServicesAddSMSTemplatePage';// 增值服务-自定义短信模版 + static const valueAddedServicesListEmailTemplatePage = '/ValueAddedServicesListEmailTemplatePage';// 增值服务-邮箱模版列表 + static const valueAddedServicesAddEmailTemplatePage = '/ValueAddedServicesAddEmailTemplatePage';// 增值服务-自定义邮箱模版 + static const valueAddedServicesBuyAndUseRecordManagePage = '/ValueAddedServicesBuyAndUseRecordManagePage';// 增值服务-购买使用记录 + + static const lockScreenPage = '/LockScreenPage';// 我的设置-锁屏 + static const aPPUnlockNeedMobileNetworkingLockPage = '/APPUnlockNeedMobileNetworkingLockPage';// 我的设置-app开锁时需手机连网的锁 + static const hideInvalidUnlockPermissionsPage = '/HideInvalidUnlockPermissionsPage';// 我的设置-隐藏无效开锁权限 + static const starLockLoginPage = '/StarLockLoginPage';// 登录 static const starLockRegisterPage = '/StarLockRegisterPage';// 注册 static const starLockForgetPasswordPage = '/StarLockForgetPasswordPage';// 忘记密码 @@ -497,7 +523,7 @@ abstract class AppRouters { ), GetPage( name: Routers.valueAddedServicesPage, - page: () => const ValueAddedServicesPage(), + page: () => const ValueAddedServicesListPage(), ), GetPage( name: Routers.abountPage, @@ -527,5 +553,53 @@ abstract class AppRouters { name: Routers.gatewayConfigurationWifiPage, page: () => const GatewayConfigurationWifiPage(), ), + GetPage( + name: Routers.valueAddedServicesNoteAndEmailDetailPage, + page: () => const ValueAddedServicesNoteAndEmailDetailPage(), + ), + GetPage( + name: Routers.valueAddedServicesRealNamePage, + page: () => const ValueAddedServicesRealNamePage(), + ), + GetPage( + name: Routers.valueAddedServicesBuyPage, + page: () => const ValueAddedServicesBuyPage(), + ), + GetPage( + name: Routers.valueAddedServicesHighFunctionPage, + page: () => const ValueAddedServicesHighFunctionPage(), + ), + GetPage( + name: Routers.valueAddedServicesListSMSTemplatePage, + page: () => const ValueAddedServicesListSMSTemplatePage(), + ), + GetPage( + name: Routers.valueAddedServicesAddSMSTemplatePage, + page: () => const ValueAddedServicesAddSMSTemplatePage(), + ), + GetPage( + name: Routers.valueAddedServicesListEmailTemplatePage, + page: () => const ValueAddedServicesListEmailTemplatePage(), + ), + GetPage( + name: Routers.valueAddedServicesAddEmailTemplatePage, + page: () => const ValueAddedServicesAddEmailTemplatePage(), + ), + GetPage( + name: Routers.valueAddedServicesBuyAndUseRecordManagePage, + page: () => const ValueAddedServicesBuyAndUseRecordManagePage(), + ), + GetPage( + name: Routers.lockScreenPage, + page: () => const LockScreenPage(), + ), + GetPage( + name: Routers.aPPUnlockNeedMobileNetworkingLockPage, + page: () => const APPUnlockNeedMobileNetworkingLockPage(), + ), + GetPage( + name: Routers.hideInvalidUnlockPermissionsPage, + page: () => const HideInvalidUnlockPermissionsPage(), + ), ]; } \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart index 9ac9d807..c91ad57d 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart @@ -40,15 +40,15 @@ class _SendElectronicKeyPageState extends State { case 0: { // 限时 - // return sendElectronicKeySucceed(); - return Column( - children: [ - keyInfoWidget(), - keyTimeWidget(), - keyRealNameWidget(), - keyBottomWidget() - ], - ); + return sendElectronicKeySucceed(); + // return Column( + // children: [ + // keyInfoWidget(), + // keyTimeWidget(), + // keyRealNameWidget(), + // keyBottomWidget() + // ], + // ); } break; case 1: diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart index a52f2a0a..e84abc8f 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart @@ -31,7 +31,7 @@ class _SendEmailNotificationPageState extends State { Container( height: 360.h, color: Colors.white, - padding: EdgeInsets.only(left:20.w, right: 20.w, top: 20.h), + padding: EdgeInsets.only(left:20.w, right: 20.w, top: 20.h, bottom: 20.h), child:TextField( maxLines:8, maxLength:1000, diff --git a/star_lock/lib/mine/about/about_page.dart b/star_lock/lib/mine/about/about_page.dart index 6406e87f..cc3d47a4 100644 --- a/star_lock/lib/mine/about/about_page.dart +++ b/star_lock/lib/mine/about/about_page.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import '../../app_settings/app_colors.dart'; +import '../../tools/commonItem.dart'; import '../../tools/titleAppBar.dart'; import '../../translations/trans_lib.dart'; @@ -17,11 +19,24 @@ class _AbountPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFFFFFFF), + backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.about!.tr, haveBack:true, backgroundColor: AppColors.mainColor), body: Column( + crossAxisAlignment: CrossAxisAlignment.center, children: [ + SizedBox(height: 150.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset("images/icon_main_1024.png", width: 200.w, height: 200.w,), + ], + ), + SizedBox(height: 30.h,), + const Text("通通锁 6.7.0"), + SizedBox(height: 80.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys!.introduce!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + }), ], ), ); diff --git a/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart index 0cafcf05..07e50368 100644 --- a/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart +++ b/star_lock/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart @@ -38,7 +38,7 @@ class _GatewayDetailPageState extends State { 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: (){ + CommonItem(leftTitel:TranslationLoader.lanKeys!.gatewayUpgrade!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ }), SizedBox(height: 80.h,), diff --git a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart new file mode 100644 index 00000000..4c617e33 --- /dev/null +++ b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart @@ -0,0 +1,91 @@ + +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 APPUnlockNeedMobileNetworkingLockPage extends StatefulWidget { + const APPUnlockNeedMobileNetworkingLockPage({Key? key}) : super(key: key); + + @override + State createState() => _APPUnlockNeedMobileNetworkingLockPageState(); +} + +class _APPUnlockNeedMobileNetworkingLockPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "APP开锁时需手机连网的锁", haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Container( + padding: EdgeInsets.all(30.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁")), + ], + ), + ), + CommonItem(leftTitel:"全选", rightTitle:"", allHeight:100.h, isHaveLine: false, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + SizedBox(height: 15.h), + Expanded( + child: ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _gatewatListItem('images/mine/icon_mine_gatewayListMainIcon.png', "星锁网关", "在线", "2", (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }); + } + ), + ), + SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr, + borderRadius: 20.w, + fontSize: 32.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.h, bottom: 30.h), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ) + ); + } + + Widget _gatewatListItem(String lockTypeIcon, String gateWayName, String isOnline, String lockNumber, Function() action){ + return GestureDetector( + onTap: action, + child: Container( + height: 80.h, + margin: const EdgeInsets.only(bottom: 2), + padding: EdgeInsets.only(left: 10.w, right: 20.w, top: 20.h, bottom: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 15.w,), + Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,), + SizedBox(width: 10.w,), + Text("MCBN01_8f3106", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600),) + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart new file mode 100644 index 00000000..5018bc96 --- /dev/null +++ b/star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart @@ -0,0 +1,56 @@ + +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/submitBtn.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class HideInvalidUnlockPermissionsPage extends StatefulWidget { + const HideInvalidUnlockPermissionsPage({Key? key}) : super(key: key); + + @override + State createState() => _HideInvalidUnlockPermissionsPageState(); +} + +class _HideInvalidUnlockPermissionsPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "隐藏无效开锁权限", haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。")), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart new file mode 100644 index 00000000..c6cd00d3 --- /dev/null +++ b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart @@ -0,0 +1,56 @@ + +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/submitBtn.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class LockScreenPage extends StatefulWidget { + const LockScreenPage({Key? key}) : super(key: key); + + @override + State createState() => _LockScreenPageState(); +} + +class _LockScreenPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "锁屏", haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("功能开启后,需使用指纹、人脸或账号密码来打开 APP。3分钟内不需要再次验证")), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart index 19c4c532..5cc88b20 100644 --- a/star_lock/lib/mine/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet_page.dart @@ -51,37 +51,37 @@ class _MineSetPageState extends State { Navigator.pushNamed(context, Routers.mineMultiLanguagePage); }), CommonItem(leftTitel:TranslationLoader.lanKeys!.lockScreen!.tr, rightTitle:TranslationLoader.lanKeys!.opened!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - + Navigator.pushNamed(context, Routers.lockScreenPage); }), CommonItem(leftTitel:TranslationLoader.lanKeys!.hideInvalidUnlockPermissions!.tr, rightTitle:TranslationLoader.lanKeys!.closed!.tr, isHaveLine: true, isHaveDirection: true, action: (){ - + Navigator.pushNamed(context, Routers.hideInvalidUnlockPermissionsPage); }), CommonItem(leftTitel:TranslationLoader.lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLock!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){ - + Navigator.pushNamed(context, Routers.aPPUnlockNeedMobileNetworkingLockPage); }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){ + // + // }), SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - SizedBox(height: 10.h,), - CommonItem(leftTitel:TranslationLoader.lanKeys!.userAgreement!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.privacyPolicy!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.personalInformationCollectionList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), - CommonItem(leftTitel:TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - - }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // SizedBox(height: 10.h,), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.userAgreement!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.privacyPolicy!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.personalInformationCollectionList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), ], ), ), diff --git a/star_lock/lib/mine/mine_page.dart b/star_lock/lib/mine/mine_page.dart index 33389429..f33318ff 100644 --- a/star_lock/lib/mine/mine_page.dart +++ b/star_lock/lib/mine/mine_page.dart @@ -141,15 +141,16 @@ class _StarLockMinePageState extends State with BaseWidget{ children: [ Center( child: Container( - height: 80.h, - // width: 300.w, + // height: 80.h, + width: 400.w, + padding: EdgeInsets.all(20.h), color: Colors.white, child: Row( children: [ SizedBox(width:20.w), Image.asset(lockTypeIcon, width: 40.w, height: 40.w,), SizedBox(width:15.w), - Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + Expanded(child: 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 index 54b3ebf7..6eac6db5 100644 --- a/star_lock/lib/mine/supportStaff/supportStaff_page.dart +++ b/star_lock/lib/mine/supportStaff/supportStaff_page.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../app_settings/app_colors.dart'; +import '../../tools/commonItem.dart'; import '../../tools/titleAppBar.dart'; import '../../translations/trans_lib.dart'; @@ -14,6 +17,7 @@ class SupportStaffPage extends StatefulWidget { } class _SupportStaffPageState extends State { + @override Widget build(BuildContext context) { return Scaffold( @@ -21,9 +25,70 @@ class _SupportStaffPageState extends State { appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.supportStaff!.tr, haveBack:true, backgroundColor: AppColors.mainColor), body: Column( children: [ + supportStaffItem(TranslationLoader.lanKeys!.email!.tr, "786612630@qq.com", true, true, 'images/mine/icon_mine_supportStaff_openEmail.png',() async { + String url = 'mailto:smith@example.org?subject=News&body=New%20plugin' ; + _pushUrl(url); + }), + supportStaffItem(TranslationLoader.lanKeys!.businessCooperation!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_openEmail.png',() async { + const url = 'tel:15080825640'; + _pushUrl(url); + }), + supportStaffItem(TranslationLoader.lanKeys!.officialWebsite!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_jump.png',() async { + const url = 'https://blog.csdn.net/shulianghan'; + _pushUrl(url); + }), + supportStaffItem(TranslationLoader.lanKeys!.computerWebVersion!.tr, "www.starLock.com", false, true, '',(){ + }), + supportStaffItem(TranslationLoader.lanKeys!.hotelSystem!.tr, "www.starLock.com", false, true, '',(){ + + }), + supportStaffItem(TranslationLoader.lanKeys!.manualWebVersion!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_jump.png',(){ + + }), ], ), ); } + + _pushUrl(String url) async { + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch $url'; + } + } + + Widget supportStaffItem (String? leftTitel, String? rightTitle, bool? isHaveRightImg, bool? isHaveLine, String? rightImg, Function()? action,){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 80.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w),// , top: 20.w, bottom: 20.w + child: Row( + children: [ + SizedBox(width:20.w), + Expanded(child: Text(leftTitel!, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))), + SizedBox(width:20.w), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [Text(rightTitle!, textAlign: TextAlign.end, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500)) + ], + ), + SizedBox(width:5.w), + isHaveRightImg!?Image.asset(rightImg!, width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine!?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } + } diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart new file mode 100644 index 00000000..776db24b --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart @@ -0,0 +1,134 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class ValueAddedServicesBuyPage extends StatefulWidget { + const ValueAddedServicesBuyPage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesBuyPageState(); +} + +class _ValueAddedServicesBuyPageState extends State { + final data = ["1", "2", "3", "4", ]; + + @override + Widget build(BuildContext context) { + var type = ModalRoute.of(context)?.settings.arguments as int; + + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: _getNavTitle(type), haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + // height: 400.h, + color: Colors.white, + padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(TranslationLoader.lanKeys!.chooseAPackage!.tr, style: TextStyle(fontSize: 32.sp),), + ], + ) + ), + Expanded( + child: GridView.count( + padding: EdgeInsets.all(10.w), + crossAxisCount: 2, + mainAxisSpacing: 10.h, + crossAxisSpacing: 10.w, + childAspectRatio: 1 / 0.5, + children: data.map((title) => _buildItem(title)).toList(), + ), + ), + Container( + color: Colors.white, + padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(TranslationLoader.lanKeys!.modeOfPayment!.tr, style: TextStyle(fontSize: 32.sp),), + SizedBox(height: 20.h,), + Row( + children: [ + Image.asset('images/mine/icon_mine_valueAddedServices_zfb.png', width: 40.w, height: 40.w,), + SizedBox(width:20.w), + Expanded(child: Text(TranslationLoader.lanKeys!.alipay!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))), + SizedBox(width:5.w), + Image.asset('images/icon_round_selet.png', width: 40.w, height: 40.w,) + ], + ), + SizedBox(height: 20.h,), + ], + ), + ), + Container(height: 10.h, color: const Color(0xFFF5F5F5),), + Container( + height: 100.h, + color: Colors.white, + child: Row( + children: [ + SizedBox(width:20.w), + Expanded(child: Text("¥50", style: TextStyle(fontSize: 36.sp, color: AppColors.mainColor, fontWeight: FontWeight.w500))), + SizedBox(width:5.w), + Container( + width: 180.w, + height: 100.h, + color: AppColors.mainColor, + child: Center(child: Text(TranslationLoader.lanKeys!.goToPay!.tr, style: TextStyle(fontSize: 32.sp, color: Colors.white, fontWeight: FontWeight.w500))) + ) + ], + ), + ) + ], + ), + ); + } + + Container _buildItem(String title) { + return Container( + margin: EdgeInsets.all(10.w), + padding: EdgeInsets.only(left:30.w, top: 20.h, bottom: 20.h), + decoration: BoxDecoration( + color: title == "1" ? const Color(0xFFEDF1FD):Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.h)), + border: Border.all(width: 0.5.w, color: Colors.black) + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("500条", style: TextStyle(fontSize: 36.sp),), + SizedBox(height: 10.h), + Text("¥50 (¥0.08/条)", style: TextStyle(fontSize: 32.sp),), + ], + ), + ); + } + + String _getNavTitle(int type){ + String topTitle = ""; + switch(type){ + case 1: + topTitle = TranslationLoader.lanKeys!.buySMS!.tr; + break; + case 2: + topTitle = TranslationLoader.lanKeys!.buyMail!.tr; + break; + case 3: + topTitle = TranslationLoader.lanKeys!.buyRealNameAuthenticationTimes!.tr; + break; + case 4: + topTitle = TranslationLoader.lanKeys!.enablingAdvancedFeatures!.tr; + break; + } + return topTitle; + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart new file mode 100644 index 00000000..a14e1343 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart @@ -0,0 +1,32 @@ + +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'; +import 'valueAddedServicesBuyAndUseRecordManage_tabbar.dart'; + +class ValueAddedServicesBuyAndUseRecordManagePage extends StatefulWidget { + const ValueAddedServicesBuyAndUseRecordManagePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesBuyAndUseRecordManagePageState(); +} + +class _ValueAddedServicesBuyAndUseRecordManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.sendKey!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + ValueAddedServicesBuyAndUseRecordManageTabbar(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_tabbar.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_tabbar.dart new file mode 100644 index 00000000..138b45a9 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_tabbar.dart @@ -0,0 +1,89 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../valueAddedServicesBuyAndUseRecord_page.dart'; + +class ValueAddedServicesBuyAndUseRecordManageTabbar extends StatefulWidget { + var initialIndex=1; + + ValueAddedServicesBuyAndUseRecordManageTabbar({Key? key, required this.initialIndex}) : super(key: key); + + @override + State createState() => _ValueAddedServicesBuyAndUseRecordManageTabbarState(); +} + +class _ValueAddedServicesBuyAndUseRecordManageTabbarState extends State with SingleTickerProviderStateMixin { + late TabController _tabController; + + final List _itemTabs = [ + ItemView(title: "购买记录", type: "0"), + ItemView(title: "使用记录", type: "1") + // ItemView(title: TranslationLoader.lanKeys!.once!.tr, type: "2"), + // ItemView(title: TranslationLoader.lanKeys!.circulation!.tr, type: "3"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/4, + margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => ValueAddedServicesBuyAndUseRecordPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({required this.title, required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecord_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecord_page.dart new file mode 100644 index 00000000..1373c60f --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecord_page.dart @@ -0,0 +1,89 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; + +class ValueAddedServicesBuyAndUseRecordPage extends StatefulWidget { + final String type; + + const ValueAddedServicesBuyAndUseRecordPage({Key? key, required this.type}) : super(key: key); + + @override + State createState() => _ValueAddedServicesBuyAndUseRecordPageState(); +} + +class _ValueAddedServicesBuyAndUseRecordPageState extends State { + @override + Widget build(BuildContext context) { + return ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + if(index%2 == 0){ + return _dateItem("2023-06-29"); + }else{ + return _operatingRecordItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + } + } + ); + } + + Widget _dateItem(String lockDate){ + return Container( + height: 70.h, + color: AppColors.mainBackgroundColor, + padding: EdgeInsets.only(left:20.h, right: 20.h), + child: Row( + children: [ + Text(lockDate, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ); + } + + Widget _operatingRecordItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){ + return GestureDetector( + onTap: action, + child: Container( + height: 110.h, + padding: EdgeInsets.only(left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + SizedBox(height:10.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart new file mode 100644 index 00000000..be2a16a7 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart @@ -0,0 +1,262 @@ + +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/showBottomSheetTool.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +//高亮样式 +final TextStyle highStyle = TextStyle(color: const Color(0xFFEEDFA8), fontSize: 28.sp); + +//默认样式 +final TextStyle defaultStyle = TextStyle(color: Colors.black, fontSize: 28.sp); + +//预览样式封装-密码 +InlineSpan emailPasswardSpan = TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.hello!.tr},${TranslationLoader.lanKeys!.yourRoomIs!.tr}:', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.roomName!.tr}', style: highStyle), + TextSpan(text: ',${TranslationLoader.lanKeys!.theCodeToOpenTheDoorIs!.tr}:', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.password!.tr}}', style: highStyle), + TextSpan(text: '。${TranslationLoader.lanKeys!.periodValidity!.tr}:', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.periodValidity!.tr}}', style: highStyle), + TextSpan(text: '。${TranslationLoader.lanKeys!.templateTip1!.tr}。', style: defaultStyle), +]); + +//预览样式封装-密码提示 +InlineSpan emailPasswardTipSpan = TextSpan(children: [ + TextSpan(text: TranslationLoader.lanKeys!.templateTip4!.tr, style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.roomName!.tr}}', style: highStyle), + TextSpan(text: '、', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.password!.tr}}', style: highStyle), + TextSpan(text: TranslationLoader.lanKeys!.and!.tr, style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.periodValidity!.tr}}', style: highStyle), + TextSpan(text: TranslationLoader.lanKeys!.willBeReplacedWithTheActualValue!.tr, style: defaultStyle), +]); + +String emaiPasswardStr = "${TranslationLoader.lanKeys!.hello!.tr},${TranslationLoader.lanKeys!.yourRoomIs!.tr}:{${TranslationLoader.lanKeys!.roomName!.tr}},${TranslationLoader.lanKeys!.theCodeToOpenTheDoorIs!.tr}:{${TranslationLoader.lanKeys!.password!.tr}}。${TranslationLoader.lanKeys!.periodValidity!.tr}:{${TranslationLoader.lanKeys!.periodValidity!.tr}}。${TranslationLoader.lanKeys!.templateTip1!.tr}"; + +//预览样式封装-电子钥匙 +InlineSpan emailElectronicKeySpan = TextSpan(children: [ + TextSpan(text: TranslationLoader.lanKeys!.templateTip2!.tr, style: defaultStyle), + TextSpan(text: 'https://abc.com/bcd', style: highStyle) +]); + +//预览样式封装-电子钥匙提示 +InlineSpan emailElectronicKeyTipSpan = TextSpan(children: [ + TextSpan(text: TranslationLoader.lanKeys!.templateTip4!.tr, style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.downloadLink!.tr}', style: highStyle), + TextSpan(text: TranslationLoader.lanKeys!.willBeReplacedWithTheActualValue!.tr, style: defaultStyle), +]); + +String emailElectronicKeyStr = "${TranslationLoader.lanKeys!.templateTip2!.tr}\n{${TranslationLoader.lanKeys!.downloadLink!.tr}}"; + +class ValueAddedServicesAddEmailTemplatePage extends StatefulWidget { + const ValueAddedServicesAddEmailTemplatePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesAddEmailTemplatePageState(); +} + +class _ValueAddedServicesAddEmailTemplatePageState extends State { + final _templateOneTf = TextEditingController(); + final _templateNameTf = TextEditingController(); + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + _templateOneTf.text = emailElectronicKeyStr; + + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.customMailTemplate!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + children: [ + _buildEditTopInfo(), + SizedBox(height: 10.h,), + _buildEditTemplate(), + SizedBox(height: 10.h,), + _buildpreview(), + SizedBox(height: 42.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.save!.tr, + borderRadius: 10.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage); + } + ), + ], + )); + } + Widget _buildEditTopInfo() { + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(_templateNameTf, TranslationLoader.lanKeys!.pleaseEnter!.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys!.type!.tr, rightTitle:TranslationLoader.lanKeys!.password!.tr, isHaveLine: false, action:(){ + _showSeletTemplateType(); + }), + ], + ); + } + + Widget _buildEditTemplate() { + return Container( + color: Colors.white, + child: Column( + children: [ + Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 25.h, bottom: 25.h, right: 25.w), + child: Text(TranslationLoader.lanKeys!.templateContent!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w600), + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 25.h), + height: 100, + child: TextField( + maxLines:8, + // maxLength:1000, + textAlign: TextAlign.start, + controller: _templateOneTf, + style: TextStyle(color: Colors.black,fontSize: 28.sp,), + decoration: InputDecoration( + contentPadding: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w, bottom: 20.h), + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 0.5, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 1, + ), + ), + ), + ), + ), + Container( + padding: EdgeInsets.only(top:20.h, left: 20.w, right: 20.w, bottom: 20.h), + margin: EdgeInsets.only( left: 15.w, right: 15.w, bottom: 15.h), + decoration: BoxDecoration( + color: const Color(0xFFFbF9EC), + borderRadius: BorderRadius.circular(10.h)), + child:RichText(text: emailElectronicKeyTipSpan) , + ) + ], + ), + ); + } + + Widget _buildpreview() { + return Column( + // mainAxisAlignment: MainAxisAlignment.start, + children: [ + Container( + color: Colors.white, + margin: EdgeInsets.only(bottom: 20.h), + child:Column( + children: [ + Column( + children: [ + Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 25.h, bottom: 25.h, right: 25.w), + child: Text(TranslationLoader.lanKeys!.preview!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w600), + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 20.h), + padding: EdgeInsets.only(left: 20.w, top: 20.h, right: 20.w, bottom: 20.h), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(10.h), + ), + child: RichText(text: emailElectronicKeySpan), + ) + ], + ), + ], + ) + ) + ] + ); + } + + Widget getTFWidget(TextEditingController tfController, String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + controller: tfController, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + ], + ), + ); + } + + void _showSeletTemplateType(){ + var list = [TranslationLoader.lanKeys!.electronicKey!.tr, TranslationLoader.lanKeys!.password!.tr]; + ShowBottomSheetTool().showSingleRowPicker( + //上下文 + context, + //默认的索引 + normalIndex: 0, + title: TranslationLoader.lanKeys!.type!.tr, + cancelTitle: TranslationLoader.lanKeys!.cancel!.tr, + sureTitle: TranslationLoader.lanKeys!.sure!.tr, + //要显示的列表 + //可自定义数据适配器 + //adapter: PickerAdapter(), + data: list, + //选择事件的回调 + clickCallBack: (int index, var str) { + + } + ); + } + +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart new file mode 100644 index 00000000..f152c051 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart @@ -0,0 +1,139 @@ + +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'; +import '../valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart'; + +class ValueAddedServicesListEmailTemplatePage extends StatefulWidget { + const ValueAddedServicesListEmailTemplatePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesListEmailTemplatePageState(); +} + +class _ValueAddedServicesListEmailTemplatePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.customMailTemplate!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + _topTipWidget(), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.creatingANewTemplate!.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesAddEmailTemplatePage); + } + ), + ], + ), + ); + } + + Widget _topTipWidget(){ + return Container( + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + padding: EdgeInsets.only(top:20.h, left: 20.w, right: 20.w, bottom: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: Column( + children: [ + Text(TranslationLoader.lanKeys!.customTemplatesTip!.tr), + SizedBox(height: 15.h,), + Container( + padding: EdgeInsets.only(top:15.h, left: 15.w, right: 15.w, bottom: 15.h), + decoration: BoxDecoration( + color: const Color(0xFFFbF9EC), + borderRadius: BorderRadius.circular(10.h)), + child:Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width:1.sw - 15.w*2 - 40.w*2 - 140.w, + // margin: EdgeInsets.only(top:15.h, left: 15.w, right: 15.w, bottom: 15.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("${TranslationLoader.lanKeys!.currentState!.tr}:${TranslationLoader.lanKeys!.onTrial!.tr}"), + Text(TranslationLoader.lanKeys!.unHaveOpenedTip2!.tr) + ], + ), + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesHighFunctionPage); + }, + child: Container( + width: 140.w, + height: 70.h, + decoration: BoxDecoration( + color: const Color(0xFFCAB68D), + borderRadius: BorderRadius.circular(35.h) + ), + child: Center(child: Text(TranslationLoader.lanKeys!.goToTheOpen!.tr, textAlign: TextAlign.center, style: TextStyle(color: Colors.white))) + ), + ), + ], + ) , + ) + ], + ) + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _valueAddedServicesListSMSTemplateItem('images/icon_lock.png', "张三", (){ + // Navigator.pushNamed(context, Routers.valueAddedServicesAddSMSTemplatePage); + }); + } + ); + } + + Widget _valueAddedServicesListSMSTemplateItem(String title, String content, Function() action){ + return GestureDetector( + onTap: action, + child: Container( + // height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left:30.h, top: 30.h, bottom: 20.h), + child: Text("101", style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 25.h), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(10.h), + ), + child: Padding( + padding: EdgeInsets.only(left: 20.w, top: 20.h, right: 20.w, bottom: 20.h), + child: RichText(text: emailElectronicKeySpan)), + ), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart new file mode 100644 index 00000000..74ab8adc --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart @@ -0,0 +1,240 @@ + +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 ValueAddedServicesHighFunctionPage extends StatefulWidget { + const ValueAddedServicesHighFunctionPage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesHighFunctionPageState(); +} + +class _ValueAddedServicesHighFunctionPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.advancedFunction!.tr, haveBack:true, iconColor: Colors.black, titleColor: Colors.black, backgroundColor: Colors.white), + body:Column( + children: [ + Expanded( + child: ListView( + children: [ + _topShowState(), + _benefitsContent(), + Container(height: 20.h, color: const Color(0xFFF5F5F5)), + _buyNotes(), + ], + ), + ), + _bottomBtn(), + ], + ) + ); + } + + Widget _topShowState(){ + return Container( + height: 150.h, + margin: EdgeInsets.only(left: 30.w, top: 20.h, right: 30.w), + padding: EdgeInsets.only(left: 30.w), + decoration: BoxDecoration( + color: const Color(0xFFDFE6ED), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.h), + topRight: Radius.circular(30.h), + ), + ), + child: Stack( + alignment: AlignmentDirectional.centerStart, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("${TranslationLoader.lanKeys!.currentState!.tr}:${TranslationLoader.lanKeys!.haveNotOpened!.tr}", style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600),), + SizedBox(height: 5.h), + Text("${TranslationLoader.lanKeys!.periodValidity!.tr}:2023-07-29", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600),), + ],// + ), + ], + ), + Positioned( + bottom: 0.h, + right: 0.w, + child: Container( + width: 120.w, + height: 60.h, + decoration: BoxDecoration( + color: const Color(0xFFBDCDDF), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.h), + bottomLeft: Radius.circular(30.h), + ), + ), + child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr)), + ) + ), + ], + ), + ); + } + + Widget _benefitsContent(){ + return Column( + children: [ + Container( + // color: Colors.red, + margin: EdgeInsets.only(left: 30.w, top: 50.h, right: 30.w), + padding: EdgeInsets.only(left: 30.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset('images/mine/icon_mine_highFunctionContent_left.png', width: 40.w, height: 40.w), + SizedBox(width: 10.w,), + Expanded( + child: Text(TranslationLoader.lanKeys!.advancedFeaturesAndBenefitsContent!.tr, textAlign: TextAlign.center,style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600)), + ), + SizedBox(width: 10.w,), + Image.asset('images/mine/icon_mine_highFunctionContent_right.png', width: 40.w, height: 40.w) + ] + ), + ), + SizedBox(height: 10.h,), + Container( + height: 1.sw, + child: GridView.count( + padding: EdgeInsets.all(10.h), + crossAxisCount: 3, + mainAxisSpacing: 10.h, + crossAxisSpacing: 10.h, + // childAspectRatio: 1 / 0.5, + physics: const NeverScrollableScrollPhysics(), + children: [ + _buildItem("images/mine/icon_mine_highFunctionContent_dxmb.png", TranslationLoader.lanKeys!.smsTemplate!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_yjmb.png", TranslationLoader.lanKeys!.emailTemplate!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_sqgly.png", TranslationLoader.lanKeys!.authorizedAdmin!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_sfz.png", TranslationLoader.lanKeys!.lockGroup!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_bjft.png", TranslationLoader.lanKeys!.sendGroupKey!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_bjft.png", TranslationLoader.lanKeys!.markedHouseState!.tr), + _buildItem("images/mine/icon_mine_highFunctionContent_fkgj.png", TranslationLoader.lanKeys!.cardIssuingtool!.tr), + ], + ), + ), + ], + ); + } + + Container _buildItem(String img, String title) { + return Container( + margin: EdgeInsets.all(10.h), + padding: EdgeInsets.only(top: 30.h), + decoration: BoxDecoration( + color: const Color(0xFFF7F7FA), + borderRadius: BorderRadius.all(Radius.circular(20.h)), + // border: Border.all(width: 0.5.w, color: Colors.black) + ), + child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 90.w, + height: 90.w, + child: Image.asset(img) + ), + SizedBox(height: 10.h,), + Column( + children: [ + Text(title, style: TextStyle(fontSize: 32.sp), textAlign: TextAlign.center,), + ], + ), + ], + ), + ); + } + + Widget _buyNotes(){ + return Column( + children: [ + Container( + // color: Colors.red, + margin: EdgeInsets.only(left: 30.w, top: 50.h, right: 30.w), + padding: EdgeInsets.only(left: 30.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset('images/mine/icon_mine_highFunctionContent_left.png', width: 40.w, height: 40.w), + SizedBox(width: 10.w,), + Expanded(child: Text(TranslationLoader.lanKeys!.titleForBuyingAdvancedFeatures!.tr, textAlign: TextAlign.center, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600))), + SizedBox(width: 10.w,), + Image.asset('images/mine/icon_mine_highFunctionContent_right.png', width: 40.w, height: 40.w) + ] + ), + ), + SizedBox(height: 20.h), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(10.h), + ), + child: Padding( + padding: EdgeInsets.only(left: 30.w, top: 30.h, right: 30.w, bottom: 30.h), + child: Text(TranslationLoader.lanKeys!.tipsForBuyingAdvancedFeatures!.tr)), + ), + SizedBox(height: 20.h), + ], + ); + } + + Widget _bottomBtn(){ + return Container( + margin: EdgeInsets.only(top: 30.h, bottom: 30.h), + child: Row( + children: [ + Visibility( + child: Container( + height: 100.h, + width: (1.sw-20.w*3)/2, + margin: EdgeInsets.only(left: 20.w), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(width: 3.w, color: const Color(0xFF000635)), + borderRadius: BorderRadius.circular(50.h), + ), + child: Center(child: Text(TranslationLoader.lanKeys!.freeTrial!.tr, style: TextStyle(fontSize: 34.sp),)), + ), + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: 4); + }, + child: Container( + height: 100.h, + width: (1.sw-20.w*3)/2, + // width: 1.sw-20.w*2, + margin: EdgeInsets.only(left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: const Color(0xFF424658), + border: Border.all(width: 1, color: AppColors.mainColor), + borderRadius: BorderRadius.circular(50.h), + ), + child: Center(child: Text(TranslationLoader.lanKeys!.openNow!.tr, style: TextStyle(fontSize: 34.sp, color: const Color(0xFFF9CEAC)),)), + ), + ), + ], + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart new file mode 100644 index 00000000..47f43ad3 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart @@ -0,0 +1,93 @@ + +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 ValueAddedServicesListPage extends StatefulWidget { + const ValueAddedServicesListPage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesPageListState(); +} + +class _ValueAddedServicesPageListState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.valueAddedServices!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + children: [ + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_note.png'), TranslationLoader.lanKeys!.note!.tr, (){ + Navigator.pushNamed(context, Routers.valueAddedServicesNoteAndEmailDetailPage, arguments: 1); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_email.png'), TranslationLoader.lanKeys!.mail!.tr, (){ + Navigator.pushNamed(context, Routers.valueAddedServicesNoteAndEmailDetailPage, arguments: 2); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_realName.png'), TranslationLoader.lanKeys!.realNameAuthentication!.tr, (){ + Navigator.pushNamed(context, Routers.valueAddedServicesRealNamePage); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'), TranslationLoader.lanKeys!.advancedFunction!.tr, (){ + Navigator.pushNamed(context, Routers.valueAddedServicesHighFunctionPage); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_push.png'), TranslationLoader.lanKeys!.pushMessage!.tr, (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_checkIn.png'), TranslationLoader.lanKeys!.checkingIn!.tr, (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }), + _valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_storage.png'), TranslationLoader.lanKeys!.recordsRetention!.tr, (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }), + _valueAddedServicesItem(Text("A", style: TextStyle(color: Colors.white, fontSize: 38.sp, fontWeight: FontWeight.w600),), "Amazon Alexa", (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }), + _valueAddedServicesItem(Text("G", style: TextStyle(color: Colors.white, fontSize: 38.sp, fontWeight: FontWeight.w600),), "Google Home", (){ + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }), + ], + ), + ); + } + + Widget _valueAddedServicesItem(Widget widget, String gateWayName, Function() action){ + return GestureDetector( + onTap: action, + child: Container( + // height: 100.h, + margin: EdgeInsets.only(top: 20.h, right: 20.w, left: 20.w), + padding: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.h, bottom: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + Container( + width: 70.w, + height: 70.w, + padding: EdgeInsets.all(12.h), + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(40.w) + ), + child: Center(child: widget), + ), + SizedBox(width: 20.w,), + Expanded( + child: Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600), ), + ), + SizedBox(width:20.h), + Image.asset('images/icon_right.png', width: 50.w, height: 50.w,) + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart new file mode 100644 index 00000000..fbf671d6 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart @@ -0,0 +1,128 @@ + +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/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class ValueAddedServicesNoteAndEmailDetailPage extends StatefulWidget { + const ValueAddedServicesNoteAndEmailDetailPage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesNoteAndEmailDetailPageState(); +} + +class _ValueAddedServicesNoteAndEmailDetailPageState extends State { + + @override + Widget build(BuildContext context) { + var type = ModalRoute.of(context)?.settings.arguments as int; + + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: type == 1?TranslationLoader.lanKeys!.note!.tr:TranslationLoader.lanKeys!.mail!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + // color: Colors.grey.shade300, + padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h), + child: Text(type == 1?TranslationLoader.lanKeys!.smsBuyTip!.tr:TranslationLoader.lanKeys!.emailBuyTip!.tr) + ), + middleWidget(type), + ], + ), + ); + } + + Widget middleWidget(int type){ + return Container( + width: 1.sw, + // height: 100, + // color: Colors.grey.shade300, + margin: EdgeInsets.all(10.h), + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/mine/icon_mine_valueAddedServices_noteTop.png"), + fit: BoxFit.cover + ) + ), + child: Column( + children: [ + // SizedBox(height:10), + Container( + margin: const EdgeInsets.only(top:15, bottom: 15, left: 30, right: 30), + child: Row( + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0", style: TextStyle(fontSize: 32.sp),)), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: type); + }, + child: Container( + width: 50, + height: 25, + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(25) + ), + child: Center(child: Text(TranslationLoader.lanKeys!.buy!.tr, style: const TextStyle(color: Colors.white))) + ), + ), + ], + ), + ), + // SizedBox(height:20.h), + Container( + margin: const EdgeInsets.only(top:10, bottom: 10), + // color: Colors.red, + // height: 100.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GestureDetector( + onTap: (){ + if(type == 1){ + Navigator.pushNamed(context, Routers.valueAddedServicesListSMSTemplatePage); + }else{ + Navigator.pushNamed(context, Routers.valueAddedServicesListEmailTemplatePage); + } + }, + child: Container( + // width:100, + // padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset("images/mine/icon_mine_valueAddedServices_buyIcon.png", width: 50.w, height: 50.w,), + Text((type == 1)?TranslationLoader.lanKeys!.customSMSTemplate!.tr:TranslationLoader.lanKeys!.customMailTemplate!.tr, style: TextStyle(fontSize: 32.sp),), + ], + ), + ), + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesBuyAndUseRecordManagePage); + }, + child: Container( + width:90, + // height: 70.h, + margin: const EdgeInsets.only(left: 30, right: 30), + padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5), + // color: Colors.red, + child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr, style: TextStyle(color: Colors.black, fontSize: 32.sp))) + ), + ), + ], + ), + ), + ] + ) + ); + } + +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart new file mode 100644 index 00000000..9e5cf35a --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart @@ -0,0 +1,150 @@ + +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/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class ValueAddedServicesRealNamePage extends StatefulWidget { + const ValueAddedServicesRealNamePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesRealNamePageState(); +} + +class _ValueAddedServicesRealNamePageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.realNameAuthentication!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + // color: Colors.grey.shade300, + padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h), + child: Text(TranslationLoader.lanKeys!.buyRealNameTip!.tr) + ), + middleWidget(), + bottomWidget() + ], + ), + ); + } + + Widget middleWidget(){ + return Container( + width: 1.sw, + // height: 100, + // color: Colors.grey.shade300, + margin: EdgeInsets.all(10.h), + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/mine/icon_mine_valueAddedServices_noteTop.png"), + fit: BoxFit.cover + ) + ), + child: Column( + children: [ + // SizedBox(height:10), + Container( + margin: const EdgeInsets.only(top:15, bottom: 15, left: 30, right: 30), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0", style: TextStyle(fontSize: 32.sp),) + ], + ), + ), + // SizedBox(height:20.h), + Container( + margin: const EdgeInsets.only(top:10, bottom: 10), + // color: Colors.red, + // height: 100.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + GestureDetector( + onTap: (){ + + }, + child: Container( + width: 200.w, + // height: 70.h, + // color: Colors.red, + child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr, style: TextStyle(color: Colors.black, fontSize: 32.sp))) + ), + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: 3); + }, + child: Container( + width: 200.w, + // height: 70.h, + // color: Colors.red, + child: Center(child: Text(TranslationLoader.lanKeys!.buy!.tr, style: TextStyle(color: AppColors.mainColor, fontSize: 32.sp))) + ), + ), + ], + ), + ), + ] + ) + ); + } + + Widget bottomWidget(){ + return Container( + width: 1.sw, + color: Colors.white, + margin: EdgeInsets.all(20.h), + child: Column( + children: [ + Column( + children: [ + Container( + padding: EdgeInsets.only(top:20.h, bottom: 20.h, left: 30.w), + child: Text(TranslationLoader.lanKeys!.buyRealNameSeletYouWantBuyTip!.tr, style: TextStyle(fontSize: 32.sp),) + ), + ], + ), + CommonItem(leftTitel:TranslationLoader.lanKeys!.forTheFirstTime!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys!.onceDay!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys!.weekOnce!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys!.monthOnce!.tr, rightTitle:"", allHeight:80.h, isHaveLine: false, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + ], + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart new file mode 100644 index 00000000..79648c9c --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart @@ -0,0 +1,344 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; + +import '../../../../tools/commonItem.dart'; +import '../../../../tools/showBottomSheetTool.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +//高亮样式 +final TextStyle highStyle = TextStyle(color: const Color(0xFFEEDFA8), fontSize: 28.sp); + +//默认样式 +final TextStyle defaultStyle = TextStyle(color: Colors.black, fontSize: 28.sp); + +//预览样式封装-密码 +late InlineSpan passwardSpan = TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.hello!.tr},\n${TranslationLoader.lanKeys!.yourRoomIs!.tr}:', style: defaultStyle), + TextSpan(text: '201', style: highStyle), + TextSpan(text: ' ${TranslationLoader.lanKeys!.theCodeToOpenTheDoorIs!.tr}: ', style: defaultStyle), + TextSpan(text: '332211\n', style: highStyle), + TextSpan(text: '${TranslationLoader.lanKeys!.periodValidity!.tr}: ', style: defaultStyle), + TextSpan(text: '2021.12.11 12:00 - 2021.12.12 13:00。\n', style: highStyle), + TextSpan(text: TranslationLoader.lanKeys!.templateTip1!.tr, style: defaultStyle), +]); + +//预览样式封装-密码 +late InlineSpan electronicKeySpan = TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.hello!.tr},\n${TranslationLoader.lanKeys!.templateTip2!.tr}', style: defaultStyle), + TextSpan(text: 'https://abc.com/bcd\n', style: highStyle), + TextSpan(text: '${TranslationLoader.lanKeys!.templateTip3!.tr}\n', style: defaultStyle), + TextSpan(text: 'https://abc.com/bcd', style: highStyle), +]); + +class ValueAddedServicesAddSMSTemplatePage extends StatefulWidget { + const ValueAddedServicesAddSMSTemplatePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesAddSMSTemplatePageState(); +} + +class _ValueAddedServicesAddSMSTemplatePageState extends State { + + + final _templateOneTf = TextEditingController(); + final _templateTwoTf = TextEditingController(); + final _templateNameTf = TextEditingController(); + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + _templateOneTf.text = TranslationLoader.lanKeys!.hello!.tr; + _templateTwoTf.text = TranslationLoader.lanKeys!.templateTip1!.tr; + + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.customSMSTemplate!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + children: [ + _buildEditTopInfo(), + SizedBox(height: 10.h,), + _buildEditTemplate(), + SizedBox(height: 10.h,), + _buildpreview(), + SizedBox(height: 42.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.save!.tr, + borderRadius: 10.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage); + } + ), + ], + )); + } + Widget _buildEditTopInfo() { + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(_templateNameTf, TranslationLoader.lanKeys!.pleaseEnter!.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys!.type!.tr, rightTitle:TranslationLoader.lanKeys!.password!.tr, isHaveLine: false, action:(){ + _showSeletTemplateType(); + }), + ], + ); + } + + Widget _buildEditTemplate() { + return Container( + color: Colors.white, + child: Column( + children: [ + Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 25.h, bottom: 25.h, right: 25.w), + child: Text(TranslationLoader.lanKeys!.templateContent!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w600), + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 25.h), + height: 100, + child: TextField( + maxLines:8, + // maxLength:1000, + textAlign: TextAlign.start, + controller: _templateOneTf, + style: TextStyle(color: Colors.black,fontSize: 28.sp,), + decoration: InputDecoration( + contentPadding: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w, bottom: 20.h), + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 0.5, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 1, + ), + ), + ), + ), + ), + Visibility( + visible: true, + child: Column( + children: [ + Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 10.h, right: 25.w), + child: RichText(text: TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.yourRoomIs!.tr}: ', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.roomName!.tr}}', style: highStyle), + TextSpan(text: ' ${TranslationLoader.lanKeys!.theCodeToOpenTheDoorIs!.tr}: ', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.password!.tr}}', style: highStyle), + ]))), + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 10.h), + child: RichText(text: TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.periodValidity!.tr}: ', style: defaultStyle), + TextSpan(text: '{${TranslationLoader.lanKeys!.periodValidity!.tr}}', style: highStyle), + ])) + ), + SizedBox(width: 10.w,), + GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ], + ), + ], + ), + ), + Visibility( + visible: false, + child: Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 10.h, right: 25.w), + child: RichText(text: TextSpan(children: [ + TextSpan(text: '${TranslationLoader.lanKeys!.templateTip2!.tr}\n', style: defaultStyle), + TextSpan(text: 'https://abc.com/bcd\n', style: highStyle), + TextSpan(text: '${TranslationLoader.lanKeys!.templateTip3!.tr}\n', style: defaultStyle), + TextSpan(text: 'https://abc.com/bcd\n', style: highStyle), + ])) + ), + ], + ), + ), + SizedBox(height: 10.h), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 25.h), + height: 100, + child: Stack( + alignment: Alignment.bottomRight, + children: [ + TextField( + maxLines:8, + // maxLength:1000, + textAlign: TextAlign.start, + controller: _templateTwoTf, + style: TextStyle(color: Colors.black,fontSize: 28.sp,), + decoration: InputDecoration( + contentPadding: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w, bottom: 20.h), + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 0.5, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 1, + ), + ), + ), + ) + ], + ), + ), + ], + ), + ); + } + + Widget _buildpreview() { + return Column( + // mainAxisAlignment: MainAxisAlignment.start, + children: [ + Container( + color: Colors.white, + margin: EdgeInsets.only(bottom: 20.h), + child:Column( + children: [ + Column( + children: [ + Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 25.h, bottom: 25.h, right: 25.w), + child: Text(TranslationLoader.lanKeys!.preview!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w600), + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(10.h), + ), + child: Padding( + padding: EdgeInsets.only(left: 20.w, top: 20.h, right: 20.w, bottom: 20.h), + child: RichText(text: passwardSpan)), + ), + Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 25.w, top: 25.h, bottom: 25.h, right: 25.w), + child: Text('${TranslationLoader.lanKeys!.expectedNotoCount!.tr}:2', style: TextStyle(color: Colors.grey, fontSize: 26.sp,), + ), + ), + ], + ), + ], + ), + ], + ) + ) + ] + ); + } + + Widget getTFWidget(TextEditingController tfController, String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + controller: tfController, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + ], + ), + ); + } + + void _showSeletTemplateType(){ + var list = [TranslationLoader.lanKeys!.electronicKey!.tr, TranslationLoader.lanKeys!.password!.tr]; + ShowBottomSheetTool().showSingleRowPicker( + //上下文 + context, + //默认的索引 + normalIndex: 0, + title: TranslationLoader.lanKeys!.type!.tr, + cancelTitle: TranslationLoader.lanKeys!.cancel!.tr, + sureTitle: TranslationLoader.lanKeys!.sure!.tr, + //要显示的列表 + //可自定义数据适配器 + //adapter: PickerAdapter(), + data: list, + //选择事件的回调 + clickCallBack: (int index, var str) { + + } + ); + } + +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart new file mode 100644 index 00000000..e58ba021 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart @@ -0,0 +1,139 @@ + +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'; +import '../valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart'; + +class ValueAddedServicesListSMSTemplatePage extends StatefulWidget { + const ValueAddedServicesListSMSTemplatePage({Key? key}) : super(key: key); + + @override + State createState() => _ValueAddedServicesListSMSTemplatePageState(); +} + +class _ValueAddedServicesListSMSTemplatePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.customSMSTemplate!.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + _topTipWidget(), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys!.creatingANewTemplate!.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesAddSMSTemplatePage); + } + ), + ], + ), + ); + } + + Widget _topTipWidget(){ + return Container( + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + padding: EdgeInsets.only(top:20.h, left: 20.w, right: 20.w, bottom: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: Column( + children: [ + Text(TranslationLoader.lanKeys!.customTemplatesTip!.tr), + SizedBox(height: 15.h,), + Container( + padding: EdgeInsets.only(top:15.h, left: 15.w, right: 15.w, bottom: 15.h), + decoration: BoxDecoration( + color: const Color(0xFFFbF9EC), + borderRadius: BorderRadius.circular(10.h)), + child:Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width:1.sw - 15.w*2 - 40.w*2 - 140.w, + // margin: EdgeInsets.only(top:15.h, left: 15.w, right: 15.w, bottom: 15.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("${TranslationLoader.lanKeys!.currentState!.tr}:${TranslationLoader.lanKeys!.onTrial!.tr}"), + Text(TranslationLoader.lanKeys!.unHaveOpenedTip2!.tr) + ], + ), + ), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.valueAddedServicesHighFunctionPage); + }, + child: Container( + width: 140.w, + height: 70.h, + decoration: BoxDecoration( + color: const Color(0xFFCAB68D), + borderRadius: BorderRadius.circular(35.h) + ), + child: Center(child: Text(TranslationLoader.lanKeys!.goToTheOpen!.tr, textAlign: TextAlign.center, style: TextStyle(color: Colors.white))) + ), + ), + ], + ) , + ) + ], + ) + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _valueAddedServicesListSMSTemplateItem('images/icon_lock.png', "张三", (){ + // Navigator.pushNamed(context, Routers.valueAddedServicesAddSMSTemplatePage); + }); + } + ); + } + + Widget _valueAddedServicesListSMSTemplateItem(String title, String content, Function() action){ + return GestureDetector( + onTap: action, + child: Container( + // height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left:30.h, top: 30.h, bottom: 20.h), + child: Text("101", style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ), + Container( + margin: EdgeInsets.only(left: 25.w, right: 25.w, bottom: 25.h), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(10.h), + ), + child: Padding( + padding: EdgeInsets.only(left: 20.w, top: 20.h, right: 20.w, bottom: 20.h), + child: RichText(text: electronicKeySpan)), + ), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart deleted file mode 100644 index 1cfe01b2..00000000 --- a/star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart +++ /dev/null @@ -1,29 +0,0 @@ - -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/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart index 4ce1d017..25ba528f 100644 --- a/star_lock/lib/translations/lanKeyEntity.dart +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -294,7 +294,79 @@ class LanKeyEntity { this.iphone, this.email, this.countryAndRegion, - this.selet + this.selet, + + this.businessCooperation, + this.officialWebsite, + this.computerWebVersion, + this.hotelSystem, + this.manualWebVersion, + this.introduce, + + this.note, + this.mail, + this.advancedFunction, + this.pushMessage, + this.recordsRetention, + + this.smsBuyTip, + this.emailBuyTip, + this.currentRemainingQuantity, + this.buy, + this.customSMSTemplate, + this.customMailTemplate, + this.record, + + this.buyRealNameTip, + this.buyRealNameSeletYouWantBuyTip, + this.forTheFirstTime, + this.onceDay, + this.weekOnce, + this.monthOnce, + + this.currentState, + this.onTrial, + this.haveNotOpened, + this.advancedFeaturesAndBenefitsContent, + this.smsTemplate, + this.emailTemplate, + this.cardIssuingtool, + this.titleForBuyingAdvancedFeatures, + this.tipsForBuyingAdvancedFeatures, + this.freeTrial, + this.openNow, + + this.buySMS, + this.buyMail, + this.buyRealNameAuthenticationTimes, + this.enablingAdvancedFeatures, + this.chooseAPackage, + this.modeOfPayment, + this.alipay, + this.goToPay, + + this.customTemplatesTip, + this.haveOpened, + this.unHaveOpenedTip1, + this.unHaveOpenedTip2, + this.freeTrialKeywords, + this.goToTheOpen, + this.creatingANewTemplate, + this.type, + this.templateContent, + this.preview, + this.hello, + this.yourRoomIs, + this.roomName, + this.theCodeToOpenTheDoorIs, + this.templateTip1, + this.templateTip2, + this.templateTip3, + this.expectedNotoCount, + this.templateTip4, + this.and, + this.willBeReplacedWithTheActualValue, + this.downloadLink }); LanKeyEntity.fromJson(dynamic json) { @@ -596,6 +668,78 @@ class LanKeyEntity { email = json['email']; countryAndRegion = json['countryAndRegion']; selet = json['selet']; + + businessCooperation = json['businessCooperation']; + officialWebsite = json['officialWebsite']; + computerWebVersion = json['computerWebVersion']; + hotelSystem = json['hotelSystem']; + manualWebVersion = json['manualWebVersion']; + introduce = json['introduce']; + + note = json['note']; + mail = json['mail']; + advancedFunction = json['advancedFunction']; + pushMessage = json['pushMessage']; + recordsRetention = json['recordsRetention']; + + smsBuyTip = json['smsBuyTip']; + emailBuyTip = json['emailBuyTip']; + currentRemainingQuantity = json['currentRemainingQuantity']; + buy = json['buy']; + customSMSTemplate = json['customSMSTemplate']; + customMailTemplate = json['customMailTemplate']; + record = json['record']; + + buyRealNameTip = json['buyRealNameTip']; + buyRealNameSeletYouWantBuyTip = json['buyRealNameSeletYouWantBuyTip']; + forTheFirstTime = json['forTheFirstTime']; + onceDay = json['onceDay']; + weekOnce = json['weekOnce']; + monthOnce = json['monthOnce']; + + currentState = json['currentState']; + onTrial = json['onTrial']; + haveNotOpened = json['haveNotOpened']; + advancedFeaturesAndBenefitsContent = json['advancedFeaturesAndBenefitsContent']; + smsTemplate = json['smsTemplate']; + emailTemplate = json['emailTemplate']; + cardIssuingtool = json['cardIssuingtool']; + titleForBuyingAdvancedFeatures = json['titleForBuyingAdvancedFeatures']; + tipsForBuyingAdvancedFeatures = json['tipsForBuyingAdvancedFeatures']; + freeTrial = json['freeTrial']; + openNow = json['openNow']; + + buySMS = json['buySMS']; + buyMail = json['buyMail']; + buyRealNameAuthenticationTimes = json['buyRealNameAuthenticationTimes']; + enablingAdvancedFeatures = json['enablingAdvancedFeatures']; + chooseAPackage = json['chooseAPackage']; + modeOfPayment = json['modeOfPayment']; + alipay = json['alipay']; + goToPay = json['goToPay']; + + customTemplatesTip = json['customTemplatesTip']; + haveOpened = json['haveOpened']; + unHaveOpenedTip1 = json['unHaveOpenedTip1']; + unHaveOpenedTip2 = json['unHaveOpenedTip2']; + freeTrialKeywords = json['freeTrialKeywords']; + goToTheOpen = json['goToTheOpen']; + creatingANewTemplate = json['creatingANewTemplate']; + type = json['type']; + templateContent = json['templateContent']; + preview = json['preview']; + hello = json['hello']; + yourRoomIs = json['yourRoomIs']; + roomName = json['roomName']; + theCodeToOpenTheDoorIs = json['theCodeToOpenTheDoorIs']; + templateTip1 = json['templateTip1']; + templateTip2 = json['templateTip2']; + templateTip3 = json['templateTip3']; + expectedNotoCount = json['expectedNotoCount']; + templateTip4 = json['templateTip4']; + and = json['and']; + willBeReplacedWithTheActualValue = json['willBeReplacedWithTheActualValue']; + downloadLink = json['downloadLink']; } String? starLock; String? clickUnlockAndHoldDownClose; @@ -893,6 +1037,78 @@ class LanKeyEntity { String? countryAndRegion; String? selet; + String? businessCooperation; + String? officialWebsite; + String? computerWebVersion; + String? hotelSystem; + String? manualWebVersion; + String? introduce; + + String? note; + String? mail; + String? advancedFunction; + String? pushMessage; + String? recordsRetention; + + String? smsBuyTip; + String? emailBuyTip; + String? currentRemainingQuantity; + String? buy; + String? customSMSTemplate; + String? customMailTemplate; + String? record; + + String? buyRealNameTip; + String? buyRealNameSeletYouWantBuyTip; + String? forTheFirstTime; + String? onceDay; + String? weekOnce; + String? monthOnce; + + String? currentState; + String? onTrial; + String? haveNotOpened; + String? advancedFeaturesAndBenefitsContent; + String? smsTemplate; + String? emailTemplate; + String? cardIssuingtool; + String? titleForBuyingAdvancedFeatures; + String? tipsForBuyingAdvancedFeatures; + String? freeTrial; + String? openNow; + + String? buySMS; + String? buyMail; + String? buyRealNameAuthenticationTimes; + String? enablingAdvancedFeatures; + String? chooseAPackage; + String? modeOfPayment; + String? alipay; + String? goToPay; + + String? customTemplatesTip; + String? haveOpened; + String? unHaveOpenedTip1; + String? unHaveOpenedTip2; + String? freeTrialKeywords; + String? goToTheOpen; + String? creatingANewTemplate; + String? type; + String? templateContent; + String? preview; + String? hello; + String? yourRoomIs; + String? roomName; + String? theCodeToOpenTheDoorIs; + String? templateTip1; + String? templateTip2; + String? templateTip3; + String? expectedNotoCount; + String? templateTip4; + String? and; + String? willBeReplacedWithTheActualValue; + String? downloadLink; + Map toJson() { final map = {}; map['starLock'] = starLock; @@ -1192,6 +1408,78 @@ class LanKeyEntity { map['email'] = email; map['countryAndRegion'] = countryAndRegion; map['selet'] = selet; + + map['businessCooperation'] = businessCooperation; + map['officialWebsite'] = officialWebsite; + map['computerWebVersion'] = computerWebVersion; + map['hotelSystem'] = hotelSystem; + map['manualWebVersion'] = manualWebVersion; + map['introduce'] = introduce; + + map['note'] = note; + map['mail'] = mail; + map['advancedFunction'] = advancedFunction; + map['pushMessage'] = pushMessage; + map['recordsRetention'] = recordsRetention; + + map['smsBuyTip'] = smsBuyTip; + map['emailBuyTip'] = emailBuyTip; + map['currentRemainingQuantity'] = currentRemainingQuantity; + map['buy'] = buy; + map['customSMSTemplate'] = customSMSTemplate; + map['customMailTemplate'] = customMailTemplate; + map['record'] = record; + + map['buyRealNameTip'] = buyRealNameTip; + map['buyRealNameSeletYouWantBuyTip'] = buyRealNameSeletYouWantBuyTip; + map['forTheFirstTime'] = forTheFirstTime; + map['onceDay'] = onceDay; + map['weekOnce'] = weekOnce; + map['monthOnce'] = monthOnce; + + map['currentState'] = currentState; + map['onTrial'] = onTrial; + map['haveNotOpened'] = haveNotOpened; + map['advancedFeaturesAndBenefitsContent'] = advancedFeaturesAndBenefitsContent; + map['smsTemplate'] = smsTemplate; + map['emailTemplate'] = emailTemplate; + map['cardIssuingtool'] = cardIssuingtool; + map['titleForBuyingAdvancedFeatures'] = titleForBuyingAdvancedFeatures; + map['tipsForBuyingAdvancedFeatures'] = tipsForBuyingAdvancedFeatures; + map['freeTrial'] = freeTrial; + map['openNow'] = openNow; + + map['buySMS'] = buySMS; + map['buyMail'] = buyMail; + map['buyRealNameAuthenticationTimes'] = buyRealNameAuthenticationTimes; + map['enablingAdvancedFeatures'] = enablingAdvancedFeatures; + map['chooseAPackage'] = chooseAPackage; + map['modeOfPayment'] = modeOfPayment; + map['alipay'] = alipay; + map['goToPay'] = goToPay; + + map['customTemplatesTip'] = customTemplatesTip; + map['haveOpened'] = haveOpened; + map['unHaveOpenedTip1'] = unHaveOpenedTip1; + map['unHaveOpenedTip2'] = unHaveOpenedTip2; + map['freeTrialKeywords'] = freeTrialKeywords; + map['goToTheOpen'] = goToTheOpen; + map['creatingANewTemplate'] = creatingANewTemplate; + map['type'] = type; + map['templateContent'] = templateContent; + map['preview'] = preview; + map['hello'] = hello; + map['yourRoomIs'] = yourRoomIs; + map['roomName'] = roomName; + map['theCodeToOpenTheDoorIs'] = theCodeToOpenTheDoorIs; + map['templateTip1'] = templateTip1; + map['templateTip2'] = templateTip2; + map['templateTip3'] = templateTip3; + map['expectedNotoCount'] = expectedNotoCount; + map['templateTip4'] = templateTip4; + map['and'] = and; + map['willBeReplacedWithTheActualValue'] = willBeReplacedWithTheActualValue; + map['downloadLink'] = downloadLink; return map; } } \ No newline at end of file diff --git a/star_lock/linux/flutter/generated_plugin_registrant.cc b/star_lock/linux/flutter/generated_plugin_registrant.cc index 64a0ecea..7299b5cf 100644 --- a/star_lock/linux/flutter/generated_plugin_registrant.cc +++ b/star_lock/linux/flutter/generated_plugin_registrant.cc @@ -7,9 +7,13 @@ #include "generated_plugin_registrant.h" #include +#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); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); } diff --git a/star_lock/linux/flutter/generated_plugins.cmake b/star_lock/linux/flutter/generated_plugins.cmake index 2db3c22a..786ff5c2 100644 --- a/star_lock/linux/flutter/generated_plugins.cmake +++ b/star_lock/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST file_selector_linux + url_launcher_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift index 9bbe890f..8a0390bd 100644 --- a/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift @@ -9,10 +9,12 @@ import device_info_plus import file_selector_macos import package_info_plus import path_provider_foundation +import url_launcher_macos 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")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) } diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml index acaa1e4b..70d2abb9 100644 --- a/star_lock/pubspec.yaml +++ b/star_lock/pubspec.yaml @@ -64,7 +64,8 @@ dependencies: syncfusion_flutter_datepicker: ^22.1.38 #图片选择 image_picker: ^1.0.1 - + #跳转到外部 + url_launcher: ^6.1.12 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 77ab7a09..043a96f0 100644 --- a/star_lock/windows/flutter/generated_plugin_registrant.cc +++ b/star_lock/windows/flutter/generated_plugin_registrant.cc @@ -7,8 +7,11 @@ #include "generated_plugin_registrant.h" #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); } diff --git a/star_lock/windows/flutter/generated_plugins.cmake b/star_lock/windows/flutter/generated_plugins.cmake index a423a024..a95e2673 100644 --- a/star_lock/windows/flutter/generated_plugins.cmake +++ b/star_lock/windows/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST file_selector_windows + url_launcher_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST