diff --git a/star_lock/images/icon_about.png b/star_lock/images/icon_about.png new file mode 100644 index 00000000..fa5d299e Binary files /dev/null and b/star_lock/images/icon_about.png differ diff --git a/star_lock/images/icon_main_1024.png b/star_lock/images/icon_main_1024.png index aa0093ef..e8cdae88 100644 Binary files a/star_lock/images/icon_main_1024.png and b/star_lock/images/icon_main_1024.png differ diff --git a/star_lock/images/icon_noData.png b/star_lock/images/icon_noData.png new file mode 100644 index 00000000..2283ab1b Binary files /dev/null and b/star_lock/images/icon_noData.png differ diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index b25cd712..567fc529 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -212,7 +212,7 @@ "pushNotification":"消息推送", "lockUserManagement":"锁用户管理", "ownedKey":"拥有的钥匙", - "authorityManagement":"权限管理", + "authorityManagement":"批量授权", "associatedDevice":"关联设备", "associatedName":"关联姓名", "device":"设备", diff --git a/star_lock/images/lockType/addLock_entranceGuardBg.png b/star_lock/images/lockType/addLock_entranceGuardBg.png new file mode 100644 index 00000000..ccc23b1b Binary files /dev/null and b/star_lock/images/lockType/addLock_entranceGuardBg.png differ diff --git a/star_lock/images/lockType/addLock_parkingBg.png b/star_lock/images/lockType/addLock_parkingBg.png new file mode 100644 index 00000000..ad13578c Binary files /dev/null and b/star_lock/images/lockType/addLock_parkingBg.png differ diff --git a/star_lock/images/lockType/addLock_safeBg.png b/star_lock/images/lockType/addLock_safeBg.png new file mode 100644 index 00000000..546c1d91 Binary files /dev/null and b/star_lock/images/lockType/addLock_safeBg.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fab..77cf5ba4 100644 --- a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1,121 @@ { "images" : [ { - "size" : "20x20", + "filename" : "icon-20@2x.png", "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { - "size" : "20x20", + "filename" : "icon-20@3x.png", "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { - "size" : "29x29", "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" + "scale" : "1x", + "size" : "29x29" }, { - "size" : "29x29", + "filename" : "icon-29@2x.png", "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { - "size" : "29x29", + "filename" : "icon-29@3x.png", "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { - "size" : "40x40", + "filename" : "icon-40@2x.png", "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { - "size" : "40x40", + "filename" : "icon-40@3x.png", "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" }, { - "size" : "60x60", + "filename" : "icon-60@2x.png", "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" + "scale" : "2x", + "size" : "60x60" }, { - "size" : "60x60", + "filename" : "icon-60@3x.png", "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" + "scale" : "3x", + "size" : "60x60" }, { - "size" : "20x20", - "idiom" : "ipad", "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" }, { - "size" : "20x20", - "idiom" : "ipad", "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" }, { - "size" : "29x29", - "idiom" : "ipad", "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" }, { - "size" : "29x29", - "idiom" : "ipad", "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" }, { - "size" : "40x40", - "idiom" : "ipad", "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" }, { - "size" : "40x40", - "idiom" : "ipad", "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" }, { - "size" : "76x76", - "idiom" : "ipad", "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" }, { - "size" : "76x76", - "idiom" : "ipad", "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "Icon-App-83.5x83.5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" }, { - "size" : "1024x1024", - "idiom" : "ios-marketing", "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index f091b6b0..00000000 Binary files a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index dcdc2306..00000000 Binary files a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index a6d6b860..00000000 Binary files a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index a6d6b860..00000000 Binary files a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 75b2d164..00000000 Binary files a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png new file mode 100644 index 00000000..acce7ba6 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png new file mode 100644 index 00000000..820fb5e9 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png new file mode 100644 index 00000000..58d0d204 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png new file mode 100644 index 00000000..3e64f3be Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100644 index 00000000..267db673 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png new file mode 100644 index 00000000..cc9a1c77 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100644 index 00000000..cc9a1c77 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100644 index 00000000..3c4fdd30 Binary files /dev/null and b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/star_lock/ios/Runner/Info.plist b/star_lock/ios/Runner/Info.plist index ec207f04..dda1720c 100644 --- a/star_lock/ios/Runner/Info.plist +++ b/star_lock/ios/Runner/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Star Lock + 星锁 CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - star_lock + 星锁 CFBundlePackageType APPL CFBundleShortVersionString @@ -57,11 +57,11 @@ UILaunchStoryboardName LaunchScreen - UIApplicationSceneManifest - - UISceneConfigurations - - + UIApplicationSceneManifest + + UISceneConfigurations + + UIMainStoryboardFile Main UISupportedInterfaceOrientations diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 6b63dfe0..8b51ab48 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -12,7 +12,7 @@ import 'package:star_lock/mine/about/webviewShow_page.dart'; import 'package:star_lock/mine/mine/safeVerify/safeVerify_page.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/mineBindPhoneOrEmail_page.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_page.dart'; -import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart'; +import 'package:star_lock/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart'; import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart'; @@ -318,7 +318,7 @@ abstract class Routers { static const getDeviceListPage = '/getDeviceListPage'; //设备列表 static const getNameListPage = '/getNameListPage'; //姓名列表 - static const authorityManagementPage = '/authorityManagementPage'; //权限管理 + static const authorityManagementPage = '/authorityManagementPage'; //批量授权 static const massSendLockGroupPage = '/massSendLockGroupPage'; //群发锁分组列表 static const massSendReceiverPage = '/massSendReceiverPage'; //群发接收人 static const lockUserListPage = '/lockUserListPage'; //锁用户列表 diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart index 79024fb1..19c2a8f2 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart @@ -5,6 +5,7 @@ import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity import 'package:star_lock/main/lockMian/entity/lockInfoEntity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/noData.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -116,32 +117,34 @@ class _AuthorizedAdminListPageState extends State { Widget _buildMainUI(itemData) { List getItemData = itemData; - return ListView.builder( - itemCount: getItemData.length, - itemBuilder: (c, index) { - ElectronicKeyListItem indexEntity = getItemData[index]; - String useDateStr = ''; //使用期限 - String keyStatus = ''; //钥匙状态 + return getItemData.isEmpty + ? const NoData() + : ListView.builder( + itemCount: getItemData.length, + itemBuilder: (c, index) { + ElectronicKeyListItem indexEntity = getItemData[index]; + String useDateStr = ''; //使用期限 + String keyStatus = ''; //钥匙状态 - //使用期限 - useDateStr = getUseDateStr(indexEntity); + //使用期限 + useDateStr = getUseDateStr(indexEntity); - //钥匙状态 - keyStatus = getKeyStatus(indexEntity.keyStatus); + //钥匙状态 + keyStatus = getKeyStatus(indexEntity.keyStatus); - //是否为管理钥匙 - bool isAdminKey = false; - if (indexEntity.keyRight == 1) { - isAdminKey = true; - } else { - isAdminKey = false; - } - return _electronicKeyItem('images/controls_user.png', - indexEntity.keyName!, useDateStr, keyStatus, isAdminKey, () { - Navigator.pushNamed(context, Routers.electronicKeyDetailPage, - arguments: {'itemData': indexEntity}); - }); - }); + //是否为管理钥匙 + bool isAdminKey = false; + if (indexEntity.keyRight == 1) { + isAdminKey = true; + } else { + isAdminKey = false; + } + return _electronicKeyItem('images/controls_user.png', + indexEntity.keyName!, useDateStr, keyStatus, isAdminKey, () { + Navigator.pushNamed(context, Routers.electronicKeyDetailPage, + arguments: {'itemData': indexEntity}); + }); + }); } //使用期限 diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart new file mode 100644 index 00000000..e69de29b diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart index 049f00dc..b5fafa4e 100644 --- a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart @@ -26,6 +26,7 @@ class VolumeAuthorizationLockPage extends StatefulWidget { _VolumeAuthorizationLockPageState(); } +//批量授权锁页面 class _VolumeAuthorizationLockPageState extends State { final FlutterContactPicker _contactPicker = FlutterContactPicker(); diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart new file mode 100644 index 00000000..e69de29b diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart index 7220a588..46738132 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserList_page.dart @@ -5,6 +5,7 @@ import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserListEntity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/translations/trans_lib.dart'; @@ -56,16 +57,19 @@ class _LockUserListPageState extends State { height: 20.h, ), Expanded( - child: ListView.separated( - itemBuilder: (context, index) { - LockUserData indexEntity = dataList[index]; - return _electronicKeyItem(indexEntity); - }, - itemCount: dataList.length, - separatorBuilder: (context, index) { - return const Divider(height: 1, color: AppColors.greyLineColor); - }, - )), + child: dataList.isEmpty + ? const NoData() + : ListView.separated( + itemBuilder: (context, index) { + LockUserData indexEntity = dataList[index]; + return _electronicKeyItem(indexEntity); + }, + itemCount: dataList.length, + separatorBuilder: (context, index) { + return const Divider( + height: 1, color: AppColors.greyLineColor); + }, + )), Container( height: 120.h, padding: EdgeInsets.only(left: 20.w, right: 20.w, top: 0.h), diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart index b2cf104b..99a2bbda 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupList_page.dart @@ -122,6 +122,11 @@ class _MassSendLockGroupListPageState extends State { onTap: () { selectGroupIdList.add(index); clickIndex = index; + //是否选中组 + if (itemData.isChecked) { + // lockItemList[selectIndex] = + } + print('选中了么0'); }, typeImgList: const [], groupItem: itemData, 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 3fa0163b..41d19843 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 @@ -201,7 +201,9 @@ class _SendElectronicKeyPageState extends State { isHaveRightWidget: true, rightWidget: SizedBox( width: 60.w, height: 50.h, child: _remoteSwitch(false)), - action: () {}), + action: () { + // Toast.show(msg: '此功能暂未开放'); + }), ], ); } diff --git a/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart index 96931fcc..db766ed6 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_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/tools/noData.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; @@ -14,6 +15,7 @@ class NearbyDoorMagneticPage extends StatefulWidget { } class _NearbyDoorMagneticPageState extends State { + List dataList = []; @override Widget build(BuildContext context) { return Scaffold( @@ -22,13 +24,16 @@ class _NearbyDoorMagneticPageState extends State { barTitle: TranslationLoader.lanKeys!.nearbyEquipment!.tr, haveBack: true, backgroundColor: AppColors.mainColor), - body: ListView.builder( - itemCount: 20, - itemBuilder: (c, index) { - return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () { - // Navigator.pushNamed(context, Routers.saveLockPage); - }); - }), + body: dataList.isEmpty + ? const NoData() + : ListView.builder( + itemCount: dataList.length, + itemBuilder: (c, index) { + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", + () { + // Navigator.pushNamed(context, Routers.saveLockPage); + }); + }), ); } diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart index 040a9e92..eaf98944 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart @@ -65,42 +65,65 @@ class _LockSetPageState extends State with RouteAware { 'keyInfo': state.getKeyInfosData.value }); }), - SizedBox(height: 10.h,), + SizedBox( + height: 10.h, + ), // 门磁 Visibility( visible: true, - child:CommonItem( - leftTitel: TranslationLoader.lanKeys!.doorMagnetic!.tr, + child: CommonItem( + leftTitel: + TranslationLoader.lanKeys!.doorMagnetic!.tr, rightTitle: "", isHaveLine: true, isHaveDirection: true, action: () { - // Get.toNamed(Routers.doorMagneticPage); - Toast.show(msg: "功能暂未开放"); - }) - ), + Get.toNamed(Routers.doorMagneticPage); + // Toast.show(msg: "功能暂未开放"); + })), // 无线键盘 Visibility( visible: true, child: CommonItem( leftTitel: - TranslationLoader.lanKeys!.wirelessKeyboard!.tr, + TranslationLoader.lanKeys!.wirelessKeyboard!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.wirelessKeyboardPage); + // Toast.show(msg: "功能暂未开放"); + })), + Visibility( + visible: true, + child: CommonItem( + leftTitel: '照明', + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Toast.show(msg: "功能暂未开放"); + })), + Visibility( + visible: true, + child: CommonItem( + leftTitel: '开门器', rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { - // Get.toNamed(Routers.wirelessKeyboardPage); Toast.show(msg: "功能暂未开放"); - }) - ), + })), SizedBox(height: 10.h), // 自动闭锁 Obx(() => Visibility( visible: true, child: CommonItem( leftTitel: - TranslationLoader.lanKeys!.automaticBlocking!.tr, - rightTitle: state.getKeyInfosData.value.autoLockTime! > -1 + TranslationLoader.lanKeys!.automaticBlocking!.tr, + rightTitle: state + .getKeyInfosData.value.autoLockTime! > + -1 ? "${state.getKeyInfosData.value.autoLockTime!.toString()}s" : TranslationLoader.lanKeys!.closed!.tr, isHaveLine: true, @@ -108,8 +131,7 @@ class _LockSetPageState extends State with RouteAware { action: () { Get.toNamed(Routers.automaticBlockingPage, arguments: state.getKeyInfosData.value); - })) - ), + }))), // 锁声音 Obx(() { var titleStr = ""; @@ -144,144 +166,144 @@ class _LockSetPageState extends State with RouteAware { action: () { Get.toNamed(Routers.lockSoundSetPage, arguments: state.getKeyInfosData.value); - }) - ); + })); }), // 防撬报警 Obx(() => Visibility( visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr, - rightTitle: state.getKeyInfosData.value.tamperAlert == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.burglarAlarmPage, - arguments: state.getKeyInfosData.value); - }))), + leftTitel: + TranslationLoader.lanKeys!.burglarAlarm!.tr, + rightTitle: + state.getKeyInfosData.value.tamperAlert == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.burglarAlarmPage, + arguments: state.getKeyInfosData.value); + }))), SizedBox(height: 10.h), // 常开模式 Obx(() => Visibility( - visible: true, + visible: true, child: CommonItem( - leftTitel: - TranslationLoader.lanKeys!.normallyOpenMode!.tr, - rightTitle: state.getKeyInfosData.value.passageMode == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.normallyOpenModePage, - arguments: state.getKeyInfosData.value); - })) - ), + leftTitel: + TranslationLoader.lanKeys!.normallyOpenMode!.tr, + rightTitle: + state.getKeyInfosData.value.passageMode == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.normallyOpenModePage, + arguments: state.getKeyInfosData.value); + }))), // 远程开锁 Obx(() => Visibility( - visible:true, + visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr, - rightTitle: state.getKeyInfosData.value.remoteEnable == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.remoteUnlockingPage, - arguments: state.getKeyInfosData.value); - })) - ), + leftTitel: + TranslationLoader.lanKeys!.remoteUnlocking!.tr, + rightTitle: + state.getKeyInfosData.value.remoteEnable == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.remoteUnlockingPage, + arguments: state.getKeyInfosData.value); + }))), // 重置键 Obx(() => Visibility( visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, - rightTitle: state.getKeyInfosData.value.resetButton == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.resetButtonPage, - arguments: state.getKeyInfosData.value); - })) - ), + leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, + rightTitle: + state.getKeyInfosData.value.resetButton == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.resetButtonPage, + arguments: state.getKeyInfosData.value); + }))), SizedBox(height: 10.h), //---田总新增展示 // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: '面容开锁', - rightTitle: "", - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _otherUnHaveDoneSwitch()))), + leftTitel: '面容开锁', + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: SizedBox( + width: 60.w, child: _otherUnHaveDoneSwitch()))), // ), // Obx(() => - Visibility( - visible: true, - child: CommonItem( - leftTitel: '感应距离', - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Toast.show(msg: "功能暂未开放"); - } - )), + Visibility( + visible: true, + child: CommonItem( + leftTitel: '感应距离', + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Toast.show(msg: "功能暂未开放"); + })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: '自动亮屏', rightTitle: "", isHaveLine: true, isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _otherUnHaveDoneSwitch()))), + rightWidget: SizedBox( + width: 60.w, child: _otherUnHaveDoneSwitch()))), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: '逗留警告', rightTitle: "", isHaveLine: true, isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _otherUnHaveDoneSwitch()))), + rightWidget: SizedBox( + width: 60.w, child: _otherUnHaveDoneSwitch()))), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: '异常警告', rightTitle: "", isHaveLine: true, isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _otherUnHaveDoneSwitch()))), + rightWidget: SizedBox( + width: 60.w, child: _otherUnHaveDoneSwitch()))), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: '开门方向设置', - rightTitle: "", - isHaveDirection: true, - isHaveLine: true, + leftTitel: '开门方向设置', + rightTitle: "", + isHaveDirection: true, + isHaveLine: true, action: () { Toast.show(msg: "功能暂未开放"); - } - )), + })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: '电机功率设置', @@ -290,8 +312,7 @@ class _LockSetPageState extends State with RouteAware { isHaveDirection: true, action: () { Toast.show(msg: "功能暂未开放"); - } - )), + })), // ), SizedBox(height: 10.h), //-----新增至此 @@ -306,42 +327,41 @@ class _LockSetPageState extends State with RouteAware { visible: true, child: CommonItem( leftTitel: - TranslationLoader.lanKeys!.markedHouseState!.tr, + TranslationLoader.lanKeys!.markedHouseState!.tr, rightTitle: title, isHaveLine: true, isHaveDirection: true, action: () { Get.toNamed(Routers.markedHouseStatePage, arguments: state.getKeyInfosData.value); - }) - ); + })); }), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr, rightTitle: "", isHaveLine: true, isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _openCheckInSwitch()) - )), + rightWidget: SizedBox( + width: 60.w, child: _openCheckInSwitch()))), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr, + leftTitel: + TranslationLoader.lanKeys!.unlockReminder!.tr, rightTitle: "", isHaveLine: false, isHaveRightWidget: true, - rightWidget: - SizedBox(width: 60.w, child: _lockRemindSwitch()))), + rightWidget: SizedBox( + width: 60.w, child: _lockRemindSwitch()))), // ), SizedBox(height: 10.h), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: TranslationLoader @@ -354,20 +374,20 @@ class _LockSetPageState extends State with RouteAware { })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.lockTime!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.lockTimePage, - arguments: state.getKeyInfosData.value); - })), + leftTitel: TranslationLoader.lanKeys!.lockTime!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.lockTimePage, + arguments: state.getKeyInfosData.value); + })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: TranslationLoader.lanKeys!.diagnose!.tr, @@ -380,7 +400,7 @@ class _LockSetPageState extends State with RouteAware { })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( leftTitel: TranslationLoader.lanKeys!.uploadData!.tr, @@ -392,11 +412,11 @@ class _LockSetPageState extends State with RouteAware { })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: - TranslationLoader.lanKeys!.importOtherLockData!.tr, + leftTitel: TranslationLoader + .lanKeys!.importOtherLockData!.tr, rightTitle: "", isHaveLine: true, isHaveDirection: true, @@ -405,10 +425,11 @@ class _LockSetPageState extends State with RouteAware { })), // ), // Obx(() => - Visibility( + Visibility( visible: true, child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.lockEscalation!.tr, + leftTitel: + TranslationLoader.lanKeys!.lockEscalation!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, @@ -418,7 +439,8 @@ class _LockSetPageState extends State with RouteAware { // ), SizedBox(height: 30.h), Container( - padding: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 30.h), + padding: + EdgeInsets.only(left: 20.w, right: 20.w, bottom: 30.h), child: SubmitBtn( btnName: TranslationLoader.lanKeys!.delete!.tr, isDelete: true, diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart index 9c10986a..1a702446 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart @@ -78,15 +78,15 @@ class _AddWirelessKeyboardPageState extends State { SizedBox( height: 20.h, ), - Container( - margin: EdgeInsets.only(left: 20.w, right: 20.w), - child: SubmitBtn( - btnName: TranslationLoader.lanKeys!.theScreenNeverFlickered!.tr, - onClick: () { - Navigator.pushNamed( - context, Routers.addWirelessKeyboardScreenNotLightOnPage); - }), - ), + // Container( + // margin: EdgeInsets.only(left: 20.w, right: 20.w), + // child: SubmitBtn( + // btnName: TranslationLoader.lanKeys!.theScreenNeverFlickered!.tr, + // onClick: () { + // Navigator.pushNamed( + // context, Routers.addWirelessKeyboardScreenNotLightOnPage); + // }), + // ), ], ), ); diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart index cb8f7d8e..e283a5c4 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_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/tools/noData.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; @@ -15,6 +16,7 @@ class SeletWirelessKeyboardPage extends StatefulWidget { } class _SeletWirelessKeyboardPageState extends State { + List dataList = []; @override Widget build(BuildContext context) { return Scaffold( @@ -24,13 +26,16 @@ class _SeletWirelessKeyboardPageState extends State { "${TranslationLoader.lanKeys!.selet!.tr}${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}", haveBack: true, backgroundColor: AppColors.mainColor), - body: ListView.builder( - itemCount: 20, - itemBuilder: (c, index) { - return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () { - // Navigator.pushNamed(context, Routers.saveLockPage); - }); - }), + body: dataList.isEmpty + ? const NoData() + : ListView.builder( + itemCount: 20, + itemBuilder: (c, index) { + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", + () { + // Navigator.pushNamed(context, Routers.saveLockPage); + }); + }), ); } diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart index 6c5df03b..73b58c0f 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/tools/noData.dart'; import '../../../../../appRouters.dart'; import '../../../../../app_settings/app_colors.dart'; @@ -17,6 +18,7 @@ class WirelessKeyboardPage extends StatefulWidget { } class _WirelessKeyboardPageState extends State { + List dataList = []; @override Widget build(BuildContext context) { return Scaffold( @@ -55,14 +57,16 @@ class _WirelessKeyboardPageState extends State { } Widget _buildMainUI() { - return ListView.builder( - itemCount: 10, - itemBuilder: (c, index) { - return _electronicKeyItem('images/icon_password.png', "张三", - "2023.6.21 11.15", "2023.6.21 11.15", () { - // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); - }); - }); + return dataList.isEmpty + ? const NoData() + : ListView.builder( + itemCount: 10, + itemBuilder: (c, index) { + return _electronicKeyItem('images/icon_password.png', "张三", + "2023.6.21 11.15", "2023.6.21 11.15", () { + // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + }); } Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 4343dd43..3b486de7 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -86,7 +86,7 @@ class _LockDetailPageState extends State with RouteAware { // KeyInfos keyInfo = widget.lockMainEntity.data!.keyInfos![0]; return Column( children: [ - SizedBox(height: 30.h), + SizedBox(height: 50.h), Stack( alignment: Alignment.centerRight, children: [ @@ -120,7 +120,7 @@ class _LockDetailPageState extends State with RouteAware { Container( // width: 1.sw, color: Colors.white, - height: 280.w, + height: 330.w, child: Stack( children: [ Center( @@ -131,8 +131,11 @@ class _LockDetailPageState extends State with RouteAware { // logic.editLockUserAction(); // logic.factoryDataResetAction(); }, - child: Image.asset('images/main/icon_main_openLockBtn.png', - width: 268.w, height: 268.w), + child: Image.asset( + 'images/main/icon_main_openLockBtn.png', + width: 330.w, + height: 330.w, + ), )), // Visibility( // visible: @@ -150,21 +153,21 @@ class _LockDetailPageState extends State with RouteAware { SizedBox( height: 30.h, ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - '门已上锁', - style: TextStyle( - fontSize: 26.sp, - color: Colors.black, - fontWeight: FontWeight.w500), - ), - ], - ), - SizedBox( - height: 6.h, - ), + // Row( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Text( + // '门已上锁', + // style: TextStyle( + // fontSize: 26.sp, + // color: Colors.black, + // fontWeight: FontWeight.w500), + // ), + // ], + // ), + // SizedBox( + // height: 6.h, + // ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -187,14 +190,15 @@ class _LockDetailPageState extends State with RouteAware { 'images/icon_electronicKey_admin.png', width: 24.w, height: 20.w, + color: AppColors.mainColor, //应根据状态显示(当前角色为超级管理员 应显示蓝色图标) ), SizedBox( width: 6.w, ), Text( '超级管理员', - style: - TextStyle(fontSize: 20.sp, color: AppColors.btnDisableColor), + style: TextStyle( + fontSize: 20.sp, color: AppColors.darkGrayTextColor), ), SizedBox( width: 80.w, @@ -265,10 +269,10 @@ class _LockDetailPageState extends State with RouteAware { bottomItem('images/main/icon_main_electronicKey.png', TranslationLoader.lanKeys!.electronicKey!.tr, () { Get.toNamed(Routers.electronicKeyListPage, arguments: { - "lockMainEntity": widget.lockMainEntity, - "keyInfo": widget.keyInfo - }); - }), + "lockMainEntity": widget.lockMainEntity, + "keyInfo": widget.keyInfo + }); + }), // 密码 bottomItem('images/main/icon_main_password.png', @@ -280,28 +284,24 @@ class _LockDetailPageState extends State with RouteAware { }), // ic卡 - bottomItem('images/main/icon_main_icCard.png', TranslationLoader.lanKeys!.card!.tr, () { - Get.toNamed(Routers.otherTypeKeyListPage, arguments: { - "lockId": widget.keyInfo.lockId, - "fromType": 0 - }); - }), + bottomItem('images/main/icon_main_icCard.png', + TranslationLoader.lanKeys!.card!.tr, () { + Get.toNamed(Routers.otherTypeKeyListPage, + arguments: {"lockId": widget.keyInfo.lockId, "fromType": 0}); + }), // 指纹 - bottomItem('images/main/icon_main_fingerprint.png', TranslationLoader.lanKeys!.fingerprint!.tr, () { - Get.toNamed(Routers.otherTypeKeyListPage, arguments: { - "lockId": widget.keyInfo.lockId, - "fromType": 1 - }); + bottomItem('images/main/icon_main_fingerprint.png', + TranslationLoader.lanKeys!.fingerprint!.tr, () { + Get.toNamed(Routers.otherTypeKeyListPage, + arguments: {"lockId": widget.keyInfo.lockId, "fromType": 1}); }), // 遥控 - bottomItem('images/main/icon_main_remoteControl.png', TranslationLoader.lanKeys!.remoteControl!.tr, () { - // Get.toNamed(Routers.otherTypeKeyListPage, arguments: { - // "lockId": widget.keyInfo.lockId, - // "fromType": 2 - // }); - Toast.show(msg: "功能暂未开放"); + bottomItem('images/main/icon_main_remoteControl.png', + TranslationLoader.lanKeys!.remoteControl!.tr, () { + Get.toNamed(Routers.otherTypeKeyListPage, + arguments: {"lockId": widget.keyInfo.lockId, "fromType": 2}); }), ]; showWidgetArr.addAll(defaultWidgetArr); @@ -345,7 +345,7 @@ class _LockDetailPageState extends State with RouteAware { bottomItem( 'images/main/icon_main_set.png', TranslationLoader.lanKeys!.set!.tr, () { - BlueManage().stopScan(); + BlueManage().stopScan(); Get.toNamed(Routers.lockSetPage, arguments: widget.keyInfo); }), ]; diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_logic.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_logic.dart index 4d35223a..2371827b 100644 --- a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_logic.dart +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_logic.dart @@ -1,4 +1,3 @@ - import 'dart:math'; import 'package:get/get.dart'; @@ -13,19 +12,19 @@ class OtherTypeAddKeyLogic extends BaseGetXController { OtherTypeAddKeyState state = OtherTypeAddKeyState(); // 添加指纹 - void addFingerprintsData() async{ - var fingerprintType = 0;// 永久:1;限时2,单次3,循环:4 + void addFingerprintsData() async { + var fingerprintType = 0; // 永久:1;限时2,单次3,循环:4 var startDate = ""; var endDate = ""; - if(state.seletType.value == "0"){ + if (state.seletType.value == "0") { fingerprintType = 1; - }else if(state.seletType.value == "1"){ + } else if (state.seletType.value == "1") { fingerprintType = 2; - if(state.beginTimeTimestamp.value.isEmpty){ + if (state.beginTimeTimestamp.value.isEmpty) { Toast.show(msg: "请选择开始时间"); return; } - if(state.endTimeTimestamp.value.isEmpty){ + if (state.endTimeTimestamp.value.isEmpty) { Toast.show(msg: "请选择开始时间"); return; } @@ -35,25 +34,27 @@ class OtherTypeAddKeyLogic extends BaseGetXController { // return; // } - print("fasdfasdfasdf:${int.parse(state.beginTimeTimestamp.value)} == ${int.parse(state.endTimeTimestamp.value)}"); - if(int.parse(state.beginTimeTimestamp.value) >= int.parse(state.endTimeTimestamp.value)){ + print( + "fasdfasdfasdf:${int.parse(state.beginTimeTimestamp.value)} == ${int.parse(state.endTimeTimestamp.value)}"); + if (int.parse(state.beginTimeTimestamp.value) >= + int.parse(state.endTimeTimestamp.value)) { Toast.show(msg: "失效时间要大于生效时间"); return; } startDate = state.beginTimeTimestamp.value; endDate = state.endTimeTimestamp.value; - }else if(state.seletType.value == "2"){ - if(state.effectiveDateTime.value <= 0){ + } else if (state.seletType.value == "2") { + if (state.effectiveDateTime.value <= 0) { Toast.show(msg: "请选择生效时间"); return; } - if(state.failureDateTime.value <= 0){ + if (state.failureDateTime.value <= 0) { Toast.show(msg: "请选择失效时间"); return; } - if(state.weekdaysList.value.isEmpty){ + if (state.weekdaysList.value.isEmpty) { Toast.show(msg: "请选择有效日"); return; } @@ -63,7 +64,7 @@ class OtherTypeAddKeyLogic extends BaseGetXController { // return; // } - if(state.effectiveDateTime.value >= state.failureDateTime.value){ + if (state.effectiveDateTime.value >= state.failureDateTime.value) { Toast.show(msg: "失效时间要大于生效时间"); return; } @@ -81,7 +82,8 @@ class OtherTypeAddKeyLogic extends BaseGetXController { "endDate": endDate, "addType": "1", "cardName": state.nameController.text, - "cardNumber": (Random().nextInt(100000000) + 10000000).floor().toString(), + "cardNumber": + (Random().nextInt(100000000) + 10000000).floor().toString(), "cardType": fingerprintType.toString(), "isCoerced": state.isStressFingerprint.value ? "1" : "2", "startDate": startDate, @@ -108,6 +110,20 @@ class OtherTypeAddKeyLogic extends BaseGetXController { break; case 1: // 指纹 + Get.toNamed(Routers.addFingerprintPage, arguments: { + "lockId": state.lockId.value, + "endDate": endDate, + "addType": "1", + "fingerprintName": state.nameController.text, + "fingerprintNumber": "123456", + "fingerprintType": fingerprintType.toString(), + "isCoerced": state.isStressFingerprint.value ? "1" : "2", + "startDate": startDate, + "weekDay": state.weekdaysList.value, + "fromType": state.fromType.value, + }); + + /* 根据田总需求 无需tips页面 直接跳转到添加页面 Get.toNamed(Routers.addFingerprintTipPage, arguments: { "lockId": state.lockId.value, "endDate": endDate, @@ -120,6 +136,7 @@ class OtherTypeAddKeyLogic extends BaseGetXController { "weekDay": state.weekdaysList.value, "fromType": state.fromType.value, }); + */ // var entity = await ApiRepository.to.addFingerprintsData( // lockId: state.lockId.value.toString(), @@ -138,34 +155,28 @@ class OtherTypeAddKeyLogic extends BaseGetXController { // } break; case 2: - // 遥控 + // 遥控 break; default: break; } - } @override void onReady() { // TODO: implement onReady super.onReady(); - - } @override void onInit() { // TODO: implement onInit super.onInit(); - } @override void onClose() { // TODO: implement onClose - } - -} \ No newline at end of file +} diff --git a/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart b/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart index b7baff7b..67c4a8f3 100644 --- a/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/star_lock/lib/main/lockMian/lockMain/lockMain_page.dart @@ -5,6 +5,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/tools/submitBtn.dart'; import '../../../appRouters.dart'; import '../../../baseWidget.dart'; @@ -99,7 +100,7 @@ class _StarLockMainPageState extends State with BaseWidget { Widget unHaveData() { return Column( - mainAxisAlignment: MainAxisAlignment.center, + // mainAxisAlignment: MainAxisAlignment.center, children: [ Row( mainAxisAlignment: MainAxisAlignment.center, @@ -107,6 +108,7 @@ class _StarLockMainPageState extends State with BaseWidget { Container( width: 330.w, height: 330.w, + margin: EdgeInsets.only(top: 180.h), // decoration: BoxDecoration( // border: Border.all(width: 4.w, color: AppColors.mainColor), // borderRadius: BorderRadius.circular(110.w), @@ -133,11 +135,8 @@ class _StarLockMainPageState extends State with BaseWidget { )), ], ), - SizedBox( - height: h(50.h), - ), Container( - padding: EdgeInsets.all(30.w), + padding: EdgeInsets.only(top: 10.h), child: Text( TranslationLoader .lanKeys!.whenAddingLockThePhoneMustBeNextToTheLock!.tr, @@ -145,7 +144,11 @@ class _StarLockMainPageState extends State with BaseWidget { fontSize: 26.sp, // fontWeight: FontWeight.w800, color: Colors.black), - )) + )), + SizedBox( + height: 200.h, + ), + SubmitBtn(btnName: '演示模式') ], ); } diff --git a/star_lock/lib/mine/about/about_page.dart b/star_lock/lib/mine/about/about_page.dart index 63074596..db300f55 100644 --- a/star_lock/lib/mine/about/about_page.dart +++ b/star_lock/lib/mine/about/about_page.dart @@ -12,10 +12,14 @@ import '../../translations/trans_lib.dart'; // 网页的宏定义网址 class XSWebviewURLMacro { static const baseWebURL = 'https://pre.lock.star-lock.cn:8093'; //baseURL - static const userAgreementURL = - '$baseWebURL/page/detail?pageId=1&lang=cn'; //1用户协议 - static const privacyPolicyURL = - '$baseWebURL/page/detail?pageId=2&lang=cn'; //2隐私政策 + static const userAgreementURL = '$baseWebURL/app/userAgreement'; //用户协议 + static const privacyPolicyURL = '$baseWebURL/app/privacy'; //隐私政策 + static const collectionListURL = + '$baseWebURL/app/personalInformationCollectionList'; //个人信息收集清单 + static const thirdPartyInfShareListURL = + '$baseWebURL/app/thirdPartyInformationSharingList'; //第三方信息共享清单 + static const appPermissionDescURL = + '$baseWebURL/app/applicationPermissionDescription'; //应用权限说明 } class AbountPage extends StatefulWidget { @@ -66,7 +70,11 @@ class _AbountPageState extends State { isHaveLine: false, isHaveDirection: true, action: () { - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.webviewShowPage, + arguments: { + "url": XSWebviewURLMacro.userAgreementURL, + "title": '介绍' + }); }), Divider( height: 1, @@ -117,7 +125,11 @@ class _AbountPageState extends State { isHaveLine: false, isHaveDirection: true, action: () { - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.webviewShowPage, + arguments: { + "url": XSWebviewURLMacro.collectionListURL, + "title": '个人信息收集清单' + }); }), Divider( height: 1, @@ -132,7 +144,11 @@ class _AbountPageState extends State { isHaveLine: false, isHaveDirection: true, action: () { - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.webviewShowPage, + arguments: { + "url": XSWebviewURLMacro.appPermissionDescURL, + "title": '应用权限说明' + }); }), Divider( height: 1, @@ -147,7 +163,11 @@ class _AbountPageState extends State { isHaveLine: false, isHaveDirection: true, action: () { - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.webviewShowPage, + arguments: { + "url": XSWebviewURLMacro.thirdPartyInfShareListURL, + "title": '第三方信息共享清单' + }); }), ], ), diff --git a/star_lock/lib/mine/addLock/addLock/addLock_logic.dart b/star_lock/lib/mine/addLock/addLock/addLock_logic.dart new file mode 100644 index 00000000..081cfd3c --- /dev/null +++ b/star_lock/lib/mine/addLock/addLock/addLock_logic.dart @@ -0,0 +1,23 @@ +import 'package:star_lock/mine/addLock/addLock/addLock_state.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; + +class AddLockLogic extends BaseGetXController { + final AddLockState state = AddLockState(); + + @override + void onReady() { + // TODO: implement onReady + super.onReady(); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } + + @override + void onClose() { + // TODO: implement onClose + } +} diff --git a/star_lock/lib/mine/addLock/addLock/addLock_page.dart b/star_lock/lib/mine/addLock/addLock/addLock_page.dart index 5b434fac..bd19da74 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/mine/addLock/addLock/addLock_logic.dart'; import '../../../appRouters.dart'; import '../../../app_settings/app_colors.dart'; @@ -20,6 +21,9 @@ class AddLockPage extends StatefulWidget { } class _AddLockPageState extends State with BaseWidget { + final logic = Get.put(AddLockLogic()); + final state = Get.find().state; + @override Widget build(BuildContext context) { return Scaffold( @@ -49,11 +53,11 @@ class _AddLockPageState extends State with BaseWidget { SizedBox( height: 120.h, ), - Image.asset( - 'images/lockType/addLock_touchScreen.png', - width: 278.w, - height: 278.w, - ), + Obx(() => Image.asset( + state.lockTypeImg.value, + width: 278.w, + height: 278.w, + )), SizedBox( height: 120.h, ), @@ -73,17 +77,16 @@ class _AddLockPageState extends State with BaseWidget { btnName: TranslationLoader.lanKeys!.next!.tr, borderRadius: 20.w, onClick: () { - if(Platform.isIOS){ + if (Platform.isIOS) { Navigator.pushNamed(context, Routers.nearbyLockPage); - }else { - getMicrophonePermission() - .then((value) { + } else { + getMicrophonePermission().then((value) { if (value) { // 有权限 Navigator.pushNamed(context, Routers.nearbyLockPage); - }else{ + } else { //没有权限 - openAppSettings();//打开app系统设置 + openAppSettings(); //打开app系统设置 } }); } diff --git a/star_lock/lib/mine/addLock/addLock/addLock_state.dart b/star_lock/lib/mine/addLock/addLock/addLock_state.dart new file mode 100644 index 00000000..04184a8b --- /dev/null +++ b/star_lock/lib/mine/addLock/addLock/addLock_state.dart @@ -0,0 +1,29 @@ +import 'package:get/get.dart'; + +class AddLockState { + var getLockType = 1.obs; //0-所有锁;1-门锁;2-NFC无源锁;3-挂锁;4-保险箱锁;5-车位锁;6-智能门禁;7-网关 + var lockTypeImg = 'images/lockType/addLock_touchScreen.png'.obs; //不同类型锁图片更换 + + AddLockState() { + Map map = Get.arguments; + if (map.isNotEmpty) { + if (map["getLockType"] != null) { + getLockType.value = map["getLockType"]; + //保险箱锁 + if (getLockType.value == 4) { + lockTypeImg.value = "images/lockType/addLock_safeBg.png"; + } else if (getLockType.value == 5) { + //车位锁 + lockTypeImg.value = "images/lockType/addLock_parkingBg.png"; + } else if (getLockType.value == 6) { + //智能门禁 + lockTypeImg.value = "images/lockType/addLock_entranceGuardBg.png"; + } + } else { + lockTypeImg.value = 'images/lockType/addLock_touchScreen.png'; + } + } else { + lockTypeImg.value = 'images/lockType/addLock_touchScreen.png'; + } + } +} diff --git a/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart index 8b1d4e09..1bacdff5 100644 --- a/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart +++ b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart @@ -1,6 +1,9 @@ +import 'dart:io'; + 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 '../../../appRouters.dart'; import '../../../app_settings/app_colors.dart'; @@ -40,33 +43,34 @@ class _SeletLockTypePageState extends State with BaseWidget { children: [ lockTypeItem('images/lockType/lockType_doorLock.png', TranslationLoader.lanKeys!.doorLock!.tr, () { - Navigator.pushNamed(context, Routers.addLockPage); + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 1}); }), lockTypeItem('images/lockType/lockType_NFCLock.png', TranslationLoader.lanKeys!.NFCPassiveLock!.tr, () { // Navigator.pushNamed(context, Routers.addLockPage); - Toast.show(msg: "功能暂未开放"); + getNearByLimits(); }), lockTypeItem('images/lockType/lockType_padlock.png', TranslationLoader.lanKeys!.padlock!.tr, () { // Navigator.pushNamed(context, Routers.addLockPage); - Toast.show(msg: "功能暂未开放"); + getNearByLimits(); }), lockTypeItem('images/lockType/lockType_safeLock.png', TranslationLoader.lanKeys!.safeLock!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 4}); }), lockTypeItem('images/lockType/lockType_parkingLock.png', TranslationLoader.lanKeys!.parkingLock!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 5}); }), lockTypeItem('images/lockType/lockType_entranceGuardLock.png', TranslationLoader.lanKeys!.itelligentAccessControl!.tr, () { - // Navigator.pushNamed(context, Routers.addLockPage); - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 6}); }), // lockTypeItem('images/lockType/lockType_bicycleLock.png', @@ -76,7 +80,7 @@ class _SeletLockTypePageState extends State with BaseWidget { lockTypeItem('images/lockType/lockType_gatewayLock.png', TranslationLoader.lanKeys!.gateway!.tr, () { // Navigator.pushNamed(context, Routers.gatewayListPage); - Toast.show(msg: "功能暂未开放"); + getNearByLimits(); }), ], ), @@ -90,7 +94,8 @@ class _SeletLockTypePageState extends State with BaseWidget { Widget allLock() { return GestureDetector( onTap: () { - Navigator.pushNamed(context, Routers.addLockPage); + Navigator.pushNamed(context, Routers.addLockPage, + arguments: {'getLockType': 0}); }, child: Container( height: 150.h, @@ -174,6 +179,41 @@ class _SeletLockTypePageState extends State with BaseWidget { ); } +//跳转到附近的锁页面先判断权限 + void getNearByLimits() { + if (Platform.isIOS) { + Navigator.pushNamed(context, Routers.nearbyLockPage); + } else { + getMicrophonePermission().then((value) { + if (value) { + // 有权限 + Navigator.pushNamed(context, Routers.nearbyLockPage); + } else { + //没有权限 + openAppSettings(); //打开app系统设置 + } + }); + } + } + + ///请求权限 + Future getMicrophonePermission() async { + // You can request multiple permissions at once. + Map statuses = await [ + Permission.bluetoothScan, + Permission.bluetoothConnect, + Permission.location, + ].request(); + + //granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示 + if (statuses[Permission.bluetoothScan]!.isGranted && + statuses[Permission.bluetoothConnect]!.isGranted && + statuses[Permission.location]!.isGranted) { + return true; + } + return false; + } + void onShow() {} void onHide() {} diff --git a/star_lock/lib/mine/message/messageList_page.dart b/star_lock/lib/mine/message/messageList_page.dart index af201f3d..98135ee4 100644 --- a/star_lock/lib/mine/message/messageList_page.dart +++ b/star_lock/lib/mine/message/messageList_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/tools/noData.dart'; import '../../appRouters.dart'; import '../../app_settings/app_colors.dart'; @@ -15,6 +16,7 @@ class MessageListPage extends StatefulWidget { } class _MessageListPageState extends State { + List dataList = []; @override Widget build(BuildContext context) { return Scaffold( @@ -23,14 +25,17 @@ class _MessageListPageState extends State { barTitle: TranslationLoader.lanKeys!.message!.tr, haveBack: true, backgroundColor: AppColors.mainColor), - body: ListView.builder( - itemCount: 10, - itemBuilder: (c, index) { - return _seletGatewayListListItem( - 'images/controls_user.png', "您的钥匙已发送成功", "2023.6.21 11.15", () { - // Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage); - }); - }), + body: dataList.isEmpty + ? const NoData() + : ListView.builder( + itemCount: 10, + itemBuilder: (c, index) { + return _seletGatewayListListItem( + 'images/controls_user.png', "您的钥匙已发送成功", "2023.6.21 11.15", + () { + // Navigator.pushNamed(context, Routers.gatewayConfigurationWifiPage); + }); + }), ); } diff --git a/star_lock/lib/mine/mine/starLockMine_page.dart b/star_lock/lib/mine/mine/starLockMine_page.dart index f0064a48..8ed2988b 100644 --- a/star_lock/lib/mine/mine/starLockMine_page.dart +++ b/star_lock/lib/mine/mine/starLockMine_page.dart @@ -136,8 +136,8 @@ class _StarLockMinePageState extends State with BaseWidget { // }), mineItem('images/mine/icon_mine_main_message.png', TranslationLoader.lanKeys!.message!.tr, () { - // Navigator.pushNamed(context, Routers.messageListPage); - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.messageListPage); + // Toast.show(msg: "功能暂未开放"); }), //删除“客服”行 // mineItem('images/mine/icon_mine_main_supportStaff.png', diff --git a/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart b/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart new file mode 100644 index 00000000..549f7ccf --- /dev/null +++ b/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart @@ -0,0 +1,124 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/appRouters.dart'; +import 'package:star_lock/mine/mineSet/addAuthorizedAdministrator/AddAuthorizedAdministrator_state.dart'; +import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/toast.dart'; +import 'package:star_lock/translations/trans_lib.dart'; + +class AddAuthorizedAdministratorLogic extends BaseGetXController { + final AddAuthorizedAdministratorState state = + AddAuthorizedAdministratorState(); + + //发送批量授权管理员 + Future addAuthorizedAdminRequest() async { + String getFailureDateTime = '0'; + String getEffectiveDateTime = '0'; + if (state.tabController!.index == 1) { + getFailureDateTime = + state.failureDateTime.value.millisecondsSinceEpoch.toString(); + getEffectiveDateTime = + state.effectiveDateTime.value.millisecondsSinceEpoch.toString(); + } + var entity = await ApiRepository.to.addAuthorizedAdmin( + state.isCreateUser.value ? "1" : "0", + getFailureDateTime, + state.isRemoteUnlock.value == true ? '1' : '2', + [], + state.lockIdList, + state.keyNameController.text, + getEffectiveDateTime, + state.emailOrPhoneController.text, + state.countryCode.value, + '1', + ); + if (entity.errorCode!.codeIsSuccessful) { + print('发送电子钥匙成功'); + state.isSendSuccess.value = true; + } else { + Toast.show(msg: '${entity.errorMsg}'); + if (entity.errorCode == 425) { + //用户未注册 + state.isCreateUser.value = true; + addAuthorizedAdminRequest(); + } + } + } + + //发送钥匙请求 + Future sendElectronicKeyRequest(BuildContext widgetContext) async { + String getFailureDateTime = '0'; + String getEffectiveDateTime = '0'; + String lockID = state.keyInfo.value.lockId.toString(); + String getKeyType = (int.parse(state.type.value) + 1).toString(); + if (state.type.value == '0') { + getFailureDateTime = + state.failureDateTime.value.millisecondsSinceEpoch.toString(); + getEffectiveDateTime = + state.effectiveDateTime.value.millisecondsSinceEpoch.toString(); + } + + var entity = await ApiRepository.to.sendElectronicKey( + createUser: state.isCreateUser.value ? "1" : "0", + countryCode: state.countryCode.value, + usernameType: '1', + endDate: getFailureDateTime, + faceAuthentication: state.isAuthentication.value == true ? '1' : '2', + isCameraEnable: '2', + isRemoteUnlock: state.isRemoteUnlock.value == true ? '1' : '2', + keyNameForAdmin: state.keyNameController.text, + keyRight: '0', + keyType: getKeyType, + lockId: lockID, + operatorUid: '', + receiverUsername: state.emailOrPhoneController.text, + remarks: '', + startDate: getEffectiveDateTime, + weekDays: state.weekdaysList); + if (entity.errorCode!.codeIsSuccessful) { + print('发送电子钥匙成功'); + state.isSendSuccess.value = true; + } else { + if (entity.errorCode == 425) { + //用户未注册 + _showDialog(widgetContext, '${entity.errorMsg}'); + } + } + } + + //用户未注册确认弹窗 + void _showDialog(widgetContext, String errMsg) { + showCupertinoDialog( + context: widgetContext, + builder: (context) { + return CupertinoAlertDialog( + title: const Text('接收者号码未注册,请选择号码所在的国家并重新发送'), + actions: [ + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys!.cancel!.tr), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys!.selet!.tr), + onPressed: () async { + //选择国家代码 + state.isCreateUser.value = true; + Navigator.of(context).pop(); + + var result = await Get.toNamed(Routers.seletCountryRegionPage); + if (result != null) { + result as Map; + state.countryCode.value = result['code']; + state.countryName.value = result['countryName']; + } + }, + ), + ], + ); + }, + ); + } +} diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart b/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart similarity index 100% rename from star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart rename to star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_page.dart diff --git a/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart b/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart new file mode 100644 index 00000000..bc4c0763 --- /dev/null +++ b/star_lock/lib/mine/mineSet/addAuthorizedAdministrator/addAuthorizedAdministrator_state.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/main/lockMian/entity/lockInfoEntity.dart'; + +class AddAuthorizedAdministratorState { + late TabController? tabController; + TextEditingController emailOrPhoneController = + TextEditingController(); //邮箱/手机号输入框 + TextEditingController keyNameController = TextEditingController(); //钥匙名输入框 + + final FlutterContactPicker contactPicker = FlutterContactPicker(); + late Contact contact; + var type = ''.obs; + var lockIdList = [].obs; + var weekdaysList = [].obs; + var isCreateUser = false.obs; //用户未注册时传1 已注册传0 + var selectEffectiveDate = + '${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day} ${DateTime.now().hour}:${DateTime.now().minute}' + .obs; //默认为当前时间 + var selectFailureDate = + '${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day} ${DateTime.now().hour}:${DateTime.now().minute}' + .obs; //默认为当前时间 + final effectiveDateTime = DateTime.now().obs; + final failureDateTime = DateTime.now().obs; + var countryName = '中国'.obs; + var countryCode = '86'.obs; + var isSendSuccess = false.obs; + final isRemoteUnlock = false.obs; //是否允许远程开锁 + final isAuthentication = false.obs; //是否允许实名认证 + final keyInfo = KeyInfos().obs; + final lockMainEntity = LockMainEntity().obs; + + AddAuthorizedAdministratorState() { + Map map = Get.arguments; + lockMainEntity.value = map["lockMainEntity"]; + keyInfo.value = map["keyInfo"]; + } +} diff --git a/star_lock/lib/mine/mineSet/authorityManagement/authorityManagement_page.dart b/star_lock/lib/mine/mineSet/authorityManagement/authorityManagement_page.dart index bd4896dd..92ce0192 100644 --- a/star_lock/lib/mine/mineSet/authorityManagement/authorityManagement_page.dart +++ b/star_lock/lib/mine/mineSet/authorityManagement/authorityManagement_page.dart @@ -6,6 +6,7 @@ import 'package:star_lock/appRouters.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart'; import 'package:star_lock/tools/ExpandedListView.dart'; +import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/translations/trans_lib.dart'; @@ -28,6 +29,7 @@ class _AuthorityManagementPageState extends State bool isDeviceSelect = false; int selectDeviceIndex = 0; int selectNameIndex = 0; + List dataList = []; List tabs = [ TranslationLoader.lanKeys!.name!.tr, @@ -83,9 +85,10 @@ class _AuthorityManagementPageState extends State )), ), ), - body: TabBarView( - controller: _tabController, - children: [_permissionNameList(), _permissionDeviceList()]))); + body: TabBarView(controller: _tabController, children: [ + dataList.isEmpty ? const NoData() : _permissionNameList(), + dataList.isEmpty ? const NoData() : _permissionDeviceList() + ]))); } //姓名列表 diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart index 9da69699..379bba0b 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart @@ -4,6 +4,7 @@ import 'package:get/get.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/noData.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -131,12 +132,14 @@ class _AuthorizedAdministratorListPageState } Widget _buildMainUI(List itemList) { - return ListView.builder( - itemCount: itemList.length, - itemBuilder: (c, index) { - AuthorizedAdminListItem itemData = itemList[index]; - return _electronicKeyItem(itemData); - }); + return itemList.isEmpty + ? const NoData() + : ListView.builder( + itemCount: itemList.length, + itemBuilder: (c, index) { + AuthorizedAdminListItem itemData = itemList[index]; + return _electronicKeyItem(itemData); + }); } Widget _electronicKeyItem(AuthorizedAdminListItem itemData) { diff --git a/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart index ac7e2f66..0389e961 100644 --- a/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart +++ b/star_lock/lib/mine/mineSet/lockGroup/lockItemList_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart'; +import 'package:star_lock/tools/noData.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; @@ -55,7 +56,7 @@ class _LockItemListPageState extends State { ); }, ) - : Container(), + : const NoData(), ); } diff --git a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart index dfd5e047..2c313057 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/lockUserManageList_page.dart @@ -4,6 +4,7 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserListEntity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/noData.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -119,19 +120,21 @@ class _LockUserManageListPageState extends State { } Widget _buildMainUI() { - return ListView.separated( - itemCount: dataList.length, - itemBuilder: (c, index) { - LockUserData indexEntity = dataList[index]; - return _electronicKeyItem(indexEntity); - }, - separatorBuilder: (BuildContext context, int index) { - return const Divider( - height: 1, - color: AppColors.greyLineColor, - ); - }, - ); + return dataList.isEmpty + ? const NoData() + : ListView.separated( + itemCount: dataList.length, + itemBuilder: (c, index) { + LockUserData indexEntity = dataList[index]; + return _electronicKeyItem(indexEntity); + }, + separatorBuilder: (BuildContext context, int index) { + return const Divider( + height: 1, + color: AppColors.greyLineColor, + ); + }, + ); } //请求锁用户列表 diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart index ca1d4ba4..644d3471 100644 --- a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart @@ -93,15 +93,15 @@ class _MineSetPageState extends State { Navigator.pushNamed( context, Routers.authorizedAdministratorListPage); }), - //by DaisyWu 新增--权限管理 + //by DaisyWu 新增--批量授权 CommonItem( leftTitel: TranslationLoader.lanKeys!.authorityManagement!.tr, rightTitle: "", isHaveLine: true, isHaveDirection: true, action: () { - // Navigator.pushNamed(context, Routers.authorityManagementPage); - Toast.show(msg: "功能暂未开放"); + Navigator.pushNamed(context, Routers.authorityManagementPage); + // Toast.show(msg: "功能暂未开放"); }), CommonItem( leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr, diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart index 108a78f0..845d4fa0 100644 --- a/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart @@ -31,59 +31,51 @@ class _ValueAddedServicesPageListState _valueAddedServicesItem( Image.asset('images/mine/icon_mine_valueAddedServices_note.png'), TranslationLoader.lanKeys!.note!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed( - // context, Routers.valueAddedServicesNoteAndEmailDetailPage, - // arguments: 1); + Navigator.pushNamed( + context, Routers.valueAddedServicesNoteAndEmailDetailPage, + arguments: 1); }), _valueAddedServicesItem( Image.asset('images/mine/icon_mine_valueAddedServices_email.png'), TranslationLoader.lanKeys!.mail!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed( - // context, Routers.valueAddedServicesNoteAndEmailDetailPage, - // arguments: 2); + Navigator.pushNamed( + context, Routers.valueAddedServicesNoteAndEmailDetailPage, + arguments: 2); }), _valueAddedServicesItem( Image.asset( 'images/mine/icon_mine_valueAddedServices_realName.png'), TranslationLoader.lanKeys!.realNameAuthentication!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed( - // context, Routers.valueAddedServicesRealNamePage); + Navigator.pushNamed( + context, Routers.valueAddedServicesRealNamePage); }), _valueAddedServicesItem( Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'), TranslationLoader.lanKeys!.advancedFunction!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed( - // context, Routers.valueAddedServicesHighFunctionPage); + Navigator.pushNamed( + context, Routers.valueAddedServicesHighFunctionPage); }), _valueAddedServicesItem( Image.asset('images/mine/icon_mine_valueAddedServices_push.png'), TranslationLoader.lanKeys!.pushMessage!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), _valueAddedServicesItem( Image.asset( 'images/mine/icon_mine_valueAddedServices_checkIn.png'), TranslationLoader.lanKeys!.checkingIn!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), _valueAddedServicesItem( Image.asset( 'images/mine/icon_mine_valueAddedServices_storage.png'), TranslationLoader.lanKeys!.recordsRetention!.tr, () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), _valueAddedServicesItem( Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'), '可视对讲', () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), _valueAddedServicesItem( Text( @@ -94,8 +86,7 @@ class _ValueAddedServicesPageListState fontWeight: FontWeight.w600), ), "Amazon Alexa", () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), _valueAddedServicesItem( Text( @@ -106,8 +97,7 @@ class _ValueAddedServicesPageListState fontWeight: FontWeight.w600), ), "Google Home", () { - Toast.show(msg: "功能暂未开放"); - // Navigator.pushNamed(context, Routers.gatewayDetailPage); + Navigator.pushNamed(context, Routers.gatewayDetailPage); }), ], ), diff --git a/star_lock/lib/tools/ExpandedListView.dart b/star_lock/lib/tools/ExpandedListView.dart index cee2311a..0c4247e4 100644 --- a/star_lock/lib/tools/ExpandedListView.dart +++ b/star_lock/lib/tools/ExpandedListView.dart @@ -107,7 +107,7 @@ class _ExpandedListTileState extends State { width: 10.w, )), AnimatedRotation( - turns: _isExpanded ? 0 : -0.5, + turns: _isExpanded ? -0.5 : 0, duration: _animationDuration, child: const Icon(Icons.keyboard_arrow_down), ), diff --git a/star_lock/lib/tools/noData.dart b/star_lock/lib/tools/noData.dart index 11829f91..062dc3e9 100644 --- a/star_lock/lib/tools/noData.dart +++ b/star_lock/lib/tools/noData.dart @@ -1,5 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; class NoData extends StatelessWidget { const NoData({Key? key}) : super(key: key); @@ -10,8 +11,22 @@ class NoData extends StatelessWidget { width: 1.sw, height: 1.sh - ScreenUtil().statusBarHeight, child: Center( - child: Image.asset('images/icon_unHaveData.png',width: 300.w,height: 240.w), - ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset( + 'images/icon_noData.png', + width: 160.w, + height: 180.h, + ), + Text( + '暂无数据', + style: + TextStyle(color: AppColors.darkGrayTextColor, fontSize: 22.sp), + ) + ], + )), ); } }