Commit a1bc9a2dd94eaaab99f90f2b27e16ecb596cf874

Authored by “gaiyaguang”
1 parent a603b61b

已处理消息时间字符串bug

@@ -5,89 +5,106 @@ part 'message.g.dart'; @@ -5,89 +5,106 @@ part 'message.g.dart';
5 5
6 @JsonSerializable() 6 @JsonSerializable()
7 class Message { 7 class Message {
8 - Message(); 8 + Message();
9 9
10 - String id;  
11 - dynamic message_type;  
12 - String handle_time;//10在线预订 11取消预订  
13 - String read_time;  
14 - String is_read;  
15 - String is_handle;  
16 - String ddate;  
17 - String rname;  
18 - dynamic sex;  
19 - dynamic cdate;  
20 - dynamic rid;  
21 - String room_demand;  
22 - String ddate_solt;  
23 - dynamic ddate_long;  
24 - String status;  
25 - String room_info; 10 + String id;
  11 + dynamic message_type;
  12 + String handle_time; //10在线预订 11取消预订
  13 + String read_time;
  14 + String is_read;
  15 + String is_handle;
  16 + String ddate;
  17 + String rname;
  18 + dynamic sex;
  19 + dynamic cdate;
  20 + dynamic rid;
  21 + String room_demand;
  22 + String ddate_solt;
  23 + dynamic ddate_long;
  24 + String status;
  25 + String room_info;
26 26
27 - String get rnameStr{  
28 - switch(sex.toString()){  
29 - case "1"://先生  
30 - case "男":  
31 - case "先生":  
32 - return rname+"先生";  
33 - case "2"://女士  
34 - case "女":  
35 - case "女士":  
36 - return rname+"女士";  
37 - case "3"://公司  
38 - case "公司":  
39 - return rname+"公司";  
40 - } 27 + String get rnameStr {
  28 + switch (sex.toString()) {
  29 + case "1": //先生
  30 + case "男":
  31 + case "先生":
  32 + return rname + "先生";
  33 + case "2": //女士
  34 + case "女":
  35 + case "女士":
  36 + return rname + "女士";
  37 + case "3": //公司
  38 + case "公司":
  39 + return rname + "公司";
41 } 40 }
  41 + }
42 42
43 - String get ddateStr{  
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 - }  
51 - switch(ddate_solt){  
52 - case "1"://早餐  
53 - return ymd+" 早餐";  
54 - case "2"://午餐  
55 - return ymd+" 午餐";  
56 - case "3"://晚餐  
57 - return ymd+" 晚餐";  
58 - default:  
59 - return ymd;  
60 - } 43 + String get ddateStr {
  44 + String ymd = "";
  45 + if (ddate_long != null) {
  46 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
  47 + int.parse(ddate_long.toString()) * 1000);
  48 + ymd = dateTime.year.toString() +
  49 + "/" +
  50 + Utils.addZeroNumber(dateTime.month) +
  51 + "/" +
  52 + Utils.addZeroNumber(dateTime.day);
  53 + } else {
  54 + ymd = ddate.substring(0, 10);
61 } 55 }
  56 + switch (ddate_solt) {
  57 + case "1": //早餐
  58 + return ymd + " 早餐";
  59 + case "2": //午餐
  60 + return ymd + " 午餐";
  61 + case "3": //晚餐
  62 + return ymd + " 晚餐";
  63 + default:
  64 + return ymd;
  65 + }
  66 + }
