Showing
12 changed files
with
423 additions
and
208 deletions
| @@ -11,14 +11,14 @@ if (flutterRoot == null) { | @@ -11,14 +11,14 @@ if (flutterRoot == null) { | ||
| 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") | 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") |
| 12 | } | 12 | } |
| 13 | 13 | ||
| 14 | -def flutterVersionCode = "163" | 14 | +def flutterVersionCode = "171" |
| 15 | if (flutterVersionCode == null) { | 15 | if (flutterVersionCode == null) { |
| 16 | - flutterVersionCode = '163' | 16 | + flutterVersionCode = '171' |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | -def flutterVersionName = "1.6.3" | 19 | +def flutterVersionName = "1.7.1" |
| 20 | if (flutterVersionName == null) { | 20 | if (flutterVersionName == null) { |
| 21 | - flutterVersionName = '1.6.3' | 21 | + flutterVersionName = '1.7.1' |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | apply plugin: 'com.android.application' | 24 | apply plugin: 'com.android.application' |
| @@ -34,7 +34,7 @@ Future<void> main() async { | @@ -34,7 +34,7 @@ Future<void> main() async { | ||
| 34 | Routes.configureRoutes(router); | 34 | Routes.configureRoutes(router); |
| 35 | App.router = router; | 35 | App.router = router; |
| 36 | App.setupLocator(); | 36 | App.setupLocator(); |
| 37 | - LogUtil.init(isDebug: false, tag: 'ONE_KEY'); | 37 | + LogUtil.init(isDebug: true, tag: 'ONE_KEY'); |
| 38 | Provider.debugCheckInvalidValueType = null; | 38 | Provider.debugCheckInvalidValueType = null; |
| 39 | await initializeDateFormatting(); | 39 | await initializeDateFormatting(); |
| 40 | Utils.changeStatusColor(); | 40 | Utils.changeStatusColor(); |
| @@ -28,9 +28,11 @@ class Message { | @@ -28,9 +28,11 @@ class Message { | ||
| 28 | switch(sex.toString()){ | 28 | switch(sex.toString()){ |
| 29 | case "1"://先生 | 29 | case "1"://先生 |
| 30 | case "男": | 30 | case "男": |
| 31 | + case "先生": | ||
| 31 | return rname+"先生"; | 32 | return rname+"先生"; |
| 32 | case "2"://女士 | 33 | case "2"://女士 |
| 33 | case "女": | 34 | case "女": |
| 35 | + case "女士": | ||
| 34 | return rname+"女士"; | 36 | return rname+"女士"; |
| 35 | case "3"://公司 | 37 | case "3"://公司 |
| 36 | case "公司": | 38 | case "公司": |
| @@ -39,8 +41,13 @@ class Message { | @@ -39,8 +41,13 @@ class Message { | ||
| 39 | } | 41 | } |
| 40 | 42 | ||
| 41 | String get ddateStr{ | 43 | String get ddateStr{ |
| 42 | - DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate_long.toString())*1000); | ||
| 43 | - String ymd=dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day); | 44 | + String ymd=""; |
| 45 | + if(ddate_long!=null){ | ||
| 46 | + DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate_long.toString())*1000); | ||
| 47 | + ymd=dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day); | ||
| 48 | + }else{ | ||
| 49 | + ymd=ddate.substring(0,10); | ||
| 50 | + } | ||
| 44 | switch(ddate_solt){ | 51 | switch(ddate_solt){ |
| 45 | case "1"://早餐 | 52 | case "1"://早餐 |
| 46 | return ymd+" 早餐"; | 53 | return ymd+" 早餐"; |
| @@ -54,7 +61,26 @@ class Message { | @@ -54,7 +61,26 @@ class Message { | ||
| 54 | } | 61 | } |
| 55 | 62 | ||
| 56 | String get cdateStr{ | 63 | String get cdateStr{ |
| 57 | - DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(cdate.toString())*1000); | 64 | + String temp_date=cdate; |
| 65 | + switch (message_type){ | ||
| 66 | + case "1"://提前点餐 | ||
| 67 | + case "2"://内部预订 | ||
| 68 | + if (is_read=="0"){//未读 下单时间 | ||
| 69 | + temp_date=cdate; | ||
| 70 | + }else{ | ||
| 71 | + temp_date=read_time; //已读 查看时间 | ||
| 72 | + } | ||
| 73 | + break; | ||
| 74 | + case "10"://在线预订 | ||
| 75 | + case "11"://在线预订 | ||
| 76 | + if (is_handle=="0"){//未处理 下单时间 | ||
| 77 | + temp_date=cdate; | ||
| 78 | + }else{ | ||
| 79 | + temp_date=handle_time;//已处理 处理时间 | ||
| 80 | + } | ||
| 81 | + break; | ||
| 82 | + } | ||
| 83 | + DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(temp_date.toString())*1000); | ||
| 58 | if((DateTime.now().difference(dateTime)).inMilliseconds<60000){ | 84 | if((DateTime.now().difference(dateTime)).inMilliseconds<60000){ |
| 59 | return "刚刚"; | 85 | return "刚刚"; |
| 60 | }else{ | 86 | }else{ |
| @@ -9,6 +9,8 @@ class HttpUrl { | @@ -9,6 +9,8 @@ class HttpUrl { | ||
| 9 | static const String login_out = "?service=Android.User.AppLoginOut"; //退出登录 | 9 | static const String login_out = "?service=Android.User.AppLoginOut"; //退出登录 |
| 10 | static const String get_message_list = | 10 | static const String get_message_list = |
| 11 | "?service=Android.Reserve.GetMessageList"; //获取消息列表 | 11 | "?service=Android.Reserve.GetMessageList"; //获取消息列表 |
| 12 | + static const String get_message_num = | ||
| 13 | + "?service=Android.Reserve.GetUnMsgTotal"; //获取未处理消息数目 | ||
| 12 | static const String get_reserve_list = | 14 | static const String get_reserve_list = |
| 13 | "?service=Android.Reserve.NewGetReserveList"; //获取已预订列表 | 15 | "?service=Android.Reserve.NewGetReserveList"; //获取已预订列表 |
| 14 | static const String reserve_count_day = | 16 | static const String reserve_count_day = |
| @@ -335,6 +335,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> { | @@ -335,6 +335,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> { | ||
| 335 | //处理在线预订 | 335 | //处理在线预订 |
| 336 | setReserveStatus(String status, {String tid = "", String ac = ""}) async { | 336 | setReserveStatus(String status, {String tid = "", String ac = ""}) async { |
| 337 | bus.emit("remove_untreated_message", widget.mid); | 337 | bus.emit("remove_untreated_message", widget.mid); |
| 338 | + bus.emit("refresh_untreated_num");//刷新未读消息数目 | ||
| 338 | UserModel userModel = Provider.of<UserModel>(context, listen: false); | 339 | UserModel userModel = Provider.of<UserModel>(context, listen: false); |
| 339 | Map<String, String> causeMap = { | 340 | Map<String, String> causeMap = { |
| 340 | "uid": userModel.user.openid, | 341 | "uid": userModel.user.openid, |
| @@ -370,6 +371,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> { | @@ -370,6 +371,7 @@ class HandleOnlinePageState extends State<HandleOnlinePage> { | ||
| 370 | //处理在线预订 | 371 | //处理在线预订 |
| 371 | setMessageStatus() { | 372 | setMessageStatus() { |
| 372 | bus.emit("remove_untreated_message", widget.mid); | 373 | bus.emit("remove_untreated_message", widget.mid); |
| 374 | + bus.emit("refresh_untreated_num");//刷新未读消息数目 | ||
| 373 | Map<String, String> params = { | 375 | Map<String, String> params = { |
| 374 | "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, | 376 | "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, |
| 375 | "id": widget.mid, | 377 | "id": widget.mid, |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter_easyrefresh/easy_refresh.dart'; | 2 | import 'package:flutter_easyrefresh/easy_refresh.dart'; |
| 3 | +import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 3 | import 'package:one_key/constant/state.dart'; | 4 | import 'package:one_key/constant/state.dart'; |
| 4 | import 'package:one_key/pages/message/messsage_item.dart'; | 5 | import 'package:one_key/pages/message/messsage_item.dart'; |
| 5 | import 'package:one_key/provider/message_dialog_model.dart'; | 6 | import 'package:one_key/provider/message_dialog_model.dart'; |
| 6 | import 'package:one_key/provider/message_model.dart'; | 7 | import 'package:one_key/provider/message_model.dart'; |
| 7 | import 'package:one_key/provider/user_model.dart'; | 8 | import 'package:one_key/provider/user_model.dart'; |
| 9 | +import 'package:one_key/res/colors.dart'; | ||
| 8 | import 'package:one_key/widgets/page_error.dart'; | 10 | import 'package:one_key/widgets/page_error.dart'; |
| 9 | import 'package:one_key/widgets/page_exception.dart'; | 11 | import 'package:one_key/widgets/page_exception.dart'; |
| 10 | import 'package:provider/provider.dart'; | 12 | import 'package:provider/provider.dart'; |
| 11 | import 'package:one_key/utils/event_bus.dart'; | 13 | import 'package:one_key/utils/event_bus.dart'; |
| 12 | 14 | ||
| 13 | -class MessageLeftPage extends StatefulWidget { | 15 | +/** |
| 16 | + * 在线预订消息 | ||
| 17 | + */ | ||
| 18 | +class MessageOnlinePage extends StatefulWidget { | ||
| 14 | @override | 19 | @override |
| 15 | State<StatefulWidget> createState() { | 20 | State<StatefulWidget> createState() { |
| 16 | // TODO: implement createState | 21 | // TODO: implement createState |
| 17 | - return new MessageLeftPageState(); | 22 | + return new MessageOnlinePageState(); |
| 18 | } | 23 | } |
| 19 | } | 24 | } |
| 20 | 25 | ||
| 21 | -class MessageLeftPageState extends State<MessageLeftPage> { | 26 | +class MessageOnlinePageState extends State<MessageOnlinePage> { |
| 22 | EasyRefreshController _controller; | 27 | EasyRefreshController _controller; |
| 23 | 28 | ||
| 29 | + Color selectedColor = MyColours.color_199095; | ||
| 30 | + Color unSelectedColor = MyColours.color_999999; | ||
| 31 | + | ||
| 32 | + int selectedIndex = 0; | ||
| 33 | + | ||
| 34 | + int offset=0; | ||
| 35 | + | ||
| 24 | @override | 36 | @override |
| 25 | void initState() { | 37 | void initState() { |
| 26 | // TODO: implement initState | 38 | // TODO: implement initState |
| @@ -35,57 +47,109 @@ class MessageLeftPageState extends State<MessageLeftPage> { | @@ -35,57 +47,109 @@ class MessageLeftPageState extends State<MessageLeftPage> { | ||
| 35 | }); | 47 | }); |
| 36 | _controller = EasyRefreshController(); | 48 | _controller = EasyRefreshController(); |
| 37 | WidgetsBinding.instance.addPostFrameCallback((_) { | 49 | WidgetsBinding.instance.addPostFrameCallback((_) { |
| 38 | - getUntreatedMessage(); | 50 | + getMessage(); |
| 39 | }); | 51 | }); |
| 40 | } | 52 | } |
| 41 | 53 | ||
| 42 | //获取未处理在线预订消息 | 54 | //获取未处理在线预订消息 |
| 43 | - getUntreatedMessage({bool showLoading = true}) { | 55 | + getMessage({bool showLoading = true}) { |
| 44 | UserModel userModel = Provider.of<UserModel>(context, listen: false); | 56 | UserModel userModel = Provider.of<UserModel>(context, listen: false); |
| 45 | Map<String, String> params = { | 57 | Map<String, String> params = { |
| 46 | "sid": userModel.user.sellerid, | 58 | "sid": userModel.user.sellerid, |
| 47 | - "type_id": "10", | ||
| 48 | - "status": "0", | ||
| 49 | - "offset": "0", | ||
| 50 | - "limit": "100", | 59 | + "type_id": "10", //1提前点餐2内部预订10在线预订 |
| 60 | + "status": selectedIndex.toString(), | ||
| 61 | + "offset": offset.toString(), | ||
| 62 | + "limit": "20", | ||
| 51 | }; | 63 | }; |
| 52 | MessageModel messageModel = | 64 | MessageModel messageModel = |
| 53 | Provider.of<MessageModel>(context, listen: false); | 65 | Provider.of<MessageModel>(context, listen: false); |
| 54 | - messageModel.getUntreatedMsg(context, params, showLoading: showLoading); | 66 | + messageModel.getMessages(context, params, showLoading: showLoading); |
| 55 | } | 67 | } |
| 56 | 68 | ||
| 57 | @override | 69 | @override |
| 58 | Widget build(BuildContext context) { | 70 | Widget build(BuildContext context) { |
| 59 | // TODO: implement build | 71 | // TODO: implement build |
| 60 | - return Consumer<MessageModel>( | ||
| 61 | - builder: (context, model, _) { | ||
| 62 | - if (model.unPageState != PageState.Success) { | ||
| 63 | - return ExceptionPage( | ||
| 64 | - pageState: model.unPageState, | ||
| 65 | - callback: () { | ||
| 66 | - getUntreatedMessage(); | ||
| 67 | - }, | ||
| 68 | - emptyMsg: "暂时没有未处理的消息哦", | ||
| 69 | - emptyImg: "empty_search", | ||
| 70 | - showMsg: "加载中,请稍后...", | ||
| 71 | - ); | ||
| 72 | - } else { | ||
| 73 | - return EasyRefresh.custom( | ||
| 74 | - controller: _controller, | ||
| 75 | - slivers: [ | ||
| 76 | - SliverList( | ||
| 77 | - delegate: SliverChildBuilderDelegate( | ||
| 78 | - (BuildContext context, int index) { | ||
| 79 | - return MessageItem(model.untreatedMsgs[index]); | ||
| 80 | - }, childCount: model.untreatedMsgs.length), | ||
| 81 | - ) | ||
| 82 | - ], | ||
| 83 | - onRefresh: () async { | ||
| 84 | - getUntreatedMessage(showLoading: false); | ||
| 85 | - }, | ||
| 86 | - ); | ||
| 87 | - } | ||
| 88 | - }, | 72 | + return Container( |
| 73 | + color: MyColours.color_f5f5f5, | ||
| 74 | + child: Column( | ||
| 75 | + children: [ | ||
| 76 | + Container( | ||
| 77 | + width: double.infinity, | ||
| 78 | + height: ScreenUtil().setWidth(84), | ||
| 79 | + color: MyColours.color_ffffff, | ||
| 80 | + child: Row( | ||
| 81 | + children: [ | ||
| 82 | + Expanded( | ||
| 83 | + child: GestureDetector( | ||
| 84 | + behavior: HitTestBehavior.opaque, | ||
| 85 | + onTap: () { | ||
| 86 | + if(selectedIndex==0)return; | ||
| 87 | + setState(() { | ||
| 88 | + selectedIndex = 0; | ||
| 89 | + getMessage(showLoading: true); | ||
| 90 | + }); | ||
| 91 | + }, | ||
| 92 | + child: Center( | ||
| 93 | + child: Text("未处理",style: TextStyle(color: selectedIndex==0?selectedColor:unSelectedColor,fontSize: ScreenUtil().setSp(30)),), | ||
| 94 | + ) | ||
| 95 | + )), | ||
| 96 | + Expanded( | ||
| 97 | + child: GestureDetector( | ||
| 98 | + behavior: HitTestBehavior.opaque, | ||
| 99 | + onTap: () { | ||
| 100 | + if(selectedIndex==1)return; | ||
| 101 | + setState(() { | ||
| 102 | + selectedIndex = 1; | ||
| 103 | + getMessage(showLoading: true); | ||
| 104 | + }); | ||
| 105 | + }, | ||
| 106 | + child: Center( | ||
| 107 | + child: Text("已处理",style: TextStyle(color: selectedIndex==1?selectedColor:unSelectedColor,fontSize: ScreenUtil().setSp(30)),), | ||
| 108 | + ) | ||
| 109 | + )) | ||
| 110 | + ], | ||
| 111 | + ), | ||
| 112 | + ), | ||
| 113 | + Expanded( | ||
| 114 | + child: Consumer<MessageModel>( | ||
| 115 | + builder: (context, model, _) { | ||
| 116 | + if (model.pageState != PageState.Success) { | ||
| 117 | + return ExceptionPage( | ||
| 118 | + pageState: model.pageState, | ||
| 119 | + callback: () { | ||
| 120 | + offset=0; | ||
| 121 | + getMessage(showLoading: true); | ||
| 122 | + }, | ||
| 123 | + emptyMsg: "暂时没有${selectedIndex==0?'未处理':'已处理'}的在线预订消息哦", | ||
| 124 | + emptyImg: "empty_search", | ||
| 125 | + showMsg: "加载中,请稍后...", | ||
| 126 | + ); | ||
| 127 | + } else { | ||
| 128 | + return EasyRefresh.custom( | ||
| 129 | + controller: _controller, | ||
| 130 | + slivers: [ | ||
| 131 | + SliverList( | ||
| 132 | + delegate: SliverChildBuilderDelegate( | ||
| 133 | + (BuildContext context, int index) { | ||
| 134 | + return MessageItem(model.messages[index],isTreated: selectedIndex==1,); | ||
| 135 | + }, childCount: model.messages.length), | ||
| 136 | + ) | ||
| 137 | + ], | ||
| 138 | + onRefresh: () async { | ||
| 139 | + offset=0; | ||
| 140 | + getMessage(showLoading: false); | ||
| 141 | + }, | ||
| 142 | + onLoad: ()async{ | ||
| 143 | + offset++; | ||
| 144 | + getMessage(showLoading: false); | ||
| 145 | + }, | ||
| 146 | + ); | ||
| 147 | + } | ||
| 148 | + }, | ||
| 149 | + ), | ||
| 150 | + ) | ||
| 151 | + ], | ||
| 152 | + ), | ||
| 89 | ); | 153 | ); |
| 90 | } | 154 | } |
| 91 | 155 |
| 1 | +import 'package:common_utils/common_utils.dart'; | ||
| 1 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter_easyrefresh/easy_refresh.dart'; | 3 | import 'package:flutter_easyrefresh/easy_refresh.dart'; |
| 4 | +import 'package:flutter_screenutil/screenutil.dart'; | ||
| 3 | import 'package:one_key/constant/state.dart'; | 5 | import 'package:one_key/constant/state.dart'; |
| 4 | import 'package:one_key/pages/message/messsage_item.dart'; | 6 | import 'package:one_key/pages/message/messsage_item.dart'; |
| 5 | import 'package:one_key/provider/message_model.dart'; | 7 | import 'package:one_key/provider/message_model.dart'; |
| 6 | import 'package:one_key/provider/user_model.dart'; | 8 | import 'package:one_key/provider/user_model.dart'; |
| 9 | +import 'package:one_key/res/colors.dart'; | ||
| 7 | import 'package:one_key/widgets/page_error.dart'; | 10 | import 'package:one_key/widgets/page_error.dart'; |
| 8 | import 'package:one_key/widgets/page_exception.dart'; | 11 | import 'package:one_key/widgets/page_exception.dart'; |
| 9 | import 'package:provider/provider.dart'; | 12 | import 'package:provider/provider.dart'; |
| 10 | 13 | ||
| 11 | -class MessageRightPage extends StatefulWidget { | 14 | +/** |
| 15 | + * 提前点餐消息 | ||
| 16 | + */ | ||
| 17 | +class MessageOrderPage extends StatefulWidget { | ||
| 12 | @override | 18 | @override |
| 13 | State<StatefulWidget> createState() { | 19 | State<StatefulWidget> createState() { |
| 14 | // TODO: implement createState | 20 | // TODO: implement createState |
| 15 | - return new MessageRightPageState(); | 21 | + return new MessageOrderPageState(); |
| 16 | } | 22 | } |
| 17 | } | 23 | } |
| 18 | 24 | ||
| 19 | -class MessageRightPageState extends State<MessageRightPage> { | 25 | +class MessageOrderPageState extends State<MessageOrderPage> { |
| 20 | EasyRefreshController _controller; | 26 | EasyRefreshController _controller; |
| 21 | 27 | ||
| 28 | + Color selectedColor = MyColours.color_199095; | ||
| 29 | + Color unSelectedColor = MyColours.color_999999; | ||
| 30 | + | ||
| 31 | + int selectedIndex = 0; | ||
| 32 | + | ||
| 22 | int offset = 0; //当前页数 | 33 | int offset = 0; //当前页数 |
| 23 | 34 | ||
| 35 | + | ||
| 24 | @override | 36 | @override |
| 25 | void initState() { | 37 | void initState() { |
| 26 | // TODO: implement initState | 38 | // TODO: implement initState |
| 27 | super.initState(); | 39 | super.initState(); |
| 28 | _controller = EasyRefreshController(); | 40 | _controller = EasyRefreshController(); |
| 29 | WidgetsBinding.instance.addPostFrameCallback((_) { | 41 | WidgetsBinding.instance.addPostFrameCallback((_) { |
| 30 | - getTreatedMessage(); | 42 | + getMessages(); |
| 31 | }); | 43 | }); |
| 32 | } | 44 | } |
| 33 | 45 | ||
| 34 | - //获取未处理在线预订消息 | ||
| 35 | - getTreatedMessage({bool showLoading = true}) { | 46 | + //获取消息 |
| 47 | + getMessages({bool showLoading = true}) { | ||
| 36 | UserModel userModel = Provider.of<UserModel>(context, listen: false); | 48 | UserModel userModel = Provider.of<UserModel>(context, listen: false); |
| 37 | Map<String, String> params = { | 49 | Map<String, String> params = { |
| 38 | "sid": userModel.user.sellerid, | 50 | "sid": userModel.user.sellerid, |
| 39 | - "type_id": "10", | ||
| 40 | - "status": "1", | 51 | + "type_id": "1", |
| 52 | + "status": selectedIndex.toString(), | ||
| 41 | "offset": offset.toString(), | 53 | "offset": offset.toString(), |
| 42 | - "limit": "10", | 54 | + "limit": "20", |
| 43 | }; | 55 | }; |
| 44 | MessageModel messageModel = | 56 | MessageModel messageModel = |
| 45 | - Provider.of<MessageModel>(context, listen: false); | ||
| 46 | - messageModel.getTreatedMsg(context, params, showLoading: showLoading); | 57 | + Provider.of<MessageModel>(context, listen: false); |
| 58 | + messageModel.getMessages(context, params, showLoading: showLoading); | ||
| 47 | } | 59 | } |
| 48 | 60 | ||
| 49 | @override | 61 | @override |
| 50 | Widget build(BuildContext context) { | 62 | Widget build(BuildContext context) { |
| 51 | // TODO: implement build | 63 | // TODO: implement build |
| 52 | - return Consumer<MessageModel>( | ||
| 53 | - builder: (context, model, _) { | ||
| 54 | - if (model.pageState != PageState.Success) { | ||
| 55 | - return ExceptionPage( | ||
| 56 | - pageState: model.pageState, | ||
| 57 | - callback: () { | ||
| 58 | - getTreatedMessage(); | ||
| 59 | - }, | ||
| 60 | - emptyMsg: "暂时没有已处理的消息哦", | ||
| 61 | - emptyImg: "empty_search", | ||
| 62 | - showMsg: "加载中,请稍后...", | ||
| 63 | - ); | ||
| 64 | - } else { | ||
| 65 | - return EasyRefresh.custom( | ||
| 66 | - controller: _controller, | ||
| 67 | - slivers: [ | ||
| 68 | - SliverList( | ||
| 69 | - delegate: SliverChildBuilderDelegate( | ||
| 70 | - (BuildContext context, int index) { | ||
| 71 | - return MessageItem( | ||
| 72 | - model.treatedMsgs[index], | ||
| 73 | - isTreated: true, | 64 | + return Container( |
| 65 | + color: MyColours.color_f5f5f5, | ||
| 66 | + child: Column( | ||
| 67 | + children: [ | ||
| 68 | + Container( | ||
| 69 | + width: double.infinity, | ||
| 70 | + height: ScreenUtil().setWidth(84), | ||
| 71 | + color: MyColours.color_ffffff, | ||
| 72 | + child: Row( | ||
| 73 | + children: [ | ||
| 74 | + Expanded( | ||
| 75 | + child: GestureDetector( | ||
| 76 | + behavior: HitTestBehavior.opaque, | ||
| 77 | + onTap: () { | ||
| 78 | + if(selectedIndex==0)return; | ||
| 79 | + setState(() { | ||
| 80 | + selectedIndex = 0; | ||
| 81 | + getMessages(); | ||
| 82 | + }); | ||
| 83 | + }, | ||
| 84 | + child: Center( | ||
| 85 | + child: Text("未处理",style: TextStyle(color: selectedIndex==0?selectedColor:unSelectedColor,fontSize: ScreenUtil().setSp(30)),), | ||
| 86 | + ) | ||
| 87 | + )), | ||
| 88 | + Expanded( | ||
| 89 | + child: GestureDetector( | ||
| 90 | + behavior: HitTestBehavior.opaque, | ||
| 91 | + onTap: () { | ||
| 92 | + if(selectedIndex==1)return; | ||
| 93 | + setState(() { | ||
| 94 | + selectedIndex = 1; | ||
| 95 | + getMessages(); | ||
| 96 | + }); | ||
| 97 | + }, | ||
| 98 | + child: Center( | ||
| 99 | + child: Text("已处理",style: TextStyle(color: selectedIndex==1?selectedColor:unSelectedColor,fontSize: ScreenUtil().setSp(30)),), | ||
| 100 | + ) | ||
| 101 | + )) | ||
| 102 | + ], | ||
| 103 | + ), | ||
| 104 | + ), | ||
| 105 | + Expanded( | ||
| 106 | + child: Consumer<MessageModel>( | ||
| 107 | + builder: (context, model, _) { | ||
| 108 | + if (model.pageState != PageState.Success) { | ||
| 109 | + return ExceptionPage( | ||
| 110 | + pageState: model.pageState, | ||
| 111 | + callback: () { | ||
| 112 | + offset=0; | ||
| 113 | + getMessages(); | ||
| 114 | + }, | ||
| 115 | + emptyMsg: "暂时没有${selectedIndex==0?'未处理':'已处理'}的提前点餐消息哦", | ||
| 116 | + emptyImg: "empty_search", | ||
| 117 | + showMsg: "加载中,请稍后...", | ||
| 118 | + ); | ||
| 119 | + } else { | ||
| 120 | + return EasyRefresh.custom( | ||
| 121 | + controller: _controller, | ||
| 122 | + slivers: [ | ||
| 123 | + SliverList( | ||
| 124 | + delegate: SliverChildBuilderDelegate( | ||
| 125 | + (BuildContext context, int index) { | ||
| 126 | + return MessageItem(model.messages[index],isTreated: selectedIndex==1); | ||
| 127 | + }, childCount: model.messages.length), | ||
| 128 | + ) | ||
| 129 | + ], | ||
| 130 | + onRefresh: () async { | ||
| 131 | + offset=0; | ||
| 132 | + getMessages(showLoading: false); | ||
| 133 | + }, | ||
| 134 | + onLoad: ()async{ | ||
| 135 | + offset++; | ||
| 136 | + getMessages(showLoading: false); | ||
| 137 | + }, | ||
| 74 | ); | 138 | ); |
| 75 | - }, childCount: model.treatedMsgs.length), | ||
| 76 | - ) | ||
| 77 | - ], | ||
| 78 | - onRefresh: () async { | ||
| 79 | - getTreatedMessage(showLoading: false); | ||
| 80 | - }, | ||
| 81 | - ); | ||
| 82 | - } | ||
| 83 | - }, | 139 | + } |
| 140 | + }, | ||
| 141 | + ), | ||
| 142 | + ) | ||
| 143 | + ], | ||
| 144 | + ), | ||
| 84 | ); | 145 | ); |
| 85 | } | 146 | } |
| 86 | } | 147 | } |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; | 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| 3 | +import 'package:one_key/provider/message_model.dart'; | ||
| 4 | +import 'package:one_key/provider/user_model.dart'; | ||
| 3 | import 'package:one_key/res/colors.dart'; | 5 | import 'package:one_key/res/colors.dart'; |
| 6 | +import 'package:one_key/utils/event_bus.dart'; | ||
| 4 | import 'package:one_key/widgets/app_bar.dart'; | 7 | import 'package:one_key/widgets/app_bar.dart'; |
| 5 | import 'package:one_key/widgets/v_empty_view.dart'; | 8 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 6 | -import 'message_left_page.dart'; | ||
| 7 | -import 'message_right_page.dart'; | 9 | +import 'package:provider/provider.dart'; |
| 10 | +import 'message_online_page.dart'; | ||
| 11 | +import 'message_order_page.dart'; | ||
| 8 | 12 | ||
| 9 | class MessagePage extends StatefulWidget { | 13 | class MessagePage extends StatefulWidget { |
| 10 | @override | 14 | @override |
| @@ -14,61 +18,137 @@ class MessagePage extends StatefulWidget { | @@ -14,61 +18,137 @@ class MessagePage extends StatefulWidget { | ||
| 14 | } | 18 | } |
| 15 | } | 19 | } |
| 16 | 20 | ||
| 17 | -class MessagePageState extends State<MessagePage> { | 21 | +class MessagePageState extends State<MessagePage> with TickerProviderStateMixin{ |
| 22 | + Color selectedColor = MyColours.color_199095; | ||
| 23 | + Color unSelectedColor = MyColours.color_999999; | ||
| 24 | + | ||
| 25 | + TabController tabController; | ||
| 26 | + | ||
| 27 | + MessageModel messageModel; | ||
| 28 | + | ||
| 29 | + @override | ||
| 30 | + void initState() { | ||
| 31 | + // TODO: implement initState | ||
| 32 | + super.initState(); | ||
| 33 | + tabController = TabController(length: 2,vsync: this); | ||
| 34 | + tabController.addListener(() { | ||
| 35 | + setState(() { | ||
| 36 | + }); | ||
| 37 | + }); | ||
| 38 | + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { | ||
| 39 | + _getUnMsgNum(); | ||
| 40 | + }); | ||
| 41 | + bus.on("refresh_untreated_num", (arg) {//舒心未读消息数目 | ||
| 42 | + _getUnMsgNum(); | ||
| 43 | + }); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + _getUnMsgNum() async { | ||
| 47 | + Map<String,String> params={ | ||
| 48 | + "sid":Provider.of<UserModel>(context,listen:false).user.sellerid | ||
| 49 | + }; | ||
| 50 | + await messageModel.getUnMsgNum(context, params); | ||
| 51 | + setState(() { | ||
| 52 | + }); | ||
| 53 | + } | ||
| 18 | @override | 54 | @override |
| 19 | Widget build(BuildContext context) { | 55 | Widget build(BuildContext context) { |
| 20 | // TODO: implement build | 56 | // TODO: implement build |
| 57 | + messageModel=Provider.of<MessageModel>(context,listen: false); | ||
| 21 | return Container( | 58 | return Container( |
| 22 | width: double.infinity, | 59 | width: double.infinity, |
| 23 | height: double.infinity, | 60 | height: double.infinity, |
| 24 | - color: MyColours.color_f5f5f5, | 61 | + color: MyColours.color_ffffff, |
| 25 | child: Column( | 62 | child: Column( |
| 26 | children: <Widget>[ | 63 | children: <Widget>[ |
| 27 | MyAppBar( | 64 | MyAppBar( |
| 28 | "消息中心", | 65 | "消息中心", |
| 29 | showBack: false, | 66 | showBack: false, |
| 30 | ), | 67 | ), |
| 31 | - Expanded( | ||
| 32 | - child: DefaultTabController( | ||
| 33 | - length: 2, | ||
| 34 | - child: Column( | ||
| 35 | - children: <Widget>[ | ||
| 36 | - Material( | ||
| 37 | - color: MyColours.color_ffffff, | ||
| 38 | - child: SizedBox( | ||
| 39 | - width: double.infinity, | ||
| 40 | - height: ScreenUtil().setHeight(76), | ||
| 41 | - child: TabBar( | ||
| 42 | - tabs: [ | ||
| 43 | - Tab( | ||
| 44 | - text: "未处理", | ||
| 45 | - ), | ||
| 46 | - Tab( | ||
| 47 | - text: "已处理", | ||
| 48 | - ) | ||
| 49 | - ], | ||
| 50 | - indicatorColor: MyColours.color_199095, | ||
| 51 | - indicatorSize: TabBarIndicatorSize.label, | ||
| 52 | - indicatorWeight: ScreenUtil().setHeight(4.0), | ||
| 53 | - labelColor: MyColours.color_199095, | ||
| 54 | - unselectedLabelColor: MyColours.color_999999, | ||
| 55 | - labelStyle: TextStyle( | ||
| 56 | - fontSize: ScreenUtil().setSp(32), | ||
| 57 | - fontWeight: FontWeight.bold), | 68 | + TabBar( |
| 69 | + controller: tabController, | ||
| 70 | + tabs: [ | ||
| 71 | + Tab( | ||
| 72 | + child: SizedBox( | ||
| 73 | + height: ScreenUtil().setWidth(60), | ||
| 74 | + width: ScreenUtil().setWidth(144), | ||
| 75 | + child: Stack( | ||
| 76 | + children: [ | ||
| 77 | + Text( | ||
| 78 | + "在线预订", | ||
| 79 | + style: TextStyle( | ||
| 80 | + color: tabController.index == 0 | ||
| 81 | + ? selectedColor | ||
| 82 | + : unSelectedColor, | ||
| 83 | + fontSize: ScreenUtil().setSp(32),fontWeight: FontWeight.bold), | ||
| 84 | + ), | ||
| 85 | + Positioned( | ||
| 86 | + top: 0, | ||
| 87 | + right: 0, | ||
| 88 | + child: Container( | ||
| 89 | + width: ScreenUtil().setWidth(16), | ||
| 90 | + height: ScreenUtil().setWidth(16), | ||
| 91 | + decoration: BoxDecoration( | ||
| 92 | + borderRadius: BorderRadius.circular( | ||
| 93 | + ScreenUtil().setWidth(16)), | ||
| 94 | + color: messageModel.onlineTotal>0?MyColours.color_fa5151:MyColours.color_ffffff), | ||
| 58 | ), | 95 | ), |
| 96 | + ) | ||
| 97 | + ], | ||
| 98 | + ), | ||
| 99 | + ), | ||
| 100 | + ), | ||
| 101 | + Tab( | ||
| 102 | + child: SizedBox( | ||
| 103 | + height: ScreenUtil().setWidth(60), | ||
| 104 | + width: ScreenUtil().setWidth(144), | ||
| 105 | + child: Stack( | ||
| 106 | + children: [ | ||
| 107 | + Text( | ||
| 108 | + "提前点餐", | ||
| 109 | + style: TextStyle( | ||
| 110 | + color: tabController.index == 1 | ||
| 111 | + ? selectedColor | ||
| 112 | + : unSelectedColor, | ||
| 113 | + fontSize: ScreenUtil().setSp(32),fontWeight: FontWeight.bold), | ||
| 59 | ), | 114 | ), |
| 60 | - ), | ||
| 61 | - VEmptyView(11), | ||
| 62 | - Expanded( | ||
| 63 | - flex: 1, | ||
| 64 | - child: TabBarView( | ||
| 65 | - children: [MessageLeftPage(), MessageRightPage()]), | ||
| 66 | - ) | ||
| 67 | - ], | ||
| 68 | - )), | 115 | + Positioned( |
| 116 | + top: 0, | ||
| 117 | + right: 0, | ||
| 118 | + child: Container( | ||
| 119 | + width: ScreenUtil().setWidth(16), | ||
| 120 | + height: ScreenUtil().setWidth(16), | ||
| 121 | + decoration: BoxDecoration( | ||
| 122 | + borderRadius: BorderRadius.circular( | ||
| 123 | + ScreenUtil().setWidth(16)), | ||
| 124 | + color: messageModel.orderTotal>0?MyColours.color_fa5151:MyColours.color_ffffff), | ||
| 125 | + ), | ||
| 126 | + ) | ||
| 127 | + ], | ||
| 128 | + ), | ||
| 129 | + ), | ||
| 130 | + ), | ||
| 131 | + ], | ||
| 132 | + indicatorColor: MyColours.color_199095, | ||
| 133 | + indicatorSize: TabBarIndicatorSize.label, | ||
| 134 | + indicatorPadding: EdgeInsets.only(left: ScreenUtil().setWidth(16),right: ScreenUtil().setWidth(32)), | ||
| 135 | + indicatorWeight: ScreenUtil().setWidth(6.0), | ||
| 136 | + ), | ||
| 137 | + VEmptyView(11), | ||
| 138 | + Expanded( | ||
| 139 | + flex: 1, | ||
| 140 | + child: | ||
| 141 | + TabBarView(controller:tabController,children: [MessageOnlinePage(), MessageOrderPage()]), | ||
| 69 | ) | 142 | ) |
| 70 | ], | 143 | ], |
| 71 | ), | 144 | ), |
| 72 | ); | 145 | ); |
| 73 | } | 146 | } |
| 147 | + | ||
| 148 | + @override | ||
| 149 | + void dispose() { | ||
| 150 | + // TODO: implement dispose | ||
| 151 | + super.dispose(); | ||
| 152 | + bus.off("refresh_untreated_num"); | ||
| 153 | + } | ||
| 74 | } | 154 | } |
| @@ -18,10 +18,19 @@ class MessageItem extends StatelessWidget { | @@ -18,10 +18,19 @@ class MessageItem extends StatelessWidget { | ||
| 18 | final VoidCallback callback; | 18 | final VoidCallback callback; |
| 19 | MessageItem(this.message,{this.isTreated=false,this.callback}); | 19 | MessageItem(this.message,{this.isTreated=false,this.callback}); |
| 20 | 20 | ||
| 21 | + | ||
| 21 | @override | 22 | @override |
| 22 | Widget build(BuildContext context) { | 23 | Widget build(BuildContext context) { |
| 23 | // TODO: implement build | 24 | // TODO: implement build |
| 24 | Color textColor=isTreated?MyColours.color_999999:MyColours.color_353535; | 25 | Color textColor=isTreated?MyColours.color_999999:MyColours.color_353535; |
| 26 | + String titleText=""; | ||
| 27 | + if(message.message_type=="10"){ | ||
| 28 | + titleText="在线预订"; | ||
| 29 | + }else if(message.message_type=="11"){ | ||
| 30 | + titleText="取消预订"; | ||
| 31 | + }else if(message.message_type=="1"){ | ||
| 32 | + titleText="提前点餐"; | ||
| 33 | + } | ||
| 25 | MessageDialogModel messageDialogModel=Provider.of<MessageDialogModel>(context,listen: false); | 34 | MessageDialogModel messageDialogModel=Provider.of<MessageDialogModel>(context,listen: false); |
| 26 | return GestureDetector( | 35 | return GestureDetector( |
| 27 | onTap: (){ | 36 | onTap: (){ |
| @@ -51,7 +60,7 @@ class MessageItem extends StatelessWidget { | @@ -51,7 +60,7 @@ class MessageItem extends StatelessWidget { | ||
| 51 | crossAxisAlignment: CrossAxisAlignment.center, | 60 | crossAxisAlignment: CrossAxisAlignment.center, |
| 52 | children: <Widget>[ | 61 | children: <Widget>[ |
| 53 | Text( | 62 | Text( |
| 54 | - message.message_type=="10"?"在线预订":"取消预订", | 63 | + titleText, |
| 55 | style: TextStyle( | 64 | style: TextStyle( |
| 56 | color: textColor, | 65 | color: textColor, |
| 57 | fontSize: ScreenUtil().setSp(28)), | 66 | fontSize: ScreenUtil().setSp(28)), |
| @@ -78,7 +87,7 @@ class MessageItem extends StatelessWidget { | @@ -78,7 +87,7 @@ class MessageItem extends StatelessWidget { | ||
| 78 | crossAxisAlignment: CrossAxisAlignment.start, | 87 | crossAxisAlignment: CrossAxisAlignment.start, |
| 79 | children: <Widget>[ | 88 | children: <Widget>[ |
| 80 | Text( | 89 | Text( |
| 81 | - "包间需求:${message.room_demand}", | 90 | + "${message.message_type=='1'?'桌位信息:':'包间需求:'}${message.message_type=='1'?message.room_info:message.room_demand}", |
| 82 | style: TextStyle( | 91 | style: TextStyle( |
| 83 | color: textColor, | 92 | color: textColor, |
| 84 | fontSize: ScreenUtil().setSp(28)), | 93 | fontSize: ScreenUtil().setSp(28)), |
| @@ -120,10 +129,11 @@ class MessageItem extends StatelessWidget { | @@ -120,10 +129,11 @@ class MessageItem extends StatelessWidget { | ||
| 120 | }else{ | 129 | }else{ |
| 121 | NavigatorUtil.goNotebookDetailPage(context,message.rid.toString()); | 130 | NavigatorUtil.goNotebookDetailPage(context,message.rid.toString()); |
| 122 | bus.emit("remove_untreated_message", message.id); | 131 | bus.emit("remove_untreated_message", message.id); |
| 132 | + bus.emit("refresh_untreated_num");//刷新未读消息数目 | ||
| 123 | Map<String, String> params = { | 133 | Map<String, String> params = { |
| 124 | "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, | 134 | "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, |
| 125 | "id": message.id, | 135 | "id": message.id, |
| 126 | - "status": "is_handle" | 136 | + "status": message.message_type=="1"?"is_read":"is_handle" |
| 127 | }; | 137 | }; |
| 128 | messageDialogModel.setMessageStatus(context,params); | 138 | messageDialogModel.setMessageStatus(context,params); |
| 129 | } | 139 | } |
| @@ -49,7 +49,7 @@ class MessageDialogModel extends ChangeNotifier{ | @@ -49,7 +49,7 @@ class MessageDialogModel extends ChangeNotifier{ | ||
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | - //添加一条信息 | 52 | + //移除一条信息 |
| 53 | removeMessage(String mid){ | 53 | removeMessage(String mid){ |
| 54 | messages.removeWhere((message)=>message.id==mid); | 54 | messages.removeWhere((message)=>message.id==mid); |
| 55 | notifyListeners(); | 55 | notifyListeners(); |
| @@ -6,69 +6,20 @@ import 'package:one_key/models/message.dart'; | @@ -6,69 +6,20 @@ import 'package:one_key/models/message.dart'; | ||
| 6 | import 'package:one_key/net/base_resp.dart'; | 6 | import 'package:one_key/net/base_resp.dart'; |
| 7 | import 'package:one_key/net/dio_util.dart'; | 7 | import 'package:one_key/net/dio_util.dart'; |
| 8 | import 'package:one_key/net/http_url.dart'; | 8 | import 'package:one_key/net/http_url.dart'; |
| 9 | -import 'package:one_key/utils/utils.dart'; | ||
| 10 | 9 | ||
| 11 | class MessageModel extends ChangeNotifier { | 10 | class MessageModel extends ChangeNotifier { |
| 12 | - List<Message> untreatedMsgs = []; //未处理在线预订消息 | ||
| 13 | - List<Message> treatedMsgs = []; //已处理在线预订消息 | 11 | + List<Message> messages = []; //消息 |
| 14 | 12 | ||
| 15 | - PageState unPageState = PageState.Loading; | ||
| 16 | PageState pageState = PageState.Loading; | 13 | PageState pageState = PageState.Loading; |
| 17 | - //获取未处理在线预订消息 | ||
| 18 | - getUntreatedMsg(BuildContext context, Map<String, String> params, | ||
| 19 | - {showLoading = true}) async { | ||
| 20 | - if (showLoading) { | ||
| 21 | - unPageState = PageState.Loading; | ||
| 22 | - } | ||
| 23 | 14 | ||
| 24 | - notifyListeners(); | ||
| 25 | - BaseResp<List> baseResp = await DioUtil() | ||
| 26 | - .request<List>(context, Method.get, HttpUrl.get_message_list, | ||
| 27 | - data: params, showLoading: false) | ||
| 28 | - .catchError((error) { | ||
| 29 | - print(error.toString()); | ||
| 30 | - if (error is MyError) { | ||
| 31 | - switch (error.type) { | ||
| 32 | - case 1: | ||
| 33 | - unPageState = PageState.ConnectivityError; | ||
| 34 | - break; | ||
| 35 | - case 2: | ||
| 36 | - unPageState = PageState.ConnectivityTimeOut; | ||
| 37 | - break; | ||
| 38 | - default: | ||
| 39 | - unPageState = PageState.ConnectivityError; | ||
| 40 | - break; | ||
| 41 | - } | ||
| 42 | - } | ||
| 43 | - notifyListeners(); | ||
| 44 | - }); | ||
| 45 | - if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 46 | - untreatedMsgs = baseResp.data.map<Message>((value) { | ||
| 47 | - return Message.fromJson(value); | ||
| 48 | - }).toList(); | ||
| 49 | - untreatedMsgs.removeWhere((message) { | ||
| 50 | - if (message.message_type.toString() == "10") { | ||
| 51 | - if (message.status == "4") { | ||
| 52 | - return true; | ||
| 53 | - } | ||
| 54 | - return false; | ||
| 55 | - } else if (message.message_type.toString() == "11") { | ||
| 56 | - return false; | ||
| 57 | - } | ||
| 58 | - return true; | ||
| 59 | - }); | ||
| 60 | - if (untreatedMsgs.isEmpty) { | ||
| 61 | - unPageState = PageState.Empty; | ||
| 62 | - } else { | ||
| 63 | - unPageState = PageState.Success; | ||
| 64 | - } | ||
| 65 | - notifyListeners(); | ||
| 66 | - } | ||
| 67 | - } | 15 | + int onlineTotal=0;//未处理在线消息数目 |
| 16 | + int inlineTotal=0;//未处理内部消息数目 | ||
| 17 | + int orderTotal=0;//未处理提前点餐消息数目 | ||
| 68 | 18 | ||
| 69 | - //获取已处理在线预订消息 | ||
| 70 | - getTreatedMsg(BuildContext context, Map<String, String> params,{showLoading = true}) async { | ||
| 71 | - if (params["offset"] == "0" && showLoading) { | 19 | + //获取消息 |
| 20 | + getMessages(BuildContext context, Map<String, String> params, | ||
| 21 | + {showLoading = true}) async { | ||
| 22 | + if(showLoading){ | ||
| 72 | pageState = PageState.Loading; | 23 | pageState = PageState.Loading; |
| 73 | notifyListeners(); | 24 | notifyListeners(); |
| 74 | } | 25 | } |
| @@ -93,24 +44,25 @@ class MessageModel extends ChangeNotifier { | @@ -93,24 +44,25 @@ class MessageModel extends ChangeNotifier { | ||
| 93 | notifyListeners(); | 44 | notifyListeners(); |
| 94 | }); | 45 | }); |
| 95 | if (baseResp != null && baseResp.code == Constant.status_success) { | 46 | if (baseResp != null && baseResp.code == Constant.status_success) { |
| 96 | - if (params["offset"] == "0") { | ||
| 97 | - //第一页 | ||
| 98 | - treatedMsgs = baseResp.data.map<Message>((value) { | 47 | + if(params['offset']=="0"){ |
| 48 | + messages = baseResp.data.map<Message>((value) { | ||
| 99 | return Message.fromJson(value); | 49 | return Message.fromJson(value); |
| 100 | }).toList(); | 50 | }).toList(); |
| 101 | - } else { | ||
| 102 | - treatedMsgs.addAll(baseResp.data.map<Message>((value) { | ||
| 103 | - return Message.fromJson(value); | ||
| 104 | - }).toList()); | ||
| 105 | } | 51 | } |
| 106 | - treatedMsgs.removeWhere((message) { | ||
| 107 | - if (message.message_type.toString() == "10" || | ||
| 108 | - message.message_type.toString() == "11") { | ||
| 109 | - return false; | ||
| 110 | - } | ||
| 111 | - return true; | ||
| 112 | - }); | ||
| 113 | - if (treatedMsgs.isEmpty) { | 52 | + // if(params["type_id"]=="10"){//在线预订 |
| 53 | + // messages.removeWhere((message) { | ||
| 54 | + // if (message.message_type.toString() == "10") {//在线预订 | ||
| 55 | + // if (message.status == "4") {//已取消 | ||
| 56 | + // return true; | ||
| 57 | + // } | ||
| 58 | + // return false; | ||
| 59 | + // } else if (message.message_type.toString() == "11") {//取消在线预订 | ||
| 60 | + // return false; | ||
| 61 | + // } | ||
| 62 | + // return true; | ||
| 63 | + // }); | ||
| 64 | + // } | ||
| 65 | + if (messages.isEmpty) { | ||
| 114 | pageState = PageState.Empty; | 66 | pageState = PageState.Empty; |
| 115 | } else { | 67 | } else { |
| 116 | pageState = PageState.Success; | 68 | pageState = PageState.Success; |
| @@ -119,9 +71,26 @@ class MessageModel extends ChangeNotifier { | @@ -119,9 +71,26 @@ class MessageModel extends ChangeNotifier { | ||
| 119 | } | 71 | } |
| 120 | } | 72 | } |
| 121 | 73 | ||
| 122 | - //移除未处理在线预订消息 | ||
| 123 | - removeUntreatedMessageByMid(String mid) { | ||
| 124 | - untreatedMsgs.removeWhere((message) => message.id == mid); | 74 | + //获取未处理消息数目 |
| 75 | + Future getUnMsgNum(BuildContext context, Map<String, String> params) async { | ||
| 76 | + BaseResp<Map<String,dynamic>> baseResp = await DioUtil() | ||
| 77 | + .request<Map<String,dynamic>>(context, Method.get, HttpUrl.get_message_num, | ||
| 78 | + data: params, showLoading: false) | ||
| 79 | + .catchError((error) { | ||
| 80 | + print(error.toString()); | ||
| 81 | + }); | ||
| 82 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 83 | + onlineTotal=int.parse(baseResp.data['online_total'].toString()); | ||
| 84 | + inlineTotal=int.parse(baseResp.data['inline_total'].toString()); | ||
| 85 | + orderTotal=int.parse(baseResp.data['order_total'].toString()); | ||
| 86 | + return; | ||
| 87 | + } | ||
| 88 | + return; | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + //根据消息id移除消息 | ||
| 92 | + removeUntreatedMessageByMid(String mid){ | ||
| 93 | + messages.removeWhere((element) => element.id==mid); | ||
| 125 | notifyListeners(); | 94 | notifyListeners(); |
| 126 | } | 95 | } |
| 127 | } | 96 | } |
| @@ -50,4 +50,5 @@ class MyColours { | @@ -50,4 +50,5 @@ class MyColours { | ||
| 50 | static const Color color_e5e5e5 = Color(0xffe5e5e5); | 50 | static const Color color_e5e5e5 = Color(0xffe5e5e5); |
| 51 | static const Color color_efefef = Color(0xffefefef); | 51 | static const Color color_efefef = Color(0xffefefef); |
| 52 | static const Color color_0A0A0A = Color(0xff0A0A0A); | 52 | static const Color color_0A0A0A = Color(0xff0A0A0A); |
| 53 | + static const Color color_fa5151 = Color(0xfffa5151); | ||
| 53 | } | 54 | } |
-
Please register or login to post a comment