diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart index 73f03298..f7b515ab 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart @@ -24,9 +24,10 @@ class CatEyeCustomModeLogic extends BaseGetXController { } state.recordTime.value = - state.catEyeConfigData.value.catEyeModeConfig!.recordTime!; + state.catEyeConfigData.value.catEyeModeConfig!.recordTime ?? ''; state.detectionDistance.value = - '${state.catEyeConfigData.value.catEyeModeConfig!.detectionDistance!}秒'; + state.catEyeConfigData.value.catEyeModeConfig!.detectionDistance ?? + ''; state.realTimeMode.value = state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode == 0 ? '发生事件时查看' @@ -36,8 +37,8 @@ class CatEyeCustomModeLogic extends BaseGetXController { return entity; } - //设置猫眼工作模式 - void updateCatEyeModeConfig() async { + //设置猫眼工作模式 0-有人出现时录像 1-人体侦测距离 + void updateCatEyeModeConfig(int clickIndex) async { var entity = await ApiRepository.to.updateCatEyeModeConfig( lockId: state.lockSetInfoData.value.lockId!, catEyeConfig: [ @@ -50,9 +51,15 @@ class CatEyeCustomModeLogic extends BaseGetXController { state.catEyeConfigData.value.catEyeModeConfig!.recordStartTime, 'recordEndTime': state.catEyeConfigData.value.catEyeModeConfig!.recordEndTime, - 'recordTime': state.recordTime.value, - 'detectionDistance': state.detectionDistance.value, - 'realTimeMode': state.realTimeMode.value, + 'recordTime': clickIndex == 0 + ? state.recordTime.value + : state.catEyeConfigData.value.catEyeModeConfig!.recordTime, + 'detectionDistance': clickIndex == 1 + ? state.detectionDistance.value + : state + .catEyeConfigData.value.catEyeModeConfig!.detectionDistance, + 'realTimeMode': + state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode, } } ], diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_page.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_page.dart index 5d6dee0b..4e324707 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_page.dart @@ -37,9 +37,9 @@ class _CatEyeCustomModePageState extends State { Navigator.pop(context, true); }, backgroundColor: AppColors.mainColor), - body: Column( - children: [ - Obx(() => CommonItem( + body: Obx(() => Column( + children: [ + CommonItem( leftTitel: TranslationLoader.lanKeys!.videoSlot!.tr, rightTitle: "", isHaveLine: false, @@ -59,22 +59,22 @@ class _CatEyeCustomModePageState extends State { : null }).then((value) => {logic.getLockSettingInfoData()}); }, - )), - Obx(() => _buildSubTitleItem('有人出现时录像', - '有人在门口出现10秒后开始录像。\n有人按门铃时立即录像', state.recordTime.value, () { + ), + _buildSubTitleItem('有人出现时录像', '有人在门口出现10秒后开始录像。\n有人按门铃时立即录像', + state.recordTime.value, () { _openBottomItemSheet(state.showsUpVideoList.value, 0); - })), - SizedBox( - height: 30.h, - ), - Obx(() => _buildSubTitleItem('人体侦测距离', '有人出现在门前1.5米范围时启动录像', + }), + SizedBox( + height: 30.h, + ), + _buildSubTitleItem('人体侦测距离', '有人出现在门前1.5米范围时启动录像', state.detectionDistance.value, () { _openBottomItemSheet(state.detectionRangeList.value, 1); - })), - SizedBox( - height: 30.h, - ), - Obx(() => CommonItem( + }), + SizedBox( + height: 30.h, + ), + CommonItem( leftTitel: '实时画面', rightTitle: state.realTimeMode.value, isHaveLine: false, @@ -91,9 +91,9 @@ class _CatEyeCustomModePageState extends State { : null }).then((value) => {logic.getLockSettingInfoData()}); }, - )) - ], - )); + ) + ], + ))); } Widget _buildSubTitleItem( @@ -157,8 +157,7 @@ class _CatEyeCustomModePageState extends State { ); } - Future _openBottomItemSheet( - List bottomItemList, int clickIndex) async { + Future _openBottomItemSheet(List bottomItemList, int clickIndex) async { showModalBottomSheet( context: context, shape: RoundedRectangleBorder( @@ -172,11 +171,11 @@ class _CatEyeCustomModePageState extends State { //有人出现时录像 state.recordTime.value = state.showsUpVideoList.value[value]; } else if (clickIndex == 1) { - //录像时长 + //人体侦测距离 state.detectionDistance.value = state.detectionRangeList.value[value]; } - logic.updateCatEyeModeConfig(); + logic.updateCatEyeModeConfig(clickIndex); }, ); }); diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart index 7c541646..a4bafbe0 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart @@ -20,7 +20,7 @@ class CatEyeCustomModeState { '30${TranslationLoader.lanKeys!.second!.tr}', '60${TranslationLoader.lanKeys!.second!.tr}' ].obs; - var detectionRangeList = ['约0.8米', '约1.5米', '约3米'].obs; + var detectionRangeList = ['约0.8米', '约1.5米', '约3.0米'].obs; //高亮样式 final TextStyle titleStyle = TextStyle( color: Colors.black, fontSize: 24.sp, fontWeight: FontWeight.w500); diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart index 3e615459..a2a5b013 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart @@ -13,48 +13,64 @@ class CatEyeWorkModeLogic extends BaseGetXController { lockId: state.lockSetInfoData.value.lockId!, catEyeConfig: [ { - 'catEyeMode': state.selectCatEyeWorkMode.value, + 'catEyeMode': + state.boolList.value.indexWhere((element) => element == true) + 1, 'catEyeModeConfig': { - 'recordMode': state.recordMode.value, - 'recordStartTime': state.recordStartTime.value, - 'recordEndTime': state.recordEndTime.value, - 'recordTime': state.recordTime.value, - 'detectionDistance': state.detectionDistance.value, - 'realTimeMode': state.realTimeMode.value, + 'recordMode': + state.catEyeConfigData.value.catEyeModeConfig!.recordMode, + 'recordStartTime': + state.catEyeConfigData.value.catEyeModeConfig!.recordStartTime, + 'recordEndTime': + state.catEyeConfigData.value.catEyeModeConfig!.recordEndTime, + 'recordTime': + state.catEyeConfigData.value.catEyeModeConfig!.recordTime, + 'detectionDistance': state + .catEyeConfigData.value.catEyeModeConfig!.detectionDistance, + 'realTimeMode': + state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode!, } } ], ); if (entity.errorCode!.codeIsSuccessful) { showToast('设置成功'); + getLockSettingInfoData(); } } // 获取锁设置信息 - Future getLockSettingInfoData() async { + void getLockSettingInfoData() async { LockSetInfoEntity entity = await ApiRepository.to.getLockSettingInfoData( lockId: state.lockSetInfoData.value.lockId.toString(), ); if (entity.errorCode!.codeIsSuccessful) { state.lockSetInfoData.value = entity.data!; - state.selectCatEyeWorkMode.value = - state.catEyeConfigData.value.catEyeMode!; + state.catEyeConfigData.value = + entity.data!.lockSettingInfo!.catEyeConfig![0]; + + // state.selectCatEyeWorkMode.value = + // state.catEyeConfigData.value.catEyeMode!; + + // print('得到了选中哪个模式:${state.catEyeConfigData.value.catEyeMode}'); if (state.catEyeConfigData.value.catEyeMode == XSConstantMacro.catEyeWorkModePowerSaving) { - state.boolList.value[0] = true; + // state.boolList.value[0] = true; + state.boolList.value = [true, false, false, false]; } else if (state.catEyeConfigData.value.catEyeMode == XSConstantMacro.catEyeWorkModeStayCapture) { - state.boolList.value[1] = true; + // state.boolList.value[1] = true; + state.boolList.value = [false, true, false, false]; } else if (state.catEyeConfigData.value.catEyeMode == XSConstantMacro.catEyeWorkModeRealTimeMonitoring) { - state.boolList.value[2] = true; + // state.boolList.value[2] = true; + state.boolList.value = [false, false, true, false]; } else if (state.catEyeConfigData.value.catEyeMode == XSConstantMacro.catEyeWorkModeCustom) { - state.boolList.value[3] = true; + // state.boolList.value[3] = true; + state.boolList.value = [false, false, false, true]; } } - return entity; } } diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_page.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_page.dart index 5a7360b9..522a5301 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_page.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; -import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart'; import '../../../../../app_settings/app_colors.dart'; @@ -36,35 +35,36 @@ class _CatEyeWorkModePageState extends State { Navigator.pop(context, true); }, backgroundColor: AppColors.mainColor), - body: Column( - children: [ - SizedBox( - height: 30.h, - ), - Obx( - () => _buildTipsView('省电模式:\n', - '适合门口较为安全的环境。\n仅发生特定事件才录像,并可查看实时画面。\n一般情况下,满电可使用7-8个月', 0), - ), - SizedBox( - height: 30.h, - ), - Obx(() => _buildTipsView('逗留抓拍模式:\n', - '有人逗留或发生特定事件才录像,可随时查看\n实时画面。\n一般情况下,满电可使用5~6个月。', 1)), - SizedBox( - height: 30.h, - ), - Obx(() => _buildTipsView('实时监控模式:\n', - '适合门口人员复杂、较不安全的环境。\n有人出现就录像,可随时查看实时画面。\n一般情况下,满电可使用2~4个月。', 2)), - SizedBox( - height: 30.h, - ), - Obx(() => _buildTipsView( - '自定义模式:\n', '根据您家门口实际情况设置录像和实时画面功能。\n可使用时长由具体设置决定。', 3)) - ], - )); + body: Obx(() => Column( + children: [ + SizedBox( + height: 30.h, + ), + _buildTipsView('省电模式:\n', + '适合门口较为安全的环境。\n仅发生特定事件才录像,并可查看实时画面。\n一般情况下,满电可使用7-8个月', 0), + SizedBox( + height: 30.h, + ), + _buildTipsView('逗留抓拍模式:\n', + '有人逗留或发生特定事件才录像,可随时查看\n实时画面。\n一般情况下,满电可使用5~6个月。', 1), + SizedBox( + height: 30.h, + ), + _buildTipsView( + '实时监控模式:\n', + '适合门口人员复杂、较不安全的环境。\n有人出现就录像,可随时查看实时画面。\n一般情况下,满电可使用2~4个月。', + 2), + SizedBox( + height: 30.h, + ), + _buildTipsView( + '自定义模式:\n', '根据您家门口实际情况设置录像和实时画面功能。\n可使用时长由具体设置决定。', 3) + ], + ))); } Widget _buildTipsView(String titleStr, String subTitle, int clickIndex) { + // print('选中了哪个模式${state.boolList.value[clickIndex]}'); return GestureDetector( child: Container( width: ScreenUtil().screenWidth - 40.w, @@ -138,24 +138,24 @@ class _CatEyeWorkModePageState extends State { for (int i = 0; i < state.boolList.value.length; i++) { if (clickIndex == i) { state.boolList.value[clickIndex] = true; - switch (clickIndex) { - case 0: - state.selectCatEyeWorkMode.value = - XSConstantMacro.catEyeWorkModePowerSaving; - break; - case 1: - state.selectCatEyeWorkMode.value = - XSConstantMacro.catEyeWorkModeStayCapture; - break; - case 2: - state.selectCatEyeWorkMode.value = - XSConstantMacro.catEyeWorkModeRealTimeMonitoring; - break; - case 3: - state.selectCatEyeWorkMode.value = - XSConstantMacro.catEyeWorkModeCustom; - break; - } + // switch (clickIndex) { + // case 0: + // state.selectCatEyeWorkMode.value = + // XSConstantMacro.catEyeWorkModePowerSaving; + // break; + // case 1: + // state.selectCatEyeWorkMode.value = + // XSConstantMacro.catEyeWorkModeStayCapture; + // break; + // case 2: + // state.selectCatEyeWorkMode.value = + // XSConstantMacro.catEyeWorkModeRealTimeMonitoring; + // break; + // case 3: + // state.selectCatEyeWorkMode.value = + // XSConstantMacro.catEyeWorkModeCustom; + // break; + // } logic.updateCatEyeModeConfig(); } else { state.boolList.value[i] = false; diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart index 07d95051..765f9050 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart @@ -1,42 +1,34 @@ import 'package:get/get.dart'; -import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; class CatEyeWorkModeState { var lockSetInfoData = LockSetInfoData().obs; - var selectCatEyeWorkMode = 0.obs; //猫眼工作模式 + // var selectCatEyeWorkMode = 0.obs; //猫眼工作模式 var boolList = [false, false, false, false].obs; - var recordMode = 0.obs; //录像时段 0全天 1自定义时间 - //自定义时间需要填:recordStartTime与recordEndTime参数 - var recordStartTime = 0.obs; // 1709715049775, - var recordEndTime = 0.obs; //1709715049775, - var recordTime = ''.obs; //有人出现时录像 - var detectionDistance = 0.obs; //人体侦测距离 - var realTimeMode = 0.obs; //实时画面 0发生事件事查看 1实时查看 var catEyeConfigData = CatEyeConfig().obs; CatEyeWorkModeState() { Map map = Get.arguments; lockSetInfoData.value = map["lockSetInfoData"]; - if (map['catEyeConfigData'] != null) { - catEyeConfigData.value = map['catEyeConfigData']; - selectCatEyeWorkMode.value = catEyeConfigData.value.catEyeMode!; + // if (map['catEyeConfigData'] != null) { + // catEyeConfigData.value = map['catEyeConfigData']; + // selectCatEyeWorkMode.value = catEyeConfigData.value.catEyeMode!; - if (catEyeConfigData.value.catEyeMode == - XSConstantMacro.catEyeWorkModePowerSaving) { - boolList[0] = true; - } else if (catEyeConfigData.value.catEyeMode == - XSConstantMacro.catEyeWorkModeStayCapture) { - boolList[1] = true; - } else if (catEyeConfigData.value.catEyeMode == - XSConstantMacro.catEyeWorkModeRealTimeMonitoring) { - boolList[2] = true; - } else if (catEyeConfigData.value.catEyeMode == - XSConstantMacro.catEyeWorkModeCustom) { - boolList[3] = true; - } - } else { - catEyeConfigData.value = CatEyeConfig(); - } + // if (catEyeConfigData.value.catEyeMode == + // XSConstantMacro.catEyeWorkModePowerSaving) { + // boolList[0] = true; + // } else if (catEyeConfigData.value.catEyeMode == + // XSConstantMacro.catEyeWorkModeStayCapture) { + // boolList[1] = true; + // } else if (catEyeConfigData.value.catEyeMode == + // XSConstantMacro.catEyeWorkModeRealTimeMonitoring) { + // boolList[2] = true; + // } else if (catEyeConfigData.value.catEyeMode == + // XSConstantMacro.catEyeWorkModeCustom) { + // boolList[3] = true; + // } + // } else { + // catEyeConfigData.value = CatEyeConfig(); + // } } } diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart index 2b97acf8..37bc70a8 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart @@ -19,10 +19,8 @@ class VideoSlotLogic extends BaseGetXController { if (state.catEyeConfigData.value.catEyeModeConfig != null) { if (state.catEyeConfigData.value.catEyeModeConfig!.recordMode == 1) { - // state.selectVideoSlot.value = '自定义时段'; state.isCustom.value = true; } else { - // state.selectVideoSlot.value = '全天'; state.isCustom.value = false; } } diff --git a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_page.dart b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_page.dart index 69375ae7..721325d6 100644 --- a/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_page.dart @@ -20,6 +20,12 @@ class _VideoSlotPageState extends State { final logic = Get.put(VideoSlotLogic()); final state = Get.find().state; + @override + initState() { + super.initState(); + logic.getLockSettingInfoData(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -52,57 +58,57 @@ class _VideoSlotPageState extends State { ), ], ), - body: Column( - children: [ - SizedBox( - height: 30.h, - ), - _buildTipsView('全天', 0), - SizedBox( - height: 30.h, - ), - _buildCustomTimeView('自定义时间', 1), - ], - )); + body: Obx(() => Column( + children: [ + SizedBox( + height: 30.h, + ), + _buildTipsView('全天', 0), + SizedBox( + height: 30.h, + ), + _buildCustomTimeView('自定义时间', 1), + ], + ))); } //全天 Widget _buildTipsView(String titleStr, int clickIndex) { return GestureDetector( - child: Obx(() => Container( - width: ScreenUtil().screenWidth - 40.w, - margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h), - decoration: BoxDecoration( - color: state.isCustom.value == true - ? AppColors.greyBackgroundColor - : AppColors.blueViewBgColor, - borderRadius: BorderRadius.circular(10.0), - ), - child: Padding( - padding: EdgeInsets.only( - left: 20.w, top: 30.h, bottom: 30.h, right: 20.w), - child: Row( - children: [ - state.isCustom.value == false - ? Image.asset( - 'images/mine/icon_mine_blueSelect.png', - width: 20.w, - height: 14.w, - ) - : SizedBox( - width: 20.w, - height: 14.w, - ), - SizedBox(width: 10.w), - Expanded( - child: _buildRichText(titleStr, false), - ), - SizedBox( - width: 10.w, - ), - ], - )), - )), + child: Container( + width: ScreenUtil().screenWidth - 40.w, + margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h), + decoration: BoxDecoration( + color: state.isCustom.value == true + ? AppColors.greyBackgroundColor + : AppColors.blueViewBgColor, + borderRadius: BorderRadius.circular(10.0), + ), + child: Padding( + padding: EdgeInsets.only( + left: 20.w, top: 30.h, bottom: 30.h, right: 20.w), + child: Row( + children: [ + state.isCustom.value == false + ? Image.asset( + 'images/mine/icon_mine_blueSelect.png', + width: 20.w, + height: 14.w, + ) + : SizedBox( + width: 20.w, + height: 14.w, + ), + SizedBox(width: 10.w), + Expanded( + child: _buildRichText(titleStr, false), + ), + SizedBox( + width: 10.w, + ), + ], + )), + ), onTap: () { if (clickIndex == 0) { state.isCustom.value = false; diff --git a/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart b/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart index 1169c067..151564d4 100644 --- a/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart @@ -18,7 +18,9 @@ class LiveVideoLogic extends BaseGetXController { entity.data!.lockSettingInfo!.catEyeConfig![0]; if (state.catEyeConfigData.value.catEyeModeConfig != null) { - if (state.catEyeConfigData.value.catEyeModeConfig!.recordMode == 1) { + state.realTimeMode.value = + state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode!; + if (state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode == 1) { state.isLiveView.value = true; } else { state.isLiveView.value = false; diff --git a/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart b/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart index 5c14e10a..3dc5fa77 100644 --- a/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart @@ -18,6 +18,12 @@ class _LiveVideoPageState extends State { final logic = Get.put(LiveVideoLogic()); final state = Get.find().state; + @override + initState() { + super.initState(); + logic.getLockSettingInfoData(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -25,6 +31,9 @@ class _LiveVideoPageState extends State { appBar: TitleAppBar( barTitle: '实时画面', haveBack: true, + backAction: () { + Navigator.pop(context, true); + }, backgroundColor: AppColors.mainColor, actionsList: [ TextButton( @@ -42,92 +51,91 @@ class _LiveVideoPageState extends State { ), ], ), - body: Column( - children: [ - SizedBox( - height: 80.h, - ), - Image.asset( - 'images/lockSet_liveVideo.png', - height: 541.h, - width: 255.w, - ), - SizedBox( - height: 86.h, - ), - _buildTipsView('发生事件时查看\n', '仅当门锁发生事件或有人按门铃时,才能在门锁首页查看实时画面。', 0), - SizedBox( - height: 16.h, - ), - _buildTipsView('实时查看\n', - '指定时问内,无论门锁是否发生安全事件或有人按门铃,都能在门锁首页随时查看实时画面;电池续航时问将会缩短。', 1), - ], - )); + body: Obx(() => Column( + children: [ + SizedBox( + height: 80.h, + ), + Image.asset( + 'images/lockSet_liveVideo.png', + height: 541.h, + width: 255.w, + ), + SizedBox( + height: 86.h, + ), + _buildTipsView( + '发生事件时查看\n', '仅当门锁发生事件或有人按门铃时,才能在门锁首页查看实时画面。', 0), + SizedBox( + height: 16.h, + ), + _buildTipsView('实时查看\n', + '指定时问内,无论门锁是否发生安全事件或有人按门铃,都能在门锁首页随时查看实时画面;电池续航时问将会缩短。', 1), + ], + ))); } Widget _buildTipsView(String titleStr, String subTitle, int clickIndex) { - return Obx(() => GestureDetector( - child: Container( - width: ScreenUtil().screenWidth - 40.w, - margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h), - decoration: BoxDecoration( - color: clickIndex == 0 - ? (state.isLiveView.value == false - ? AppColors.blueViewBgColor - : AppColors.greyBackgroundColor) - : (state.isLiveView.value == true - ? AppColors.blueViewBgColor - : AppColors.greyBackgroundColor), - borderRadius: BorderRadius.circular(10.0), - ), - child: Padding( - padding: EdgeInsets.only( - left: 20.w, top: 30.h, bottom: 30.h, right: 20.w), - child: Row( - children: [ - clickIndex == 0 - ? (state.isLiveView.value == false - ? Image.asset( - 'images/mine/icon_mine_blueSelect.png', - width: 20.w, - height: 14.w, - ) - : SizedBox( - width: 20.w, - height: 14.w, - )) - : (state.isLiveView.value == true - ? Image.asset( - 'images/mine/icon_mine_blueSelect.png', - width: 20.w, - height: 14.w, - ) - : SizedBox( - width: 20.w, - height: 14.w, - )), - SizedBox(width: 10.w), - Expanded( - child: _buildRichText( - titleStr, - subTitle, - clickIndex == 0 - ? (state.isLiveView.value == false ? true : false) - : (state.isLiveView.value == true - ? true - : false)), - ), - ], - )), - ), - onTap: () { - if (clickIndex == 0) { - state.isLiveView.value = false; - } else { - state.isLiveView.value = true; - } - }, - )); + return GestureDetector( + child: Container( + width: ScreenUtil().screenWidth - 40.w, + margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h), + decoration: BoxDecoration( + color: clickIndex == 0 + ? (state.isLiveView.value == false + ? AppColors.blueViewBgColor + : AppColors.greyBackgroundColor) + : (state.isLiveView.value == true + ? AppColors.blueViewBgColor + : AppColors.greyBackgroundColor), + borderRadius: BorderRadius.circular(10.0), + ), + child: Padding( + padding: EdgeInsets.only( + left: 20.w, top: 30.h, bottom: 30.h, right: 20.w), + child: Row( + children: [ + clickIndex == 0 + ? (state.isLiveView.value == false + ? Image.asset( + 'images/mine/icon_mine_blueSelect.png', + width: 20.w, + height: 14.w, + ) + : SizedBox( + width: 20.w, + height: 14.w, + )) + : (state.isLiveView.value == true + ? Image.asset( + 'images/mine/icon_mine_blueSelect.png', + width: 20.w, + height: 14.w, + ) + : SizedBox( + width: 20.w, + height: 14.w, + )), + SizedBox(width: 10.w), + Expanded( + child: _buildRichText( + titleStr, + subTitle, + clickIndex == 0 + ? (state.isLiveView.value == false ? true : false) + : (state.isLiveView.value == true ? true : false)), + ), + ], + )), + ), + onTap: () { + if (clickIndex == 0) { + state.isLiveView.value = false; + } else { + state.isLiveView.value = true; + } + }, + ); } Widget _buildRichText(String titleStr, String subTitle, bool isClick) { diff --git a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart index ff77da13..e427a2ea 100644 --- a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart +++ b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart @@ -357,7 +357,7 @@ class LockBasicInfo { this.keyRight, this.senderUserId, this.lockUserNo, - this.weekDays}); + this.weekDays}); LockBasicInfo.fromJson(Map json) { lockId = json['lockId']; @@ -681,7 +681,7 @@ class CatEyeModeConfig { int? realTimeMode; //实时画面 0发生事件事查看 1实时查看 int? recordEndTime; //录像时段自定义时间-结束时间 int? recordStartTime; //录像时段自定义时间-开始时间 - int? detectionDistance; //人体侦测距离 + String? detectionDistance; //人体侦测距离 CatEyeModeConfig( {this.recordMode, @@ -693,7 +693,11 @@ class CatEyeModeConfig { CatEyeModeConfig.fromJson(Map json) { recordMode = json['recordMode']; - recordTime = json['recordTime']; + if (json['recordTime'] != null) { + recordTime = json['recordTime']; + } else { + recordTime = ''; + } realTimeMode = json['realTimeMode']; recordEndTime = json['recordEndTime']; recordStartTime = json['recordStartTime']; diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index 58d57554..43e119e8 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -160,7 +160,6 @@ class LockMonitoringLogic extends BaseGetXController { userMobile: await state.userUid, userMobileIP: await state.userMobileIP, endData: list); - Get.back(); } //开始录音 diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index 336f50ba..11a71eac 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -187,5 +187,7 @@ abstract class Api { final String getVersionURL = '/app/getVersion'; //版本更新 final String updateCatEyeConfigURL = - '/lockSetting/updateCatEyeConfig'; //设置猫眼工作模式 + '/lockSetting/updateCatEyeConfig'; //猫眼相关设置 + + final String updateFaceConfigURL = '/lockSetting/updateFaceConfig'; //面容相关设置 } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 8ee333f6..eaf7c499 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -850,13 +850,14 @@ class ApiProvider extends BaseProvider { })); // 删除 - Future deletStaffData(int lockId, int staffId, int deleteKey) => post( - deleteStaffURL.toUrl, - jsonEncode({ - 'lockId': lockId, - 'staffId': staffId, - 'deleteKey': deleteKey, - })); + Future deletStaffData(int lockId, int staffId, int deleteKey) => + post( + deleteStaffURL.toUrl, + jsonEncode({ + 'lockId': lockId, + 'staffId': staffId, + 'deleteKey': deleteKey, + })); // 添加员工 Future addStaffData( @@ -1450,19 +1451,19 @@ class ApiProvider extends BaseProvider { jsonEncode({'endDate': endDate, 'lockIdList': lockIdList})); Future batchSendKey( - List lockIds, - int createUser, - String countryCode, - String receiverUsername, - String keyName, - int keyType, - List weekDays, - int startDate, - int endDate, - int startTime, - int endTime, - int remoteUnlockSwitch, - int keyRight) => + List lockIds, + int createUser, + String countryCode, + String receiverUsername, + String keyName, + int keyType, + List weekDays, + int startDate, + int endDate, + int startTime, + int endTime, + int remoteUnlockSwitch, + int keyRight) => post( batchSendKeyURL.toUrl, jsonEncode({ @@ -1568,8 +1569,8 @@ class ApiProvider extends BaseProvider { })); //修改密码 - Future changePassword(String date, String newPassword, - String oldPassword) => + Future changePassword( + String date, String newPassword, String oldPassword) => post( changePasswordURL.toUrl, jsonEncode({ @@ -1708,6 +1709,43 @@ class ApiProvider extends BaseProvider { 'lockId': lockId, 'abnormalWarn': abnormalWarn, })); + + // 设置面容开锁 + Future updateFaceSwitch(int lockId, int faceSwitch) => post( + updateFaceConfigURL.toUrl, + jsonEncode({ + 'lockId': lockId, + 'faceSwitch': faceSwitch, + })); + + // 设置面容开锁 + Future updateFaceConfig(int lockId, int faceInductionDistance) => + post( + updateFaceConfigURL.toUrl, + jsonEncode({ + 'lockId': lockId, + 'faceInductionDistance': faceInductionDistance, + })); + + // 设置面容防误开 + Future updateFacePreventMisrun( + int lockId, int faceAntiMistakeOpen) => + post( + updateFaceConfigURL.toUrl, + jsonEncode({ + 'lockId': lockId, + 'faceAntiMistakeOpen': faceAntiMistakeOpen, + })); + + // 设置面容自动亮屏 + Future updateFaceAutoLightScreen( + int lockId, int faceAutoLightScreen) => + post( + updateFaceConfigURL.toUrl, + jsonEncode({ + 'lockId': lockId, + 'faceAutoLightScreen': faceAutoLightScreen, + })); } extension ExtensionString on String { diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 4c501db8..b96dcbbb 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -1574,13 +1574,11 @@ class ApiRepository { // 发送验证码 2、登陆后可使用 sendValidationCodeAuth 接口,免图片滑动验证 5删除账号 Future sendValidationCodeAuth( - { - required String countryCode, - required String account, - required String channel, - required String codeType, - required String xWidth - }) async { + {required String countryCode, + required String account, + required String channel, + required String codeType, + required String xWidth}) async { final res = await apiProvider.sendValidationCodeAuth( countryCode, account, channel, codeType, xWidth); return SendValidationCodeEntity.fromJson(res.body); @@ -1609,9 +1607,10 @@ class ApiRepository { } //重置密码 - Future changePassword(String date, String newPassword, String oldPassword) async { - final res = await apiProvider.changePassword( - date, newPassword, oldPassword); + Future changePassword( + String date, String newPassword, String oldPassword) async { + final res = + await apiProvider.changePassword(date, newPassword, oldPassword); return LoginEntity.fromJson(res.body); } @@ -1749,4 +1748,35 @@ class ApiRepository { await apiProvider.updateAbnormalWarnConfig(lockId, abnormalWarn); return VersionUndateEntity.fromJson(res.body); } + + // 设置面容开锁 + Future updateFaceSwitch( + {required int lockId, required int faceSwitch}) async { + final res = await apiProvider.updateFaceSwitch(lockId, faceSwitch); + return VersionUndateEntity.fromJson(res.body); + } + + // 设置面容感应距离 + Future updateFaceConfig( + {required int lockId, required int faceInductionDistance}) async { + final res = + await apiProvider.updateFaceConfig(lockId, faceInductionDistance); + return VersionUndateEntity.fromJson(res.body); + } + + // 设置面容防误开 + Future updateFacePreventMisrun( + {required int lockId, required int faceAntiMistakeOpen}) async { + final res = + await apiProvider.updateFacePreventMisrun(lockId, faceAntiMistakeOpen); + return VersionUndateEntity.fromJson(res.body); + } + + // 设置面容自动亮屏 + Future updateFaceAutoLightScreen( + {required int lockId, required int faceAutoLightScreen}) async { + final res = await apiProvider.updateFaceAutoLightScreen( + lockId, faceAutoLightScreen); + return VersionUndateEntity.fromJson(res.body); + } } diff --git a/star_lock/lib/tools/custom_bottom_sheet.dart b/star_lock/lib/tools/custom_bottom_sheet.dart index bbee62f2..cb41c01e 100644 --- a/star_lock/lib/tools/custom_bottom_sheet.dart +++ b/star_lock/lib/tools/custom_bottom_sheet.dart @@ -6,7 +6,7 @@ import 'package:star_lock/app_settings/app_colors.dart'; import '../translations/trans_lib.dart'; class AlertBottomWidget extends StatelessWidget { - List items; + List items; ValueChanged chooseCallback; String topTitle;