62 67
63 - String get cdateStr{  
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; 68 + String get cdateStr {
  69 + String temp_date = '${cdate}';
  70 + switch (message_type) {
  71 + case "1": //提前点餐
  72 + case "2": //内部预订
  73 + if (is_read == "0") {
  74 + //未读 下单时间
  75 + temp_date = cdate;
  76 + } else {
  77 + temp_date = read_time; //已读 查看时间
82 } 78 }
83 - DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(temp_date.toString())*1000);  
84 - if((DateTime.now().difference(dateTime)).inMilliseconds<60000){  
85 - return "刚刚";  
86 - }else{  
87 - return dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day)+" "+Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute); 79 + break;
  80 + case "10": //在线预订
  81 + case "11": //在线预订
  82 + if (is_handle == "0") {
  83 + //未处理 下单时间
  84 + temp_date = cdate;
  85 + } else {
  86 + temp_date = handle_time; //已处理 处理时间
88 } 87 }
  88 + break;
  89 + }
  90 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
  91 + int.parse(temp_date.toString()) * 1000);
  92 + if ((DateTime.now().difference(dateTime)).inMilliseconds < 60000) {
  93 + return "刚刚";
  94 + } else {
  95 + return dateTime.year.toString() +
  96 + "/" +
  97 + Utils.addZeroNumber(dateTime.month) +
  98 + "/" +
  99 + Utils.addZeroNumber(dateTime.day) +
  100 + " " +
  101 + Utils.addZeroNumber(dateTime.hour) +
  102 + ":" +
  103 + Utils.addZeroNumber(dateTime.minute);
89 } 104 }
  105 + }
90 106
91 - factory Message.fromJson(Map<String,dynamic> json) => _$MessageFromJson(json);  
92 - Map<String, dynamic> toJson() => _$MessageToJson(this); 107 + factory Message.fromJson(Map<String, dynamic> json) =>
  108 + _$MessageFromJson(json);
  109 + Map<String, dynamic> toJson() => _$MessageToJson(this);
93 } 110 }
  1 +import 'package:cached_network_image/cached_network_image.dart';
  2 +import 'package:flutter/material.dart';
  3 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  4 +import 'package:one_key/res/colors.dart';
  5 +import 'package:one_key/utils/utils.dart';
  6 +import 'package:one_key/widgets/h_empty_view.dart';
  7 +import 'package:one_key/widgets/system_app_bar.dart';
  8 +import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
  9 +
  10 +class MessageOrderMenuPage extends StatefulWidget {
  11 + MessageOrderMenuPage({Key key}) : super(key: key);
  12 +
  13 + @override
  14 + _MessageOrderMenuPageState createState() => _MessageOrderMenuPageState();
  15 +}
  16 +
  17 +class _MessageOrderMenuPageState extends State<MessageOrderMenuPage> {
  18 + final ItemScrollController itemScrollController = ItemScrollController();
  19 + final ItemPositionsListener itemPositionsListener =
  20 + ItemPositionsListener.create();
  21 + Widget list(List data) => ScrollablePositionedList.builder(
  22 + itemCount: data.length,
  23 + itemBuilder: (context, index) => item(index),
  24 + itemScrollController: itemScrollController,
  25 + itemPositionsListener: itemPositionsListener,
  26 + reverse: false,
  27 + scrollDirection: Axis.vertical,
  28 + );
  29 + Widget item(int i) {
  30 + return Container(
  31 + // height: ScreenUtil().setWidth(30 * 2) *
  32 + // _storeMenuProvider.menulist[i].cookbooklist.length +
  33 + // ScreenUtil().setWidth(20 * 2),
  34 + height: ScreenUtil().setWidth(50 * 2),
  35 + child: Column(
  36 + children: [
  37 + Container(
  38 + alignment: Alignment.centerLeft,
  39 + height: ScreenUtil().setWidth(40 * 2),
  40 + child: Text('10道必点菜',
  41 + style: TextStyle(
  42 + fontSize: ScreenUtil().setWidth(30),
  43 + color: MyColours.color_999999)),
  44 + ),
  45 + Container(
  46 + height: ScreenUtil().setWidth(50 * 2) * 2,
  47 + child: ListView.builder(
  48 + shrinkWrap: true,
  49 + physics: NeverScrollableScrollPhysics(),
  50 + itemCount: 2,
  51 + itemBuilder: (BuildContext context, int index) {
  52 + return Row(
  53 + children: [
  54 + ClipRRect(
  55 + borderRadius: BorderRadius.circular(
  56 + ScreenUtil().setWidth(30)),
  57 + child: CachedNetworkImage(
  58 + // placeholder: (context, url) =>
  59 + // new CircularProgressIndicator(),
  60 + // errorWidget: (context, url, error) => new Icon(Icons.error),
  61 + imageUrl:
  62 + 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1091405991,859863778&fm=26&gp=0.jpg',
  63 + fit: BoxFit.cover,
  64 + width: ScreenUtil().setWidth(30 * 2),
  65 + height: ScreenUtil().setWidth(30 * 2),
  66 + ),
  67 + ),
  68 + HEmptyView(20),
  69 + Expanded(
  70 + child: Text(
  71 + '红烧狮子头',
  72 + style: TextStyle(
  73 + color: MyColours.color_333333,
  74 + fontSize: ScreenUtil().setWidth(30)),
  75 + )),
  76 + HEmptyView(20),
  77 + ],
  78 + );
  79 + })),
  80 + ],
  81 + ));
  82 + }
  83 +
  84 + @override
  85 + Widget build(BuildContext context) {
  86 + return Scaffold(
  87 + appBar: SystemAppBar('已点菜品'),
  88 + // body: list(data),
  89 + );
  90 + }
  91 +}
