Commit eddf4bf6a2f7c5c43260fd1bcbab0ce317835292

Authored by wdn127929
1 parent 8a925cd5

核餐和订单订金

import 'package:common_utils/common_utils.dart';
class ReserveDepositModel {
int ret;
List<ReserveDepositSunModel> data;
String msg;
ReserveDepositModel({this.ret, this.data, this.msg});
ReserveDepositModel.fromJson(Map<String, dynamic> json) {
ret = json['ret'];
if (json['data'] != null) {
data = <ReserveDepositSunModel>[];
json['data'].forEach((v) {
data.add(new ReserveDepositSunModel.fromJson(v));
});
}
msg = json['msg'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ret'] = this.ret;
if (this.data != null) {
data['data'] = this.data.map((v) => v.toJson()).toList();
}
data['msg'] = this.msg;
return data;
}
}
class ReserveDepositSunModel {
String id;
String sid;
String rid;
String price;
String uid;
String payTime;
String payType;
String payNo;
String cdate;
String nickName;
String get payTimeStr {
if (payTime.toString() == '0') {
return '';
}
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
int.parse(payTime.toString()) * 1000);
return DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
}
ReserveDepositSunModel(
{this.id,
this.sid,
this.rid,
this.price,
this.uid,
this.payTime,
this.payType,
this.payNo,
this.cdate,
this.nickName});
ReserveDepositSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
sid = json['sid'];
rid = json['rid'];
price = json['price'];
uid = json['uid'];
payTime = json['pay_time'];
payType = json['pay_type'];
payNo = json['pay_no'];
cdate = json['cdate'];
nickName = json['nick_name'] ?? '';
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['sid'] = this.sid;
data['rid'] = this.rid;
data['price'] = this.price;
data['uid'] = this.uid;
data['pay_time'] = this.payTime;
data['pay_type'] = this.payType;
data['pay_no'] = this.payNo;
data['cdate'] = this.cdate;
data['nick_name'] = this.nickName;
return data;
}
}
... ...
import 'package:common_utils/common_utils.dart';
class ReserveRecheckModel {
int ret;
List<ReserveRecheckSunModel> data;
String msg;
ReserveRecheckModel({this.ret, this.data, this.msg});
ReserveRecheckModel.fromJson(Map<String, dynamic> json) {
ret = json['ret'];
if (json['data'] != null) {
data = <ReserveRecheckSunModel>[];
json['data'].forEach((v) {
data.add(new ReserveRecheckSunModel.fromJson(v));
});
}
msg = json['msg'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ret'] = this.ret;
if (this.data != null) {
data['data'] = this.data.map((v) => v.toJson()).toList();
}
data['msg'] = this.msg;
return data;
}
}
class ReserveRecheckSunModel {
String id;
String rid;
String uid;
String type;
String desc;
String cdate;
String nickName;
String get typeShow {
return type == '1'
? '已确认'
: type == '2'
? '未接通'
: '待定';
}
String get cdateStr {
if (cdate.toString() == '0') {
return '';
}
DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(int.parse(cdate.toString()) * 1000);
return DateUtil.formatDate(dateTime, format: DateFormats.full);
}
ReserveRecheckSunModel(
{this.id,
this.rid,
this.uid,
this.type,
this.desc,
this.cdate,
this.nickName});
ReserveRecheckSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
rid = json['rid'];
uid = json['uid'];
type = json['type'];
desc = json['desc'];
cdate = json['cdate'];
nickName = json['nick_name'] ?? '';
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['rid'] = this.rid;
data['uid'] = this.uid;
data['type'] = this.type;
data['desc'] = this.desc;
data['cdate'] = this.cdate;
data['nick_name'] = this.nickName;
return data;
}
}
... ...
... ... @@ -471,4 +471,18 @@ class HttpUrl {
static const String get_seller_template_color_list =
"?service=App.Seller.GetSellerTemplateColorList"; // 模板/颜色配置信息
static const String create_reserve_deposit =
"?service=App.Reserve.CreateReserveDeposit"; // 订单创建收定金
static const String get_reserve_deposit_by_rid =
"?service=App.Reserve.GetReserveDepositByRid"; // 通过预订ID查收定金详情
static const String del_reserve_deposit_by_id =
"?service=App.Reserve.DelReserveDepositByid"; // 删除定金
static const String create_reserve_recheck =
"?service=App.Reserve.CreateReserveRecheck"; // 创建核餐
static const String get_reserve_recheck_by_rid =
"?service=App.Reserve.GetReserveRecheckByRid"; // 获取核餐记录
}
... ...
... ... @@ -13,6 +13,7 @@ import 'package:provider/provider.dart';
import '../../models/book_deposit_model.dart';
import '../../models/get_banquet_deposit_model.dart';
import '../../provider/feast_model.dart';
import '../../provider/notebook_detail_model.dart';
import '../../provider/user_model.dart';
import '../../res/colors.dart';
import '../../utils/dialog_util.dart';
... ... @@ -53,6 +54,8 @@ class _BookDepositPageState extends State<BookDepositPage> {
bool showDateSelWidget = false;
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
NotebookDetailModel detailModel;
FeastModel feastModel;
@override
... ... @@ -138,38 +141,50 @@ class _BookDepositPageState extends State<BookDepositPage> {
}
}
_setBanquetDeposit() async {
// if (moneyC.text.trim().length == 0) {
// Utils.showToast('请输入金额');
// return;
// }
// Map<String, String> pramas = {
// 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
// 'rid': widget.rid,
// 'price': moneyC.text,
// 'rname': paymentC.text,
// 'collection_uid': collectionPIndex == null
// ? null
// : feastModel.sellerManageList[collectionPIndex].id,
// 'rtime': paymentTime == '请选择'
// ? null
// : (DateUtil.getDateTime(paymentTime).millisecondsSinceEpoch / 1000)
// .floor()
// .toString(),
// 'pay': payTypeIndex == null ? null : payType[payTypeIndex],
// 'deposit_id': depositTypeIndex == null
// ? null
// : feastModel.depositData[depositTypeIndex].id,
// 'no': receiptNumberC.text
// };
// if (widget.depositSunModel != null) {
// pramas['id'] = widget.depositSunModel.id;
// }
// bool success = await feastModel.setBanquetDeposit(context, pramas);
// if (success) {
// Navigator.pop(context);
// bus.emit('feast_deposit_list');
// }
_createReserveDeposit() async {
if (moneyC.text.trim().length == 0) {
Utils.showToast('请输入金额');
return;
}
if (collectionP == '请选择' || collectionPIndex == null) {
Utils.showToast('请选择收款人');
return;
}
if (paymentTime == '请选择') {
Utils.showToast('请选择付款时间');
return;
}
if (paymentType == '请选择' || payTypeIndex == null) {
Utils.showToast('请选择支付方式');
return;
}
if (receiptNumberC.text.trim().length == 0) {
Utils.showToast('请输入收据编号');
return;
}
Map<String, String> pramas = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'rid': widget.rid,
'price': moneyC.text,
// 'rname': paymentC.text,
'uid': collectionPIndex == null
? null
: feastModel.sellerManageList[collectionPIndex].id,
'pay_time': paymentTime == '请选择'
? null
: (DateUtil.getDateTime(paymentTime).millisecondsSinceEpoch / 1000)
.floor()
.toString(),
'pay_type': payTypeIndex == null ? null : payType[payTypeIndex],
'pay_no': receiptNumberC.text
};
print(feastModel.sellerManageList[collectionPIndex].title);
bool success = await detailModel.createReserveDeposit(context, pramas);
if (success) {
Navigator.pop(context);
bus.emit('refresh_detail_deposit');
}
}
///请输入
... ... @@ -386,6 +401,8 @@ class _BookDepositPageState extends State<BookDepositPage> {
@override
Widget build(BuildContext context) {
feastModel = Provider.of<FeastModel>(context, listen: true);
detailModel = Provider.of<NotebookDetailModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
key: scaffoldKey,
... ... @@ -545,7 +562,7 @@ class _BookDepositPageState extends State<BookDepositPage> {
textColor: MyColours.color_ffffff,
borderColor: MyColours.color_438E93,
onPressed: () {
_setBanquetDeposit();
_createReserveDeposit();
},
)),
],
... ...
... ... @@ -13,6 +13,7 @@ import 'package:one_key/constant/state.dart';
import 'package:one_key/models/manager.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/remark.dart';
import 'package:one_key/models/reserve_recheck_model.dart';
import 'package:one_key/pages/detail/notebook_detail_change_page.dart';
import 'package:one_key/pages/detail/notebook_detail_change_page_f.dart';
import 'package:one_key/provider/marketing_center_provider.dart';
... ... @@ -50,6 +51,7 @@ import 'package:one_key/models/table.dart' as t;
import '../../app.dart';
import '../../models/reserve_deposit_model.dart';
import '../../provider/collect_store_provider.dart';
import '../../utils/screen_util.dart';
import '../../widgets/special_text/my_extended_text_selection_controls.dart';
... ... @@ -132,6 +134,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
_initCancel();
_getReserveDetail();
_getOrderInfo();
_getReserveDepositByRid();
_getReserveRecheckByRid(); //获取核餐记录
// _initPersonNumList();
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid
... ... @@ -155,9 +159,44 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
bus.on("refresh_detail", (args) {
_getReserveDetail();
});
bus.on("refresh_detail_deposit", (args) {
_getReserveDepositByRid(); //刷新订金数据
});
bus.on("refresh_detail_reserve_recheck", (args) {
_getReserveRecheckByRid(); //获取核餐记录
});
});
}
/// 通过预订ID查收定金详情
_getReserveDepositByRid() async {
Map<String, String> params = {
'rid': widget.rid,
};
await detailModel.getReserveDepositByRid(context, params);
}
///获取核餐记录
_getReserveRecheckByRid() async {
Map<String, String> params = {
'rid': widget.rid,
};
await detailModel.getReserveRecheckByRid(context, params);
}
///删除定金
_delReserveDepositByid(String id) async {
Map<String, String> params = {
'id': id,
};
bool success = await detailModel.delReserveDepositByid(context, params);
if (success) {
Utils.showToast('删除成功');
detailModel.reserveDepositList.removeWhere((element) => element.id == id);
setState(() {});
}
}
getSellerVersion() async {
await collectStoreProvider.getSellerVersion(context);
... ... @@ -370,6 +409,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
super.dispose();
bus.off("refresh_detail");
bus.off("refresh_detail_deposit");
bus.off("refresh_detail_reserve_recheck");
}
///获取订单详情
... ... @@ -1358,12 +1399,11 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
),
ListView.builder(
padding: EdgeInsets.only(left: w(13), top: w(20)),
itemCount: 2,
itemCount: detailModel.reserveDepositList.length,
shrinkWrap: true,
controller: controller,
itemBuilder: (BuildContext context, int index) {
// GetBanquetDepositSunModel data =
// feastModel.banquetDepositData[index];
ReserveDepositSunModel data = detailModel.reserveDepositList[index];
return InkWell(
onTap: () {
// NavigatorUtil.goFeastDepositPage(context, feastModel.rid,
... ... @@ -1393,7 +1433,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'收据编号 SJ000001',
'收据编号 ${data.payNo}',
// '收据编号 ${data.no == '0' ? '' : data.no}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
... ... @@ -1409,7 +1449,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
isBoldContent: true,
contentColor: MyColours.color_E6000000,
rTitle: "删除", rCallback: () {
// _delBanquetDeposit(data.id);
_delReserveDepositByid(data.id);
});
},
child: Image.asset(
... ... @@ -1428,8 +1468,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
djTextType1('定金金额 ', '200', ' 元'),
djText('支付方式 ', '现金'),
djTextType1('定金金额 ', '${data.price}', ' 元'),
djText('支付方式 ', '${data.payType}'),
],
),
HEmptyView(140),
... ... @@ -1437,8 +1477,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
djText('付款时间 ', '2023-10-01'),
djText('收款人 ', 'cccc经理'),
djText('付款时间 ', '${data.payTimeStr}'),
djText('收款人 ', '${data.nickName}'),
// djText('收款人 ',
// '${data.nickName == null ? '' : data.nickName}'),
],
... ... @@ -1447,8 +1487,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
))
])));
}),
VEmptyView(20),
MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4),
// VEmptyView(20),
// MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4),
]);
}
... ... @@ -1478,39 +1518,52 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
onPressed: () {
NavigatorUtil.goVerifyFoodPage(
context,
);
NavigatorUtil.goVerifyFoodPage(context, widget.rid);
},
),
],
),
ListView.builder(
padding: EdgeInsets.only(left: w(13), top: w(20)),
itemCount: 3,
itemCount: detailModel.reserveRecheckList.length,
shrinkWrap: true,
controller: controller,
itemBuilder: (BuildContext context, int index) {
// GetBanquetDepositSunModel data =
// feastModel.banquetDepositData[index];
ReserveRecheckSunModel data = detailModel.reserveRecheckList[index];
return Container(
margin: EdgeInsets.only(bottom: w(10)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'未接通、已确认、待定',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_515151, fontSize: font(14)),
),
Text(
'张小娴 2023-12-16 15:23',
overflow: TextOverflow.ellipsis,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'${data.typeShow}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
Text(
'${data.nickName} ${data.cdateStr}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14)),
),
]),
Align(
alignment: Alignment.centerRight,
child: Text(
'${data.desc}',
textAlign: TextAlign.right,
// overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999, fontSize: font(14)),
),
]));
),
],
));
}),
VEmptyView(20),
MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4),
... ... @@ -1559,12 +1612,11 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
Expanded(
child: Text(
'${detailEntity.nick_name ?? ''}' +
' ' +
'${detailEntity.seller_user_phone ?? ''}' +
( detailEntity.up_date ==
null
? ''
: ' ${_getDateTime(detailEntity.up_date)}'),
' ' +
'${detailEntity.seller_user_phone ?? ''}' +
(detailEntity.up_date == null
? ''
: ' ${_getDateTime(detailEntity.up_date)}'),
// overflow: TextOverflow.ellipsis,
textAlign: TextAlign.right,
style:
... ...
import 'package:flutter/material.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';
import '../../models/reserve_recheck_model.dart';
import '../../provider/notebook_detail_model.dart';
import '../../res/colors.dart';
import '../../utils/event_bus.dart';
import '../../utils/screen_util.dart';
import '../../utils/utils.dart';
import '../../widgets/h_empty_view.dart';
... ... @@ -13,7 +18,8 @@ import '../../widgets/v_empty_view.dart';
* 核餐页面
* */
class VerifyFoodPage extends StatefulWidget {
VerifyFoodPage({Key key}) : super(key: key);
final String rid;
VerifyFoodPage({Key key, this.rid}) : super(key: key);
@override
_VerifyFoodPageState createState() => _VerifyFoodPageState();
... ... @@ -26,6 +32,17 @@ class _VerifyFoodPageState extends State<VerifyFoodPage> {
TextEditingController customController = TextEditingController();
FocusNode _cusdemNode = FocusNode();
NotebookDetailModel detailModel;
ScrollController controller = ScrollController();
@override
void initState() {
// TODO: implement initState
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
_getReserveRecheckByRid();
});
}
_itemRadioWidget(bool select, String title, {GestureTapCallback onTap}) {
return InkWell(
... ... @@ -44,8 +61,38 @@ class _VerifyFoodPageState extends State<VerifyFoodPage> {
]));
}
///创建核餐
_createReserveRecheck() async {
Map<String, String> pramas = {
'rid': widget.rid,
'uid': Provider.of<UserModel>(context, listen: false).user.openid,
'type': confirmed
? '1'
: connected
? '2'
: '3', //1 已确认 2 未接通 3 待定
'desc': customController.text
};
bool success = await detailModel.createReserveRecheck(context, pramas);
if (success) {
Utils.showToast('保存成功');
bus.emit('refresh_detail_reserve_recheck');
Navigator.pop(context);
}
}
///获取核餐记录
_getReserveRecheckByRid() async {
Map<String, String> params = {
'rid': widget.rid,
};
await detailModel.getReserveRecheckByRid(context, params);
}
@override
Widget build(BuildContext context) {
detailModel = Provider.of<NotebookDetailModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('核餐确认'),
... ... @@ -53,149 +100,178 @@ class _VerifyFoodPageState extends State<VerifyFoodPage> {
children: [
Expanded(
child: SingleChildScrollView(
controller: controller,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: w(16), vertical: w(24)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
_itemRadioWidget(confirmed, '已确认', onTap: () {
if (!confirmed) {
setState(() {
confirmed = true;
padding: EdgeInsets.symmetric(
horizontal: w(16), vertical: w(24)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
_itemRadioWidget(confirmed, '已确认', onTap: () {
if (!confirmed) {
setState(() {
confirmed = true;
connected = false;
undetermined = false;
});
}
}),
Spacer(),
_itemRadioWidget(connected, '未接通', onTap: () {
if (!connected) {
setState(() {
connected = true;
connected = false;
undetermined = false;
});
}
}),
Spacer(),
_itemRadioWidget(connected, '未接通', onTap: () {
if (!connected) {
setState(() {
connected = true;
confirmed = false;
undetermined = false;
});
}
}),
Spacer(),
_itemRadioWidget(undetermined, '待定', onTap: () {
if (!undetermined) {
setState(() {
undetermined = true;
connected = false;
confirmed = false;
});
}
}),
],
),
VEmptyView(40),
confirmed = false;
undetermined = false;
});
}
}),
Spacer(),
_itemRadioWidget(undetermined, '待定', onTap: () {
if (!undetermined) {
setState(() {
undetermined = true;
connected = false;
confirmed = false;
});
}
}),
],
),
VEmptyView(40),
Text(
'备注',
style: TextStyle(
color: MyColours.color_515151, fontSize: font(15)),
),
Text(
'备注',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(15)),
),
VEmptyView(30),
//输入框
Container(
width: double.infinity,
padding:
EdgeInsets.symmetric(horizontal: w(10), vertical: w(10)),
alignment: Alignment.topLeft,
decoration: BoxDecoration(
color: MyColours.color_ffffff,
border: Border.all(
color: MyColours.color_DBDBDB, width: w(1)),
borderRadius: BorderRadius.circular(r(8))),
child: TextField(
controller: customController,
focusNode: _cusdemNode,
style: TextStyle(
color: MyColours.color_333333,
fontSize: font(14),
textBaseline: TextBaseline.alphabetic),
textAlignVertical: TextAlignVertical.center,
maxLines: 5,
maxLength: 100,
decoration: InputDecoration(
hintText: "请输入备注或点击快捷选择标签",
hintStyle: TextStyle(
color: MyColours.color_979797,
fontSize: font(14),
VEmptyView(30),
//输入框
Container(
width: double.infinity,
padding: EdgeInsets.symmetric(
horizontal: w(10), vertical: w(10)),
alignment: Alignment.topLeft,
decoration: BoxDecoration(
color: MyColours.color_ffffff,
border: Border.all(
color: MyColours.color_DBDBDB, width: w(1)),
borderRadius: BorderRadius.circular(r(8))),
child: TextField(
controller: customController,
focusNode: _cusdemNode,
style: TextStyle(
color: MyColours.color_333333,
fontSize: font(14),
textBaseline: TextBaseline.alphabetic),
textAlignVertical: TextAlignVertical.center,
maxLines: 5,
maxLength: 100,
decoration: InputDecoration(
hintText: "请输入备注或点击快捷选择标签",
hintStyle: TextStyle(
color: MyColours.color_979797,
fontSize: font(14),
),
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide.none),
),
keyboardType: TextInputType.text,
onChanged: (value) {
// setState(() {
// currentRemark = value ?? "";
// });
// if (value.length < currRemark.length &&
// currRemark.substring(value.length) != ',') {
// setState(() {
// currRemark = value ?? "";
// });
// if (sum == 0) {
// for (int i = 0; i < remarks.length; i++) {
// if (remarks[i].isSelect &&
// remarks[i].remark == selectItem.last) {
// setState(() {
// remarks[i].isSelect = false;
// });
// }
// }
// }
// sum++;
// if (sum == selectItem.last.length ||
// selectItem.length == 1 ||
// selectItem.length == 0) {
// selectItem.removeLast();
// sum = 0;
// }
// } else {
// setState(() {
// currRemark = value ?? "";
// });
// }
}),
),
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(borderSide: BorderSide.none),
),
keyboardType: TextInputType.text,
onChanged: (value) {
// setState(() {
// currentRemark = value ?? "";
// });
// if (value.length < currRemark.length &&
// currRemark.substring(value.length) != ',') {
// setState(() {
// currRemark = value ?? "";
// });
// if (sum == 0) {
// for (int i = 0; i < remarks.length; i++) {
// if (remarks[i].isSelect &&
// remarks[i].remark == selectItem.last) {
// setState(() {
// remarks[i].isSelect = false;
// });
// }
// }
// }
// sum++;
// if (sum == selectItem.last.length ||
// selectItem.length == 1 ||
// selectItem.length == 0) {
// selectItem.removeLast();
// sum = 0;
// }
// } else {
// setState(() {
// currRemark = value ?? "";
// });
// }
}),
),
VEmptyView(20),
MyDivider(
double.infinity,
w(0.5),
color: MyColours.color_BFC4D4,
),
VEmptyView(30),
Container(
margin: EdgeInsets.only(bottom: w(10)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'未接通、已确认、待定',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
Text(
'张小娴 2023-12-16 15:23',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14)),
),
]))
],
),
))),
VEmptyView(20),
MyDivider(
double.infinity,
w(0.5),
color: MyColours.color_BFC4D4,
),
VEmptyView(30),
ListView.builder(
padding: EdgeInsets.only(left: w(13), top: w(20)),
itemCount: detailModel.reserveRecheckList.length,
shrinkWrap: true,
controller: controller,
itemBuilder: (BuildContext context, int index) {
ReserveRecheckSunModel data =
detailModel.reserveRecheckList[index];
return Container(
margin: EdgeInsets.only(bottom: w(10)),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'${data.typeShow}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
Text(
'${data.nickName} ${data.cdateStr}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14)),
),
]),
Align(
alignment: Alignment.centerRight,
child: Text(
'${data.desc}',
textAlign: TextAlign.right,
// overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14)),
),
),
],
));
}),
],
),
))),
Container(
padding: EdgeInsets.symmetric(horizontal: w(24), vertical: w(35)),
child: Row(
... ... @@ -228,7 +304,7 @@ class _VerifyFoodPageState extends State<VerifyFoodPage> {
textColor: MyColours.color_ffffff,
borderColor: MyColours.color_438E93,
onPressed: () {
// _setBanquetDeposit();
_createReserveRecheck();
},
)),
],
... ...
... ... @@ -14,6 +14,9 @@ import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import '../models/reserve_deposit_model.dart';
import '../models/reserve_recheck_model.dart';
class NotebookDetailModel extends ChangeNotifier {
PageState pageState = PageState.Loading;
String selectNum;
... ... @@ -25,6 +28,10 @@ class NotebookDetailModel extends ChangeNotifier {
TextEditingController nameController = TextEditingController();
List sexList;
List<UserHistoryEntity> userHistorys = []; //历史录入
List<ReserveDepositSunModel> reserveDepositList = []; //订单订金数据
List<ReserveRecheckSunModel> reserveRecheckList = []; //核餐记录数据
NotebookDetailModel() {
initSexList();
}
... ... @@ -70,6 +77,48 @@ class NotebookDetailModel extends ChangeNotifier {
}
}
/// 通过预订ID查收定金详情
getReserveDepositByRid(
BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.get_reserve_deposit_by_rid,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
if (baseResp.code == Constant.status_success) {
reserveDepositList =
ReserveDepositModel.fromJson(baseResp.responseData).data;
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
}
notifyListeners();
}
/// 获取核餐记录
getReserveRecheckByRid(
BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.get_reserve_recheck_by_rid,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
if (baseResp.code == Constant.status_success) {
reserveRecheckList =
ReserveRecheckModel.fromJson(baseResp.responseData).data;
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
}
notifyListeners();
}
///获取已预订订单
Future<NotebookDetail> getReserveDetail(
BuildContext context, Map<String, String> params,
... ... @@ -149,6 +198,60 @@ class NotebookDetailModel extends ChangeNotifier {
}
}
///创建收定金
createReserveDeposit(BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.create_reserve_deposit,
data: params)
.catchError((error) {
print(error.toString());
return false;
});
if (baseResp.code == Constant.status_success) {
return true;
} else {
Utils.showToast(baseResp.msg ?? "");
return false;
}
}
///创建核餐
createReserveRecheck(BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.create_reserve_recheck,
data: params)
.catchError((error) {
print(error.toString());
return false;
});
if (baseResp.code == Constant.status_success) {
return true;
} else {
Utils.showToast(baseResp.msg ?? "");
return false;
}
}
//删除预订订金
delReserveDepositByid(
BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
context, Method.get, HttpUrl.del_reserve_deposit_by_id,
data: params)
.catchError((error) {
print(error.toString());
return false;
});
if (baseResp.code == Constant.status_success) {
return true;
} else {
Utils.showToast(baseResp.msg ?? "");
return false;
}
}
//取消预订发送短信
wxSendCancelSms(BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
... ...
... ... @@ -1864,9 +1864,11 @@ class NavigatorUtil {
///预订----核餐确认
static Future<dynamic> goVerifyFoodPage(
BuildContext context, {
BuildContext context,
String rid, {
replace = false,
}) {
return _navigateTo(context, "${Routes.verify_food_page}", replace: replace);
return _navigateTo(context, "${Routes.verify_food_page}?rid=$rid",
replace: replace);
}
}
... ...
... ... @@ -3150,18 +3150,24 @@ var bookDepositPageHandle = new Handler(
return ChangeNotifierProvider<NotebookDetailModel>(
create: (_) => NotebookDetailModel(),
child: BookDepositPage(rid: rid, depositSunModel: depositSunModel));
child: ChangeNotifierProvider<FeastModel>(
create: (_) => FeastModel(),
child:
BookDepositPage(rid: rid, depositSunModel: depositSunModel)));
}
return ChangeNotifierProvider<FeastModel>(
create: (_) => FeastModel(),
child: BookDepositPage(
rid: rid,
));
return ChangeNotifierProvider<NotebookDetailModel>(
create: (_) => NotebookDetailModel(),
child: ChangeNotifierProvider<FeastModel>(
create: (_) => FeastModel(),
child: BookDepositPage(
rid: rid,
)));
});
//核餐确认
var verifyFoodPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
String rid = params["rid"].first;
return ChangeNotifierProvider<NotebookDetailModel>(
create: (_) => NotebookDetailModel(), child: VerifyFoodPage());
create: (_) => NotebookDetailModel(), child: VerifyFoodPage(rid:rid));
});
... ...