Commit a1bc9a2dd94eaaab99f90f2b27e16ecb596cf874

Authored by “gaiyaguang”
1 parent a603b61b

已处理消息时间字符串bug

... ... @@ -5,89 +5,106 @@ part 'message.g.dart';
@JsonSerializable()
class Message {
Message();
Message();
String id;
dynamic message_type;
String handle_time;//10在线预订 11取消预订
String read_time;
String is_read;
String is_handle;
String ddate;
String rname;
dynamic sex;
dynamic cdate;
dynamic rid;
String room_demand;
String ddate_solt;
dynamic ddate_long;
String status;
String room_info;
String id;
dynamic message_type;
String handle_time; //10在线预订 11取消预订
String read_time;
String is_read;
String is_handle;
String ddate;
String rname;
dynamic sex;
dynamic cdate;
dynamic rid;
String room_demand;
String ddate_solt;
dynamic ddate_long;
String status;
String room_info;
String get rnameStr{
switch(sex.toString()){
case "1"://先生
case "男":
case "先生":
return rname+"先生";
case "2"://女士
case "女":
case "女士":
return rname+"女士";
case "3"://公司
case "公司":
return rname+"公司";
}
String get rnameStr {
switch (sex.toString()) {
case "1": //先生
case "男":
case "先生":
return rname + "先生";
case "2": //女士
case "女":
case "女士":
return rname + "女士";
case "3": //公司
case "公司":
return rname + "公司";
}
}
String get ddateStr{
String ymd="";
if(ddate_long!=null){
DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate_long.toString())*1000);
ymd=dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day);
}else{
ymd=ddate.substring(0,10);
}
switch(ddate_solt){
case "1"://早餐
return ymd+" 早餐";
case "2"://午餐
return ymd+" 午餐";
case "3"://晚餐
return ymd+" 晚餐";
default:
return ymd;
}
String get ddateStr {
String ymd = "";
if (ddate_long != null) {
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
int.parse(ddate_long.toString()) * 1000);
ymd = dateTime.year.toString() +
"/" +
Utils.addZeroNumber(dateTime.month) +
"/" +
Utils.addZeroNumber(dateTime.day);
} else {
ymd = ddate.substring(0, 10);
}
switch (ddate_solt) {
case "1": //早餐
return ymd + " 早餐";
case "2": //午餐
return ymd + " 午餐";
case "3": //晚餐
return ymd + " 晚餐";
default:
return ymd;
}
}
String get cdateStr{
String temp_date=cdate;
switch (message_type){
case "1"://提前点餐
case "2"://内部预订
if (is_read=="0"){//未读 下单时间
temp_date=cdate;
}else{
temp_date=read_time; //已读 查看时间
}
break;
case "10"://在线预订
case "11"://在线预订
if (is_handle=="0"){//未处理 下单时间
temp_date=cdate;
}else{
temp_date=handle_time;//已处理 处理时间
}
break;
String get cdateStr {
String temp_date = '${cdate}';
switch (message_type) {
case "1": //提前点餐
case "2": //内部预订
if (is_read == "0") {
//未读 下单时间
temp_date = cdate;
} else {
temp_date = read_time; //已读 查看时间
}
DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(temp_date.toString())*1000);
if((DateTime.now().difference(dateTime)).inMilliseconds<60000){
return "刚刚";
}else{
return dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day)+" "+Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute);
break;
case "10": //在线预订
case "11": //在线预订
if (is_handle == "0") {
//未处理 下单时间
temp_date = cdate;
} else {
temp_date = handle_time; //已处理 处理时间
}
break;
}
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
int.parse(temp_date.toString()) * 1000);
if ((DateTime.now().difference(dateTime)).inMilliseconds < 60000) {
return "刚刚";
} else {
return dateTime.year.toString() +
"/" +
Utils.addZeroNumber(dateTime.month) +
"/" +
Utils.addZeroNumber(dateTime.day) +
" " +
Utils.addZeroNumber(dateTime.hour) +
":" +
Utils.addZeroNumber(dateTime.minute);
}
}
factory Message.fromJson(Map<String,dynamic> json) => _$MessageFromJson(json);
Map<String, dynamic> toJson() => _$MessageToJson(this);
factory Message.fromJson(Map<String, dynamic> json) =>
_$MessageFromJson(json);
Map<String, dynamic> toJson() => _$MessageToJson(this);
}
... ...
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
class MessageOrderMenuPage extends StatefulWidget {
MessageOrderMenuPage({Key key}) : super(key: key);
@override
_MessageOrderMenuPageState createState() => _MessageOrderMenuPageState();
}
class _MessageOrderMenuPageState extends State<MessageOrderMenuPage> {
final ItemScrollController itemScrollController = ItemScrollController();
final ItemPositionsListener itemPositionsListener =
ItemPositionsListener.create();
Widget list(List data) => ScrollablePositionedList.builder(
itemCount: data.length,
itemBuilder: (context, index) => item(index),
itemScrollController: itemScrollController,
itemPositionsListener: itemPositionsListener,
reverse: false,
scrollDirection: Axis.vertical,
);
Widget item(int i) {
return Container(
// height: ScreenUtil().setWidth(30 * 2) *
// _storeMenuProvider.menulist[i].cookbooklist.length +
// ScreenUtil().setWidth(20 * 2),
height: ScreenUtil().setWidth(50 * 2),
child: Column(
children: [
Container(
alignment: Alignment.centerLeft,
height: ScreenUtil().setWidth(40 * 2),
child: Text('10道必点菜',
style: TextStyle(
fontSize: ScreenUtil().setWidth(30),
color: MyColours.color_999999)),
),
Container(
height: ScreenUtil().setWidth(50 * 2) * 2,
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: 2,
itemBuilder: (BuildContext context, int index) {
return Row(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(30)),
child: CachedNetworkImage(
// placeholder: (context, url) =>
// new CircularProgressIndicator(),
// errorWidget: (context, url, error) => new Icon(Icons.error),
imageUrl:
'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1091405991,859863778&fm=26&gp=0.jpg',
fit: BoxFit.cover,
width: ScreenUtil().setWidth(30 * 2),
height: ScreenUtil().setWidth(30 * 2),
),
),
HEmptyView(20),
Expanded(
child: Text(
'红烧狮子头',
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setWidth(30)),
)),
HEmptyView(20),
],
);
})),
],
));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: SystemAppBar('已点菜品'),
// body: list(data),
);
}
}
... ...
... ... @@ -12,37 +12,39 @@ import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
class MessageItem extends StatelessWidget {
final Message message;
final bool isTreated;
final VoidCallback callback;
MessageItem(this.message,{this.isTreated=false,this.callback});
MessageItem(this.message, {this.isTreated = false, this.callback});
@override
Widget build(BuildContext context) {
// TODO: implement build
Color textColor=isTreated?MyColours.color_999999:MyColours.color_353535;
String titleText="";
if(message.message_type=="10"){
titleText="在线预订";
}else if(message.message_type=="11"){
titleText="取消预订";
}else if(message.message_type=="1"){
titleText="提前点餐";
Color textColor =
isTreated ? MyColours.color_999999 : MyColours.color_353535;
String titleText = "";
if (message.message_type == "10") {
titleText = "在线预订";
} else if (message.message_type == "11") {
titleText = "取消预订";
} else if (message.message_type == "1") {
titleText = "提前点餐";
}
MessageDialogModel messageDialogModel=Provider.of<MessageDialogModel>(context,listen: false);
MessageDialogModel messageDialogModel =
Provider.of<MessageDialogModel>(context, listen: false);
return GestureDetector(
onTap: (){
if(isTreated){
NavigatorUtil.goNotebookDetailPage(context,message.rid.toString());
onTap: () {
if (isTreated) {
NavigatorUtil.goNotebookDetailPage(context, message.rid.toString());
}
},
child: Stack(
children: <Widget>[
Container(
height: ScreenUtil().setWidth(290),
margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(39),vertical: ScreenUtil().setWidth(12)),
margin: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(39),
vertical: ScreenUtil().setWidth(12)),
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(12),
ScreenUtil().setWidth(45),
... ... @@ -50,9 +52,9 @@ class MessageItem extends StatelessWidget {
ScreenUtil().setWidth(43)),
decoration: BoxDecoration(
color: MyColours.color_fefefe,
borderRadius:
BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8)))),
child:Column(
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(8)))),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
... ... @@ -62,12 +64,11 @@ class MessageItem extends StatelessWidget {
Text(
titleText,
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
color: textColor, fontSize: ScreenUtil().setSp(28)),
),
Spacer(),
Text(
message.cdateStr,
'${message.cdateStr}',
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(24)),
... ... @@ -75,74 +76,79 @@ class MessageItem extends StatelessWidget {
],
),
VEmptyView(20),
message.message_type=="11"?
Text(
"${message.ddateStr}的${message.rnameStr}取消了预订",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
):
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"${message.message_type=='1'?'桌位信息:':'包间需求:'}${message.message_type=='1'?message.room_info:message.room_demand}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
VEmptyView(10),
Text(
"就餐时间:${message.ddateStr}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
VEmptyView(10),
Text(
"预订人:${message.rnameStr}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
],
)
message.message_type == "11"
? Text(
"${message.ddateStr}的${message.rnameStr}取消了预订",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
)
: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"${message.message_type == '1' ? '桌位信息:' : '包间需求:'}${message.message_type == '1' ? message.room_info : message.room_demand}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
VEmptyView(10),
Text(
"就餐时间:${message.ddateStr}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
VEmptyView(10),
Text(
"预订人:${message.rnameStr}",
style: TextStyle(
color: textColor,
fontSize: ScreenUtil().setSp(28)),
),
],
)
],
),
),
Positioned(
right: ScreenUtil().setWidth(60),
bottom: ScreenUtil().setWidth(55),
child:Offstage(
offstage: isTreated?true:false,
child: Offstage(
offstage: isTreated ? true : false,
child: CommonButton(
width: 152,
height: 50,
fontSize: 30,
content:message.message_type=="10"?"立即处理":"立即查看",
content: message.message_type == "10" ? "立即处理" : "立即查看",
state: 1,
onPress: () {
messageDialogModel.removeMessage(message.id);
if(message.message_type=="10"){
NavigatorUtil.goHandleOnlinePage(context,message.rid.toString(),message.id);
}else{
NavigatorUtil.goNotebookDetailPage(context,message.rid.toString());
if (message.message_type == "10") {
NavigatorUtil.goHandleOnlinePage(
context, message.rid.toString(), message.id);
} else {
NavigatorUtil.goNotebookDetailPage(
context, message.rid.toString());
bus.emit("remove_untreated_message", message.id);
bus.emit("refresh_untreated_num");//刷新未读消息数目
bus.emit("refresh_untreated_num"); //刷新未读消息数目
Map<String, String> params = {
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
"sid": Provider.of<UserModel>(context, listen: false)
.user
.sellerid,
"id": message.id,
"status": message.message_type=="1"?"is_read":"is_handle"
"status": message.message_type == "1"
? "is_read"
: "is_handle"
};
messageDialogModel.setMessageStatus(context,params);
messageDialogModel.setMessageStatus(context, params);
}
},
),
),
)
],
)
);
));
}
}
... ...
... ... @@ -702,6 +702,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.24.1"
scrollable_positioned_list:
dependency: "direct main"
description:
name: scrollable_positioned_list
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.8"
shared_preferences:
dependency: "direct main"
description:
... ...
... ... @@ -88,6 +88,7 @@ dependencies:
common_utils: ^1.1.3
easy_contact_picker: ^0.0.2
flutter_app_badger: ^1.1.2
scrollable_positioned_list: ^0.1.8
dev_dependencies:
... ...