Commit b28663c3d41c768967720714ef472da9201681b0

Authored by wdn127929
1 parent 17e37967

选择桌位添加区域和桌位功能OK

1 import 'dart:ffi'; 1 import 'dart:ffi';
2 2
  3 +import 'package:dotted_border/dotted_border.dart';
3 import 'package:flutter/material.dart'; 4 import 'package:flutter/material.dart';
4 import 'package:flutter_screenutil/flutter_screenutil.dart'; 5 import 'package:flutter_screenutil/flutter_screenutil.dart';
5 import 'package:one_key/constant/state.dart'; 6 import 'package:one_key/constant/state.dart';
@@ -12,6 +13,7 @@ import 'package:one_key/provider/notebook_detail_change_model.dart'; @@ -12,6 +13,7 @@ import 'package:one_key/provider/notebook_detail_change_model.dart';
12 import 'package:one_key/provider/notebook_model.dart'; 13 import 'package:one_key/provider/notebook_model.dart';
13 import 'package:one_key/provider/user_model.dart'; 14 import 'package:one_key/provider/user_model.dart';
14 import 'package:one_key/res/colors.dart'; 15 import 'package:one_key/res/colors.dart';
  16 +import 'package:one_key/utils/dialog_util.dart';
15 import 'package:one_key/utils/utils.dart'; 17 import 'package:one_key/utils/utils.dart';
16 import 'package:one_key/widgets/app_bar.dart'; 18 import 'package:one_key/widgets/app_bar.dart';
17 import 'package:one_key/widgets/area_item.dart'; 19 import 'package:one_key/widgets/area_item.dart';
@@ -19,6 +21,7 @@ import 'package:one_key/widgets/common_button.dart'; @@ -19,6 +21,7 @@ import 'package:one_key/widgets/common_button.dart';
19 import 'package:one_key/widgets/page_exception.dart'; 21 import 'package:one_key/widgets/page_exception.dart';
20 import 'package:one_key/widgets/table_item.dart'; 22 import 'package:one_key/widgets/table_item.dart';
21 import 'package:one_key/models/table.dart' as t; 23 import 'package:one_key/models/table.dart' as t;
  24 +import 'package:one_key/widgets/v_empty_view.dart';
