Commit 55329c5b992d3c299e4cf0e9614c4872d939aadd

Authored by wdn127929
1 parent ebbbaf67

我的图标+宴会设置

class GetDepositModel {
int ret;
List<GetDepositSunModel> data;
String msg;
GetDepositModel({this.ret, this.data, this.msg});
GetDepositModel.fromJson(Map<String, dynamic> json) {
ret = json['ret'];
if (json['data'] != null) {
data = <GetDepositSunModel>[];
json['data'].forEach((v) {
data.add(new GetDepositSunModel.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 GetDepositSunModel {
String id;
String sid;
String dname;
String status;
String cdate;
GetDepositSunModel({this.id, this.sid, this.dname, this.status, this.cdate});
GetDepositSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
sid = json['sid'];
dname = json['dname'];
status = json['status'];
cdate = json['cdate'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['sid'] = this.sid;
data['dname'] = this.dname;
data['status'] = this.status;
data['cdate'] = this.cdate;
return data;
}
}
... ...
... ... @@ -282,4 +282,13 @@ class HttpUrl {
static const String set_banquet_conf =
"?service=App.Banquet.SetBanquetConf"; // 商家宴会配置
static const String get_banquet_conf =
"?service=App.Banquet.GetBanquetConf"; // 获取商家宴会配置
static const String get_deposit =
"?service=App.Banquet.GetDeposit"; // 获取宴会定金
static const String set_deposit =
"?service=App.Banquet.SetDeposit"; // 添加/修改宴会定金
static const String del_deposit = "?service=App.Banquet.DelDeposit"; // 删除宴会定金
}
... ...
... ... @@ -24,13 +24,19 @@ class FeastDepositManagePage extends StatefulWidget {
}
class _FeastDepositManagePageState extends State<FeastDepositManagePage> {
bool canrReturn = true; //是否可退
FeastModel feastModel;
@override
void initState() {
super.initState();
Utils.changeStatusColor(color: MyColours.color_438E93);
WidgetsBinding.instance.addPostFrameCallback((_) {
_getBanquetConf();
});
}
_getBanquetConf() async {
await feastModel.getBanquetConf(context);
}
Widget feastManegeItem(String title, {GestureTapCallback onTap}) {
... ... @@ -114,7 +120,8 @@ class _FeastDepositManagePageState extends State<FeastDepositManagePage> {
InkWell(
onTap: () async {
setState(() {
canrReturn = !canrReturn;
feastModel.isDepositBack =
!feastModel.isDepositBack;
});
Map<String, String> pramas = {
... ... @@ -122,7 +129,8 @@ class _FeastDepositManagePageState extends State<FeastDepositManagePage> {
Provider.of<UserModel>(context, listen: false)
.user
.sellerid,
'is_deposit_back': canrReturn ? '1' : '0'
'is_deposit_back':
feastModel.isDepositBack ? '1' : '0'
};
await feastModel.setBanquetConf(context, pramas);
},
... ... @@ -130,8 +138,9 @@ class _FeastDepositManagePageState extends State<FeastDepositManagePage> {
padding:
EdgeInsets.only(left: w(16), right: w(16)),
child: Image.asset(
Utils.getImgPath(
canrReturn ? 'swich_on' : 'swich_off'),
Utils.getImgPath(feastModel.isDepositBack
? 'swich_on'
: 'swich_off'),
width: w(44),
))),
],
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/get_deposit_model.dart';
import 'package:one_key/provider/feast_model.dart';
import 'package:provider/provider.dart';
import '../../../constant/state.dart';
import '../../../provider/user_model.dart';
import '../../../res/colors.dart';
import '../../../utils/dialog_util.dart';
import '../../../utils/event_bus.dart';
import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/h_empty_view.dart';
import '../../../widgets/page_exception.dart';
import '../../../widgets/round_button.dart';
import '../../../widgets/system_app_bar.dart';
... ... @@ -21,10 +28,42 @@ class FeastDepositTypePage extends StatefulWidget {
}
class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
FeastModel feastModel;
@override
void initState() {
super.initState();
Utils.changeStatusColor(color: MyColours.color_438E93);
WidgetsBinding.instance.addPostFrameCallback((_) {
_getDeposit();
// scrollController.jumpTo(scrollController.position.minScrollExtent);
});
}
///获取宴会分类
Future<bool> _getDeposit({bool isShowLoading = true}) async {
await feastModel.getDeposit(context, isShowLoading: isShowLoading);
}
_setDeposit(String dname, {String did}) async {
Map<String, String> params = {
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
'dname': dname,
};
if (did != null) {
params['id'] = did;
}
bool success = await feastModel.setDeposit(context, params);
if (success) {
if (did != null) {
Utils.showToast('修改成功');
} else {
Utils.showToast('添加成功');
}
_getDeposit();
// _getWine(isShowLoading: true);
}
}
Widget buildFeastTypeHeader() {
... ... @@ -37,6 +76,7 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
lenghtLimit: false,
toast: '请输入类型名称', rCallback: (name) {
// _addCookbookClass(name, showLoading: true);
_setDeposit(name);
});
},
text: '添加一项',
... ... @@ -53,7 +93,7 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
);
}
Widget buildFeastTypeItem(String title) {
Widget buildFeastTypeItem(GetDepositSunModel sunModel, int index) {
return Container(
height: h(48),
margin: EdgeInsets.only(top: w(12)),
... ... @@ -64,7 +104,7 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
child: Row(
children: [
Text(
title,
sunModel.dname,
style:
TextStyle(fontSize: font(16), color: MyColours.color_E6000000),
),
... ... @@ -74,10 +114,11 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
DialogUtil.textfeildAlertDialog(context,
title: '输入类型名称',
hintText: '请输入',
text: '原来的内容',
text: sunModel.dname,
lenghtLimit: true,
toast: '请输入类型名称', rCallback: (name) {
// _addCookbookClass(name, showLoading: true);
_setDeposit(name, did: sunModel.id);
});
},
child: Text(
... ... @@ -95,15 +136,20 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
DialogUtil.cupertinoAlertDialogFeast(context,
rTitle: '删除',
title: "是否确认删除",
content: "酒水定金", lCallback: () {
content: sunModel.dname, lCallback: () {
print("取消");
}, rCallback: () {
}, rCallback: () async {
print("确定");
// widget.deleteCallback(index);
Map<String, String> pramas = {'id': sunModel.id};
bool success = await feastModel.delDeposit(context, pramas);
if (success) {
Utils.showToast('删除成功');
_getDeposit(isShowLoading: true);
}
});
},
child: Image.asset(
Utils.getImgPath(true ? 'f_delete_red_un' : 'f_delete_red'),
Utils.getImgPath('f_delete_red'),
width: w(32),
height: w(32),
)),
... ... @@ -115,8 +161,12 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
@override
Widget build(BuildContext context) {
feastModel = Provider.of<FeastModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
resizeToAvoidBottomInset: false,
/// 这里必须禁止重绘
appBar: SystemAppBar(
'定金类型',
needWhite: true,
... ... @@ -144,12 +194,27 @@ class _FeastDepositTypePageState extends State<FeastDepositTypePage> {
)
];
},
body: ListView.builder(
itemCount: 100,
padding: EdgeInsets.only(left: w(16)),
itemBuilder: (BuildContext context, int index) {
return buildFeastTypeItem('酒水定金');
}),
body: Consumer<FeastModel>(builder: (context, model, _) {
if (model.pageStateDeposit != PageState.Success) {
return ExceptionPage(
pageState: model.pageStateDeposit,
callback: () {
_getDeposit();
},
emptyMsg: "暂时没有定金类型哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return ListView.builder(
itemCount: feastModel.depositData.length,
padding: EdgeInsets.only(left: w(16)),
itemBuilder: (BuildContext context, int index) {
GetDepositSunModel sunModel = feastModel.depositData[index];
return buildFeastTypeItem(sunModel, index);
});
}
}),
),
);
}
... ...
... ... @@ -190,6 +190,9 @@ class _FeastOthersetManagePageState extends State<FeastOthersetManagePage> {
feastModel = Provider.of<FeastModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
resizeToAvoidBottomInset: false,
/// 这里必须禁止重绘
appBar: SystemAppBar(
'其他配置管理',
needWhite: true,
... ...
... ... @@ -176,55 +176,59 @@ class _FeastSetmealManagePageState extends State<FeastSetmealManagePage> {
Widget build(BuildContext context) {
feastModel = Provider.of<FeastModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'套餐管理',
needWhite: true,
bgColor: MyColours.color_438E93,
titleColor: MyColours.color_F6F6F6,
onTap: () {
Navigator.pop(context);
},
),
body: NestedScrollView(
backgroundColor: MyColours.color_ffffff,
resizeToAvoidBottomInset: false,
/// 这里必须禁止重绘
appBar: SystemAppBar(
'套餐管理',
needWhite: true,
bgColor: MyColours.color_438E93,
titleColor: MyColours.color_F6F6F6,
onTap: () {
Navigator.pop(context);
},
),
body: NestedScrollView(
// controller: _scrollViewController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
pinned: true,
floating: false,
leading: null,
backgroundColor: MyColours.color_ffffff,
expandedHeight: ScreenUtil().setWidth(56 * 2),
automaticallyImplyLeading: false,
title: buildFeastTypeHeader(),
// flexibleSpace: FlexibleSpaceBar(
// collapseMode: CollapseMode.pin,
// title: buildFeastTypeHeader())
)
];
}, body: Consumer<FeastModel>(builder: (context, model, _) {
if (model.pageStateSetmeal != PageState.Success) {
return ExceptionPage(
pageState: model.pageStateSetmeal,
callback: () {
_getSetmeal();
},
emptyMsg: "暂时没有套餐哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return ListView.builder(
itemCount: model.setmealData.length,
padding: EdgeInsets.only(left: w(16)),
itemBuilder: (BuildContext context, int index) {
SetMealSunModel data = model.setmealData[index];
return buildFeastTypeItem(data, index);
// '1299套餐', '1499元 不可议价'
});
}
})),
);
return <Widget>[
SliverAppBar(
pinned: true,
floating: false,
leading: null,
backgroundColor: MyColours.color_ffffff,
expandedHeight: ScreenUtil().setWidth(56 * 2),
automaticallyImplyLeading: false,
title: buildFeastTypeHeader(),
// flexibleSpace: FlexibleSpaceBar(
// collapseMode: CollapseMode.pin,
// title: buildFeastTypeHeader())
)
];
},
body: Consumer<FeastModel>(builder: (context, model, _) {
if (model.pageStateSetmeal != PageState.Success) {
return ExceptionPage(
pageState: model.pageStateSetmeal,
callback: () {
_getSetmeal();
},
emptyMsg: "暂时没有套餐哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return ListView.builder(
itemCount: model.setmealData.length,
padding: EdgeInsets.only(left: w(16)),
itemBuilder: (BuildContext context, int index) {
SetMealSunModel data = model.setmealData[index];
return buildFeastTypeItem(data, index);
// '1299套餐', '1499元 不可议价'
});
}
}),
));
}
}
... ...
... ... @@ -53,7 +53,12 @@ class _FeastTypePageState extends State<FeastTypePage> {
}
bool success = await feastModel.setClassify(context, params);
if (success) {
Utils.showToast('添加成功');
if (idstr != null) {
Utils.showToast('修改成功');
} else {
Utils.showToast('添加成功');
}
_getClassify(isShowLoading: true);
}
}
... ... @@ -158,6 +163,9 @@ class _FeastTypePageState extends State<FeastTypePage> {
feastModel = Provider.of<FeastModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
resizeToAvoidBottomInset: false,
/// 这里必须禁止重绘
appBar: SystemAppBar(
'宴会类型',
needWhite: true,
... ...
... ... @@ -192,6 +192,9 @@ class _FeastWineManagePageState extends State<FeastWineManagePage> {
feastModel = Provider.of<FeastModel>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
resizeToAvoidBottomInset: false,
/// 这里必须禁止重绘
appBar: SystemAppBar(
'酒水管理',
needWhite: true,
... ...
... ... @@ -8,6 +8,7 @@ import '../constant/constant.dart';
import '../constant/error.dart';
import '../models/classify_model.dart';
import '../models/filter_btn_model.dart';
import '../models/get_deposit_model.dart';
import '../models/get_seller_user_by_sellerid_model.dart';
import '../models/get_setmeal_class_by_id_model.dart';
import '../models/get_staff_model.dart';
... ... @@ -49,6 +50,10 @@ class FeastModel extends ChangeNotifier {
GetSetmealClassByIdSunModel setmealClassDetail; //菜品分类详情
bool isDepositBack = false; //定金是否可退
PageState pageStateDeposit = PageState.Loading; //其他配置
List<GetDepositSunModel> depositData = [];
/***
*
* 宴会员工
... ... @@ -835,7 +840,7 @@ class FeastModel extends ChangeNotifier {
* 定金
*/
///添加宴会套餐
///添加宴会配置
Future<dynamic> setBanquetConf(
BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
... ... @@ -860,4 +865,132 @@ class FeastModel extends ChangeNotifier {
return false;
}
}
///获取宴会配置
getBanquetConf(BuildContext context, {isShowLoading = true}) async {
Map<String, String> params = {
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_banquet_conf,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
});
if (baseResp.code == Constant.status_success) {
if (baseResp.data == false) {
isDepositBack = false;
Map<String, String> pramas = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'is_deposit_back': '0'
};
await setBanquetConf(context, params);
} else {
isDepositBack = baseResp.data['is_deposit_back'] == '1' ? true : false;
}
notifyListeners();
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
}
}
///添加宴会定金
Future<dynamic> setDeposit(BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.set_deposit,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
return false;
});
if (baseResp.code == Constant.status_success) {
// if (baseResp.data == 1) {
return true;
// } else {
// return false;
// }
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
return false;
}
}
///获取宴会定金
Future<bool> getDeposit(BuildContext context, {isShowLoading = true}) async {
Map<String, String> params = {
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_deposit,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {
switch (error.type) {
case 1:
pageStateDeposit = PageState.ConnectivityError;
break;
case 2:
pageStateDeposit = PageState.ConnectivityTimeOut;
break;
default:
pageStateDeposit = PageState.ConnectivityError;
break;
}
}
notifyListeners();
return false;
});
GetDepositModel getDepositModel =
GetDepositModel.fromJson(baseResp.responseData);
if (getDepositModel.ret == Constant.status_success) {
depositData = getDepositModel.data;
if (depositData.length == 0) {
pageStateDeposit = PageState.Empty;
} else {
pageStateDeposit = PageState.Success;
}
notifyListeners();
return true;
} else {
Utils.showToast(baseResp.msg ?? "");
pageStateDeposit = PageState.ConnectivityError;
notifyListeners();
return false;
}
}
///删除宴会定金
Future<dynamic> delDeposit(BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.del_deposit,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
return false;
});
if (baseResp.code == Constant.status_success) {
// if (baseResp.data == 1) {
return true;
// } else {
// return false;
// }
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
return false;
}
}
}
... ...
... ... @@ -724,7 +724,7 @@ class DialogUtil {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(10)))), //设置圆角
child: Container(
child: Expanded(
child: Column(
children: [
VEmptyView(64),
... ...