Commit 7490aaeeae9c630f0f81907de02828acebedd600

Authored by wdn127929
1 parent ae4fe892

桌位管理页面----合并桌位

... ... @@ -32,6 +32,7 @@ class Table {
String isLock; //是否被合并上锁
String isMerge; //是否打开桌位合并开关
String tids; //被合并桌位tids
String lockTname; //被谁合并了
//获取桌位类型
String get tidStr {
... ... @@ -107,6 +108,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, isExitsClass:$isExitsClass,max: $max, low: $low, is_lock: $isLock, is_merge: $isMerge,tids:$tids}';
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, is_lock: $isLock, is_merge: $isMerge,tids:$tids,lock_tname:$lockTname}';
}
}
... ...
... ... @@ -30,7 +30,8 @@ Table _$TableFromJson(Map<String, dynamic> json) {
..selected = json['selected'] as bool
..isLock = json['is_lock'] as String
..isMerge = json['is_merge'] as String
..tids = json['tids'] as String;
..tids = json['tids'] as String
..lockTname = json['lock_tname'] as String;
}
Map<String, dynamic> _$TableToJson(Table instance) => <String, dynamic>{
... ... @@ -56,5 +57,6 @@ Map<String, dynamic> _$TableToJson(Table instance) => <String, dynamic>{
'selected': instance.selected,
'is_lock': instance.isLock,
'is_merge': instance.isMerge,
'tids': instance.tids
'tids': instance.tids,
'lock_tname': instance.lockTname
};
... ...
... ... @@ -46,13 +46,15 @@ class MergeTableSelectPage extends StatefulWidget {
final String fromPage;
final String tid;
final String tableid;
final String tids; //用于判断当前桌位选中的桌子,islock == '1',的桌子还可以被选中,不随当前页面操作选中不选中改变
MergeTableSelectPage(
{this.canChoose = false,
this.tableList,
this.fromPage,
this.tid,
this.tableid});
this.tableid,
this.tids});
@override
State<StatefulWidget> createState() {
... ... @@ -205,6 +207,7 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
if (item1.id == table.id) {
item1.selected = true;
// selectNum++;
selectTables.add(tableListToTable(table));
// if (!tableList.contains(item)) {
... ... @@ -214,7 +217,17 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
}
}
//如果当前的桌子全部选中,则全选按钮---选中状态
item.isAll = item.list.every((element) => element.selected);
List<t.Table> temp = [];
temp.addAll(item.list);
temp.removeWhere((element) {
if (element.isLock == '1' &&
!widget.tids.split(',').contains(element.id)) {
return true;
}
return false;
});
item.isAll = temp.every((element) => element.selected);
// selectAreaAll[]
print(selectTables);
... ... @@ -457,7 +470,11 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
onTap: () {
tableOuterList[i].isAll = !tableOuterList[i].isAll;
tableOuterList[i].list.forEach((element) {
element.selected = tableOuterList[i].isAll;
if (element.isLock == '1' &&
!widget.tids.split(',').contains(element.id)) {
} else {
element.selected = tableOuterList[i].isAll;
}
});
if (tableOuterList[i].isAll) {
... ... @@ -469,7 +486,11 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
//加入当前区域全部桌子
tableOuterList[i].list.forEach((value) {
selectTables.add(value);
if (value.isLock == '1' &&
!widget.tids.split(',').contains(value.id)) {
} else {
selectTables.add(value);
}
});
//全选
... ... @@ -634,50 +655,66 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
shouldRebuild: (pre, next) => true,
selector: (context, model) => data[index],
builder: (context, table, _) {
return MergeTableItem(data[index], canSelected: true,
onSelected: (t.Table table) {
print(areaTableMap.keys);
// for (String item in areaTableMap.keys) {
// for (t.Table tableItem in areaTableMap[item]) {
// tableItem.selected = false;
// selectNum = 0;
// if (table.id == tableItem.id) {
// selectTableId = table.id;
return MergeTableItem(
data[index],
canSelected: true,
onSelected: (t.Table table) {
print(areaTableMap.keys);
// for (String item in areaTableMap.keys) {
// for (t.Table tableItem in areaTableMap[item]) {
// tableItem.selected = false;
// selectNum = 0;
// if (table.id == tableItem.id) {
// selectTableId = table.id;
// selectTables = [];
// selectNum++;
if (table.selected) {
//选中
selectTables.add(table);
Map temp = {
'tid': selectTables.length > 0 ? selectTables[0].id : '',
'tname':
selectTables.length > 0 ? selectTables[0].name : ''
};
// print(selectNum);
print(selectTables);
//检测当前选中区域全选按钮状态更新
// selectTables = [];
// selectNum++;
if (table.selected) {
//选中
selectTables.add(table);
Map temp = {
'tid':
selectTables.length > 0 ? selectTables[0].id : '',
'tname':
selectTables.length > 0 ? selectTables[0].name : ''
};
// print(selectNum);
print(selectTables);
//检测当前选中区域全选按钮状态更新
} else {
//取消选中
selectTables
.removeWhere((element) => table.id == element.id);
}
tableOuterList[i].isAll = tableOuterList[i]
.list
.every((element) => element.selected);
} else {
//取消选中
selectTables
.removeWhere((element) => table.id == element.id);
}
List<t.Table> temp = [];
temp.addAll(tableOuterList[i].list);
temp.removeWhere((element) {
if (element.isLock == '1' &&
!widget.tids.split(',').contains(element.id)) {
return true;
}
return false;
});
tableOuterList[i].isAll =
temp.every((element) => element.selected);
setState(() {});
setState(() {});
// NavigatorUtil.goTableMergeTableSelectPage(context,
// tid: table.id, tname: table.name);
// setState(() {
// tableItem.selected = true;
// });
// }
// }
// }
}, fromPage: widget.fromPage, tableMap: tableMap, rid: null);
// NavigatorUtil.goTableMergeTableSelectPage(context,
// tid: table.id, tname: table.name);
// setState(() {
// tableItem.selected = true;
// });
// }
// }
// }
},
fromPage: widget.fromPage,
tableMap: tableMap,
rid: null,
tids: widget.tids,
);
},
);
// }
... ... @@ -922,7 +959,7 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
gradientStart: MyColours.color_DBDBDB,
gradientEnd: MyColours.color_DBDBDB,
onPressed: () {
Navigator.pop(context);
Navigator.of(context).pop();
},
),
RoundButton(
... ... @@ -969,25 +1006,21 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
// Navigator.of(context).pop(temp);
// // }
// } else {
if (selectTables.length > 0) {
String tid = "";
for (t.Table table
in selectTables) {
tid += table.id + ",";
}
if (selectTables.length > 0) {
tid = tid.substring(
0, tid.length - 1);
}
Map temp = {
'object': selectTables,
'tid': tid
};
Navigator.of(context).pop(temp);
} else {
Navigator.of(context).pop();
String tid = "";
for (t.Table table in selectTables) {
tid += table.id + ",";
}
if (selectTables.length > 0) {
tid = tid.substring(
0, tid.length - 1);
}
Map temp = {
'object': selectTables,
'tid': tid
};
Navigator.of(context).pop(temp);
}
// }
},
... ... @@ -1004,6 +1037,24 @@ class MergeTableSelectPageState extends State<MergeTableSelectPage> {
));
}
_backLastPage() {
if (selectTables.length > 0) {
String tid = "";
for (t.Table table in selectTables) {
tid += table.id + ",";
}
if (selectTables.length > 0) {
tid = tid.substring(0, tid.length - 1);
}
Map temp = {'object': selectTables, 'tid': tid};
Navigator.of(context).pop(temp);
} else {
Map temp = {'object': [], 'tid': ''};
Navigator.of(context).pop(temp);
}
}
tableToTableList(t.Table table) {
TableList _tableList = TableList(
'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
... ...
... ... @@ -410,6 +410,7 @@ class MyTableManagerHomePageState extends State<MyTableManagerHomePage> {
isLock: table.isLock ?? '0',
isMerge: table.isMerge ?? '0',
tableid: table.id,
table:table,
selectTables: selectTables,
onTapDel: (Map<String, dynamic> value) async {
Map<String, String> params = {
... ...
... ... @@ -486,8 +486,9 @@ class MyTableManageHomeModel with ChangeNotifier {
});
if (baseResp.code == Constant.status_success) {
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data'] == 1) {
if (baseResp.responseData['data'] != null) {
// &&
// baseResp.responseData['data'] == 1
return true;
} else {
Utils.showToast(baseResp.msg ?? '合并桌位失败!');
... ...
... ... @@ -1110,7 +1110,8 @@ class NavigatorUtil {
Map object,
String fromPage = 'table_manage',
String tableidNow,
String tid = ''}) {
String tid = '',
String tids}) {
// if (invoice != null) {
// return _navigateTo(context,
// "${Routes.merge_table_select_page}?invoice=${FluroConvertUtils.object2string(invoice)}",
... ... @@ -1118,10 +1119,10 @@ class NavigatorUtil {
// }
if (object != null) {
return _navigateTo(context,
"${Routes.merge_table_select_page}?tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}");
"${Routes.merge_table_select_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}");
}
return _navigateTo(context,
"${Routes.merge_table_select_page}?tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose",
"${Routes.merge_table_select_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose",
replace: replace);
}
}
... ...
... ... @@ -1788,6 +1788,7 @@ var feastInvoiceDetailPageHandle = new Handler(
var mergeTableSelectPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
String fromPage = params["fromPage"].first;
String tids = params["tids"].first;
String tableidNow = params["tableidNow"].first;
bool canChoose = params["canChoose"].first == "true" ? true : false;
... ... @@ -1806,5 +1807,6 @@ var mergeTableSelectPageHandle = new Handler(
tableid: tableidNow,
tableList: res,
canChoose: canChoose,
fromPage: fromPage));
fromPage: fromPage,
tids:tids));
});
... ...
... ... @@ -2064,6 +2064,7 @@ class DialogUtil {
String isLock = '0',
String isMerge = '0',
String tableid,
t.Table table,
List<t.Table> selectTables,
CustomCallBackMap onTap,
CustomCallBackMap onTapDel}) async {
... ... @@ -2348,7 +2349,7 @@ class DialogUtil {
// Spacer(),
Expanded(
child: Text(
'桌位23333',
table.lockTname ?? '',
maxLines: 1,
textAlign: TextAlign.right,
overflow:
... ... @@ -2425,6 +2426,7 @@ class DialogUtil {
.goMergeTableSelectPage(
context,
tableidNow: tableid,
tids: table.tids,
object: {
'object': selectTables
});
... ... @@ -2433,16 +2435,18 @@ class DialogUtil {
.goMergeTableSelectPage(
context,
tableidNow: tableid,
tids: table.tids,
);
}
if (object != null) {
selectTables = object['object'];
tids = object['tid'];
} else {
selectTables = []; //没有选择桌子
tids = '';
}
// else {
// selectTables = []; //没有选择桌子
// tids = '';
// }
tableNames = '';
selectTables.forEach((element) {
tableNames += '${element.name}、';
... ...
... ... @@ -16,6 +16,7 @@ class MergeTableItem extends StatefulWidget {
final int height; //高度
final bool need;
final String tids;
MergeTableItem(this.table,
{this.onSelected,
... ... @@ -24,7 +25,8 @@ class MergeTableItem extends StatefulWidget {
this.fromPage = 'new',
this.rid,
this.tableMap,
this.need = true});
this.need = true,
this.tids});
@override
State<StatefulWidget> createState() {
... ... @@ -56,6 +58,13 @@ class MergeTableItemState extends State<MergeTableItem> {
}
}
bool locked = false;
List<String> tids = [];
if (table.isLock == '1' && !widget.tids.split(',').contains(table.id)) {
locked = true;
}
return GestureDetector(
onTap: () {
if (widget.canSelected && widget.fromPage == 'change') {
... ... @@ -95,11 +104,13 @@ class MergeTableItemState extends State<MergeTableItem> {
widget.onSelected(table);
} else if (widget.fromPage == 'table_manage' ||
widget.fromPage == 'room_manage') {
setState(() {
table.selected = !(table.selected ?? false);
});
if (!locked) {
setState(() {
table.selected = !(table.selected ?? false);
});
widget.onSelected(table);
widget.onSelected(table);
}
} else if (widget.fromPage == 'tablePhoto') {
// setState(() {
// table.selected = true;
... ... @@ -127,7 +138,9 @@ class MergeTableItemState extends State<MergeTableItem> {
: MyColours.color_ffffff,
border: Border.all(
width: ScreenUtil().setWidth(2),
color: MyColours.color_E0E0E0),
color: locked
? MyColours.color_BFC4D4
: MyColours.color_438E93),
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(10)))),
child: Stack(
... ... @@ -155,12 +168,15 @@ class MergeTableItemState extends State<MergeTableItem> {
table.name,
maxLines: 1,
style: TextStyle(
color:
(widget.need && signStr == '已预订' && !isSelf)
? MyColours.color_333333
color: (widget.need &&
signStr == '已预订' &&
!isSelf)
? MyColours.color_333333
: locked
? MyColours.color_BFC4D4
: (widget.canSelected && table.selected)
? MyColours.color_ffffff
: MyColours.color_333333,
: MyColours.color_438E93,
fontSize: ScreenUtil().setSp(30),
decoration: TextDecoration.none,
fontWeight: FontWeight.bold),
... ... @@ -194,9 +210,12 @@ class MergeTableItemState extends State<MergeTableItem> {
style: TextStyle(
color: signStr == '已预订' && !isSelf
? MyColours.color_353535
: (widget.canSelected && table.selected)
? MyColours.color_ffffff
: MyColours.color_353535,
: locked
? MyColours.color_BFC4D4
: (widget.canSelected &&
table.selected)
? MyColours.color_ffffff
: MyColours.color_438E93,
fontSize: ScreenUtil().setSp(14),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
... ... @@ -297,7 +316,7 @@ class MergeTableItemState extends State<MergeTableItem> {
: MyColours.color_999999,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(
ScreenUtil().setWidth(10)),
ScreenUtil().setWidth(8)),
// topRight:
// Radius.circular(ScreenUtil().setWidth(8)),
// bottomRight: Radius.circular(
... ... @@ -305,9 +324,7 @@ class MergeTableItemState extends State<MergeTableItem> {
)),
child: Text(table.tidStr,
style: TextStyle(
color:
MyColours.color_ffffff
,
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(14),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal)),
... ...