22 import 'package:provider/provider.dart'; 25 import 'package:provider/provider.dart';
23 import 'dart:convert' as convert; 26 import 'dart:convert' as convert;
24 27
@@ -52,24 +55,26 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -52,24 +55,26 @@ class SelectTablePageState extends State<SelectTablePage> {
52 Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单 55 Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
53 56
54 String currentArea; //当前选中区域 57 String currentArea; //当前选中区域
  58 + List<String> personNumList = [];
55 59
56 @override 60 @override
57 void initState() { 61 void initState() {
58 // TODO: implement initState 62 // TODO: implement initState
59 super.initState(); 63 super.initState();
  64 + for (int i = 1; i < 31; i++) {
  65 + personNumList.add(i.toString());
  66 + }
60 WidgetsBinding.instance.addPostFrameCallback((_) { 67 WidgetsBinding.instance.addPostFrameCallback((_) {
61 getTableList(); 68 getTableList();
62 }); 69 });
63 } 70 }
64 71
65 //获取桌位列表 72 //获取桌位列表
66 - getTableList() async { 73 + getTableList({needLoading = true}) async {
67 UserModel userModel = Provider.of<UserModel>(context, listen: false); 74 UserModel userModel = Provider.of<UserModel>(context, listen: false);
68 Map<String, String> params = {"sellerid": userModel.user.sellerid}; 75 Map<String, String> params = {"sellerid": userModel.user.sellerid};
69 - tableOuterList = await _chooseTableModel.getTableList(  
70 - context,  
71 - params,  
72 - ); 76 + tableOuterList = await _chooseTableModel.getTableList(context, params,
  77 + needLoading: needLoading);
73 for (TableOuter item in tableOuterList) { 78 for (TableOuter item in tableOuterList) {
74 // if (item.name == "推荐") { 79 // if (item.name == "推荐") {
75 // itemModelList.remove(item); 80 // itemModelList.remove(item);
@@ -85,17 +90,30 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -85,17 +90,30 @@ class SelectTablePageState extends State<SelectTablePage> {
85 } 90 }
86 } 91 }
87 } 92 }
88 - if (tableOuterList.length == 0) {  
89 - _chooseTableModel.pageState = PageState.Empty; 93 + if (tableOuterList.isEmpty) {
  94 + _chooseTableModel.pageState = PageState.Success;
90 _chooseTableModel.notifyListeners(); 95 _chooseTableModel.notifyListeners();
  96 + } else {
  97 + _getReserveList(userModel.user.sellerid, needLoading: needLoading);
91 } 98 }
92 - if (_chooseTableModel.pageState == PageState.Success) {  
93 - _getReserveList(userModel.user.sellerid);  
94 - } 99 + // if (_chooseTableModel.pageState == PageState.Success) {
  100 +
  101 + // }
  102 + }
  103 +
  104 + refreshTable(context) async {
  105 + await getTableList(needLoading: false);
  106 + // if (temp.length > 0) {
  107 + // _getReserveList(context, needLoading: false);
  108 + // } else {
  109 + // // pageState = PageState.Empty;
  110 + // _chooseTableModel.pageState = PageState.Success;
  111 + // _chooseTableModel.notifyListeners();
  112 + // }
95 } 113 }
96 114
97 //获取已预订列表 115 //获取已预订列表
98 - _getReserveList(String sid) async { 116 + _getReserveList(String sid, {needLoading = true}) async {
99 NoteBookModel model = new NoteBookModel(); 117 NoteBookModel model = new NoteBookModel();
100 Map<String, String> params = { 118 Map<String, String> params = {
101 "sid": sid, 119 "sid": sid,
@@ -106,7 +124,8 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -106,7 +124,8 @@ class SelectTablePageState extends State<SelectTablePage> {
106 "keywords": "", 124 "keywords": "",
107 "sort": "1" 125 "sort": "1"
108 }; 126 };
109 - List<Notebook> noteBooks = await model.getReserveList(context, params); 127 + List<Notebook> noteBooks =
  128 + await model.getReserveList(context, params, needLoading: needLoading);
110 for (Notebook notebook in noteBooks) { 129 for (Notebook notebook in noteBooks) {
111 if (notebook.tid.isEmpty) continue; 130 if (notebook.tid.isEmpty) continue;
112 if (notebook.status == "1" || 131 if (notebook.status == "1" ||
@@ -120,11 +139,17 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -120,11 +139,17 @@ class SelectTablePageState extends State<SelectTablePage> {
120 } 139 }
121 } 140 }
122 print(tableMap); 141 print(tableMap);
123 - initData(); 142 + if (needLoading) {
  143 + initData();
  144 + } else {
  145 + initData(needRetain: true);
  146 + }
124 } 147 }
125 148
126 //初始桌位数据 149 //初始桌位数据
127 - initData() { 150 + initData({bool needRetain = false}) {
  151 + areas.clear();
  152 + areaTableMap.clear();
128 for (TableOuter outer in tableOuterList) { 153 for (TableOuter outer in tableOuterList) {
129 int count = 0; 154 int count = 0;
130 for (t.Table table in outer.list) { 155 for (t.Table table in outer.list) {
@@ -151,10 +176,18 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -151,10 +176,18 @@ class SelectTablePageState extends State<SelectTablePage> {
151 Area area = Area(); 176 Area area = Area();
152 area.name = outer.name; 177 area.name = outer.name;
153 area.count = count; 178 area.count = count;
  179 + area.rid = outer.list.length == 0 ? outer.rid : outer.list[0].rid;
154 areas.add(area); 180 areas.add(area);
155 } 181 }
156 - currentArea = areaTableMap.keys.first;  
157 - setState(() {}); 182 + if (!needRetain) {
  183 + currentArea = areaTableMap.keys.first;
  184 + }
  185 + if (areas.length == 1) {
  186 + currentArea = areaTableMap.keys.first;
  187 + }
  188 +
  189 + _chooseTableModel.pageState = PageState.Success;
  190 + _chooseTableModel.notifyListeners();
158 } 191 }
159 192
160 //获取一天开始-结束时间字符串 193 //获取一天开始-结束时间字符串
@@ -214,14 +247,41 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -214,14 +247,41 @@ class SelectTablePageState extends State<SelectTablePage> {
214 color: MyColours.color_f1f1f1, 247 color: MyColours.color_f1f1f1,
215 child: ListView.builder( 248 child: ListView.builder(
216 itemBuilder: (context, index) { 249 itemBuilder: (context, index) {
217 - return AreaItem(areas[index], currentArea, (area) {  
218 - setState(() {  
219 - currentArea = (area as Area).name; 250 + if (areas.isEmpty || index == areas.length) {
  251 + return InkWell(
  252 + onTap: () async {
  253 + //添加区域弹框
  254 + await DialogUtil.openCreateAreaDialog(context,
  255 + onTap: (value) async {
  256 + print(value);
  257 + //添加区域
  258 + bool success = await _chooseTableModel
  259 + .addTableAreas(context, value);
  260 + print(success);
  261 + if (success) {
  262 + Utils.showToast('添加成功!');
  263 +
  264 + await getTableList(needLoading: false);
  265 + }
  266 + });
  267 + },
  268 + child: Center(
  269 + child: Image.asset(
  270 + Utils.getImgPath('add_area'),
  271 + width: ScreenUtil().setWidth(32)),
  272 + ),
  273 + );
  274 + } else {
  275 + return AreaItem(areas[index], currentArea,
  276 + (area) {
  277 + setState(() {
  278 + currentArea = (area as Area).name;
  279 + });
220 }); 280 });
221 - }); 281 + }
222 }, 282 },
223 itemExtent: ScreenUtil().setHeight(207), 283 itemExtent: ScreenUtil().setHeight(207),
224 - itemCount: areas.length, 284 + itemCount: areas.length + 1,
225 ), 285 ),
226 ), 286 ),
227 Expanded( 287 Expanded(
@@ -238,26 +298,127 @@ class SelectTablePageState extends State<SelectTablePage> { @@ -238,26 +298,127 @@ class SelectTablePageState extends State<SelectTablePage> {
238 crossAxisCount: 3, 298 crossAxisCount: 3,
239 childAspectRatio: 8 / 9), 299 childAspectRatio: 8 / 9),
240 itemBuilder: (context, index) { 300 itemBuilder: (context, index) {
241 - return TableItem(  
242 - areaTableMap[currentArea][index],  
243 - onSelected: (table) {  
244 - if ((table as t.Table).selected) {  
245 - selectTables.add(table);  
246 - widget.tableList  
247 - .add(tableToTableList(table));  
248 - } else {  
249 - widget.tableList.removeWhere(  
250 - (t) => t.id == table.id);  
251 - selectTables.removeWhere(  
252 - (t) => t.id == table.id);  
253 - }  
254 - },  
255 - canSelected: true,  
256 - fromPage: 'change',  
257 - tableMap: tableMap,  
258 - rid: widget.rid); 301 + if (index ==
  302 + areaTableMap[currentArea].length ||
  303 + areaTableMap[currentArea].length == 0) {
  304 + return InkWell(
  305 + onTap: () async {
  306 + List<String> areasTemp = [];
  307 + for (int i = 0;
  308 + i < areas.length;
  309 + i++) {
  310 + areasTemp.add(areas[i].name);
  311 + }
  312 +
  313 + //添加桌位弹框
  314 + await DialogUtil
  315 + .openCreateTableDialog(
  316 + context,
  317 + areasTemp,
  318 + areasTemp
  319 + .indexOf(currentArea),
  320 + personNumList, onTap:
  321 + (Map<String, String>
  322 + value) async {
  323 + print(value);
  324 + // 'areaname':
  325 + // areas[currentAreaIndex],
  326 + // 'name': controller.text,
  327 + // 'pnumMin': pnumMin,
  328 + // 'pnumMax': pnumMax
  329 + //添加桌位 接口参数带整合???
  330 + // 以下是旧的不去,明天添加桌位接口
  331 + String rid;
  332 + for (Area item in areas) {
  333 + if (item.name ==
  334 + value['areaname']) {
  335 + rid = item.rid;
  336 + }
  337 + }
  338 + Map<String, String> params = {
  339 + 'rid': rid,
  340 + 'name': value['name'],
  341 + };
  342 + if (value['pnumMin'] != '') {
  343 + params['pnum'] =
  344 + value['pnumMin'];
  345 + }
  346 + if (value['pnumMax'] != '') {
  347 + params['most_pnum'] =
  348 + value['pnumMax'];
  349 + }
  350 + bool success =
  351 + await _chooseTableModel
  352 + .addTable(
  353 + context, params);
  354 + print(success);
  355 + if (success) {
  356 + Utils.showToast('添加成功!');
  357 + refreshTable(context);
  358 + }
  359 + });
  360 + },
  361 + child: Container(
  362 + margin: EdgeInsets.all(
  363 + ScreenUtil().setWidth(15)),
  364 + child: DottedBorder(
  365 + dashPattern: [5, 5, 5, 5],
  366 + borderType: BorderType.RRect,
  367 + radius: Radius.circular(
  368 + ScreenUtil().setWidth(10)),
  369 + // padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
  370 + color: MyColours.color_199095,
  371 + strokeWidth:
  372 + ScreenUtil().setWidth(2),
  373 + child: ClipRRect(
  374 + borderRadius: BorderRadius
  375 + .all(Radius.circular(
  376 + ScreenUtil()
  377 + .setWidth(10))),
  378 + child: Container(
  379 + height: ScreenUtil()
  380 + .setWidth(90 * 2),
  381 + width: ScreenUtil()
  382 + .setWidth(80 * 2),
  383 + child: Column(
  384 + mainAxisAlignment:
  385 + MainAxisAlignment
  386 + .center,
  387 + children: [
  388 + Image.asset(
  389 + Utils.getImgPath(
  390 + 'add_area'),
  391 + width: ScreenUtil()
  392 + .setWidth(32)),
  393 + ],
  394 + ),
  395 + ),
  396 + ),
  397 + )));
  398 + } else {
  399 + return TableItem(
  400 + areaTableMap[currentArea][index],
  401 + onSelected: (table) {
  402 + if ((table as t.Table).selected) {
  403 + selectTables.add(table);
  404 + widget.tableList
  405 + .add(tableToTableList(table));
  406 + } else {
  407 + widget.tableList.removeWhere(
  408 + (t) => t.id == table.id);
  409 + selectTables.removeWhere(
  410 + (t) => t.id == table.id);
  411 + }
  412 + },
  413 + canSelected: true,
  414 + fromPage: 'change',
  415 + tableMap: tableMap,
  416 + rid: widget.rid);
  417 + }
259 }, 418 },
260 - itemCount: areaTableMap[currentArea].length, 419 + itemCount: currentArea == null
  420 + ? 0
  421 + : areaTableMap[currentArea].length + 1,
261 )), 422 )),
262 Container( 423 Container(
263 width: double.infinity, 424 width: double.infinity,
@@ -2,22 +2,25 @@ import 'package:flutter/material.dart'; @@ -2,22 +2,25 @@ import 'package:flutter/material.dart';
2 import 'package:one_key/constant/constant.dart'; 2 import 'package:one_key/constant/constant.dart';
3 import 'package:one_key/constant/error.dart'; 3 import 'package:one_key/constant/error.dart';
4 import 'package:one_key/constant/state.dart'; 4 import 'package:one_key/constant/state.dart';
  5 +import 'package:one_key/models/area_model.dart';
5 import 'package:one_key/models/tableOuter.dart'; 6 import 'package:one_key/models/tableOuter.dart';
6 -import 'package:one_key/models/table_list.dart';  
7 import 'package:one_key/net/base_resp.dart'; 7 import 'package:one_key/net/base_resp.dart';
8 import 'package:one_key/net/dio_util.dart'; 8 import 'package:one_key/net/dio_util.dart';
9 import 'package:one_key/net/http_url.dart'; 9 import 'package:one_key/net/http_url.dart';
10 import 'package:one_key/models/table.dart' as t; 10 import 'package:one_key/models/table.dart' as t;
  11 +import 'package:one_key/provider/user_model.dart';
  12 +import 'package:one_key/utils/utils.dart';
  13 +import 'package:provider/provider.dart';
11 14
12 class ChooseTableModel with ChangeNotifier { 15 class ChooseTableModel with ChangeNotifier {
13 - List<TableList> tableList = [];  
14 PageState pageState = PageState.Loading; 16 PageState pageState = PageState.Loading;
  17 + List<TableOuter> tableOuterList = []; //区域-桌位列表
15 18
16 //获取桌位数据 19 //获取桌位数据
17 Future<List<TableOuter>> getTableList( 20 Future<List<TableOuter>> getTableList(
18 BuildContext context, Map<String, String> params, 21 BuildContext context, Map<String, String> params,
19 - {isShowLoading = true}) async {  
20 - if (isShowLoading) { 22 + {bool needLoading = true}) async {
  23 + if (needLoading) {
21 pageState = PageState.Loading; 24 pageState = PageState.Loading;
22 notifyListeners(); 25 notifyListeners();
23 } 26 }
@@ -41,15 +44,18 @@ class ChooseTableModel with ChangeNotifier { @@ -41,15 +44,18 @@ class ChooseTableModel with ChangeNotifier {
41 } 44 }
42 notifyListeners(); 45 notifyListeners();
43 }); 46 });
  47 + tableOuterList = [];
44 if (baseResp.code == Constant.status_success) { 48 if (baseResp.code == Constant.status_success) {
45 - if ((baseResp.data[0] as List).isEmpty) {  
46 - pageState = PageState.Empty; 49 + if (baseResp.data.isEmpty) {
  50 + pageState = PageState.ConnectivityError;
47 notifyListeners(); 51 notifyListeners();
48 - } else { 52 + }
  53 + if ((baseResp.data[0] as List).isEmpty) {
49 pageState = PageState.Success; 54 pageState = PageState.Success;
  55 + notifyListeners();
  56 + return [];
50 } 57 }
51 -  
52 - return (baseResp.data[0] as List).map((value) { 58 + tableOuterList = (baseResp.data[0] as List).map((value) {
53 TableOuter tableOuter = TableOuter(); 59 TableOuter tableOuter = TableOuter();
54 tableOuter.name = value["name"]; 60 tableOuter.name = value["name"];
55 tableOuter.list = (value["list"] as List).map((table) { 61 tableOuter.list = (value["list"] as List).map((table) {
@@ -57,10 +63,142 @@ class ChooseTableModel with ChangeNotifier { @@ -57,10 +63,142 @@ class ChooseTableModel with ChangeNotifier {
57 }).toList(); 63 }).toList();
58 return tableOuter; 64 return tableOuter;
59 }).toList(); 65 }).toList();
  66 + }
  67 + List<AreaSunModel> areaSunModelList = await getRegionBySellerid(context);
  68 + if (areaSunModelList != null) {
  69 + if (areaSunModelList.length > 0) {
  70 + List<String> tempTableName = []; //有桌子区域
  71 + List<String> tempAreaName = []; //全部区域
  72 + for (TableOuter itemTable in tableOuterList) {
  73 + tempTableName.add(itemTable.name);
  74 + }
  75 + for (AreaSunModel itemArea in areaSunModelList) {
  76 + tempAreaName.add(itemArea.name);
  77 + }
  78 + if (tempAreaName.length > tempTableName.length) {
  79 + for (var itemT in tempTableName) {
  80 + tempAreaName.removeWhere(
  81 + (element) => element == itemT); //全部区域移除有桌子的区域,剩下没有桌子的区域
  82 + }
  83 + for (var item in tempAreaName) {
  84 + for (AreaSunModel itemarea in areaSunModelList) {
  85 + if (item == itemarea.name) {
  86 + TableOuter tableOuter = TableOuter();
  87 + tableOuter.name = item;
  88 + tableOuter.list = [];
  89 + tableOuter.rid = itemarea.id;
  90 + tableOuterList.add(tableOuter); //区域信息包含有桌子和没有桌子两部分类型
  91 + }
  92 + }
  93 + }
  94 + }
  95 + }
  96 + }
  97 +
  98 + return tableOuterList;
  99 + }
  100 +
  101 + //添加商家桌位
  102 + Future<bool> addTable(
  103 + BuildContext context, Map<String, String> params) async {
  104 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  105 + params["sellerid"] = userModel.user.sellerid;
  106 + params["tid"] = '2';
  107 + BaseResp<dynamic> baseResp = await DioUtil()
  108 + .request<dynamic>(context, Method.get, HttpUrl.add_table,
  109 + data: params, showLoading: true)
  110 + .catchError((error) {
  111 + print(error.toString());
  112 + // if (error is MyError) {
  113 + // switch (error.type) {
  114 + // case 1:
  115 + // pageState = PageState.ConnectivityError;
  116 + // break;
  117 + // case 2:
  118 + // pageState = PageState.ConnectivityTimeOut;
  119 + // break;
  120 + // default:
  121 + // pageState = PageState.ConnectivityError;
  122 + // break;
  123 + // }
  124 + // }
  125 + // notifyListeners();
  126 + return false;
  127 + });
  128 +
  129 + if (baseResp.code == Constant.status_success) {
  130 + if (baseResp.responseData['data'] != null &&
  131 + baseResp.responseData['data'].length > 0) {
  132 + return true;
  133 + } else {
  134 + Utils.showToast(baseResp.msg ?? '新增桌位失败!');
  135 + }
60 } else { 136 } else {
61 - pageState = PageState.ConnectivityError;  
62 - notifyListeners(); 137 + Utils.showToast(baseResp.msg ?? '新增桌位失败!');
  138 + }
  139 + return false;
  140 + }
  141 +
  142 + //获取区域数据
  143 + Future<List<AreaSunModel>> getRegionBySellerid(BuildContext context) async {
  144 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  145 + Map<String, String> params = {"sellerid": userModel.user.sellerid};
  146 + BaseResp<List> baseResp = await DioUtil()
  147 + .request<List>(context, Method.get, HttpUrl.get_area_by_sellerid,
  148 + data: params, showLoading: false)
  149 + .catchError((error) {
  150 + print(error.toString());
  151 + });
  152 + List<AreaSunModel> areaSunModelList = [];
  153 + if (baseResp.code == Constant.status_success) {
  154 + if (baseResp.data.length == 1 && baseResp.data[0] is String) {
  155 + return areaSunModelList;
  156 + } else if (baseResp.data.length > 0) {
  157 + areaSunModelList = AreaModel.fromJson(baseResp.responseData).data;
  158 + }
  159 + }
  160 + return areaSunModelList;
  161 + }
  162 +
  163 + //添加商家桌位区域
  164 + Future<bool> addTableAreas(BuildContext context, String name) async {
  165 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  166 + Map<String, String> params = {
  167 + "sellerid": userModel.user.sellerid,
  168 + "name": name
  169 + };
  170 + BaseResp<dynamic> baseResp = await DioUtil()
  171 + .request<dynamic>(context, Method.get, HttpUrl.add_table_area,
  172 + data: params, showLoading: true)
  173 + .catchError((error) {
  174 + print(error.toString());
  175 + // if (error is MyError) {
  176 + // switch (error.type) {
  177 + // case 1:
  178 + // pageState = PageState.ConnectivityError;
  179 + // break;
  180 + // case 2:
  181 + // pageState = PageState.ConnectivityTimeOut;
  182 + // break;
  183 + // default:
  184 + // pageState = PageState.ConnectivityError;
  185 + // break;
  186 + // }
  187 + // }
  188 + // notifyListeners();
  189 + return false;
  190 + });
  191 +
  192 + if (baseResp.code == Constant.status_success) {
  193 + if (baseResp.responseData['data'] != null &&
  194 + baseResp.responseData['data'].length > 0) {
  195 + return true;
  196 + } else {
  197 + Utils.showToast(baseResp.msg ?? '新增区域失败!');
  198 + }
  199 + } else {
  200 + Utils.showToast(baseResp.msg ?? '新增区域失败!');
63 } 201 }
64 - return []; 202 + return false;
65 } 203 }
66 } 204 }
@@ -10,21 +10,26 @@ import 'package:one_key/provider/user_model.dart'; @@ -10,21 +10,26 @@ import 'package:one_key/provider/user_model.dart';
10 import 'package:one_key/utils/utils.dart'; 10 import 'package:one_key/utils/utils.dart';
11 import 'package:provider/provider.dart'; 11 import 'package:provider/provider.dart';
12 12
13 -class NoteBookModel extends ChangeNotifier{ 13 +class NoteBookModel extends ChangeNotifier {
  14 + List<Notebook> notebooks = []; //订单列表
14 15
15 - List<Notebook> notebooks=[];//订单列表  
16 -  
17 - String total="";//一天统计 16 + String total = ""; //一天统计
18 17
19 PageState pageState = PageState.Loading; 18 PageState pageState = PageState.Loading;
20 19
21 //获取已预订订单 20 //获取已预订订单
22 - Future<List<Notebook>> getReserveList(BuildContext context,Map<String,String> params) async { 21 + Future<List<Notebook>> getReserveList(
  22 + BuildContext context, Map<String, String> params,
  23 + {needLoading = true}) async {
  24 + if (needLoading) {
  25 + pageState = PageState.Loading;
  26 + notifyListeners();
  27 + }
23 pageState = PageState.Loading; 28 pageState = PageState.Loading;
24 notifyListeners(); 29 notifyListeners();
25 BaseResp<List> baseResp = await DioUtil() 30 BaseResp<List> baseResp = await DioUtil()
26 .request<List>(context, Method.get, HttpUrl.get_reserve_list, 31 .request<List>(context, Method.get, HttpUrl.get_reserve_list,
27 - data: params,showLoading: false) 32 + data: params, showLoading: false)
28 .catchError((error) { 33 .catchError((error) {
29 print(error.toString()); 34 print(error.toString());
30 if (error is MyError) { 35 if (error is MyError) {
@@ -42,48 +47,49 @@ class NoteBookModel extends ChangeNotifier{ @@ -42,48 +47,49 @@ class NoteBookModel extends ChangeNotifier{
42 } 47 }
43 notifyListeners(); 48 notifyListeners();
44 }); 49 });
45 - if(baseResp==null)return null;  
46 - notebooks=[]; 50 + if (baseResp == null) return null;
  51 + notebooks = [];
47 if (baseResp.code == Constant.status_success) { 52 if (baseResp.code == Constant.status_success) {
48 - notebooks=baseResp.data.map<Notebook>((value){ 53 + notebooks = baseResp.data.map<Notebook>((value) {
49 return Notebook.fromJson(value); 54 return Notebook.fromJson(value);
50 }).toList(); 55 }).toList();
51 if (notebooks.isEmpty) { 56 if (notebooks.isEmpty) {
52 - pageState = PageState.Empty; 57 + pageState = PageState.Success;
53 } else { 58 } else {
54 pageState = PageState.Success; 59 pageState = PageState.Success;
55 } 60 }
56 - }else{  
57 - Utils.showToast(baseResp.msg??""); 61 + } else {
  62 + Utils.showToast(baseResp.msg ?? "");
58 } 63 }
59 notifyListeners(); 64 notifyListeners();
60 return notebooks; 65 return notebooks;
61 } 66 }
62 67
63 //获取订单统计数目 68 //获取订单统计数目
64 - getReserveCountDay(BuildContext context,Map<String,String> params) async {  
65 - BaseResp<Map<String,dynamic>> baseResp = await DioUtil()  
66 - .request<Map<String,dynamic>>(context, Method.get, HttpUrl.reserve_count_day,  
67 - data: params,showLoading: false) 69 + getReserveCountDay(BuildContext context, Map<String, String> params) async {
  70 + BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
  71 + .request<Map<String, dynamic>>(
  72 + context, Method.get, HttpUrl.reserve_count_day,
  73 + data: params, showLoading: false)
68 .catchError((error) { 74 .catchError((error) {
69 print(error.toString()); 75 print(error.toString());
70 }); 76 });
71 - if (baseResp!=null&&baseResp.code == Constant.status_success) {  
72 - int morning=int.parse(baseResp.data["morning"].toString());  
73 - int noon=int.parse(baseResp.data["noon"].toString());  
74 - int night=int.parse(baseResp.data["night"].toString());  
75 - UserModel userModel=Provider.of<UserModel>(context,listen: false);  
76 - total="已订"+(morning+noon+night).toString();  
77 - if(userModel.user.morning.isNotEmpty){  
78 - total+=" 早市"+morning.toString(); 77 + if (baseResp != null && baseResp.code == Constant.status_success) {
  78 + int morning = int.parse(baseResp.data["morning"].toString());
  79 + int noon = int.parse(baseResp.data["noon"].toString());
  80 + int night = int.parse(baseResp.data["night"].toString());
  81 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  82 + total = "已订" + (morning + noon + night).toString();
  83 + if (userModel.user.morning.isNotEmpty) {
  84 + total += " 早市" + morning.toString();
79 } 85 }
80 - if(userModel.user.noon.isNotEmpty){  
81 - total+=" 午市"+noon.toString(); 86 + if (userModel.user.noon.isNotEmpty) {
  87 + total += " 午市" + noon.toString();
82 } 88 }
83 - if(userModel.user.night.isNotEmpty){  
84 - total+=" 晚市"+night.toString(); 89 + if (userModel.user.night.isNotEmpty) {
  90 + total += " 晚市" + night.toString();
85 } 91 }
86 notifyListeners(); 92 notifyListeners();
87 } 93 }
88 } 94 }
89 -}  
  95 +}