parent
ba26cd0a12
commit
c15796292e
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1 @@
|
|||||||
|
cwebp -q 60 -resize 1000 0 $1 -o ./assets/static_temp/$2
|
@ -0,0 +1,107 @@
|
|||||||
|
import 'package:aku_community_manager/style/app_style.dart';
|
||||||
|
import 'package:aku_community_manager/tools/widget_tool.dart';
|
||||||
|
import 'package:aku_community_manager/ui/sub_pages/activity_manager/fake_activity_model.dart';
|
||||||
|
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart';
|
||||||
|
import 'package:common_utils/common_utils.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:aku_community_manager/tools/screen_tool.dart';
|
||||||
|
|
||||||
|
class ActivityDetailPage extends StatefulWidget {
|
||||||
|
final FakeActivityManagerModel model;
|
||||||
|
ActivityDetailPage({Key key, @required this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_ActivityDetailPageState createState() => _ActivityDetailPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ActivityDetailPageState extends State<ActivityDetailPage> {
|
||||||
|
static const String format = 'yyyy年MM月dd日HH:mm';
|
||||||
|
String get startDate =>
|
||||||
|
DateUtil.formatDate(widget.model.dateStart, format: format);
|
||||||
|
String get endDate =>
|
||||||
|
DateUtil.formatDate(widget.model.dateEnd, format: format);
|
||||||
|
String get checkInDate =>
|
||||||
|
DateUtil.formatDate(widget.model.checkInDate, format: format);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AkuScaffold(
|
||||||
|
title: '活动详情',
|
||||||
|
body: ListView(
|
||||||
|
children: [
|
||||||
|
Hero(
|
||||||
|
tag: widget.model.title,
|
||||||
|
child: Image.asset(
|
||||||
|
widget.model.imgPath,
|
||||||
|
height: 228.w,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(
|
||||||
|
vertical: 24.w,
|
||||||
|
horizontal: 32.w,
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
widget.model.title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 36.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(16),
|
||||||
|
Text(
|
||||||
|
widget.model.article,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(40),
|
||||||
|
_buildTile('开始时间', startDate),
|
||||||
|
_buildTile('结束时间', endDate),
|
||||||
|
_buildTile('地点', widget.model.location),
|
||||||
|
_buildTile('参与人数', widget.model.people),
|
||||||
|
_buildTile('报名截止', checkInDate),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildTile(String title, String subTitle) {
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 6.w),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 164.w,
|
||||||
|
child: Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
subTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
import 'package:aku_community_manager/style/app_style.dart';
|
||||||
|
import 'package:aku_community_manager/tools/widget_tool.dart';
|
||||||
|
import 'package:aku_community_manager/ui/sub_pages/activity_manager/activity_detail_page.dart';
|
||||||
|
import 'package:aku_community_manager/ui/sub_pages/activity_manager/fake_activity_model.dart';
|
||||||
|
import 'package:common_utils/common_utils.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:aku_community_manager/tools/screen_tool.dart';
|
||||||
|
import 'package:get/route_manager.dart';
|
||||||
|
|
||||||
|
class ActivityManagerCard extends StatelessWidget {
|
||||||
|
String get startDate =>
|
||||||
|
DateUtil.formatDate(model.dateStart, format: 'yyyy-MM-dd');
|
||||||
|
|
||||||
|
String get endDate =>
|
||||||
|
DateUtil.formatDate(model.dateEnd, format: 'yyyy-MM-dd');
|
||||||
|
|
||||||
|
final FakeActivityManagerModel model;
|
||||||
|
const ActivityManagerCard({Key key, @required this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
margin: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
|
||||||
|
child: GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
Get.to(ActivityDetailPage(model: model));
|
||||||
|
},
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
ClipRRect(
|
||||||
|
borderRadius: BorderRadius.vertical(top: Radius.circular(8.w)),
|
||||||
|
child: Container(
|
||||||
|
height: 228.w,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Hero(
|
||||||
|
tag: model.title,
|
||||||
|
child: Image.asset(
|
||||||
|
model.imgPath,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.all(24.w),
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
model.title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(12),
|
||||||
|
_buildTile('主办方:', model.hostName),
|
||||||
|
_buildTile('地点:', model.location),
|
||||||
|
_buildTile('报名时间:', '$startDate\至$endDate'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8.w),
|
||||||
|
border: Border.all(
|
||||||
|
color: Color(0xFFE8E8E8),
|
||||||
|
width: 2.w,
|
||||||
|
),
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
offset: Offset(0, 2.w),
|
||||||
|
blurRadius: 20.w,
|
||||||
|
color: Color(0xFFEFEFEF),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildTile(String title, String subTitle) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 120.w,
|
||||||
|
child: Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
subTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue