猫眼设置自定义模式获取设置项接口对接
解决点击自定义模式设置项不能弹出相应选项问题 猫眼自定义模式--实时画面接口对接 猫眼自定义模式--有人出现时录像接口对接 猫眼自定义模式--人体侦测距离接口对接
This commit is contained in:
parent
c57426cbcc
commit
bc781eba98
@ -1,6 +1,64 @@
|
||||
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
|
||||
class CatEyeCustomModeLogic extends BaseGetXController {
|
||||
final CatEyeCustomModeState state = CatEyeCustomModeState();
|
||||
|
||||
// 获取锁设置信息
|
||||
Future<LockSetInfoEntity> getLockSettingInfoData() async {
|
||||
LockSetInfoEntity entity = await ApiRepository.to.getLockSettingInfoData(
|
||||
lockId: state.lockSetInfoData.value.lockId.toString(),
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.lockSetInfoData.value = entity.data!;
|
||||
state.catEyeConfigData.value =
|
||||
entity.data!.lockSettingInfo!.catEyeConfig![0];
|
||||
|
||||
if (state.catEyeConfigData.value.catEyeModeConfig != null) {
|
||||
if (state.catEyeConfigData.value.catEyeModeConfig!.recordMode == 1) {
|
||||
state.selectVideoSlot.value = '自定义时段';
|
||||
} else {
|
||||
state.selectVideoSlot.value = '全天';
|
||||
}
|
||||
|
||||
state.recordTime.value =
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.recordTime!;
|
||||
state.detectionDistance.value =
|
||||
'${state.catEyeConfigData.value.catEyeModeConfig!.detectionDistance!}秒';
|
||||
state.realTimeMode.value =
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode == 0
|
||||
? '发生事件时查看'
|
||||
: '实时查看';
|
||||
}
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
//设置猫眼工作模式
|
||||
void updateCatEyeModeConfig() async {
|
||||
var entity = await ApiRepository.to.updateCatEyeModeConfig(
|
||||
lockId: state.lockSetInfoData.value.lockId!,
|
||||
catEyeConfig: [
|
||||
{
|
||||
'catEyeMode': 4,
|
||||
'catEyeModeConfig': {
|
||||
'recordMode':
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.recordMode,
|
||||
'recordStartTime':
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.recordStartTime,
|
||||
'recordEndTime':
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.recordEndTime,
|
||||
'recordTime': state.recordTime.value,
|
||||
'detectionDistance': state.detectionDistance.value,
|
||||
'realTimeMode': state.realTimeMode.value,
|
||||
}
|
||||
}
|
||||
],
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
showToast('设置成功');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@ -21,6 +20,12 @@ class _CatEyeCustomModePageState extends State<CatEyeCustomModePage> {
|
||||
final logic = Get.put(CatEyeCustomModeLogic());
|
||||
final state = Get.find<CatEyeCustomModeLogic>().state;
|
||||
|
||||
@override
|
||||
initState() {
|
||||
super.initState();
|
||||
logic.getLockSettingInfoData();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@ -28,45 +33,65 @@ class _CatEyeCustomModePageState extends State<CatEyeCustomModePage> {
|
||||
appBar: TitleAppBar(
|
||||
barTitle: TranslationLoader.lanKeys!.customMode!.tr,
|
||||
haveBack: true,
|
||||
backAction: () {
|
||||
Navigator.pop(context, true);
|
||||
},
|
||||
backgroundColor: AppColors.mainColor),
|
||||
body: Column(
|
||||
children: [
|
||||
CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.videoSlot!.tr,
|
||||
rightTitle: "",
|
||||
isHaveLine: false,
|
||||
isHaveDirection: true,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: Text('当日22:00~次日08:00',
|
||||
style: TextStyle(
|
||||
fontSize: 22.sp, color: AppColors.darkGrayTextColor)),
|
||||
action: () => Get.toNamed(Routers.videoSlotPage),
|
||||
),
|
||||
_buildSubTitleItem('有人出现时录像', '有人在门口出现10秒后开始录像。\n有人按门铃时立即录像',
|
||||
state.showsUpVideo.value, () {
|
||||
_openBottomItemSheet(state.showsUpVideoList.value, 0);
|
||||
}),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: TranslationLoader.lanKeys!.videoSlot!.tr,
|
||||
rightTitle: "",
|
||||
isHaveLine: false,
|
||||
isHaveDirection: true,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: Text(state.selectVideoSlot.value,
|
||||
style: TextStyle(
|
||||
fontSize: 22.sp, color: AppColors.darkGrayTextColor)),
|
||||
action: () {
|
||||
Navigator.pushNamed(context, Routers.videoSlotPage,
|
||||
arguments: {
|
||||
'lockSetInfoData': state.lockSetInfoData.value,
|
||||
'catEyeConfigData': state.lockSetInfoData.value
|
||||
.lockSettingInfo!.catEyeConfig!.isNotEmpty
|
||||
? state.lockSetInfoData.value.lockSettingInfo!
|
||||
.catEyeConfig![0]
|
||||
: null
|
||||
}).then((value) => {logic.getLockSettingInfoData()});
|
||||
},
|
||||
)),
|
||||
Obx(() => _buildSubTitleItem('有人出现时录像',
|
||||
'有人在门口出现10秒后开始录像。\n有人按门铃时立即录像', state.recordTime.value, () {
|
||||
_openBottomItemSheet(state.showsUpVideoList.value, 0);
|
||||
})),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Obx(() => _buildSubTitleItem(
|
||||
'人体侦测距离', '有人出现在门前1.5米范围时启动录像', state.detectionRange.value,
|
||||
() {
|
||||
Obx(() => _buildSubTitleItem('人体侦测距离', '有人出现在门前1.5米范围时启动录像',
|
||||
state.detectionDistance.value, () {
|
||||
_openBottomItemSheet(state.detectionRangeList.value, 1);
|
||||
})),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
CommonItem(
|
||||
leftTitel: '实时画面',
|
||||
rightTitle: "全天",
|
||||
isHaveLine: false,
|
||||
isHaveDirection: true,
|
||||
isHaveRightWidget: false,
|
||||
action: () {
|
||||
Get.toNamed(Routers.liveVideoPage);
|
||||
},
|
||||
)
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: '实时画面',
|
||||
rightTitle: state.realTimeMode.value,
|
||||
isHaveLine: false,
|
||||
isHaveDirection: true,
|
||||
isHaveRightWidget: false,
|
||||
action: () {
|
||||
Navigator.pushNamed(context, Routers.liveVideoPage,
|
||||
arguments: {
|
||||
'lockSetInfoData': state.lockSetInfoData.value,
|
||||
'catEyeConfigData': state.lockSetInfoData.value
|
||||
.lockSettingInfo!.catEyeConfig!.isNotEmpty
|
||||
? state.lockSetInfoData.value.lockSettingInfo!
|
||||
.catEyeConfig![0]
|
||||
: null
|
||||
}).then((value) => {logic.getLockSettingInfoData()});
|
||||
},
|
||||
))
|
||||
],
|
||||
));
|
||||
}
|
||||
@ -76,6 +101,7 @@ class _CatEyeCustomModePageState extends State<CatEyeCustomModePage> {
|
||||
return GestureDetector(
|
||||
onTap: action,
|
||||
child: Container(
|
||||
color: Colors.white,
|
||||
margin: EdgeInsets.only(left: 20.sp, right: 20.sp, top: 20.h),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
@ -143,15 +169,14 @@ class _CatEyeCustomModePageState extends State<CatEyeCustomModePage> {
|
||||
items: bottomItemList,
|
||||
chooseCallback: (value) {
|
||||
if (clickIndex == 0) {
|
||||
//感应距离
|
||||
state.showsUpVideo.value = state.showsUpVideoList.value[value];
|
||||
//有人出现时录像
|
||||
state.recordTime.value = state.showsUpVideoList.value[value];
|
||||
} else if (clickIndex == 1) {
|
||||
//录像时长
|
||||
state.detectionRange.value =
|
||||
state.detectionDistance.value =
|
||||
state.detectionRangeList.value[value];
|
||||
}
|
||||
|
||||
setState(() {});
|
||||
logic.updateCatEyeModeConfig();
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
@ -1,17 +1,16 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/app_settings/app_colors.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
import 'package:star_lock/translations/trans_lib.dart';
|
||||
|
||||
class CatEyeCustomModeState {
|
||||
var isCheck = false.obs;
|
||||
var faceOn = false.obs; //面容开锁
|
||||
var autoBright = false.obs; //自动亮屏
|
||||
var showsUpVideo = '10${TranslationLoader.lanKeys!.second!.tr}'.obs; //有人出现时录像
|
||||
var detectionRange = '约1.5米'.obs; //人体侦测距离
|
||||
// var showsUpVideo = '10${TranslationLoader.lanKeys!.second!.tr}'.obs; //有人出现时录像
|
||||
// var detectionRange = '约1.5米'.obs; //人体侦测距离
|
||||
var showsUpVideoList = [
|
||||
'不录像',
|
||||
'立即录像',
|
||||
@ -37,4 +36,23 @@ class CatEyeCustomModeState {
|
||||
text: TranslationLoader.lanKeys!.addAndUseFaceWhenUnlockingTip!.tr,
|
||||
style: subTipsStyle),
|
||||
]);
|
||||
|
||||
var lockSetInfoData = LockSetInfoData().obs;
|
||||
var catEyeConfigData = CatEyeConfig().obs;
|
||||
|
||||
var selectVideoSlot = ''.obs; //录像时段 0全天 1自定义时间
|
||||
var recordTime = ''.obs; //有人出现时录像
|
||||
var detectionDistance = ''.obs; //人体侦测距离
|
||||
var realTimeMode = ''.obs; //实时画面 0发生事件事查看 1实时查看
|
||||
|
||||
CatEyeCustomModeState() {
|
||||
Map map = Get.arguments;
|
||||
if (map["lockSetInfoData"] != null) {
|
||||
lockSetInfoData.value = map["lockSetInfoData"];
|
||||
}
|
||||
|
||||
if (map['catEyeConfigData'] != null) {
|
||||
catEyeConfigData.value = map['catEyeConfigData'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ class _CatEyeSetPageState extends State<CatEyeSetPage> {
|
||||
Navigator.pushNamed(context, Routers.catEyeWorkModePage,
|
||||
arguments: {
|
||||
'lockSetInfoData': state.lockSetInfoData.value,
|
||||
'catEyeConfigata': state.lockSetInfoData.value
|
||||
'catEyeConfigData': state.lockSetInfoData.value
|
||||
.lockSettingInfo!.catEyeConfig!.isNotEmpty
|
||||
? state.lockSetInfoData.value.lockSettingInfo!
|
||||
.catEyeConfig![0]
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
|
||||
@ -27,4 +29,32 @@ class CatEyeWorkModeLogic extends BaseGetXController {
|
||||
showToast('设置成功');
|
||||
}
|
||||
}
|
||||
|
||||
// 获取锁设置信息
|
||||
Future<LockSetInfoEntity> 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!;
|
||||
|
||||
if (state.catEyeConfigData.value.catEyeMode ==
|
||||
XSConstantMacro.catEyeWorkModePowerSaving) {
|
||||
state.boolList.value[0] = true;
|
||||
} else if (state.catEyeConfigData.value.catEyeMode ==
|
||||
XSConstantMacro.catEyeWorkModeStayCapture) {
|
||||
state.boolList.value[1] = true;
|
||||
} else if (state.catEyeConfigData.value.catEyeMode ==
|
||||
XSConstantMacro.catEyeWorkModeRealTimeMonitoring) {
|
||||
state.boolList.value[2] = true;
|
||||
} else if (state.catEyeConfigData.value.catEyeMode ==
|
||||
XSConstantMacro.catEyeWorkModeCustom) {
|
||||
state.boolList.value[3] = true;
|
||||
}
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,6 +19,12 @@ class _CatEyeWorkModePageState extends State<CatEyeWorkModePage> {
|
||||
final logic = Get.put(CatEyeWorkModeLogic());
|
||||
final state = Get.find<CatEyeWorkModeLogic>().state;
|
||||
|
||||
@override
|
||||
initState() {
|
||||
super.initState();
|
||||
logic.getLockSettingInfoData();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@ -60,72 +66,75 @@ class _CatEyeWorkModePageState extends State<CatEyeWorkModePage> {
|
||||
|
||||
Widget _buildTipsView(String titleStr, String subTitle, int clickIndex) {
|
||||
return GestureDetector(
|
||||
child: Container(
|
||||
width: ScreenUtil().screenWidth - 40.w,
|
||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h),
|
||||
decoration: BoxDecoration(
|
||||
color: state.boolList.value[clickIndex]
|
||||
? 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: [
|
||||
state.boolList.value[clickIndex]
|
||||
? 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, state.boolList.value[clickIndex]),
|
||||
),
|
||||
SizedBox(
|
||||
width: 10.w,
|
||||
),
|
||||
GestureDetector(
|
||||
child: Container(
|
||||
width: 90.w,
|
||||
height: 40.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
borderRadius: BorderRadius.circular(15.0),
|
||||
border: Border.all(
|
||||
color: AppColors.placeholderTextColor, width: 1.w),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
clickIndex == 3 ? '设置' : '查看',
|
||||
style: TextStyle(
|
||||
color: AppColors.placeholderTextColor,
|
||||
fontSize: 20.sp),
|
||||
),
|
||||
),
|
||||
child: Container(
|
||||
width: ScreenUtil().screenWidth - 40.w,
|
||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 10.h),
|
||||
decoration: BoxDecoration(
|
||||
color: state.boolList.value[clickIndex]
|
||||
? 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: [
|
||||
state.boolList.value[clickIndex]
|
||||
? 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, state.boolList.value[clickIndex]),
|
||||
),
|
||||
onTap: () {
|
||||
//自定义模式跳转
|
||||
if (clickIndex == 3) {
|
||||
Get.toNamed(Routers.catEyeCustomModePage);
|
||||
} else {
|
||||
//其他模式弹框
|
||||
showBottomSheet(context, clickIndex);
|
||||
}
|
||||
},
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
SizedBox(
|
||||
width: 10.w,
|
||||
),
|
||||
GestureDetector(
|
||||
child: Container(
|
||||
width: 90.w,
|
||||
height: 40.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
borderRadius: BorderRadius.circular(15.0),
|
||||
border: Border.all(
|
||||
color: AppColors.placeholderTextColor, width: 1.w),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
clickIndex == 3 ? '设置' : '查看',
|
||||
style: TextStyle(
|
||||
color: AppColors.placeholderTextColor,
|
||||
fontSize: 20.sp),
|
||||
),
|
||||
),
|
||||
),
|
||||
onTap: () {
|
||||
//自定义模式跳转
|
||||
if (clickIndex == 3) {
|
||||
Navigator.pushNamed(
|
||||
context, Routers.catEyeCustomModePage,
|
||||
arguments: {
|
||||
'lockSetInfoData': state.lockSetInfoData.value,
|
||||
}).then((value) => logic.getLockSettingInfoData());
|
||||
} else {
|
||||
//其他模式弹框
|
||||
showBottomSheet(context, clickIndex);
|
||||
}
|
||||
},
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
onTap: () {
|
||||
for (int i = 0; i < state.boolList.value.length; i++) {
|
||||
if (clickIndex == i) {
|
||||
state.boolList.value[clickIndex] = true;
|
||||
@ -153,8 +162,6 @@ class _CatEyeWorkModePageState extends State<CatEyeWorkModePage> {
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildRichText(String titleStr, String subTitle, bool isClick) {
|
||||
|
||||
@ -18,8 +18,8 @@ class CatEyeWorkModeState {
|
||||
CatEyeWorkModeState() {
|
||||
Map map = Get.arguments;
|
||||
lockSetInfoData.value = map["lockSetInfoData"];
|
||||
if (map['catEyeConfigata'] != null) {
|
||||
catEyeConfigData.value = map['catEyeConfigata'];
|
||||
if (map['catEyeConfigData'] != null) {
|
||||
catEyeConfigData.value = map['catEyeConfigData'];
|
||||
selectCatEyeWorkMode.value = catEyeConfigData.value.catEyeMode!;
|
||||
|
||||
if (catEyeConfigData.value.catEyeMode ==
|
||||
|
||||
@ -1,6 +1,59 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_state.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
|
||||
class VideoSlotLogic extends BaseGetXController {
|
||||
final VideoSlotState state = VideoSlotState();
|
||||
|
||||
// 获取锁设置信息
|
||||
Future<LockSetInfoEntity> getLockSettingInfoData() async {
|
||||
LockSetInfoEntity entity = await ApiRepository.to.getLockSettingInfoData(
|
||||
lockId: state.lockSetInfoData.value.lockId.toString(),
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.lockSetInfoData.value = entity.data!;
|
||||
state.catEyeConfigData.value =
|
||||
entity.data!.lockSettingInfo!.catEyeConfig![0];
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
//设置猫眼工作模式
|
||||
void updateCatEyeModeConfig() async {
|
||||
var entity = await ApiRepository.to.updateCatEyeModeConfig(
|
||||
lockId: state.lockSetInfoData.value.lockId!,
|
||||
catEyeConfig: [
|
||||
{
|
||||
'catEyeMode': 4,
|
||||
'catEyeModeConfig': {
|
||||
'recordMode': state.recordMode.value,
|
||||
'recordStartTime': state.recordStartTime.value,
|
||||
'recordEndTime': state.recordEndTime.value,
|
||||
'recordTime':
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.recordTime,
|
||||
'detectionDistance': state
|
||||
.catEyeConfigData.value.catEyeModeConfig!.detectionDistance,
|
||||
'realTimeMode':
|
||||
state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode,
|
||||
}
|
||||
}
|
||||
],
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
showToast('设置成功');
|
||||
Get.back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,9 @@ class _VideoSlotPageState extends State<VideoSlotPage> {
|
||||
appBar: TitleAppBar(
|
||||
barTitle: '录像时段',
|
||||
haveBack: true,
|
||||
backAction: () {
|
||||
Navigator.pop(context, true);
|
||||
},
|
||||
backgroundColor: AppColors.mainColor,
|
||||
actionsList: [
|
||||
TextButton(
|
||||
@ -35,7 +38,16 @@ class _VideoSlotPageState extends State<VideoSlotPage> {
|
||||
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||
),
|
||||
onPressed: () {
|
||||
Get.back();
|
||||
state.isCustom.value == false
|
||||
? state.recordMode.value = 0
|
||||
: state.recordMode.value = 1;
|
||||
if (state.recordMode.value == 1) {
|
||||
state.recordStartTime.value =
|
||||
state.startDateTime.value.millisecondsSinceEpoch;
|
||||
state.recordEndTime.value =
|
||||
state.endDateTime.value.millisecondsSinceEpoch;
|
||||
}
|
||||
logic.updateCatEyeModeConfig();
|
||||
},
|
||||
),
|
||||
],
|
||||
@ -49,7 +61,7 @@ class _VideoSlotPageState extends State<VideoSlotPage> {
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
_buildCustomTimeView('自定义时间', '', 1),
|
||||
_buildCustomTimeView('自定义时间', 1),
|
||||
],
|
||||
));
|
||||
}
|
||||
@ -92,13 +104,17 @@ class _VideoSlotPageState extends State<VideoSlotPage> {
|
||||
)),
|
||||
)),
|
||||
onTap: () {
|
||||
state.isCustom.value = !state.isCustom.value;
|
||||
if (clickIndex == 0) {
|
||||
state.isCustom.value = false;
|
||||
} else {
|
||||
state.isCustom.value = true;
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
//自定义时间
|
||||
Widget _buildCustomTimeView(String leftStr, String rightStr, int isEndTIme) {
|
||||
Widget _buildCustomTimeView(String leftStr, int clickIndex) {
|
||||
return GestureDetector(
|
||||
child: Obx(() => Container(
|
||||
width: ScreenUtil().screenWidth - 40.w,
|
||||
@ -164,7 +180,11 @@ class _VideoSlotPageState extends State<VideoSlotPage> {
|
||||
)),
|
||||
)),
|
||||
onTap: () {
|
||||
state.isCustom.value = !state.isCustom.value;
|
||||
if (clickIndex == 1) {
|
||||
state.isCustom.value = true;
|
||||
} else {
|
||||
state.isCustom.value = false;
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
|
||||
class VideoSlotState {
|
||||
var lockSetInfoData = LockSetInfoData().obs;
|
||||
var catEyeConfigData = CatEyeConfig().obs;
|
||||
|
||||
var isCustom = false.obs; //是否自定义
|
||||
DateTime dateTime = DateTime.now();
|
||||
final startDateTime = DateTime.now().obs; //开始时间:当日
|
||||
@ -9,4 +13,22 @@ class VideoSlotState {
|
||||
var startDate =
|
||||
'${DateTime.now().hour}:${DateTime.now().minute}'.obs; //默认为当前时间
|
||||
var endDate = '${DateTime.now().hour}:${DateTime.now().minute}'.obs; //默认为当前时间
|
||||
|
||||
var recordMode = 0.obs; //录像时段 0全天 1自定义时间
|
||||
|
||||
var recordStartTime = 0.obs; // 自定义开始时间
|
||||
var recordEndTime = 0.obs; // 自定义结束时间
|
||||
var recordTime = ''.obs; //有人出现时录像
|
||||
var detectionDistance = 0.obs; //人体侦测距离
|
||||
var realTimeMode = 0.obs; //实时画面 0发生事件事查看 1实时查看
|
||||
|
||||
VideoSlotState() {
|
||||
Map map = Get.arguments;
|
||||
if (map['lockSetInfoData'] != null) {
|
||||
lockSetInfoData.value = map['lockSetInfoData'];
|
||||
}
|
||||
if (map['catEyeConfigData'] != null) {
|
||||
catEyeConfigData.value = map['catEyeConfigData'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,59 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/liveVideo/liveVideo_state.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
|
||||
class LiveVideoLogic extends BaseGetXController {
|
||||
final LiveVideoState state = LiveVideoState();
|
||||
|
||||
// 获取锁设置信息
|
||||
Future<LockSetInfoEntity> getLockSettingInfoData() async {
|
||||
LockSetInfoEntity entity = await ApiRepository.to.getLockSettingInfoData(
|
||||
lockId: state.lockSetInfoData.value.lockId.toString(),
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.lockSetInfoData.value = entity.data!;
|
||||
state.catEyeConfigData.value =
|
||||
entity.data!.lockSettingInfo!.catEyeConfig![0];
|
||||
|
||||
if (state.catEyeConfigData.value.catEyeModeConfig != null) {
|
||||
if (state.catEyeConfigData.value.catEyeModeConfig!.recordMode == 1) {
|
||||
state.isLiveView.value = true;
|
||||
} else {
|
||||
state.isLiveView.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
//设置猫眼工作模式
|
||||
void updateCatEyeModeConfig() async {
|
||||
var entity = await ApiRepository.to.updateCatEyeModeConfig(
|
||||
lockId: state.lockSetInfoData.value.lockId ?? 0,
|
||||
catEyeConfig: [
|
||||
{
|
||||
'catEyeMode': 4,
|
||||
'catEyeModeConfig': {
|
||||
'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.realTimeMode.value,
|
||||
}
|
||||
}
|
||||
],
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
showToast('设置成功');
|
||||
Get.back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,11 @@ class _LiveVideoPageState extends State<LiveVideoPage> {
|
||||
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||
),
|
||||
onPressed: () {
|
||||
Get.back();
|
||||
state.isLiveView.value == false
|
||||
? state.realTimeMode.value = 0
|
||||
: state.realTimeMode.value = 1;
|
||||
|
||||
logic.updateCatEyeModeConfig();
|
||||
},
|
||||
),
|
||||
],
|
||||
@ -117,7 +121,11 @@ class _LiveVideoPageState extends State<LiveVideoPage> {
|
||||
)),
|
||||
),
|
||||
onTap: () {
|
||||
state.isLiveView.value = !state.isLiveView.value;
|
||||
if (clickIndex == 0) {
|
||||
state.isLiveView.value = false;
|
||||
} else {
|
||||
state.isLiveView.value = true;
|
||||
}
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
@ -1,5 +1,19 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||
|
||||
class LiveVideoState {
|
||||
var isLiveView = false.obs; //是否实时查看
|
||||
var realTimeMode = 0.obs; //实时画面 0发生事件事查看 1实时查看
|
||||
var lockSetInfoData = LockSetInfoData().obs;
|
||||
var catEyeConfigData = CatEyeConfig().obs;
|
||||
|
||||
LiveVideoState() {
|
||||
Map map = Get.arguments;
|
||||
if (map['lockSetInfoData'] != null) {
|
||||
lockSetInfoData.value = map['lockSetInfoData'];
|
||||
}
|
||||
if (map['catEyeConfigData'] != null) {
|
||||
catEyeConfigData.value = map['catEyeConfigData'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,9 +88,10 @@ class UDPTalkClass {
|
||||
}
|
||||
playLocalAudioTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||
playLocalAudioSecond++;
|
||||
print('还在工作么这个定时器$playLocalAudioSecond');
|
||||
// 检查条件,如果达到60秒且未得到应答,则认为失败
|
||||
if (playLocalAudioSecond >= 60) {
|
||||
playLocalAudioTimer.cancel(); // 取消定时器
|
||||
timer.cancel(); // 取消定时器
|
||||
playLocalAudioSecond = 0;
|
||||
// LockMonitoringLogic().initiateUdpHangUpAction(5);
|
||||
callNoAnswer(4);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user