statistics_provider.dart
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/statics_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/utils.dart';
class StatisticsProvider with ChangeNotifier {
PageState pageState = PageState.Statics;
List<StaticsSunModel> dataStatics = [];
StaticsSunModel tableHeaderModel;
String dateS = "开始日期"; //开始时间
String dateE = "结束日期"; //结束时间
DateTime datetimeS; //开始时间
DateTime datetimeE; //结束时间
DateTime dateNow; //当前日期
bool showWidget = true;
int currentIndex = 0;
TextEditingController controller = TextEditingController();
String sortstr = '排序';
StatisticsProvider() {
tableHeaderModel = StaticsSunModel(
'顾客姓名',
'电话',
'',
'',
'',
);
tableHeaderModel.select = false;
tableHeaderModel.numstr = '序号';
tableHeaderModel.sortstr = '预订次数';
datetimeS = DateTime.now();
datetimeE = datetimeS.add(Duration(days: 1));
dateNow = datetimeS;
controller.text = '50';
}
///全选按钮方法
allSel() {
if (tableHeaderModel.select) {
for (StaticsSunModel item in dataStatics) {
item.select = false;
}
} else {
for (StaticsSunModel item in dataStatics) {
item.select = true;
}
}
needAllSel();
}
///清除
clear() {
pageState = PageState.Statics;
dateS = "开始日期"; //开始时间
dateE = "结束日期"; //结束时间
sortstr = '排序';
currentIndex = 0;
controller.text = '50';
datetimeS = DateTime.now();
datetimeE = datetimeS.add(Duration(days: 1));
showWidget = true;
notifyListeners();
}
///改变全选按钮的状态
needAllSel() {
bool _needAllSel = dataStatics.every((element) => element.select == true);
if (_needAllSel) {
tableHeaderModel.select = true;
} else {
tableHeaderModel.select = false;
}
notifyListeners();
}
///收否有选中的按钮
selectAny() {
bool selectAny = dataStatics.any((element) => element.select == true);
if (selectAny) {
return true;
}
return false;
}
//获取统计列表
Future getStatisticsList(BuildContext context, Map<String, String> params,
{needLoading = true}) async {
if (needLoading) {
pageState = PageState.Loading;
notifyListeners();
}
pageState = PageState.Loading;
notifyListeners();
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_statistics_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if (baseResp == null) return null;
if (baseResp.code == Constant.status_success) {
dataStatics = StaticsModel.fromJson(baseResp.responseData).data;
if (dataStatics.isEmpty) {
pageState = PageState.Empty;
notifyListeners();
} else {
pageState = PageState.Success;
}
} else {
pageState = PageState.ConnectivityError;
notifyListeners();
Utils.showToast(baseResp.msg ?? "");
}
return dataStatics;
}
}