13 changed files with 949 additions and 76 deletions
Unified View
Diff Options
-
BINassets/images/answer_icon.png
-
BINassets/images/daily_tasks.png
-
BINassets/images/get_out_icon.png
-
BINassets/images/hang_up_icon.png
-
BINassets/images/settlement_month.png
-
BINassets/images/settlement_today.png
-
142lib/controller/home/home_controller.dart
-
6lib/generated/assets.dart
-
216lib/pages/discover/settlement_page.dart
-
160lib/pages/discover/task_detail.dart
-
124lib/widget/live/live_room_invitation_list.dart
-
375lib/widget/live/live_room_notice_chat_panel.dart
-
2lib/widget/live/live_room_user_header.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<SettlementPage> createState() => _SettlementPageState(); |
||||
|
} |
||||
|
|
||||
|
class _SettlementPageState extends State<SettlementPage> { |
||||
|
@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 |
||||
|
), |
||||
|
), |
||||
|
), |
||||
|
) |
||||
|
], |
||||
|
), |
||||
|
), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
@ -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<TaskDetail> createState() => _TaskDetailState(); |
||||
|
} |
||||
|
|
||||
|
class _TaskDetailState extends State<TaskDetail> { |
||||
|
@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) |
||||
|
), |
||||
|
) |
||||
|
], |
||||
|
), |
||||
|
), |
||||
|
), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save