Commit cab71f45c72b1d150df2284cc2f3600f709ec45f

Authored by wdn127929
1 parent f6ebd178

优化桌位页面数据

... ... @@ -548,7 +548,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 52691;
CURRENT_PROJECT_VERSION = 52692;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_MODE = release;
... ... @@ -696,7 +696,7 @@
CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 52691;
CURRENT_PROJECT_VERSION = 52692;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_MODE = release;
... ... @@ -732,7 +732,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 52691;
CURRENT_PROJECT_VERSION = 52692;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_MODE = release;
... ...
class TableListReseveModel {
int ret;
List<TableListReseveSunModel> data;
String msg;
TableListReseveModel({this.ret, this.data, this.msg});
TableListReseveModel.fromJson(Map<String, dynamic> json) {
ret = json['ret'];
if (json['data'] != null) {
data = <TableListReseveSunModel>[];
json['data'].forEach((v) {
data.add(new TableListReseveSunModel.fromJson(v));
});
}
msg = json['msg'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ret'] = this.ret;
if (this.data != null) {
data['data'] = this.data?.map((v) => v.toJson()).toList();
}
data['msg'] = this.msg;
return data;
}
}
class TableListReseveSunModel {
String id;
String sellerid;
String name;
String orderO;
String status;
String cdate;
List<TableListReserve> tableList;
int count;
bool select = false;
TableListReseveSunModel(
{this.id,
this.sellerid,
this.name,
this.orderO,
this.status,
this.cdate,
this.tableList,
this.count,
this.select});
TableListReseveSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
sellerid = json['sellerid'];
name = json['name'];
orderO = json['order_o'];
status = json['status'];
cdate = json['cdate'];
tableList = <TableListReserve>[];
if (json['tableList'] != null) {
json['tableList'].forEach((v) {
tableList?.add(new TableListReserve.fromJson(v));
});
}
count = json['count'];
}
TableListReseveSunModel.fromJson2(Map<String, dynamic> json) {
id = json['id'];
sellerid = json['sellerid'];
name = json['name'];
orderO = json['order_o'];
status = json['status'];
cdate = json['cdate'];
tableList = <TableListReserve>[];
if (json['tableList'] != null) {
json['tableList'].forEach((v) {
tableList?.add(new TableListReserve.fromJson2(v));
});
}
count = json['count'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['sellerid'] = this.sellerid;
data['name'] = this.name;
data['order_o'] = this.orderO;
data['status'] = this.status;
data['cdate'] = this.cdate;
if (this.tableList != null) {
data['tableList'] = this.tableList?.map((v) => v.toJson()).toList();
}
data['count'] = this.count;
return data;
}
}
class TableListReserve {
String id;
String rid;
String sellerid;
String tid;
String name;
String tablePnum;
String mostPnum;
String orderO;
String status;
String tablestatus;
String enable;
String spell;
String cdate;
dynamic isLock;
dynamic isMerge;
dynamic tids;
dynamic lockTname;
dynamic lockTid;
String isPhoto;
List<BanquetListModel> banquetList;
ReserveListModel reserveList;
String reserveLock;
bool selected = false; //是否选中
//获取桌位类型
String sign;
String reserver;
String pnum;
String place_order_name;
String label;
String signStr;
String notebookId;
//获取桌位可坐人数
String get tableNum {
if (tablePnum == null || tablePnum.isEmpty || tablePnum == "0") {
return "";
} else if (mostPnum != null &&
mostPnum.isNotEmpty &&
mostPnum != "0" &&
mostPnum != "null") {
if (tablePnum == mostPnum) {
return "$tablePnum人";
} else {
return "$tablePnum-$mostPnum人";
}
} else {
return "$tablePnum人";
}
}
//获取桌位类型
String get tidStr {
switch (tid) {
case "1":
return "散座";
case "2":
return "包间";
case "3":
return "卡座";
}
}
TableListReserve(
{this.id,
this.rid,
this.sellerid,
this.tid,
this.name,
this.tablePnum,
this.mostPnum,
this.orderO,
this.status,
this.tablestatus,
this.enable,
this.spell,
this.cdate,
this.isLock,
this.isMerge,
this.tids,
this.lockTname,
this.lockTid,
this.isPhoto,
this.banquetList,
this.reserveList,
this.reserveLock});
TableListReserve.fromJson2(Map<String, dynamic> json) {
id = json['id'];
rid = json['rid'];
sellerid = json['sellerid'];
tid = json['tid'];
name = json['name'];
tablePnum = json['table_pnum'];
mostPnum = json['most_pnum'];
orderO = json['order_o'];
status = json['status'];
tablestatus = json['tablestatus'];
enable = json['enable'];
spell = json['spell'];
cdate = json['cdate'];
isLock = json['is_lock'];
isMerge = json['is_merge'];
tids = json['tids'];
lockTname = json['lock_tname'];
lockTid = json['lock_tid'];
isPhoto = json['is_photo'];
reserveLock = json['reserveLock'].toString();
banquetList = <BanquetListModel>[];
selected = false;
// if (json['banquetList'] != null) {
// json['banquetList'].forEach((v) {
// banquetList.add(new BanquetListModel.fromJson(v));
// });
// }
// if (json['reserveList'] != null) {
// reserveList = ReserveListModel.fromJson(json['reserveList']);
// }
}
TableListReserve.fromJson(Map<String, dynamic> json) {
id = json['id'];
rid = json['rid'];
sellerid = json['sellerid'];
tid = json['tid'];
name = json['name'];
tablePnum = json['table_pnum'];
mostPnum = json['most_pnum'];
orderO = json['order_o'];
status = json['status'];
tablestatus = json['tablestatus'];
enable = json['enable'];
spell = json['spell'];
cdate = json['cdate'];
isLock = json['is_lock'];
isMerge = json['is_merge'];
tids = json['tids'];
lockTname = json['lock_tname'];
lockTid = json['lock_tid'];
isPhoto = json['is_photo'];
reserveLock = json['reserveLock'].toString();
banquetList = <BanquetListModel>[];
selected = false;
if (json['banquetList'] != null) {
json['banquetList'].forEach((v) {
banquetList.add(new BanquetListModel.fromJson(v));
});
}
if (json['reserveList'] != null) {
reserveList = ReserveListModel.fromJson(json['reserveList']);
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['rid'] = this.rid;
data['sellerid'] = this.sellerid;
data['tid'] = this.tid;
data['name'] = this.name;
data['table_pnum'] = this.tablePnum;
data['most_pnum'] = this.mostPnum;
data['order_o'] = this.orderO;
data['status'] = this.status;
data['tablestatus'] = this.tablestatus;
data['enable'] = this.enable;
data['spell'] = this.spell;
data['cdate'] = this.cdate;
data['is_lock'] = this.isLock;
data['is_merge'] = this.isMerge;
data['tids'] = this.tids;
data['lock_tname'] = this.lockTname;
data['lock_tid'] = this.lockTid;
data['is_photo'] = this.isPhoto;
data['reserveLock'] = this.reserveLock;
if (this.banquetList != null) {
data['banquetList'] = this.banquetList.map((v) => v.toJson()).toList();
}
if (this.reserveList != null) {
data['reserveList'] = this.reserveList.toJson();
}
return data;
}
}
class BanquetListModel {
String rname;
String sex;
String ddate;
String remark;
dynamic staffNickName;
dynamic staffAccount;
String phone;
String id;
String rid;
String className;
String nickName;
String account;
String talbeStr;
dynamic lost;
BanquetListModel(
{this.rname,
this.sex,
this.ddate,
this.remark,
this.staffNickName,
this.staffAccount,
this.phone,
this.id,
this.rid,
this.className,
this.nickName,
this.account,
this.talbeStr,
this.lost});
BanquetListModel.fromJson(Map<String, dynamic> json) {
rname = json['rname'];
sex = json['sex'];
ddate = json['ddate'];
remark = json['remark'];
staffNickName = json['staff_nick_name'];
staffAccount = json['staff_account'];
phone = json['phone'];
id = json['id'];
rid = json['rid'];
className = json['class_name'];
nickName = json['nick_name'];
account = json['account'];
talbeStr = json['talbeStr'];
lost = json['lost'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['rname'] = this.rname;
data['sex'] = this.sex;
data['ddate'] = this.ddate;
data['remark'] = this.remark;
data['staff_nick_name'] = this.staffNickName;
data['staff_account'] = this.staffAccount;
data['phone'] = this.phone;
data['id'] = this.id;
data['rid'] = this.rid;
data['class_name'] = this.className;
data['nick_name'] = this.nickName;
data['account'] = this.account;
data['talbeStr'] = this.talbeStr;
data['lost'] = this.lost;
return data;
}
}
class ReserveListModel {
String id;
String sid;
String uid;
String tid;
String tableinfo;
String rname;
String sex;
String phone;
dynamic cusdem;
String rdate;
String ddate;
String isSetDdate;
String ddateSolt;
String status;
String action;
String type;
dynamic actualPum;
String placeOrderName;
dynamic aname;
String reserveCount;
//预订总次数显示
String get reserveCountShow {
if (reserveCount == '1' || phone == null || phone == ''
// ||
// reserver == null ||
// reserver.isEmpty ||
// reserver == ''
) {
// 预订次数== 1 或者 姓名或者客户电话号码为空的时候 ,显示首次预订
return "首次预订";
} else if (reserveCount != null &&
reserveCount != '0' &&
reserveCount != '') {
return '${reserveCount}次预订';
} else {
return '';
}
}
String get signStr {
if (status != null && status.isNotEmpty) {
switch (status) {
case "1": //已预订
return "已预订";
case "5": //已安排包间
// itemRv.setBackgroundResource(R.drawable.table_white);
// if(item.getOrder_status()==3){
// status.setBackgroundResource(R.drawable.table_bg_bottom_yellow);
// status.setText("已买单");
// }else{
// status.setBackgroundResource(R.drawable.table_bg_bottom_red);
// status.setText("已预订");
// }
// status.setVisibility(View.VISIBLE);
// pnum.setText(item.getNoteName());
return "已预订";
case "2": //用餐中
return "已预订";
case "10": //婚宴
return "已预订";
default:
return "";
}
}
// if (enable == "0") return "已停用";
return "";
}
ReserveListModel(
{this.id,
this.sid,
this.uid,
this.tid,
this.tableinfo,
this.rname,
this.sex,
this.phone,
this.cusdem,
this.rdate,
this.ddate,
this.isSetDdate,
this.ddateSolt,
this.status,
this.action,
this.type,
this.actualPum,
this.placeOrderName,
this.aname,
this.reserveCount});
ReserveListModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
sid = json['sid'];
uid = json['uid'];
tid = json['tid'];
tableinfo = json['tableinfo'];
rname = json['rname'];
sex = json['sex'];
phone = json['phone'];
cusdem = json['cusdem'];
rdate = json['rdate'];
ddate = json['ddate'];
isSetDdate = json['is_set_ddate'];
ddateSolt = json['ddate_solt'];
status = json['status'];
action = json['action'];
type = json['type'];
actualPum = json['actual_pum'];
placeOrderName = json['place_order_name'];
aname = json['aname'];
reserveCount = json['reserveCount'].toString();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['sid'] = this.sid;
data['uid'] = this.uid;
data['tid'] = this.tid;
data['tableinfo'] = this.tableinfo;
data['rname'] = this.rname;
data['sex'] = this.sex;
data['phone'] = this.phone;
data['cusdem'] = this.cusdem;
data['rdate'] = this.rdate;
data['ddate'] = this.ddate;
data['is_set_ddate'] = this.isSetDdate;
data['ddate_solt'] = this.ddateSolt;
data['status'] = this.status;
data['action'] = this.action;
data['type'] = this.type;
data['actual_pum'] = this.actualPum;
data['place_order_name'] = this.placeOrderName;
data['aname'] = this.aname;
data['reserveCount'] = this.reserveCount;
return data;
}
}
... ...
... ... @@ -528,26 +528,29 @@ class HttpUrl {
"?service=App.Pay.AppPayJiSuVersion"; // App调起支付(购买版本)
static const String set_reserve_img_text =
"?service=App.Reserve.SetReserveImgText"; // 保存预订详情自定义图文
static const String get_reserve_img_text =
"?service=App.Reserve.GetReserveImgText"; // 获取预订详情自定义图文
static const String set_seller_user_account_type =
"?service=App.Seller.SetSellerUserAccountType"; // 设置账号服务类型
static const String get_reserve_img_text =
"?service=App.Reserve.GetReserveImgText"; // 获取预订详情自定义图文
static const String set_seller_user_account_type =
"?service=App.Seller.SetSellerUserAccountType"; // 设置账号服务类型
static const String get_seller_user_account_type =
"?service=App.Seller.GetSellerUserAccountType"; // 获取账号服务类型
static const String set_serve_uid_by_rid =
"?service=App.Reserve.SetServeUidByRid"; // 设置订单服务经理
static const String get_seller_user_account_type =
"?service=App.Seller.GetSellerUserAccountType"; // 获取账号服务类型
static const String set_serve_uid_by_rid =
"?service=App.Reserve.SetServeUidByRid"; // 设置订单服务经理
static const String get_colors_data =
"?service=App.Seller.GetColorsData"; // 模版颜色可选数据
static const String get_colors_data =
"?service=App.Seller.GetColorsData"; // 模版颜色可选数据
static const String get_my_page_count_data =
"?service=App.Seller.GetMyPageCountData"; // 获取商家我的页面三个统计数据
static const String get_table_list_or_reserve =
"?service=Android.Reserve.GetTableListOrReserve"; // 获取商家桌位列表及对应预订数据
static const String get_user_account_type_by_id =
"?service=App.Seller.getUserAccountTypeById"; // 当前uid的类型,只订不服,只服不订
static const String get_my_page_count_data =
"?service=App.Seller.GetMyPageCountData"; // 获取商家我的页面三个统计数据
}
... ...
... ... @@ -78,6 +78,11 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> {
//退出清空桌位数据
App.sp.remove('table_list');
}
if (App.sp.containsKey('table_list_or_reserve')) {
//退出清空桌位数据
App.sp.remove('table_list_or_reserve');
}
if (App.sp.containsKey('specid')) {
//退出清空销售计价
App.sp.remove('specid');
... ... @@ -91,14 +96,11 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> {
//退出清空模块过期数据缓存
App.sp.remove('sellerEdateModule');
}
if (App.sp.containsKey('notebook_timer')) {
if (App.sp.containsKey('notebook_timer')) {
//退出清空订单发短信2分钟限制数据缓存
App.sp.remove('notebook_timer');
}
// bus.emit('refresh_token');
Map<String, dynamic> userMap = {
"sellerimage": seller['seller_image'],
... ...
... ... @@ -147,6 +147,10 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore>
//退出清空桌位数据
App.sp.remove('table_list');
}
if (App.sp.containsKey('table_list_or_reserve')) {
//退出清空桌位数据
App.sp.remove('table_list_or_reserve');
}
if (App.sp.containsKey('specid')) {
//退出清空销售计价
App.sp.remove('specid');
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import '../../models/table_or_reserve_model.dart';
class AreaItemTableOrReserve extends StatefulWidget {
final TableListReseveSunModel area;
final ValueChanged selectCallback;
final bool showBadge;
AreaItemTableOrReserve(this.area, this.selectCallback,
{this.showBadge = true});
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new AreaItemTableOrReserveState();
}
}
class AreaItemTableOrReserveState extends State<AreaItemTableOrReserve> {
@override
Widget build(BuildContext context) {
// TODO: implement build
TableListReseveSunModel area = widget.area;
bool isSelected = area.select;
return GestureDetector(
onTap: () {
if (widget.selectCallback != null) {
widget.selectCallback(widget.area);
}
},
child:
// Stack(
// overflow: Overflow.visible,
// alignment: Alignment.topLeft,
// children: <Widget>[
Container(
// width: ScreenUtil().setWidth(104 * 2),
// height: ScreenUtil().setWidth(10),
margin: EdgeInsets.only(
right: ScreenUtil().setWidth(15),
top: ScreenUtil().setWidth(20),
),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(14),
// vertical: ScreenUtil().setWidth(4)
),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
color: isSelected
? MyColours.color_199095
:
// widget.showBadge && area.count != -1 && area.count <= 0
// ? Color.fromRGBO(154, 154, 154, 1)
// :
MyColours.color_ffffff,
border: Border.all(
color: MyColours.color_E0E0E0,
width: ScreenUtil().setWidth(2))),
child: Text(
area.name,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: isSelected
? MyColours.color_ffffff
: MyColours.color_333333,
// color: isSelected ||
// (widget.showBadge && area.count != -1 && area.count <= 0)
// ? MyColours.color_ffffff
// : MyColours.color_333333,
fontSize: ScreenUtil().setSp(24),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
),
),
// !widget.showBadge
// ? SizedBox()
// : area.count == -1
// ? Container()
// : Positioned(
// right: ScreenUtil().setWidth(12),
// top: ScreenUtil().setWidth(6),
// child: Container(
// padding: EdgeInsets.symmetric(
// vertical: ScreenUtil().setWidth(6),
// horizontal: ScreenUtil().setWidth(4)),
// // width: ScreenUtil().setWidth(78),
// // height: ScreenUtil().setWidth(30),
// alignment: Alignment.center,
// decoration: BoxDecoration(
// color: area.count <= 0
// ? MyColours.color_999999
// : MyColours.color_199095,
// // borderRadius: BorderRadius.only(
// // topLeft: Radius.circular(ScreenUtil().setWidth(10)),
// // topRight: Radius.circular(ScreenUtil().setWidth(15)),
// // bottomRight:
// // Radius.circular(ScreenUtil().setWidth(15)))
// ),
// child: Text(area.count <= 0 ? "满座" : "${area.count}",
// style: TextStyle(
// color: MyColours.color_ffffff,
// fontSize: ScreenUtil().setSp(26),
// decoration: TextDecoration.none,
// fontWeight: FontWeight.normal)),
// ),
// ),
// ],
// )
);
}
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import '../../models/table_or_reserve_model.dart';
import '../../utils/screen_util.dart';
class TableItemOrReserve extends StatefulWidget {
final TableListReserve table;
final bool canSelected; //是否能选中
final ValueChanged<TableListReserve> onSelected;
final String rid;
final Map<String, Notebook> tableMap; //记录已预订桌位对应的订单
final int height; //高度
final bool need;
final List<TableListReserve> selectTables;
TableItemOrReserve(this.table,
{this.onSelected,
this.canSelected = false,
this.height = 185,
this.rid,
this.tableMap,
this.need = true,
this.selectTables});
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new TableItemOrReserveState();
}
}
class TableItemOrReserveState extends State<TableItemOrReserve> {
// 判断两数组是否有相同元素, true: 存在相同 false:没相同
haveSame(List arr, List otherArr) {
if (arr == null || otherArr == null) {
return false;
}
// 合并数组
arr.addAll(otherArr);
// 合并数组并去重
Set setArr = new Set(); //用set进行去重
setArr.addAll(arr); //把数组塞进set里
List newList = setArr.toList();
return arr.length != newList.length;
}
String rnameStr(rname) {
if (rname == null || rname == '' || rname == ' ') return "";
return rname;
}
String sexStr(String sex) {
if (sex == null || sex == '' || sex == '0') return "";
switch (sex.toString()) {
case "1": //先生
case "男":
case "先生":
return "先生";
case "2": //女士
case "女":
case "女士":
return "女士";
case "3": //公司
case "公司":
return "公司";
}
}
@override
Widget build(BuildContext context) {
TableListReserve table = widget.table;
if (table.reserveList != null) {
table.signStr = table.reserveList.signStr;
table.sign = table.reserveList.status;
if (table.reserveList.rname != null &&
table.reserveList.rname != '' &&
table.reserveList.rname != ' ') {
table.reserver =
rnameStr(table.reserveList.rname) + sexStr(table.reserveList.sex);
}
table.pnum = table.reserveList.actualPum;
table.place_order_name = table.reserveList.placeOrderName;
table.label = table.reserveList.reserveCountShow;
table.notebookId = table.reserveList.id;
} else if (table.banquetList != null && table.banquetList.length > 0) {
table.signStr = '已预订';
table.sign = '10';
if (table.banquetList[0].rname != null &&
table.banquetList[0].rname != '' &&
table.banquetList[0].rname != ' ') {
table.reserver = rnameStr(table.banquetList[0].rname) +
sexStr(table.banquetList[0].sex);
}
table.label = table.banquetList[0].className;
table.notebookId = table.banquetList[0].rid;
}
// if (table.sign == '5' && widget.tableMap[table.id]?.orderInfo != null) {
// if (widget.tableMap[table.id].orderInfo?.status == '3') {
// table.signStr = '已买单';
// }
// }
bool isSelf = false;
//当前桌子的预订id
String idNow = '';
if (widget.tableMap.containsKey('${table.id}')) {
//包含,证明该桌子已经被预订了
idNow = widget.tableMap['${table.id}'].id;
if (idNow == widget.rid) {
isSelf = true;
}
}
List selectTids = []; //被选中的桌子ids
if (widget.selectTables != null) {
widget.selectTables.forEach((element) {
selectTids.add(element.id);
});
}
// bool islock = (table.isLock == '1' &&
// widget.tableMap.containsKey(table.lockTid)) ||
// (table.isMerge == '1' &&
// haveSame(widget.tableMap.keys.toList(), table.tids.split(','))) ||
// (table.isLock == '1' && selectTids.contains(table.lockTid)) ||
// (table.isMerge == '1' &&
// haveSame(
// selectTids,
// table.tids.split(
// ','))); //真正上锁*******被合并桌子上锁:合并的桌子被预订&&islock == '1' || 合并桌子上锁:被合并的桌子被预订&&ismerge == '1'
bool islock = table.reserveLock == '1';
return GestureDetector(
onTap: () {
if (islock && table.signStr != '已预订') {
return;
}
setState(() {
table.selected = !(table.selected ?? false);
});
widget.onSelected(table);
},
child: islock && table.signStr != '已预订'
? Stack(
children: [
Container(
// width: ScreenUtil().setWidth(160),
// height: ScreenUtil().setWidth(widget.height),
// margin: EdgeInsets.all(ScreenUtil().setWidth(9)),
decoration: BoxDecoration(
color: MyColours.color_DBDBDB,
border: Border.all(
width: ScreenUtil().setWidth(2),
color: MyColours.color_BFC4D4),
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(20)))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
widget.need && table.signStr == '已预订' && !isSelf
? SizedBox()
: VEmptyView(10),
Container(
// color: Colors.red,
alignment: Alignment.center,
child: Text(
table.name,
maxLines: 1,
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(36),
decoration: TextDecoration.none,
fontWeight: FontWeight.bold),
overflow: TextOverflow.ellipsis,
)),
VEmptyView(10),
Image.asset(
Utils.getImgPath('lock'),
width: w(16),
)
],
)),
Positioned(
left: 0,
top: 0,
child: table.tidStr == null
? Container()
: Container(
// width: ScreenUtil().setWidth(60),
// height: ScreenUtil().setWidth(42),
padding: EdgeInsets.all(ScreenUtil().setWidth(4)),
alignment: Alignment.center,
decoration: BoxDecoration(
// color: widget.canSelected && table.selected
// ? MyColours.color_199095
// : Color.fromRGBO(239, 239, 239, 1),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(ScreenUtil().setWidth(20)),
// topRight:
// Radius.circular(ScreenUtil().setWidth(8)),
// bottomRight: Radius.circular(
// ScreenUtil().setWidth(8))
)),
child: Text(table.tidStr,
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(20),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal)),
),
),
],
)
: Stack(
children: <Widget>[
Container(
// width: ScreenUtil().setWidth(160),
// height: ScreenUtil().setWidth(widget.height),
// margin: EdgeInsets.all(ScreenUtil().setWidth(9)),
decoration: BoxDecoration(
color: widget.need && table.signStr == '已预订' && !isSelf
? table.sign == '10'
? MyColours.color_FEF3E6
: MyColours.color_80438E93
: widget.canSelected && table.selected
? MyColours.color_199095
: MyColours.color_ffffff,
border: Border.all(
width: ScreenUtil().setWidth(2),
color: MyColours.color_E0E0E0),
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(20)))),
child: Stack(
// alignment: Alignment.center,
children: <Widget>[
Container(
// alignment: Alignment.center,
// color: Colors.blueAccent,
// height: ScreenUtil().setWidth(widget.height),
// padding: EdgeInsets.symmetric(
// horizontal: ScreenUtil().setWidth(20)),
// margin: EdgeInsets.only(left: ScreenUtil().setWidth(20)),
child: Column(
// mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
widget.need && table.signStr == '已预订' && !isSelf
? SizedBox()
: VEmptyView(10),
Container(
// color: Colors.red,
alignment: Alignment.center,
child: Text(
table.name,
maxLines: 1,
style: TextStyle(
color: (widget.need &&
table.signStr == '已预订' &&
!isSelf)
? MyColours.color_333333
: (widget.canSelected &&
table.selected)
? MyColours.color_ffffff
: MyColours.color_333333,
fontSize: ScreenUtil().setSp(34),
decoration: TextDecoration.none,
fontWeight: FontWeight.bold),
overflow: TextOverflow.ellipsis,
)
// Text(
// table.name,
// // textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: table.table.signStr == '已停用'
// ? MyColours.color_999999
// : MyColours.color_353535,
// fontSize: ScreenUtil().setSp(28),
// decoration: TextDecoration.none,
// fontWeight: FontWeight.normal),
// overflow: TextOverflow.ellipsis,
// ),
),
((table.reserver != null && table.reserver != '') ||
(table.pnum != '' &&
table.pnum != null &&
table.pnum != '0'))
? VEmptyView(8)
: SizedBox(),
table.signStr == '已预订' && !isSelf
? SizedBox()
: Text(
table.tableNum,
style: TextStyle(
color: table.signStr == '已预订' && !isSelf
? MyColours.color_353535
: (widget.canSelected &&
table.selected)
? MyColours.color_ffffff
: MyColours.color_353535,
fontSize: ScreenUtil().setSp(22),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
overflow: TextOverflow.ellipsis,
),
table.signStr == '已预订' &&
!isSelf &&
((table.reserver != null &&
!table.reserver.isEmpty &&
table.reserver != '') ||
(table.pnum != '' &&
table.pnum != null &&
table.pnum != '0'))
? Text(
(table.reserver == null ||
table.reserver.isEmpty ||
table.reserver == '')
? (table.pnum != '' &&
table.pnum != null &&
table.pnum != '0')
? '(${table.pnum}人)'
: ''
: '${table.reserver}' +
(table.pnum != '' &&
table.pnum != null &&
table.pnum != '0'
? '(${table.pnum}人)'
: ''),
style: TextStyle(
color: table.signStr == '已预订' && !isSelf
? MyColours.color_353535
: (widget.canSelected &&
table.selected)
? MyColours.color_ffffff
: MyColours.color_353535,
fontSize: ScreenUtil().setSp(22),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
overflow: TextOverflow.ellipsis,
)
: SizedBox(),
widget.need &&
table.signStr == '已预订' &&
!isSelf &&
table.place_order_name != null &&
table.place_order_name != ''
? Padding(
padding: EdgeInsets.only(
top: ScreenUtil().setWidth(6),
bottom: ScreenUtil().setWidth(8),
),
child: Text(
table.place_order_name != null &&
table.place_order_name != ''
? '${table.place_order_name}订'
: '',
style: TextStyle(
color: MyColours.color_353535,
fontSize: ScreenUtil().setSp(22),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
overflow: TextOverflow.ellipsis,
),
)
: SizedBox(),
// VEmptyView(6),
// Text(
// table.lowStr,
// style: TextStyle(
// color: MyColours.color_777777,
// fontSize: ScreenUtil().setSp(26),
// decoration: TextDecoration.none,
// fontWeight: FontWeight.normal),
// overflow: TextOverflow.ellipsis,
// )
table.signStr == '已预订' && !isSelf
? Container(
// width: ScreenUtil().setWidth(160),
height: ScreenUtil().setWidth(34),
)
: SizedBox()
],
),
),
table.signStr == '已预订' && !isSelf
? SizedBox()
: Positioned(
left: 0,
top: 0,
child: table.tidStr == null
? Container()
: Container(
// width: ScreenUtil().setWidth(60),
// height: ScreenUtil().setWidth(42),
padding: EdgeInsets.all(
ScreenUtil().setWidth(4)),
alignment: Alignment.center,
decoration: BoxDecoration(
color: widget.canSelected &&
table.selected
? MyColours.color_199095
: Color.fromRGBO(
239, 239, 239, 1),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(
ScreenUtil().setWidth(20)),
// topRight:
// Radius.circular(ScreenUtil().setWidth(8)),
// bottomRight: Radius.circular(
// ScreenUtil().setWidth(8))
)),
child: Text(table.tidStr,
style: TextStyle(
color: widget.canSelected &&
table.selected
? MyColours.color_ffffff
: MyColours.color_333333,
fontSize: ScreenUtil().setSp(20),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal)),
),
),
// widget.need && table.signStr == '已预订'
// ? Positioned(
// bottom: 0,
// left: 0,
// right: 0,
// child: table.signStr.isEmpty
// ? Container()
// : Container(
// width: ScreenUtil().setWidth(160),
// height: ScreenUtil().setWidth(40),
// alignment: Alignment.center,
// decoration: BoxDecoration(
// color: table.signStr == '已停用'
// ? MyColours.color_777777
// : table.signStr == '已买单'
// ? MyColours.color_F59A23
// : MyColours.color_E95750,
// borderRadius: BorderRadius.only(
// bottomLeft: Radius.circular(
// ScreenUtil().setWidth(8)),
// bottomRight: Radius.circular(
// ScreenUtil().setWidth(8)))),
// child: Text(
// table.signStr,
// style: TextStyle(
// color: MyColours.color_ffffff,
// fontSize: ScreenUtil().setSp(24),
// decoration: TextDecoration.none,
// fontWeight: FontWeight.normal),
// ),
// ),
// )
// : SizedBox(),
],
),
),
// Positioned(
// top: 3,
// right: 5,
// child: widget.canSelected && (table.selected ?? false)
// ? Image.asset(
// "assets/icon_selected.png",
// width: ScreenUtil().setWidth(40),
// height: ScreenUtil().setWidth(40),
// )
// : Container()),
widget.need && table.signStr == '已预订' && !isSelf
? SizedBox()
: Positioned(
left: ScreenUtil().setWidth(18),
bottom: ScreenUtil().setWidth(12),
child: table.isPhoto != 1
? Image.asset(
widget.canSelected && table.selected
? 'assets/f_camera_white.png'
: "assets/f_camera.png",
width: ScreenUtil().setWidth(22),
height: ScreenUtil().setWidth(22),
)
: Container()),
Positioned(
bottom: 0,
right: 0,
left: 0,
child: table.signStr == '已预订' && !isSelf
? Container(
// width: ScreenUtil().setWidth(160),
height: ScreenUtil().setWidth(34),
alignment: Alignment.center,
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10)),
decoration: BoxDecoration(
color: table.sign == '10'
? MyColours.color_F7C797
: MyColours.color_d9d9d9,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(
ScreenUtil().setWidth(20)),
bottomRight: Radius.circular(
ScreenUtil().setWidth(20)))),
child: Text(
table.label,
textAlign: TextAlign.center,
style: TextStyle(
color: MyColours.color_28323B,
fontSize: ScreenUtil().setSp(22),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
),
)
: SizedBox())
],
),
);
}
}
... ...
... ... @@ -20,6 +20,7 @@ import 'package:one_key/models/sms_info.dart';
import 'package:one_key/models/user_history_entity.dart';
import 'package:one_key/pages/table/area_item_table.dart';
import 'package:one_key/pages/table/table_item_or_reserve.dart';
import 'package:one_key/provider/base_info_provider.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/my_model.dart';
... ... @@ -55,6 +56,7 @@ import 'package:sendsms/sendsms.dart';
import '../../app.dart';
import '../../models/get_seller_info_model.dart';
import '../../models/remark.dart';
import '../../models/table_or_reserve_model.dart';
import '../../models/user.dart';
import '../../provider/SmsModel.dart';
import '../../provider/marketing_center_provider.dart';
... ... @@ -69,6 +71,8 @@ import '../../widgets/special_text/my_extended_text_selection_controls.dart';
import '../detail/notebook_detail_change_page_f.dart';
import 'package:flutter_picker/flutter_picker.dart' as Picker;
import 'area_item_table_or_reserve.dart';
const scrollDuration = Duration(microseconds: 500);
// typedef CustomCallBack = void Function(Object object);
... ... @@ -93,7 +97,7 @@ class TableManagerPageState extends State<TableManagerPage> {
int _selectIndex = 0;
ScrollController _areaController = ScrollController();
List<String> personNumList = [];
bool isSelected = true; //全部按钮
// bool isSelected = true; //全部按钮
String nameStr;
FocusNode _nameNode = FocusNode();
FocusNode _phoneNode = FocusNode();
... ... @@ -157,22 +161,30 @@ class TableManagerPageState extends State<TableManagerPage> {
// personNumList.add('30以上');
WidgetsBinding.instance.addPostFrameCallback((_) {
tableManagerModel.pageStateOrReserve = PageState.Loading;
// tableManagerModel.initTimeTable(context);
if (App.sp.containsKey('table_list')) {
// //退出清空桌位数据
App.sp.remove('table_list');
}
// getSpTableList();
UserModel userModel = Provider.of<UserModel>(context, listen: false);
tableManagerModel.dateTime = DateTime.now();
tableManagerModel.dateText =
tableManagerModel.returnDate(tableManagerModel.dateTime);
tableManagerModel.dateTimeSelect = tableManagerModel.dateTime;
tableManagerModel.notifyListeners;
_getAuthUserLists();
getUserAccountTypeById(showLoading: false);
// couponProvider.sendSMS = false;
String tableSp = App.sp.getString('table_list');
if (tableSp != null) {
//有缓存数据
tableManagerModel.showLoading = true;
Loading.showLoading(context);
} else {
tableManagerModel.showLoading = false;
}
// String tableSp = App.sp.getString('table_list_or_reserve');
// if (tableSp != null) {
// //有缓存数据
// // tableManagerModel.showLoading = true;
// // Loading.showLoading(context);
// }
_myExtendedMaterialTextSelectionControls =
MyTextSelectionControls(callback: (value) {
... ... @@ -184,15 +196,16 @@ class TableManagerPageState extends State<TableManagerPage> {
});
_getSellerById();
_couponNetworkData(selfDismiss: true);
// _couponNetworkData(selfDismiss: true);
getDzSellerConf();
_getRemark();
// getDzSellerConf();
// _getRemark();
EventBus().on("refresh_tablemanager", (arg) {
//订座-完成预订 刷新管理桌位
tableManagerModel.getReserveList(context,
needLoading: false, needKeep: true);
tableManagerModel.getTableListOrReserve(
context,
);
print(tableManagerModel);
});
EventBus().on("refresh_tablePhoto", (arg) {
... ... @@ -201,7 +214,7 @@ class TableManagerPageState extends State<TableManagerPage> {
});
EventBus().on("refresh_table_m_coupon", (arg) {
///刷新优惠券
_couponNetworkData();
// _couponNetworkData();
});
if (widget.guest != null) {
for (var item in _baseIndoProvider.sexList) {
... ... @@ -220,6 +233,31 @@ class TableManagerPageState extends State<TableManagerPage> {
});
}
List<TableListReseveSunModel> getSpTableList() {
String tableList = App.sp.getString('table_list_or_reserve');
if (tableList == null) {
tableManagerModel.pageStateOrReserve = PageState.Loading;
setState(() {});
return [];
}
List<TableListReseveSunModel> temp = [];
List<TableListReseveSunModel> tempShow = [];
List list = json.decode(tableList);
if (list.length > 0) {
list.forEach((element) {
temp.add(TableListReseveSunModel.fromJson2(element));
print(temp);
tempShow.add(TableListReseveSunModel.fromJson2(element));
});
}
tableManagerModel.tablesOrReserveData = temp;
tableManagerModel.tablesOrReserveDataShow = tempShow;
tableManagerModel.pageStateOrReserve = PageState.Success;
setState(() {});
}
@override
void dispose() {
// TODO: implement dispose
... ... @@ -234,7 +272,7 @@ class TableManagerPageState extends State<TableManagerPage> {
StoreBaseIndoProvider storeBaseIndoProvider =
Provider.of<StoreBaseIndoProvider>(context, listen: false);
GetSellerInfoSunModel sellerInfoSunModel =
await storeBaseIndoProvider.getSellerById(context);
await storeBaseIndoProvider.getSellerById(context, showLoading: false);
if (sellerInfoSunModel != null) {
if (App.sp.containsKey('user')) {
String s = App.sp.getString('user');
... ... @@ -251,16 +289,16 @@ class TableManagerPageState extends State<TableManagerPage> {
await UserModel().saveUserInfo(_user);
}
}
tableManagerModel.initTime(context);
tableManagerModel.initTimeTable(context);
}
///获取备注信息
_getRemark() async {
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid
};
await remarkManagerModel.getRemarks(context, params);
}
// ///获取备注信息
// _getRemark() async {
// Map<String, String> params = {
// "uid": Provider.of<UserModel>(context, listen: false).user.openid
// };
// await remarkManagerModel.getRemarks(context, params);
// }
_saveUser(String rolename) async {
NavigatorUtil.goHomePage(context, initialIndex: 1);
... ... @@ -290,95 +328,26 @@ class TableManagerPageState extends State<TableManagerPage> {
}
}
//获取员工信息列表
_getAuthUserLists({bool showLoading = true}) async {
Map<String, String> params = {
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
await personnelProvider.getAuthUserLists(context, params,
//获取登陆人类型 只订不服
getUserAccountTypeById({bool showLoading = false}) async {
String accountType = await tableManagerModel.getUserAccountTypeById(context,
showLoading: showLoading);
if (personnelProvider.dataMap != null) {
User user = Provider.of<UserModel>(context, listen: false).user;
if (user.role_name == '管理员') {
personnelProvider.dataMap.admin.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('管理员');
} else {
_saveUserAddition('管理员');
}
}
});
} else if (user.role_name == '店长') {
personnelProvider.dataMap.shopowner.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('店长');
} else {
_saveUserAddition('店长');
}
}
});
} else if (user.role_name == '客户经理') {
personnelProvider.dataMap.manager.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('客户经理');
} else {
_saveUserAddition('客户经理');
}
}
});
} else if (user.role_name == '收银员') {
personnelProvider.dataMap.cashier.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('收银员');
} else {
_saveUserAddition('收银员');
}
}
});
} else if (user.role_name == '服务员') {
personnelProvider.dataMap.waiter.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('服务员');
} else {
_saveUserAddition('服务员');
}
}
});
} else if (user.role_name == '前台') {
personnelProvider.dataMap.reception.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('前台');
} else {
_saveUserAddition('前台');
}
}
});
} else if (user.role_name == '迎宾') {
personnelProvider.dataMap.welcome.listdata.forEach((element) {
if (user.openid == element.id) {
if (element.accountType == '3') {
_saveUser('迎宾');
} else {
_saveUserAddition('迎宾');
}
}
});
}
if (accountType == '3') {
_saveUser(Provider.of<UserModel>(context, listen: false)
.user
.role_name_addition);
} else {
_saveUserAddition(Provider.of<UserModel>(context, listen: false)
.user
.role_name_addition);
}
}
getDzSellerConf() async {
MarketingCenterProvider marketingCenterProvider =
Provider.of<MarketingCenterProvider>(context, listen: false);
bool success = await marketingCenterProvider.getDzSellerConf(context);
bool success = await marketingCenterProvider.getDzSellerConf(context,
showLoading: false);
if (success && marketingCenterProvider.dzSellerConfModel != null) {
noticeSms = marketingCenterProvider.dzSellerConfModel.isNotice == '1'
? true
... ... @@ -507,13 +476,10 @@ class TableManagerPageState extends State<TableManagerPage> {
///刷新图片显示
_refreshTablePhoto() async {
List temp =
await tableManagerModel.getTableList(context, needLoading: false);
if (temp.length > 0) {
tableManagerModel.getReserveList(context,
needLoading: false, needKeep: true);
tableManagerModel.notifyListeners();
}
await tableManagerModel.getTableListOrReserve(
context,
);
tableManagerModel.notifyListeners();
}
// Widget list(List data) => ScrollablePositionedList.builder(
... ... @@ -553,12 +519,7 @@ class TableManagerPageState extends State<TableManagerPage> {
vertical: ScreenUtil().setWidth(20),
horizontal: ScreenUtil().setWidth(10)),
shrinkWrap: true,
itemCount: tableManagerModel.tableOuterList.length == 0
? 0
: tableManagerModel.currentArea == '全部'
? tableManagerModel.tablesShow.length
: tableManagerModel
.areaTableMapShow[tableManagerModel.currentArea].length,
itemCount: tableManagerModel.tablesOrReserveDataShow[i].tableList.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4,
childAspectRatio: 1,
... ... @@ -567,104 +528,23 @@ class TableManagerPageState extends State<TableManagerPage> {
),
itemBuilder: (BuildContext context, int index) {
List<t.Table> data = tableManagerModel.tableOuterList.length == 0
? []
: tableManagerModel.currentArea == '全部'
? tableManagerModel.tablesShow
: tableManagerModel
.areaTableMapShow[tableManagerModel.areas[i].name];
// if (index == data.length || data.length == 0) {
// return InkWell(
// onTap: () async {
// List<String> areas = [];
// for (int i = 0; i < tableManagerModel.areas.length; i++) {
// areas.add(tableManagerModel.areas[i].name);
// }
// //添加桌位弹框
// await DialogUtil.openCreateTableDialog(
// context, areas, i, personNumList,
// onTap: (Map<String, String> value) async {
// print(value);
// // 'areaname':
// // areas[currentAreaIndex],
// // 'name': controller.text,
// // 'pnumMin': pnumMin,
// // 'pnumMax': pnumMax
// //添加桌位 接口参数带整合???
// // 以下是旧的不去,明天添加桌位接口
// String rid;
// for (Area item in tableManagerModel.areas) {
// if (item.name == value['areaname']) {
// rid = item.rid;
// }
// }
// Map<String, String> params = {
// 'rid': rid,
// 'name': value['name'],
// };
// if (value['pnumMin'] != '') {
// params['pnum'] = value['pnumMin'];
// }
// if (value['pnumMax'] != '') {
// params['most_pnum'] = value['pnumMax'];
// }
// bool success =
// await tableManagerModel.addTable(context, params);
// print(success);
// if (success) {
// Utils.showToast('添加成功!');
// // TableOuter tableOuter = TableOuter();
// // tableOuter.name = value;
// // tableOuter.list = [];
// // tableManagerModel.tableOuterList.add(tableOuter);
// // tableManagerModel.initData();
// // Timer(
// // Duration(milliseconds: 500),
// // () => _areaController.jumpTo(
// // _areaController.position.maxScrollExtent));
// // await tableManagerModel
// // .getTableList(context);
// // await tableManagerModel
// // .initData();
// await tableManagerModel.refreshTable(context);
// }
// });
// },
// child: Container(
// child: DottedBorder(
// dashPattern: [5, 5, 5, 5],
// borderType: BorderType.RRect,
// radius: Radius.circular(ScreenUtil().setWidth(20)),
// // padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
// color: MyColours.color_E0E0E0,
// strokeWidth: ScreenUtil().setWidth(2),
// child: ClipRRect(
// borderRadius: BorderRadius.all(
// Radius.circular(ScreenUtil().setWidth(20))),
// child: Container(
// height: ScreenUtil().screenWidth -
// ScreenUtil().setWidth(12 * 3 - 10 * 2),
// width: ScreenUtil().screenWidth -
// ScreenUtil().setWidth(12 * 3 - 10 * 2),
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Image.asset(Utils.getImgPath('add_store'),
// width: ScreenUtil().setWidth(32)),
// ],
// ),
// ),
// ),
// )));
// } else {
return Selector<TableManagerModel, t.Table>(
// List<t.Table> data = tableManagerModel.tableOuterList.length == 0
// ? []
// : tableManagerModel.currentArea == '全部'
// ? tableManagerModel.tablesShow
// : tableManagerModel.areaTableMapShow[
// tableManagerModel.tablesOrReserveDataShow[i].name];
TableListReserve data =
tableManagerModel.tablesOrReserveDataShow[i].tableList[index];
return Selector<TableManagerModel, TableListReserve>(
shouldRebuild: (pre, next) => true,
selector: (context, model) => data[index],
selector: (context, model) => data,
builder: (context, table, _) {
return FTableItem(table,
canSelected: true, selectTables: tableManagerModel.selectTables,
return TableItemOrReserve(table,
canSelected: true,
selectTables: tableManagerModel.selectTablesOrReserve,
onSelected: (table) {
if (table.signStr == '已预订') {
if (table.sign == '10') {
... ... @@ -674,19 +554,17 @@ class TableManagerPageState extends State<TableManagerPage> {
} else {
//进入订座详情页面
NavigatorUtil.goNotebookDetailPage(
context,
tableManagerModel.tableMap[table.id].id,
tableManagerModel.tableMap[table.id].uid);
context, table.notebookId, data.reserveList.uid);
}
} else {
setState(() {
if ((table as t.Table).selected) {
tableManagerModel.selectTables.add(table);
if ((table as TableListReserve).selected) {
tableManagerModel.selectTablesOrReserve.add(table);
} else {
tableManagerModel.selectTables
tableManagerModel.selectTablesOrReserve
.removeWhere((t) => t.id == table.id);
}
if (tableManagerModel.selectTables.length == 0) {
if (tableManagerModel.selectTablesOrReserve.length == 0) {
// wechatNotification = true;
_clearData();
}
... ... @@ -728,7 +606,7 @@ class TableManagerPageState extends State<TableManagerPage> {
// ((int.parse((table as t.Table).enable) + 1) % 2)
// .toString();
// if ((table as t.Table).enable == "1") {
// for (Area area in tableManagerModel.areas) {
// for (Area area in tableManagerModel.tablesOrReserveDataShow) {
// if (area.name ==
// tableManagerModel.currentArea) {
// if (table.sign != '5' && table.sign != '1') {
... ... @@ -739,7 +617,7 @@ class TableManagerPageState extends State<TableManagerPage> {
// }
// }
// } else {
// for (Area area in tableManagerModel.areas) {
// for (Area area in tableManagerModel.tablesOrReserveDataShow) {
// if (area.name ==
// tableManagerModel.currentArea) {
// if (table.sign != '5' && table.sign != '1') {
... ... @@ -762,10 +640,7 @@ class TableManagerPageState extends State<TableManagerPage> {
// }
// }
// });
},
fromPage: 'table_manage',
tableMap: tableManagerModel.tableMap,
rid: "");
}, tableMap: tableManagerModel.tableMap, rid: "");
},
);
// }
... ... @@ -2167,7 +2042,7 @@ class TableManagerPageState extends State<TableManagerPage> {
_onlyReserve() async {
bool isShow = true; //是否需要弹窗 “预订失败!”
SunReserveInfoModel _model =
await tableManagerModel.setReserveInfo(context, (v) {
await tableManagerModel.setReserveInfoOrReseve(context, (v) {
if (v) {
isShow = true;
} else {
... ... @@ -2367,11 +2242,12 @@ class TableManagerPageState extends State<TableManagerPage> {
height: ScreenUtil().setWidth(60),
child: ListView.builder(
padding: EdgeInsets.only(left: ScreenUtil().setWidth(48)),
itemCount: tableManagerModel.selectTables.length,
itemCount: tableManagerModel.selectTablesOrReserve.length,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext contxt, int index) {
t.Table table = tableManagerModel.selectTables[index];
TableListReserve table =
tableManagerModel.selectTablesOrReserve[index];
return Container(
margin:
EdgeInsets.only(right: ScreenUtil().setWidth(20)),
... ... @@ -2399,9 +2275,10 @@ class TableManagerPageState extends State<TableManagerPage> {
InkWell(
onTap: () {
//删除已经选择的桌位
tableManagerModel.selectTables
tableManagerModel.selectTablesOrReserve
.removeWhere((t) => t.id == table.id);
if (tableManagerModel.selectTables.length ==
if (tableManagerModel
.selectTablesOrReserve.length ==
0) {
// wechatNotification = true;
_clearData();
... ... @@ -2522,7 +2399,7 @@ class TableManagerPageState extends State<TableManagerPage> {
_wechatReserve(bool isWechat) async {
bool isShow = true; //是否需要弹窗 “预订失败!”
SunReserveInfoModel _model =
await tableManagerModel.setReserveInfo(context, (v) {
await tableManagerModel.setReserveInfoOrReseve(context, (v) {
if (v) {
isShow = true;
} else {
... ... @@ -2613,7 +2490,7 @@ class TableManagerPageState extends State<TableManagerPage> {
ddateIndex = null;
youhui = '选择优惠';
couponSelectIndex = 0;
tableManagerModel.selectTables = [];
tableManagerModel.selectTablesOrReserve = [];
wechatNotification = true;
showPhoneHistory = false; //显示客户历史记录
_baseIndoProvider.userHistorys.clear();
... ... @@ -2630,18 +2507,30 @@ class TableManagerPageState extends State<TableManagerPage> {
if (showErro != '短信余额不足,请充值短信条数') {
showErro = '';
}
for (t.Table item in tableManagerModel.tablesShow) {
item.selected = false;
}
tableManagerModel.areaTableMapShow.forEach((key, value) {
value.forEach((element) {
tableManagerModel.tablesOrReserveData.forEach((element) {
element.tableList.forEach((element) {
element.selected = false;
});
});
tableManagerModel.tablesOrReserveDataShow.forEach((element) {
element.tableList.forEach((element) {
element.selected = false;
});
});
// for (t.Table item in tableManagerModel.tablesShow) {
// item.selected = false;
// }
// tableManagerModel.areaTableMapShow.forEach((key, value) {
// value.forEach((element) {
// element.selected = false;
// });
// });
tableManagerModel.notifyListeners();
}
/**
///选中的桌子widget
Widget _selectTableWidgetSms() {
return InkWell(
... ... @@ -2749,11 +2638,11 @@ class TableManagerPageState extends State<TableManagerPage> {
child: ListView.builder(
padding:
EdgeInsets.only(left: ScreenUtil().setWidth(48)),
itemCount: tableManagerModel.selectTables.length,
itemCount: tableManagerModel.selectTablesOrReserve.length,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext contxt, int index) {
t.Table table = tableManagerModel.selectTables[index];
TableListReserve table = tableManagerModel.selectTablesOrReserve[index];
return Container(
margin: EdgeInsets.only(
right: ScreenUtil().setWidth(20)),
... ... @@ -2781,10 +2670,10 @@ class TableManagerPageState extends State<TableManagerPage> {
InkWell(
onTap: () {
//删除已经选择的桌位
tableManagerModel.selectTables
tableManagerModel.selectTablesOrReserve
.removeWhere((t) => t.id == table.id);
if (tableManagerModel
.selectTables.length ==
.selectTablesOrReserve.length ==
0) {
// wechatNotification = true;
_clearData();
... ... @@ -3216,6 +3105,8 @@ class TableManagerPageState extends State<TableManagerPage> {
)));
}
*/
_smsReserve() async {
if (!noticeSms) {
if (myModel.smsInfo == '0') {
... ... @@ -3310,19 +3201,19 @@ class TableManagerPageState extends State<TableManagerPage> {
cusdem = customController.text;
}
bool isShow = true; //是否需要弹窗 “预订失败!”
SunReserveInfoModel _model = await tableManagerModel.setReserveInfo(context,
(v) {
SunReserveInfoModel _model = await tableManagerModel
.setReserveInfoOrReseve(context, (v) {
if (v) {
isShow = true;
} else {
isShow = false;
}
},
needKeep: true,
pnum: pnum,
cusdem: cusdem,
tempTime: ddateHm == '选填' ? null : ddateHm,
guest: guest);
needKeep: true,
pnum: pnum,
cusdem: cusdem,
tempTime: ddateHm == '选填' ? null : ddateHm,
guest: guest);
if (_model != null &&
ObjectUtil.isNotEmpty(_model.row) &&
ObjectUtil.isNotEmpty(_model.row.id)) {
... ... @@ -3483,8 +3374,8 @@ class TableManagerPageState extends State<TableManagerPage> {
//构建常用备注
List<Widget> _buildAlwayItems() {
List<Widget> tables = [];
if (tableManagerModel.selectTables.length < 6) {
for (t.Table table in tableManagerModel.selectTables) {
if (tableManagerModel.selectTablesOrReserve.length < 6) {
for (TableListReserve table in tableManagerModel.selectTablesOrReserve) {
tables.add(Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10),
... ... @@ -3536,7 +3427,7 @@ class TableManagerPageState extends State<TableManagerPage> {
borderRadius:
BorderRadius.circular(ScreenUtil().setWidth(10))),
child: Text(
'等${tableManagerModel.selectTables.length}个桌位',
'等${tableManagerModel.selectTablesOrReserve.length}个桌位',
style: TextStyle(
fontSize: ScreenUtil().setSp(26),
color: MyColours.color_199095,
... ... @@ -3553,7 +3444,7 @@ class TableManagerPageState extends State<TableManagerPage> {
borderRadius:
BorderRadius.circular(ScreenUtil().setWidth(10))),
child: Text(
tableManagerModel.selectTables[i].name,
tableManagerModel.selectTablesOrReserve[i].name,
style: TextStyle(
fontSize: ScreenUtil().setSp(36),
color: MyColours.color_ffffff,
... ... @@ -3574,10 +3465,7 @@ class TableManagerPageState extends State<TableManagerPage> {
tableManagerModel.returnDayDateStr(tableManagerModel.dateTimeSelect);
tableManagerModel.selectWeekAndLunarCalendar = tableManagerModel
.returnWeekAndLunarCalendar(tableManagerModel.dateTimeSelect, context);
bool success = await tableManagerModel.getReserveList(context,
needLoading: false,
showMsg: true,
showloading: true,
bool success = await tableManagerModel.getTableListOrReserve(context,
selfDismiss: true);
Loading.hideLoading(context);
... ... @@ -3636,10 +3524,7 @@ class TableManagerPageState extends State<TableManagerPage> {
if (day != null) {
tableManagerModel.createDateText1(context, day);
bool success = await tableManagerModel
.getReserveList(context,
needLoading: false,
showMsg: true,
showloading: true,
.getTableListOrReserve(context,
selfDismiss: true);
Loading.hideLoading(context);
... ... @@ -3806,16 +3691,12 @@ class TableManagerPageState extends State<TableManagerPage> {
),
VEmptyView(10),
model.pageState != PageState.Success
model.pageStateOrReserve != PageState.Success
? Expanded(
child: ExceptionPage(
pageState: model.pageState,
pageState: model.pageStateOrReserve,
callback: () {
if (tableManagerModel.tableOuterList.isEmpty) {
tableManagerModel.getTableList(context);
} else {
tableManagerModel.getReserveList(context);
}
tableManagerModel.getTableListOrReserve(context);
},
emptyMsg: "暂时没有桌位哦",
emptyImg: "empty_search",
... ... @@ -3835,167 +3716,38 @@ class TableManagerPageState extends State<TableManagerPage> {
HEmptyView(20),
Expanded(
child: ListView.builder(
itemCount: tableManagerModel.areas.length ==
0
? 0
: tableManagerModel.areas.length + 1,
itemCount: tableManagerModel
.tablesOrReserveDataShow.length,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemBuilder:
(BuildContext contxt, int index) {
// if (index ==
// tableManagerModel.areas.length +
// 1 ||
// tableManagerModel.areas.length == 0) {
// return InkWell(
// onTap: () async {
// //添加区域弹框
// await DialogUtil
// .openCreateAreaDialog(context,
// onTap: (value) async {
// print(value);
// //添加区域
// bool success =
// await tableManagerModel
// .addTableAreas(
// context, value);
// print(success);
// if (success) {
// Utils.showToast('添加成功!');
// tableManagerModel.currentArea =
// value;
// await tableManagerModel
// .refreshTable(context);
// // await tableManagerModel
// // .getTableList(context,
// // needLoading: false);
// // tableManagerModel.initData();
// // setState(() {
// // updateMenu();
// // });
// // _scrollToIndex(widget
// // .tableManagerModel
// // .areas
// // .length);
// }
// });
// },
// child: Column(
// children: [
// VEmptyView(20),
// DottedBorder(
// dashPattern: [5, 5, 5, 5],
// borderType: BorderType.RRect,
// // radius: Radius.circular(
// // ScreenUtil().setWidth(10)),
// // padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
// color: MyColours.color_199095,
// strokeWidth:
// ScreenUtil().setWidth(2),
// child: ClipRRect(
// borderRadius: BorderRadius
// .all(Radius.circular(
// ScreenUtil()
// .setWidth(10))),
// child: Container(
// height: ScreenUtil()
// .setWidth(25 * 2),
// width: ScreenUtil()
// .setWidth(70 * 2),
// child: Column(
// mainAxisAlignment:
// MainAxisAlignment
// .center,
// children: [
// Image.asset(
// Utils.getImgPath(
// 'add_area'),
// width: ScreenUtil()
// .setWidth(24)),
// ],
// ),
// ),
// ),
// )
// ],
// ),
// );
// } else {
if (index == 0) {
return InkWell(
onTap: () {
setState(() {
isSelected = true;
tableManagerModel.currentArea =
'全部';
// tableManagerModel.tablesShow =
// tableManagerModel
// .tabl;
});
},
child: Container(
// width: ScreenUtil().setWidth(104 * 2),
height: ScreenUtil().setWidth(80),
margin: EdgeInsets.only(
right: ScreenUtil().setWidth(15),
top: ScreenUtil().setWidth(20),
),
padding: EdgeInsets.symmetric(
horizontal:
ScreenUtil().setWidth(14),
vertical:
ScreenUtil().setWidth(10)),
alignment: Alignment.center,
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
color: isSelected
? MyColours.color_199095
: MyColours.color_ffffff,
border: Border.all(
color:
MyColours.color_E0E0E0,
width: ScreenUtil()
.setWidth(2))),
child: Text(
'全部',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: isSelected
? MyColours.color_ffffff
: MyColours.color_333333,
fontSize:
ScreenUtil().setSp(24),
decoration:
TextDecoration.none,
fontWeight:
FontWeight.normal),
),
),
);
} else {
return AreaItemTable(
model.areas[index - 1],
tableManagerModel.currentArea,
(area) {
setState(() {
isSelected = false;
tableManagerModel.selectNumber =
index - 1;
tableManagerModel.currentArea =
tableManagerModel
.areas[index - 1].name;
// tableManagerModel.currentTables =
// tableManagerModel
// .areaTableMapShow[
// tableManagerModel
// .currentArea];
// _anmationMenu();
});
return AreaItemTableOrReserve(
tableManagerModel
.tablesOrReserveDataShow[index],
(area) {
tableManagerModel
.tablesOrReserveDataShow
.forEach((element) {
element.select = false;
});
}
setState(() {
// isSelected = false;
area.select = true;
tableManagerModel.selectNumber =
index;
// tableManagerModel.currentArea =
// tableManagerModel
// .areas[index - 1].name;
// tableManagerModel.currentTables =
// tableManagerModel
// .areaTableMapShow[
// tableManagerModel
// .currentArea];
// _anmationMenu();
});
});
// }
},
)),
... ... @@ -4003,18 +3755,42 @@ class TableManagerPageState extends State<TableManagerPage> {
onTap: () {
setState(() {
model.swichState = !model.swichState;
if (model.swichState) {
model.areaTableMapShow =
tableManagerModel
.areaTableMapCanNote;
model.tablesShow =
tableManagerModel.tablesCanNote;
} else {
model.areaTableMapShow =
model.areaTableMap;
model.tablesShow = model.tablesAll;
}
});
if (model.swichState) {
//把没有预订和宴会的桌子筛选出来显示
model.tablesOrReserveData
.forEach((element) {
if (element.tableList != null &&
element.tableList.length > 0) {
List<TableListReserve> tableList =
[];
element.tableList
.forEach((element1) {
if (element1.reserveList ==
null &&
element1.banquetList ==
null) {
//空桌子
tableList.add(element1);
}
});
model
.tablesOrReserveDataShow[model
.tablesOrReserveDataShow
.indexWhere((elementShow) =>
elementShow.id ==
element.id)]
.tableList = tableList;
}
});
} else {
model.tablesOrReserveDataShow =
model.tablesOrReserveData.toList();
}
setState(() {});
},
child: Container(
margin: EdgeInsets.only(
... ... @@ -4069,7 +3845,7 @@ class TableManagerPageState extends State<TableManagerPage> {
],
),
),
if (tableManagerModel.currentArea != null)
if (tableManagerModel.selectNumber != null)
Expanded(
// flex: 2,
child: Container(
... ... @@ -4079,20 +3855,22 @@ class TableManagerPageState extends State<TableManagerPage> {
color: Color.fromRGBO(249, 249, 249, 1),
child: item(
tableManagerModel.selectNumber))),
tableManagerModel.selectTables.length > 0
? wechatNotification
? _selectTableWidgetWechat()
: Expanded(
flex: 5, child: _selectTableWidgetSms())
tableManagerModel.selectTablesOrReserve.length > 0
?
// wechatNotification
// ?
_selectTableWidgetWechat()
// : Expanded(
// flex: 5, child: _selectTableWidgetSms())
: SizedBox()
]))
// return CCMenuPage.builder(
// tableManagerModel: tableManagerModel,
// itemCount: tableManagerModel.areas.length,
// itemCount: tableManagerModel.tablesOrReserveDataShow.length,
// onTap: (index) async {},
// tabBuilder: (BuildContext context, int index) {
// if (index == tableManagerModel.areas.length ||
// tableManagerModel.areas.length == 0) {
// if (index == tableManagerModel.tablesOrReserveDataShow.length ||
// tableManagerModel.tablesOrReserveDataShow.length == 0) {
// return Column(
// children: [
// VEmptyView(20),
... ...
... ... @@ -399,7 +399,7 @@ class FeastModel extends ChangeNotifier {
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
if (error is MyError)
return false;
});
if (baseResp.code == Constant.status_success) {
... ...
... ... @@ -30,14 +30,14 @@ class StoreBaseIndoProvider with ChangeNotifier {
String _dataKey = "data";
///根据商家ID获取商家信息
Future<GetSellerInfoSunModel> getSellerById(BuildContext context) async {
Future<GetSellerInfoSunModel> getSellerById(BuildContext context,{bool showLoading = true}) async {
Map<String, String> params = {
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.post, HttpUrl.get_seller_info,
data: params)
data: params,showLoading:showLoading )
.catchError((error) {
print(error.toString());
});
... ...
... ... @@ -27,6 +27,7 @@ import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import '../models/get_board_model.dart';
import '../models/table_or_reserve_model.dart';
import '../models/user.dart';
import '../widgets/loading.dart';
import 'notebook_model.dart';
... ... @@ -70,24 +71,138 @@ class TableManagerModel with ChangeNotifier {
String doltStr = '';
DateTime dateTimeSelect;
int selectNumber;
List dailyList = []; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
List<FeastBoardModel> banquetByDateData = []; //宴会看板数据/宴会预订的数据
List<Notebook> noteBooks;
PageState pageState;
PageState pageStateOrReserve;
bool showLoading = false;
List<TableListReseveSunModel> tablesOrReserveData = []; //桌位页面数据接口重组
List<TableListReseveSunModel> tablesOrReserveDataShow = []; //桌位页面数据接口重组
List<TableListReserve> selectTablesOrReserve = []; //选择的桌位
TableManagerModel() {
print('fdsfs');
String tableSp = App.sp.getString('table_list');
String tableSp = App.sp.getString('table_list_or_reserve');
if (tableSp == null) {
pageState = PageState.Loading;
pageStateOrReserve = PageState.Loading;
} else {
tableOuterList = getSpTableList();
tablesAll = getSpTableAll();
pageState = PageState.Success;
initData(needKeep: false);
getSpTableListOr();
// initData(needKeep: false);
}
}
List<TableListReseveSunModel> getSpTableListOr() {
String tableList = App.sp.getString('table_list_or_reserve');
if (tableList == null) {
return [];
}
List<TableListReseveSunModel> temp = [];
List<TableListReseveSunModel> tempShow = [];
List list = json.decode(tableList);
if (list.length > 0) {
list.forEach((element) {
temp.add(TableListReseveSunModel.fromJson2(element));
print(temp);
tempShow.add(TableListReseveSunModel.fromJson2(element));
});
}
selectNumber = 0;
tablesOrReserveData = temp;
tablesOrReserveDataShow = tempShow;
pageStateOrReserve = PageState.Success;
}
Future<String> getUserAccountTypeById(BuildContext context,
{showLoading = false, bool selfDismiss = false}) async {
Map<String, String> params = {
'uid': Provider.of<UserModel>(context, listen: false).user.openid,
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.get_user_account_type_by_id,
data: params, showLoading: showLoading, selfDismiss: selfDismiss)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
});
String accountType = '1';
if (baseResp == null) return accountType;
if (baseResp.code == Constant.status_success) {
if (baseResp.data is Map) {
accountType = baseResp.data['account_type'] ?? '1';
}
} else {
Utils.showToast(baseResp.msg ?? "");
}
return accountType;
}
// 获取商家桌位列表及对应预订数据
Future<bool> getTableListOrReserve(BuildContext context,
{showLoading = false, bool selfDismiss = false}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'x': '1',
'y': '200',
"rdate": _getRdate(),
"ddate_solt": currTimeIndex.toString(),
"keywords": "",
"sort": "1"
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.get_table_list_or_reserve,
data: params, showLoading: showLoading, selfDismiss: selfDismiss)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
pageStateOrReserve = PageState.ConnectivityError;
notifyListeners();
});
if (baseResp == null) return false;
if (baseResp.code == Constant.status_success) {
tablesOrReserveData =
TableListReseveModel.fromJson(baseResp.responseData).data;
tablesOrReserveDataShow =
TableListReseveModel.fromJson(baseResp.responseData).data;
if (tablesOrReserveData.length == 0) {
pageStateOrReserve = PageState.Empty;
} else {
List<TableListReserve> tableListOrReserveDataAll = []; //桌位页面数据接口重组 --全部
tablesOrReserveData.forEach((element) {
tableListOrReserveDataAll.addAll(element.tableList);
});
TableListReseveSunModel data0 = TableListReseveSunModel();
data0.name = '全部';
data0.select = true;
data0.tableList = tableListOrReserveDataAll;
tablesOrReserveData.insert(0, data0);
tablesOrReserveDataShow.insert(0, data0);
selectNumber = 0;
App.sp.setString(
'table_list_or_reserve', json.encode(tablesOrReserveDataShow));
pageStateOrReserve = PageState.Success;
}
} else {
pageStateOrReserve = PageState.ConnectivityError;
Utils.showToast(baseResp.msg ?? "");
}
notifyListeners();
}
List<TableOuter> getSpTableList() {
... ... @@ -168,6 +283,122 @@ class TableManagerModel with ChangeNotifier {
}
//初始化时间
initTimeTable(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
dateTime = DateTime.now();
dateText = returnDate(dateTime);
dateTimeSelect = dateTime;
// morning = '07:00-10:00';
// noon = '11:00-14:30';
// night = '16:00-21:00';
morning =
userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning;
noon = userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon;
night = userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night;
userModel.user.morning.isEmpty
? dailyMap.putIfAbsent("morning", () => "")
: dailyMap.putIfAbsent("morning", () => _getHourAndMinute(morning, 1));
userModel.user.noon.isEmpty
? dailyMap.putIfAbsent("noon", () => "")
: dailyMap.putIfAbsent("noon", () => _getHourAndMinute(noon, 2));
userModel.user.night.isEmpty
? dailyMap.putIfAbsent("night", () => "")
: dailyMap.putIfAbsent("night", () => _getHourAndMinute(night, 3));
if (dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00"))) {
//未过早市
currTimeIndex = 1;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00"))) {
//过了早市,未过午市
currTimeIndex = 2;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
night.split("-")[1] +
":00"))) {
//过了午市,未过晚市
currTimeIndex = 3;
} else {
//过了晚市
currTimeIndex = 3;
}
selectDateStr = returnDayDateStr(dateTime);
selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(dateTime, context);
getTableListOrReserve(context);
userModel.user.morning.isEmpty
? dailyMap.putIfAbsent("morning", () => "")
: dailyMap.putIfAbsent("morning", () => _getHourAndMinute(morning, 1));
userModel.user.noon.isEmpty
? dailyMap.putIfAbsent("noon", () => "")
: dailyMap.putIfAbsent("noon", () => _getHourAndMinute(noon, 2));
userModel.user.night.isEmpty
? dailyMap.putIfAbsent("night", () => "")
: dailyMap.putIfAbsent("night", () => _getHourAndMinute(night, 3));
// List temp = [];
// String tableSp = App.sp.getString('table_list');
// if (tableSp == null) {
// temp = await getTableList(context);
// } else {
// // List list = json.decode(tableSp);
// // list.forEach((element) {
// // temp.add(TableOuter.fromJson2(element));
// // });
// temp = getSpTableList();
// }
// if (temp.length > 0) {
// await getReserveList(context, selfDismiss: true);
// // await getReserveList(context,
// // needLoading: false,
// // showMsg: true,
// // showloading: true,
// // selfDismiss: true);
// if (showLoading) {
// Loading.hideLoading(context);
// }
// } else {
// // pageState = PageState.Empty;
// pageState = PageState.Success;
// notifyListeners();
// }
}
//初始化时间
initTime(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
dateTime = DateTime.now();
... ... @@ -416,6 +647,187 @@ class TableManagerModel with ChangeNotifier {
}
///录入更改内部预订
Future<SunReserveInfoModel> setReserveInfoOrReseve(
BuildContext context, CustomCallBack callback,
{needKeep = false,
Guest guest,
String pnum,
String tempTime,
String cusdem,
String reserveType = '普通用餐'}) async {
if (selectTablesOrReserve.length == 0) {
Utils.showToast('请选择桌位');
return null;
}
if (guest != null && guest.phone != null) {
//判断是否可以输入自己的手机号
CustomerProvider customerProvider =
Provider.of<CustomerProvider>(context, listen: false);
await customerProvider.getSellerGuest(context);
if (customerProvider.isselfphone) {
//录入客户电话时不能用自己手机号(管店)
User user = Provider.of<UserModel>(context, listen: false).user;
if (user.userphone == guest.phone ||
user.userphoneMyPage == guest.phone) {
Utils.showToast('录入客户电话时不能用自己手机号!');
callback(false);
return null;
}
}
}
bool sucess = await getReserveList(context,
showMsg: true,
needLoading: false,
needKeep: true,
showloading: true,
needOrReseve: true);
if (sucess) {
callback(true);
} else {
//提示过了,不需要提示
callback(false);
}
if (sucess) {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
//
if (tempTime == null) {
// if (currTimeIndex == 1) {
// tempTime = '08:00';
// } else if (currTimeIndex == 2) {
// tempTime = '12:00';
// } else if (currTimeIndex == 3) {
// tempTime = '18:00';
// }
if (currTimeIndex == 1) {
tempTime = '08:00';
if (userModel.user.morning != '' && userModel.user.morning != null) {
List tempDate = userModel.user.morning.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 2) {
tempTime = '12:00';
if (userModel.user.noon != '' && userModel.user.noon != null) {
List tempDate = userModel.user.noon.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 3) {
tempTime = '18:00';
if (userModel.user.night != '' && userModel.user.night != null) {
List tempDate = userModel.user.night.split("-");
tempTime = tempDate[0];
}
}
}
String ymd = DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
String timeStr = ymd + ' ' + tempTime + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
LogUtil.v(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
for (TableListReserve item in selectTablesOrReserve) {
// if (item.selected) {
tableSelectInfo += ',${item.id}';
// }
}
print(tableSelectInfo);
if (tableSelectInfo.startsWith(',')) {
tableSelectInfo = tableSelectInfo.substring(1);
}
print(tableSelectInfo);
String rdate = '';
String keys = '';
if (currTimeIndex == 1) {
//早市
keys = 'morning';
} else if (currTimeIndex == 2) {
//午市
keys = 'noon';
} else if (currTimeIndex == 3) {
//晚市
keys = 'night';
}
if (keys != '') {
List temp = dailyMap[keys];
String timeStrStart = ymd + ' ' + temp.first + ':00';
String timeStrEnd = ymd + ' ' + temp.last + ':00';
int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
String start = '${startM}'.substring(0, 10);
String end = '${endM}'.substring(0, 10);
rdate = start + '-' + end;
}
Map<String, String> params = {
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
'note_name': userModel.user.account,
'type': "0", //内部预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
// 'is_set_ddate': '1',
"channel": '5',
"uid": userModel.user.openid,
// 'sex': '',
// 'phone': '',
// "cusdem": ''
};
if (pnum != null && pnum != '') {
params["actual_pum"] = pnum; //预定用餐人数
// params["pnum"] = pnum; //预定用餐人数
}
if (cusdem != null) {
params['cusdem'] = cusdem;
}
if (guest != null) {
if (guest.rnameStr != '') {
params['rname'] = guest.rnameStr;
}
if (guest.sex != '0' && guest.sex != null) {
params['sex'] = guest.sex;
}
if (guest.phone != null) {
params['phone'] = guest.phone;
}
}
params['reserve_type'] = reserveType;
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.get, HttpUrl.set_reserve_info,
data: params)
.catchError((error) {
print(error.toString());
});
SunReserveInfoModel itemModel;
if (baseResp == null) return itemModel;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return itemModel;
}
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast("录入预订订单失败,请重试!");
}
return itemModel;
}
}
}
///录入更改内部预订
Future<SunReserveInfoModel> setReserveInfo(
BuildContext context, CustomCallBack callback,
{needKeep = false,
... ... @@ -810,7 +1222,8 @@ class TableManagerModel with ChangeNotifier {
//获取已预订列表
getReserveList(BuildContext context,
{bool needLoading = true,
{bool needOrReseve = false,
bool needLoading = true,
bool needKeep = false,
bool showMsg = false,
bool showloading = false,
... ... @@ -986,14 +1399,14 @@ class TableManagerModel with ChangeNotifier {
selectTables = tempSelectTables;
Utils.showToast('${msg}已被预订,请选择其他桌位!');
print(tableMap);
initData(needKeep: needKeep);
initData(needKeep: needKeep, needOrReseve: needOrReseve);
// notifyListeners();
return false;
}
print(tableMap);
initData(needKeep: needKeep);
initData(needKeep: needKeep, needOrReseve: needOrReseve);
return true;
}
... ... @@ -1100,7 +1513,7 @@ class TableManagerModel with ChangeNotifier {
}
//初始桌位数据
initData({bool needKeep = false}) {
initData({bool needKeep = false, bool needOrReseve = false}) {
areas.clear();
areaTableMap.clear();
List<t.Table> tempTableAll = [];
... ... @@ -1195,13 +1608,17 @@ class TableManagerModel with ChangeNotifier {
if (currentArea != null && currentArea != '') {
// tablesShow = areaTableMapShow[currentArea];
List keys = areaTableMapShow.keys.toList();
selectNumber = keys.indexOf(currentArea);
if (!needOrReseve) {
selectNumber = keys.indexOf(currentArea);
}
}
}
} else {
if (currentArea != null && currentArea != '') {
tablesShow = areaTableMapShow[currentArea];
selectNumber = areaTableMapShow.length;
if (!needOrReseve) {
selectNumber = areaTableMapShow.length;
}
}
// pageState = PageState.Empty;
pageState = PageState.Success;
... ...
... ... @@ -386,6 +386,10 @@ class UserModel with ChangeNotifier {
//退出清空桌位数据
App.sp.remove('table_list');
}
if (App.sp.containsKey('table_list_or_reserve')) {
//退出清空桌位数据
App.sp.remove('table_list_or_reserve');
}
if (App.sp.containsKey('specid')) {
//退出清空销售计价
App.sp.remove('specid');
... ...