1.登录页跳转、个人中心退出优化

2.会议首页点击返回键退出APP
This commit is contained in:
fuenmao 2024-12-23 17:49:23 +08:00
parent b3ff943f1c
commit 1cabad280c
4 changed files with 324 additions and 130 deletions

View File

@ -19,7 +19,6 @@ class HomePage extends StatefulWidget {
}
class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
final logic = Get.put(HomeLogic());
final state = Get.find<HomeLogic>().state;
@ -34,6 +33,184 @@ class HomePageState extends State<HomePage> 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(
@ -62,8 +239,7 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
style: TextStyle(
fontSize: 16.sp,
color: ColorUtil.Color_51_51_51,
fontWeight: FontWeight.w500
),
fontWeight: FontWeight.w500),
),
),
Expanded(
@ -79,23 +255,28 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
return Container(
width: double.infinity,
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(6)),
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),
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,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
state.meetingRooms.value[index].roomName,
style: TextStyle(
fontSize: 14.sp,
color: ColorUtil.Color_89_88_88,
fontWeight: FontWeight.w500
),
fontWeight: FontWeight.w500),
),
Row(
children: [
@ -117,12 +298,14 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
),
SizedBox(height: 20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Text(
state.meetingRooms.value[index].roomNum,
state.meetingRooms.value[index]
.roomNum,
style: TextStyle(
fontSize: 12.sp,
color: ColorUtil.Color_177_177_177,
@ -136,7 +319,9 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
height: 16.h,
),
onTap: () {
Clipboard.setData(ClipboardData(text: state.meetingRooms.value[index].roomNum));
Clipboard.setData(ClipboardData(
text: state.meetingRooms
.value[index].roomNum));
ToastUtils.showSuccess("复制成功");
},
)
@ -147,11 +332,13 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
width: 78.w,
height: 30.h,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(6)),
borderRadius: const BorderRadius.all(
Radius.circular(6)),
color: ColorUtil.Color_85_117_242,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Text(
'进入',
@ -169,7 +356,11 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
),
),
onTap: () {
Get.toNamed(Routes.meetingMainPage, arguments: {"roomNumber": state.meetingRooms.value[index].roomNum});
Get.toNamed(Routes.meetingMainPage,
arguments: {
"roomNumber": state.meetingRooms
.value[index].roomNum
});
},
)
],
@ -184,9 +375,8 @@ class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
),
)
],
))
);
}
)));
}*/
@override
void dispose() {

View File

@ -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();

View File

@ -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();
//
if(state.remoteUid.value == UserStore.to.userInfoEntity.value!.uid){
state.remoteUid.value = "";
changePageState(0);
}
//
// stopScreenCapture();

View File

@ -11,6 +11,6 @@ class UserLogic extends GetxController with RequestToolMixin {
/// 退
void logout(){
UserStore.to.erase();
Get.offAllNamed(Routes.loginPage);
Get.toNamed(Routes.loginPage);
}
}