From 69a46812ed95fec36bdf43622a7ce9252c2978f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Fri, 21 Jul 2023 19:31:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=87=BA=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=89=A9=E4=B8=8B5=E4=B8=AA=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=B9=8B=E5=A4=96=E7=9A=84=E6=89=80=E6=9C=89=E7=9A=84?= =?UTF-8?q?UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/lan/lan_en.json | 73 +++- star_lock/images/lan/lan_keys.json | 73 +++- star_lock/images/lan/lan_zh.json | 75 +++- .../icon_mine_highFunctionContent_bjft.png | Bin 0 -> 15147 bytes .../icon_mine_highFunctionContent_dxmb.png | Bin 0 -> 15051 bytes .../icon_mine_highFunctionContent_fkgj.png | Bin 0 -> 13158 bytes .../icon_mine_highFunctionContent_left.png | Bin 0 -> 1821 bytes .../icon_mine_highFunctionContent_right.png | Bin 0 -> 1846 bytes .../icon_mine_highFunctionContent_sfz.png | Bin 0 -> 13533 bytes .../icon_mine_highFunctionContent_sqgly.png | Bin 0 -> 14279 bytes .../icon_mine_highFunctionContent_yjmb.png | Bin 0 -> 15471 bytes .../mine/icon_mine_supportStaff_jump.png | Bin 0 -> 1810 bytes .../mine/icon_mine_supportStaff_openEmail.png | Bin 0 -> 946 bytes .../icon_mine_valueAddedServices_buyIcon.png | Bin 0 -> 1851 bytes .../icon_mine_valueAddedServices_checkIn.png | Bin 0 -> 1332 bytes .../icon_mine_valueAddedServices_email.png | Bin 0 -> 2231 bytes .../icon_mine_valueAddedServices_note.png | Bin 0 -> 3220 bytes .../icon_mine_valueAddedServices_noteTop.png | Bin 0 -> 11786 bytes .../icon_mine_valueAddedServices_push.png | Bin 0 -> 2095 bytes .../icon_mine_valueAddedServices_realName.png | Bin 0 -> 4309 bytes .../icon_mine_valueAddedServices_storage.png | Bin 0 -> 1488 bytes .../mine/icon_mine_valueAddedServices_vip.png | Bin 0 -> 4274 bytes .../mine/icon_mine_valueAddedServices_zfb.png | Bin 0 -> 3810 bytes star_lock/ios/Podfile.lock | 6 + .../ios/Runner.xcodeproj/project.pbxproj | 3 + star_lock/lib/appRouters.dart | 78 +++- .../sendElectronicKey_page.dart | 18 +- .../sendEmailNotification_page.dart | 2 +- star_lock/lib/mine/about/about_page.dart | 17 +- .../gatewayDetail/gatewayDetail_page.dart | 2 +- ...ppUnlockNeedMobileNetworkingLock_page.dart | 91 +++++ .../hideInvalidUnlockPermissions_page.dart | 56 +++ .../mineSet/lockScreen/lockScreen_page.dart | 56 +++ star_lock/lib/mine/mineSet/mineSet_page.dart | 50 +-- star_lock/lib/mine/mine_page.dart | 7 +- .../mine/supportStaff/supportStaff_page.dart | 65 ++++ .../valueAddedServicesBuy_page.dart | 134 +++++++ ...dedServicesBuyAndUseRecordManage_page.dart | 32 ++ ...dServicesBuyAndUseRecordManage_tabbar.dart | 89 +++++ ...alueAddedServicesBuyAndUseRecord_page.dart | 89 +++++ ...lueAddedServicesAddEmailTemplate_page.dart | 262 +++++++++++++ ...ueAddedServicesListEmailTemplate_page.dart | 139 +++++++ .../valueAddedServicesHighFunction_page.dart | 240 ++++++++++++ .../valueAddedServicesList_page.dart | 93 +++++ ...eAddedServicesNoteAndEmailDetail_page.dart | 128 +++++++ .../valueAddedServicesRealName_page.dart | 150 ++++++++ ...valueAddedServicesAddSMSTemplate_page.dart | 344 ++++++++++++++++++ ...alueAddedServicesListSMSTemplate_page.dart | 139 +++++++ .../valueAddedServices_page.dart | 29 -- star_lock/lib/translations/lanKeyEntity.dart | 290 ++++++++++++++- .../flutter/generated_plugin_registrant.cc | 4 + .../linux/flutter/generated_plugins.cmake | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 + star_lock/pubspec.yaml | 3 +- .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + 56 files changed, 2767 insertions(+), 77 deletions(-) create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_bjft.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_dxmb.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_fkgj.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_left.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_right.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_sfz.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_sqgly.png create mode 100644 star_lock/images/mine/icon_mine_highFunctionContent_yjmb.png create mode 100644 star_lock/images/mine/icon_mine_supportStaff_jump.png create mode 100644 star_lock/images/mine/icon_mine_supportStaff_openEmail.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_buyIcon.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_checkIn.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_email.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_note.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_noteTop.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_push.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_realName.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_storage.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_vip.png create mode 100644 star_lock/images/mine/icon_mine_valueAddedServices_zfb.png create mode 100644 star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart create mode 100644 star_lock/lib/mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart create mode 100644 star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_tabbar.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecord_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart delete mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServices_page.dart 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 0000000000000000000000000000000000000000..07c50285f6faa7b4f4d2fc107c0f6e98fb5c686b GIT binary patch literal 15147 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 UrxP(8@t;stUK%V_D`6b+KWQYLZU6uP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7da209386cda370ce9ea5459a3b53be88f20ad69 GIT binary patch literal 15051 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..19b24230f7849df995481a6bf7fd276318e0f5e4 GIT binary patch literal 13158 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 M07*qoM6N<$g0w(53IG5A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7d5f5fc51cbcccf1b2437fa7fe11dfbbdafb0a5d GIT binary patch literal 1821 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7d7d47d3ad391353c4607c55d6401cc24408cdc4 GIT binary patch literal 13533 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�=7`(FSQB3lK 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7fb1c12ffdd4cbaae8524d8c5032f168ebb7d8ed GIT binary patch literal 15471 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..465c14bbd85a53ce03301b4db4bff065434cc0c6 GIT binary patch literal 1810 zcmZ`)S6Gt?7X6bzKzau$5((0!8CXDwv=qcZz|avQD4>G~NEQVmRU%PADN=^sZ9o#D z$P7&>p^TYO4G5xu5NT3G#KGC{ef#Y`?6(i+o?FhtdAavy;9W4{BFZ8F0Ejzb9o_ki zJ%BKjA3atX7(Rinxnt~shBvA_e&Kl0+bINx1N8X0FaV-l0t5~ud?@n)0FZJJ0O2#} zpjQt5&lFn@`EPz8yl;YD2LNb-lcOEsI%w7Rmv90~4ha#hNVX>@X(7L$&dYSG8Z zFsQT%b+n*>s&)A&pvX_q=P;1x0krRVCZvn>azz zH*$A&OWLw#A_C(>)u-=W%jQ~MTPr*n+FodREo4pRu&J<;fEXAGN=>rsgb}5T|F^Uj z$n6t1ll|ahTtO`m!Ez4Ildw-75zHiOE)|0CY3g8MKY-PwWUNHT$yL@M9GJb<&dyOw zAo_K&xHw^+bzL8`z^)23B&H7TJL)IFJxQp1^L<`7G#F#BAil$~HMwADF$i?3>UpAo zxd>Kb)b9dQgKH z6iE6@ZRKUcz^Knqz1gVUggsBz^}(aNtzoA^Mog>SO05OY)PhE171s$Jpn3{zD1!1T z0HZ7PU9Y-KXXu+1y*iW^HT*u(u%yO*#Z7Rji-gUuWV~ecX=LQI15Qh5-~*WG9F+Lv zx{^FcR;m#ly`1sTfL-U-ffDJj90d{nfM2qnrc5uIB)Nf8G2Q34XMvYS->G~>f!!Hb zd&E2GSXiKI9jvTs^4yr?<~*ePsSX%_+Y|P65$gx?*SDI0s`31f40u)e8!w5aL`#Zn zA%=#;>z5@(GwtfKsXVwlHGWCRKvS_C-LBkwQ&^?jt3?xvzW>io+FJVSX$)g5aLvJ} zF(h6g_mPXMf>E&KKq@{_oF@~=T<`P(w%5sY+we_*zAMq}e{a4Qp>3jXuF-}iJu zzVo#SpOfKJ;WXbo=~--`^H~0_d{Wxxs=?c@F?acSdf%&apQ^_5{#2*r zQeu>On(ivCZolFM!YRtp$4w9S*X$D&UZFEGz&SHw%63`An0MT*oup^z7OB>64vU7G zmU-V?EiLYl)X_gC?vR5vIY_gh9)ewubIyJx*r$g1N4$i4t9gG%C;g)CJlr>N{JpWa{@ns03G}k4Jxg zGCd2BG{jbFwX*U?ehB#9$u!!$@KN<}{swjCbrBh9 zk-IF}*5mP@ycS$iLW+ZE{9rgKzp(1VR3pm8v2V{{FafV7Zoem+l08#~r93_e(jCNO z14a*h`A6lnythlAnveSlwInUnaeNDS3MIsXYKw6ReRQ}5Gk@gFF?x4@J1kz#_IDAO z)^0#pa$wp*Gh5r)N<|fh$|33;-9P=J3l-}QKW%97TNfK*v2hXuE#A4QW9JZ&btK&f zsX;yUo8@G!HG$*m$OaW$v57fL5a!$Lar2W?>&;b!Z>dcgB*Yguf2&V~a33#)mi^o! zygoJC7945xMPy!-%yxlPGsA*$v*rm#hXz`M6%%dlTzuwyUz>I-zKy21)`Hb%G4k)P zAY~wj`fn8$OYc7?gZddQNK2RqPqRaMgZT?>MdoK*;;?0r3xm)!&3a$dGf}Q{w9~Oe zDM3_WHpqb6s&r$L`ZKe4qQ2*2a%%>Uzuw{N3SrTkhkQA6^<>e9*=a%~3#Ti~@}Za7 z177$B0lIstZ=%~H=D2v*@m50;F*kq7^UcFJD`0;$CgMa2Bb7VscJ3qzp#P2S+-``d z;u2i7B`#A=*ranuig9XVOfw5xsta*>`soz$`Phh05GG2f<=B)}5i)+kFX!n0zw7_L e`m=v$bSAFI-t}JC+B$ylkDO30jt%z2lz#!l9~NBz literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..48c48ce7e9fe938573a0111cda64075ef7555abe GIT binary patch literal 946 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(<^v49!D1}U6i==L6{T*lMIF{Fa= z?JVzX5l4aJ|7C^cS7^LC$li2tc1M%Dfq3Nk*FwPntC>E+sv~*In`y$PrmzCJ@f6XRqs~4i?>gkncL9G;?aPL z6igU}trC>uR2I*QKi^p^8EQOjisbb_CC+(&r7jwMms;f!m%VTI)jK<+uNlb~eYv-a z@x4@SSYyMloC7!SUSK(tduigDOXqSutRk-aeuI>g24o>Bzbz5B>zY>3{td$+fydldEjy`>j=L4+!09JmI(gsn|)w z+uNQ+GpsJ)c4g>|*xvNmB17)RZ=;r3IhSUBc5_^NIh$SS%|!!YxrOhRovKg}a>hsyMs4Kr4R;6u`b%;sgtJ-Vdth6&xQe=kjUVe@p35<;QPWO82 zxa#|>EU?kilx19+@T8Mvio5F4*YA9-CjDSIQn1Rt_z};!hbw+gdT~DGja=6|HkOdB z>u+9`^$zx5y-M=?gNd4_RHr#!TJ_?cWJ*EcebKdM6FHmU-ftJ{$SY(Rp$ydbtpG2mw(avo!}VD rzGPWN-;2Q6zoq&y(`N(Auh|FUb=Vqn{~v9!1mzb`S3j3^P6azP9%imVxkpnlW{X(&w^N>4YO5K`+@&AD-*W5l@{pFj=Sm9qGfH+>Ri^qNFv>{Tsvp&0*S1Gc zUYVUpQE*1PP(M9kBxr?QTA4DrW3$d0X%Q_)$LsC+ThjwFOjySd5KamSfu4_u&r3sS zW$@6trz>X)AVDhTA;ScV2gGHtE{;UWfMG4-EHeQhpbpe9yF@`7m}Wp%wqGKoz-L9% zq)_w!iDVgf*K?3|O!_R`RCkd`(Zzk&X-hPF?O?TQW9WRZyXKNpwuLutuQ7H?zxM`MaG^`Esg{sl<48bq6nAVO8R3#u#g6%-0OzCH(cS$<9NsG$e96lLZ%q^HrV6S$(fyN1@PvlBqqY7i zd;44~6Up7VUc0uoakI5E3id}r77@Q3QL($hQYvKEhlT2%6xnt(98b=)RZr~8gf0M+;J_Dko|_E9Z^X-VbRdKsXBYH1&NdDGr!Jy4aS zzx3E)xCC&`D75qqYOZqh5TA|2t6`4ng!wsCm|nNYvbsfxk0qD?r(|!A+=lpk`qfI; zqLiJEQgZ$HAVV6`z=FfwYOSc+RcugjQPdSZCSl6Ax;WY#f7M2eW~PQFRC$xP+9%$9 z)%vPzfVO&@-nzgfT`!#1csg_=m5jjS(tpZf4UT-DU$Z9e%>1$V0~S3MlV6FTm##>k znI=D2&m+;dyHq*mqk_CD&^#XSTautQFPO*ss8r+r?S3QhI;mhX$ROD3fCj4t(Pld! z{+au-QF@K!D`^#QvDY9=wn^d?s3;Q2L9z3HIG?hJbC^XF-e7wgH`|RKZX$^Rg{wpS*%?4rI)PdzrwwUILXT?1@Nz zwN9(yl~W+KREYQd(c;`_p)<^bqCwr0C|uDf0s)P>W2>bAw${j?9@_mp{zOPP0 z0MI`3!O;lO^XBRP@#8?bEcQteAPQiacy%DdYV~#n&B<|8GkHLbnl{t}la^+^WzxXm zG^yxcAfZAdjD-Y`OU+$nfw@P1bJYJqW(%YENxsoZY>_Q_iooS3kMoTV#B2WrzI|gq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cffd3a550526db522fd901ed7ca3238cc70358c0 GIT binary patch literal 1332 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVEOIo;uum9_jc~xTwzBMx8&a^ zJyk9-E@QsT7&2jsfECA72X+VcB}^|ErcVfQm@w(bNwdud#n>#Zt*f6uk3PGxWy2Qh z;`epW-)u0;t}Z#U_!Wy=sJtzEeG9`>?*;~rfJ&yR@^;z`Od<0ep0=OoYG9bE9`N(w zW+nxPr<@^mKh|JVa*NZ(#wO>Mm5rsPrq;%)db?e&hd-NM&k5&`*lQnujN^g#iOsT% zJ&eEFR4a2dPp2Jtq8+`p&^KmoN51}Mh1GN;Hb#-kkzd!G`KgG2n zMlb#K*I&)rX65y1`xfPxs}?+V(?9n3j+{AW zvv;3N`E*OGF_K|BOI_*Q`Rt|V&utXiQTDziE<(+iyP&@Q|K!d0n+}+KJI49plu>ge z!+qBYOD&K665jAHo`dO!@w9u)j7vT)$>(Fdl&%xYNMp8R97A^VrI+a$=gQA7HNF4j zJ4=-GnF$+9I9Vnfo4n7G#bf@)5>`Cy&&w^p2fp2W{P=P6cdGfHJzuWiXX%hi|8sKN zhy6QeK7aRf_vOo%&l|2*a5!V4e10o`y?JR4r+|XdmWa!;P4k_YSUOyF9@*r6NCw8d z;K8FaR&oECA*A5IlQr=fN8^6opGWr^?btHKox!_G@c6Wb`&;@M1Qox{T_sY(^1@r^ z(T+(U1QnD{*ac5*>u0E4;VQM5L7q|RAkSPkRy(GaN!=Uv3)Qf6Fqoupnf~Aqa5}$Z zy;2QJ1>36X;wO)O{P?l^_oP?W%HNkiT=hZl0YmKfw@;??{ZZeZ`B0@Id#Zz^9n&B6 z19E@vicMyD^+7Pfzk&IKuMiKT9aE0r_5<%#4+cC?Ztz~f{6~SajYXdE5KG3Vti5Uy zQb4Eu^FQ$K=_5zZHV%2lU9l{3RoV~aIor788UN@r-@eCQHEF@kgS8otU+(+6ZSMDN zGxHz6idcR*?~Y)~lmzRV2_GUE=UKWl#YvV}o!(~cIrr!8W08!XJQO(RiykQc=N848 z@=)2Ko%N1JqY2P11&7Vv{+v&MLhg)J9tIphk19AcurxRJGc+=lOh^d$Ah@8NL05=} z&yMMf$OE8EOFsh}W0}y7{mmxYM64~vG_UbjS+3l9R;bU$L+A#L>j&h;&OG^RP+ZOxy{VC>CexQ=m_ zyqDE>lY=+zamH9P>Q(iZF`s49nST0a*4C&EToDE>{iX9O{+Z77d3O2b7qyx%_XX1! zXRVaty!QI5`}ZwB1)h0(JNJB5D|r1aqUZQyZS6nHfbP0l+XkKvZpzT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6b7bb9445528f7b41f8d45657ac1d399363961f1 GIT binary patch literal 2231 zcmd6p`#;l<9>+gpV}=Z^RQfg&8FSmAk!e`9>5FNUOl#=7X{PU&A}6;Inh8bj6rtv> zFe)^cFBYcKS(aQ{BVAFzu!N+Z?DJmhxg;1NOn1{3fm0>06>*Q zB%G8*&c6++AoCq|KD__{jUo~3-NR^K3c|S_9^1QGFcggVhM%YXZ@YC6ZeUztH0q#k zFS}j6P9gr@14K(_pnJUrfrr4Y(EG=HWwK^NNSCl5O23wT2*FXMZVs0NKL_0ItJ|mxo$<9O z%s+c7_gXz9N;3>0A$Hc<{V~M{41J9KcGkXRR1Tg6#+O0WdC0MPC5s(Y$?2^2mkjJQ zF;Pl_@Gq-l6`CyTjg3Gyxf=fD4&qh$k$+v|JV~utI(7zs>@1XSOT#~NJ>YqMxKSZv zZ7VFhEprQH>rIBRUBKjvs`LBt45hYgd8Y#CdrVOznW49-0t9|KOo3KvH@ZlGqYzH+ zN_wB4A(IMRPK3WEJ34lRP#(C9=+&#Wv*~oYXliO|k#k{(+||61$&5b&ta6ui{a94c z4dCtYaQ99#{(4kY_J-Fr`1mEDIpgGNBi=kZWhBCie-8F##s$z{Et$oM zY7W8LQq35Ur|HMzmuY!HKO(FXqqC8F;$tqBz((z)bG0Urn~Kg#&AiT5;n=JAfoocEb`q_-&a)oib;2>@xyusA;0rlyv+Kc+6eWY#y!EY*nCig+9D zV}-?r=^ofZ$L8!;@xMZ$P?(o4EoPO@&d>mnNm0imk6C7~=kv^m&P0ZDzfi!b+By*H zuc_ec)odgjIxV(?fKL}MBA-lHF_cdJZLlV^u*Lw;SN^| z{evJap`c1vFFFqT1i7ZB3y2bfQph#k!baKJx?3= z)84_i)T)xo$lHtl2Ckgr+KK6=*X|w z>rJvjJClKh^PU3UB&+zkr*^fj{p3n{B-}G)WDuo4``+j=tGhl7H+x6oj)v;@ipyByFCW%r(j}4NNk~IqU?|@;zD48%yW9gesjQa?uP&(GgXh zoQlvCO>z1Y*}i>MfQq%D7Ff#FGU`5YRfnKQH)3`Awb!X8L-uc|(w0jkywHWlMt#~4GKZ#yyh2qF5 zko*pLR&08JTr_vQ8~UvqP8z&AaXJBaA%#FpXI zWL|kYK`JZ*^o$WhLjoSev7j+b!yg4GozP?(Q;!bnFV|*UqKmHVlO1wH!#602j5MAi zYe)G|CMtdJGryr!*0&QdwJ2BJI%hJ4)z3n~NR2=T1@a!|`U2X7Rh<5rYg1~~Lr!n0s_qC21Q zziC-Ra)N7;F)N>E3=S*&a?m`a|LZpKHi6jKM<@#TfQk&M1ase(_~9WpQyS^VelrE; z_@5_}vrH8o&*1T4VMiOk6i@37G~>9sw1mqVuCIa@i1nP{4`5hhQ-QFzp|viEfd(+v zu4A6PxRBmJ?Xtj0mCDJs*A?uR5)Dp}FD;=bH7Rg!dF0Zr@xO+L4L4>6`|`bj3;Cb5 zwzSBg)hx{i>SaLwt1ovk2u`$h(C%9>q2b7;HRb;>RTmBVU^CiM5E1Dtdq@D%Q5QnB H13mU{L7@2t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fc702cc6e53825c13c162193656672ce8d3ce496 GIT binary patch literal 3220 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 SD*W?@1UYFXsS*hzzyATo!MGFv literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..651684e70c7ff6966c4fff34495058adf749d5f5 GIT binary patch literal 2095 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..21ffe9ae99f285544744847af0e05a1264c607f4 GIT binary patch literal 3810 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 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