From 1cabad280c17010d51df09e04ef2d46ba62aad12 Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Mon, 23 Dec 2024 17:49:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=99=BB=E5=BD=95=E9=A1=B5=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E3=80=81=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=E9=80=80=E5=87=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96=202.=E4=BC=9A=E8=AE=AE=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E8=BF=94=E5=9B=9E=E9=94=AE=E9=80=80=E5=87=BA?= =?UTF-8?q?APP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wgshare/lib/pages/homePage/home_view.dart | 440 +++++++++++++----- wgshare/lib/pages/loginPage/login_logic.dart | 6 +- .../lib/pages/metting/meeting_main_logic.dart | 6 +- wgshare/lib/pages/userPage/user_logic.dart | 2 +- 4 files changed, 324 insertions(+), 130 deletions(-) diff --git a/wgshare/lib/pages/homePage/home_view.dart b/wgshare/lib/pages/homePage/home_view.dart index fdd2e24..c64ec2d 100644 --- a/wgshare/lib/pages/homePage/home_view.dart +++ b/wgshare/lib/pages/homePage/home_view.dart @@ -19,7 +19,6 @@ class HomePage extends StatefulWidget { } class HomePageState extends State with AutomaticKeepAliveClientMixin { - final logic = Get.put(HomeLogic()); final state = Get.find().state; @@ -34,6 +33,184 @@ class HomePageState extends State with AutomaticKeepAliveClientMixin { } @override + Widget build(BuildContext context) { + super.build(context); + return PopScope( + canPop: false, + onPopInvoked: (bool didPop) async { + if (didPop) { + return; + } else { + SystemNavigator.pop(); + } + }, + child: Scaffold( + appBar: AppBar( + surfaceTintColor: Colors.white, + elevation: 0, + toolbarHeight: 0, + systemOverlayStyle: const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + systemNavigationBarColor: Color(0xFF000000), + systemNavigationBarIconBrightness: Brightness.light, + statusBarIconBrightness: Brightness.dark, + statusBarBrightness: Brightness.light, + ), + backgroundColor: Colors.white, + ), + body: Obx(() => Column( + children: [ + Container( + width: double.infinity, + height: 44.h, + alignment: Alignment.center, + color: Colors.white, + child: Text( + '会议列表', + style: TextStyle( + fontSize: 16.sp, + color: ColorUtil.Color_51_51_51, + fontWeight: FontWeight.w500), + ), + ), + Expanded( + child: Container( + color: ColorUtil.Color_244_244_244, + child: SmartRefresher( + enablePullUp: true, + controller: state.refreshController, + onRefresh: logic.onRefresh, + onLoading: logic.onLoading, + child: ListView.builder( + itemBuilder: (context, index) { + return Container( + width: double.infinity, + decoration: const BoxDecoration( + borderRadius: + BorderRadius.all(Radius.circular(6)), + color: Colors.white, + ), + margin: EdgeInsets.only( + top: index == 0 ? 20 : 12, + bottom: index == 19 ? 20 : 0, + left: 16, + right: 16), + padding: const EdgeInsets.all(12), + child: Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + state.meetingRooms.value[index].roomName, + style: TextStyle( + fontSize: 14.sp, + color: ColorUtil.Color_89_88_88, + fontWeight: FontWeight.w500), + ), + Row( + children: [ + Image.asset( + 'assets/images/index_persons.png', + width: 16.w, + height: 16.h, + ), + Text( + '${state.meetingRooms.value[index].onlineUserCount}人', + style: TextStyle( + fontSize: 12.sp, + color: ColorUtil.Color_177_177_177, + ), + ), + ], + ) + ], + ), + SizedBox(height: 20.h), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text( + state.meetingRooms.value[index] + .roomNum, + style: TextStyle( + fontSize: 12.sp, + color: ColorUtil.Color_177_177_177, + ), + ), + SizedBox(width: 6.w), + GestureDetector( + child: Image.asset( + 'assets/images/index_copy.png', + width: 16.w, + height: 16.h, + ), + onTap: () { + Clipboard.setData(ClipboardData( + text: state.meetingRooms + .value[index].roomNum)); + ToastUtils.showSuccess("复制成功"); + }, + ) + ], + ), + GestureDetector( + child: Container( + width: 78.w, + height: 30.h, + decoration: BoxDecoration( + borderRadius: const BorderRadius.all( + Radius.circular(6)), + color: ColorUtil.Color_85_117_242, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text( + '进入', + style: TextStyle( + fontSize: 12.sp, + color: Colors.white, + ), + ), + Image.asset( + 'assets/images/index_right.png', + width: 16.w, + height: 16.h, + ) + ], + ), + ), + onTap: () { + Get.toNamed(Routes.meetingMainPage, + arguments: { + "roomNumber": state.meetingRooms + .value[index].roomNum + }); + }, + ) + ], + ) + ], + ), + ); + }, + itemCount: state.meetingRooms.value.length, + ), + ), + ), + ) + ], + ))), + ); + } + + /*@override Widget build(BuildContext context) { super.build(context); return Scaffold( @@ -51,142 +228,155 @@ class HomePageState extends State with AutomaticKeepAliveClientMixin { backgroundColor: Colors.white, ), body: Obx(() => Column( - children: [ - Container( - width: double.infinity, - height: 44.h, - alignment: Alignment.center, - color: Colors.white, - child: Text( - '会议列表', - style: TextStyle( - fontSize: 16.sp, - color: ColorUtil.Color_51_51_51, - fontWeight: FontWeight.w500 + children: [ + Container( + width: double.infinity, + height: 44.h, + alignment: Alignment.center, + color: Colors.white, + child: Text( + '会议列表', + style: TextStyle( + fontSize: 16.sp, + color: ColorUtil.Color_51_51_51, + fontWeight: FontWeight.w500), + ), ), - ), - ), - Expanded( - child: Container( - color: ColorUtil.Color_244_244_244, - child: SmartRefresher( - enablePullUp: true, - controller: state.refreshController, - onRefresh: logic.onRefresh, - onLoading: logic.onLoading, - child: ListView.builder( - itemBuilder: (context, index) { - return Container( - width: double.infinity, - decoration: const BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(6)), - color: Colors.white, - ), - margin: EdgeInsets.only(top: index == 0 ? 20 : 12, bottom: index == 19 ? 20 : 0, left: 16, right: 16), - padding: const EdgeInsets.all(12), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + Expanded( + child: Container( + color: ColorUtil.Color_244_244_244, + child: SmartRefresher( + enablePullUp: true, + controller: state.refreshController, + onRefresh: logic.onRefresh, + onLoading: logic.onLoading, + child: ListView.builder( + itemBuilder: (context, index) { + return Container( + width: double.infinity, + decoration: const BoxDecoration( + borderRadius: + BorderRadius.all(Radius.circular(6)), + color: Colors.white, + ), + margin: EdgeInsets.only( + top: index == 0 ? 20 : 12, + bottom: index == 19 ? 20 : 0, + left: 16, + right: 16), + padding: const EdgeInsets.all(12), + child: Column( children: [ - Text( - state.meetingRooms.value[index].roomName, - style: TextStyle( - fontSize: 14.sp, - color: ColorUtil.Color_89_88_88, - fontWeight: FontWeight.w500 - ), - ), Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - Image.asset( - 'assets/images/index_persons.png', - width: 16.w, - height: 16.h, - ), Text( - '${state.meetingRooms.value[index].onlineUserCount}人', + state.meetingRooms.value[index].roomName, style: TextStyle( - fontSize: 12.sp, - color: ColorUtil.Color_177_177_177, - ), + fontSize: 14.sp, + color: ColorUtil.Color_89_88_88, + fontWeight: FontWeight.w500), ), + Row( + children: [ + Image.asset( + 'assets/images/index_persons.png', + width: 16.w, + height: 16.h, + ), + Text( + '${state.meetingRooms.value[index].onlineUserCount}人', + style: TextStyle( + fontSize: 12.sp, + color: ColorUtil.Color_177_177_177, + ), + ), + ], + ) + ], + ), + SizedBox(height: 20.h), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text( + state.meetingRooms.value[index] + .roomNum, + style: TextStyle( + fontSize: 12.sp, + color: ColorUtil.Color_177_177_177, + ), + ), + SizedBox(width: 6.w), + GestureDetector( + child: Image.asset( + 'assets/images/index_copy.png', + width: 16.w, + height: 16.h, + ), + onTap: () { + Clipboard.setData(ClipboardData( + text: state.meetingRooms + .value[index].roomNum)); + ToastUtils.showSuccess("复制成功"); + }, + ) + ], + ), + GestureDetector( + child: Container( + width: 78.w, + height: 30.h, + decoration: BoxDecoration( + borderRadius: const BorderRadius.all( + Radius.circular(6)), + color: ColorUtil.Color_85_117_242, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text( + '进入', + style: TextStyle( + fontSize: 12.sp, + color: Colors.white, + ), + ), + Image.asset( + 'assets/images/index_right.png', + width: 16.w, + height: 16.h, + ) + ], + ), + ), + onTap: () { + Get.toNamed(Routes.meetingMainPage, + arguments: { + "roomNumber": state.meetingRooms + .value[index].roomNum + }); + }, + ) ], ) ], ), - SizedBox(height: 20.h), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - Text( - state.meetingRooms.value[index].roomNum, - style: TextStyle( - fontSize: 12.sp, - color: ColorUtil.Color_177_177_177, - ), - ), - SizedBox(width: 6.w), - GestureDetector( - child: Image.asset( - 'assets/images/index_copy.png', - width: 16.w, - height: 16.h, - ), - onTap: (){ - Clipboard.setData(ClipboardData(text: state.meetingRooms.value[index].roomNum)); - ToastUtils.showSuccess("复制成功"); - }, - ) - ], - ), - GestureDetector( - child: Container( - width: 78.w, - height: 30.h, - decoration: BoxDecoration( - borderRadius: const BorderRadius.all(Radius.circular(6)), - color: ColorUtil.Color_85_117_242, - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - '进入', - style: TextStyle( - fontSize: 12.sp, - color: Colors.white, - ), - ), - Image.asset( - 'assets/images/index_right.png', - width: 16.w, - height: 16.h, - ) - ], - ), - ), - onTap: (){ - Get.toNamed(Routes.meetingMainPage, arguments: {"roomNumber": state.meetingRooms.value[index].roomNum}); - }, - ) - ], - ) - ], - ), - ); - }, - itemCount: state.meetingRooms.value.length, + ); + }, + itemCount: state.meetingRooms.value.length, + ), + ), ), - ), - ), - ) - ], - )) - ); - } + ) + ], + ))); + }*/ @override void dispose() { diff --git a/wgshare/lib/pages/loginPage/login_logic.dart b/wgshare/lib/pages/loginPage/login_logic.dart index 7d2aa93..decd1d0 100644 --- a/wgshare/lib/pages/loginPage/login_logic.dart +++ b/wgshare/lib/pages/loginPage/login_logic.dart @@ -52,7 +52,8 @@ class LoginLogic extends GetxController with RequestToolMixin { if (null != res.data) { UserStore.to.setToken(res.data!.token); UserStore.to.setUserDetailInfo(res.data!); - Get.toNamed(Routes.startPage); + // Get.toNamed(Routes.startPage); + Get.offAllNamed(Routes.startPage); } }finally{ ToastUtils.dismiss(); @@ -77,7 +78,8 @@ class LoginLogic extends GetxController with RequestToolMixin { if (null != res.data) { UserStore.to.setToken(res.data!.token); UserStore.to.setUserDetailInfo(res.data!); - Get.toNamed(Routes.meetingMainPage, arguments: {"roomNumber": state.meetingCodeController.text}); + // Get.toNamed(Routes.meetingMainPage, arguments: {"roomNumber": state.meetingCodeController.text}); + Get.offAllNamed(Routes.startPage, arguments: {"roomNumber": state.meetingCodeController.text}); } }finally{ ToastUtils.dismiss(); diff --git a/wgshare/lib/pages/metting/meeting_main_logic.dart b/wgshare/lib/pages/metting/meeting_main_logic.dart index f84695e..6046570 100644 --- a/wgshare/lib/pages/metting/meeting_main_logic.dart +++ b/wgshare/lib/pages/metting/meeting_main_logic.dart @@ -351,7 +351,6 @@ class MeetingMainLogic extends GetxController with RequestToolMixin { state.isOpenMicrophone.value = false; state.isOpenCamera.value = false; state.isOpenShare.value = false; - state.remoteUid.value = ""; // 设置声网SDK角色为观众 setClientRole("观众"); @@ -362,7 +361,10 @@ class MeetingMainLogic extends GetxController with RequestToolMixin { // 关闭本地预览悬浮窗 state.floating.value?.close(); // 切换页面状态 - changePageState(0); + if(state.remoteUid.value == UserStore.to.userInfoEntity.value!.uid){ + state.remoteUid.value = ""; + changePageState(0); + } // 停止共享屏幕(此版本不做) // stopScreenCapture(); diff --git a/wgshare/lib/pages/userPage/user_logic.dart b/wgshare/lib/pages/userPage/user_logic.dart index a83a0f2..41b1b09 100644 --- a/wgshare/lib/pages/userPage/user_logic.dart +++ b/wgshare/lib/pages/userPage/user_logic.dart @@ -11,6 +11,6 @@ class UserLogic extends GetxController with RequestToolMixin { /// 退出登录 void logout(){ UserStore.to.erase(); - Get.offAllNamed(Routes.loginPage); + Get.toNamed(Routes.loginPage); } }