// Dart imports: import 'dart:ui'; // Flutter imports: import 'package:flutter/material.dart'; // Package imports: import 'package:aku_ui/aku_ui.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; // Project imports: import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/mock_models/anouncement/anouncement_model.dart'; import 'package:aku_community_manager/provider/anouncement_provider.dart'; import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/ui/home/announcement/anouncement_details.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; class AllAnouncement extends StatefulWidget { AllAnouncement({Key key}) : super(key: key); @override AllAnouncementState createState() => AllAnouncementState(); } class AllAnouncementState extends State { static Widget anounceCard(AnouncementCardModel model) { return Column( children: [ AkuButton( onPressed: () { Get.to(AnouncementDetails( title: model.title, date: model.date, body: model.body == null ? '' : model.body, )); }, child: Container( color: Color(0xFFFFFFFF), width: double.infinity, height: 152.w, padding: EdgeInsets.only(top: 24.w, left: 24.w, bottom: 24.w), child: Row( children: [ Container( alignment: Alignment.center, width: 104.w, height: 104.w, decoration: BoxDecoration( borderRadius: BorderRadius.circular(52.w), gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFF7EB4FF), Color(0xFF3F8FFE), ])), child: Image.asset( R.ASSETS_MANAGE_IC_ANNOUNCE_PNG, width: 74.w, height: 60.w, ), ), SizedBox( width: 24.w, ), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( model.title, style: AppStyle().primaryStyle, ), SizedBox(height: 12.w), Row( children: [ Text('智慧管家', style: AppStyle().minorStyle), SizedBox( width: 24.w, ), Text( model.date, style: AppStyle().minorStyle, ), Spacer(), ], ), ], ), ), ], ), ), ), SizedBox( height: 16.w, ), ], ); } Widget _anouncementList( String date, List cards, ) { return Column( children: [ Container( alignment: Alignment.center, width: double.infinity, height: 48.w + 33.w, child: Text( date, style: AppStyle().minorStyle, )), ...(cards .map( (e) => anounceCard(e), ) .toList()), ], ); } @override Widget build(BuildContext context) { final AnouncementProvider _anouncementProvider = Provider.of(context); return AkuScaffold( title: '全部公告', body: ListView( padding: EdgeInsets.only(left: 32.w, right: 32.w), children: [ _anouncementList('2020-10-22', _anouncementProvider.anouncementCardModels.sublist(0, 2)), _anouncementList('2020-10-20', _anouncementProvider.anouncementCardModels.sublist(2, 2)), ], ), ); } }