@@ -12,37 +12,39 @@ import 'package:one_key/widgets/v_empty_view.dart'; @@ -12,37 +12,39 @@ import 'package:one_key/widgets/v_empty_view.dart';
12 import 'package:provider/provider.dart'; 12 import 'package:provider/provider.dart';
13 13
14 class MessageItem extends StatelessWidget { 14 class MessageItem extends StatelessWidget {
15 -  
16 final Message message; 15 final Message message;
17 final bool isTreated; 16 final bool isTreated;
18 final VoidCallback callback; 17 final VoidCallback callback;
19 - MessageItem(this.message,{this.isTreated=false,this.callback});  
20 - 18 + MessageItem(this.message, {this.isTreated = false, this.callback});
21 19
22 @override 20 @override
23 Widget build(BuildContext context) { 21 Widget build(BuildContext context) {
24 // TODO: implement build 22 // TODO: implement build
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="提前点餐"; 23 + Color textColor =
  24 + isTreated ? MyColours.color_999999 : MyColours.color_353535;
  25 + String titleText = "";
  26 + if (message.message_type == "10") {
  27 + titleText = "在线预订";
  28 + } else if (message.message_type == "11") {
  29 + titleText = "取消预订";
  30 + } else if (message.message_type == "1") {
  31 + titleText = "提前点餐";
33 } 32 }
34 - MessageDialogModel messageDialogModel=Provider.of<MessageDialogModel>(context,listen: false); 33 + MessageDialogModel messageDialogModel =
  34 + Provider.of<MessageDialogModel>(context, listen: false);
35 return GestureDetector( 35 return GestureDetector(
36 - onTap: (){  
37 - if(isTreated){  
38 - NavigatorUtil.goNotebookDetailPage(context,message.rid.toString()); 36 + onTap: () {
  37 + if (isTreated) {
  38 + NavigatorUtil.goNotebookDetailPage(context, message.rid.toString());
39 } 39 }
40 }, 40 },
41 child: Stack( 41 child: Stack(
42 children: <Widget>[ 42 children: <Widget>[
43 Container( 43 Container(
44 height: ScreenUtil().setWidth(290), 44 height: ScreenUtil().setWidth(290),
45 - margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(39),vertical: ScreenUtil().setWidth(12)), 45 + margin: EdgeInsets.symmetric(
  46 + horizontal: ScreenUtil().setWidth(39),
  47 + vertical: ScreenUtil().setWidth(12)),
46 padding: EdgeInsets.fromLTRB( 48 padding: EdgeInsets.fromLTRB(
47 ScreenUtil().setWidth(12), 49 ScreenUtil().setWidth(12),
48 ScreenUtil().setWidth(45), 50 ScreenUtil().setWidth(45),
@@ -50,9 +52,9 @@ class MessageItem extends StatelessWidget { @@ -50,9 +52,9 @@ class MessageItem extends StatelessWidget {
50 ScreenUtil().setWidth(43)), 52 ScreenUtil().setWidth(43)),
51 decoration: BoxDecoration( 53 decoration: BoxDecoration(
52 color: MyColours.color_fefefe, 54 color: MyColours.color_fefefe,
53 - borderRadius:  
54 - BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8)))),  
55 - child:Column( 55 + borderRadius: BorderRadius.all(
  56 + Radius.circular(ScreenUtil().setWidth(8)))),
  57 + child: Column(
56 mainAxisSize: MainAxisSize.min, 58 mainAxisSize: MainAxisSize.min,
57 crossAxisAlignment: CrossAxisAlignment.start, 59 crossAxisAlignment: CrossAxisAlignment.start,
58 children: <Widget>[ 60 children: <Widget>[
@@ -62,12 +64,11 @@ class MessageItem extends StatelessWidget { @@ -62,12 +64,11 @@ class MessageItem extends StatelessWidget {
62 Text( 64 Text(
63 titleText, 65 titleText,
64 style: TextStyle( 66 style: TextStyle(
65 - color: textColor,  
66 - fontSize: ScreenUtil().setSp(28)), 67 + color: textColor, fontSize: ScreenUtil().setSp(28)),
67 ), 68 ),
68 Spacer(), 69 Spacer(),
69 Text( 70 Text(
70 - message.cdateStr, 71 + '${message.cdateStr}',
71 style: TextStyle( 72 style: TextStyle(
72 color: MyColours.color_999999, 73 color: MyColours.color_999999,
73 fontSize: ScreenUtil().setSp(24)), 74 fontSize: ScreenUtil().setSp(24)),
@@ -75,74 +76,79 @@ class MessageItem extends StatelessWidget { @@ -75,74 +76,79 @@ class MessageItem extends StatelessWidget {
75 ], 76 ],
76 ), 77 ),
77 VEmptyView(20), 78 VEmptyView(20),
78 - message.message_type=="11"?  
79 - Text(  
80 - "${message.ddateStr}的${message.rnameStr}取消了预订",  
81 - style: TextStyle(  
82 - color: textColor,  
83 - fontSize: ScreenUtil().setSp(28)),  
84 - ):  
85 - Column(  
86 - mainAxisSize: MainAxisSize.min,  
87 - crossAxisAlignment: CrossAxisAlignment.start,  
88 - children: <Widget>[  
89 - Text(  
90 - "${message.message_type=='1'?'桌位信息:':'包间需求:'}${message.message_type=='1'?message.room_info:message.room_demand}",  
91 - style: TextStyle(  
92 - color: textColor,  
93 - fontSize: ScreenUtil().setSp(28)),  
94 - ),  
95 - VEmptyView(10),  
96 - Text(  
97 - "就餐时间:${message.ddateStr}",  
98 - style: TextStyle(  
99 - color: textColor,  
100 - fontSize: ScreenUtil().setSp(28)),  
101 - ),  
102 - VEmptyView(10),  
103 - Text(  
104 - "预订人:${message.rnameStr}",  
105 - style: TextStyle(  
106 - color: textColor,  
107 - fontSize: ScreenUtil().setSp(28)),  
108 - ),  
109 - ],  
110 - ) 79 + message.message_type == "11"
  80 + ? Text(
  81 + "${message.ddateStr}的${message.rnameStr}取消了预订",
  82 + style: TextStyle(
  83 + color: textColor,
  84 + fontSize: ScreenUtil().setSp(28)),
  85 + )
  86 + : Column(
  87 + mainAxisSize: MainAxisSize.min,
  88 + crossAxisAlignment: CrossAxisAlignment.start,
  89 + children: <Widget>[
  90 + Text(
  91 + "${message.message_type == '1' ? '桌位信息:' : '包间需求:'}${message.message_type == '1' ? message.room_info : message.room_demand}",
  92 + style: TextStyle(
  93 + color: textColor,
  94 + fontSize: ScreenUtil().setSp(28)),
  95 + ),
  96 + VEmptyView(10),
  97 + Text(
  98 + "就餐时间:${message.ddateStr}",
  99 + style: TextStyle(
  100 + color: textColor,
  101 + fontSize: ScreenUtil().setSp(28)),
  102 + ),
  103 + VEmptyView(10),
  104 + Text(
  105 + "预订人:${message.rnameStr}",
  106 + style: TextStyle(
  107 + color: textColor,
  108 + fontSize: ScreenUtil().setSp(28)),
  109 + ),
  110 + ],
  111 + )
111 ], 112 ],
112 ), 113 ),
113 ), 114 ),
114 Positioned( 115 Positioned(
115 right: ScreenUtil().setWidth(60), 116 right: ScreenUtil().setWidth(60),
116 bottom: ScreenUtil().setWidth(55), 117 bottom: ScreenUtil().setWidth(55),
117 - child:Offstage(  
118 - offstage: isTreated?true:false, 118 + child: Offstage(
  119 + offstage: isTreated ? true : false,
119 child: CommonButton( 120 child: CommonButton(
120 width: 152, 121 width: 152,
121 height: 50, 122 height: 50,
122 fontSize: 30, 123 fontSize: 30,
123 - content:message.message_type=="10"?"立即处理":"立即查看", 124 + content: message.message_type == "10" ? "立即处理" : "立即查看",
124 state: 1, 125 state: 1,
125 onPress: () { 126 onPress: () {
126 messageDialogModel.removeMessage(message.id); 127 messageDialogModel.removeMessage(message.id);
127 - if(message.message_type=="10"){  
128 - NavigatorUtil.goHandleOnlinePage(context,message.rid.toString(),message.id);  
129 - }else{  
130 - NavigatorUtil.goNotebookDetailPage(context,message.rid.toString()); 128 + if (message.message_type == "10") {
  129 + NavigatorUtil.goHandleOnlinePage(
  130 + context, message.rid.toString(), message.id);
  131 + } else {
  132 + NavigatorUtil.goNotebookDetailPage(
  133 + context, message.rid.toString());
131 bus.emit("remove_untreated_message", message.id); 134 bus.emit("remove_untreated_message", message.id);
132 - bus.emit("refresh_untreated_num");//刷新未读消息数目 135 + bus.emit("refresh_untreated_num"); //刷新未读消息数目
133 Map<String, String> params = { 136 Map<String, String> params = {
134 - "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, 137 + "sid": Provider.of<UserModel>(context, listen: false)
  138 + .user
  139 + .sellerid,
135 "id": message.id, 140 "id": message.id,
136 - "status": message.message_type=="1"?"is_read":"is_handle" 141 + "status": message.message_type == "1"
  142 + ? "is_read"
  143 + : "is_handle"
137 }; 144 };
138 - messageDialogModel.setMessageStatus(context,params); 145 + messageDialogModel.setMessageStatus(context, params);
139 } 146 }
140 }, 147 },
141 ), 148 ),
142 ), 149 ),
143 ) 150 )
144 ], 151 ],
145 - )  
146 - ); 152 + ));
147 } 153 }
148 } 154 }
@@ -702,6 +702,13 @@ packages: @@ -702,6 +702,13 @@ packages:
702 url: "https://pub.flutter-io.cn" 702 url: "https://pub.flutter-io.cn"
703 source: hosted 703 source: hosted
704 version: "0.24.1" 704 version: "0.24.1"
  705 + scrollable_positioned_list:
  706 + dependency: "direct main"
  707 + description:
  708 + name: scrollable_positioned_list
  709 + url: "https://pub.flutter-io.cn"
  710 + source: hosted
  711 + version: "0.1.8"
705 shared_preferences: 712 shared_preferences:
706 dependency: "direct main" 713 dependency: "direct main"
707 description: 714 description:
@@ -88,6 +88,7 @@ dependencies: @@ -88,6 +88,7 @@ dependencies:
88 common_utils: ^1.1.3 88 common_utils: ^1.1.3
89 easy_contact_picker: ^0.0.2 89 easy_contact_picker: ^0.0.2
90 flutter_app_badger: ^1.1.2 90 flutter_app_badger: ^1.1.2
  91 + scrollable_positioned_list: ^0.1.8
91 92
92 93
93 dev_dependencies: 94 dev_dependencies: