From ab44aa38c82a7a1be2742a4d9c7669fa9b8bb2e8 Mon Sep 17 00:00:00 2001 From: zhangmeng <494089941@qq.com> Date: Thu, 10 Jun 2021 14:47:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=B6=88=E6=81=AF=20?= =?UTF-8?q?=E6=8C=89=E6=97=A5=E6=9C=9F=E5=88=86=E7=BB=84=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ui/home/messages/system_message.dart | 20 ++++++++-- lib/ui/home/messages/systen_message_card.dart | 39 ++++++++++--------- 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/lib/ui/home/messages/system_message.dart b/lib/ui/home/messages/system_message.dart index 77134db..df730cf 100644 --- a/lib/ui/home/messages/system_message.dart +++ b/lib/ui/home/messages/system_message.dart @@ -1,4 +1,5 @@ // Flutter imports: +import 'package:common_utils/common_utils.dart'; import 'package:flutter/material.dart'; // Package imports: @@ -24,6 +25,7 @@ class SystemMessage extends StatefulWidget { class _SystemMessageState extends State { EasyRefreshController _refreshController = EasyRefreshController(); + String? _sendDate; @override Widget build(BuildContext context) { return AkuScaffold( @@ -34,9 +36,7 @@ class _SystemMessageState extends State { return ListView.separated( padding: EdgeInsets.symmetric(horizontal: 32.w), itemBuilder: (context, index) { - return SystemMessageCard( - model: items[index], - ); + return _buildCard(items[index]); }, separatorBuilder: (context, index) { return 10.w.heightBox; @@ -50,4 +50,18 @@ class _SystemMessageState extends State { ), ); } + + Widget _buildCard(SystemMessageItemModel model) { + String _date = + DateUtil.formatDateStr(model.sendDate!, format: 'yyyy-MM-dd'); + if (_sendDate == null || _sendDate != _date) { + _sendDate = _date; + return SystemMessageCard( + relationId: model.relationId!, + date: _date, + ); + } else { + return SystemMessageCard(relationId: model.relationId!, date: null); + } + } } diff --git a/lib/ui/home/messages/systen_message_card.dart b/lib/ui/home/messages/systen_message_card.dart index 7596860..405c64a 100644 --- a/lib/ui/home/messages/systen_message_card.dart +++ b/lib/ui/home/messages/systen_message_card.dart @@ -13,17 +13,18 @@ import 'package:velocity_x/velocity_x.dart'; // Project imports: import 'package:aku_community_manager/const/api.dart'; import 'package:aku_community_manager/models/message/system_message_detail_model.dart'; -import 'package:aku_community_manager/models/message/system_message_item_model.dart'; import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/ui/sub_pages/business_and_fix/business_and_fix_page.dart'; import 'package:aku_community_manager/utils/network/base_model.dart'; import 'package:aku_community_manager/utils/network/net_util.dart'; class SystemMessageCard extends StatefulWidget { - final SystemMessageItemModel model; + final int relationId; + final String? date; SystemMessageCard({ Key? key, - required this.model, + required this.relationId, + required this.date, }) : super(key: key); @override @@ -31,13 +32,13 @@ class SystemMessageCard extends StatefulWidget { } class _SystemMessageCardState extends State { - late SystemMessageDetailModel _systemModel; + SystemMessageDetailModel? _systemModel; bool _onLoad = true; @override void initState() { super.initState(); Future.delayed(Duration(milliseconds: 300), () async { - _systemModel = await getSystemMessage(widget.model.relationId!); + _systemModel = await getSystemMessage(widget.relationId); _onLoad = false; setState(() {}); }); @@ -182,21 +183,23 @@ class _SystemMessageCardState extends State { ); } - Widget _messageList(SystemMessageDetailModel model) { - return _onLoad + Widget _messageList(SystemMessageDetailModel? model) { + return (_systemModel == null || _onLoad) ? _loadingWidget() : Column( children: [ - Container( - margin: EdgeInsets.only(top: 24.w, bottom: 24.w), - alignment: Alignment.center, - width: double.infinity, - child: Text( - widget.model.sendDate!, - style: TextStyle( - color: AppStyle.minorTextColor, fontSize: 24.sp), - ), - ), + widget.date == null + ? SizedBox() + : Container( + margin: EdgeInsets.only(top: 24.w, bottom: 24.w), + alignment: Alignment.center, + width: double.infinity, + child: Text( + widget.date!, + style: TextStyle( + color: AppStyle.minorTextColor, fontSize: 24.sp), + ), + ), Container( padding: EdgeInsets.only(top: 24.w, left: 24.w, right: 24.w), color: Color(0xFFFFFFFF), @@ -224,7 +227,7 @@ class _SystemMessageCardState extends State { SizedBox(height: 8.w), ]), Text( - '你有一条新的${model.sysMesTypeString},请立即处理', + '你有一条新的${model!.sysMesTypeString},请立即处理', style: TextStyle( color: AppStyle.primaryTextColor, fontSize: 28.sp,