13 changed files with 949 additions and 76 deletions
Split 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