diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 9307e4b6..da7878bd 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -251,7 +251,7 @@ class _LockDetailPageState extends State width: 100.r, height: 100.r, decoration: BoxDecoration( - color: Colors.white.withOpacity(0.9), + color: Colors.white, borderRadius: BorderRadius.circular(100.w), boxShadow: [ BoxShadow( diff --git a/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart b/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart index 4e6fd7e8..ada75f11 100644 --- a/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart @@ -163,6 +163,11 @@ class _StarLockMainPageState extends State with BaseWidget { return returnWidget; } + //鑫泓佳背景 + Widget XHJBg({required Widget child}) { + return Container(); + } + Widget unHaveData() { return ListView( children: [ diff --git a/star_lock/lib/mine/about/about_page.dart b/star_lock/lib/mine/about/about_page.dart index 17ae37cd..221a6c09 100644 --- a/star_lock/lib/mine/about/about_page.dart +++ b/star_lock/lib/mine/about/about_page.dart @@ -49,155 +49,196 @@ class _AboutPageState extends State { builder: (AboutConsole logic) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.about!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.about!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Align( - alignment: Alignment.topRight, - child: GestureDetector( - onTap: logic.handleTap, - child: Container( - color: Colors.transparent, - width: 80.w, - height: 80.h, - ), - ), - ), - SizedBox(height: 70.h), - Row(mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset( - F.sw( - defaultCall: () => "images/icon_main_1024.png", - xhjCall: () => "images/icon_main_xhj_1024.png"), - width: 160.w, - height: 160.w), - ]), - SizedBox(height: 20.h), - Text( - "${F.title} $version+$buildNumber", - style: - TextStyle(fontSize: 24.sp, color: AppColors.blackColor), - ), - SizedBox(height: 20.h), - Text( - F.apiPrefix, - style: - TextStyle(fontSize: 24.sp, color: AppColors.blackColor), - ), - SizedBox( - height: 60.h, - ), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.introduce!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.webviewShowPage, - arguments: { - "url": XSConstantMacro.introduceURL, - "title": '介绍'.tr - }); - }), - Divider( - height: 1, - color: AppColors.greyLineColor, - indent: 20.w, - endIndent: 20.w, - ), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.userAgreement!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.webviewShowPage, arguments: { - "url": XSConstantMacro.userAgreementURL, - "title": '用户协议'.tr - }); - }), - Divider( - height: 1, - color: AppColors.greyLineColor, - indent: 20.w, - endIndent: 20.w, - ), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.privacyPolicy!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.webviewShowPage, - arguments: { - "url": XSConstantMacro.privacyPolicyURL, - "title": '隐私政策'.tr - }); - }), - Divider( - height: 1, - color: AppColors.greyLineColor, - indent: 20.w, - endIndent: 20.w, - ), - CommonItem( - leftTitel: TranslationLoader - .lanKeys!.personalInformationCollectionList!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.webviewShowPage, - arguments: { - "url": XSConstantMacro.collectionListURL, - "title": '个人信息收集清单'.tr - }); - }), - Divider( - height: 1, - color: AppColors.greyLineColor, - indent: 20.w, - endIndent: 20.w, - ), - CommonItem( - leftTitel: TranslationLoader - .lanKeys!.applicationPermissionDescription!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.webviewShowPage, - arguments: { - "url": XSConstantMacro.appPermissionDescURL, - "title": '应用权限说明'.tr - }); - }), - Divider( - height: 1, - color: AppColors.greyLineColor, - indent: 20.w, - endIndent: 20.w, - ), - CommonItem( - leftTitel: TranslationLoader - .lanKeys!.thirdPartyInformationSharingList!.tr, - rightTitle: "", - isHaveLine: false, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.webviewShowPage, - arguments: { - "url": XSConstantMacro.thirdPartyInfShareListURL, - "title": '第三方信息共享清单'.tr - }); - }), + F.sw( + defaultCall: () => logoView(), + xhjCall: () => const SizedBox()), + listView(), + F.sw( + defaultCall: () => const SizedBox(), + xhjCall: () => logoView()), ], ), ); }); } + + //列表 + Widget listView() { + Widget view = Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.introduce!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.introduceURL, + "title": '介绍'.tr + }); + }), + Divider( + height: 1, + color: AppColors.greyLineColor, + indent: 20.w, + endIndent: 20.w, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.userAgreement!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.userAgreementURL, + "title": '用户协议'.tr + }); + }), + Divider( + height: 1, + color: AppColors.greyLineColor, + indent: 20.w, + endIndent: 20.w, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.privacyPolicy!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.privacyPolicyURL, + "title": '隐私政策'.tr + }); + }), + Divider( + height: 1, + color: AppColors.greyLineColor, + indent: 20.w, + endIndent: 20.w, + ), + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.personalInformationCollectionList!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.collectionListURL, + "title": '个人信息收集清单'.tr + }); + }), + Divider( + height: 1, + color: AppColors.greyLineColor, + indent: 20.w, + endIndent: 20.w, + ), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.appPermissionDescURL, + "title": '应用权限说明'.tr + }); + }), + Divider( + height: 1, + color: AppColors.greyLineColor, + indent: 20.w, + endIndent: 20.w, + ), + CommonItem( + leftTitel: + TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, + rightTitle: "", + isHaveLine: false, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.thirdPartyInfShareListURL, + "title": '第三方信息共享清单'.tr + }); + }), + ], + ); + view = F.sw( + defaultCall: () => view, + xhjCall: () => Container( + margin: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.r))), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: view, + ), + )); + return view; + } + + //图标 + Widget logoView() { + return GetBuilder(builder: (AboutConsole logic) { + return Padding( + padding: EdgeInsets.only(top: 70.h, bottom: 60.h), + child: Column( + children: [ + Align( + alignment: Alignment.topRight, + child: GestureDetector( + onTap: logic.handleTap, + child: Container( + color: Colors.transparent, + width: 80.w, + height: 80.h, + ), + ), + ), + ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: Image.asset( + F.sw( + defaultCall: () => "images/icon_main_1024.png", + xhjCall: () => "images/icon_main_xhj_1024.png"), + width: 160.w, + height: 160.w), + ), + SizedBox(height: 20.h), + Text( + "${F.title} $version+$buildNumber", + style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), + ), + SizedBox(height: 20.h), + Text( + F.apiPrefix, + style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), + ), + ], + ), + ); + }); + } } diff --git a/star_lock/lib/mine/addLock/addLock/addLock_page.dart b/star_lock/lib/mine/addLock/addLock/addLock_page.dart index d346f578..55dd9fc4 100644 --- a/star_lock/lib/mine/addLock/addLock/addLock_page.dart +++ b/star_lock/lib/mine/addLock/addLock/addLock_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/addLock/addLock/addLock_logic.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/tools/storage.dart'; @@ -30,10 +31,20 @@ class _AddLockPageState extends State with BaseWidget { builder: (AddLockLogic logic) { return Scaffold( backgroundColor: Colors.white, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.addLock!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.addLock!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: ListView( // mainAxisAlignment: MainAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.center, diff --git a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart index bc750610..a474bc92 100644 --- a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart +++ b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart @@ -1,10 +1,10 @@ - import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import '../../../app_settings/app_colors.dart'; import '../../../blue/blue_manage.dart'; import '../../../tools/appRouteObserver.dart'; @@ -27,30 +27,48 @@ class _NearbyLockPageState extends State with RouteAware { void initState() { // TODO: implement initState super.initState(); - } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.nearbyLock!.tr, - haveBack: true, - backgroundColor: AppColors.mainColor, - actionsList: [ - CupertinoActivityIndicator(radius: 18.w, color: Colors.white,), - SizedBox(width: 30.w) - ], + appBar: F.sw( + defaultCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.nearbyLock!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + CupertinoActivityIndicator( + radius: 18.w, + color: Colors.white, + ), + SizedBox(width: 30.w) + ]), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.nearbyLock!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + actionsList: [ + CupertinoActivityIndicator( + radius: 18.w, + color: AppColors.blackColor, + ), + SizedBox(width: 30.w) + ]), ), body: Obx(() { return ListView.separated( itemCount: state.devices.length, itemBuilder: (c, index) { - return nearbyLockItem('images/icon_lockGroup_item.png', state.devices[index], () { + return nearbyLockItem( + 'images/icon_lockGroup_item.png', state.devices[index], () { // Navigator.pushNamed(context, Routers.lockAddressPage); // logic.getPublicKey(state.devices[index].serviceUuids[0].toString()); - state.selectLockName.value = state.devices[index].advertisementData.advName; + state.selectLockName.value = + state.devices[index].advertisementData.advName; logic.connect(state.devices[index].advertisementData.advName); // Get.toNamed(Routers.lockAddressGaoDePage); }); @@ -68,9 +86,16 @@ class _NearbyLockPageState extends State with RouteAware { ); } - Widget nearbyLockItem(String lockTypeIcon, ScanResult scanResult, Function() action ) { + Widget nearbyLockItem( + String lockTypeIcon, ScanResult scanResult, Function() action) { return GestureDetector( - onTap: ((scanResult.advertisementData.serviceUuids.isNotEmpty ? scanResult.advertisementData.serviceUuids[0] : "").toString()[33] == "1") ? action : null, + onTap: ((scanResult.advertisementData.serviceUuids.isNotEmpty + ? scanResult.advertisementData.serviceUuids[0] + : "") + .toString()[33] == + "1") + ? action + : null, child: Column( // mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -92,7 +117,18 @@ class _NearbyLockPageState extends State with RouteAware { crossAxisAlignment: CrossAxisAlignment.start, children: [ // 第32、33两位00 表示休眠, 01表示唤醒 - Text(scanResult.advertisementData.advName, style: TextStyle(fontSize: 20.sp, color: ((scanResult.advertisementData.serviceUuids.isNotEmpty ? scanResult.advertisementData.serviceUuids[0] : "").toString()[33] == "1") ? AppColors.blackColor : Colors.grey)), + Text(scanResult.advertisementData.advName, + style: TextStyle( + fontSize: 20.sp, + color: ((scanResult.advertisementData.serviceUuids + .isNotEmpty + ? scanResult.advertisementData + .serviceUuids[0] + : "") + .toString()[33] == + "1") + ? AppColors.blackColor + : Colors.grey)), ], ), SizedBox( @@ -173,5 +209,4 @@ class _NearbyLockPageState extends State with RouteAware { logic.stopScanBlueList(); BlueManage().disconnect(); } - } diff --git a/star_lock/lib/mine/addLock/selectLockType/selectLockType_page.dart b/star_lock/lib/mine/addLock/selectLockType/selectLockType_page.dart index eac43537..56e8b862 100644 --- a/star_lock/lib/mine/addLock/selectLockType/selectLockType_page.dart +++ b/star_lock/lib/mine/addLock/selectLockType/selectLockType_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -18,7 +17,8 @@ class SelectLockTypePage extends StatefulWidget { State createState() => _SelectLockTypePageState(); } -class _SelectLockTypePageState extends State with BaseWidget { +class _SelectLockTypePageState extends State + with BaseWidget { final logic = Get.put(SelectLockTypeLogic()); final state = Get.find().state; @@ -26,121 +26,165 @@ class _SelectLockTypePageState extends State with BaseWidget Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.selectLockType!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.selectLockType!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Column( children: [ allLock(), - Expanded( - child: Container( - padding: const EdgeInsets.only(left: 10, right: 10, bottom: 10), - child: GridView.count( - crossAxisCount: 2, - childAspectRatio: 2.83, - crossAxisSpacing: 10, - mainAxisSpacing: 10, - children: [ - lockTypeItem('images/lockType/lockType_doorLock.png', - TranslationLoader.lanKeys!.doorLock!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage, - arguments: {'getLockType': 1}); - }), - if (!F.isLite) - lockTypeItem('images/lockType/lockType_NFCLock.png', - TranslationLoader.lanKeys!.NFCPassiveLock!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - }), - if (!F.isLite) - lockTypeItem('images/lockType/lockType_padlock.png', - TranslationLoader.lanKeys!.padlock!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - }), - lockTypeItem('images/lockType/lockType_safeLock.png', - TranslationLoader.lanKeys!.safeLock!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage, - arguments: {'getLockType': 4}); - }), - lockTypeItem('images/lockType/lockType_parkingLock.png', - TranslationLoader.lanKeys!.parkingLock!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage, - arguments: {'getLockType': 5}); - }), - lockTypeItem('images/lockType/lockType_entranceGuardLock.png', - TranslationLoader.lanKeys!.itelligentAccessControl!.tr, - () { - Navigator.pushNamed(context, Routers.addLockPage, - arguments: {'getLockType': 6}); - }), - - // lockTypeItem('images/lockType/lockType_bicycleLock.png', - // TranslationLoader.lanKeys!.bicycleLock!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - // }), - if (!F.isLite) - lockTypeItem('images/lockType/lockType_gatewayLock.png', - TranslationLoader.lanKeys!.gateway!.tr, () { - // Navigator.pushNamed(context, Routers.gatewayListPage); - }), - if (!F.isLite) - lockTypeItem('images/lockType/lockType_camera.png', '网络摄像头'.tr, - () { - // Navigator.pushNamed(context, Routers.gatewayListPage); - }), - ], - ), - ), - ) + lockTypeList(), ], ), ); } + //锁列表控件 + Widget lockTypeList() { + Widget view = F.sw( + defaultCall: () => GridView.count( + crossAxisCount: 2, + childAspectRatio: 2.83, + crossAxisSpacing: 10, + mainAxisSpacing: 10, + children: getLockTypeList(), + ), + xhjCall: () => GridView.count( + crossAxisCount: 1, + childAspectRatio: 6, + crossAxisSpacing: 10, + mainAxisSpacing: 10, + children: getLockTypeList(), + )); + return Expanded( + child: Container( + padding: const EdgeInsets.only(left: 10, right: 10, bottom: 10), + child: view, + ), + ); + } + + //所有的锁类型匹配 + List getLockTypeList() { + return [ + lockTypeItem('images/lockType/lockType_doorLock.png', + TranslationLoader.lanKeys!.doorLock!.tr, () { + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 1}); + }), + if (!F.isLite) + lockTypeItem('images/lockType/lockType_NFCLock.png', + TranslationLoader.lanKeys!.NFCPassiveLock!.tr, () { + // Navigator.pushNamed(context, Routers.addLockPage); + }), + if (!F.isLite) + lockTypeItem('images/lockType/lockType_padlock.png', + TranslationLoader.lanKeys!.padlock!.tr, () { + // Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/lockType/lockType_safeLock.png', + TranslationLoader.lanKeys!.safeLock!.tr, () { + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 4}); + }), + lockTypeItem('images/lockType/lockType_parkingLock.png', + TranslationLoader.lanKeys!.parkingLock!.tr, () { + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 5}); + }), + lockTypeItem('images/lockType/lockType_entranceGuardLock.png', + TranslationLoader.lanKeys!.itelligentAccessControl!.tr, () { + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 6}); + }), + + // lockTypeItem('images/lockType/lockType_bicycleLock.png', + // TranslationLoader.lanKeys!.bicycleLock!.tr, () { + // Navigator.pushNamed(context, Routers.addLockPage); + // }), + if (!F.isLite) + lockTypeItem('images/lockType/lockType_gatewayLock.png', + TranslationLoader.lanKeys!.gateway!.tr, () { + // Navigator.pushNamed(context, Routers.gatewayListPage); + }), + if (!F.isLite) + lockTypeItem('images/lockType/lockType_camera.png', '网络摄像头'.tr, () { + // Navigator.pushNamed(context, Routers.gatewayListPage); + }), + ]; + } + + //搜索全部的按钮 Widget allLock() { + Widget view = Row( + children: [ + SizedBox(width: 30.w), + Image.asset( + 'images/lockType/lockType_allLocks.png', + width: 88.w, + height: 80.w, + ), + SizedBox(width: 40.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(TranslationLoader.lanKeys!.allLock!.tr, + style: TextStyle( + fontSize: 24.sp, + )), + Text(TranslationLoader.lanKeys!.searchAllLockType!.tr, + style: TextStyle( + fontSize: 20.sp, color: AppColors.darkGrayTextColor)), + ], + ), + ), + SizedBox(width: 40.w), + Image.asset( + 'images/icon_right_grey.png', + width: 12.w, + height: 21.w, + ), + SizedBox(width: 40.w), + ], + ); + + //风格区分 + view = F.sw( + defaultCall: () => Container( + height: 150.h, + color: Colors.white, + margin: const EdgeInsets.all(10), + child: view, + ), + xhjCall: () => Container( + height: 150.h, + margin: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: AppColors.mainColor, width: 1), + borderRadius: BorderRadius.circular(20.r), + ), + child: view, + )); + return GestureDetector( onTap: () { Navigator.pushNamed(context, Routers.addLockPage, arguments: {'getLockType': 0}); }, - child: Container( - height: 150.h, - color: Colors.white, - margin: const EdgeInsets.all(10), - child: Row( - children: [ - SizedBox(width: 30.w), - Image.asset( - 'images/lockType/lockType_allLocks.png', - width: 88.w, - height: 80.w, - ), - SizedBox(width: 40.w), - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(TranslationLoader.lanKeys!.allLock!.tr, - style: TextStyle( - fontSize: 24.sp, - )), - Text(TranslationLoader.lanKeys!.searchAllLockType!.tr, - style: TextStyle( - fontSize: 20.sp, color: AppColors.darkGrayTextColor)), - ], - ), - ), - SizedBox(width: 40.w), - Image.asset( - 'images/icon_right_grey.png', - width: 12.w, - height: 21.w, - ), - SizedBox(width: 40.w), - ], - ), - ), + child: view, ); } @@ -150,8 +194,14 @@ class _SelectLockTypePageState extends State with BaseWidget onTap: action, child: Container( height: 120.h, - color: Colors.white, - // margin: EdgeInsets.all(10), + decoration: F.sw( + defaultCall: () => const BoxDecoration( + color: Colors.white, + ), + xhjCall: () => BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20.r), + )), child: Row( children: [ SizedBox(width: 30.w), diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_page.dart index 20ba8973..25bbe8ae 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_logic.dart'; import 'package:star_lock/tools/tf_input_haveBorder.dart'; @@ -26,10 +27,20 @@ class _MineUnbindPhoneOrEmailState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Column( children: [ Container( diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart index fc75d1fd..b3362b9a 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccountNext/minePersonInfoEditAccountNext_logic.dart'; import '../../../../app_settings/app_colors.dart'; import '../../../../tools/submitBtn.dart'; @@ -25,10 +26,20 @@ class _MinePersonInfoEditAccountNextPageState Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.modifyAccount!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Column( children: [ Container( diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart index b843c979..f60d3493 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEditName/MinePersonInfoEditName_logic.dart'; import '../../../app_settings/app_colors.dart'; @@ -25,45 +26,89 @@ class _MinePersonInfoEditNamePageState @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.white, - appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.changeNickName!.tr, - haveBack: true, - backgroundColor: AppColors.mainColor, - actionsList: [ - TextButton( - child: Text( - TranslationLoader.lanKeys!.save!.tr, - style: TextStyle(color: Colors.white, fontSize: 24.sp), + backgroundColor: AppColors.greyBackgroundColor, + appBar: F.sw( + defaultCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.changeNickName!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.save!.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () { + if (state.nickNameIsOK == false) { + logic.showToast("请输入昵称"); + } else { + logic.updateUserInfoRequest(); + } + }, ), - onPressed: () { - if (state.nickNameIsOK == false) { - logic.showToast("请输入昵称"); - } else { - logic.updateUserInfoRequest(); - } - }, - ), - ], + ], + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.changeNickName!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.save!.tr, + style: + TextStyle(color: AppColors.blackColor, fontSize: 24.sp), + ), + onPressed: () { + if (state.nickNameIsOK == false) { + logic.showToast("请输入昵称"); + } else { + logic.updateUserInfoRequest(); + } + }, + ), + ], + ), ), body: Container( padding: EdgeInsets.all(15.w), - child: Column( - children: [ - LoginInput( - controller: state.nickNameController, - onchangeAction: (textStr) { - logic.checkNext(state.nickNameController); - }, - isPwd: false, - leftWidget: SizedBox(width: 15.w), - hintText: - "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.nickName!.tr}", - inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), - ], - ), + child: listView(), )); } + + Widget listView() { + Widget view = Column( + mainAxisSize: MainAxisSize.min, + children: [ + LoginInput( + controller: state.nickNameController, + onchangeAction: (textStr) { + logic.checkNext(state.nickNameController); + }, + isPwd: false, + leftWidget: SizedBox(width: 15.w), + hintText: + "${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.nickName!.tr}", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + ], + ); + view = F.sw( + defaultCall: () => view, + xhjCall: () => Container( + margin: EdgeInsets.only(top: 20.h, left: 16.w, right: 16.w), + padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.r))), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: view, + ), + )); + return view; + } } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart index af0a0c97..b1b89894 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_logic.dart'; import '../../../appRouters.dart'; @@ -28,12 +29,24 @@ class _MineBindPhoneOrEmailPageState extends State { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: state.channel.value == "1" ? TranslationLoader.lanKeys!.mobileNumber!.tr : TranslationLoader.lanKeys!.email!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: state.channel.value == "1" + ? TranslationLoader.lanKeys!.mobileNumber!.tr + : TranslationLoader.lanKeys!.email!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Container( color: Colors.white, padding: EdgeInsets.only(top: 10.h, left: 30.w, right: 30.w), @@ -58,11 +71,12 @@ class _MineBindPhoneOrEmailPageState extends State { rightWidget: Text( '${state.countryName.value} +${state.countryCode.value}', textAlign: TextAlign.end, - style: - TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor), + style: TextStyle( + fontSize: 22.sp, color: AppColors.darkGrayTextColor), ), action: () async { - var result = await Get.toNamed(Routers.selectCountryRegionPage); + var result = + await Get.toNamed(Routers.selectCountryRegionPage); if (result != null) { result as Map; state.countryCode.value = result['code']; @@ -105,7 +119,8 @@ class _MineBindPhoneOrEmailPageState extends State { ), Obx(() => GestureDetector( onTap: () { - if (state.accountIsOK.value && state.canResend.value) { + if (state.accountIsOK.value && + state.canResend.value) { logic.sendValidationCode(); } }, diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart index 83fb131a..15fe701b 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_page.dart @@ -1,8 +1,8 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_logic.dart'; import '../../../appRouters.dart'; @@ -29,64 +29,25 @@ class _MinePersonInfoResetPasswordPageState Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.resetPasswords!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.resetPasswords!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: Container( margin: EdgeInsets.only(left: 30.w, right: 30.w), child: Column( children: [ - LoginInput( - controller: state.oldPwdController, - onchangeAction: (textStr) { - logic.changeInput(state.oldPwdController); - }, - isPwd: true, - leftWidget: Text( - "${TranslationLoader.lanKeys!.originalPassword!.tr} ", - style: TextStyle(fontSize: 22.sp), - ), - hintText: "", - inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), - LoginInput( - controller: state.newPwdController, - onchangeAction: (textStr) { - logic.changeInput(state.newPwdController); - }, - isPwd: true, - leftWidget: Text( - "${TranslationLoader.lanKeys!.newPassword!.tr} ", - style: TextStyle(fontSize: 22.sp), - ), - hintText: "", - inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), - LoginInput( - controller: state.surePwdController, - onchangeAction: (textStr) { - logic.changeInput(state.surePwdController); - }, - isPwd: true, - // isHaveLeftWidget: false, - leftWidget: Text( - "${TranslationLoader.lanKeys!.surePassword!.tr} ", - style: TextStyle(fontSize: 22.sp), - ), - hintText: "", - inputFormatters: [ - LengthLimitingTextInputFormatter(20), - ]), - Container( - width: 1.sw, - padding: EdgeInsets.only(top: 15.h, bottom: 10.h), - child: Text( - TranslationLoader.lanKeys!.registerPasswordTip!.tr, - style: TextStyle( - fontSize: 18.w, color: AppColors.darkGrayTextColor))), + loginView(), SizedBox(height: 50.w), Obx(() => SubmitBtn( btnName: TranslationLoader.lanKeys!.save!.tr, @@ -123,4 +84,76 @@ class _MinePersonInfoResetPasswordPageState ), )); } + + Widget loginView() { + Widget view = Column( + children: [ + LoginInput( + controller: state.oldPwdController, + onchangeAction: (textStr) { + logic.changeInput(state.oldPwdController); + }, + isPwd: true, + leftWidget: Text( + "${TranslationLoader.lanKeys!.originalPassword!.tr} ", + style: TextStyle(fontSize: 22.sp), + ), + hintText: "", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + LoginInput( + controller: state.newPwdController, + onchangeAction: (textStr) { + logic.changeInput(state.newPwdController); + }, + isPwd: true, + leftWidget: Text( + "${TranslationLoader.lanKeys!.newPassword!.tr} ", + style: TextStyle(fontSize: 22.sp), + ), + hintText: "", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + LoginInput( + controller: state.surePwdController, + onchangeAction: (textStr) { + logic.changeInput(state.surePwdController); + }, + isPwd: true, + // isHaveLeftWidget: false, + leftWidget: Text( + "${TranslationLoader.lanKeys!.surePassword!.tr} ", + style: TextStyle(fontSize: 22.sp), + ), + hintText: "", + inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + Container( + width: 1.sw, + padding: EdgeInsets.only(top: 15.h, bottom: 10.h), + child: Text(TranslationLoader.lanKeys!.registerPasswordTip!.tr, + style: TextStyle( + fontSize: 18.w, color: AppColors.darkGrayTextColor))), + ], + ); + view = F.sw( + defaultCall: () => view, + xhjCall: () => Container( + margin: EdgeInsets.only( + top: 20.h, + ), + padding: EdgeInsets.all(16.r), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.r))), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: view, + ), + )); + return view; + } } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart index 1f539807..6ff6bdb0 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_entity.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_logic.dart'; import 'package:star_lock/tools/custom_bottom_sheet.dart'; @@ -35,10 +36,20 @@ class _MinePersonInfoSetSafetyProblemPageState Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( + appBar: F.sw( + defaultCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.safetyProblem!.tr, haveBack: true, - backgroundColor: AppColors.mainColor), + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.safetyProblem!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + ), + ), body: ListView( children: [ Container( @@ -93,7 +104,7 @@ class _MinePersonInfoSetSafetyProblemPageState Widget _safityProblemItem(String problemTitle, String answerTitle, TextEditingController controller, Function() action) { - return Column( + Widget view = Column( children: [ CommonItem( leftTitel: problemTitle, @@ -125,6 +136,19 @@ class _MinePersonInfoSetSafetyProblemPageState ) ], ); + view = F.sw( + defaultCall: () => view, + xhjCall: () => Container( + margin: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.r))), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: view, + ), + )); + return view; } Future _selectProblemBottomSheet(List dataList, int problemIndex) async { diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart index eaad3dc3..01181525 100644 --- a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart @@ -53,16 +53,44 @@ class _MineSetPageState extends State with WidgetsBindingObserver { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.moreSet!.tr, - haveBack: true, - backgroundColor: AppColors.mainColor), + appBar: F.sw( + defaultCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.moreSet!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + ), + xhjCall: () => TitleAppBar( + barTitle: TranslationLoader.lanKeys!.moreSet!.tr, + haveBack: true, + backgroundColor: Colors.white, + iconColor: AppColors.blackColor, + titleColor: AppColors.blackColor, + )), body: SingleChildScrollView( - child: getListDataView(), + child: styleHierarchy(), ), ); } + //样式层级 + Widget styleHierarchy() { + Widget view = getListDataView(); + view = F.sw( + defaultCall: () => view, + xhjCall: () => Container( + margin: EdgeInsets.only( + top: 20.h, left: 20.w, right: 20.w, bottom: 40.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20.r))), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.r), + child: view, + ), + )); + return view; + } + Widget getListDataView() { return Column( children: [ @@ -283,6 +311,7 @@ class _MineSetPageState extends State with WidgetsBindingObserver { SubmitBtn( btnName: TranslationLoader.lanKeys!.logout!.tr, isDelete: true, + padding: EdgeInsets.symmetric(horizontal: 15.w), onClick: () { //退出登录 ShowTipView().showIosTipWithContentDialog("确定要退出吗?".tr, () { diff --git a/star_lock/lib/tools/submitBtn.dart b/star_lock/lib/tools/submitBtn.dart index d126817c..2fea82d7 100644 --- a/star_lock/lib/tools/submitBtn.dart +++ b/star_lock/lib/tools/submitBtn.dart @@ -31,6 +31,7 @@ class SubmitBtn extends StatelessWidget { bool? isDelete; bool? isDisabled; + SubmitBtn({ Key? key, required this.btnName, @@ -48,7 +49,7 @@ class SubmitBtn extends StatelessWidget { @override Widget build(BuildContext context) { - return SizedBox( + return Container( width: ScreenUtil().screenWidth - 40.w, height: 60.h, child: ElevatedButton(