|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:ui';
|
|
|
|
|
|
|
|
import 'package:common_utils/common_utils.dart';
|
|
|
|
|
|
|
|
// import 'package:contacts_service/contacts_service.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/services.dart';
|
|
|
|
import 'package:flutter_screenutil/screenutil.dart';
|
|
|
|
import 'package:one_key/models/notebook_detail.dart';
|
|
|
|
import 'package:one_key/models/remark.dart';
|
|
|
|
import 'package:one_key/models/reserve_info_model.dart';
|
|
|
|
import 'package:one_key/provider/home_enter_model.dart';
|
|
|
|
import 'package:one_key/provider/notebook_detail_change_model.dart';
|
|
|
|
import 'package:one_key/provider/notebook_detail_model.dart';
|
|
|
|
import 'package:one_key/provider/remark_manager_model.dart';
|
|
|
|
import 'package:one_key/provider/user_model.dart';
|
|
|
|
import 'package:one_key/res/colors.dart';
|
|
|
|
import 'package:one_key/utils/dialog_util.dart';
|
|
|
|
import 'package:one_key/utils/event_bus.dart';
|
|
|
|
import 'package:one_key/utils/misc.dart';
|
|
|
|
import 'package:one_key/route/navigator_util.dart';
|
|
|
|
import 'package:one_key/utils/triangle_custom_painter.dart';
|
|
|
|
import 'package:one_key/utils/utils.dart';
|
|
|
|
import 'package:one_key/widgets/MyDivider.dart';
|
|
|
|
import 'package:one_key/widgets/app_bar.dart';
|
|
|
|
import 'package:one_key/widgets/common_button.dart';
|
|
|
|
import 'package:one_key/widgets/h_empty_view.dart';
|
|
|
|
import 'package:one_key/widgets/new_table_item.dart';
|
|
|
|
import 'package:one_key/widgets/round_button.dart';
|
|
|
|
import 'package:one_key/widgets/system_app_bar.dart';
|
|
|
|
import 'package:one_key/widgets/v_empty_view.dart';
|
|
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:one_key/models/table_list.dart' as t;
|
|
|
|
import 'dart:convert' as convert;
|
|
|
|
import 'package:easy_contact_picker/easy_contact_picker.dart';
|
|
|
|
|
|
|
|
typedef ClickCallback = void Function(String value);
|
|
|
|
|
|
|
|
class HomeEnterPage extends StatefulWidget {
|
|
|
|
const HomeEnterPage({Key key}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_HomeEnterPageState createState() => _HomeEnterPageState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _HomeEnterPageState extends State<HomeEnterPage> {
|
|
|
|
DateTime dateTimeNow; //当前日期
|
|
|
|
HomeEnterModel _homeEnterModel;
|
|
|
|
FocusNode _phoneNode = FocusNode();
|
|
|
|
FocusNode _nameNode = FocusNode();
|
|
|
|
FocusNode _needNode = FocusNode();
|
|
|
|
NotebookDetailModel detailModel = NotebookDetailModel();
|
|
|
|
EasyContactPicker _contactPicker = EasyContactPicker();
|
|
|
|
RemarkManagerModel remarkManagerModel;
|
|
|
|
String currentRemark = '';
|
|
|
|
|
|
|
|
bool showPhoneHistory = false; //显示客户历史记录
|
|
|
|
|
|
|
|
String sid = ""; //商户id
|
|
|
|
|
|
|
|
ScrollController _controller = ScrollController();
|
|
|
|
NotebookDetail detailEntity;
|
|
|
|
|
|
|
|
UserModel userModel;
|
|
|
|
String dateText = ""; //当前显示日期时间
|
|
|
|
int currTimeIndex; //当前选中时间段
|
|
|
|
String morning; //早市时间段
|
|
|
|
String noon; //午市时间段
|
|
|
|
String night; //晚市时间段
|
|
|
|
String pnum = '6'; //人数 默认6
|
|
|
|
int selectPnum = 5; //选中的人数
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
dateTimeNow = DateTime.now();
|
|
|
|
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
|
|
|
_initTime();
|
|
|
|
setState(() {});
|
|
|
|
sid = Provider.of<UserModel>(context, listen: false).user.sellerid;
|
|
|
|
_homeEnterModel.initDateHourMinuteList(context, currTimeIndex);
|
|
|
|
String ddate = DateTime.now().millisecondsSinceEpoch.toString() + '000';
|
|
|
|
_homeEnterModel
|
|
|
|
.getNewTableList(context, ddate, currTimeIndex.toString(), pnum, []);
|
|
|
|
|
|
|
|
Map<String, String> params = {
|
|
|
|
"uid": Provider.of<UserModel>(context, listen: false).user.openid
|
|
|
|
};
|
|
|
|
remarkManagerModel.getRemarks(context, params);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
void dispose() {
|
|
|
|
_nameNode.unfocus();
|
|
|
|
_phoneNode.unfocus();
|
|
|
|
super.dispose();
|
|
|
|
}
|
|
|
|
|
|
|
|
//初始化时间
|
|
|
|
_initTime() {
|
|
|
|
dateTimeNow = DateTime.now();
|
|
|
|
dateText = "${dateTimeNow.year}" +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day);
|
|
|
|
morning =
|
|
|
|
userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning;
|
|
|
|
noon = userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon;
|
|
|
|
night = userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night;
|
|
|
|
if (morning != '' &&
|
|
|
|
dateTimeNow.isBefore(DateTime.parse(dateTimeNow.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day) +
|
|
|
|
" " +
|
|
|
|
morning.split("-")[1] +
|
|
|
|
":00"))) {
|
|
|
|
//未过早市
|
|
|
|
currTimeIndex = 1;
|
|
|
|
} else if (noon != '' &&
|
|
|
|
dateTimeNow.isAfter(DateTime.parse(dateTimeNow.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day) +
|
|
|
|
" " +
|
|
|
|
morning.split("-")[1] +
|
|
|
|
":00")) &&
|
|
|
|
dateTimeNow.isBefore(DateTime.parse(dateTimeNow.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day) +
|
|
|
|
" " +
|
|
|
|
noon.split("-")[1] +
|
|
|
|
":00"))) {
|
|
|
|
//过了早市,未过午市
|
|
|
|
currTimeIndex = 2;
|
|
|
|
} else if (night != '' &&
|
|
|
|
dateTimeNow.isAfter(DateTime.parse(dateTimeNow.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day) +
|
|
|
|
" " +
|
|
|
|
noon.split("-")[1] +
|
|
|
|
":00")) &&
|
|
|
|
dateTimeNow.isBefore(DateTime.parse(dateTimeNow.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day) +
|
|
|
|
" " +
|
|
|
|
night.split("-")[1] +
|
|
|
|
":00"))) {
|
|
|
|
//过了午市,未过晚市
|
|
|
|
currTimeIndex = 3;
|
|
|
|
} else {
|
|
|
|
//过了晚市
|
|
|
|
currTimeIndex = 3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// _initData() {
|
|
|
|
// print(widget.detailEntity);
|
|
|
|
// for (var item in widget.detailEntity.tables) {
|
|
|
|
// item.selected = true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
_buttonChoose(String title, ClickCallback callback) {
|
|
|
|
return InkWell(
|
|
|
|
onTap: () {
|
|
|
|
callback(title);
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(20),
|
|
|
|
vertical: ScreenUtil().setWidth(10)),
|
|
|
|
height: ScreenUtil().setWidth(60),
|
|
|
|
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 == '时间(选填)'
|
|
|
|
? MyColours.color_999999
|
|
|
|
: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setWidth(28)),
|
|
|
|
),
|
|
|
|
HEmptyView(10),
|
|
|
|
Image.asset(
|
|
|
|
Utils.getImgPath('enter_order_arrow'),
|
|
|
|
width: ScreenUtil().setWidth(20),
|
|
|
|
height: ScreenUtil().setWidth(10),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
)));
|
|
|
|
}
|
|
|
|
|
|
|
|
_topWidget() {
|
|
|
|
return Container(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(40),
|
|
|
|
vertical: ScreenUtil().setWidth(50)),
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
//第一行 顾客姓名
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
child: TextField(
|
|
|
|
maxLines: 1,
|
|
|
|
|
|
|
|
//输入文本的样式
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
color: MyColours.color_353535),
|
|
|
|
controller: _homeEnterModel.nameController,
|
|
|
|
focusNode: _nameNode,
|
|
|
|
// textAlignVertical: TextAlignVertical.top,
|
|
|
|
decoration: InputDecoration(
|
|
|
|
hintText: "顾客姓名",
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
),
|
|
|
|
// contentPadding:
|
|
|
|
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
|
|
|
|
border: InputBorder.none,
|
|
|
|
),
|
|
|
|
onChanged: (value) {
|
|
|
|
print('ggg');
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
print('fff');
|
|
|
|
_nameNode.unfocus();
|
|
|
|
},
|
|
|
|
keyboardType: TextInputType.text,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
HEmptyView(40),
|
|
|
|
Row(
|
|
|
|
children: _homeEnterModel.sexList.map((value) {
|
|
|
|
return _callButton(
|
|
|
|
onPress: () {
|
|
|
|
for (var item in _homeEnterModel.sexList) {
|
|
|
|
item['select'] = false;
|
|
|
|
if (item['title'] == value['title']) {
|
|
|
|
item['select'] = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
},
|
|
|
|
content: value['title'],
|
|
|
|
hasLeftBorder: value['hasLeftBorder'],
|
|
|
|
isSelect: value['select']);
|
|
|
|
}).toList()),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(30),
|
|
|
|
MyDivider(double.infinity, ScreenUtil().setWidth(2),
|
|
|
|
color: MyColours.color_efefef),
|
|
|
|
//电话
|
|
|
|
VEmptyView(50),
|
|
|
|
Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
child: TextField(
|
|
|
|
maxLines: 1,
|
|
|
|
//输入文本的样式
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
color: MyColours.color_353535),
|
|
|
|
controller: _homeEnterModel.phoneController,
|
|
|
|
focusNode: _phoneNode,
|
|
|
|
// textAlignVertical: TextAlignVertical.top,
|
|
|
|
decoration: InputDecoration(
|
|
|
|
hintText: "电话",
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
),
|
|
|
|
// contentPadding:
|
|
|
|
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
|
|
|
|
border: InputBorder.none,
|
|
|
|
),
|
|
|
|
onChanged: (value) {
|
|
|
|
LogUtil.v("value:$value");
|
|
|
|
if (value.isEmpty || value.length >= 11) {
|
|
|
|
//内容为空,或 超过11位
|
|
|
|
setState(() {
|
|
|
|
_homeEnterModel.userHistorys.clear();
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
Map<String, String> params = {
|
|
|
|
"keywords": value,
|
|
|
|
"sid": sid
|
|
|
|
};
|
|
|
|
_homeEnterModel.getUserHistorys(context, params);
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
print('fff');
|
|
|
|
_phoneNode.unfocus();
|
|
|
|
},
|
|
|
|
onTap: () {
|
|
|
|
setState(() {
|
|
|
|
showPhoneHistory = true;
|
|
|
|
});
|
|
|
|
// Future.delayed(Duration(milliseconds: 300), () {
|
|
|
|
// _controller.jumpTo(_controller.position.maxScrollExtent);
|
|
|
|
// });
|
|
|
|
},
|
|
|
|
keyboardType: TextInputType.number,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
HEmptyView(40),
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
_openAddressBook();
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
height: ScreenUtil().setWidth(48),
|
|
|
|
alignment: Alignment.center,
|
|
|
|
child: Text(
|
|
|
|
'一键录入',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setSp(30)),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(30),
|
|
|
|
MyDivider(double.infinity, ScreenUtil().setWidth(2),
|
|
|
|
color: MyColours.color_efefef),
|
|
|
|
//备注
|
|
|
|
VEmptyView(50),
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
child: TextField(
|
|
|
|
maxLines: 1,
|
|
|
|
inputFormatters: [LengthLimitingTextInputFormatter(25)],
|
|
|
|
//输入文本的样式
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
color: MyColours.color_353535),
|
|
|
|
controller: _homeEnterModel.customController,
|
|
|
|
focusNode: _needNode,
|
|
|
|
// textAlignVertical: TextAlignVertical.top,
|
|
|
|
decoration: InputDecoration(
|
|
|
|
hintText: "备注(选填)",
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
),
|
|
|
|
// contentPadding:
|
|
|
|
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
|
|
|
|
border: InputBorder.none,
|
|
|
|
),
|
|
|
|
onChanged: (value) {
|
|
|
|
print(value);
|
|
|
|
currentRemark = value;
|
|
|
|
// print();
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
print('fff');
|
|
|
|
_needNode.unfocus();
|
|
|
|
},
|
|
|
|
// keyboardType: TextInputType.number,
|
|
|
|
)),
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
DialogUtil.showRemarkDialog(
|
|
|
|
context, remarkManagerModel.ofenRemarks, (item) {
|
|
|
|
int index = remarkManagerModel.ofenRemarks.indexOf(item);
|
|
|
|
_refreshRemark(remarkManagerModel.ofenRemarks, index);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
margin: EdgeInsets.only(left: ScreenUtil().setWidth(40)),
|
|
|
|
width: ScreenUtil().setWidth(122),
|
|
|
|
height: ScreenUtil().setWidth(42),
|
|
|
|
child: Text(
|
|
|
|
'常用备注',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(30),
|
|
|
|
color: MyColours.color_199095),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(30),
|
|
|
|
MyDivider(double.infinity, ScreenUtil().setWidth(2),
|
|
|
|
color: MyColours.color_efefef),
|
|
|
|
//日期2020-01-01 ***** 早餐/午餐/晚餐 ***** 时间段16:30
|
|
|
|
VEmptyView(50),
|
|
|
|
Row(
|
|
|
|
// mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
|
|
children: [
|
|
|
|
_buttonChoose(dateText, (value) {
|
|
|
|
if (dateText == '') {
|
|
|
|
_calendWidget(DateTime.now());
|
|
|
|
} else {
|
|
|
|
// bool isThird = true;
|
|
|
|
_calendWidget(dateTimeNow);
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
HEmptyView(40),
|
|
|
|
_buttonChoose(
|
|
|
|
currTimeIndex == 1
|
|
|
|
? '早餐'
|
|
|
|
: currTimeIndex == 2
|
|
|
|
? '午餐'
|
|
|
|
: '晚餐', (value) {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
|
|
|
|
List<String> temp = [];
|
|
|
|
for (int i = 0; i < _homeEnterModel.sunDateList.length; i++) {
|
|
|
|
temp.add(_homeEnterModel.sunDateList[i]['dateText']);
|
|
|
|
}
|
|
|
|
_showMorningAndNightChooseWidget(context, temp);
|
|
|
|
}),
|
|
|
|
HEmptyView(40),
|
|
|
|
_buttonChoose(
|
|
|
|
_homeEnterModel.ddateStr == '' ||
|
|
|
|
_homeEnterModel.isSetDate == '0'
|
|
|
|
? '时间(选填)'
|
|
|
|
: _homeEnterModel.ddateStr, (value) {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
|
|
|
|
_showDateChooseWidget(context);
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
VEmptyView(40),
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
Text('预计人数',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setWidth(28))),
|
|
|
|
HEmptyView(20),
|
|
|
|
_buttonChoose(pnum, (value) {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
|
|
|
|
DialogUtil.showSelectCusmanDialog(
|
|
|
|
context, _homeEnterModel.personNumList, (value) {
|
|
|
|
if (value != null) {
|
|
|
|
setState(() {
|
|
|
|
selectPnum = value.first;
|
|
|
|
pnum = _homeEnterModel.personNumList[value.first];
|
|
|
|
});
|
|
|
|
String ymyStr = dateText; //年月日
|
|
|
|
String timeStr = ymyStr + ' ' + "00:00:00";
|
|
|
|
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
|
|
|
|
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
_homeEnterModel.getNewTableList(
|
|
|
|
context,
|
|
|
|
'${ddate}',
|
|
|
|
currTimeIndex.toString(),
|
|
|
|
pnum,
|
|
|
|
_homeEnterModel.tableList);
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
}
|
|
|
|
}, selecteds: selectPnum == null ? [] : [selectPnum])
|
|
|
|
.then((value) {});
|
|
|
|
}),
|
|
|
|
HEmptyView(20),
|
|
|
|
Text('人',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setWidth(28))),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
// Row(
|
|
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
// children: _homeEnterModel.dateList.map((value) {
|
|
|
|
// return CustomButton(
|
|
|
|
// dateText: value['title'].toString().length <= 5
|
|
|
|
// ? value['title'].toString()
|
|
|
|
// : value['title'].toString().substring(5),
|
|
|
|
// fontSize: value['fontSize'],
|
|
|
|
// dayText: value['dayText'],
|
|
|
|
// isImage: value['isImage'],
|
|
|
|
// isSelect: value['select'],
|
|
|
|
// onTap: () async {
|
|
|
|
// print(value['title']);
|
|
|
|
// FocusScope.of(context)
|
|
|
|
// .requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
// if (value['title'] == '其他') {
|
|
|
|
// _calendWidget(DateTime.now());
|
|
|
|
// } else {
|
|
|
|
// for (int j = 0;
|
|
|
|
// j < _homeEnterModel.dateList.length;
|
|
|
|
// j++) {
|
|
|
|
// _homeEnterModel.dateList[j]['select'] = false;
|
|
|
|
|
|
|
|
// if (_homeEnterModel.dateList[j]['title'] ==
|
|
|
|
// value['title']) {
|
|
|
|
// _homeEnterModel.dateList[j]['select'] = true;
|
|
|
|
// if (j == 0 || j == 1) {
|
|
|
|
// _homeEnterModel.dateList[2]['title'] = '其他';
|
|
|
|
// }
|
|
|
|
// if (j == _homeEnterModel.dateList.length - 1) {
|
|
|
|
// String selectStr = _homeEnterModel.dateList[2]
|
|
|
|
// ['title'] +
|
|
|
|
// " 00:00:00";
|
|
|
|
// _calendWidget(DateUtil.getDateTime(selectStr));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.initHourAndMinuteSelect();
|
|
|
|
// //选完今天明天刷新页面
|
|
|
|
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
|
|
|
|
// String ddateSolt =
|
|
|
|
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
|
|
|
|
// // String pnum =
|
|
|
|
// // Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
// List<t.TableList> list =
|
|
|
|
// await _homeEnterModel.getNewTableList(
|
|
|
|
// context,
|
|
|
|
// '${ddate}',
|
|
|
|
// ddateSolt,
|
|
|
|
// pnum,
|
|
|
|
// _homeEnterModel.tableList);
|
|
|
|
// if (list.length == 0) {
|
|
|
|
// _homeEnterModel.isRecommend = true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.notifyListeners();
|
|
|
|
// },
|
|
|
|
// );
|
|
|
|
// }).toList()),
|
|
|
|
|
|
|
|
// VEmptyView(40),
|
|
|
|
// //早市、午市、晚市
|
|
|
|
// Row(
|
|
|
|
// // mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
// children: _homeEnterModel.sunDateList.map((value) {
|
|
|
|
// return Container(
|
|
|
|
// margin: _homeEnterModel.sunDateList.length == 3 &&
|
|
|
|
// value['ddateSolt'] == 3
|
|
|
|
// ? EdgeInsets.only(right: 0)
|
|
|
|
// : EdgeInsets.only(right: ScreenUtil().setWidth(20)),
|
|
|
|
// child: CustomButton(
|
|
|
|
// onTap: () {
|
|
|
|
// FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
// String key = '';
|
|
|
|
// for (var item in _homeEnterModel.sunDateList) {
|
|
|
|
// item['isSelect'] = false;
|
|
|
|
// if (item['dateText'] == value['dateText']) {
|
|
|
|
// item['isSelect'] = true;
|
|
|
|
|
|
|
|
// if (item['ddateSolt'] == 1) {
|
|
|
|
// //早市
|
|
|
|
// key = 'morning';
|
|
|
|
// } else if (item['ddateSolt'] == 2) {
|
|
|
|
// //午市
|
|
|
|
// key = 'noon';
|
|
|
|
// } else if (item['ddateSolt'] == 3) {
|
|
|
|
// //晚市
|
|
|
|
// key = 'night';
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.initHourAndMinuteSelect();
|
|
|
|
// if (key != '') {
|
|
|
|
// for (var sunitem in _homeEnterModel.dailyMap[key]) {
|
|
|
|
// if (sunitem['select'] == true) {
|
|
|
|
// _homeEnterModel.ddateStr = sunitem['title'];
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.notifyListeners();
|
|
|
|
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
|
|
|
|
// // String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
// String ddateSolt =
|
|
|
|
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
|
|
|
|
// _homeEnterModel.getNewTableList(context, '${ddate}',
|
|
|
|
// '${ddateSolt}', pnum, _homeEnterModel.tableList);
|
|
|
|
// },
|
|
|
|
// dateText: value['dateText'],
|
|
|
|
// dayText: '',
|
|
|
|
// isSelect: value['isSelect'],
|
|
|
|
// ),
|
|
|
|
// );
|
|
|
|
// }).toList()),
|
|
|
|
// VEmptyView(40),
|
|
|
|
|
|
|
|
// ///人数选择
|
|
|
|
// Row(
|
|
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
// children: _homeEnterModel.personNumList.map((value) {
|
|
|
|
// return CustomButton(
|
|
|
|
// onTap: () {
|
|
|
|
// for (int j = 0;
|
|
|
|
// j < _homeEnterModel.personNumList.length;
|
|
|
|
// j++) {
|
|
|
|
// _homeEnterModel.personNumList[j]['isSelect'] = false;
|
|
|
|
|
|
|
|
// if (_homeEnterModel.personNumList[j]['dateText'] ==
|
|
|
|
// value['dateText']) {
|
|
|
|
// _homeEnterModel.personNumList[j]['isSelect'] = true;
|
|
|
|
|
|
|
|
// if (j < 5) {
|
|
|
|
// _homeEnterModel.numController.text = value['dateText'];
|
|
|
|
// FocusScope.of(context)
|
|
|
|
// .requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// // if (j < 5) {
|
|
|
|
// // _homeEnterModel.personNumList[5]
|
|
|
|
// // ['dateText'] = '更多';
|
|
|
|
// // }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.notifyListeners();
|
|
|
|
// //人数选择页面刷新
|
|
|
|
// // String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
|
|
|
|
// String ddateSolt =
|
|
|
|
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
|
|
|
|
|
|
|
|
// _homeEnterModel.getNewTableList(context, '${ddate}',
|
|
|
|
// ddateSolt, pnum, _homeEnterModel.tableList);
|
|
|
|
// },
|
|
|
|
// dateText: value['dateText'],
|
|
|
|
// fontSize: value['fontSize'],
|
|
|
|
// dayText: '',
|
|
|
|
// width: value['width'],
|
|
|
|
// isImage: value['isImage'],
|
|
|
|
// isSelect: value['isSelect'],
|
|
|
|
// isTextFiled: value['isTextFiled'],
|
|
|
|
// model: _homeEnterModel,
|
|
|
|
// );
|
|
|
|
// }).toList(),
|
|
|
|
// ),
|
|
|
|
// VEmptyView(20),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_calendWidget(DateTime dateTime) {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
|
|
|
|
DialogUtil.showCalendarDialog(context, dateTime).then((day) {
|
|
|
|
if (day != null) {
|
|
|
|
// _createDateText(day);
|
|
|
|
dateTimeNow = day;
|
|
|
|
int dateTimeMill = day.millisecondsSinceEpoch;
|
|
|
|
dateText = DateUtil.formatDateMs(dateTimeMill, format: 'yyyy-MM-dd');
|
|
|
|
// bool isThird = true;
|
|
|
|
// for (int i = 0; i < _homeEnterModel.dateList.length; i++) {
|
|
|
|
// _homeEnterModel.dateList[i]['select'] = false;
|
|
|
|
|
|
|
|
// if (_homeEnterModel.dateList[i]['title'] == dateText) {
|
|
|
|
// _homeEnterModel.dateList[i]['select'] = true;
|
|
|
|
// isThird = false;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// if (isThird) {
|
|
|
|
// _homeEnterModel.dateList[2]['select'] = true;
|
|
|
|
// _homeEnterModel.dateList[2]['title'] = dateText;
|
|
|
|
// } else {
|
|
|
|
// _homeEnterModel.dateList[2]['title'] = '其他';
|
|
|
|
// }
|
|
|
|
_homeEnterModel.initHourAndMinuteSelect();
|
|
|
|
// 选完日历刷新页面
|
|
|
|
|
|
|
|
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
_homeEnterModel.getNewTableList(context, '${dateTimeMill}',
|
|
|
|
currTimeIndex.toString(), pnum, _homeEnterModel.tableList);
|
|
|
|
}
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 可订桌位
|
|
|
|
_middleWidget() {
|
|
|
|
List canBookTable = [];
|
|
|
|
if (_homeEnterModel.isRecommend) {
|
|
|
|
canBookTable = _homeEnterModel.recommendList;
|
|
|
|
} else {
|
|
|
|
canBookTable = _homeEnterModel.tableList;
|
|
|
|
}
|
|
|
|
return Container(
|
|
|
|
padding: EdgeInsets.all(ScreenUtil().setWidth(40)),
|
|
|
|
color: MyColours.color_f5f5f5,
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () async {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
String ymyStr = dateText; //年月日
|
|
|
|
String timeStr = ymyStr + ' ' + "00:00:00";
|
|
|
|
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
|
|
|
|
String ddateSolt = currTimeIndex.toString();
|
|
|
|
|
|
|
|
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
|
|
|
|
// int ddate = DateUtil.getDateMsByTimeStr(timeStr);
|
|
|
|
Map temp = await NavigatorUtil.goSelectTablePage(
|
|
|
|
context, '', ddate, ddateSolt,
|
|
|
|
canChoose: true,
|
|
|
|
object: {'object': _homeEnterModel.tableList});
|
|
|
|
// if (temp['tid'] != null) {
|
|
|
|
// setReserveStatus("5", tid: temp['tid']);
|
|
|
|
// }
|
|
|
|
if (temp == null || temp['object'].length == 0) {
|
|
|
|
if (_homeEnterModel.tableList.length == 0) {
|
|
|
|
_homeEnterModel.isRecommend = true;
|
|
|
|
_homeEnterModel.tableList = [];
|
|
|
|
for (t.TableList item in _homeEnterModel.recommendList) {
|
|
|
|
item.selected = false;
|
|
|
|
}
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
_homeEnterModel.isRecommend = false;
|
|
|
|
_homeEnterModel.tableList = temp['object'];
|
|
|
|
// if (_homeEnterModel.tableList.length == 0) {
|
|
|
|
// isRecommend = true;
|
|
|
|
// }
|
|
|
|
for (t.TableList item in _homeEnterModel.tableList) {
|
|
|
|
item.selected = true;
|
|
|
|
}
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
|
|
|
|
// _homeEnterModel.notifyListeners();
|
|
|
|
},
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
'可订桌位',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_353535,
|
|
|
|
fontSize: ScreenUtil().setSp(30)),
|
|
|
|
),
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
Text('更多',
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_353535,
|
|
|
|
fontSize: ScreenUtil().setSp(26))),
|
|
|
|
HEmptyView(20),
|
|
|
|
Image.asset(
|
|
|
|
'assets/arr_right_gray.png',
|
|
|
|
width: ScreenUtil().setWidth(12),
|
|
|
|
height: ScreenUtil().setWidth(22),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
)),
|
|
|
|
VEmptyView(32),
|
|
|
|
Align(
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
child: Container(
|
|
|
|
// color: Colors.red,
|
|
|
|
// height: ScreenUtil().setHeight(178),
|
|
|
|
height: ScreenUtil().setWidth(185),
|
|
|
|
child: ListView.builder(
|
|
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
|
|
itemBuilder: (BuildContext contxt, int index) {
|
|
|
|
return NewTableItem(
|
|
|
|
canBookTable[index],
|
|
|
|
isRegionName: true,
|
|
|
|
canSelected: true,
|
|
|
|
onSelected: (table) {
|
|
|
|
if ((table as t.TableList).selected) {
|
|
|
|
_homeEnterModel.tableList.add(table);
|
|
|
|
} else {
|
|
|
|
_homeEnterModel.tableList
|
|
|
|
.removeWhere((t) => t.id == table.id);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
);
|
|
|
|
},
|
|
|
|
itemCount: canBookTable.length > 3 ? 3 : canBookTable.length,
|
|
|
|
shrinkWrap: true,
|
|
|
|
scrollDirection: Axis.horizontal,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_refreshRemark(List<Remark> remark, int index) {
|
|
|
|
if (remark[index].selected) {
|
|
|
|
if (currentRemark.length == 0) {
|
|
|
|
currentRemark += '${remark[index].custom}';
|
|
|
|
} else {
|
|
|
|
if (!currentRemark.contains(remark[index].custom)) {
|
|
|
|
if (currentRemark.endsWith('、')) {
|
|
|
|
currentRemark += '${remark[index].custom}';
|
|
|
|
} else {
|
|
|
|
currentRemark += '、${remark[index].custom}';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (currentRemark.contains(remark[index].custom)) {
|
|
|
|
int start = currentRemark.indexOf(remark[index].custom);
|
|
|
|
int end = start + remark[index].custom.length;
|
|
|
|
currentRemark = currentRemark.replaceRange(start, end, '');
|
|
|
|
if (currentRemark.endsWith('、')) {
|
|
|
|
currentRemark = currentRemark.substring(0, currentRemark.length - 1);
|
|
|
|
}
|
|
|
|
if (currentRemark.startsWith('、')) {
|
|
|
|
currentRemark = currentRemark.substring(1, currentRemark.length);
|
|
|
|
}
|
|
|
|
if (currentRemark.contains('、、')) {
|
|
|
|
currentRemark = currentRemark.replaceRange(
|
|
|
|
currentRemark.indexOf('、、'),
|
|
|
|
currentRemark.indexOf('、、') + 2,
|
|
|
|
'、');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (currentRemark.length > 25) {
|
|
|
|
currentRemark = currentRemark.substring(0, 25);
|
|
|
|
}
|
|
|
|
setState(() {
|
|
|
|
_homeEnterModel.customController.text = currentRemark;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
_getCurruntIndex(String title) {
|
|
|
|
switch (title) {
|
|
|
|
case '早餐':
|
|
|
|
return 1;
|
|
|
|
case '午餐':
|
|
|
|
return 2;
|
|
|
|
case '晚餐':
|
|
|
|
return 3;
|
|
|
|
default:
|
|
|
|
return 4;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
List<Widget> _eatTimeWidget(List list) {
|
|
|
|
List<Widget> temp = [];
|
|
|
|
for (int i = 0; i < list.length; i++) {
|
|
|
|
temp.add(CustomButton(
|
|
|
|
onTap: () {
|
|
|
|
currTimeIndex = _getCurruntIndex(list[i]);
|
|
|
|
// state(() {
|
|
|
|
// for (var item in tempMndList) {
|
|
|
|
// item['select'] = false;
|
|
|
|
// if (item['title'] ==
|
|
|
|
// tempMndList[index]['title']) {
|
|
|
|
// item['select'] = true;
|
|
|
|
|
|
|
|
// _homeEnterModel.isSetDate = "1";
|
|
|
|
// _homeEnterModel.ddateStr = item['title'];
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
if (currTimeIndex == 1) {
|
|
|
|
_homeEnterModel.ddateStr = '8:00';
|
|
|
|
} else if (currTimeIndex == 2) {
|
|
|
|
_homeEnterModel.ddateStr = '12:00';
|
|
|
|
} else if (currTimeIndex == 3) {
|
|
|
|
_homeEnterModel.ddateStr = '18:30';
|
|
|
|
}
|
|
|
|
// _homeEnterModel.initHourAndMinuteSelect();
|
|
|
|
// 刷新页面
|
|
|
|
String ymyStr = dateText; //年月日
|
|
|
|
String timeStr = ymyStr + ' ' + "00:00:00";
|
|
|
|
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
|
|
|
|
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
_homeEnterModel.getNewTableList(context, '${ddate}',
|
|
|
|
currTimeIndex.toString(), pnum, _homeEnterModel.tableList);
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
Navigator.pop(context);
|
|
|
|
},
|
|
|
|
width: 80,
|
|
|
|
height: 36,
|
|
|
|
dateText: list[i],
|
|
|
|
dayText: '',
|
|
|
|
isSelect: _getCurruntIndex(list[i]) == currTimeIndex,
|
|
|
|
));
|
|
|
|
if (i < list.length - 1) {
|
|
|
|
temp.add(HEmptyView(80));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return temp;
|
|
|
|
}
|
|
|
|
|
|
|
|
///底部弹框,早餐,午餐,晚餐
|
|
|
|
_showMorningAndNightChooseWidget(
|
|
|
|
BuildContext context, List<String> list) async {
|
|
|
|
// List tempMndList = [];
|
|
|
|
|
|
|
|
String title = '用餐时段';
|
|
|
|
// String key;
|
|
|
|
// for (var item in _homeEnterModel.sunDateList) {
|
|
|
|
// if (item['isSelect'] == true) {
|
|
|
|
// title = item['dateText'];
|
|
|
|
// key = item['key'];
|
|
|
|
// tempMndList = _homeEnterModel.dailyMap[key];
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
final option = await showModalBottomSheet(
|
|
|
|
context: context,
|
|
|
|
isScrollControlled: true,
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
builder: (context) {
|
|
|
|
return StatefulBuilder(builder: (context, state) {
|
|
|
|
return SafeArea(
|
|
|
|
child: Container(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
borderRadius:
|
|
|
|
BorderRadius.circular(ScreenUtil().setWidth(10))),
|
|
|
|
child: Column(
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
Navigator.pop(context);
|
|
|
|
},
|
|
|
|
child: Align(
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.fromLTRB(
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(10)),
|
|
|
|
child: Image.asset(
|
|
|
|
'assets/close.png',
|
|
|
|
width: ScreenUtil().setWidth(32),
|
|
|
|
height: ScreenUtil().setWidth(32),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Center(
|
|
|
|
child: Text(title,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_353535)),
|
|
|
|
),
|
|
|
|
Padding(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(60),
|
|
|
|
vertical: ScreenUtil().setWidth(40)),
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: _eatTimeWidget(list)),
|
|
|
|
// child:GridView.builder(
|
|
|
|
// padding:
|
|
|
|
// EdgeInsets.only(top: ScreenUtil().setWidth(20)),
|
|
|
|
// shrinkWrap: true,
|
|
|
|
// cacheExtent: ScreenUtil().setWidth(0),
|
|
|
|
// itemCount: list.length,
|
|
|
|
// gridDelegate:
|
|
|
|
// SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
// crossAxisCount: list.length,
|
|
|
|
// childAspectRatio: 80 / 36,
|
|
|
|
// mainAxisSpacing:
|
|
|
|
// ScreenUtil().setWidth(15 * 2),
|
|
|
|
// crossAxisSpacing:
|
|
|
|
// ScreenUtil().setWidth(40 * 2)),
|
|
|
|
// itemBuilder: (BuildContext context, int index) {
|
|
|
|
// // locationState = state;
|
|
|
|
// return CustomButton(
|
|
|
|
// onTap: () {
|
|
|
|
// currTimeIndex = _getCurruntIndex(list[index]);
|
|
|
|
// // state(() {
|
|
|
|
// // for (var item in tempMndList) {
|
|
|
|
// // item['select'] = false;
|
|
|
|
// // if (item['title'] ==
|
|
|
|
// // tempMndList[index]['title']) {
|
|
|
|
// // item['select'] = true;
|
|
|
|
|
|
|
|
// // _homeEnterModel.isSetDate = "1";
|
|
|
|
// // _homeEnterModel.ddateStr = item['title'];
|
|
|
|
// // }
|
|
|
|
// // }
|
|
|
|
// // });
|
|
|
|
// if (currTimeIndex == 1) {
|
|
|
|
// _homeEnterModel.ddateStr = '8:00';
|
|
|
|
// } else if (currTimeIndex == 2) {
|
|
|
|
// _homeEnterModel.ddateStr = '12:00';
|
|
|
|
// } else if (currTimeIndex == 3) {
|
|
|
|
// _homeEnterModel.ddateStr = '18:30';
|
|
|
|
// }
|
|
|
|
// // _homeEnterModel.initHourAndMinuteSelect();
|
|
|
|
|
|
|
|
// _homeEnterModel.notifyListeners();
|
|
|
|
// Navigator.pop(context);
|
|
|
|
// },
|
|
|
|
// width: 80,
|
|
|
|
// height: 36,
|
|
|
|
// dateText: list[index],
|
|
|
|
// dayText: '',
|
|
|
|
// isSelect: _getCurruntIndex(list[index]) ==
|
|
|
|
// currTimeIndex,
|
|
|
|
// );
|
|
|
|
// })
|
|
|
|
),
|
|
|
|
VEmptyView(30)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
///底部弹框,设置时间30分钟间隔布局
|
|
|
|
_showDateChooseWidget(BuildContext context) async {
|
|
|
|
List tempMndList = [];
|
|
|
|
|
|
|
|
String title = '早市';
|
|
|
|
String key;
|
|
|
|
for (var item in _homeEnterModel.sunDateList) {
|
|
|
|
int tempIndex = _getCurruntIndex(item['dateText']);
|
|
|
|
if (currTimeIndex == tempIndex) {
|
|
|
|
title = item['dateText'];
|
|
|
|
key = item['key'];
|
|
|
|
tempMndList = _homeEnterModel.dailyMap[key];
|
|
|
|
}
|
|
|
|
// if (item['isSelect'] == true) {
|
|
|
|
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
final option = await showModalBottomSheet(
|
|
|
|
context: context,
|
|
|
|
isScrollControlled: true,
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
builder: (context) {
|
|
|
|
return StatefulBuilder(builder: (context, state) {
|
|
|
|
return SafeArea(
|
|
|
|
child: Container(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
borderRadius:
|
|
|
|
BorderRadius.circular(ScreenUtil().setWidth(10))),
|
|
|
|
child: Column(
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
children: [
|
|
|
|
InkWell(
|
|
|
|
onTap: () {
|
|
|
|
Navigator.pop(context);
|
|
|
|
},
|
|
|
|
child: Align(
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.fromLTRB(
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(40),
|
|
|
|
ScreenUtil().setWidth(10)),
|
|
|
|
child: Image.asset(
|
|
|
|
'assets/close.png',
|
|
|
|
width: ScreenUtil().setWidth(32),
|
|
|
|
height: ScreenUtil().setWidth(32),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Center(
|
|
|
|
child: Text(title,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(34),
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: MyColours.color_353535)),
|
|
|
|
),
|
|
|
|
Padding(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(60),
|
|
|
|
vertical: ScreenUtil().setWidth(40)),
|
|
|
|
child: GridView.builder(
|
|
|
|
padding:
|
|
|
|
EdgeInsets.only(top: ScreenUtil().setWidth(20)),
|
|
|
|
shrinkWrap: true,
|
|
|
|
cacheExtent: ScreenUtil().setWidth(0),
|
|
|
|
itemCount: tempMndList.length,
|
|
|
|
gridDelegate:
|
|
|
|
SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
crossAxisCount: 3,
|
|
|
|
childAspectRatio: 80 / 36,
|
|
|
|
mainAxisSpacing:
|
|
|
|
ScreenUtil().setWidth(15 * 2),
|
|
|
|
crossAxisSpacing:
|
|
|
|
ScreenUtil().setWidth(38 * 2)),
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
// locationState = state;
|
|
|
|
return CustomButton(
|
|
|
|
onTap: () {
|
|
|
|
// state(() {
|
|
|
|
for (var item in tempMndList) {
|
|
|
|
item['select'] = false;
|
|
|
|
if (item['title'] ==
|
|
|
|
tempMndList[index]['title']) {
|
|
|
|
item['select'] = true;
|
|
|
|
|
|
|
|
_homeEnterModel.isSetDate = "1";
|
|
|
|
_homeEnterModel.ddateStr = item['title'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// });
|
|
|
|
String ymyStr = dateText; //年月日
|
|
|
|
String timeStr = ymyStr + ' ' + "00:00:00";
|
|
|
|
int ddate = DateUtil.getDateMsByTimeStr(
|
|
|
|
timeStr); //筛选日期时间戳
|
|
|
|
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
|
|
|
|
_homeEnterModel.getNewTableList(
|
|
|
|
context,
|
|
|
|
'${ddate}',
|
|
|
|
currTimeIndex.toString(),
|
|
|
|
pnum,
|
|
|
|
_homeEnterModel.tableList);
|
|
|
|
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
Navigator.pop(context);
|
|
|
|
},
|
|
|
|
width: 80,
|
|
|
|
height: 36,
|
|
|
|
dateText: tempMndList[index]['title'].toString(),
|
|
|
|
dayText: '',
|
|
|
|
isSelect: tempMndList[index]['select'],
|
|
|
|
);
|
|
|
|
}))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget _callButton(
|
|
|
|
{GestureTapCallback onPress,
|
|
|
|
content,
|
|
|
|
hasLeftBorder = true,
|
|
|
|
isSelect = false}) {
|
|
|
|
return InkWell(
|
|
|
|
onTap: onPress,
|
|
|
|
child: Container(
|
|
|
|
width: ScreenUtil().setWidth(84),
|
|
|
|
height: ScreenUtil().setHeight(48),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: isSelect ? MyColours.color_199095 : MyColours.color_fefefe,
|
|
|
|
border: Border(
|
|
|
|
bottom: BorderSide(
|
|
|
|
color: MyColours.color_6AB6B9,
|
|
|
|
width: ScreenUtil().setWidth(2)),
|
|
|
|
top: BorderSide(
|
|
|
|
color: MyColours.color_6AB6B9,
|
|
|
|
width: ScreenUtil().setWidth(2)),
|
|
|
|
left: hasLeftBorder
|
|
|
|
? BorderSide(
|
|
|
|
color: MyColours.color_6AB6B9,
|
|
|
|
width: ScreenUtil().setWidth(2))
|
|
|
|
: BorderSide.none,
|
|
|
|
right: BorderSide(
|
|
|
|
color: MyColours.color_6AB6B9,
|
|
|
|
width: ScreenUtil().setWidth(2)))),
|
|
|
|
child: Align(
|
|
|
|
alignment: Alignment.center,
|
|
|
|
child: Text(
|
|
|
|
content,
|
|
|
|
style: TextStyle(
|
|
|
|
color: isSelect ? Colors.white : MyColours.color_353535,
|
|
|
|
fontSize: ScreenUtil().setSp(28)),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_openAddressBook() async {
|
|
|
|
if (!(await checkContactPermission())) {
|
|
|
|
PermissionStatus permissionStatus = await contactPermissionStatus();
|
|
|
|
if (permissionStatus == PermissionStatus.permanentlyDenied) {
|
|
|
|
//用户选择不在弹出权限提示框
|
|
|
|
print('never');
|
|
|
|
DialogUtil.openAlertDialog(
|
|
|
|
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启", '去设置', 340.0,
|
|
|
|
onTap: () {
|
|
|
|
openSetting();
|
|
|
|
Navigator.pop(context, '');
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
// 申请权限
|
|
|
|
bool canContacts = await requestContactPermission();
|
|
|
|
if (canContacts) {
|
|
|
|
_getContactData();
|
|
|
|
} else {
|
|
|
|
//拒绝通讯录权限 , 苹果拒绝权限后,不再提示权限框,进入此处
|
|
|
|
DialogUtil.openAlertDialog(
|
|
|
|
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启。", '去设置', 340.0,
|
|
|
|
onTap: () {
|
|
|
|
openSetting();
|
|
|
|
Navigator.pop(context, '');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
_getContactData();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_getContactData() async {
|
|
|
|
Contact contact = await _contactPicker.selectContactWithNative();
|
|
|
|
setState(() {
|
|
|
|
String fullName =
|
|
|
|
contact.fullName.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
|
|
|
|
String phone =
|
|
|
|
contact.phoneNumber.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
|
|
|
|
if (fullName.compareTo(phone) == 0) {
|
|
|
|
fullName = '';
|
|
|
|
} else {
|
|
|
|
fullName = contact.fullName;
|
|
|
|
}
|
|
|
|
_homeEnterModel.phoneController.text = contact.phoneNumber;
|
|
|
|
_homeEnterModel.nameController.text = fullName;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
_homeEnterModel = Provider.of<HomeEnterModel>(context, listen: true);
|
|
|
|
userModel = Provider.of<UserModel>(context, listen: false);
|
|
|
|
remarkManagerModel = Provider.of<RemarkManagerModel>(context, listen: true);
|
|
|
|
return GestureDetector(
|
|
|
|
behavior: HitTestBehavior.translucent,
|
|
|
|
onTap: () {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
},
|
|
|
|
child: Scaffold(
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
body: Column(children: <Widget>[
|
|
|
|
SystemAppBar(
|
|
|
|
'录入预订',
|
|
|
|
showLeading: false,
|
|
|
|
rightImgName: '清空',
|
|
|
|
onTapRight: () async {
|
|
|
|
_initTime();
|
|
|
|
|
|
|
|
_homeEnterModel.nameController.text = '';
|
|
|
|
_homeEnterModel.phoneController.text = '';
|
|
|
|
_homeEnterModel.customController.text = '';
|
|
|
|
dateText = ""; //当前显示日期时间
|
|
|
|
// currTimeIndex = null;
|
|
|
|
_homeEnterModel.ddateStr = '';
|
|
|
|
pnum = '6';
|
|
|
|
selectPnum = 5;
|
|
|
|
dateTimeNow = DateTime.now();
|
|
|
|
dateText = "${dateTimeNow.year}" +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(dateTimeNow.day);
|
|
|
|
String ddate =
|
|
|
|
DateTime.now().millisecondsSinceEpoch.toString() + '000';
|
|
|
|
await _homeEnterModel.getNewTableList(
|
|
|
|
context, ddate, currTimeIndex.toString(), pnum, []);
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
_homeEnterModel.notifyListeners();
|
|
|
|
},
|
|
|
|
),
|
|
|
|
Expanded(
|
|
|
|
child: SingleChildScrollView(
|
|
|
|
controller: _controller,
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
_topWidget(),
|
|
|
|
_middleWidget(),
|
|
|
|
// _bottomWidget()
|
|
|
|
],
|
|
|
|
))),
|
|
|
|
Container(
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(36),
|
|
|
|
vertical: ScreenUtil().setWidth(30),
|
|
|
|
),
|
|
|
|
child: CommonButton(
|
|
|
|
width: double.infinity,
|
|
|
|
height: 84,
|
|
|
|
fontSize: 34,
|
|
|
|
content: "完成预订",
|
|
|
|
state: 2,
|
|
|
|
onPress: () async {
|
|
|
|
String name = _homeEnterModel.nameController.text.trim();
|
|
|
|
if (ObjectUtil.isEmpty(name)) {
|
|
|
|
Utils.showToast("请填写客户姓名");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (_homeEnterModel.tableList.length == 0) {
|
|
|
|
Utils.showToast("请选择桌位");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
SunReserveInfoModel _model =
|
|
|
|
await _homeEnterModel.setReserveInfo(context);
|
|
|
|
if (ObjectUtil.isNotEmpty(_model.row) ||
|
|
|
|
ObjectUtil.isNotEmpty(_model.row.id)) {
|
|
|
|
print('成功');
|
|
|
|
// _homeEnterModel.clearData();
|
|
|
|
bus.emit("refresh_detail");
|
|
|
|
bus.emit("refresh_book_list"); //刷新已预订列表
|
|
|
|
String ddate_solt = '';
|
|
|
|
if (_model.row.isSetDdate == '1') {
|
|
|
|
String createtime = _model.row.ddate.toString() + '000';
|
|
|
|
DateTime createTime =
|
|
|
|
DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
int.parse(createtime));
|
|
|
|
ddate_solt = DateUtil.formatDate(createTime,
|
|
|
|
format: DateFormats.h_m);
|
|
|
|
} else {
|
|
|
|
if (_model.row.ddateSolt == '1') {
|
|
|
|
ddate_solt = '早餐';
|
|
|
|
} else if (_model.row.ddateSolt == '2') {
|
|
|
|
ddate_solt = '午餐';
|
|
|
|
} else if (_model.row.ddateSolt == '3') {
|
|
|
|
ddate_solt = '晚餐';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<dynamic> tableinfo =
|
|
|
|
convert.jsonDecode(_model.row.tableinfo);
|
|
|
|
print(tableinfo);
|
|
|
|
String _nameStr = t.TableList.fromJson(tableinfo[0]).name;
|
|
|
|
if (tableinfo.length > 1) {
|
|
|
|
_nameStr = t.TableList.fromJson(tableinfo[0]).name +
|
|
|
|
'等${tableinfo.length}桌';
|
|
|
|
}
|
|
|
|
LogUtil.v(_nameStr);
|
|
|
|
NavigatorUtil.goInvicationPage(
|
|
|
|
context,
|
|
|
|
_model.row.id,
|
|
|
|
_nameStr,
|
|
|
|
_model.row.ddate,
|
|
|
|
ddate_solt,
|
|
|
|
_model.row.phone,
|
|
|
|
replace: true);
|
|
|
|
EventBus().emit("refresh_tablemanager"); //刷新桌位
|
|
|
|
} else {
|
|
|
|
Utils.showToast("录入预订订单失败,请重试!");
|
|
|
|
}
|
|
|
|
},
|
|
|
|
))
|
|
|
|
]),
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class CustomButton extends StatefulWidget {
|
|
|
|
final String dateText;
|
|
|
|
final String dayText;
|
|
|
|
final bool isSelect;
|
|
|
|
final double fontSize;
|
|
|
|
final bool isImage;
|
|
|
|
final double width;
|
|
|
|
final GestureTapCallback onTap;
|
|
|
|
final bool isTextFiled;
|
|
|
|
final HomeEnterModel model;
|
|
|
|
final double height;
|
|
|
|
final String pnum;
|
|
|
|
|
|
|
|
const CustomButton({
|
|
|
|
Key key,
|
|
|
|
this.dateText,
|
|
|
|
this.dayText,
|
|
|
|
this.isSelect,
|
|
|
|
this.fontSize = 34,
|
|
|
|
this.isImage = false,
|
|
|
|
this.width = 105,
|
|
|
|
this.onTap,
|
|
|
|
this.isTextFiled = false,
|
|
|
|
this.model,
|
|
|
|
this.height = 25,
|
|
|
|
this.pnum,
|
|
|
|
}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_ButtonState createState() => _ButtonState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _ButtonState extends State<CustomButton> {
|
|
|
|
FocusNode _cancelNode = FocusNode();
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
String imgStrSelect = widget.isImage && !widget.isTextFiled
|
|
|
|
? 'assets/calender_select.png'
|
|
|
|
: 'assets/more_select.png';
|
|
|
|
String imgStrNormal = widget.isImage && !widget.isTextFiled
|
|
|
|
? 'assets/calender_narmol.png'
|
|
|
|
: 'assets/more_narmol.png';
|
|
|
|
return InkWell(
|
|
|
|
onTap: widget.onTap,
|
|
|
|
child: Container(
|
|
|
|
width: ScreenUtil().setWidth(widget.width * 2),
|
|
|
|
height: ScreenUtil().setWidth(widget.height * 2),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: widget.isSelect ? MyColours.color_199095 : Colors.white,
|
|
|
|
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
|
|
|
|
border: Border.all(
|
|
|
|
color: MyColours.color_199095,
|
|
|
|
width: ScreenUtil().setWidth(2))),
|
|
|
|
child: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
children: [
|
|
|
|
widget.isTextFiled
|
|
|
|
? Container(
|
|
|
|
alignment: Alignment.center,
|
|
|
|
// color: Colors.red,
|
|
|
|
width: ScreenUtil().setWidth(114),
|
|
|
|
height: ScreenUtil().setWidth(50),
|
|
|
|
// padding: EdgeInsets.zero,
|
|
|
|
child: TextField(
|
|
|
|
controller: widget.model.numController,
|
|
|
|
maxLines: 1,
|
|
|
|
|
|
|
|
inputFormatters: [
|
|
|
|
LengthLimitingTextInputFormatter(3),
|
|
|
|
WhitelistingTextInputFormatter.digitsOnly
|
|
|
|
],
|
|
|
|
//光标颜色
|
|
|
|
cursorColor: widget.isSelect
|
|
|
|
? Colors.white
|
|
|
|
: MyColours.color_199095,
|
|
|
|
//输入文本的样式
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: ScreenUtil().setSp(30),
|
|
|
|
color: widget.isSelect
|
|
|
|
? Colors.white
|
|
|
|
: MyColours.color_199095),
|
|
|
|
// controller: _cancelController,
|
|
|
|
focusNode: _cancelNode,
|
|
|
|
textAlignVertical: TextAlignVertical.bottom,
|
|
|
|
decoration: InputDecoration(
|
|
|
|
// fillColor: Colors.lightGreenAccent,
|
|
|
|
// filled: true,
|
|
|
|
border: OutlineInputBorder(borderSide: BorderSide.none),
|
|
|
|
hintText: "更多",
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: widget.isSelect
|
|
|
|
? Colors.white
|
|
|
|
: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setSp(30),
|
|
|
|
),
|
|
|
|
// contentPadding: EdgeInsets.only(
|
|
|
|
// bottom: ScreenUtil().setWidth(30)), //ios 17
|
|
|
|
// border: InputBorder.none,
|
|
|
|
),
|
|
|
|
onChanged: (value) {
|
|
|
|
bool isThird = true;
|
|
|
|
for (int i = 0;
|
|
|
|
i < widget.model.personNumList.length;
|
|
|
|
i++) {
|
|
|
|
widget.model.personNumList[i]['isSelect'] = false;
|
|
|
|
|
|
|
|
if (widget.model.personNumList[i]['dateText'] ==
|
|
|
|
value) {
|
|
|
|
widget.model.personNumList[i]['isSelect'] = true;
|
|
|
|
isThird = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isThird) {
|
|
|
|
widget.model.personNumList[5]['isSelect'] = true;
|
|
|
|
widget.model.personNumList[5]['dateText'] = value;
|
|
|
|
} else {
|
|
|
|
widget.model.personNumList[5]['dateText'] = '更多';
|
|
|
|
}
|
|
|
|
widget.model.notifyListeners();
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
_cancelNode.unfocus();
|
|
|
|
int ddate = Utils.getDdate(widget.model.dateList);
|
|
|
|
String ddateSolt =
|
|
|
|
Utils.getDdateSolt(widget.model.sunDateList);
|
|
|
|
// String pnum = Utils.getPnum(widget.model.personNumList);
|
|
|
|
|
|
|
|
widget.model.getNewTableList(context, '${ddate}',
|
|
|
|
ddateSolt, widget.pnum, widget.model.tableList);
|
|
|
|
},
|
|
|
|
keyboardType: TextInputType.number,
|
|
|
|
),
|
|
|
|
)
|
|
|
|
: Text(widget.dateText,
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: widget.isImage && widget.dateText == "其他"
|
|
|
|
? FontWeight.normal
|
|
|
|
: FontWeight.bold,
|
|
|
|
color: widget.isSelect
|
|
|
|
? MyColours.color_fefefe
|
|
|
|
: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setSp(widget.fontSize))),
|
|
|
|
widget.isImage && !widget.isTextFiled
|
|
|
|
? HEmptyView(20)
|
|
|
|
: Container(),
|
|
|
|
widget.isImage
|
|
|
|
? Image.asset(widget.isSelect ? imgStrSelect : imgStrNormal,
|
|
|
|
width: ScreenUtil().setWidth(36))
|
|
|
|
: Text(widget.dayText,
|
|
|
|
style: TextStyle(
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
color: widget.isSelect
|
|
|
|
? MyColours.color_fefefe
|
|
|
|
: MyColours.color_199095,
|
|
|
|
fontSize: ScreenUtil().setSp(30)))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget remarkButton({GestureTapCallback onPress, content, isSelect = false}) {
|
|
|
|
return InkWell(
|
|
|
|
onTap: onPress,
|
|
|
|
child: Container(
|
|
|
|
height: ScreenUtil().setHeight(48),
|
|
|
|
margin: EdgeInsets.only(right: ScreenUtil().setWidth(20)),
|
|
|
|
padding: EdgeInsets.symmetric(
|
|
|
|
horizontal: ScreenUtil().setWidth(20),
|
|
|
|
vertical: ScreenUtil().setWidth(6)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
|
|
|
|
color: isSelect ? MyColours.color_199095 : MyColours.color_f5f5f5,
|
|
|
|
),
|
|
|
|
child: Align(
|
|
|
|
alignment: Alignment.center,
|
|
|
|
child: Text(
|
|
|
|
content,
|
|
|
|
style: TextStyle(
|
|
|
|
color: isSelect ? Colors.white : MyColours.color_353535,
|
|
|
|
fontSize: ScreenUtil().setSp(28)),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
} |
...
|
...
|
|