Commit 536a7465e24d49fbd4391059457d44e2a28283e1

Authored by wdn127929
1 parent b073674f

设置预订定金

... ... @@ -56,6 +56,9 @@ class GetDzSellerConfSunModel {
String isAllowUpdate;
List<String> isShowRnamePhone;
String isShowNoticeDeposit;
String depositPrice;
GetDzSellerConfSunModel(
{this.id,
this.sid,
... ... @@ -81,7 +84,9 @@ class GetDzSellerConfSunModel {
this.saiyouyun,
this.bookinginfo,
this.isAllowUpdate,
this.isShowRnamePhone});
this.isShowRnamePhone,
this.isShowNoticeDeposit,
this.depositPrice});
GetDzSellerConfSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
... ... @@ -121,6 +126,8 @@ class GetDzSellerConfSunModel {
isShowRnamePhone.add(v);
});
}
isShowNoticeDeposit = json['is_show_notice_deposit'];
depositPrice = json['deposit_price'];
}
Map<String, dynamic> toJson() {
... ... @@ -152,6 +159,8 @@ class GetDzSellerConfSunModel {
}
data['is_allow_update'] = this.isAllowUpdate;
data['is_show_ranme_phone'] = this.isShowRnamePhone;
data['is_show_notice_deposit'] = this.isShowNoticeDeposit;
data['deposit_price'] = this.depositPrice;
return data;
}
}
... ...
... ... @@ -169,6 +169,10 @@ class Data extends Object {
@JsonKey(name: 'daily')
Daily dailyShow;
@JsonKey(name: 'applyment_sub_mchid')
String applymentSubMchid;
Data(
this.id,
this.pid,
... ... @@ -211,7 +215,8 @@ class Data extends Object {
this.sellerCode,
this.realAddress,
this.edate,
this.dailyShow
this.dailyShow,
this.applymentSubMchid
);
factory Data.fromJson(Map<String, dynamic> srcJson) =>
... ...
... ... @@ -81,6 +81,7 @@ Data _$DataFromJson(Map<String, dynamic> json) {
? null
: Daily.fromJson(
convert.jsonDecode(json['daily']) as Map<String, dynamic>),
json['applyment_sub_mchid'] as String,
);
}
... ... @@ -126,6 +127,7 @@ Map<String, dynamic> _$DataToJson(Data instance) => <String, dynamic>{
'seller_code': instance.sellerCode,
'real_address': instance.realAddress,
'edate': instance.edate,
'applyment_sub_mchid':instance.applymentSubMchid
};
Daily _$DailyFromJson(Map<String, dynamic> json) {
return Daily(json['morning'] as String, json['noon'] as String,
... ...
... ... @@ -1681,7 +1681,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
style: TextStyle(color: MyColours.color_515151, fontSize: font(15)),
),
Spacer(),
RoundButton(
if(detailModel.reserveDepositList.length==0) RoundButton(
text: '添加一项',
radius: r(11),
width: w(72),
... ...
... ... @@ -378,6 +378,40 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
VEmptyView(24),
InkWell(
onTap: () {
NavigatorUtil.goPaymentSettingPage(context);
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
top: w(12),
bottom: w(12),
right: w(12)),
child: Row(
children: [
Text(
'预订订金',
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setWidth(32)),
),
Spacer(),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(7), vertical: w(4)),
child: Image.asset(
"assets/arrow_right_new.png",
width: ScreenUtil().setWidth(18),
height: ScreenUtil().setWidth(32),
),
)
],
))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
// InkWell(
// onTap: () {
// setState(() {
... ...
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/provider/marketing_center_provider.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';
import '../../../provider/store_base_info_provider.dart';
import '../../../provider/user_model.dart';
import '../../../res/colors.dart';
import '../../../utils/MyNumberTextInputFormatter.dart';
import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/MyDivider.dart';
import '../../../widgets/h_empty_view.dart';
import '../../../widgets/round_button.dart';
import '../../../widgets/v_empty_view.dart';
/**
* 订金设置
*/
class PaymentSettingPage extends StatefulWidget {
const PaymentSettingPage();
@override
State<PaymentSettingPage> createState() => _PaymentSettingPageState();
}
class _PaymentSettingPageState extends State<PaymentSettingPage> {
bool isPayment = false; //默认关闭
TextEditingController moneyControl = TextEditingController();
FocusNode moneyFocusNode = FocusNode();
MarketingCenterProvider marketingCenterProvider;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
_getDzSellerConf();
});
}
_getDzSellerConf() async {
await marketingCenterProvider.getDzSellerConf(context);
if (marketingCenterProvider.dzSellerConfModel != null) {
isPayment =
marketingCenterProvider.dzSellerConfModel.isShowNoticeDeposit == '1'
? true
: false;
moneyControl.text =
marketingCenterProvider.dzSellerConfModel.depositPrice ?? '';
setState(() {});
}
}
///保存接口
_setData() async {
Future.wait<bool>([
_setIsShowNoticeDeposit(),
_setDepositPrice(),
]).then((results) {
print(results[0]);
if (results[0] && results[1]) {
Utils.showToast('设置成功');
Navigator.pop(context);
}
}).catchError((e) {
Utils.showToast('设置失败,请重试');
print(e);
});
}
///获取店铺过期时间
_getSellerById() async {
StoreBaseIndoProvider storeBaseIndoProvider =
Provider.of<StoreBaseIndoProvider>(context, listen: false);
await storeBaseIndoProvider.getSellerById(context);
if (storeBaseIndoProvider.itemModel != null) {
String applymentSubMchid =
storeBaseIndoProvider.itemModel.data.applymentSubMchid;
if (applymentSubMchid != null && applymentSubMchid != '') {
//商家开通了微信支付
_setData();
} else {
//商家未开通微信支付
Utils.showToast('商家未开通微信支付功能!');
}
}
}
///使用店铺手机发送营销短信
Future<bool> _setIsShowNoticeDeposit({bool isShowLoading = true}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'key': 'is_show_notice_deposit',
'value': isPayment ? '1' : '0'
};
bool success = await marketingCenterProvider.setConfing(context, params,
needToast: false);
if (success) {
return true;
} else {
return false;
}
}
///使用店铺手机发送通知短信
Future<bool> _setDepositPrice({bool isShowLoading = true}) async {
if(moneyControl.text.trim().length > 0){
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'key': 'deposit_price',
'value': moneyControl.text
};
bool success = await marketingCenterProvider.setConfing(context, params,
needToast: false);
if (success) {
return true;
} else {
return false;
}
}else{
return true;
}
}
///输入框
Widget _textfieldSelect(
String title,
String hintText,
TextEditingController controller,
FocusNode focusNode, {
TextInputType textInputType = TextInputType.text,
String subtitle = '',
}) {
return Container(
padding: EdgeInsets.only(left: w(20), right: (w(20))),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
child: Text(
title,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(32)),
),
),
HEmptyView(40),
Expanded(
child: TextField(
controller: controller,
textAlign: TextAlign.right,
textAlignVertical: TextAlignVertical.bottom,
maxLines: 1,
inputFormatters: title == '预订订金金额'
? [
FilteringTextInputFormatter(RegExp("[0-9.]"),
allow: true),
MyNumberTextInputFormatter(digit: 2),
]
: [],
// //光标颜色
// cursorColor:
// widget.isSelect ? Colors.white : MyColours.color_199095,
//输入文本的样式
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(32),
),
focusNode: focusNode,
decoration: InputDecoration(
isCollapsed: true,
border: OutlineInputBorder(borderSide: BorderSide.none),
hintText: hintText,
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(32),
),
enabledBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
focusedBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
),
onChanged: (value) {},
onEditingComplete: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
},
keyboardType: textInputType),
),
if (subtitle != '') HEmptyView(6),
Text(
subtitle,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(32)),
),
],
),
);
}
@override
Widget build(BuildContext context) {
marketingCenterProvider =
Provider.of<MarketingCenterProvider>(context, listen: false);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('预订订金'),
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
InkWell(
onTap: () {
setState(() {
isPayment = !isPayment;
});
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
top: w(12),
bottom: w(11),
right: w(12)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'在客户预订通知中,增加支付订金功能',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16)),
),
Spacer(),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(7), vertical: w(4)),
child: Image.asset(
Utils.getImgPath(
isPayment ? 'swich_on' : 'swich_off'),
width: w(44),
),
)
// RoundButton(
// text: '预览',
// gradientStart: MyColours.color_ffffff,
// gradientEnd: MyColours.color_ffffff,
// borderColor: MyColours.color_438E93,
// textColor: MyColours.color_438E93,
// radius: ScreenUtil().setWidth(22),
// fontSize: 24,
// width: w(72),
// height: ScreenUtil().setWidth(44),
// isBold: true,
// onPressed: () {
// NavigatorUtil.goMarkingPreviewPage(context);
// },
// ),
]))),
// VEmptyView(24),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
VEmptyView(48),
_textfieldSelect(
'预订订金金额', '点击输入订金金额', moneyControl, moneyFocusNode,
subtitle: '',
textInputType: TextInputType.numberWithOptions()),
VEmptyView(22),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
],
),
)),
Container(
color: MyColours.color_ffffff,
padding: EdgeInsets.only(
left: w(45), right: w(45), top: w(12), bottom: w(25)),
child: RoundButton(
text: '保存',
gradientStart: MyColours.color_199095,
gradientEnd: MyColours.color_199095,
// borderColor: MyColours.color_999999,
radius: r(5),
fontSize: 34,
height: w(40),
isBold: true,
onPressed: () async {
FocusScope.of(context)
.requestFocus(FocusNode()); //隐藏键盘
_getSellerById();
},
),
)
],
));
}
}
... ...
... ... @@ -2148,4 +2148,14 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.invication_addition_page}?rid=$rid",
replace: replace);
}
//预订信息模块设置-自定义图文默认
static Future<dynamic> goPaymentSettingPage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.payment_setting_page}",
replace: replace);
}
}
... ...
... ... @@ -230,6 +230,7 @@ import '../pages/my/marketing_center/invitation_theme_home_preview_page.dart';
import '../pages/my/marketing_center/marketing_center_home_page.dart';
import '../pages/my/marketing_center/order_setting_manager_page.dart';
import '../pages/my/marketing_center/order_setting_page.dart';
import '../pages/my/marketing_center/payment_setting_page.dart';
import '../pages/my/marketing_center/recharge/recharge_detail_page.dart';
import '../pages/my/marketing_center/recharge/recharge_edit_page.dart';
import '../pages/my/marketing_center/recharge/recharge_history_page.dart';
... ... @@ -3689,3 +3690,22 @@ var invicationAdditionPageHandle = new Handler(
create: (_) => MarketingCenterProvider(),
child: InvicationAdditionPage(rid));
});
///在客户预订通知中,增加支付订金功能
var paymentSettingPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
// String rid = params["rid"].first;
// // String smsTemplate = params["smsTemplate"].first;
// CouponUse use = CouponUse.fromJson(
// json.decode(FluroConvertUtils.fluroCnParamsDecode(params["use"].first)));
// CouponSunModel couponSunModel = CouponSunModel.fromJson(json.decode(
// FluroConvertUtils.fluroCnParamsDecode(params["couponSunModel"].first)));
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(),
child: ChangeNotifierProvider<StoreBaseIndoProvider>(
create: (_) => StoreBaseIndoProvider(),
child:PaymentSettingPage()));
});
... ...
... ... @@ -378,6 +378,10 @@ static String customer_detail_page_sim = "/customer_detail_page_sim"; //客户è¯
static String invication_addition_page =
"/invication_addition_page"; //预订信息模块设置-自定义图文默认
static String payment_setting_page =
"/payment_setting_page"; //在客户预订通知中,增加支付订金功能
... ... @@ -709,6 +713,9 @@ router.define(invication_sim, handler: handleInvicationSimHandler);
router.define(month_order_home_page, handler: monthOrderHomePageHandle);
router.define(invication_addition_page, handler: invicationAdditionPageHandle);
router.define(payment_setting_page, handler: paymentSettingPageHandle);
... ...