From e3b97098cb881d357e6ee16cd78d7953a284028f Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Sat, 20 Feb 2021 18:03:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E9=A1=B5=20=E5=AF=B9=E6=8E=A5=EF=BC=9A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E7=9A=84=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/constants/api.dart | 7 + lib/model/message/comment_message_model.dart | 87 ++++++++ .../comment_message/comment_message_page.dart | 46 +++++ .../comment_message_page.dart | 193 ------------------ .../message_center_page.dart | 5 + 5 files changed, 145 insertions(+), 193 deletions(-) create mode 100644 lib/model/message/comment_message_model.dart create mode 100644 lib/pages/message_center_page/comment_message/comment_message_page.dart delete mode 100644 lib/pages/message_center_page/comment_message_page/comment_message_page.dart diff --git a/lib/constants/api.dart b/lib/constants/api.dart index 73b74515..89880874 100644 --- a/lib/constants/api.dart +++ b/lib/constants/api.dart @@ -242,4 +242,11 @@ class _Message { ///消息中心:根据消息列表主键id和用户主键id查询系统通知消息详情 String get getSystemMessageDetial => '/user/message/sysMessageDetail'; + + ///消息中心:查询所有的评论通知 + String get commentMessageList => '/user/message/sysCommentMessageList'; + + ///消息中心:评论通知全部已读(进入评论通知列表后调用) + String get allReadComment => '/user/message/allReadComment'; + } diff --git a/lib/model/message/comment_message_model.dart b/lib/model/message/comment_message_model.dart new file mode 100644 index 00000000..e9e7cbde --- /dev/null +++ b/lib/model/message/comment_message_model.dart @@ -0,0 +1,87 @@ +class CommentMessageModel { + int id; + int gambitThemeId; + String respondentName; + int type; + String content; + int receiverAccount; + int sendStatus; + String createName; + String createDate; + List imgUrls; + + CommentMessageModel( + {this.id, + this.gambitThemeId, + this.respondentName, + this.type, + this.content, + this.receiverAccount, + this.sendStatus, + this.createName, + this.createDate, + this.imgUrls}); + + CommentMessageModel.fromJson(Map json) { + id = json['id']; + gambitThemeId = json['gambitThemeId']; + respondentName = json['respondentName']; + type = json['type']; + content = json['content']; + receiverAccount = json['receiverAccount']; + sendStatus = json['sendStatus']; + createName = json['createName']; + createDate = json['createDate']; + if (json['imgUrls'] != null) { + imgUrls = new List(); + json['imgUrls'].forEach((v) { + imgUrls.add(new ImgUrls.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['gambitThemeId'] = this.gambitThemeId; + data['respondentName'] = this.respondentName; + data['type'] = this.type; + data['content'] = this.content; + data['receiverAccount'] = this.receiverAccount; + data['sendStatus'] = this.sendStatus; + data['createName'] = this.createName; + data['createDate'] = this.createDate; + if (this.imgUrls != null) { + data['imgUrls'] = this.imgUrls.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class ImgUrls { + String url; + String size; + int longs; + int paragraph; + int sort; + + ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort}); + + ImgUrls.fromJson(Map json) { + url = json['url']; + size = json['size']; + longs = json['longs']; + paragraph = json['paragraph']; + sort = json['sort']; + } + + Map toJson() { + final Map data = new Map(); + data['url'] = this.url; + data['size'] = this.size; + data['longs'] = this.longs; + data['paragraph'] = this.paragraph; + data['sort'] = this.sort; + return data; + } +} diff --git a/lib/pages/message_center_page/comment_message/comment_message_page.dart b/lib/pages/message_center_page/comment_message/comment_message_page.dart new file mode 100644 index 00000000..c34e3025 --- /dev/null +++ b/lib/pages/message_center_page/comment_message/comment_message_page.dart @@ -0,0 +1,46 @@ +import 'package:akuCommunity/constants/api.dart'; +import 'package:akuCommunity/model/message/comment_message_model.dart'; +import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart'; +import 'package:akuCommunity/widget/bee_scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_easyrefresh/easy_refresh.dart'; + +class CommentMessagePage extends StatefulWidget { + CommentMessagePage({Key key}) : super(key: key); + + @override + _CommentMessagePageState createState() => _CommentMessagePageState(); +} + +class _CommentMessagePageState extends State { + EasyRefreshController _easyRefreshController; + @override + void initState() { + super.initState(); + _easyRefreshController = EasyRefreshController(); + } + + @override + void dispose() { + _easyRefreshController?.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return BeeScaffold( + title: '评论通知', + body: BeeListView( + path: API.message.commentMessageList, + controller: _easyRefreshController, + convert: (models) { + return models.tableList + .map((e) => CommentMessageModel.fromJson(e)) + .toList(); + }, + builder: (items) { + return Container(); + }), + ); + } +} diff --git a/lib/pages/message_center_page/comment_message_page/comment_message_page.dart b/lib/pages/message_center_page/comment_message_page/comment_message_page.dart deleted file mode 100644 index 0062001f..00000000 --- a/lib/pages/message_center_page/comment_message_page/comment_message_page.dart +++ /dev/null @@ -1,193 +0,0 @@ -// Flutter imports: -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - -// Package imports: -import 'package:pull_to_refresh/pull_to_refresh.dart'; -import 'package:velocity_x/velocity_x.dart'; - -// Project imports: -import 'package:akuCommunity/utils/headers.dart'; -import 'package:akuCommunity/widget/bee_scaffold.dart'; - -//TODO CLEAN BOTTOM CODES. -@Deprecated("sh*t comment_message_page need to be cleaned.") -class CommentMessagePage extends StatefulWidget { - CommentMessagePage({Key key}) : super(key: key); - - @override - _CommentMessagePageState createState() => _CommentMessagePageState(); -} - -class _CommentMessagePageState extends State { - RefreshController _refreshController = - RefreshController(initialRefresh: false); - List> _listNotice = [ - { - 'name': '马泽鹏', - 'imageHeader': 'assets/example/touxiang1.png', - 'content': '教师节,我们为老师唱首歌吧,顺便给老师过生日。', - 'time': '1分钟前', - 'imagePath': 'assets/example/jiaoshijie.png' - }, - { - 'name': '周玲慧', - 'imageHeader': 'assets/example/touxiang2.png', - 'content': '回复了马泽鹏: 小马好主意', - 'time': '10分钟前', - 'imagePath': 'assets/example/jiaoshijie.png' - }, - { - 'name': '王珂', - 'imageHeader': 'assets/example/touxiang1.png', - 'content': '教师节,我们为老师唱首歌吧,顺便给老师过生日。', - 'time': '20分钟前', - 'imagePath': 'assets/example/jiaoshijie.png' - }, - { - 'name': '王珂', - 'imageHeader': 'assets/example/touxiang1.png', - 'content': '回复了马泽鹏: 小马就是鬼主意多', - 'time': '昨天 20:23', - 'imagePath': 'assets/example/jiaoshijie.png' - }, - ]; - @override - void initState() { - super.initState(); - } - - void _onRefresh() async { - await Future.delayed(Duration(milliseconds: 1500)); - - _refreshController.refreshCompleted(); - } - - void _onLoading() async { - await Future.delayed(Duration(milliseconds: 1500)); - - if (mounted) setState(() {}); - _refreshController.loadComplete(); - } - - @override - void dispose() { - super.dispose(); - _refreshController.dispose(); - } - - Container _containerCommentCard( - String name, imageHeader, content, time, imagePath) { - return Container( - margin: EdgeInsets.symmetric(horizontal: 32.w), - padding: EdgeInsets.only( - top: 32.w, - bottom: 16.w, - ), - decoration: BoxDecoration( - border: Border( - bottom: Divider.createBorderSide(context, - color: Color(0xffe5e5e5), width: 0.5), - ), - ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(4)), - ), - child: Image.asset( - imageHeader, - height: 86.w, - width: 86.w, - fit: BoxFit.fill, - ), - ), - SizedBox(width: 20.w), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - name, - style: TextStyle( - fontSize: 36.sp, - color: Color(0xff333333), - ), - ), - SizedBox(height: 6.w), - Container( - width: 392.w, - child: Text( - content, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 28.sp, - color: Color(0xff333333), - ), - ), - ), - SizedBox(height: 16.w), - Text( - time, - style: TextStyle( - fontSize: 28.sp, - color: Color(0xff999999), - ), - ), - ], - ), - SizedBox(width: 12.w), - Image.asset( - imagePath, - height: 158.w, - width: 158.w, - fit: BoxFit.fill, - ), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - return BeeScaffold( - title: '评论通知', - actions: [ - InkWell( - onTap: () {}, - child: Container( - padding: EdgeInsets.fromLTRB(32.w, 28.w, 32.w, 20.w), - child: '清空'.text.black.size(28.sp).make(), - alignment: Alignment.center, - ), - ) - ], - body: Container( - color: Colors.white, - child: RefreshConfiguration( - hideFooterWhenNotFull: true, - child: SmartRefresher( - controller: _refreshController, - header: WaterDropHeader(), - footer: ClassicFooter(), - onRefresh: _onRefresh, - onLoading: _onLoading, - enablePullUp: true, - child: ListView.builder( - itemBuilder: (context, index) => _containerCommentCard( - _listNotice[index]['name'], - _listNotice[index]['imageHeader'], - _listNotice[index]['content'], - _listNotice[index]['time'], - _listNotice[index]['imagePath'], - ), - itemCount: _listNotice.length, - ), - ), - ), - ), - ); - } -} diff --git a/lib/pages/message_center_page/message_center_page.dart b/lib/pages/message_center_page/message_center_page.dart index a59d02bb..e246411e 100644 --- a/lib/pages/message_center_page/message_center_page.dart +++ b/lib/pages/message_center_page/message_center_page.dart @@ -1,4 +1,5 @@ import 'package:akuCommunity/constants/api.dart'; +import 'package:akuCommunity/pages/message_center_page/comment_message/comment_message_page.dart'; import 'package:akuCommunity/pages/message_center_page/system_message/system_message_page.dart'; import 'package:akuCommunity/provider/app_provider.dart'; import 'package:akuCommunity/utils/network/net_util.dart'; @@ -105,6 +106,10 @@ class _MessageCenterPageState extends State { content: appProvider.messageCenterModel.commentTitle ?? '无评论通知消息', count: appProvider.messageCenterModel.commentCount ?? 0, + onTap: () async { + await NetUtil().dio.get(API.message.allReadComment); + CommentMessagePage().to(); + }, ), // _buildCard( // path: R.ASSETS_ICONS_SHOP_NOTICE_PNG,