Commit 09fb625641c20f821375eaf85fbf20a24c3b9aa2

Authored by wdn127929
1 parent 033e5f81

预排菜4.0-4.5UI

813 Bytes

import 'package:flutter/material.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import '../../../res/colors.dart';
import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/MyDivider.dart';
import '../../../widgets/h_empty_view.dart';
import '../../../widgets/round_button.dart';
import '../../../widgets/v_empty_view.dart';
class FinalPlanDishPage extends StatefulWidget {
FinalPlanDishPage({Key key}) : super(key: key);
@override
_FinalPlanDishPageState createState() => _FinalPlanDishPageState();
}
class _FinalPlanDishPageState extends State<FinalPlanDishPage> {
ScrollController controller = ScrollController();
Widget _laduWidget() {
// if (labelIcon[widget
// .cookBookList.labelList[index].icon] is int) {
// int ladu = labelIcon[
// widget.cookBookList.labelList[index].icon];
int ladu = 6;
List<Widget> widgetList = [];
for (var i = 0; i < ladu; i++) {
widgetList.add(Image.asset(
Utils.getImgPath('ladu'),
width: w(10),
));
}
// widgetList.add(HEmptyView(10));
return Row(
children: widgetList,
);
// }else{
// return SizedBox();
// }
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: SystemAppBar('排菜单'),
backgroundColor: MyColours.color_ffffff,
body: Column(
children: [
Container(
width: double.infinity,
// width: w(32),
height: w(48),
padding: EdgeInsets.symmetric(horizontal: w(10)),
decoration: BoxDecoration(
border: Border(
top: BorderSide(
width: w(1), color: MyColours.color_DBDBDB),
bottom: BorderSide(
width: w(1), color: MyColours.color_DBDBDB))),
// constraints: BoxConstraints(minWidth: w(20)),
child: TextField(
maxLines: 1,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16),
fontWeight: FontWeight.bold),
textAlign: TextAlign.left,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "请输入排菜名称",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: font(16),
fontWeight: FontWeight.bold),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(borderSide: BorderSide.none),
contentPadding: EdgeInsets.zero,
),
keyboardType: TextInputType.text,
textInputAction: TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
)),
Expanded(
child: ListView.builder(
itemCount: 2,
shrinkWrap: true,
controller: controller,
itemBuilder: (context, index) {
return ListView.builder(
itemCount: 2 + 1,
shrinkWrap: true,
controller: controller,
itemBuilder: (context, index) {
if (index == 0) {
return Column(
children: [
//头
Container(
width: double.infinity,
// width: w(32),
height: w(48),
padding:
EdgeInsets.symmetric(horizontal: w(10)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(1),
color:
MyColours.color_DBDBDB))),
// constraints: BoxConstraints(minWidth: w(20)),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'热菜',
style: TextStyle(
fontSize: font(16),
color: MyColours.color_515151,
fontWeight: FontWeight.bold),
),
Text(
'6道',
style: TextStyle(
fontSize: font(14),
color: MyColours.color_515151,
),
),
],
))
],
);
}
int indexReal = index - 1;
return Container(
padding: EdgeInsets.symmetric(
horizontal: w(20), vertical: w(13)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(1),
color: MyColours.color_DBDBDB))),
child: Row(
children: [
Container(
constraints:
BoxConstraints(maxWidth: w(80)),
child: Text(
'山城辣子鸡',
maxLines: 10,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: font(14),
color: MyColours.color_515151),
)),
HEmptyView(8),
_laduWidget(),
Spacer(),
Text(
'38元/份',
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: font(12),
color: MyColours.color_999999),
),
HEmptyView(28),
Text(
'38元/份',
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: font(10),
color: MyColours.color_8EBBBE),
),
HEmptyView(20),
Image.asset(
Utils.getImgPath('plan_dish_minus'),
width: w(16),
),
HEmptyView(8),
Container(
width: w(32),
height: w(16),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(r(5)),
border: Border.all(
width: w(1),
color: MyColours.color_999999)),
// constraints: BoxConstraints(minWidth: w(20)),
child: TextField(
maxLines: 1,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style: TextStyle(
color: MyColours.color_438E93,
fontSize: font(12)),
textAlign: TextAlign.center,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "数量",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: font(12),
),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(
borderSide: BorderSide.none),
contentPadding: EdgeInsets.zero,
),
keyboardType: TextInputType.number,
textInputAction: TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
)),
HEmptyView(8),
Image.asset(
Utils.getImgPath('plan_dish_add'),
width: w(16),
),
],
),
);
});
})),
Container(
padding: EdgeInsets.symmetric(horizontal: w(15), vertical: w(7)),
margin: EdgeInsets.only(
top: w(7), bottom: w(13), left: w(20), right: w(20)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
border: Border.all(width: w(1), color: MyColours.color_515151)),
child: TextField(
maxLines: 4,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style:
TextStyle(color: MyColours.color_515151, fontSize: font(12)),
textAlign: TextAlign.left,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "请输入整单备注",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: font(12),
),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(borderSide: BorderSide.none),
contentPadding: EdgeInsets.zero,
),
keyboardType: TextInputType.number,
textInputAction: TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
),
),
Container(
decoration: BoxDecoration(
border: Border(
top: BorderSide(
width: w(1), color: MyColours.color_DBDBDB))),
padding: EdgeInsets.symmetric(horizontal: w(20), vertical: w(15)),
child: Row(
children: [
Stack(
clipBehavior: Clip.none,
children: [
Image.asset(
Utils.getImgPath('plan_dish_car'),
width: w(35),
),
Positioned(
top: w(-3),
right: w(-4),
child: Container(
// width: w(16),
constraints: BoxConstraints(minWidth: w(16)),
height: w(16),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(8)),
color: MyColours.color_E34D59),
child: Text(
'23',
style: TextStyle(
fontSize: font(10),
color: MyColours.color_F6F6F6),
),
))
],
),
HEmptyView(66),
Expanded(
child: Column(
children: [
Row(
children: [
Text(
'总计:',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
Text(
'0.00',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_000000),
),
Text(
'元',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
],
),
VEmptyView(20),
Row(
children: [
Text(
'会员价:',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
Text(
'0.00',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_000000),
),
Text(
'元',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
],
)
],
)),
HEmptyView(10),
Text(
'排菜价:',
style: TextStyle(
fontSize: font(12), color: MyColours.color_515151),
),
Container(
width: w(65),
height: w(30),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
border: Border.all(
color: MyColours.color_515151, width: w(1))),
// constraints: BoxConstraints(minWidth: w(20)),
child: TextField(
maxLines: 1,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style: TextStyle(
color: MyColours.color_000000, fontSize: font(12)),
textAlign: TextAlign.center,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "0.00",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: font(12),
),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(borderSide: BorderSide.none),
contentPadding: EdgeInsets.zero,
),
keyboardType: TextInputType.number,
textInputAction: TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
)),
Text(
'元',
style: TextStyle(
fontSize: font(12), color: MyColours.color_515151),
),
],
),
),
Container(
color: MyColours.color_FAFAFA,
padding: EdgeInsets.only(
top: w(12), bottom: w(25), left: w(23), right: w(23)),
child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
RoundButton(
text: '生成预览',
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
borderColor: MyColours.color_438E93,
textColor: MyColours.color_438E93,
width: w(100),
height: w(43),
radius: r(5),
fontSize: 32,
isBold: false,
onPressed: () {
// NavigatorUtil.goFinalPlanDishPage(context);
},
),
HEmptyView(30),
Expanded(
child: RoundButton(
text: '保存排菜单',
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
height: w(43),
radius: r(5),
fontSize: 36,
isBold: false,
onPressed: () {
// NavigatorUtil.goFinalPlanDishPage(context);
},
),
)
],
))
],
),
);
}
}
... ...
import 'package:flutter/material.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
... ... @@ -26,7 +27,9 @@ class _PlanNewDishFirstPageState extends State<PlanNewDishFirstPage> {
return Row(
children: [
HEmptyView(86),
Image.asset(Utils.getImgPath(select ? 'plan_dish_select' : 'plan_dish_unselect'),
Image.asset(
Utils.getImgPath(
select ? 'plan_dish_select' : 'plan_dish_unselect'),
width: w(20)),
HEmptyView(10),
Text(
... ... @@ -204,6 +207,9 @@ class _PlanNewDishFirstPageState extends State<PlanNewDishFirstPage> {
radius: r(5),
fontSize: 36,
isBold: false,
onPressed: () {
NavigatorUtil.goPlanNewDishPage(context);
},
),
)
],
... ...
import 'package:flutter/material.dart';
import 'package:one_key/provider/plan_dish_provider.dart';
import 'package:one_key/utils/screen_util.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
import '../../../constant/state.dart';
import '../../../res/colors.dart';
import '../../../route/navigator_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/MyDivider.dart';
import '../../../widgets/page_exception.dart';
import '../../../widgets/round_button.dart';
const scrollDuration = Duration(microseconds: 500);
class PlanNewDishPage extends StatefulWidget {
PlanNewDishPage({
Key key,
}) : super(key: key);
@override
_PlanNewDishPageState createState() => _PlanNewDishPageState();
}
class _PlanNewDishPageState extends State<PlanNewDishPage> {
int _selectIndex = 0;
int min;
int max;
bool isTap = false;
final ItemScrollController itemScrollController = ItemScrollController();
final ItemPositionsListener itemPositionsListener =
ItemPositionsListener.create();
PlanDishProvider _planDishProvider;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
_getMenuData();
});
}
///接口
_getMenuData() {
// Map<String, dynamic> params = {"sellerid": int.parse(widget.sellerID)};
// _storeMenuProvider.getStoreMenu(context, params);
}
Widget list(List data) => ScrollablePositionedList.builder(
// itemCount: data.length,
itemCount: 10,
itemBuilder: (context, index) => item(index),
itemScrollController: itemScrollController,
itemPositionsListener: itemPositionsListener,
reverse: false,
scrollDirection: Axis.vertical,
);
void scrollTo(int index) => itemScrollController.scrollTo(
index: index,
duration: scrollDuration,
curve: Curves.easeInOutCubic,
alignment: 0);
void jumpTo(int index) =>
itemScrollController.jumpTo(index: index, alignment: 0);
/// Generate item number [i].
Widget item(int i) {
return ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: 100,
itemBuilder: (BuildContext context, int index) {
return Container(
width: 200,
height: 200,
color: Colors.red,
);
});
// return Container(
// // height: ScreenUtil().setWidth(110 * 2) *
// // _storeMenuProvider.menulist[i].cookbooklist.length +
// // ScreenUtil().setWidth(60 * 2),
// height: ScreenUtil().setWidth(110 * 2) * 100 +
// ScreenUtil().setWidth(60 * 2),
// child: Column(
// children: [
// Container(
// alignment: Alignment.centerLeft,
// height: ScreenUtil().setWidth(60 * 2),
// child: Text('热菜',
// style: TextStyle(
// fontSize: ScreenUtil().setWidth(30),
// color: MyColours.color_666666)),
// ),
// Container(
// height: ScreenUtil().setWidth(110 * 2) * 100,
// child: ListView.builder(
// shrinkWrap: true,
// physics: NeverScrollableScrollPhysics(),
// itemCount: 100,
// itemBuilder: (BuildContext context, int index) {
// return Container();
// })),
// ],
// ));
}
Widget _laduWidget() {
// if (labelIcon[widget
// .cookBookList.labelList[index].icon] is int) {
// int ladu = labelIcon[
// widget.cookBookList.labelList[index].icon];
int ladu = 3;
List<Widget> widgetList = [];
for (var i = 0; i < ladu; i++) {
widgetList.add(Image.asset(
Utils.getImgPath('ladu'),
width: w(10),
));
}
// widgetList.add(HEmptyView(10));
return Row(
children: widgetList,
);
// }else{
// return SizedBox();
// }
}
@override
Widget build(BuildContext context) {
_planDishProvider = Provider.of<PlanDishProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('经理排菜'),
body: Consumer<PlanDishProvider>(builder: (context, model, child) {
if (model.pageState == PageState.Success) {
return Column(
children: [
MyDivider(
double.infinity,
ScreenUtil().setWidth(1),
color: MyColours.color_DBDBDB,
),
Expanded(
child: Row(
children: [
ValueListenableBuilder<Iterable<ItemPosition>>(
valueListenable: itemPositionsListener.itemPositions,
builder: (context, positions, child) {
// if (positions.isNotEmpty) {
// // max = positions
// // .where((ItemPosition position) =>
// // position.itemLeadingEdge < 1)
// // .reduce((ItemPosition max,
// // ItemPosition position) =>
// // position.itemLeadingEdge >
// // max.itemLeadingEdge
// // ? position
// // : max)
// // .index;
// min = positions
// .where((ItemPosition position) =>
// position.itemTrailingEdge > 0)
// .reduce((ItemPosition min,
// ItemPosition position) =>
// position.itemTrailingEdge <
// min.itemTrailingEdge
// ? position
// : min)
// .index;
// if (isTap) {
// if (min >= _selectIndex) {
// _selectIndex = min;
// } else {
// _selectIndex = _selectIndex;
// }
// isTap = false;
// } else {
// _selectIndex = min;
// }
// }
return Container(
height: double.infinity,
color: MyColours.color_F9F9F9,
width: ScreenUtil().setWidth(85 * 2),
child: ListView.builder(
// itemCount:
// _storeMenuProvider.menulist.length,
itemCount: 100,
itemBuilder:
(BuildContext context, int index) {
return InkWell(
onTap: () {
isTap = true;
// scrollTo(index);
setState(() {
_selectIndex = index;
});
},
child: Stack(
children: [
Container(
height:
ScreenUtil().setWidth(60 * 2),
decoration: BoxDecoration(
color: _selectIndex == index
? MyColours.color_DBDBDB
: MyColours.color_ffffff,
border: Border(
right: BorderSide(
width: w(1),
color: MyColours
.color_DBDBDB),
bottom: BorderSide(
width: w(1),
color: MyColours
.color_DBDBDB))),
alignment: Alignment.center,
padding: EdgeInsets.symmetric(
horizontal:
ScreenUtil().setWidth(30),
vertical: ScreenUtil()
.setWidth(20)),
child: Text(
// _storeMenuProvider
// .menulist[index].className,
'热菜',
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize:
ScreenUtil().setSp(28),
color: _selectIndex == index
? MyColours.color_333333
: MyColours
.color_999999),
),
),
Positioned(
top: w(2),
right: w(2),
child: Container(
// width: w(16),
constraints: BoxConstraints(
minWidth: w(16)),
height: w(16),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(
r(8)),
color: MyColours
.color_E34D59),
child: Text(
'23',
style: TextStyle(
fontSize: font(10),
color: MyColours
.color_F6F6F6),
),
))
],
),
);
}));
}),
Expanded(
child: Container(
padding: EdgeInsets.symmetric(horizontal: w(10)),
// width: ScreenUtil().setWidth(290 * 2),
child: ListView.builder(
shrinkWrap: true,
// physics: NeverScrollableScrollPhysics(),
itemCount: 10,
itemBuilder:
(BuildContext context, int index) {
return Container(
padding:
EdgeInsets.symmetric(vertical: w(16)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: MyColours.color_DBDBDB,
width: w(1)))),
child: Row(
children: [
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
children: [
Container(
constraints:
BoxConstraints(
maxWidth: w(100)),
child: Text(
'菜菜菜',
maxLines: 10,
overflow: TextOverflow
.ellipsis,
style: TextStyle(
fontSize: font(16),
fontWeight:
FontWeight.bold,
color: MyColours
.color_515151),
)),
HEmptyView(8),
_laduWidget()
],
),
VEmptyView(24),
Row(
children: [
Text(
'858.0元/份',
style: TextStyle(
fontSize: font(12),
color: MyColours
.color_999999),
),
Text(
'824.0元/份',
style: TextStyle(
fontSize: font(10),
color: MyColours
.color_8EBBBE),
),
],
)
],
)),
// Spacer(),
Image.asset(
Utils.getImgPath('plan_dish_minus'),
width: w(16),
),
HEmptyView(8),
Container(
width: w(32),
height: w(16),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(
r(5)),
border: Border.all(
width: w(1),
color: MyColours
.color_999999)),
// constraints: BoxConstraints(minWidth: w(20)),
child: TextField(
maxLines: 1,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style: TextStyle(
color:
MyColours.color_438E93,
fontSize: font(12)),
textAlign: TextAlign.center,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "人数",
hintStyle: TextStyle(
color:
MyColours.color_999999,
fontSize: font(12),
),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(
borderSide:
BorderSide.none),
contentPadding:
EdgeInsets.zero,
),
keyboardType:
TextInputType.number,
textInputAction:
TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(
FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
)),
HEmptyView(8),
Image.asset(
Utils.getImgPath('plan_dish_add'),
width: w(16),
),
],
),
);
})))
],
),
),
Container(
decoration: BoxDecoration(
border: Border(
top: BorderSide(
width: w(1), color: MyColours.color_DBDBDB))),
padding:
EdgeInsets.symmetric(horizontal: w(20), vertical: w(15)),
child: Row(
children: [
Stack(
clipBehavior: Clip.none,
children: [
Image.asset(
Utils.getImgPath('plan_dish_car'),
width: w(35),
),
Positioned(
top: w(-3),
right: w(-4),
child: Container(
// width: w(16),
constraints: BoxConstraints(minWidth: w(16)),
height: w(16),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(8)),
color: MyColours.color_E34D59),
child: Text(
'23',
style: TextStyle(
fontSize: font(10),
color: MyColours.color_F6F6F6),
),
))
],
),
HEmptyView(66),
Expanded(
child: Column(
children: [
Row(
children: [
Text(
'总计:',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
Text(
'0.00',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_000000),
),
Text(
'元',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
],
),
VEmptyView(20),
Row(
children: [
Text(
'会员价:',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
Text(
'0.00',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_000000),
),
Text(
'元',
style: TextStyle(
fontSize: font(12),
color: MyColours.color_515151),
),
],
)
],
)),
HEmptyView(10),
Text(
'排菜价:',
style: TextStyle(
fontSize: font(12), color: MyColours.color_515151),
),
Container(
width: w(65),
height: w(30),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
border: Border.all(
color: MyColours.color_515151, width: w(1))),
// constraints: BoxConstraints(minWidth: w(20)),
child: TextField(
maxLines: 1,
// controller:
// focusNode: _focusNode,
// autofocus: true,
style: TextStyle(
color: MyColours.color_000000,
fontSize: font(12)),
textAlign: TextAlign.center,
// textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
hintText: "0.00",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: font(12),
),
// isCollapsed:
// true, //重点,相当于高度包裹的意思,必须设置为true,不然有默认奇妙的最小高度
border: OutlineInputBorder(
borderSide: BorderSide.none),
contentPadding: EdgeInsets.zero,
),
keyboardType: TextInputType.number,
textInputAction: TextInputAction.done,
onChanged: (value) {
// setState(() {});
// _searchSellerLocation();
// customerProvider.searchData(value);
},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
// contantShowModel.searchData(
// contantShowModel.controller.text);
// _searchSellerLocation();
// _focusNode.unfocus();
},
)),
Text(
'元',
style: TextStyle(
fontSize: font(12), color: MyColours.color_515151),
),
],
),
),
Container(
color: MyColours.color_FAFAFA,
padding: EdgeInsets.only(
top: w(12), bottom: w(25), left: w(45), right: w(45)),
child: RoundButton(
text: '提交',
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
width: double.infinity,
height: w(43),
radius: r(5),
fontSize: 36,
isBold: false,
onPressed: () {
NavigatorUtil.goFinalPlanDishPage(context);
},
),
)
],
);
} else {
return ExceptionPage(
pageState: model.pageState,
emptyMsg: '暂时没有菜单哦',
callback: () {
// _getMenuData();
},
);
}
}));
}
}
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/state.dart';
/**
* 预排菜
*/
class PlanDishProvider extends ChangeNotifier {}
class PlanDishProvider extends ChangeNotifier {
PageState pageState = PageState.Success;
}
... ...
... ... @@ -1165,4 +1165,44 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.plan_new_dish_first_page}",
replace: replace);
}
///排菜-菜单点菜
///
static Future<dynamic> goPlanNewDishPage(
BuildContext context, {
replace = false,
}) {
// if (invoice != null) {
// return _navigateTo(context,
// "${Routes.plan_new_dish_first_page}?invoice=${FluroConvertUtils.object2string(invoice)}",
// replace: replace);
// }
// if (object != null) {
// return _navigateTo(context,
// "${Routes.plan_new_dish_first_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}");
// }
return _navigateTo(context, "${Routes.plan_new_dish_page}",
replace: replace);
}
///排菜-排菜单
///
static Future<dynamic> goFinalPlanDishPage(
BuildContext context, {
replace = false,
}) {
// if (invoice != null) {
// return _navigateTo(context,
// "${Routes.final_plan_dish_page}?invoice=${FluroConvertUtils.object2string(invoice)}",
// replace: replace);
// }
// if (object != null) {
// return _navigateTo(context,
// "${Routes.final_plan_dish_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}");
// }
return _navigateTo(context, "${Routes.final_plan_dish_page}",
replace: replace);
}
}
... ...
... ... @@ -174,8 +174,10 @@ import '../pages/my/feast_manage/feast_setmeal_manage_edit_page.dart';
import '../pages/my/feast_manage/feast_type_page.dart';
import '../pages/my/feast_manage/feast_wine_manage_edit_page.dart';
import '../pages/my/feast_manage/feast_wine_manage_page.dart';
import '../pages/my/plan_dish/final_plan_dish_page.dart';
import '../pages/my/plan_dish/my_plan_dish_home_page.dart';
import '../pages/my/plan_dish/plan_new_dish_first_page.dart';
import '../pages/my/plan_dish/plan_new_dish_page.dart';
import '../pages/my/table_manage/merge_table_select_page.dart';
import '../provider/feast_model.dart';
import '../provider/plan_dish_provider.dart';
... ... @@ -1847,7 +1849,6 @@ var myPlanDishHomePageHandle = new Handler(
create: (_) => PlanDishProvider(), child: MyPlanDishHomePage());
});
///我的-我的排菜-创建新排菜前置条件录入
var planNewDishFirstPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
... ... @@ -1868,3 +1869,45 @@ var planNewDishFirstPageHandle = new Handler(
return ChangeNotifierProvider<PlanDishProvider>(
create: (_) => PlanDishProvider(), child: PlanNewDishFirstPage());
});
///排菜---菜单点菜
var planNewDishPageHandle = 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;
// List<TableList> res = [];
// if (params.keys.contains('object')) {
// Map object = FluroConvertUtils.string2map(params["object"].first);
// List temp = object['object'];
// for (var item in temp) {
// res.add(TableList.fromJson(item));
// }
// }
return ChangeNotifierProvider<PlanDishProvider>(
create: (_) => PlanDishProvider(), child: PlanNewDishPage());
});
///排菜---排菜单
var finalPlanDishPageHandle = 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;
// List<TableList> res = [];
// if (params.keys.contains('object')) {
// Map object = FluroConvertUtils.string2map(params["object"].first);
// List temp = object['object'];
// for (var item in temp) {
// res.add(TableList.fromJson(item));
// }
// }
return ChangeNotifierProvider<PlanDishProvider>(
create: (_) => PlanDishProvider(), child: FinalPlanDishPage());
});
... ...
... ... @@ -165,7 +165,10 @@ class Routes {
*/
static String my_plan_dish_home_page = "/my_plan_dish_home_page"; //我的-我的排菜
static String plan_new_dish_first_page = "/plan_new_dish_first_page"; //我的-我的排菜-创建新排菜前置条件录入
static String plan_new_dish_first_page =
"/plan_new_dish_first_page"; //我的-我的排菜-创建新排菜前置条件录入
static String plan_new_dish_page = "/plan_new_dish_page"; //排菜菜单点菜
static String final_plan_dish_page = "/final_plan_dish_page"; //排菜单
static void configureRoutes(FluroRouter router) {
... ... @@ -328,9 +331,10 @@ static String plan_new_dish_first_page = "/plan_new_dish_first_page"; //我的-æ
router.define(merge_table_select_page, handler: mergeTableSelectPageHandle);
router.define(my_plan_dish_home_page, handler: myPlanDishHomePageHandle);
router.define(plan_new_dish_first_page, handler: planNewDishFirstPageHandle);
router.define(plan_new_dish_first_page,
handler: planNewDishFirstPageHandle);
router.define(plan_new_dish_page, handler: planNewDishPageHandle);
router.define(final_plan_dish_page, handler: finalPlanDishPageHandle);
}
}
... ...