Commit 7431bfc00c4ea7240b73bc2df833bfa430cb6aeb

Authored by wdn127929
1 parent 419c4926

前50

... ... @@ -9,6 +9,7 @@ import 'package:one_key/provider/notebook_model.dart';
import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
... ... @@ -395,6 +396,21 @@ class NoteBookPageState extends State<NoteBookPage> {
],
)),
),
Spacer(),
Container(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
child: GestureDetector(
onTap: () {
NavigatorUtil.goStatisticsPage(context);
},
child: Text(
"统计列表",
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(36),
fontWeight: FontWeight.bold),
))),
],
),
);
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:video_compress/video_compress.dart';
typedef ClickCallback = void Function(String value);
enum TimeType { TimeTypeStart, TimeTypeEnd, TimeTypeDefalt }
class StatisticsPage extends StatefulWidget {
StatisticsPage({Key key}) : super(key: key);
@override
_StatisticsPageState createState() => _StatisticsPageState();
}
class _StatisticsPageState extends State<StatisticsPage> {
String dateS = "开始日期"; //开始时间
String dateE = "结束日期"; //结束时间
DateTime datetimeS; //开始时间
DateTime datetimeE; //结束时间
DateTime dateNow; //当前日期
bool showWidget = false;
List<String> selectList;
int currentIndex = 0;
TextEditingController controller = TextEditingController();
@override
void initState() {
super.initState();
datetimeS = DateTime.now();
datetimeE = datetimeS.add(Duration(days: 1));
// dateS = DateUtil.formatDate(datetimeS, format: DateFormats.y_mo_d);
// dateE = DateUtil.formatDate(datetimeE, format: DateFormats.y_mo_d);
dateNow = datetimeS;
selectList = ['预订次数多到少', '消费总金额高到低', '人均高到低'];
controller.text = '50';
}
///筛选条件
Widget _menuWidget(DateTime date) {
return Container(
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(26)),
height: ScreenUtil().setWidth(100),
child: Row(
children: [
GestureDetector(
onTap: () {
DialogUtil.showCalendarDialog(context, date).then((day) {
if (day != null) {}
});
},
child: Container(
child: Text(
dateS,
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(26)),
),
),
),
],
),
);
}
_buttonChoose(String title, ClickCallback callback,
{TimeType timeType = TimeType.TimeTypeDefalt}) {
return InkWell(
onTap: () {
callback(title);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10),
vertical: ScreenUtil().setWidth(6)),
height: ScreenUtil().setWidth(48),
decoration: BoxDecoration(
border: Border.all(
width: ScreenUtil().setWidth(2),
color: MyColours.color_199095),
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10))),
child: Row(
children: [
Text(
title,
style: TextStyle(
color: title == '开始日期' || title == '结束日期' || title == '排序'
? MyColours.color_999999
: MyColours.color_199095,
fontSize: ScreenUtil().setWidth(26)),
),
timeType != TimeType.TimeTypeDefalt
? SizedBox()
: HEmptyView(10),
timeType != TimeType.TimeTypeDefalt
? SizedBox()
: Image.asset(
Utils.getImgPath('enter_order_arrow'),
width: ScreenUtil().setWidth(20),
height: ScreenUtil().setWidth(10),
)
],
)));
}
_selectWidget(List<String> data, CustomCallBack onTap) {
return Container(
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
border: Border.all(
color: MyColours.color_cccccc,
width: ScreenUtil().setWidth(2))),
width: ScreenUtil().setWidth(132 * 2),
constraints: BoxConstraints(
maxHeight: ScreenUtil().setWidth(104 * 2),
),
child: ListView.builder(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20)),
itemCount: data.length,
itemBuilder: (context, index) {
return InkWell(
onTap: () {
onTap(index);
},
child: Container(
padding:
EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: MyColours.color_efefef,
width: data.length - 1 == index
? 0
: ScreenUtil().setWidth(2)))),
child: Text(data[index],
style: TextStyle(
color: MyColours.color_199095,
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(28))),
),
);
}));
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'统计列表',
rightImgName: '清空',
onTapRight: () {
//
},
onTap: () {
Navigator.pop(context);
},
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
child: Container(
height: ScreenUtil().setWidth(100),
child: Row(
children: [
_buttonChoose(dateS, (value) {
DialogUtil.showCalendarDialog(context, datetimeS)
.then((day) {
if (day != null) {
setState(() {
datetimeS = day;
dateS = DateUtil.formatDate(datetimeS,
format: DateFormats.y_mo_d);
});
}
});
}, timeType: TimeType.TimeTypeStart),
HEmptyView(10),
Text(
'至',
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_199095,
fontWeight: FontWeight.bold),
),
HEmptyView(10),
_buttonChoose(dateE, (value) {
DialogUtil.showCalendarDialog(context, datetimeE)
.then((day) {
if (day != null) {
setState(() {
datetimeE = day;
dateE = DateUtil.formatDate(datetimeE,
format: DateFormats.y_mo_d);
});
}
});
}, timeType: TimeType.TimeTypeEnd),
HEmptyView(10),
Stack(clipBehavior: Clip.none, children: [
_buttonChoose('排序', (value) {
setState(() {
showWidget = !showWidget;
print('1');
});
}),
Positioned(
left: 0,
top: ScreenUtil().setWidth(58),
child: Material(
color: Colors.transparent,
child: Offstage(
offstage: showWidget,
child: _selectWidget(selectList, (index) {
setState(() {
showWidget = !showWidget;
currentIndex = index;
});
}),
))),
])
],
),
)),
Container(
alignment: Alignment.centerLeft,
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
color: MyColours.color_f5f5f5,
// width: double.infinity,
height: ScreenUtil().setWidth(80),
child: Row(
children: [
Text(
'显示前 ',
style: TextStyle(
fontSize: ScreenUtil().setSp(26),
color: MyColours.color_333333),
),
Container(
alignment: Alignment.center,
margin: EdgeInsets.symmetric(
vertical: ScreenUtil().setWidth(20)),
// alignment: Alignment.centerLeft,
// height: ScreenUtil().setWidth(80),
constraints: BoxConstraints(
maxWidth: ScreenUtil().setWidth(50 * 2)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: ScreenUtil().setWidth(2),
color: MyColours.color_199095))),
child: IntrinsicWidth(
child: TextField(
controller: controller,
maxLines: 1,
// inputFormatters: [
// LengthLimitingTextInputFormatter(9),
// WhitelistingTextInputFormatter.digitsOnly
// ],
// inputFormatters: [
// NumLengthInputFormatter(
// decimalLength: 2, integerLength: 6),
// ],
// focusNode: numberFocusNode,
//光标颜色
cursorColor: MyColours.color_199095,
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(26),
color: MyColours.color_199095),
textAlign: TextAlign.center,
textInputAction: TextInputAction.done,
decoration: InputDecoration(
isDense: true,
hintText: "输入",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(26),
),
contentPadding: EdgeInsets.zero, //ios 17
border: InputBorder.none,
),
onChanged: (value) {},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //隐藏键盘
// _updateMoney();
},
keyboardType:
TextInputType.numberWithOptions(decimal: true),
)))
],
)),
],
),
);
}
}
... ...
import 'package:flutter/material.dart';
class StatisticsProvider with ChangeNotifier {}
... ...
... ... @@ -319,4 +319,10 @@ class NavigatorUtil {
"${Routes.table_photo_manager}?tid=${tid}&tname=${Uri.encodeComponent(tname)}",
replace: replace);
}
/// 统计
static Future<dynamic> goStatisticsPage(BuildContext context,
{replace = false}) {
return _navigateTo(context, "${Routes.statistics_page}", replace: replace);
}
}
... ...
... ... @@ -38,6 +38,7 @@ import 'package:one_key/pages/my/contant_page.dart';
import 'package:one_key/pages/my/my_integral_page.dart';
import 'package:one_key/pages/my/receive_orders_time_set.dart';
import 'package:one_key/pages/my/remark_manager_page.dart';
import 'package:one_key/pages/notebook/statistics_page.dart';
import 'package:one_key/pages/online_check/invoice_detail_page.dart';
import 'package:one_key/pages/online_check/online_check_detail_page.dart';
import 'package:one_key/pages/online_check/online_check_edit_page.dart';
... ... @@ -56,6 +57,7 @@ import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/order_food_provider.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/remark_manager_model.dart';
import 'package:one_key/provider/statistics_provider.dart';
import 'package:one_key/provider/table_photo_manager_provider.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/utils/fluro_convert_utils.dart';
... ... @@ -144,11 +146,11 @@ var handleInvicationHandler = new Handler(
FluroConvertUtils.fluroCnParamsDecode(params["ddateStr"].first);
String phone = params["phone"].first;
String ddate_solt = params["ddate_solt"].first;
String tid = params["tid"].first;
String tid = params["tid"].first;
return ChangeNotifierProvider<BaseIndoProvider>(
create: (_) => BaseIndoProvider(),
child:
InvicationPage(rid, tableInfo, ddate, ddateStr, phone, ddate_solt,tid));
child: InvicationPage(
rid, tableInfo, ddate, ddateStr, phone, ddate_solt, tid));
});
// 发短信
... ... @@ -470,3 +472,16 @@ var tablePhotoManagerHandler = new Handler(
// return ChangeNotifierProvider<UploadImageProvider>(
// create: (_) => UploadImageProvider(), child: EnterStoreFrontPhotoPage());
});
///统计
var statisticsPageHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
// CouponSunModel couponSunModel = CouponSunModel.fromJson(json.decode(
// FluroConvertUtils.fluroCnParamsDecode(params["couponSunModel"].first)));
// String tid = params["tid"].first;
// String tname = params["tname"].first;
return ChangeNotifierProvider<StatisticsProvider>(
create: (_) => StatisticsProvider(), child: StatisticsPage());
// return ChangeNotifierProvider<UploadImageProvider>(
// create: (_) => UploadImageProvider(), child: EnterStoreFrontPhotoPage());
});
... ...
... ... @@ -44,6 +44,7 @@ class Routes {
static String my_integral_page = "/my_integral_page"; //我的积分
static String my_contant_page = "/my_contant_page"; //我的联系人
static String table_photo_manager = "/table_photo_manager"; //桌位照片管理
static String statistics_page = "/statistics_page"; //统计页
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -95,5 +96,6 @@ class Routes {
router.define(my_integral_page, handler: myIntegralPageHandler);
router.define(my_contant_page, handler: myContantPageHandler);
router.define(table_photo_manager, handler: tablePhotoManagerHandler);
router.define(statistics_page, handler: statisticsPageHandler);
}
}
... ...