You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aku_new_community/lib/ui/community/activity/activity_detail_page.dart

262 lines
9.0 KiB

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_new_community/gen/assets.gen.dart';
import 'package:aku_new_community/utils/headers.dart';
import 'package:aku_new_community/widget/bee_divider.dart';
import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:aku_new_community/widget/buttons/bottom_button.dart';
import 'package:aku_new_community/widget/others/stack_avatar.dart';
class ActivityDetailPage extends StatefulWidget {
const ActivityDetailPage({Key? key}) : super(key: key);
@override
_ActivityDetailPageState createState() => _ActivityDetailPageState();
}
class _ActivityDetailPageState extends State<ActivityDetailPage> {
@override
Widget build(BuildContext context) {
var content = Container(
width: double.infinity,
padding: EdgeInsets.all(32.w),
child: Column(
children: [
'活动详情'.text.size(32.sp).color(Colors.black).bold.make(),
32.w.heightBox,
''.text.size(28.sp).color(Colors.black.withOpacity(0.45)).make(),
32.w.heightBox,
...List.generate(
0,
(index) => Container(
width: 686.w,
height: 432.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.w),
),
child: Image.network(
'',
fit: BoxFit.fill,
),
)),
],
),
);
return BeeScaffold(
title: '活动详情',
body: ListView(
children: [
_headWidget(),
24.w.heightBox,
content,
24.w.heightBox,
Container(
width: double.infinity,
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 16.w),
height: 132.w,
child: Row(
children: [
CircleAvatar(
child: FadeInImage.assetNetwork(
placeholder: Assets.images.placeholder.path,
image: '',
),
),
20.w.widthBox,
Column(
children: [
'印象物业'.text.size(28.sp).color(Colors.black).make(),
8.w.heightBox,
'${S.of(context)!.tempPlotName}'
.text
.size(24.sp)
.color(Colors.black.withOpacity(0.25))
.make()
],
),
Spacer(),
MaterialButton(
minWidth: 120.w,
height: 60.w,
onPressed: () {},
shape: RoundedRectangleBorder(
side: BorderSide(
color: Colors.blueAccent,
),
borderRadius: BorderRadius.circular(30.w)),
child:
'联系物业'.text.size(24.sp).color(Colors.blueAccent).make(),
),
],
),
),
],
),
bottomNavi: BottomButton(
child: '立即报名'.text.size(32.sp).color(Colors.black).bold.make(),
onPressed: () {},
),
);
}
Container _headWidget() {
return Container(
color: Colors.white,
child: Column(
children: [
Image.asset(
Assets.images.logo.path,
width: double.infinity,
height: 280.w,
),
Padding(
padding: EdgeInsets.all(32.w),
child: Column(
children: [
'人才公寓党政建设讲座系列活动——庆祝中国共产党建党71周年活动'
.text
.size(32.sp)
.color(Colors.black.withOpacity(0.85))
.maxLines(3)
.bold
.make(),
32.w.heightBox,
Container(
width: 104.w,
height: 42.w,
decoration: BoxDecoration(
color: Color(0xFFFEC076).withOpacity(0.5),
borderRadius: BorderRadius.circular(10.w)),
alignment: Alignment.center,
child:
'报名中'.text.size(24.sp).color(Color(0xFFF481170)).make(),
),
32.w.heightBox,
_buildTile(
'报名时间',
'${DateUtil.formatDate(
DateTime.now(),
format: 'yyyy.MM.dd HH:mm',
)}-${DateUtil.formatDate(
DateTime.now(),
format: 'yyyy.MM.dd HH:mm',
)}',
),
_buildTile(
'活动时间',
'${DateUtil.formatDate(
DateTime.now(),
format: 'yyyy.MM.dd HH:mm',
)}-${DateUtil.formatDate(
DateTime.now(),
format: 'yyyy.MM.dd HH:mm',
)}',
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w),
child: Row(
children: [
'活动方式'.text.size(28.sp).make().box.width(136.w).make(),
'本次活动介绍'
.richText
.tap(() {
var bottomSheet = Container(
width: double.infinity,
padding: EdgeInsets.all(32.w),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16.w)),
child: Column(
children: [
'活动介绍'.text.size(32.sp).black.bold.make(),
32.w.heightBox,
],
),
);
Get.bottomSheet(
bottomSheet,
);
})
.size(28.sp)
.make(),
Spacer(),
],
),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w),
child: Row(
children: [
'活动费用'.text.size(28.sp).make().box.width(136.w).make(),
'免费'.richText.size(28.sp).make(),
Spacer(),
],
),
),
32.w.heightBox,
Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w),
child: Row(
children: [
'活动地点'.text.size(28.sp).make().box.width(136.w).make(),
'永恒智慧大厦'.richText.tap(() {}).size(28.sp).make(),
Spacer(),
],
),
),
32.w.heightBox,
BeeDivider.horizontal(
indent: 32.w,
endIndent: 32.w,
),
InkWell(
onTap: () {},
child: Container(
padding: EdgeInsets.only(
left: 32.w, right: 32.w, top: 16.w, bottom: 24.w),
child: Row(
children: [
StackAvatar(
avatars: [],
),
16.w.heightBox,
'200'
.richText
.withTextSpanChildren(
['/1000人参与'.textSpan.size(24.sp).black.make()])
.color(Colors.blueAccent)
.size(24.sp)
.make(),
Spacer(),
Icon(
CupertinoIcons.chevron_right,
size: 40.w,
),
],
),
),
),
],
),
),
],
),
);
}
_buildTile(String title, String subTitle) {
return Row(
children: [
title.text.size(28.sp).make().box.width(136.w).make(),
subTitle.text.size(28.sp).make().expand(),
],
).pSymmetric(h: 32.w);
}
}