张萌 4 years ago
commit bcd5a8949c

@ -16,6 +16,7 @@ class API {
static _Manager manager = _Manager(); static _Manager manager = _Manager();
static _Upload upload = _Upload(); static _Upload upload = _Upload();
static _Community community = _Community(); static _Community community = _Community();
static _Message message = _Message();
} }
class _Login { class _Login {
@ -225,3 +226,7 @@ class _Upload {
String get uploadEvent => '/user/upload/uploadGambit'; String get uploadEvent => '/user/upload/uploadGambit';
} }
class _Message {
String get center => '/user/message/messageCenter';
}

@ -0,0 +1,23 @@
class MessageCenterModel {
int sysCount;
String sysTitle;
MessageCenterModel.zero() {
sysCount = 0;
sysTitle = '';
}
MessageCenterModel({this.sysCount, this.sysTitle});
MessageCenterModel.fromJson(Map<String, dynamic> json) {
sysCount = json['sysCount'];
sysTitle = json['sysTitle'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['sysCount'] = this.sysCount;
data['sysTitle'] = this.sysTitle;
return data;
}
}

@ -88,14 +88,13 @@ class _GoodsManagePageState extends State<GoodsManagePage> {
return BeeScaffold( return BeeScaffold(
title: '借还管理', title: '借还管理',
actions: [ actions: [
InkWell( MaterialButton(
onTap: () { onPressed: () {
MineGoodsPage().to(); MineGoodsPage().to();
}, },
child: Container( child: '我的借还物品'.text.black.size(28.sp).make(),
padding: EdgeInsets.fromLTRB(32.w, 28.w, 32.w, 20.w), padding: EdgeInsets.symmetric(horizontal: 32.w),
alignment: Alignment.center, ),
child: '我的借还物品'.text.black.size(28.sp).make()))
], ],
body: BeeListView( body: BeeListView(
path: API.manager.articleBorrow, path: API.manager.articleBorrow,

@ -1,4 +1,5 @@
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/ui/message/message_center.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// Package imports: // Package imports:
@ -46,7 +47,7 @@ class _CommunityPageState extends State<CommunityPage>
title: '社区', title: '社区',
actions: [ actions: [
ColumnActionButton( ColumnActionButton(
onPressed: () {}, onPressed: MessageCenter().to,
title: '消息', title: '消息',
path: R.ASSETS_ICONS_ALARM_PNG, path: R.ASSETS_ICONS_ALARM_PNG,
), ),

@ -0,0 +1,103 @@
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/message/message_center_model.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/utils/network/base_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:badges/badges.dart';
import 'package:common_utils/common_utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:velocity_x/velocity_x.dart';
class MessageCenter extends StatefulWidget {
MessageCenter({Key key}) : super(key: key);
@override
_MessageCenterState createState() => _MessageCenterState();
}
class _MessageCenterState extends State<MessageCenter> {
MessageCenterModel _model;
Widget _buildMessageTile({
String title,
String content,
int count,
String path,
}) {
bool empty = count == null || count == 0;
return Row(
children: [
Badge(
elevation: 0,
position: BadgePosition(top: 8.w, end: 8.w),
showBadge: !empty,
child: Image.asset(
path,
height: 90.w,
width: 90.w,
),
),
12.wb,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title.text.size(32.sp).bold.make(),
4.hb,
(TextUtil.isEmpty(content) ? '没有新通知' : content)
.text
.size(28.sp)
.make(),
],
).expand(),
],
).pSymmetric(h: 32.w, v: 18.w);
}
Future<MessageCenterModel> _getMessageCenter() async {
Response response = await NetUtil().dio.get(API.message.center);
return MessageCenterModel.fromJson(response.data);
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '消息中心',
actions: [
MaterialButton(
onPressed: () {},
child: '全部已读'.text.size(28.sp).make(),
),
],
body: EasyRefresh(
header: MaterialHeader(),
firstRefresh: true,
onRefresh: () async {
_model = await _getMessageCenter();
setState(() {});
},
child: _model == null
? SizedBox()
: ListView(
children: [
_buildMessageTile(
title: '系统通知',
path: R.ASSETS_ICONS_SYSTEM_NOTICE_PNG,
content: _model.sysTitle,
count: _model.sysCount,
),
// _buildMessageTile(
// title: '评论通知',
// path: R.ASSETS_ICONS_COMMENT_NOTICE_PNG,
// content: '',
// count: 0,
// ),
].sepWidget(separate: Divider(indent: 32.w, endIndent: 32.w)),
),
).material(color: Colors.white),
);
}
}

@ -85,6 +85,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
badges:
dependency: "direct main"
description:
name: badges
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.6"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:

@ -96,6 +96,7 @@ dependencies:
url: http://192.168.2.201:8099/aku_fe/power_logger.git url: http://192.168.2.201:8099/aku_fe/power_logger.git
flutter_rating_bar: ^3.2.0+1 flutter_rating_bar: ^3.2.0+1
jpush_flutter: ^0.6.3 jpush_flutter: ^0.6.3
badges: ^1.1.6
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save