Commit 642e14f5b0dae3adb10617b5d29b674b61f31dcb

Authored by wdn127929
1 parent ad6f38c0

包间类型选择桌位页面

import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/utils.dart';
part 'new_unmessage_model.g.dart';
@JsonSerializable()
class NewUnmessageModel extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
NewUnmessageSunModel data;
@JsonKey(name: 'msg')
String msg;
NewUnmessageModel(
this.ret,
this.data,
this.msg,
);
factory NewUnmessageModel.fromJson(Map<String, dynamic> srcJson) =>
_$NewUnmessageModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$NewUnmessageModelToJson(this);
}
@JsonSerializable()
class NewUnmessageSunModel extends Object {
@JsonKey(name: 'count')
int count;
@JsonKey(name: 'list')
List<NewUnmessage> list;
NewUnmessageSunModel(
this.count,
this.list,
);
factory NewUnmessageSunModel.fromJson(Map<String, dynamic> srcJson) =>
_$NewUnmessageSunModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$NewUnmessageSunModelToJson(this);
}
@JsonSerializable()
class NewUnmessage extends Object {
@JsonKey(name: 'id')
String id;
@JsonKey(name: 'uid')
String uid;
@JsonKey(name: 'message_type')
String message_type;
@JsonKey(name: 'handle_time')
String handle_time;
@JsonKey(name: 'read_time')
String read_time;
@JsonKey(name: 'is_read')
String is_read;
@JsonKey(name: 'is_handle')
String is_handle;
@JsonKey(name: 'ddate')
dynamic ddate;
@JsonKey(name: 'rname')
String rname;
@JsonKey(name: 'sex')
dynamic sex;
@JsonKey(name: 'cdate')
dynamic cdate;
@JsonKey(name: 'rid')
dynamic rid;
@JsonKey(name: 'room_demand')
dynamic room_demand;
@JsonKey(name: 'ddate_solt')
dynamic ddate_solt;
@JsonKey(name: 'ddate_long')
dynamic ddate_long;
@JsonKey(name: 'cancel_name')
String cancelName;
@JsonKey(name: 'status')
dynamic status;
@JsonKey(name: 'room_info')
dynamic room_info;
NewUnmessage(
this.id,
this.uid,
this.message_type,
this.handle_time,
this.read_time,
this.is_read,
this.is_handle,
this.ddate,
this.rname,
this.sex,
this.cdate,
this.rid,
this.room_demand,
this.ddate_solt,
this.ddate_long,
this.cancelName,
this.status,
this.room_info,
);
String get rnameStr {
if (rname == null || rname == '') return "";
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 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;
}
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 NewUnmessage.fromJson(Map<String, dynamic> srcJson) =>
_$NewUnmessageFromJson(srcJson);
Map<String, dynamic> toJson() => _$NewUnmessageToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'new_unmessage_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
NewUnmessageModel _$NewUnmessageModelFromJson(Map<String, dynamic> json) {
return NewUnmessageModel(
json['ret'] as int,
json['data'] == null
? null
: NewUnmessageSunModel.fromJson(json['data'] as Map<String, dynamic>),
json['msg'] as String,
);
}
Map<String, dynamic> _$NewUnmessageModelToJson(NewUnmessageModel instance) =>
<String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg,
};
NewUnmessageSunModel _$NewUnmessageSunModelFromJson(Map<String, dynamic> json) {
return NewUnmessageSunModel(
json['count'] as int,
(json['list'] as List)
?.map((e) =>
e == null ? null : NewUnmessage.fromJson(e as Map<String, dynamic>))
?.toList(),
);
}
Map<String, dynamic> _$NewUnmessageSunModelToJson(
NewUnmessageSunModel instance) =>
<String, dynamic>{
'count': instance.count,
'list': instance.list,
};
NewUnmessage _$NewUnmessageFromJson(Map<String, dynamic> json) {
return NewUnmessage(
json['id'] as String,
json['uid'] as String,
json['message_type'] as String,
json['handle_time'] as String,
json['read_time'] as String,
json['is_read'] as String,
json['is_handle'] as String,
json['ddate'] as dynamic,
json['rname'] as String,
json['sex'] as dynamic,
json['cdate'] as dynamic,
json['rid'] as dynamic,
json['room_demand'] as dynamic,
json['ddate_solt'] as dynamic,
json['ddate_long'] as dynamic,
json['cancel_name'] as dynamic,
json['status'] as dynamic,
json['room_info'] as dynamic,
);
}
Map<String, dynamic> _$NewUnmessageToJson(NewUnmessage instance) =>
<String, dynamic>{
'id': instance.id,
'uid': instance.uid,
'message_type': instance.message_type,
'handle_time': instance.handle_time,
'read_time': instance.read_time,
'is_read': instance.is_read,
'is_handle': instance.is_handle,
'ddate': instance.ddate,
'rname': instance.rname,
'sex': instance.sex,
'cdate': instance.cdate,
'rid': instance.rid,
'room_demand': instance.room_demand,
'ddate_solt': instance.ddate_solt,
'ddate_long': instance.ddate_long,
'cancel_name': instance.cancelName,
'status': instance.status,
'room_info': instance.room_info,
};
... ...
... ... @@ -18,6 +18,7 @@ class Table {
String enable; //0禁用 1启用
String spell; //1拼桌
String rname; //关联区域名称
dynamic isExitsClass; //表示这个桌子已经关联到包间分类了 null是没有
String max; //最多可做人数
String low; //最低消费
String sign; //标签 桌位状态 0:待确认,1:已定座,2:确认到店,3:用餐完成,4:取消预订,5:安排包间,6拒绝订单
... ... @@ -103,6 +104,6 @@ class Table {
@override
String toString() {
return 'Table{id: $id,isPhoto:$isPhoto rid: $rid, tid: $tid, name: $name, table_pnum: $table_pnum, most_pnum: $most_pnum, order_o: $order_o, status: $status, tablestatus: $tablestatus, enable: $enable, spell: $spell, rname: $rname, max: $max, low: $low}';
return 'Table{id: $id,isPhoto:$isPhoto rid: $rid, tid: $tid, name: $name, table_pnum: $table_pnum, most_pnum: $most_pnum, order_o: $order_o, status: $status, tablestatus: $tablestatus, enable: $enable, spell: $spell, rname: $rname, isExitsClass:$isExitsClass,max: $max, low: $low}';
}
}
... ...
... ... @@ -21,6 +21,7 @@ Table _$TableFromJson(Map<String, dynamic> json) {
..enable = json['enable'] as String
..spell = json['spell'] as String
..rname = json['rname'] as String
..isExitsClass = json['IsExitsClass'] as dynamic
..max = json['max'] as String
..low = json['low'] as String
..sign = json['sign'] as String
... ... @@ -43,6 +44,7 @@ Map<String, dynamic> _$TableToJson(Table instance) => <String, dynamic>{
'enable': instance.enable,
'spell': instance.spell,
'rname': instance.rname,
'isExitsClass': instance.isExitsClass,
'max': instance.max,
'low': instance.low,
'sign': instance.sign,
... ...
... ... @@ -236,5 +236,9 @@ class HttpUrl {
"?service=App.Tables.BatchSetTable"; // 批量修改桌位信息
static const String push_msg_set_message_status =
"?service=App.PushMsg.SetMessage"; //设置消息状态
static const String new_get_untreated_msg_list =
"?service=Android.Reserve.NewGetUntreatedMsgList"; //根据不同得消息类型获取对应得消息列表
static const String new_get_message_list =
"?service=Android.Reserve.NewGetMessageList"; //根据不同得消息类型获取对应得消息列表
}
... ...
... ... @@ -6,6 +6,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app_update/azhon_app_update.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/models/pull_marketing_by_uid_model.dart';
import 'package:one_key/pages/message/message_page.dart';
... ... @@ -497,18 +498,20 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
// 消息类型ID 1/2/10 提前点餐/新订单(预定)消息/在线预订
//获取未处理在线预订消息
getUntreatedMessage(String typeId, VoidCallback callback) {
getUntreatedMessage(VoidCallback callback) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": typeId,
"status": "0", //未处理
// "type_id": "10", //1提前点餐2内部预订10在线预订
// "status": '0',
"offset": "0",
"limit": "100",
};
MessageDialogModel messageModel =
Provider.of<MessageDialogModel>(context, listen: false);
messageModel.getUntreatedMsg(context, params, callback);
await messageModel.getUntreatedMsg(context, params, callback);
}
@override
... ... @@ -544,25 +547,36 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
MessageDialogModel messageModel =
Provider.of<MessageDialogModel>(context, listen: false);
messageModel.messages = [];
getUntreatedMessage('1', () {
getUntreatedMessage('10', () {
if (messageModel.messages.isNotEmpty) {
//底部弹出布局
if (!messageModel.showMessageDialog) {
DialogUtil.showMessageDialog(context);
} else {
messageModel.notifyListeners();
}
//播放声音
if (messageModel.messages.length > 1) {
messageModel.play("-1");
} else {
for (Message message in messageModel.messages) {
messageModel.play(message.message_type);
getUntreatedMessage(() {
if (messageModel.messages.isNotEmpty) {
//底部弹出布局
if (!messageModel.showMessageDialog) {
messageModel.messages.removeWhere((message) {
if (messageModel.messagesCancelOnlyOneShow.contains(message.id)) {
return true;
}
return false;
});
DialogUtil.showMessageDialog(context);
for (NewUnmessage item in messageModel.messages) {
if (item.message_type == '11') {
messageModel.messagesCancelOnlyOneShow.add(item.id);
}
}
} else {
messageModel.notifyListeners();
}
//播放声音
if (messageModel.messages.length > 1) {
messageModel.play("-1");
} else {
for (NewUnmessage message in messageModel.messages) {
messageModel.play(message.message_type);
}
}
});
}
});
}
... ... @@ -570,10 +584,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
bool _getUnMsgNumUI() {
MessageModel messageModel =
Provider.of<MessageModel>(context, listen: true);
if (messageModel.onlineTotal +
messageModel.orderTotal +
messageModel.checkTotal >
0) {
if (messageModel.allUnNum > 0) {
return true;
}
return false;
... ... @@ -582,10 +593,17 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
//三种分类各自的未读消息数目
_getUnMsgNum() async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {"sid": userModel.user.sellerid};
MessageModel messageModel =
Provider.of<MessageModel>(context, listen: false);
await messageModel.getUnMsgNum(context, params);
Map<String, String> params = {
"sid": userModel.user.sellerid,
// "type_id": "10", //1提前点餐2内部预订10在线预订
// "status": '0',
"offset": '0',
"limit": "20",
};
await messageModel.getNewGetUntreatedMsgList(context, params,
showLoading: false);
setState(() {});
}
... ...
... ... @@ -2,6 +2,7 @@ import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/pages/detail/handle_online_page.dart';
import 'package:one_key/pages/home/home_page.dart';
import 'package:one_key/provider/message_dialog_model.dart';
... ... @@ -18,7 +19,7 @@ import 'package:provider/provider.dart';
import '../../app.dart';
class MessageDialogItemF extends StatelessWidget {
final Message message;
final NewUnmessage message;
final bool isTreated;
MessageDialogItemF(this.message, {this.isTreated = false});
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
... ... @@ -13,7 +14,7 @@ import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
class MessageItemF extends StatelessWidget {
final Message message;
final NewUnmessage message;
final bool isTreated;
MessageItemF(this.message, {this.isTreated = false});
... ... @@ -317,20 +318,23 @@ class MessageItemF extends StatelessWidget {
fontSize: ScreenUtil().setSp(24)),
),
VEmptyView(8),
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(16),
vertical: ScreenUtil().setWidth(6)),
decoration: BoxDecoration(
color: bgcolor,
borderRadius: BorderRadius.circular(8)),
child: Text(
'${message.message_type == '1' ? message.room_info : message.room_demand}',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20)),
),
)
message.room_demand == '' ||
message.room_demand == null
? SizedBox()
: Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(16),
vertical: ScreenUtil().setWidth(6)),
decoration: BoxDecoration(
color: bgcolor,
borderRadius: BorderRadius.circular(8)),
child: Text(
'${message.room_demand}',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20)),
),
)
],
))
: SizedBox(),
... ... @@ -346,7 +350,8 @@ class MessageItemF extends StatelessWidget {
),
VEmptyView(8),
message.message_type == "1"
? message.room_info == ''
? message.room_info == '' ||
message.room_info == null
? SizedBox()
: Container(
padding: EdgeInsets.symmetric(
... ... @@ -358,13 +363,14 @@ class MessageItemF extends StatelessWidget {
borderRadius:
BorderRadius.circular(8)),
child: Text(
'${message.room_info == ''}',
'${message.room_info}',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20)),
),
)
: message.room_demand == ''
: message.room_demand == '' ||
message.room_demand == null
? SizedBox()
: Container(
padding: EdgeInsets.symmetric(
... ... @@ -385,7 +391,7 @@ class MessageItemF extends StatelessWidget {
message.message_type == "1"
? SizedBox()
: Text(
true ? '取消操作人:顾客在线取消' : '取消操作人:方硕',
'取消操作人:${message.cancelName}',
style: TextStyle(
color: isTreated
? MyColours.color_BFC4D4
... ...
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
import 'package:one_key/utils/event_bus.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_easyrefresh/easy_refresh.dart';
// import 'package:flutter_screenutil/flutter_screenutil.dart';
// import 'package:one_key/constant/state.dart';
// import 'package:one_key/pages/message/messsage_item.dart';
// import 'package:one_key/provider/message_dialog_model.dart';
// import 'package:one_key/provider/message_model.dart';
// import 'package:one_key/provider/user_model.dart';
// import 'package:one_key/res/colors.dart';
// import 'package:one_key/widgets/page_error.dart';
// import 'package:one_key/widgets/page_exception.dart';
// import 'package:provider/provider.dart';
// import 'package:one_key/utils/event_bus.dart';
/**
* 在线买单消息
*/
class MessageOnlineCheckPage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new MessageOnlineCheckPageState();
}
}
// /**
// * 在线买单消息
// */
// class MessageOnlineCheckPage extends StatefulWidget {
// @override
// State<StatefulWidget> createState() {
// // TODO: implement createState
// return new MessageOnlineCheckPageState();
// }
// }
class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
EasyRefreshController _controller;
// class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
// EasyRefreshController _controller;
Color selectedColor = MyColours.color_199095;
Color unSelectedColor = MyColours.color_999999;
// Color selectedColor = MyColours.color_199095;
// Color unSelectedColor = MyColours.color_999999;
int selectedIndex = 0;
// int selectedIndex = 0;
int offset = 0;
MessageModel messageModel;
UserModel userModel;
MessageDialogModel messageDialogModel;
// int offset = 0;
// MessageModel messageModel;
// UserModel userModel;
// MessageDialogModel messageDialogModel;
@override
void initState() {
// TODO: implement initState
super.initState();
//移除在线买单消息
// bus.on("remove_untreated_message_check", (args) {
// messageModel.removeUntreatedMessageByMid(args.toString());
// messageDialogModel.removeMessage(args.toString());
// });
_controller = EasyRefreshController();
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessage();
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
}
// @override
// void initState() {
// // TODO: implement initState
// super.initState();
// //移除在线买单消息
// // bus.on("remove_untreated_message_check", (args) {
// // messageModel.removeUntreatedMessageByMid(args.toString());
// // messageDialogModel.removeMessage(args.toString());
// // });
// _controller = EasyRefreshController();
// WidgetsBinding.instance.addPostFrameCallback((_) {
// // getMessage();
// // setState(() {
// // messageModel.pageState = PageState.Loading;
// // });
// messageModel.pageState = PageState.Loading;
// messageModel.notifyListeners();
// });
// }
@override
void dispose() {
// TODO: implement dispose
super.dispose();
// bus.off("remove_untreated_message_check");
}
// @override
// void dispose() {
// // TODO: implement dispose
// super.dispose();
// // bus.off("remove_untreated_message_check");
// }
//三种分类各自的未读消息数目
_getUnMsgNum() async {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
}
// //三种分类各自的未读消息数目
// _getUnMsgNum() async {
// Map<String, String> params = {"sid": userModel.user.sellerid};
// await messageModel.getUnMsgNum(context, params);
// }
//获取在线预订消息status 0未处理 1已处理
getMessage({bool showLoading = true}) async {
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": "12", //1提前点餐 2内部预订 10在线预订 12在线买单
"status": selectedIndex.toString(),
"offset": offset.toString(),
"limit": "20",
};
// //获取在线预订消息status 0未处理 1已处理
// getMessage({bool showLoading = true}) async {
// Map<String, String> params = {
// "sid": userModel.user.sellerid,
// "type_id": "12", //1提前点餐 2内部预订 10在线预订 12在线买单
// "status": selectedIndex.toString(),
// "offset": offset.toString(),
// "limit": "20",
// };
await messageModel.getMessages(context, params, showLoading: showLoading);
_getUnMsgNum();
}
// await messageModel.getMessages(context, params, showLoading: showLoading);
// _getUnMsgNum();
// }
@override
Widget build(BuildContext context) {
messageModel = Provider.of<MessageModel>(context, listen: true);
userModel = Provider.of<UserModel>(context, listen: false);
messageDialogModel =
Provider.of<MessageDialogModel>(context, listen: false);
return Container(
color: MyColours.color_f5f5f5,
child: Column(
children: [
Container(
width: double.infinity,
height: ScreenUtil().setWidth(84),
color: MyColours.color_ffffff,
child: Row(
children: [
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 0) return;
setState(() {
selectedIndex = 0;
messageModel.messages = [];
});
getMessage(showLoading: true);
},
child: Center(
child: Text(
"未处理",
style: TextStyle(
color: selectedIndex == 0
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
))),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 1) return;
setState(() {
selectedIndex = 1;
messageModel.messages = [];
});
getMessage(showLoading: true);
},
child: Center(
child: Text(
"已处理",
style: TextStyle(
color: selectedIndex == 1
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
)))
],
),
),
Expanded(
child: Consumer<MessageModel>(
builder: (context, model, _) {
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
offset = 0;
getMessage(showLoading: true);
},
emptyMsg:
"暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线买单消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return EasyRefresh.custom(
controller: _controller,
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return MessageItem(
model.messages[index],
isTreated: selectedIndex == 1,
);
}, childCount: model.messages.length),
)
],
onRefresh: () async {
offset = 0;
getMessage(showLoading: false);
},
onLoad: () async {
offset++;
getMessage(showLoading: false);
},
);
}
},
),
)
],
),
);
}
}
// @override
// Widget build(BuildContext context) {
// messageModel = Provider.of<MessageModel>(context, listen: true);
// userModel = Provider.of<UserModel>(context, listen: false);
// messageDialogModel =
// Provider.of<MessageDialogModel>(context, listen: false);
// return Container(
// color: MyColours.color_f5f5f5,
// child: Column(
// children: [
// Container(
// width: double.infinity,
// height: ScreenUtil().setWidth(84),
// color: MyColours.color_ffffff,
// child: Row(
// children: [
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 0) return;
// setState(() {
// selectedIndex = 0;
// messageModel.messages = [];
// });
// getMessage(showLoading: true);
// },
// child: Center(
// child: Text(
// "未处理",
// style: TextStyle(
// color: selectedIndex == 0
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// ))),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 1) return;
// setState(() {
// selectedIndex = 1;
// messageModel.messages = [];
// });
// getMessage(showLoading: true);
// },
// child: Center(
// child: Text(
// "已处理",
// style: TextStyle(
// color: selectedIndex == 1
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// )))
// ],
// ),
// ),
// Expanded(
// child: Consumer<MessageModel>(
// builder: (context, model, _) {
// if (model.pageState != PageState.Success) {
// return ExceptionPage(
// pageState: model.pageState,
// callback: () {
// offset = 0;
// getMessage(showLoading: true);
// },
// emptyMsg:
// "暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线买单消息哦",
// emptyImg: "empty_search",
// showMsg: "加载中,请稍后...",
// );
// } else {
// return EasyRefresh.custom(
// controller: _controller,
// slivers: [
// SliverList(
// delegate: SliverChildBuilderDelegate(
// (BuildContext context, int index) {
// return MessageItem(
// model.messages[index],
// isTreated: selectedIndex == 1,
// );
// }, childCount: model.messages.length),
// )
// ],
// onRefresh: () async {
// offset = 0;
// getMessage(showLoading: false);
// },
// onLoad: () async {
// offset++;
// getMessage(showLoading: false);
// },
// );
// }
// },
// ),
// )
// ],
// ),
// );
// }
// }
... ...
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
import 'package:one_key/utils/event_bus.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_easyrefresh/easy_refresh.dart';
// import 'package:flutter_screenutil/flutter_screenutil.dart';
// import 'package:one_key/constant/state.dart';
// import 'package:one_key/pages/message/messsage_item.dart';
// import 'package:one_key/provider/message_dialog_model.dart';
// import 'package:one_key/provider/message_model.dart';
// import 'package:one_key/provider/user_model.dart';
// import 'package:one_key/res/colors.dart';
// import 'package:one_key/widgets/page_error.dart';
// import 'package:one_key/widgets/page_exception.dart';
// import 'package:provider/provider.dart';
// import 'package:one_key/utils/event_bus.dart';
/**
* 在线预订消息
*/
class MessageOnlinePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new MessageOnlinePageState();
}
}
// /**
// * 在线预订消息
// */
// class MessageOnlinePage extends StatefulWidget {
// @override
// State<StatefulWidget> createState() {
// // TODO: implement createState
// return new MessageOnlinePageState();
// }
// }
class MessageOnlinePageState extends State<MessageOnlinePage> {
EasyRefreshController _controller;
// class MessageOnlinePageState extends State<MessageOnlinePage> {
// EasyRefreshController _controller;
Color selectedColor = MyColours.color_199095;
Color unSelectedColor = MyColours.color_999999;
// Color selectedColor = MyColours.color_199095;
// Color unSelectedColor = MyColours.color_999999;
int selectedIndex = 0;
// int selectedIndex = 0;
int offset = 0;
MessageModel messageModel;
UserModel userModel;
MessageDialogModel messageDialogModel;
// int offset = 0;
// MessageModel messageModel;
// UserModel userModel;
// MessageDialogModel messageDialogModel;
@override
void initState() {
// TODO: implement initState
super.initState();
// //移除在线预订消息
// bus.on("remove_untreated_message", (args) {
// messageModel.removeUntreatedMessageByMid(args.toString());
// messageDialogModel.removeMessage(args.toString());
// });
_controller = EasyRefreshController();
// messageModel.pageState = PageState.Loading;
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessage();
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
}
// @override
// void initState() {
// // TODO: implement initState
// super.initState();
// // //移除在线预订消息
// // bus.on("remove_untreated_message", (args) {
// // messageModel.removeUntreatedMessageByMid(args.toString());
// // messageDialogModel.removeMessage(args.toString());
// // });
// _controller = EasyRefreshController();
// // messageModel.pageState = PageState.Loading;
// WidgetsBinding.instance.addPostFrameCallback((_) {
// // getMessage();
// // setState(() {
// // messageModel.pageState = PageState.Loading;
// // });
// messageModel.pageState = PageState.Loading;
// messageModel.notifyListeners();
// });
// }
@override
void dispose() {
// TODO: implement dispose
super.dispose();
// bus.off("remove_untreated_message");
}
// @override
// void dispose() {
// // TODO: implement dispose
// super.dispose();
// // bus.off("remove_untreated_message");
// }
//三种分类各自的未读消息数目
_getUnMsgNum() async {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
}
// //三种分类各自的未读消息数目
// _getUnMsgNum() async {
// Map<String, String> params = {"sid": userModel.user.sellerid};
// await messageModel.getUnMsgNum(context, params);
// }
//获取在线预订消息status 0未处理 1已处理
getMessage({bool showLoading = true}) async {
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": "10", //1提前点餐2内部预订10在线预订
"status": selectedIndex.toString(),
"offset": offset.toString(),
"limit": "20",
};
// //获取在线预订消息status 0未处理 1已处理
// getMessage({bool showLoading = true}) async {
// Map<String, String> params = {
// "sid": userModel.user.sellerid,
// "type_id": "10", //1提前点餐2内部预订10在线预订
// "status": selectedIndex.toString(),
// "offset": offset.toString(),
// "limit": "20",
// };
await messageModel.getMessages(context, params, showLoading: showLoading);
_getUnMsgNum();
}
// await messageModel.getMessages(context, params, showLoading: showLoading);
// _getUnMsgNum();
// }
@override
Widget build(BuildContext context) {
messageModel = Provider.of<MessageModel>(context, listen: true);
userModel = Provider.of<UserModel>(context, listen: false);
messageDialogModel =
Provider.of<MessageDialogModel>(context, listen: false);
return Container(
color: MyColours.color_f5f5f5,
child: Column(
children: [
Container(
width: double.infinity,
height: ScreenUtil().setWidth(84),
color: MyColours.color_ffffff,
child: Row(
children: [
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 0) return;
setState(() {
selectedIndex = 0;
messageModel.messages = [];
});
getMessage(showLoading: true);
},
child: Center(
child: Text(
"未处理",
style: TextStyle(
color: selectedIndex == 0
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
))),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 1) return;
setState(() {
selectedIndex = 1;
messageModel.messages = [];
});
getMessage(showLoading: true);
},
child: Center(
child: Text(
"已处理",
style: TextStyle(
color: selectedIndex == 1
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
)))
],
),
),
Expanded(
child: Consumer<MessageModel>(
builder: (context, model, _) {
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
offset = 0;
getMessage(showLoading: true);
},
emptyMsg:
"暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线预订消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return EasyRefresh.custom(
controller: _controller,
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return MessageItem(
model.messages[index],
isTreated: selectedIndex == 1,
);
}, childCount: model.messages.length),
)
],
onRefresh: () async {
offset = 0;
getMessage(showLoading: false);
},
onLoad: () async {
offset++;
getMessage(showLoading: false);
},
);
}
},
),
)
],
),
);
}
}
// @override
// Widget build(BuildContext context) {
// messageModel = Provider.of<MessageModel>(context, listen: true);
// userModel = Provider.of<UserModel>(context, listen: false);
// messageDialogModel =
// Provider.of<MessageDialogModel>(context, listen: false);
// return Container(
// color: MyColours.color_f5f5f5,
// child: Column(
// children: [
// Container(
// width: double.infinity,
// height: ScreenUtil().setWidth(84),
// color: MyColours.color_ffffff,
// child: Row(
// children: [
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 0) return;
// setState(() {
// selectedIndex = 0;
// messageModel.messages = [];
// });
// getMessage(showLoading: true);
// },
// child: Center(
// child: Text(
// "未处理",
// style: TextStyle(
// color: selectedIndex == 0
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// ))),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 1) return;
// setState(() {
// selectedIndex = 1;
// messageModel.messages = [];
// });
// getMessage(showLoading: true);
// },
// child: Center(
// child: Text(
// "已处理",
// style: TextStyle(
// color: selectedIndex == 1
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// )))
// ],
// ),
// ),
// Expanded(
// child: Consumer<MessageModel>(
// builder: (context, model, _) {
// if (model.pageState != PageState.Success) {
// return ExceptionPage(
// pageState: model.pageState,
// callback: () {
// offset = 0;
// getMessage(showLoading: true);
// },
// emptyMsg:
// "暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线预订消息哦",
// emptyImg: "empty_search",
// showMsg: "加载中,请稍后...",
// );
// } else {
// return EasyRefresh.custom(
// controller: _controller,
// slivers: [
// SliverList(
// delegate: SliverChildBuilderDelegate(
// (BuildContext context, int index) {
// return MessageItem(
// model.messages[index],
// isTreated: selectedIndex == 1,
// );
// }, childCount: model.messages.length),
// )
// ],
// onRefresh: () async {
// offset = 0;
// getMessage(showLoading: false);
// },
// onLoad: () async {
// offset++;
// getMessage(showLoading: false);
// },
// );
// }
// },
// ),
// )
// ],
// ),
// );
// }
// }
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
// import 'package:common_utils/common_utils.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_easyrefresh/easy_refresh.dart';
// import 'package:flutter_screenutil/screenutil.dart';
// import 'package:one_key/constant/state.dart';
// import 'package:one_key/pages/message/messsage_item.dart';
// import 'package:one_key/provider/message_dialog_model.dart';
// import 'package:one_key/provider/message_model.dart';
// import 'package:one_key/provider/user_model.dart';
// import 'package:one_key/res/colors.dart';
// import 'package:one_key/utils/event_bus.dart';
// import 'package:one_key/widgets/page_error.dart';
// import 'package:one_key/widgets/page_exception.dart';
// import 'package:provider/provider.dart';
/**
* 提前点餐消息
*/
class MessageOrderPage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new MessageOrderPageState();
}
}
// /**
// * 提前点餐消息
// */
// class MessageOrderPage extends StatefulWidget {
// @override
// State<StatefulWidget> createState() {
// // TODO: implement createState
// return new MessageOrderPageState();
// }
// }
class MessageOrderPageState extends State<MessageOrderPage> {
EasyRefreshController _controller;
// class MessageOrderPageState extends State<MessageOrderPage> {
// EasyRefreshController _controller;
Color selectedColor = MyColours.color_199095;
Color unSelectedColor = MyColours.color_999999;
// Color selectedColor = MyColours.color_199095;
// Color unSelectedColor = MyColours.color_999999;
int selectedIndex = 0;
// int selectedIndex = 0;
int offset = 0; //当前页数
// int offset = 0; //当前页数
MessageModel messageModel;
UserModel userModel;
MessageDialogModel messageDialogModel;
// MessageModel messageModel;
// UserModel userModel;
// MessageDialogModel messageDialogModel;
@override
void initState() {
// TODO: implement initState
super.initState();
_controller = EasyRefreshController();
// messageModel.pageState = PageState.Loading;
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessages();
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
//从列表数据本地移除提前点餐消息
// bus.on("remove_untreated_message_order", (args) {
// messageModel.removeUntreatedMessageByMid(args.toString());
// messageDialogModel.removeMessage(args.toString());
// });
}
// @override
// void initState() {
// // TODO: implement initState
// super.initState();
// _controller = EasyRefreshController();
// // messageModel.pageState = PageState.Loading;
// WidgetsBinding.instance.addPostFrameCallback((_) {
// // getMessages();
// // setState(() {
// // messageModel.pageState = PageState.Loading;
// // });
// messageModel.pageState = PageState.Loading;
// messageModel.notifyListeners();
// });
// //从列表数据本地移除提前点餐消息
// // bus.on("remove_untreated_message_order", (args) {
// // messageModel.removeUntreatedMessageByMid(args.toString());
// // messageDialogModel.removeMessage(args.toString());
// // });
// }
@override
void dispose() {
super.dispose();
// bus.off("remove_untreated_message_order");
}
// @override
// void dispose() {
// super.dispose();
// // bus.off("remove_untreated_message_order");
// }
//三种分类各自的未读消息数目
_getUnMsgNum() async {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
}
// //三种分类各自的未读消息数目
// _getUnMsgNum() async {
// Map<String, String> params = {"sid": userModel.user.sellerid};
// await messageModel.getUnMsgNum(context, params);
// }
//获取消息
getMessages({bool showLoading = true}) async {
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": "1", //1提前点餐2内部预订10在线预订
"status": selectedIndex.toString(),
"offset": offset.toString(),
"limit": "20",
};
await messageModel.getMessages(context, params, showLoading: showLoading);
_getUnMsgNum();
}
// //获取消息
// getMessages({bool showLoading = true}) async {
// Map<String, String> params = {
// "sid": userModel.user.sellerid,
// "type_id": "1", //1提前点餐2内部预订10在线预订
// "status": selectedIndex.toString(),
// "offset": offset.toString(),
// "limit": "20",
// };
// await messageModel.getMessages(context, params, showLoading: showLoading);
// _getUnMsgNum();
// }
@override
Widget build(BuildContext context) {
// TODO: implement build
messageModel = Provider.of<MessageModel>(context, listen: true);
userModel = Provider.of<UserModel>(context, listen: false);
messageDialogModel =
Provider.of<MessageDialogModel>(context, listen: false);
return Container(
color: MyColours.color_f5f5f5,
child: Column(
children: [
Container(
width: double.infinity,
height: ScreenUtil().setWidth(84),
color: MyColours.color_ffffff,
child: Row(
children: [
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 0) return;
setState(() {
selectedIndex = 0;
messageModel.messages = [];
});
getMessages();
},
child: Center(
child: Text(
"未处理",
style: TextStyle(
color: selectedIndex == 0
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
))),
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (selectedIndex == 1) return;
setState(() {
selectedIndex = 1;
messageModel.messages = [];
});
getMessages();
},
child: Center(
child: Text(
"已处理",
style: TextStyle(
color: selectedIndex == 1
? selectedColor
: unSelectedColor,
fontSize: ScreenUtil().setSp(30)),
),
)))
],
),
),
Expanded(
child: Consumer<MessageModel>(
builder: (context, model, _) {
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
offset = 0;
getMessages();
},
emptyMsg:
"暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的提前点餐消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return EasyRefresh.custom(
controller: _controller,
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return MessageItem(model.messages[index],
isTreated: selectedIndex == 1);
}, childCount: model.messages.length),
)
],
onRefresh: () async {
offset = 0;
getMessages(showLoading: false);
},
onLoad: () async {
offset++;
getMessages(showLoading: false);
},
);
}
},
),
)
],
),
);
}
}
// @override
// Widget build(BuildContext context) {
// // TODO: implement build
// messageModel = Provider.of<MessageModel>(context, listen: true);
// userModel = Provider.of<UserModel>(context, listen: false);
// messageDialogModel =
// Provider.of<MessageDialogModel>(context, listen: false);
// return Container(
// color: MyColours.color_f5f5f5,
// child: Column(
// children: [
// Container(
// width: double.infinity,
// height: ScreenUtil().setWidth(84),
// color: MyColours.color_ffffff,
// child: Row(
// children: [
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 0) return;
// setState(() {
// selectedIndex = 0;
// messageModel.messages = [];
// });
// getMessages();
// },
// child: Center(
// child: Text(
// "未处理",
// style: TextStyle(
// color: selectedIndex == 0
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// ))),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (selectedIndex == 1) return;
// setState(() {
// selectedIndex = 1;
// messageModel.messages = [];
// });
// getMessages();
// },
// child: Center(
// child: Text(
// "已处理",
// style: TextStyle(
// color: selectedIndex == 1
// ? selectedColor
// : unSelectedColor,
// fontSize: ScreenUtil().setSp(30)),
// ),
// )))
// ],
// ),
// ),
// Expanded(
// child: Consumer<MessageModel>(
// builder: (context, model, _) {
// if (model.pageState != PageState.Success) {
// return ExceptionPage(
// pageState: model.pageState,
// callback: () {
// offset = 0;
// getMessages();
// },
// emptyMsg:
// "暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的提前点餐消息哦",
// emptyImg: "empty_search",
// showMsg: "加载中,请稍后...",
// );
// } else {
// return EasyRefresh.custom(
// controller: _controller,
// slivers: [
// SliverList(
// delegate: SliverChildBuilderDelegate(
// (BuildContext context, int index) {
// return MessageItem(model.messages[index],
// isTreated: selectedIndex == 1);
// }, childCount: model.messages.length),
// )
// ],
// onRefresh: () async {
// offset = 0;
// getMessages(showLoading: false);
// },
// onLoad: () async {
// offset++;
// getMessages(showLoading: false);
// },
// );
// }
// },
// ),
// )
// ],
// ),
// );
// }
// }
... ...
... ... @@ -68,8 +68,16 @@ class MessagePageState extends State<MessagePage>
//三种分类各自的未读消息数目
_getUnMsgNum() async {
if (mounted) {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
Map<String, String> params = {
"sid": userModel.user.sellerid,
// "type_id": "10", //1提前点餐2内部预订10在线预订
// "status": '0',
"offset": '0',
"limit": "20",
};
await messageModel.getNewGetUntreatedMsgList(context, params,
showLoading: false);
}
}
... ... @@ -176,26 +184,24 @@ class MessagePageState extends State<MessagePage>
? ScreenUtil().setSp(32)
: ScreenUtil().setSp(24),
)),
Offstage(
offstage: false,
child: Container(
width: ScreenUtil().setWidth(36),
height: ScreenUtil().setWidth(36),
margin: EdgeInsets.only(
left: ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(36)),
color: true
? MyColours.color_E34D59
: MyColours.color_ffffff),
alignment: Alignment.center,
child: Text("5",
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(28),
)),
)),
messageModel.allUnNum > 0
? Container(
width: ScreenUtil().setWidth(36),
height: ScreenUtil().setWidth(36),
margin: EdgeInsets.only(
left: ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(36)),
color: MyColours.color_E34D59),
alignment: Alignment.center,
child: Text("${messageModel.allUnNum}",
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(28),
)),
)
: SizedBox(),
],
),
),
... ...
... ... @@ -97,11 +97,13 @@ class MessageTreatedPageState extends State<MessageTreatedPage> {
getMessage(String typeid, {bool showLoading = true}) async {
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": typeid, //1提前点餐2内部预订10在线预订店/内消息传15
"status": '1',
"offset": offset.toString(),
"limit": "20",
};
if (typeid != '') {
params['type_id'] = typeid; //1提前点餐/2内部预订/10在线预订/店内消息传15
}
await messageModel.getMessages(context, params, showLoading: showLoading);
_getUnMsgNum();
... ... @@ -145,6 +147,7 @@ class MessageTreatedPageState extends State<MessageTreatedPage> {
// 1提前点餐/2内部预订/10在线预订/15店内消息传/12在线买单
if (index == 0) {
typeid = '';
} else if (index == 1) {
//店内消息
typeid = '15';
... ...
... ... @@ -3,6 +3,7 @@ import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/pages/message/message_item_f.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
... ... @@ -66,30 +67,30 @@ class MessageUntreatedPageState extends State<MessageUntreatedPage> {
// bus.off("remove_untreated_message");
}
//三种分类各自的未读消息数目
_getUnMsgNum() async {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
}
// //三种分类各自的未读消息数目
// _getUnMsgNum() async {
// Map<String, String> params = {"sid": userModel.user.sellerid};
// await messageModel.getUnMsgNum(context, params);
// }
//获取在线预订消息status 0未处理 1已处理
getMessage({bool showLoading = true}) async {
Map<String, String> params = {
"sid": userModel.user.sellerid,
"type_id": "10", //1提前点餐2内部预订10在线预订
"status": '0',
// "type_id": "10", //1提前点餐2内部预订10在线预订
// "status": '0',
"offset": offset.toString(),
"limit": "20",
"limit": "1000",
};
await messageModel.getMessages(context, params, showLoading: showLoading);
await messageModel.getNewGetUntreatedMsgList(context, params, showLoading: showLoading);
_cancelMessage();
_getUnMsgNum();
// _getUnMsgNum();
}
_cancelMessage() async {
String messageids = ''; //超过24小时
for (Message item in messageModel.messages) {
for (NewUnmessage item in messageModel.messages) {
if (item.message_type == '11') {
DateTime cdate = DateTime.fromMillisecondsSinceEpoch(
int.parse(item.cdate.toString()) * 1000);
... ... @@ -145,7 +146,7 @@ class MessageUntreatedPageState extends State<MessageUntreatedPage> {
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
Message message = model.messages[index];
NewUnmessage message = model.messages[index];
if (message.message_type == "10") {
// titleText = "在线预订";
... ...
... ... @@ -43,6 +43,7 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
StoreDetailModel detailModel;
int selectIndex = 0;
String selectNum = '0';
String tableListStr = '';
@override
void initState() {
... ... @@ -70,8 +71,9 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
sunModel.status == '1' ? swichState = true : swichState = false;
tableListSel = sunModel.tableid != null ? sunModel.tableid : '';
selectNum = sunModel.surplus;
selectNum = sunModel.surplus ?? '0';
List<String> numList = [];
tableListStr = tableListSel;
for (int i = 0; i < tableListSel.split(',').length; i++) {
numList.add('$i');
}
... ... @@ -102,7 +104,10 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
if (widget.tableClassId != 'null') {
params['id'] = widget.tableClassId;
}
if (tableListSel.split(',').length > 0) {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
if ((userModel.user.role_name == '管理员' ||
userModel.user.role_name == '店长') &&
tableListSel.split(',').length > 0) {
params['surplus'] = selectNum;
}
... ... @@ -252,6 +257,7 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
@override
Widget build(BuildContext context) {
detailModel = Provider.of<StoreDetailModel>(context, listen: true);
UserModel userModel = Provider.of<UserModel>(context, listen: false);
return Material(
child: InkWell(
onTap: () {
... ... @@ -424,6 +430,7 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
canChoose: true,
fromPage: 'room_manage',
object: tableListSel,
oldobject:tableListStr
);
if (temp != null) {
print(temp['tid']);
... ... @@ -444,81 +451,96 @@ class _RoomTypeCreatePageState extends State<RoomTypeCreatePage> {
right: ScreenUtil().setWidth(40)),
),
VEmptyView(10),
tableListSel.split(',').length == 0
? SizedBox()
: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(40),
),
child: _select('核实通知', '当剩余 $selectNum 间时',
textColor: MyColours.color_000000,
ontap: () async {
List<String> numList = [];
for (int i = 0;
i < tableListSel.split(',').length;
i++) {
numList.add('$i');
}
DialogUtil.showSelectCusmanDialog(
context, numList, (value) async {
if (value != null) {
selectIndex = value.first;
selectNum = numList[value.first];
setState(() {});
userModel.user.role_name == '管理员' ||
userModel.user.role_name == '店长'
? tableListSel.split(',').length == 0
? SizedBox()
: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(40),
),
child: _select(
'核实通知', '当剩余 $selectNum 间时',
textColor: MyColours.color_000000,
ontap: () async {
List<String> numList = [];
for (int i = 0;
i <
tableListSel
.split(',')
.length;
i++) {
numList.add('$i');
}
DialogUtil.showSelectCusmanDialog(
context, numList,
(value) async {
if (value != null) {
selectIndex = value.first;
selectNum = numList[value.first];
setState(() {});
// bool sucess =
// await detailModel.upReserveInfo(
// context, widget.rid,
// actualPum:
// detailModel.selectNum);
// bool sucess =
// await detailModel.upReserveInfo(
// context, widget.rid,
// actualPum:
// detailModel.selectNum);
// if (sucess) {
// EventBus().emit(
// "refresh_tablemanager"); //刷新桌位
// await _getReserveDetail(
// showCicle: false);
// }
}
},
selecteds: selectIndex == null
? []
: [selectIndex])
.then((value) {});
})),
tableListSel.split(',').length == 0
? SizedBox()
: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(38)),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Image.asset(
Utils.getImgPath('error-circle'),
width: ScreenUtil().setWidth(40)),
HEmptyView(20),
Flexible(
child: Transform.translate(
offset: Offset(
0,
0.3 /
2), //1为 StrutStyle 的 leading的值
child: Text(
'给员工发送核实通知,核实顾客是否如约到店,如不能,及时释放包间',
style: TextStyle(
color: MyColours.color_438E93,
fontSize: ScreenUtil().setSp(24),
),
strutStyle: StrutStyle(
forceStrutHeight: true,
height: 1,
leading: 0.3),
),
// if (sucess) {
// EventBus().emit(
// "refresh_tablemanager"); //刷新桌位
// await _getReserveDetail(
// showCicle: false);
// }
}
},
selecteds: selectIndex == null
? []
: [selectIndex])
.then((value) {});
}))
: SizedBox(),
userModel.user.role_name == '管理员' ||
userModel.user.role_name == '店长'
? tableListSel.split(',').length == 0
? SizedBox()
: Padding(
padding: EdgeInsets.symmetric(
horizontal:
ScreenUtil().setWidth(38)),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Image.asset(
Utils.getImgPath(
'error-circle'),
width:
ScreenUtil().setWidth(40)),
HEmptyView(20),
Flexible(
child: Transform.translate(
offset: Offset(
0,
0.3 /
2), //1为 StrutStyle 的 leading的值
child: Text(
'给员工发送核实通知,核实顾客是否如约到店,如不能,及时释放包间',
style: TextStyle(
color: MyColours.color_438E93,
fontSize:
ScreenUtil().setSp(24),
),
strutStyle: StrutStyle(
forceStrutHeight: true,
height: 1,
leading: 0.3),
),
))
],
))
],
))
: SizedBox()
],
)),
),
... ...
... ... @@ -34,8 +34,14 @@ class RoomTypeSelectTablePage extends StatefulWidget {
final String fromPage;
final String tid;
final List<String> oldobjectList;
RoomTypeSelectTablePage(this.rid, this.dateTime, this.ddate_slot,
{this.canChoose = false, this.tableList, this.fromPage, this.tid});
{this.canChoose = false,
this.tableList,
this.fromPage,
this.tid,
this.oldobjectList});
@override
State<StatefulWidget> createState() {
... ... @@ -61,6 +67,8 @@ class RoomTypeSelectTablePageState extends State<RoomTypeSelectTablePage> {
int selectNum = 0;
List<t.Table> selectTablesTemp = []; //选择的桌位 包间管理桌子
@override
void initState() {
// TODO: implement initState
... ... @@ -88,6 +96,7 @@ class RoomTypeSelectTablePageState extends State<RoomTypeSelectTablePage> {
if (item.id == tid) {
item.selected = true;
selectNum++;
// if (!tableList.contains(item)) {
// tableList.add(item);
// }
... ... @@ -295,31 +304,33 @@ class RoomTypeSelectTablePageState extends State<RoomTypeSelectTablePage> {
childAspectRatio: 8 / 9),
itemBuilder: (context, index) {
return TableItem(
areaTableMap[currentArea][index],
need: false,
onSelected: (t.Table table) {
if ((table as t.Table).selected) {
selectTables.add(table);
areaTableMap[currentArea][index],
need: false,
onSelected: (t.Table table) {
if ((table as t.Table).selected) {
selectTables.add(table);
selectNum++;
selectNum++;
widget.tableList
.add(tableToTableList(table).id);
} else {
widget.tableList
.removeWhere((t) => t == table.id);
widget.tableList
.add(tableToTableList(table).id);
} else {
widget.tableList.removeWhere(
(t) => t == table.id);
selectNum--;
selectNum--;
selectTables.removeWhere(
(t) => t.id == table.id);
}
setState(() {});
},
canSelected: true,
fromPage: widget.fromPage,
tableMap: tableMap,
rid: widget.rid);
selectTables.removeWhere(
(t) => t.id == table.id);
}
setState(() {});
},
canSelected: true,
fromPage: widget.fromPage,
tableMap: tableMap,
rid: widget.rid,
oldOjectList: widget.oldobjectList,
);
},
itemCount: currentArea == null
? 0
... ...
... ... @@ -365,7 +365,7 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> {
Offstage(
offstage: arrowStatus,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
tableNameSunList2.length > 0
? Padding(
... ... @@ -1026,128 +1026,153 @@ class _OnlineCheckDetailPageState extends State<OnlineCheckDetailPage> {
),
),
VEmptyView(20),
Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
// borderRadius:
// BorderRadius.circular(10)
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
_onlineCheckEditProvider
.orderInfoSunModel.billList.length >
0
? Container(
height: ScreenUtil().setWidth(53 * 2),
width: double.infinity,
decoration: BoxDecoration(
color: MyColours.color_ffffff,
// borderRadius:
// BorderRadius.only(
// topLeft:
// Radius.circular(
// 10),
// topRight:
// Radius.circular(
// 10)),
),
child: Padding(
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(32),
ScreenUtil().setWidth(24),
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(24)),
child: Text(
'上传图片',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_000000,
fontWeight: FontWeight.bold),
_onlineCheckEditProvider.orderInfoSunModel != null &&
_onlineCheckEditProvider
.orderInfoSunModel?.billList.length >
0
? Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
// borderRadius:
// BorderRadius.circular(10)
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: ScreenUtil().setWidth(53 * 2),
width: double.infinity,
decoration: BoxDecoration(
color: MyColours.color_ffffff,
// borderRadius:
// BorderRadius.only(
// topLeft:
// Radius.circular(
// 10),
// topRight:
// Radius.circular(
// 10)),
),
))
: SizedBox(),
_onlineCheckEditProvider.orderInfoSunModel != null
? Padding(
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(32),
ScreenUtil().setWidth(0),
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(24)),
child: Consumer<UploadImageProvider>(
builder: (context, model, _) {
List<String> temp = [];
for (int i = 0;
i <
_onlineCheckEditProvider
child: Padding(
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(32),
ScreenUtil().setWidth(24),
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(24)),
child: Text(
'上传图片',
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_000000,
fontWeight: FontWeight.bold),
),
)),
_onlineCheckEditProvider.orderInfoSunModel !=
null
? Padding(
padding: EdgeInsets.fromLTRB(
ScreenUtil().setWidth(32),
ScreenUtil().setWidth(0),
ScreenUtil().setWidth(20),
ScreenUtil().setWidth(24)),
child: Consumer<UploadImageProvider>(
builder: (context, model, _) {
List<String> temp = [];
for (int i = 0;
i <
_onlineCheckEditProvider
.orderInfoSunModel
.billList
.length;
i++) {
temp.add(_onlineCheckEditProvider
.orderInfoSunModel
.billList
.length;
i++) {
temp.add(_onlineCheckEditProvider
.orderInfoSunModel.billList[i]);
}
.billList[i]);
}
return temp.length > 0
? GridView.builder(
// controller: widget.scrollController,
// padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
shrinkWrap: true,
itemCount: temp.length,
return temp.length > 0
? GridView.builder(
// controller: widget.scrollController,
// padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
shrinkWrap: true,
itemCount: temp.length,
//SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
//横轴元素个数
crossAxisCount: 3,
//纵轴间距
mainAxisSpacing:
ScreenUtil()
.setWidth(40),
//横轴间距
crossAxisSpacing:
ScreenUtil()
.setWidth(36),
//子组件宽高长度比例
childAspectRatio: 1.0),
itemBuilder:
(BuildContext context,
int index) {
return InkWell(
onTap: () {
_showPhotoView(
context,
0,
temp,
);
},
child: CachedNetworkImage(
imageUrl: temp[index],
fit: BoxFit.cover,
width: ScreenUtil()
.setWidth(80 * 2),
height: ScreenUtil()
.setWidth(80 * 2),
));
})
: SizedBox();
}))
: SizedBox(),
VEmptyView(36),
_invoiceInfoWidget(),
VEmptyView(36),
// Offstage(
// offstage: _onlineCheckEditProvider.orderInfoSunModel !=
// null
// ? _onlineCheckEditProvider.orderInfoSunModel.status ==
// '2'
// : true,
// child: _orderInfoWidget(),
// )
],
),
)
//SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
//横轴元素个数
crossAxisCount: 3,
//纵轴间距
mainAxisSpacing:
ScreenUtil()
.setWidth(
40),
//横轴间距
crossAxisSpacing:
ScreenUtil()
.setWidth(
36),
//子组件宽高长度比例
childAspectRatio:
1.0),
itemBuilder:
(BuildContext context,
int index) {
return InkWell(
onTap: () {
_showPhotoView(
context,
0,
temp,
);
},
child:
CachedNetworkImage(
imageUrl:
temp[index],
fit: BoxFit.cover,
width: ScreenUtil()
.setWidth(
80 * 2),
height: ScreenUtil()
.setWidth(
80 * 2),
));
})
: SizedBox();
}))
: SizedBox(),
// Offstage(
// offstage: _onlineCheckEditProvider.orderInfoSunModel !=
// null
// ? _onlineCheckEditProvider.orderInfoSunModel.status ==
// '2'
// : true,
// child: _orderInfoWidget(),
// )
],
),
)
: SizedBox(),
VEmptyView(36),
_onlineCheckEditProvider.orderInfoSunModel != null &&
_onlineCheckEditProvider
.orderInfoSunModel?.invoice ==
null
? Container(
width: double.infinity,
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(60),
vertical: ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
color: Colors.white,
),
child: _customInfoItemWidget('发票抬头', '无',
fontsize: 20))
: _invoiceInfoWidget(),
VEmptyView(36),
]))),
onWillPop: () async {
if (widget.fromNotify) {
... ...
... ... @@ -2,6 +2,7 @@ import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
... ... @@ -16,9 +17,10 @@ class MessageDialogModel extends ChangeNotifier {
bool showMessageDialog = false;
List<Message> messages = []; //所有消息用于展示
List<Message> unMessagesOnline = []; //未读在线预定
List<Message> unMessagesOrder = []; //未读提前点餐
List<NewUnmessage> messages = []; //所有消息用于展示
// List<Message> unMessagesOnline = []; //未读在线预定
// List<Message> unMessagesOrder = []; //未读提前点餐
List<String> messagesCancelOnlyOneShow = []; //取消预订只展示一次
void init() {
_player.load("tts_online.mp3");
... ... @@ -55,7 +57,7 @@ class MessageDialogModel extends ChangeNotifier {
}
//添加一条信息
addMessage(BuildContext context, Message message) {
addMessage(BuildContext context, NewUnmessage message) {
LogUtil.v(message.toString());
play(message.message_type);
messages.add(message);
... ... @@ -75,16 +77,18 @@ class MessageDialogModel extends ChangeNotifier {
//获取未处理在线预订消息
getUntreatedMsg(BuildContext context, Map<String, String> params,
VoidCallback callback) async {
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_message_list,
showLoading: false, data: params)
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.new_get_untreated_msg_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
List<Message> messagesTemp = [];
List<NewUnmessage> messagesTemp = [];
if (baseResp != null && baseResp.code == Constant.status_success) {
messagesTemp = baseResp.data.map<Message>((value) {
return Message.fromJson(value);
messagesTemp = baseResp.data['list'].map<NewUnmessage>((value) {
return NewUnmessage.fromJson(value);
}).toList();
messagesTemp.removeWhere((message) {
if (message.message_type.toString() == "10") {
... ... @@ -96,13 +100,8 @@ class MessageDialogModel extends ChangeNotifier {
}
return false;
});
if (params["type_id"] == '10') {
unMessagesOnline = messagesTemp;
messages.addAll(unMessagesOnline);
} else if (params["type_id"] == '1') {
unMessagesOrder = messagesTemp;
messages = unMessagesOrder;
}
messages = messagesTemp;
// messages.addAll(messagesTemp);
callback();
... ...
... ... @@ -3,13 +3,14 @@ import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/models/new_unmessage_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/utils.dart';
class MessageModel extends ChangeNotifier {
List<Message> messages = []; //消息
List<NewUnmessage> messages = []; //消息
PageState pageStateUn = PageState.Loading; //未处理
PageState pageState = PageState.Loading; //已处理
// 未处理消息总数
... ... @@ -18,28 +19,90 @@ class MessageModel extends ChangeNotifier {
int orderTotal = 0; //提前点餐
int checkTotal = 0; //在线买单
int allUnNum = 0; //全部未读
initData() {
messages = []; //消息
pageStateUn = PageState.Loading; //未处理
pageState = PageState.Loading; //已处理
}
//获取消息
//获取已处理消息
getMessages(BuildContext context, Map<String, String> params,
{showLoading = true}) async {
if (showLoading) {
if (params['status'] == '0') {
//未处理
pageStateUn = PageState.Loading;
pageState = PageState.Loading;
messages = [];
notifyListeners();
}
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.new_get_message_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
if (params['offset'] == "0") {
messages = baseResp.data.map<NewUnmessage>((value) {
return NewUnmessage.fromJson(value);
}).toList();
} else {
messages.addAll(baseResp.data.map<NewUnmessage>((value) {
return NewUnmessage.fromJson(value);
}).toList());
}
// if (params["type_id"] == "10") {
// //在线预订
// messages.removeWhere((message) {
// if (message.message_type.toString() == "10") {
// //在线预订
// if (message.status == "4") {
// //已取消
// return true;
// }
// return false;
// } else if (message.message_type.toString() == "11") {
// //取消在线预订
// return false;
// }
// return true;
// });
// }
if (messages.isEmpty) {
pageState = PageState.Empty;
} else {
pageState = PageState.Loading;
pageState = PageState.Success;
}
notifyListeners();
}
}
//获取未处理消息和数目
getNewGetUntreatedMsgList(BuildContext context, Map<String, String> params,
{showLoading = true}) async {
if (showLoading) {
pageStateUn = PageState.Loading;
messages = [];
notifyListeners();
}
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_message_list,
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.new_get_untreated_msg_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
... ... @@ -47,32 +110,28 @@ class MessageModel extends ChangeNotifier {
if (error is MyError) {
switch (error.type) {
case 1:
pageStateTemp = PageState.ConnectivityError;
pageStateUn = PageState.ConnectivityError;
break;
case 2:
pageStateTemp = PageState.ConnectivityTimeOut;
pageStateUn = PageState.ConnectivityTimeOut;
break;
default:
pageStateTemp = PageState.ConnectivityError;
pageStateUn = PageState.ConnectivityError;
break;
}
}
if (params['status'] == '0') {
//未处理
pageStateUn = pageStateTemp;
} else {
pageState = pageStateTemp;
}
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
allUnNum = baseResp.data['count'];
if (params['offset'] == "0") {
messages = baseResp.data.map<Message>((value) {
return Message.fromJson(value);
messages = baseResp.data['list'].map<NewUnmessage>((value) {
return NewUnmessage.fromJson(value);
}).toList();
} else {
messages.addAll(baseResp.data.map<Message>((value) {
return Message.fromJson(value);
messages.addAll(baseResp.data['list'].map<NewUnmessage>((value) {
return NewUnmessage.fromJson(value);
}).toList());
}
... ... @@ -90,19 +149,11 @@ class MessageModel extends ChangeNotifier {
// });
// }
if (messages.isEmpty) {
if (params['status'] == '0') {
//未处理
pageStateUn = PageState.Empty;
} else {
pageState = PageState.Empty;
}
//未处理
pageStateUn = PageState.Empty;
} else {
if (params['status'] == '0') {
//未处理
pageStateUn = PageState.Success;
} else {
pageState = PageState.Success;
}
//未处理
pageStateUn = PageState.Success;
}
notifyListeners();
}
... ...
... ... @@ -466,11 +466,12 @@ class NavigatorUtil {
BuildContext context, String rid, int dateTime, String ddate_slot,
{bool canChoose = false,
String object,
String oldobject,
String fromPage = 'change',
String tid = ''}) {
if (object != null) {
return _navigateTo(context,
"${Routes.room_type_select_table_page}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${object}");
"${Routes.room_type_select_table_page}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${object}&oldobject=${oldobject}");
}
// object = {'object': [], "tid": ''};
return _navigateTo(context,
... ...
... ... @@ -792,6 +792,8 @@ var roomTypeSelectTablePageHandler = new Handler(
bool canChoose = params["canChoose"].first == "true" ? true : false;
String temp = params["object"].first;
List<String> tidSelList = temp.length > 0 ? temp.split(',') : [];
String oldobject = params["oldobject"].first;
List<String> oldobjectList = oldobject.length > 0 ? oldobject.split(',') : [];
// return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose);
return ChangeNotifierProvider<ChooseTableModel>(
... ... @@ -800,7 +802,8 @@ var roomTypeSelectTablePageHandler = new Handler(
canChoose: canChoose,
tableList: tidSelList,
fromPage: fromPage,
tid: tid));
tid: tid,
oldobjectList:oldobjectList));
});
///菜单管理页面
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/reserve_detail_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/models/table.dart' as t;
... ... @@ -16,6 +17,7 @@ class TableItem extends StatefulWidget {
final int height; //高度
final bool need;
final List<String> oldOjectList;
TableItem(this.table,
{this.onSelected,
... ... @@ -24,7 +26,8 @@ class TableItem extends StatefulWidget {
this.fromPage = 'new',
this.rid,
this.tableMap,
this.need = true});
this.need = true,
this.oldOjectList});
@override
State<StatefulWidget> createState() {
... ... @@ -81,10 +84,15 @@ class TableItemState extends State<TableItem> {
table.selected = !(table.selected ?? false);
});
widget.onSelected(table);
} else if (widget.fromPage == 'table_manage' ||
widget.fromPage == 'room_manage') {
} else if (widget.fromPage == 'table_manage') {
table.selected = !(table.selected ?? false);
widget.onSelected(table);
} else if (widget.fromPage == 'room_manage') {
if (table.isExitsClass.toString() != '1' ||
widget.oldOjectList.contains(table.id)) {
table.selected = !(table.selected ?? false);
widget.onSelected(table);
}
} else if (widget.fromPage == 'tablePhoto') {
// setState(() {
// table.selected = true;
... ... @@ -100,7 +108,9 @@ class TableItemState extends State<TableItem> {
height: ScreenUtil().setWidth(widget.height),
margin: EdgeInsets.all(ScreenUtil().setWidth(9)),
decoration: BoxDecoration(
color: widget.need && table.enable == '0'
color: (widget.need && table.enable == '0') ||
(table.isExitsClass.toString() == '1' &&
!widget.oldOjectList.contains(table.id))
? MyColours.color_E0E0E0
: MyColours.color_A9E3E6,
borderRadius: BorderRadius.all(
... ... @@ -118,7 +128,10 @@ class TableItemState extends State<TableItem> {
height: ScreenUtil().setHeight(32),
alignment: Alignment.center,
decoration: BoxDecoration(
color: MyColours.color_63a6d1,
color: table.isExitsClass.toString() == '1' &&
!widget.oldOjectList.contains(table.id)
? Color.fromRGBO(147, 147, 147, 1)
: MyColours.color_63a6d1,
borderRadius: BorderRadius.only(
topLeft:
Radius.circular(ScreenUtil().setWidth(8)),
... ... @@ -154,7 +167,11 @@ class TableItemState extends State<TableItem> {
table.name,
maxLines: 2,
style: TextStyle(
color: widget.need && table.enable == '0'
color: (widget.need && table.enable == '0') ||
(table.isExitsClass.toString() ==
'1' &&
!widget.oldOjectList
.contains(table.id))
? MyColours.color_999999
: MyColours.color_353535,
fontSize: ScreenUtil().setSp(28),
... ... @@ -188,7 +205,11 @@ class TableItemState extends State<TableItem> {
? table.tableNum
: table.reserver,
style: TextStyle(
color: signStr == '已停用'
color: widget.fromPage == 'room_manage' &&
table.isExitsClass.toString() == '1' &&
!widget.oldOjectList.contains(table.id)
? Color.fromRGBO(147, 147, 147, 1)
: signStr == '已停用'
? MyColours.color_999999
: (table.reserver == null ||
table.reserver.isEmpty)
... ... @@ -203,7 +224,10 @@ class TableItemState extends State<TableItem> {
Text(
table.lowStr,
style: TextStyle(
color: MyColours.color_777777,
color: table.isExitsClass.toString() == '1' &&
!widget.oldOjectList.contains(table.id)
? MyColours.color_999999
: MyColours.color_777777,
fontSize: ScreenUtil().setSp(26),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
... ...