From 0cf9f811ed1b43f21173bb498f53f7a83194f097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=90=E8=B4=A4?= Date: Fri, 23 Jan 2026 18:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=89=88=E5=BC=B9=E7=AA=97=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E7=89=88=E4=BB=BB=E5=8A=A1=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E7=89=88=E7=BB=93=E6=9D=9F=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/answer_icon.png | Bin 0 -> 610 bytes assets/images/daily_tasks.png | Bin 0 -> 34156 bytes assets/images/get_out_icon.png | Bin 0 -> 481 bytes assets/images/hang_up_icon.png | Bin 0 -> 1102 bytes assets/images/settlement_month.png | Bin 0 -> 10021 bytes assets/images/settlement_today.png | Bin 0 -> 9973 bytes lib/controller/home/home_controller.dart | 142 +++++++ lib/generated/assets.dart | 6 + lib/pages/discover/settlement_page.dart | 216 ++++++++++ lib/pages/discover/task_detail.dart | 160 ++++++++ .../live/live_room_invitation_list.dart | 124 +++++- .../live/live_room_notice_chat_panel.dart | 375 ++++++++++++++---- lib/widget/live/live_room_user_header.dart | 2 +- 13 files changed, 949 insertions(+), 76 deletions(-) create mode 100644 assets/images/answer_icon.png create mode 100644 assets/images/daily_tasks.png create mode 100644 assets/images/get_out_icon.png create mode 100644 assets/images/hang_up_icon.png create mode 100644 assets/images/settlement_month.png create mode 100644 assets/images/settlement_today.png create mode 100644 lib/pages/discover/settlement_page.dart create mode 100644 lib/pages/discover/task_detail.dart diff --git a/assets/images/answer_icon.png b/assets/images/answer_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..db2c147cf6131d0be8439abfe1f6e1d878c9e6b7 GIT binary patch literal 610 zcmV-o0-gPdP)Px#1am@3R0s$N2z&@+hyVZr3`s;mRA_?v2k%p>by{L0y8{>s^Ae@U!Y&Vt#? z%^=&y$GxskmFs6_!_2ctAD2e$(X(JGiE$Z+?e1zYIh{o89O!==0Nk=K=~^Uz4*pG} zk41jKwFZKRA#%2AmuV@*qT$z>!biFkgpIUv=}r(Q4lKJ8Bz4E6^yx-WWKn*j3qiSZ zfKCLVU@Fp*pr@~q3)hW^nYrWuSAmFV-ByxX3#~-Z6lgD=MztVlBBF8Km~%__p+3cY zsRaPFK9}|g@}^d4VRlg+L3>9Jpg)4%s2M$gZb6|tS5-6%3Q={1RI{K%mWnkCIt0yv zOrYI6C(A{%pwJ!5);x#maS#xkq=tUyN=9`A0l_G$mS*ZBNVu>6Q1zXQz2aN*sWOmk zMUYvink<3X(gU|52=EUai=(I|L2pQ1vL(l8T98l_Ma>J6D7xqNZ(b1aCn+nEx)229 z-_^PiBqT>sSAuftQCEV1^m;U)^76omL{Ctq9z{uNDS~Xu&XJPr5V4aAavqP0kn|i* zd+w?(*gzgW3HSv{O@62j!Vv))s`s_#1c{VG$IDKNNcM_yUPI_K}2L_ w0bGNq=?FQ1lVUDTUf*!7w6pk?V~;xF4{fk8OYYVaGXMYp07*qoM6N<$f=po#HUIzs literal 0 HcmV?d00001 diff --git a/assets/images/daily_tasks.png b/assets/images/daily_tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c700ff6b3e3835fcc64d970c930ce5e5928abd GIT binary patch literal 34156 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 A&;S4c literal 0 HcmV?d00001 diff --git a/assets/images/get_out_icon.png b/assets/images/get_out_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f06dd484a92e4e57559ad7e09250f8b8dd82cef8 GIT binary patch literal 481 zcmV<70UrK|P)Px#1am@3R0s$N2z&@+hyVZqi%CR5R9J<*mTPW=Fbst4YVXzbX69s}C!78tP-7hO zgppQSk$C(O630Xh0uTVi^wSam(&9BF1yYg#2v5UE1;_>LO_-=xVgFptypVV92g-st zbAz2f8|L)Zl`$47%mnJ%69#I|D%m&fi0@vdugr68va|vb(b^G1M0uc5{i^?=CGaUA zt##O8bYntQ^ zYF(SY>3XymX6^#I73%vStGNx^0Ei3MlKb+>u+^PVh+Ca!rI;UP_Tqfuda8ECG*(Ke zea4%%97wf+?`fgxs=gB_BOu1Ry=i+2M)}9;Rl-xH{+uJ!=J-4TV8zTUfQ5+G(n}`<>!39fUevPx#1am@3R0s$N2z&@+hyVZs_(?=TRCt{2oWXhHAP|Lz-R&Y}h1e`iV7*v2W#_|) z^Z>&AKq>W>BGjJ-eJN%sjB~Dcci8dgX7~0J>7++=O^6gXiE`2`j&siR?n^6D+$6$D zTI*BKT&6dBZtChJFV6cTjyIfi5$PGjT8zDr*Hk2k6U4+eHXDA;R1omSj`UKU~|%eOF5Q^NGbI(e<1B9 zV-e{<;mvw6qEp*iYwMi5wCh%!yC1=Y3uK9I6Kyu-D;+$6ZeH0Rq)< z%_d5zbBmA{a}iOdlX^ZR_!Ft-nh?V<)SgGN*X#8ywnMU$dI`j_xbWWgYn^xMxg|NN zhd{l>SyCg!=bYcJNWPNLGO=qm=H$S2qn6x!DdEl(^`-zx?pZUA<4J2>QZlkcWeN36 z)JZMFoMeI4Xsu5~M2lZ$+?dk>BEFx)L`7=wWHYn-g!9Yl| z*Ex4d9VdN0c`F?`=iWKT*pNt;tAQLkKRnp=2Pr~D68`A-atJ1~4HMZLv5Bu1gw8p% z1UMoPYjPe7cRxDy=qRN&FYK11S_woXXiVChoovB4jy6T8mI4t)M3QjPdax%{WQA_E z`lE;ftHcU;<~&-}0`XqBv$Y!T)J`%nN3Ez{!HcL3xmrfzL&6rhO9yJ+bV+#lkjqpT!y)0X_v?)S|L&r)!4PD;i&9dSz;JClrS?nm4uc;6&Ezu%bIE|Wok_z zc@I8j$Asc67K``;CSzrMcC{`;hq`a4b2XPuq`0000000000000000000000000008L7Ka>TB UP%ois$p8QV07*qoM6N<$f|LE|K>z>% literal 0 HcmV?d00001 diff --git a/assets/images/settlement_month.png b/assets/images/settlement_month.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7e8ee0ca40525d5c9a85c74de11855aa2b89b1 GIT binary patch literal 10021 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 literal 0 HcmV?d00001 diff --git a/assets/images/settlement_today.png b/assets/images/settlement_today.png new file mode 100644 index 0000000000000000000000000000000000000000..27c489de0b6dd690ac2ddde2e03514b1eaccb249 GIT binary patch literal 9973 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 Z0Ww1PC13N!up2N>?kQ?0l*m7N@js)QM+^V} literal 0 HcmV?d00001 diff --git a/lib/controller/home/home_controller.dart b/lib/controller/home/home_controller.dart index 0f6da2f..8723c8e 100644 --- a/lib/controller/home/home_controller.dart +++ b/lib/controller/home/home_controller.dart @@ -1,3 +1,8 @@ +import 'dart:async'; + +import 'package:dating_touchme_app/generated/assets.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import '../../network/home_api.dart'; @@ -35,6 +40,143 @@ class HomeController extends GetxController { _homeApi = Get.find(); // 初始化时加载数据 loadInitialData(); + + // Timer.periodic(const Duration(seconds: 10), (t) { + // SmartDialog.show( + // alignment: Alignment.center, + // maskColor: Colors.black.withOpacity(0.5), + // onDismiss: () { + // + // }, + // builder: (context) { + // // return LiveRoomGuestListDialog( + // // initialTab: isMaleSeat ? 1 : 0, // 0: 女嘉宾, 1: 男嘉宾 + // // ); + // return ClipRRect( + // borderRadius: BorderRadius.all(Radius.circular(16.w)), + // child: Material( + // child: Stack( + // + // children: [ + // Container( + // width: 311.w, + // height: 210.w, + // color: Colors.white, + // padding: EdgeInsets.only( + // top: 53.w, + // left: 23.w, + // right: 23.w, + // bottom: 20.w + // ), + // child: Column( + // children: [ + // Text( + // "主持人邀请您视频连麦", + // style: TextStyle( + // fontSize: 21.w, + // color: const Color.fromRGBO(117, 98, 249, 1), + // fontWeight: FontWeight.w500 + // ), + // ), + // SizedBox(height: 15.w,), + // Text( + // "有相亲卡的用户免费", + // style: TextStyle( + // fontSize: 12.w, + // color: const Color.fromRGBO(87, 87, 87, 1), + // fontWeight: FontWeight.w500 + // ), + // ), + // SizedBox(height: 28.w,), + // Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // Container( + // width: 128.w, + // height: 40.w, + // decoration: BoxDecoration( + // borderRadius: BorderRadius.all(Radius.circular(12.w)), + // color: const Color.fromRGBO(237, 237, 237, 1) + // ), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Image.asset( + // Assets.imagesHangUpIcon, + // width: 26.w, + // height: 26.w, + // ), + // SizedBox(width: 5.w,), + // Text( + // "拒绝", + // style: TextStyle( + // fontSize: 15.w + // ), + // ) + // ], + // ), + // ), + // Container( + // width: 128.w, + // height: 40.w, + // decoration: BoxDecoration( + // borderRadius: BorderRadius.all(Radius.circular(12.w)), + // color: const Color.fromRGBO(117, 98, 249, 1) + // ), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Image.asset( + // Assets.imagesAnswerIcon, + // width: 18.w, + // height: 13.w, + // ), + // SizedBox(width: 5.w,), + // Text( + // "拒绝", + // style: TextStyle( + // fontSize: 15.w, + // color: Colors.white + // ), + // ) + // ], + // ), + // ), + // ], + // ) + // ], + // ), + // ), + // Positioned( + // top: 0, + // left: 0, + // child: Container( + // padding: EdgeInsets.symmetric(vertical: 5.w, horizontal: 15.w), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.only( + // topLeft: Radius.circular(16.w), + // bottomRight: Radius.circular(16.w), + // ), + // color: const Color.fromRGBO(117, 98, 249, 1) + // ), + // child: Text( + // "20玫瑰", + // style: TextStyle( + // fontSize: 14.w, + // color: Colors.white, + // fontWeight: FontWeight.w500 + // ), + // ), + // ), + // ) + // ], + // ), + // ), + // ); + // }, + // ); + // // 你的代码写这里 + // }); } /// 加载初始数据(同时加载两个标签页的数据) diff --git a/lib/generated/assets.dart b/lib/generated/assets.dart index 5fe7891..0ff30ee 100644 --- a/lib/generated/assets.dart +++ b/lib/generated/assets.dart @@ -71,6 +71,7 @@ class Assets { static const String imagesAd = 'assets/images/ad.png'; static const String imagesAdd = 'assets/images/add.png'; static const String imagesAliPay = 'assets/images/ali_pay.png'; + static const String imagesAnswerIcon = 'assets/images/answer_icon.png'; static const String imagesAppLogo = 'assets/images/app_logo.jpg'; static const String imagesArrow = 'assets/images/arrow.png'; static const String imagesArrowForwardRight = 'assets/images/arrow_forward_right.png'; @@ -96,6 +97,7 @@ class Assets { static const String imagesCheck = 'assets/images/check.png'; static const String imagesCloseArrow = 'assets/images/close_arrow.png'; static const String imagesCustomer = 'assets/images/customer.png'; + static const String imagesDailyTasks = 'assets/images/daily_tasks.png'; static const String imagesDiscoverNol = 'assets/images/discover_nol.png'; static const String imagesDiscoverPre = 'assets/images/discover_pre.png'; static const String imagesEdit = 'assets/images/edit.png'; @@ -113,6 +115,7 @@ class Assets { static const String imagesFilterIcon = 'assets/images/filter_icon.png'; static const String imagesFireIcon = 'assets/images/fire_icon.png'; static const String imagesFirstPay = 'assets/images/first_pay.png'; + static const String imagesGetOutIcon = 'assets/images/get_out_icon.png'; static const String imagesGift = 'assets/images/gift.png'; static const String imagesGift1 = 'assets/images/gift1.png'; static const String imagesGift2 = 'assets/images/gift2.png'; @@ -121,6 +124,7 @@ class Assets { static const String imagesGift5 = 'assets/images/gift5.png'; static const String imagesGiftIcon = 'assets/images/gift_icon.png'; static const String imagesGiftPic = 'assets/images/gift_pic.png'; + static const String imagesHangUpIcon = 'assets/images/hang_up_icon.png'; static const String imagesHelpBg = 'assets/images/help_bg.png'; static const String imagesHiIcon = 'assets/images/hi_icon.png'; static const String imagesHomeNol = 'assets/images/home_nol.png'; @@ -188,6 +192,8 @@ class Assets { static const String imagesSendVideoCall = 'assets/images/send_video_call.png'; static const String imagesSetting = 'assets/images/setting.png'; static const String imagesSettingIcon = 'assets/images/setting_icon.png'; + static const String imagesSettlementMonth = 'assets/images/settlement_month.png'; + static const String imagesSettlementToday = 'assets/images/settlement_today.png'; static const String imagesShop = 'assets/images/shop.png'; static const String imagesSplash = 'assets/images/splash.png'; static const String imagesSubscript = 'assets/images/subscript.png'; diff --git a/lib/pages/discover/settlement_page.dart b/lib/pages/discover/settlement_page.dart new file mode 100644 index 0000000..9e68b2b --- /dev/null +++ b/lib/pages/discover/settlement_page.dart @@ -0,0 +1,216 @@ +import 'package:dating_touchme_app/components/page_appbar.dart'; +import 'package:dating_touchme_app/generated/assets.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class SettlementPage extends StatefulWidget { + const SettlementPage({super.key}); + + @override + State createState() => _SettlementPageState(); +} + +class _SettlementPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: PageAppbar(title: "", backgroundColor: Colors.transparent, color: Colors.white,), + backgroundColor: const Color.fromRGBO(19, 16, 47, 1), + body: Container( + padding: EdgeInsets.only( + top: 100.w, + right: 25.w, + bottom: 25.w, + left: 25.w + ), + child: Column( + children: [ + Text( + "开心的橘子", + style: TextStyle( + fontSize: 14.w, + color: Colors.white + ), + ), + SizedBox(height: 62.w,), + Stack( + clipBehavior: Clip.none, + children: [ + Container( + width: 325.w, + height: 154.w, + padding: EdgeInsets.only( + top: 70.w, + right: 26.w, + bottom: 47.w, + left: 26.w, + ), + decoration: BoxDecoration( + border: Border.all(width: 1.w, color: const Color.fromRGBO(117, 98, 249, 1)), + color: const Color.fromRGBO(117, 98, 249, .2) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + RichText( + text: TextSpan( + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500 + ), + children: [ + TextSpan( + text: "0.35", + style: TextStyle( + fontSize: 23.w, + ) + ), + TextSpan( + text: "小时", + style: TextStyle( + fontSize: 12.w, + ) + ) + ] + ), + ), + Text( + "今日总开播", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(117, 98, 249, 1) + ), + ) + ], + ), + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + RichText( + text: TextSpan( + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500 + ), + children: [ + TextSpan( + text: "0.35", + style: TextStyle( + fontSize: 23.w, + ) + ), + TextSpan( + text: "小时", + style: TextStyle( + fontSize: 12.w, + ) + ) + ] + ), + ), + Text( + "今日总开播", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(117, 98, 249, 1) + ), + ) + ], + ), + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + RichText( + text: TextSpan( + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500 + ), + children: [ + TextSpan( + text: "0.35", + style: TextStyle( + fontSize: 23.w, + ) + ), + TextSpan( + text: "小时", + style: TextStyle( + fontSize: 12.w, + ) + ) + ] + ), + ), + Text( + "今日总开播", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(117, 98, 249, 1) + ), + ) + ], + ), + ], + ), + ), + Positioned( + left: 117.w, + top: -52.w, + child: Container( + width: 90.w, + height: 90.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(90.w)), + border: Border.all(width: 2.w, color: Colors.white) + ), + child: ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(86.w)), + child: Image.asset( + Assets.imagesUserAvatar, + width: 86.w, + height: 86.w, + ), + ), + ), + ) + ], + ), + SizedBox(height: 18.w,), + Image.asset( + Assets.imagesSettlementToday, + width: 325.w, + ), + SizedBox(height: 7.w,), + Image.asset( + Assets.imagesSettlementMonth, + width: 325.w, + ), + Spacer(), + Container( + width: 325.w, + height: 45.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(42.w)), + color: const Color.fromRGBO(117, 98, 249, 1) + ), + child: Center( + child: Text( + "返回首页", + style: TextStyle( + fontSize: 14.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/pages/discover/task_detail.dart b/lib/pages/discover/task_detail.dart new file mode 100644 index 0000000..e65d99a --- /dev/null +++ b/lib/pages/discover/task_detail.dart @@ -0,0 +1,160 @@ +import 'package:dating_touchme_app/components/page_appbar.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class TaskDetail extends StatefulWidget { + const TaskDetail({super.key}); + + @override + State createState() => _TaskDetailState(); +} + +class _TaskDetailState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: PageAppbar(title: "任务详情"), + body: SingleChildScrollView( + child: Container( + padding: EdgeInsets.symmetric( + vertical: 20.w, + horizontal: 15.w + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 228.w, + margin: EdgeInsets.only(bottom: 21.w), + decoration: BoxDecoration( + border: Border( + bottom: BorderSide(width: 1.w, color: const Color.fromRGBO(212, 212, 212, 1)) + ) + ), + child: Row( + children: [ + Container( + width: 229.w, + decoration: BoxDecoration( + border: Border( + right: BorderSide(width: 1.w, color: const Color.fromRGBO(212, 212, 212, 1)) + ) + ), + child: Column( + children: [ + Container( + height: 37.w, + color: const Color.fromRGBO(247, 247, 247, 1), + child: Center( + child: Text( + "任务详情", + style: TextStyle( + fontSize: 14.w + ), + ), + ), + ), + Container( + height: 50.w, + padding: EdgeInsets.only(left: 14.w, right: 18.w), + decoration: BoxDecoration( + border: Border( + bottom: BorderSide(width: 1.w, color: const Color.fromRGBO(212, 212, 212, 1)) + ) + ), + alignment: Alignment.centerLeft, + child: Text( + "1.有效开播时长≥4小时;", + style: TextStyle( + fontSize: 14.w + ), + ), + ), + Container( + height: 70.w, + padding: EdgeInsets.only(left: 14.w, right: 18.w), + decoration: BoxDecoration( + border: Border( + bottom: BorderSide(width: 1.w, color: const Color.fromRGBO(212, 212, 212, 1)) + ) + ), + alignment: Alignment.centerLeft, + child: Text( + "2.邀请1个女嘉宾上麦,每个女嘉宾≥3个男嘉宾打卡方可下麦;", + style: TextStyle( + fontSize: 14.w + ), + ), + ), + Container( + height: 70.w, + padding: EdgeInsets.only(left: 14.w, right: 18.w), + alignment: Alignment.centerLeft, + child: Text( + "3.直播间打卡人数≥5人,每个男嘉宾上麦时间≥3分钟算一次打卡", + style: TextStyle( + fontSize: 14.w + ), + ), + ) + ], + ), + ), + Expanded( + child: Column( + children: [ + Container( + height: 37.w, + color: const Color.fromRGBO(247, 247, 247, 1), + child: Center( + child: Text( + "任务奖励", + style: TextStyle( + fontSize: 14.w + ), + ), + ), + ), + Expanded( + child: Container( + padding: EdgeInsets.only(left: 14.w, right: 18.w), + alignment: Alignment.center, + child: Text( + "10元", + style: TextStyle( + fontSize: 18.w, + color: const Color.fromRGBO(239, 19, 46, 1) + ), + ), + ), + ) + ], + ), + ) + ], + ), + ), + Text( + "任务说明", + style: TextStyle( + fontSize: 14.w + ), + ), + SizedBox(height: 6.w,), + Text( + "1.奖励场景:三人相亲直播间\n" + "2.结算时间:次日9:00\n" + "3.付费上麦男嘉宾次数:20玫瑰+体验卡\n" + "4.奖励可叠加", + style: TextStyle( + fontSize: 14.w, + color: const Color.fromRGBO(144, 144, 144, 1) + ), + ) + ], + ), + ), + ), + ); + } +} diff --git a/lib/widget/live/live_room_invitation_list.dart b/lib/widget/live/live_room_invitation_list.dart index 1d95a09..e807b00 100644 --- a/lib/widget/live/live_room_invitation_list.dart +++ b/lib/widget/live/live_room_invitation_list.dart @@ -214,11 +214,125 @@ class _LiveRoomInvitationListState extends State with Ti // return LiveRoomGuestListDialog( // initialTab: isMaleSeat ? 1 : 0, // 0: 女嘉宾, 1: 男嘉宾 // ); - return Material( - child: Container( - width: 200.w, - height: 200.w, - color: Colors.white, + return ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(16.w)), + child: Material( + child: Stack( + + children: [ + Container( + width: 311.w, + height: 210.w, + color: Colors.white, + padding: EdgeInsets.only( + top: 53.w, + left: 23.w, + right: 23.w, + bottom: 20.w + ), + child: Column( + children: [ + Text( + "主持人邀请您视频连麦", + style: TextStyle( + fontSize: 21.w, + color: const Color.fromRGBO(117, 98, 249, 1), + fontWeight: FontWeight.w500 + ), + ), + SizedBox(height: 15.w,), + Text( + "有相亲卡的用户免费", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(87, 87, 87, 1), + fontWeight: FontWeight.w500 + ), + ), + SizedBox(height: 28.w,), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 128.w, + height: 40.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(12.w)), + color: const Color.fromRGBO(237, 237, 237, 1) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + Assets.imagesHangUpIcon, + width: 26.w, + height: 26.w, + ), + SizedBox(width: 5.w,), + Text( + "拒绝", + style: TextStyle( + fontSize: 15.w + ), + ) + ], + ), + ), + Container( + width: 128.w, + height: 40.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(12.w)), + color: const Color.fromRGBO(117, 98, 249, 1) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + Assets.imagesAnswerIcon, + width: 18.w, + height: 13.w, + ), + SizedBox(width: 5.w,), + Text( + "拒绝", + style: TextStyle( + fontSize: 15.w, + color: Colors.white + ), + ) + ], + ), + ), + ], + ) + ], + ), + ), + Positioned( + top: 0, + left: 0, + child: Container( + padding: EdgeInsets.symmetric(vertical: 5.w, horizontal: 15.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(16.w), + bottomRight: Radius.circular(16.w), + ), + color: const Color.fromRGBO(117, 98, 249, 1) + ), + child: Text( + "20玫瑰", + style: TextStyle( + fontSize: 14.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + ), + ) + ], + ), ), ); }, diff --git a/lib/widget/live/live_room_notice_chat_panel.dart b/lib/widget/live/live_room_notice_chat_panel.dart index f5d7584..5bf1743 100644 --- a/lib/widget/live/live_room_notice_chat_panel.dart +++ b/lib/widget/live/live_room_notice_chat_panel.dart @@ -1,13 +1,16 @@ import 'package:dating_touchme_app/controller/discover/room_controller.dart'; import 'package:dating_touchme_app/controller/global.dart'; +import 'package:dating_touchme_app/controller/overlay_controller.dart'; import 'package:dating_touchme_app/extension/ex_widget.dart'; import 'package:dating_touchme_app/generated/assets.dart'; +import 'package:dating_touchme_app/pages/discover/task_detail.dart'; import 'package:dating_touchme_app/widget/live/live_room_chat_item.dart'; import 'package:dating_touchme_app/widget/live/live_recharge_popup.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; +import 'package:tdesign_flutter/tdesign_flutter.dart'; class LiveRoomNoticeChatPanel extends StatefulWidget { const LiveRoomNoticeChatPanel({super.key}); @@ -77,6 +80,10 @@ class _LiveRoomNoticeChatPanelState extends State { @override Widget build(BuildContext context) { + + final roomController = Get.find(); + final overlayController = Get.find(); + final isHost = roomController.currentRole == CurrentRole.broadcaster; return Container( padding: EdgeInsets.only(left: 13.w, right: 9.w), child: Row( @@ -126,83 +133,311 @@ class _LiveRoomNoticeChatPanelState extends State { }), ), SizedBox(width: 18.w), - Obx((){ - if(controller.rtcChannelDetail.value?.maleInfo == null && GlobalData().userData?.genderCode == 0 && controller.currentRole != CurrentRole.broadcaster || - controller.rtcChannelDetail.value?.femaleInfo == null && GlobalData().userData?.genderCode == 1 && controller.currentRole != CurrentRole.broadcaster || - controller.isLive.value && controller.currentRole != CurrentRole.broadcaster){ - return Container( - width: 120.w, - height: 55.w, - padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10.w), - gradient: LinearGradient( - colors: controller.isLive.value ? [Colors.grey, Colors.grey] : [Color(0xFF7C63FF), Color(0xFF987CFF)], - begin: Alignment.topLeft, - end: Alignment.bottomRight, - ), - ), - child: Row( - children: [ - Image.asset( - Assets.imagesRoomVideo, - width: 26.w, + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Obx((){ + if(controller.rtcChannelDetail.value?.maleInfo == null && GlobalData().userData?.genderCode == 0 && controller.currentRole != CurrentRole.broadcaster || + controller.rtcChannelDetail.value?.femaleInfo == null && GlobalData().userData?.genderCode == 1 && controller.currentRole != CurrentRole.broadcaster || + controller.isLive.value && controller.currentRole != CurrentRole.broadcaster){ + return Container( + width: 120.w, + height: 55.w, + padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.w), + gradient: LinearGradient( + colors: controller.isLive.value ? [Colors.grey, Colors.grey] : [Color(0xFF7C63FF), Color(0xFF987CFF)], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), ), - SizedBox(width: 8.w), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, + child: Row( children: [ - Text( - controller.isLive.value - ? '下麦结束' - : (GlobalData().userData?.genderCode == 0 ? '视频相亲' : '免费相亲'), - style: TextStyle( - fontSize: 13.w, - color: Colors.white, - fontWeight: FontWeight.w600, - ), + Image.asset( + Assets.imagesRoomVideo, + width: 26.w, + ), + SizedBox(width: 8.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + controller.isLive.value + ? '下麦结束' + : (GlobalData().userData?.genderCode == 0 ? '视频相亲' : '免费相亲'), + style: TextStyle( + fontSize: 13.w, + color: Colors.white, + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 2.w), + // 只有男性用户且在非直播状态下才显示剩余相亲卡 + _buildLinkMicCardText(), + ], ), - SizedBox(height: 2.w), - // 只有男性用户且在非直播状态下才显示剩余相亲卡 - _buildLinkMicCardText(), ], ), - ], - ), - ).onTap(() async{ - // 检查是否需要弹出充值弹框 - if (!controller.isLive.value) { - final userData = GlobalData().userData; - final isMale = userData?.genderCode == 0; - if (isMale) { - final linkMicCard = controller.linkMicCard.value; - final cardNum = linkMicCard?.num ?? 0; - // 如果显示"上麦20玫瑰"且玫瑰数量小于20,弹出充值弹框 - if (cardNum == 0 && controller.roseCount.value < 20) { - controller.setDialogDismiss(true); - SmartDialog.show( - alignment: Alignment.bottomCenter, - maskColor: Colors.black.withOpacity(0.5), - onDismiss: (){ - controller.setDialogDismiss(false); - }, - builder: (_) => const LiveRechargePopup(), - ); - return; + ).onTap(() async{ + // 检查是否需要弹出充值弹框 + if (!controller.isLive.value) { + final userData = GlobalData().userData; + final isMale = userData?.genderCode == 0; + if (isMale) { + final linkMicCard = controller.linkMicCard.value; + final cardNum = linkMicCard?.num ?? 0; + // 如果显示"上麦20玫瑰"且玫瑰数量小于20,弹出充值弹框 + if (cardNum == 0 && controller.roseCount.value < 20) { + controller.setDialogDismiss(true); + SmartDialog.show( + alignment: Alignment.bottomCenter, + maskColor: Colors.black.withOpacity(0.5), + onDismiss: (){ + controller.setDialogDismiss(false); + }, + builder: (_) => const LiveRechargePopup(), + ); + return; + } + } } - } - } - - if(controller.isLive.value){ - await controller.leaveChat(); - }else{ - await controller.joinChat(GlobalData().userData?.genderCode == 0 ? CurrentRole.maleAudience : CurrentRole.femaleAudience); + + if(controller.isLive.value){ + await controller.leaveChat(); + }else{ + await controller.joinChat(GlobalData().userData?.genderCode == 0 ? CurrentRole.maleAudience : CurrentRole.femaleAudience); + } + }); } - }); - } - return const SizedBox(); - }), + return const SizedBox(); + }), + if(isHost) Image.asset( + Assets.imagesDailyTasks, + width: 70.w, + ).onTap((){ + // 隐藏键盘 + FocusScope.of(context).unfocus(); + // 隐藏 overlay + SmartDialog.dismiss(); + roomController.setDialogDismiss(true); + + + SmartDialog.show( + alignment: Alignment.bottomCenter, + maskColor: TDTheme.of(context).fontGyColor2, + onDismiss: (){ + roomController.setDialogDismiss(false); + }, + + builder: (_) { + return ClipRRect( + borderRadius: BorderRadius.vertical(top: Radius.circular(9.w)), + child: Material( + color: Colors.white, + child: Container( + width: 375.w, + height: 336.w, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Color.fromRGBO(236, 224, 255, 1), // 0% + Color.fromRGBO(247, 247, 247, 1), // 100% + ], + ), + ), + child: Column( + children: [ + SizedBox( + height: 77.w, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 68.w, + padding: EdgeInsets.only(left: 15.w), + alignment: Alignment.centerLeft, + child: Icon( + Icons.keyboard_arrow_left, + size: 26.w, + color: const Color.fromRGBO(144, 144, 144, 1), + ), + ), + Text( + "今日任务", + style: TextStyle( + fontSize: 21.w, + fontWeight: FontWeight.w700 + ), + ), + Container( + width: 68.w, + height: 22.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.horizontal(left: Radius.circular(22.w)), + color: Colors.white + ), + child: Center( + child: Text( + "任务详情", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(144, 144, 144, 1) + ), + ), + ), + ).onTap(() async { + // 隐藏键盘 + FocusScope.of(context).unfocus(); + // 隐藏 overlay + await SmartDialog.dismiss(); + Get.to(() => TaskDetail()); + }) + ], + ), + ), + SingleChildScrollView( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 12.w), + child: Column( + children: [ + Container( + width: 350.w, + margin: EdgeInsets.only(bottom: 10.w), + padding: EdgeInsets.only( + top: 15.w, + right: 10.w, + bottom: 21.w, + left: 12.w + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "开播4小时", + style: TextStyle( + fontSize: 14.w + ), + ), + Text( + "50/240分钟", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(144, 144, 144, 1) + ), + ) + ], + ), + SizedBox(height: 10.w,), + TDProgress( + type: TDProgressType.linear, + value: 0.5, + strokeWidth: 6, + progressLabelPosition: TDProgressLabelPosition.inside, + showLabel: false, + ) + ], + ), + ), + Container( + width: 350.w, + margin: EdgeInsets.only(bottom: 10.w), + padding: EdgeInsets.only( + top: 15.w, + right: 10.w, + bottom: 21.w, + left: 12.w + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "开播4小时", + style: TextStyle( + fontSize: 14.w + ), + ), + Text( + "50/240分钟", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(144, 144, 144, 1) + ), + ) + ], + ), + SizedBox(height: 10.w,), + TDProgress( + type: TDProgressType.linear, + value: 0.5, + strokeWidth: 6, + progressLabelPosition: TDProgressLabelPosition.inside, + showLabel: false, + ) + ], + ), + ), + Container( + width: 350.w, + margin: EdgeInsets.only(bottom: 10.w), + padding: EdgeInsets.only( + top: 15.w, + right: 10.w, + bottom: 21.w, + left: 12.w + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "开播4小时", + style: TextStyle( + fontSize: 14.w + ), + ), + Text( + "50/240分钟", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(144, 144, 144, 1) + ), + ) + ], + ), + SizedBox(height: 10.w,), + TDProgress( + type: TDProgressType.linear, + value: 0.5, + strokeWidth: 6, + progressLabelPosition: TDProgressLabelPosition.inside, + showLabel: false, + ) + ], + ), + ), + ], + ), + ), + ) + ], + ), + ), + ), + ); + }, + ); + }) + ], + ), ], ), ); diff --git a/lib/widget/live/live_room_user_header.dart b/lib/widget/live/live_room_user_header.dart index 915d8e1..045efaf 100644 --- a/lib/widget/live/live_room_user_header.dart +++ b/lib/widget/live/live_room_user_header.dart @@ -296,7 +296,7 @@ class LiveRoomUserHeader extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Image.asset( - Assets.imagesMicOff, + Assets.imagesGetOutIcon, width: 15.w, ), SizedBox(width: 5.w),