Showing
12 changed files
with
376 additions
and
71 deletions
| @@ -191,7 +191,7 @@ class DioUtil { | @@ -191,7 +191,7 @@ class DioUtil { | ||
| 191 | queryParameters: data, | 191 | queryParameters: data, |
| 192 | options: _checkOptions(method, options, needHeader: needHeader), | 192 | options: _checkOptions(method, options, needHeader: needHeader), |
| 193 | cancelToken: cancelToken); | 193 | cancelToken: cancelToken); |
| 194 | - _printHttpLog(response); | 194 | + _printHttpLog(response); |
| 195 | String _status; | 195 | String _status; |
| 196 | int _code; | 196 | int _code; |
| 197 | String _msg; | 197 | String _msg; |
| @@ -182,5 +182,11 @@ class HttpUrl { | @@ -182,5 +182,11 @@ class HttpUrl { | ||
| 182 | "?service=App.GuestManage.CreateMarketing"; // 创建营销 | 182 | "?service=App.GuestManage.CreateMarketing"; // 创建营销 |
| 183 | static const String set_guest_info = | 183 | static const String set_guest_info = |
| 184 | "?service=App.GuestManage.SetGuestInfo"; // 修改客户信息 | 184 | "?service=App.GuestManage.SetGuestInfo"; // 修改客户信息 |
| 185 | + static const String seller_guest_set = | ||
| 186 | + "?service=App.GuestManage.SellerGuestSet"; // 商家修改客情配置 | ||
| 187 | + static const String create_label_by_sellerid = | ||
| 188 | + "?service=App.GuestManage.CreateLabelBySellerid"; // 商家创建商家标签 | ||
| 189 | + static const String create_marketing_by_seller = | ||
| 190 | + "?service=App.GuestManage.CreateMarketingBySeller"; // 商家创建营销 | ||
| 185 | 191 | ||
| 186 | } | 192 | } |
| @@ -496,7 +496,8 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> { | @@ -496,7 +496,8 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> { | ||
| 496 | fontSize: 26, | 496 | fontSize: 26, |
| 497 | isBold: false, | 497 | isBold: false, |
| 498 | onPressed: () { | 498 | onPressed: () { |
| 499 | - NavigatorUtil.goFestivalEditPage(context); | 499 | + NavigatorUtil.goFestivalEditPage(context, |
| 500 | + customerProvider.guestInfoSunModel.guest); | ||
| 500 | }, | 501 | }, |
| 501 | ), | 502 | ), |
| 502 | ], | 503 | ], |
| @@ -134,15 +134,14 @@ class _CustomerListPageState extends State<CustomerListPage> | @@ -134,15 +134,14 @@ class _CustomerListPageState extends State<CustomerListPage> | ||
| 134 | onTap: () { | 134 | onTap: () { |
| 135 | if (customerProvider.selectCustomer == null || | 135 | if (customerProvider.selectCustomer == null || |
| 136 | customerProvider.selectCustomer.length == 0) { | 136 | customerProvider.selectCustomer.length == 0) { |
| 137 | - Utils.showToast('请选择顾客'); | 137 | + Utils.showToast('请至少选择1名顾客'); |
| 138 | return; | 138 | return; |
| 139 | } | 139 | } |
| 140 | customerMakingProvider.labels = customerProvider.labels; | 140 | customerMakingProvider.labels = customerProvider.labels; |
| 141 | customerMakingProvider.selectCustomer = | 141 | customerMakingProvider.selectCustomer = |
| 142 | customerProvider.selectCustomer; | 142 | customerProvider.selectCustomer; |
| 143 | customerMakingProvider.fromPage = widget.fromPage; | 143 | customerMakingProvider.fromPage = widget.fromPage; |
| 144 | - NavigatorUtil.goMakeMarkingPage(context, | ||
| 145 | - Utils.listToStringEnglish(customerProvider.selectCustomer)); | 144 | + NavigatorUtil.goMakeMarkingPage(context); |
| 146 | }, | 145 | }, |
| 147 | child: Container( | 146 | child: Container( |
| 148 | alignment: Alignment.center, | 147 | alignment: Alignment.center, |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; | 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| 3 | +import 'package:one_key/provider/customer_provider.dart'; | ||
| 4 | +import 'package:one_key/provider/user_model.dart'; | ||
| 3 | import 'package:one_key/res/colors.dart'; | 5 | import 'package:one_key/res/colors.dart'; |
| 4 | import 'package:one_key/utils/dialog_util.dart'; | 6 | import 'package:one_key/utils/dialog_util.dart'; |
| 5 | import 'package:one_key/utils/utils.dart'; | 7 | import 'package:one_key/utils/utils.dart'; |
| 6 | import 'package:one_key/widgets/system_app_bar.dart'; | 8 | import 'package:one_key/widgets/system_app_bar.dart'; |
| 7 | import 'package:one_key/widgets/v_empty_view.dart'; | 9 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 10 | +import 'package:provider/provider.dart'; | ||
| 8 | 11 | ||
| 9 | class CustomerSettingPage extends StatefulWidget { | 12 | class CustomerSettingPage extends StatefulWidget { |
| 10 | CustomerSettingPage({Key key}) : super(key: key); | 13 | CustomerSettingPage({Key key}) : super(key: key); |
| @@ -15,6 +18,42 @@ class CustomerSettingPage extends StatefulWidget { | @@ -15,6 +18,42 @@ class CustomerSettingPage extends StatefulWidget { | ||
| 15 | 18 | ||
| 16 | class _CustomerSettingPageState extends State<CustomerSettingPage> { | 19 | class _CustomerSettingPageState extends State<CustomerSettingPage> { |
| 17 | bool swichState = true; | 20 | bool swichState = true; |
| 21 | + CustomerProvider customerProvider; | ||
| 22 | + | ||
| 23 | + @override | ||
| 24 | + void initState() { | ||
| 25 | + WidgetsBinding.instance.addPostFrameCallback((_) async { | ||
| 26 | + // _getContantData(); | ||
| 27 | + }); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + ///修改客情配置 | ||
| 31 | + _sellerGuestSet() async { | ||
| 32 | + Map<String, String> params = { | ||
| 33 | + "sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 34 | + 'is_additional': swichState ? "1" : "0" | ||
| 35 | + }; | ||
| 36 | + bool success = await customerProvider.setSellerGuest(context, params); | ||
| 37 | + if (success) { | ||
| 38 | + | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + ///商家创建商家标签 | ||
| 43 | + _createLabelBySellerid(String name) async { | ||
| 44 | + Map<String, String> params = { | ||
| 45 | + "sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 46 | + 'label': name | ||
| 47 | + }; | ||
| 48 | + bool success = | ||
| 49 | + await customerProvider.createLabelBySellerid(context, params); | ||
| 50 | + if (success) { | ||
| 51 | + //刷新当前标签列表 | ||
| 52 | + Utils.showToast('标签添加成功'); | ||
| 53 | + //调用获取标签接口 | ||
| 54 | + // 。。。。。。 | ||
| 55 | + } | ||
| 56 | + } | ||
| 18 | 57 | ||
| 19 | //构建标签 | 58 | //构建标签 |
| 20 | List<Widget> _buildLabelItem(List<String> data) { | 59 | List<Widget> _buildLabelItem(List<String> data) { |
| @@ -51,9 +90,11 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | @@ -51,9 +90,11 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | ||
| 51 | hintText: '例:高频客户', | 90 | hintText: '例:高频客户', |
| 52 | text: '', | 91 | text: '', |
| 53 | lenghtLimit: false, | 92 | lenghtLimit: false, |
| 54 | - toast: '请输入标签名称', rCallback: (name) { | 93 | + toast: '请输入标签名称', |
| 94 | + lCallback: () {}, rCallback: (name) { | ||
| 55 | print(name); | 95 | print(name); |
| 56 | // _addCookbookClass(name, showLoading: true); | 96 | // _addCookbookClass(name, showLoading: true); |
| 97 | + _createLabelBySellerid(name); | ||
| 57 | }); | 98 | }); |
| 58 | }, | 99 | }, |
| 59 | child: Container( | 100 | child: Container( |
| @@ -74,6 +115,7 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | @@ -74,6 +115,7 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | ||
| 74 | 115 | ||
| 75 | @override | 116 | @override |
| 76 | Widget build(BuildContext context) { | 117 | Widget build(BuildContext context) { |
| 118 | + customerProvider = Provider.of<CustomerProvider>(context, listen: true); | ||
| 77 | return Scaffold( | 119 | return Scaffold( |
| 78 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), | 120 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), |
| 79 | appBar: SystemAppBar( | 121 | appBar: SystemAppBar( |
| @@ -95,6 +137,7 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | @@ -95,6 +137,7 @@ class _CustomerSettingPageState extends State<CustomerSettingPage> { | ||
| 95 | setState(() { | 137 | setState(() { |
| 96 | swichState = !swichState; | 138 | swichState = !swichState; |
| 97 | }); | 139 | }); |
| 140 | + _sellerGuestSet(); | ||
| 98 | }, | 141 | }, |
| 99 | child: Row( | 142 | child: Row( |
| 100 | mainAxisAlignment: MainAxisAlignment.spaceBetween, | 143 | mainAxisAlignment: MainAxisAlignment.spaceBetween, |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter_screenutil/screenutil.dart'; | 2 | import 'package:flutter_screenutil/screenutil.dart'; |
| 3 | +import 'package:one_key/models/guest_info_model.dart'; | ||
| 4 | +import 'package:one_key/provider/customer_provider.dart'; | ||
| 3 | import 'package:one_key/res/colors.dart'; | 5 | import 'package:one_key/res/colors.dart'; |
| 4 | import 'package:one_key/utils/dialog_util.dart'; | 6 | import 'package:one_key/utils/dialog_util.dart'; |
| 7 | +import 'package:one_key/utils/event_bus.dart'; | ||
| 5 | import 'package:one_key/utils/utils.dart'; | 8 | import 'package:one_key/utils/utils.dart'; |
| 6 | import 'package:one_key/widgets/h_empty_view.dart'; | 9 | import 'package:one_key/widgets/h_empty_view.dart'; |
| 7 | import 'package:one_key/widgets/round_button.dart'; | 10 | import 'package:one_key/widgets/round_button.dart'; |
| 8 | import 'package:one_key/widgets/system_app_bar.dart'; | 11 | import 'package:one_key/widgets/system_app_bar.dart'; |
| 9 | import 'package:one_key/widgets/v_empty_view.dart'; | 12 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 13 | +import 'package:provider/provider.dart'; | ||
| 10 | 14 | ||
| 11 | class FestivalEditPage extends StatefulWidget { | 15 | class FestivalEditPage extends StatefulWidget { |
| 12 | - FestivalEditPage({Key key}) : super(key: key); | 16 | + final Guest guest; |
| 17 | + FestivalEditPage({Key key, this.guest}) : super(key: key); | ||
| 13 | 18 | ||
| 14 | @override | 19 | @override |
| 15 | _FestivalEditPageState createState() => _FestivalEditPageState(); | 20 | _FestivalEditPageState createState() => _FestivalEditPageState(); |
| 16 | } | 21 | } |
| 17 | 22 | ||
| 18 | class _FestivalEditPageState extends State<FestivalEditPage> { | 23 | class _FestivalEditPageState extends State<FestivalEditPage> { |
| 24 | + CustomerProvider customerProvider; | ||
| 25 | + | ||
| 26 | + _setGuestInfo(String cday) async { | ||
| 27 | + Map<String, String> params = {"id": widget.guest.id, 'c_day': cday}; | ||
| 28 | + | ||
| 29 | + bool sucess = | ||
| 30 | + await customerProvider.setGuestInfo(context, params, showLoading: true); | ||
| 31 | + if (sucess) { | ||
| 32 | + Utils.showToast('保存成功'); | ||
| 33 | + // 刷新 | ||
| 34 | + bus.emit('refresh_guest_info'); | ||
| 35 | + bus.emit('refresh_guest_list'); | ||
| 36 | + // Navigator.pop(context); | ||
| 37 | + //刷新当前页? 还没做??????? | ||
| 38 | + | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + | ||
| 19 | @override | 42 | @override |
| 20 | Widget build(BuildContext context) { | 43 | Widget build(BuildContext context) { |
| 44 | + customerProvider = Provider.of<CustomerProvider>(context, listen: true); | ||
| 21 | return Scaffold( | 45 | return Scaffold( |
| 22 | backgroundColor: MyColours.color_ffffff, | 46 | backgroundColor: MyColours.color_ffffff, |
| 23 | appBar: SystemAppBar( | 47 | appBar: SystemAppBar( |
| @@ -77,7 +101,14 @@ class _FestivalEditPageState extends State<FestivalEditPage> { | @@ -77,7 +101,14 @@ class _FestivalEditPageState extends State<FestivalEditPage> { | ||
| 77 | height: ScreenUtil().setWidth(80), | 101 | height: ScreenUtil().setWidth(80), |
| 78 | fontSize: 26, | 102 | fontSize: 26, |
| 79 | isBold: false, | 103 | isBold: false, |
| 80 | - onPressed: () {}, | 104 | + onPressed: () { |
| 105 | + DialogUtil.festivalAlertDialog(context, '', 520, | ||
| 106 | + rCallback: (name) { | ||
| 107 | + print(name); | ||
| 108 | + _setGuestInfo(name); | ||
| 109 | + // _addCookbookClass(name, showLoading: true); | ||
| 110 | + }); | ||
| 111 | + }, | ||
| 81 | ), | 112 | ), |
| 82 | VEmptyView(30) | 113 | VEmptyView(30) |
| 83 | ]))); | 114 | ]))); |
| 1 | +import 'dart:io'; | ||
| 2 | + | ||
| 1 | import 'package:common_utils/common_utils.dart'; | 3 | import 'package:common_utils/common_utils.dart'; |
| 2 | import 'package:flutter/material.dart'; | 4 | import 'package:flutter/material.dart'; |
| 3 | import 'package:flutter_screenutil/screenutil.dart'; | 5 | import 'package:flutter_screenutil/screenutil.dart'; |
| 6 | +import 'package:flutter_sms/flutter_sms.dart'; | ||
| 4 | import 'package:one_key/constant/state.dart'; | 7 | import 'package:one_key/constant/state.dart'; |
| 8 | +import 'package:one_key/models/customer_list_model.dart'; | ||
| 5 | import 'package:one_key/pages/coupon/coupon_page.dart'; | 9 | import 'package:one_key/pages/coupon/coupon_page.dart'; |
| 6 | import 'package:one_key/provider/customer_making_provider.dart'; | 10 | import 'package:one_key/provider/customer_making_provider.dart'; |
| 7 | import 'package:one_key/provider/customer_provider.dart'; | 11 | import 'package:one_key/provider/customer_provider.dart'; |
| @@ -15,12 +19,12 @@ import 'package:one_key/widgets/round_button.dart'; | @@ -15,12 +19,12 @@ import 'package:one_key/widgets/round_button.dart'; | ||
| 15 | import 'package:one_key/widgets/system_app_bar.dart'; | 19 | import 'package:one_key/widgets/system_app_bar.dart'; |
| 16 | import 'package:one_key/widgets/v_empty_view.dart'; | 20 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 17 | import 'package:provider/provider.dart'; | 21 | import 'package:provider/provider.dart'; |
| 22 | +import 'package:sendsms/sendsms.dart'; | ||
| 18 | 23 | ||
| 19 | typedef ClickCallback = void Function(dynamic value); | 24 | typedef ClickCallback = void Function(dynamic value); |
| 20 | 25 | ||
| 21 | class MakeMarkingPage extends StatefulWidget { | 26 | class MakeMarkingPage extends StatefulWidget { |
| 22 | - final String gid; | ||
| 23 | - MakeMarkingPage({Key key, this.gid}) : super(key: key); | 27 | + MakeMarkingPage({Key key}) : super(key: key); |
| 24 | 28 | ||
| 25 | @override | 29 | @override |
| 26 | _MakeMarkingPageState createState() => _MakeMarkingPageState(); | 30 | _MakeMarkingPageState createState() => _MakeMarkingPageState(); |
| @@ -32,13 +36,18 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -32,13 +36,18 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 32 | final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>(); | 36 | final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>(); |
| 33 | FocusNode _focusNode = FocusNode(); | 37 | FocusNode _focusNode = FocusNode(); |
| 34 | bool showDateSelWidget = false; | 38 | bool showDateSelWidget = false; |
| 35 | - String limitDate = ''; | 39 | + |
| 36 | CustomerProvider customerProvider; | 40 | CustomerProvider customerProvider; |
| 37 | CustomerMakingProvider customerMakingProvider; | 41 | CustomerMakingProvider customerMakingProvider; |
| 42 | + bool needClear = true; | ||
| 43 | + String gid = ''; | ||
| 44 | + String andriodPhone = ''; | ||
| 45 | + List<String> iosPhone = []; | ||
| 38 | 46 | ||
| 39 | @override | 47 | @override |
| 40 | void initState() { | 48 | void initState() { |
| 41 | super.initState(); | 49 | super.initState(); |
| 50 | + | ||
| 42 | _focusNode.addListener(() { | 51 | _focusNode.addListener(() { |
| 43 | if (_focusNode.hasFocus) { | 52 | if (_focusNode.hasFocus) { |
| 44 | //有焦点 | 53 | //有焦点 |
| @@ -52,6 +61,20 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -52,6 +61,20 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 52 | } | 61 | } |
| 53 | }); | 62 | }); |
| 54 | WidgetsBinding.instance.addPostFrameCallback((_) async { | 63 | WidgetsBinding.instance.addPostFrameCallback((_) async { |
| 64 | + for (CustomerListSunModel item in customerMakingProvider.selectCustomer) { | ||
| 65 | + gid += '${item.id},'; | ||
| 66 | + if (Platform.isIOS) { | ||
| 67 | + iosPhone.add(item.phone); | ||
| 68 | + } else { | ||
| 69 | + andriodPhone += "${item.phone};"; | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | + if (gid.endsWith(',')) { | ||
| 73 | + gid = gid.substring(0, gid.length - 1); | ||
| 74 | + } | ||
| 75 | + if (!Platform.isIOS && andriodPhone.endsWith(';')) { | ||
| 76 | + andriodPhone = andriodPhone.substring(0, andriodPhone.length - 1); | ||
| 77 | + } | ||
| 55 | _couponNetworkData(isShowLoading: false); | 78 | _couponNetworkData(isShowLoading: false); |
| 56 | }); | 79 | }); |
| 57 | } | 80 | } |
| @@ -59,7 +82,10 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -59,7 +82,10 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 59 | @override | 82 | @override |
| 60 | void dispose() { | 83 | void dispose() { |
| 61 | super.dispose(); | 84 | super.dispose(); |
| 62 | - customerMakingProvider.clearData(); | 85 | + if (needClear) { |
| 86 | + customerMakingProvider.clearData(); | ||
| 87 | + } | ||
| 88 | + // | ||
| 63 | } | 89 | } |
| 64 | 90 | ||
| 65 | ///消费券 | 91 | ///消费券 |
| @@ -91,7 +117,7 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -91,7 +117,7 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 91 | } | 117 | } |
| 92 | Map<String, String> params = { | 118 | Map<String, String> params = { |
| 93 | "uid": Provider.of<UserModel>(context, listen: false).user.openid, | 119 | "uid": Provider.of<UserModel>(context, listen: false).user.openid, |
| 94 | - "gid": widget.gid, | 120 | + "gid": gid, |
| 95 | "content": customerMakingProvider.controller.text | 121 | "content": customerMakingProvider.controller.text |
| 96 | }; | 122 | }; |
| 97 | if (customerMakingProvider.youhui != '选择优惠' && | 123 | if (customerMakingProvider.youhui != '选择优惠' && |
| @@ -99,7 +125,74 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -99,7 +125,74 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 99 | params['aid'] = | 125 | params['aid'] = |
| 100 | '${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}'; | 126 | '${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}'; |
| 101 | } | 127 | } |
| 102 | - await customerProvider.createMarketing(context, params); | 128 | + await customerProvider.createMarketing(context, params, showLoading: true); |
| 129 | + _goSms(); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + /// 商家创建营销 | ||
| 133 | + _createMarketingBySeller() async { | ||
| 134 | + if (customerMakingProvider.controller.text.trim().length == 0) { | ||
| 135 | + Utils.showToast('请输入营销内容'); | ||
| 136 | + return; | ||
| 137 | + } | ||
| 138 | + Map<String, String> params = { | ||
| 139 | + "uid": Provider.of<UserModel>(context, listen: false).user.openid, | ||
| 140 | + "sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 141 | + "gid": gid, | ||
| 142 | + "content": customerMakingProvider.controller.text, | ||
| 143 | + 'is_update': customerMakingProvider.isUpdate ? '0' : '1' | ||
| 144 | + }; | ||
| 145 | + | ||
| 146 | + if (customerMakingProvider.youhui != '选择优惠' && | ||
| 147 | + customerMakingProvider.isUse) { | ||
| 148 | + params['aid'] = | ||
| 149 | + '${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}'; | ||
| 150 | + } | ||
| 151 | + if (customerMakingProvider.isDate) { | ||
| 152 | + if (customerMakingProvider.edate == '' || | ||
| 153 | + customerMakingProvider.edate == null) { | ||
| 154 | + Utils.showToast('请选择最晚完成期限'); | ||
| 155 | + return; | ||
| 156 | + } | ||
| 157 | + params['edate'] = customerMakingProvider.edate; | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + await customerProvider.createMarketingBySeller(context, params, | ||
| 161 | + showLoading: true); | ||
| 162 | + _goSms(); | ||
| 163 | + } | ||
| 164 | + | ||
| 165 | + _goSms() async { | ||
| 166 | + // DialogUtil.cupertinoAlertDialog(context, | ||
| 167 | + // title: '确认发送', content: '是否确定为当前所选顾客发送该优惠券', lCallback: () { | ||
| 168 | + // print('取消发送'); | ||
| 169 | + // }, rCallback: () async { | ||
| 170 | + if (Platform.isIOS) { | ||
| 171 | + // List<String> phoneNumber = ['18161963378', '18729572142', '18765432345']; | ||
| 172 | + String message = "test"; | ||
| 173 | + try { | ||
| 174 | + String _result = await sendSMS(message: message, recipients: iosPhone); | ||
| 175 | + print(_result); | ||
| 176 | + } catch (error) { | ||
| 177 | + print(error.toString()); | ||
| 178 | + } | ||
| 179 | + } else { | ||
| 180 | + print('确定发送'); | ||
| 181 | + // String phoneNumber = "18161963378;18729572142"; | ||
| 182 | + String message = "test"; | ||
| 183 | + | ||
| 184 | + // await Sendsms.onGetPermission(); | ||
| 185 | + | ||
| 186 | + // if (await Sendsms.hasPermission()) { | ||
| 187 | + await Sendsms.onSendSMS(andriodPhone, message); | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + // } | ||
| 191 | + // SmsModel smsModel = new SmsModel(); | ||
| 192 | + // // String sms = await smsModel.getSmsContent(context, params); | ||
| 193 | + // String phoneNumber = ""; | ||
| 194 | + // await Sendsms.onSendSMS(phoneNumber, '短信内容'); | ||
| 195 | + // }); | ||
| 103 | } | 196 | } |
| 104 | 197 | ||
| 105 | _buttonChoose(String title, ClickCallback callback) { | 198 | _buttonChoose(String title, ClickCallback callback) { |
| @@ -313,25 +406,39 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -313,25 +406,39 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 313 | : Column( | 406 | : Column( |
| 314 | children: [ | 407 | children: [ |
| 315 | VEmptyView(30), | 408 | VEmptyView(30), |
| 316 | - Row(children: [ | ||
| 317 | - Image.asset( | ||
| 318 | - Utils.getImgPath( | ||
| 319 | - true ? 'c_mul_select' : 'c_mul_select_un'), | ||
| 320 | - width: ScreenUtil().setWidth(30)), | ||
| 321 | - HEmptyView(15), | ||
| 322 | - Text( | ||
| 323 | - '客户经理不可修改短信内容', | ||
| 324 | - style: TextStyle( | ||
| 325 | - fontSize: ScreenUtil().setSp(26), | ||
| 326 | - color: MyColours.color_333333), | ||
| 327 | - ), | ||
| 328 | - ]), | 409 | + InkWell( |
| 410 | + onTap: () { | ||
| 411 | + customerMakingProvider.isUpdate = | ||
| 412 | + !customerMakingProvider.isUpdate; | ||
| 413 | + setState(() {}); | ||
| 414 | + }, | ||
| 415 | + child: Row(children: [ | ||
| 416 | + Image.asset( | ||
| 417 | + Utils.getImgPath(customerMakingProvider.isUpdate | ||
| 418 | + ? 'c_mul_select' | ||
| 419 | + : 'c_mul_select_un'), | ||
| 420 | + width: ScreenUtil().setWidth(30)), | ||
| 421 | + HEmptyView(15), | ||
| 422 | + Text( | ||
| 423 | + '客户经理不可修改短信内容', | ||
| 424 | + style: TextStyle( | ||
| 425 | + fontSize: ScreenUtil().setSp(26), | ||
| 426 | + color: MyColours.color_333333), | ||
| 427 | + ), | ||
| 428 | + ])), | ||
| 329 | VEmptyView(30), | 429 | VEmptyView(30), |
| 330 | Row(children: [ | 430 | Row(children: [ |
| 331 | - Image.asset( | ||
| 332 | - Utils.getImgPath( | ||
| 333 | - true ? 'c_mul_select' : 'c_mul_select_un'), | ||
| 334 | - width: ScreenUtil().setWidth(30)), | 431 | + InkWell( |
| 432 | + onTap: () { | ||
| 433 | + customerMakingProvider.isDate = | ||
| 434 | + !customerMakingProvider.isDate; | ||
| 435 | + setState(() {}); | ||
| 436 | + }, | ||
| 437 | + child: Image.asset( | ||
| 438 | + Utils.getImgPath(customerMakingProvider.isDate | ||
| 439 | + ? 'c_mul_select' | ||
| 440 | + : 'c_mul_select_un'), | ||
| 441 | + width: ScreenUtil().setWidth(30))), | ||
| 335 | HEmptyView(15), | 442 | HEmptyView(15), |
| 336 | Text( | 443 | Text( |
| 337 | '最晚完成期限', | 444 | '最晚完成期限', |
| @@ -355,13 +462,15 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -355,13 +462,15 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 355 | if (value != null) { | 462 | if (value != null) { |
| 356 | setState(() { | 463 | setState(() { |
| 357 | print(value); | 464 | print(value); |
| 358 | - limitDate = DateUtil.formatDateStr(value, | ||
| 359 | - format: DateFormats.full); | 465 | + customerMakingProvider.edate = |
| 466 | + DateUtil.formatDateStr(value, | ||
| 467 | + format: DateFormats.full); | ||
| 360 | }); | 468 | }); |
| 361 | } | 469 | } |
| 362 | showDateSelWidget = false; | 470 | showDateSelWidget = false; |
| 363 | }, | 471 | }, |
| 364 | - dateTime: DateUtil.getDateTime(limitDate), | 472 | + dateTime: DateUtil.getDateTime( |
| 473 | + customerMakingProvider.edate), | ||
| 365 | onCancel: () { | 474 | onCancel: () { |
| 366 | showDateSelWidget = false; | 475 | showDateSelWidget = false; |
| 367 | }); | 476 | }); |
| @@ -380,12 +489,12 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -380,12 +489,12 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 380 | color: Color.fromRGBO( | 489 | color: Color.fromRGBO( |
| 381 | 175, 176, 177, 1), | 490 | 175, 176, 177, 1), |
| 382 | width: ScreenUtil().setWidth(2)))), | 491 | width: ScreenUtil().setWidth(2)))), |
| 383 | - child: Text( | ||
| 384 | - limitDate, | ||
| 385 | - style: TextStyle( | ||
| 386 | - fontSize: ScreenUtil().setSp(26), | ||
| 387 | - color: MyColours.color_333333), | ||
| 388 | - )), | 492 | + child: Text(customerMakingProvider.edate, |
| 493 | + style: TextStyle( | ||
| 494 | + fontSize: ScreenUtil().setSp(26), | ||
| 495 | + color: customerMakingProvider.isDate | ||
| 496 | + ? MyColours.color_333333 | ||
| 497 | + : MyColours.color_999999))), | ||
| 389 | Image.asset( | 498 | Image.asset( |
| 390 | Utils.getImgPath('c_arrow_down'), | 499 | Utils.getImgPath('c_arrow_down'), |
| 391 | width: ScreenUtil().setWidth(30), | 500 | width: ScreenUtil().setWidth(30), |
| @@ -442,6 +551,7 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -442,6 +551,7 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 442 | HEmptyView(10), | 551 | HEmptyView(10), |
| 443 | InkWell( | 552 | InkWell( |
| 444 | onTap: () { | 553 | onTap: () { |
| 554 | + needClear = false; | ||
| 445 | Navigator.pop(context); | 555 | Navigator.pop(context); |
| 446 | // NavigatorUtil.goMarketingRecordsDetailPage(context); | 556 | // NavigatorUtil.goMarketingRecordsDetailPage(context); |
| 447 | }, | 557 | }, |
| @@ -483,6 +593,9 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | @@ -483,6 +593,9 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> { | ||
| 483 | FromPage.FromPageMyCustomer) { | 593 | FromPage.FromPageMyCustomer) { |
| 484 | //群发短信 | 594 | //群发短信 |
| 485 | _createMarketing(); | 595 | _createMarketing(); |
| 596 | + } else { | ||
| 597 | + //确认下发任务 | ||
| 598 | + _createMarketingBySeller(); | ||
| 486 | } | 599 | } |
| 487 | }, | 600 | }, |
| 488 | ), | 601 | ), |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:one_key/constant/state.dart'; | 2 | import 'package:one_key/constant/state.dart'; |
| 3 | +import 'package:one_key/models/customer_list_model.dart'; | ||
| 3 | 4 | ||
| 4 | class CustomerMakingProvider extends ChangeNotifier { | 5 | class CustomerMakingProvider extends ChangeNotifier { |
| 5 | String labels; | 6 | String labels; |
| 6 | - List<String> selectCustomer = []; | 7 | + List<CustomerListSunModel> selectCustomer = []; |
| 7 | TextEditingController controller = TextEditingController(); | 8 | TextEditingController controller = TextEditingController(); |
| 8 | FromPage fromPage; | 9 | FromPage fromPage; |
| 9 | int couponSelectIndex = 0; | 10 | int couponSelectIndex = 0; |
| 10 | String youhui = '选择优惠'; | 11 | String youhui = '选择优惠'; |
| 11 | bool isUse = true; //营销加入优惠 | 12 | bool isUse = true; //营销加入优惠 |
| 13 | + bool isUpdate = true; //客户经理不可修改短信内容 | ||
| 14 | + bool isDate = true; //最晚完成期限 | ||
| 15 | + String edate = ''; | ||
| 12 | 16 | ||
| 13 | clearData() { | 17 | clearData() { |
| 14 | labels = ''; | 18 | labels = ''; |
| @@ -18,5 +22,8 @@ class CustomerMakingProvider extends ChangeNotifier { | @@ -18,5 +22,8 @@ class CustomerMakingProvider extends ChangeNotifier { | ||
| 18 | couponSelectIndex = 0; | 22 | couponSelectIndex = 0; |
| 19 | youhui = '选择优惠'; | 23 | youhui = '选择优惠'; |
| 20 | isUse = true; //营销加入优惠 | 24 | isUse = true; //营销加入优惠 |
| 25 | + isUpdate = true; //客户经理不可修改短信内容 | ||
| 26 | + isDate = true; //最晚完成期限 | ||
| 27 | + edate = ''; | ||
| 21 | } | 28 | } |
| 22 | } | 29 | } |
| @@ -37,7 +37,7 @@ class CustomerProvider extends ChangeNotifier { | @@ -37,7 +37,7 @@ class CustomerProvider extends ChangeNotifier { | ||
| 37 | PageState pageStateGuestReserve = PageState.Loading; //订单统计 | 37 | PageState pageStateGuestReserve = PageState.Loading; //订单统计 |
| 38 | GuestInfoSunModel guestInfoSunModel; | 38 | GuestInfoSunModel guestInfoSunModel; |
| 39 | GuestReserveSunModel guestReserveSunModel; | 39 | GuestReserveSunModel guestReserveSunModel; |
| 40 | - List<String> selectCustomer = []; | 40 | + List<CustomerListSunModel> selectCustomer = []; |
| 41 | int index = 0; | 41 | int index = 0; |
| 42 | bool checkValue = true; | 42 | bool checkValue = true; |
| 43 | String labels = ''; | 43 | String labels = ''; |
| @@ -350,7 +350,7 @@ class CustomerProvider extends ChangeNotifier { | @@ -350,7 +350,7 @@ class CustomerProvider extends ChangeNotifier { | ||
| 350 | selectCustomer = []; | 350 | selectCustomer = []; |
| 351 | for (var i = 0; i < temp.length; i++) { | 351 | for (var i = 0; i < temp.length; i++) { |
| 352 | temp[i].select = true; | 352 | temp[i].select = true; |
| 353 | - selectCustomer.add(temp[i].id); | 353 | + selectCustomer.add(temp[i]); |
| 354 | } | 354 | } |
| 355 | _giveValue(temp); | 355 | _giveValue(temp); |
| 356 | checkValue = true; | 356 | checkValue = true; |
| @@ -408,7 +408,7 @@ class CustomerProvider extends ChangeNotifier { | @@ -408,7 +408,7 @@ class CustomerProvider extends ChangeNotifier { | ||
| 408 | List<CustomerListSunModel> temp = returnNowList(); | 408 | List<CustomerListSunModel> temp = returnNowList(); |
| 409 | temp[index].select = true; | 409 | temp[index].select = true; |
| 410 | _giveValue(temp); | 410 | _giveValue(temp); |
| 411 | - selectCustomer.add(temp[index].id); | 411 | + selectCustomer.add(temp[index]); |
| 412 | labelsValue(); | 412 | labelsValue(); |
| 413 | notifyListeners(); | 413 | notifyListeners(); |
| 414 | } | 414 | } |
| @@ -619,4 +619,85 @@ class CustomerProvider extends ChangeNotifier { | @@ -619,4 +619,85 @@ class CustomerProvider extends ChangeNotifier { | ||
| 619 | } | 619 | } |
| 620 | return guestSunmodel; | 620 | return guestSunmodel; |
| 621 | } | 621 | } |
| 622 | + | ||
| 623 | + /** 商家客情 */ | ||
| 624 | + | ||
| 625 | + //商家修改客情配置 | ||
| 626 | + Future<bool> setSellerGuest(BuildContext context, Map<String, String> params, | ||
| 627 | + {bool showLoading = false}) async { | ||
| 628 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 629 | + .request<dynamic>(context, Method.get, HttpUrl.seller_guest_set, | ||
| 630 | + data: params, showLoading: showLoading) | ||
| 631 | + .catchError((error) { | ||
| 632 | + print(error.toString()); | ||
| 633 | + if (error is MyError) {} | ||
| 634 | + notifyListeners(); | ||
| 635 | + }); | ||
| 636 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 637 | + // guestReserveSunModel = | ||
| 638 | + // GuestReserveModel.fromJson(baseResp.responseData).data; | ||
| 639 | + if (baseResp.responseData['data'] == 1 || | ||
| 640 | + baseResp.responseData['data'] == 0) { | ||
| 641 | + return true; | ||
| 642 | + } | ||
| 643 | + return false; | ||
| 644 | + } else { | ||
| 645 | + if (baseResp != null) { | ||
| 646 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 647 | + } | ||
| 648 | + return false; | ||
| 649 | + } | ||
| 650 | + } | ||
| 651 | + | ||
| 652 | +// 商家创建商家标签 | ||
| 653 | + Future<bool> createLabelBySellerid( | ||
| 654 | + BuildContext context, Map<String, String> params, | ||
| 655 | + {bool showLoading = false}) async { | ||
| 656 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 657 | + .request<dynamic>(context, Method.get, HttpUrl.create_label_by_sellerid, | ||
| 658 | + data: params, showLoading: showLoading) | ||
| 659 | + .catchError((error) { | ||
| 660 | + print(error.toString()); | ||
| 661 | + if (error is MyError) {} | ||
| 662 | + notifyListeners(); | ||
| 663 | + }); | ||
| 664 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 665 | + // guestReserveSunModel = | ||
| 666 | + // GuestReserveModel.fromJson(baseResp.responseData).data; | ||
| 667 | + if (baseResp.responseData['data'] != null && | ||
| 668 | + baseResp.responseData['data']['id'] != '') { | ||
| 669 | + return true; | ||
| 670 | + } | ||
| 671 | + return false; | ||
| 672 | + } else { | ||
| 673 | + if (baseResp != null) { | ||
| 674 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 675 | + } | ||
| 676 | + return false; | ||
| 677 | + } | ||
| 678 | + } | ||
| 679 | + | ||
| 680 | + // 商家创建营销 | ||
| 681 | + createMarketingBySeller(BuildContext context, Map<String, String> params, | ||
| 682 | + {bool showLoading = false}) async { | ||
| 683 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 684 | + .request<dynamic>( | ||
| 685 | + context, Method.get, HttpUrl.create_marketing_by_seller, | ||
| 686 | + data: params, showLoading: showLoading) | ||
| 687 | + .catchError((error) { | ||
| 688 | + print(error.toString()); | ||
| 689 | + if (error is MyError) {} | ||
| 690 | + notifyListeners(); | ||
| 691 | + }); | ||
| 692 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 693 | + // guestReserveSunModel = | ||
| 694 | + // GuestReserveModel.fromJson(baseResp.responseData).data; | ||
| 695 | + notifyListeners(); | ||
| 696 | + } else { | ||
| 697 | + if (baseResp != null) { | ||
| 698 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 699 | + } | ||
| 700 | + } | ||
| 701 | + notifyListeners(); | ||
| 702 | + } | ||
| 622 | } | 703 | } |
| @@ -567,9 +567,9 @@ class NavigatorUtil { | @@ -567,9 +567,9 @@ class NavigatorUtil { | ||
| 567 | } | 567 | } |
| 568 | 568 | ||
| 569 | /// 创建营销 | 569 | /// 创建营销 |
| 570 | - static Future<dynamic> goMakeMarkingPage(BuildContext context, String gid, | 570 | + static Future<dynamic> goMakeMarkingPage(BuildContext context, |
| 571 | {replace = false}) { | 571 | {replace = false}) { |
| 572 | - return _navigateTo(context, "${Routes.make_marketing_page}?gid=$gid", | 572 | + return _navigateTo(context, "${Routes.make_marketing_page}", |
| 573 | replace: replace); | 573 | replace: replace); |
| 574 | } | 574 | } |
| 575 | 575 | ||
| @@ -599,10 +599,12 @@ class NavigatorUtil { | @@ -599,10 +599,12 @@ class NavigatorUtil { | ||
| 599 | 599 | ||
| 600 | ///纪念日 | 600 | ///纪念日 |
| 601 | static Future<dynamic> goFestivalEditPage( | 601 | static Future<dynamic> goFestivalEditPage( |
| 602 | - BuildContext context, { | 602 | + BuildContext context, |
| 603 | + Guest guest, { | ||
| 603 | replace = false, | 604 | replace = false, |
| 604 | }) { | 605 | }) { |
| 605 | - return _navigateTo(context, "${Routes.festival_edit_page}", | 606 | + return _navigateTo(context, |
| 607 | + "${Routes.festival_edit_page}?guest=${FluroConvertUtils.object2string(guest)}", | ||
| 606 | replace: replace); | 608 | replace: replace); |
| 607 | } | 609 | } |
| 608 | 610 |
| @@ -891,10 +891,10 @@ var marketingRecordsDetailPageHandle = new Handler( | @@ -891,10 +891,10 @@ var marketingRecordsDetailPageHandle = new Handler( | ||
| 891 | ///创建营销 | 891 | ///创建营销 |
| 892 | var makeMarkingPageHandle = new Handler( | 892 | var makeMarkingPageHandle = new Handler( |
| 893 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 893 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 894 | - String gid = params["gid"].first; | 894 | + // String gid = params["gid"].first; |
| 895 | 895 | ||
| 896 | return ChangeNotifierProvider<CustomerProvider>( | 896 | return ChangeNotifierProvider<CustomerProvider>( |
| 897 | - create: (_) => CustomerProvider(), child: MakeMarkingPage(gid: gid)); | 897 | + create: (_) => CustomerProvider(), child: MakeMarkingPage()); |
| 898 | }); | 898 | }); |
| 899 | 899 | ||
| 900 | ///客户详情 | 900 | ///客户详情 |
| @@ -938,8 +938,13 @@ var festivalEditPageHandle = new Handler( | @@ -938,8 +938,13 @@ var festivalEditPageHandle = new Handler( | ||
| 938 | // UserHistoryEntity userHistoryEntity = UserHistoryEntity.fromJson(json.decode( | 938 | // UserHistoryEntity userHistoryEntity = UserHistoryEntity.fromJson(json.decode( |
| 939 | // FluroConvertUtils.fluroCnParamsDecode( | 939 | // FluroConvertUtils.fluroCnParamsDecode( |
| 940 | // params["userHistoryEntity"].first))); | 940 | // params["userHistoryEntity"].first))); |
| 941 | + Guest guest = Guest.fromJson(json | ||
| 942 | + .decode(FluroConvertUtils.fluroCnParamsDecode(params["guest"].first))); | ||
| 941 | return ChangeNotifierProvider<CustomerProvider>( | 943 | return ChangeNotifierProvider<CustomerProvider>( |
| 942 | - create: (_) => CustomerProvider(), child: FestivalEditPage()); | 944 | + create: (_) => CustomerProvider(), |
| 945 | + child: FestivalEditPage( | ||
| 946 | + guest: guest, | ||
| 947 | + )); | ||
| 943 | }); | 948 | }); |
| 944 | 949 | ||
| 945 | ///客户订单 | 950 | ///客户订单 |
| @@ -1944,8 +1944,9 @@ class DialogUtil { | @@ -1944,8 +1944,9 @@ class DialogUtil { | ||
| 1944 | daySuffix: "日", | 1944 | daySuffix: "日", |
| 1945 | minHour: 00, | 1945 | minHour: 00, |
| 1946 | maxHour: 23, | 1946 | maxHour: 23, |
| 1947 | - yearBegin: 2021, | 1947 | + yearBegin: DateTime.now().year, |
| 1948 | yearEnd: 2030, | 1948 | yearEnd: 2030, |
| 1949 | + minValue: DateTime.now(), | ||
| 1949 | value: dateTime), | 1950 | value: dateTime), |
| 1950 | title: new Text(""), | 1951 | title: new Text(""), |
| 1951 | height: ScreenUtil().setWidth(480), | 1952 | height: ScreenUtil().setWidth(480), |
| @@ -2476,25 +2477,23 @@ class DialogUtil { | @@ -2476,25 +2477,23 @@ class DialogUtil { | ||
| 2476 | stateSetter(() { | 2477 | stateSetter(() { |
| 2477 | gongli = !gongli; | 2478 | gongli = !gongli; |
| 2478 | }); | 2479 | }); |
| 2479 | - if (dayStr != '') { | ||
| 2480 | - List dayList = updateDay( | ||
| 2481 | - gongli, | ||
| 2482 | - yearStr == '选填' | ||
| 2483 | - ? DateTime.now() | ||
| 2484 | - .year | ||
| 2485 | - .toString() | ||
| 2486 | - : yearStr, | ||
| 2487 | - monthStr == '' | ||
| 2488 | - ? DateTime.now() | ||
| 2489 | - .month | ||
| 2490 | - .toString() | ||
| 2491 | - : monthStr); | ||
| 2492 | - if (!dayList.contains(dayStr)) { | ||
| 2493 | - stateSetter(() { | ||
| 2494 | - dayStr = ''; | ||
| 2495 | - }); | ||
| 2496 | - } | 2480 | + if (dayStr != '') { |
| 2481 | + List dayList = updateDay( | ||
| 2482 | + gongli, | ||
| 2483 | + yearStr == '选填' | ||
| 2484 | + ? DateTime.now().year.toString() | ||
| 2485 | + : yearStr, | ||
| 2486 | + monthStr == '' | ||
| 2487 | + ? DateTime.now() | ||
| 2488 | + .month | ||
| 2489 | + .toString() | ||
| 2490 | + : monthStr); | ||
| 2491 | + if (!dayList.contains(dayStr)) { | ||
| 2492 | + stateSetter(() { | ||
| 2493 | + dayStr = ''; | ||
| 2494 | + }); | ||
| 2497 | } | 2495 | } |
| 2496 | + } | ||
| 2498 | }, | 2497 | }, |
| 2499 | child: Container( | 2498 | child: Container( |
| 2500 | padding: EdgeInsets.symmetric( | 2499 | padding: EdgeInsets.symmetric( |
| @@ -2781,8 +2780,26 @@ class DialogUtil { | @@ -2781,8 +2780,26 @@ class DialogUtil { | ||
| 2781 | Utils.showToast('请输入纪念日名称'); | 2780 | Utils.showToast('请输入纪念日名称'); |
| 2782 | return; | 2781 | return; |
| 2783 | } | 2782 | } |
| 2783 | + if (monthStr == '' || | ||
| 2784 | + monthStr == null || | ||
| 2785 | + dayStr == '' || | ||
| 2786 | + dayStr == null) { | ||
| 2787 | + Utils.showToast('请输入完整纪念日日期'); | ||
| 2788 | + return; | ||
| 2789 | + } | ||
| 2790 | + | ||
| 2784 | Navigator.of(context).pop(); | 2791 | Navigator.of(context).pop(); |
| 2785 | - rCallback(name); | 2792 | + String str = ''; |
| 2793 | + str += '${name}:'; | ||
| 2794 | + if (yearStr != '' && | ||
| 2795 | + yearStr != null && | ||
| 2796 | + yearStr != '选填') { | ||
| 2797 | + str += '${yearStr}年'; | ||
| 2798 | + } | ||
| 2799 | + str += '${monthStr}月'; | ||
| 2800 | + str += '${dayStr}日'; | ||
| 2801 | + str += '(${gongli ? '公历' : '农历'})'; | ||
| 2802 | + rCallback(str); | ||
| 2786 | }, | 2803 | }, |
| 2787 | ), | 2804 | ), |
| 2788 | ], | 2805 | ], |
-
Please register or login to post a comment