From 8fe74cc22b3defed2160674feffcb598aa7591b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDaisyWu=E2=80=9D?= <“18682150237@163.com”> Date: Sat, 28 Dec 2024 14:59:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=98=9F=E9=94=81=EF=BC=9A=E7=8C=AB?= =?UTF-8?q?=E7=9C=BC=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E2=80=94=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E2=80=9C=E5=91=BC=E5=8F=AB=E7=9B=AE=E6=A0=87=E2=80=9D?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E7=9B=B8=E5=85=B3UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../call_target/call_target_select_logic.dart | 0 .../call_target/call_target_select_page.dart | 160 ++++++++++++++++++ .../call_target/call_target_select_state.dart | 0 .../catEyeSet/catEyeSet/catEyeSet_page.dart | 8 + .../lockSet/liveVideo/liveVideo_page.dart | 44 ++--- 5 files changed, 190 insertions(+), 22 deletions(-) create mode 100644 lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_logic.dart create mode 100644 lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_page.dart create mode 100644 lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_state.dart diff --git a/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_logic.dart new file mode 100644 index 00000000..e69de29b diff --git a/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_page.dart b/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_page.dart new file mode 100644 index 00000000..7095e2ca --- /dev/null +++ b/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_page.dart @@ -0,0 +1,160 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart'; +import 'package:star_lock/main/lockDetail/lockSet/liveVideo/liveVideo_state.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; + +class LiveVideoPage extends StatefulWidget { + const LiveVideoPage({Key? key}) : super(key: key); + + @override + State createState() => _LiveVideoPageState(); +} + +class _LiveVideoPageState extends State { + final LiveVideoLogic logic = Get.put(LiveVideoLogic()); + final LiveVideoState state = Get.find().state; + + @override + initState() { + super.initState(); + logic.getLockSettingInfoData(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: '呼叫目标', + haveBack: true, + backAction: () { + Navigator.pop(context, true); + }, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + '保存'.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () { + state.isLiveView.value == false + ? state.realTimeMode.value = 0 + : state.realTimeMode.value = 1; + + logic.updateCatEyeModeConfig(); + }, + ), + ], + ), + 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('管理员APP\n', '', 0), + SizedBox( + height: 16.h, + ), + _buildTipsView('管理中心\n', + '指定时问内,无论门锁是否发生安全事件或有人按门铃,都能在门锁首页随时查看实时画面;电池续航时问将会缩短。', 1), + ], + ))); + } + + 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: 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: [ + if (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, + ) + else + 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) { + //高亮样式 + final TextStyle titleStyle = TextStyle( + color: isClick ? AppColors.blueTextTipsColor : Colors.black, + fontSize: 24.sp, + fontWeight: FontWeight.w500); + //默认样式 + final TextStyle subTipsStyle = TextStyle( + color: isClick + ? AppColors.blueTextTipsColor + : AppColors.placeholderTextColor, + fontSize: 20.sp); + + late InlineSpan tipsPreviewSpan = TextSpan(children: [ + TextSpan(text: titleStr, style: titleStyle), + TextSpan(text: subTitle, style: subTipsStyle), + ]); + return RichText(text: tipsPreviewSpan); + } +} diff --git a/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_state.dart b/lib/main/lockDetail/lockSet/catEyeSet/call_target/call_target_select_state.dart new file mode 100644 index 00000000..e69de29b diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_page.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_page.dart index 100e871f..efec0e92 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_page.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_page.dart @@ -86,6 +86,14 @@ class _CatEyeSetPageState extends State { isHaveLine: true, isHaveRightWidget: true, rightWidget: _otherToDoSwitch(3))), + //ToDo 需增加国际化 + CommonItem( + leftTitel: '呼叫目标'.tr, + rightTitle: '管理员APP'.tr, + allHeight: 70.h, + isHaveLine: true, + isHaveDirection: true, + action: () {}), ], )); } diff --git a/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart b/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart index 74e91a8e..c7c3a38f 100755 --- a/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart +++ b/lib/main/lockDetail/lockSet/liveVideo/liveVideo_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -96,27 +95,28 @@ class _LiveVideoPageState extends State { 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, - )), + if (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, + ) + else + 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(