Showing
10 changed files
with
200 additions
and
42 deletions
| @@ -518,7 +518,7 @@ | @@ -518,7 +518,7 @@ | ||
| 518 | CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements; | 518 | CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements; |
| 519 | CODE_SIGN_IDENTITY = "Apple Development"; | 519 | CODE_SIGN_IDENTITY = "Apple Development"; |
| 520 | CODE_SIGN_STYLE = Automatic; | 520 | CODE_SIGN_STYLE = Automatic; |
| 521 | - CURRENT_PROJECT_VERSION = 5100; | 521 | + CURRENT_PROJECT_VERSION = 5101; |
| 522 | DEVELOPMENT_TEAM = 8J59HM8B82; | 522 | DEVELOPMENT_TEAM = 8J59HM8B82; |
| 523 | ENABLE_BITCODE = NO; | 523 | ENABLE_BITCODE = NO; |
| 524 | FLUTTER_BUILD_MODE = release; | 524 | FLUTTER_BUILD_MODE = release; |
| @@ -664,7 +664,7 @@ | @@ -664,7 +664,7 @@ | ||
| 664 | CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements"; | 664 | CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements"; |
| 665 | CODE_SIGN_IDENTITY = "Apple Development"; | 665 | CODE_SIGN_IDENTITY = "Apple Development"; |
| 666 | CODE_SIGN_STYLE = Automatic; | 666 | CODE_SIGN_STYLE = Automatic; |
| 667 | - CURRENT_PROJECT_VERSION = 5100; | 667 | + CURRENT_PROJECT_VERSION = 5101; |
| 668 | DEVELOPMENT_TEAM = 8J59HM8B82; | 668 | DEVELOPMENT_TEAM = 8J59HM8B82; |
| 669 | ENABLE_BITCODE = NO; | 669 | ENABLE_BITCODE = NO; |
| 670 | FLUTTER_BUILD_MODE = release; | 670 | FLUTTER_BUILD_MODE = release; |
| @@ -700,7 +700,7 @@ | @@ -700,7 +700,7 @@ | ||
| 700 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | 700 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; |
| 701 | CODE_SIGN_IDENTITY = "Apple Development"; | 701 | CODE_SIGN_IDENTITY = "Apple Development"; |
| 702 | CODE_SIGN_STYLE = Automatic; | 702 | CODE_SIGN_STYLE = Automatic; |
| 703 | - CURRENT_PROJECT_VERSION = 5100; | 703 | + CURRENT_PROJECT_VERSION = 5101; |
| 704 | DEVELOPMENT_TEAM = 8J59HM8B82; | 704 | DEVELOPMENT_TEAM = 8J59HM8B82; |
| 705 | ENABLE_BITCODE = NO; | 705 | ENABLE_BITCODE = NO; |
| 706 | FLUTTER_BUILD_MODE = release; | 706 | FLUTTER_BUILD_MODE = release; |
| @@ -104,6 +104,8 @@ class NotebookDetail { | @@ -104,6 +104,8 @@ class NotebookDetail { | ||
| 104 | String gid; | 104 | String gid; |
| 105 | String place_order_name; //下单人 | 105 | String place_order_name; //下单人 |
| 106 | 106 | ||
| 107 | + | ||
| 108 | + | ||
| 107 | String get statuImgAssets { | 109 | String get statuImgAssets { |
| 108 | switch (status) { | 110 | switch (status) { |
| 109 | case "0": | 111 | case "0": |
| 1 | import 'dart:async'; | 1 | import 'dart:async'; |
| 2 | +import 'dart:convert'; | ||
| 2 | import 'dart:typed_data'; | 3 | import 'dart:typed_data'; |
| 3 | import 'dart:ui'; | 4 | import 'dart:ui'; |
| 4 | 5 | ||
| @@ -265,10 +266,11 @@ class InvicationPageState extends State<InvicationPage> | @@ -265,10 +266,11 @@ class InvicationPageState extends State<InvicationPage> | ||
| 265 | affinity: TextAffinity.downstream, | 266 | affinity: TextAffinity.downstream, |
| 266 | offset: value.toString().length))); | 267 | offset: value.toString().length))); |
| 267 | }); | 268 | }); |
| 268 | - couponProvider.sendSMS = 0; | 269 | + |
| 269 | // await _couponNetworkData(isShowLoading: false); | 270 | // await _couponNetworkData(isShowLoading: false); |
| 270 | await _getCustomerActivityBaseinfo(); | 271 | await _getCustomerActivityBaseinfo(); |
| 271 | _getSmsInfo(context); | 272 | _getSmsInfo(context); |
| 273 | + _timerShow(); | ||
| 272 | await _getReserveDetail(showCicle: false); | 274 | await _getReserveDetail(showCicle: false); |
| 273 | 275 | ||
| 274 | await _getTablesPhoto(); | 276 | await _getTablesPhoto(); |
| @@ -309,8 +311,61 @@ class InvicationPageState extends State<InvicationPage> | @@ -309,8 +311,61 @@ class InvicationPageState extends State<InvicationPage> | ||
| 309 | }); | 311 | }); |
| 310 | } | 312 | } |
| 311 | 313 | ||
| 314 | + _timerShow() { | ||
| 315 | + Map<String, dynamic> dataSp = {}; | ||
| 316 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 317 | + dataSp = json.decode(App.sp.getString('notebook_timer')); | ||
| 318 | + } | ||
| 319 | + if (dataSp.containsKey(widget.rid)) { | ||
| 320 | + Map<String, dynamic> mapRid = dataSp[widget.rid]; | ||
| 321 | + int cacheSeconds = mapRid['cache_seconds']; //剩余时间 | ||
| 322 | + int nowMilli = mapRid['now_milli']; //缓存当前时间戳 | ||
| 323 | + DateTime startDate = DateTime.fromMillisecondsSinceEpoch(nowMilli); | ||
| 324 | + //获取当前时间戳 | ||
| 325 | + | ||
| 326 | + int seconds = | ||
| 327 | + DateTime.now().difference(startDate).inSeconds; // 924878906 秒 | ||
| 328 | + if (seconds < cacheSeconds) { | ||
| 329 | + //开始倒计时 | ||
| 330 | + | ||
| 331 | + setState(() { | ||
| 332 | + canSendSms = false; | ||
| 333 | + showErroInfo = true; | ||
| 334 | + erroInfo = '2分钟内只能发送一条短信'; | ||
| 335 | + couponProvider.sendSMS = 1; | ||
| 336 | + smsTitle = '已发${couponProvider.sendSMS}次'; | ||
| 337 | + }); | ||
| 338 | + | ||
| 339 | + startCountdown(cacheSeconds - seconds); | ||
| 340 | + } else { | ||
| 341 | + couponProvider.sendSMS = 0; | ||
| 342 | + setState(() {}); | ||
| 343 | + } | ||
| 344 | + } | ||
| 345 | + } | ||
| 346 | + | ||
| 312 | @override | 347 | @override |
| 313 | void dispose() { | 348 | void dispose() { |
| 349 | + // App.sp.remove('notebook_timer'); | ||
| 350 | + if (countdownTime >= 1) { | ||
| 351 | + //缓存当前订单的剩余倒计时时间 | ||
| 352 | + // App.sp.remove('notebook_timer'); | ||
| 353 | + Map<String, dynamic> dataSp = {}; | ||
| 354 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 355 | + dataSp = json.decode(App.sp.getString('notebook_timer')); | ||
| 356 | + } | ||
| 357 | + // if(dataSp.containsKey(widget.rid)){ | ||
| 358 | + // //当前rid 有缓存 | ||
| 359 | + // } | ||
| 360 | + | ||
| 361 | + Map<String, dynamic> mapRid = { | ||
| 362 | + 'cache_seconds': countdownTime, //剩余时间 | ||
| 363 | + 'now_milli': DateTime.now().millisecondsSinceEpoch //当前时间戳 | ||
| 364 | + }; | ||
| 365 | + dataSp[widget.rid] = mapRid; | ||
| 366 | + App.sp.setString('notebook_timer', json.encode(dataSp)); | ||
| 367 | + } | ||
| 368 | + | ||
| 314 | removeOverlay(); | 369 | removeOverlay(); |
| 315 | Utils.changeStatusColor(); | 370 | Utils.changeStatusColor(); |
| 316 | couponProvider.clearSelect(); | 371 | couponProvider.clearSelect(); |
| @@ -366,20 +421,37 @@ class InvicationPageState extends State<InvicationPage> | @@ -366,20 +421,37 @@ class InvicationPageState extends State<InvicationPage> | ||
| 366 | } | 421 | } |
| 367 | 422 | ||
| 368 | ///倒计时方法 | 423 | ///倒计时方法 |
| 369 | - startCountdown() { | ||
| 370 | - countdownTime = 60; | 424 | + startCountdown(int countdownTimeTemp) { |
| 371 | final call = (timer) { | 425 | final call = (timer) { |
| 372 | // setState(() { | 426 | // setState(() { |
| 373 | - if (countdownTime < 1) { | 427 | + if (countdownTimeTemp < 1) { |
| 428 | + countdownTime = countdownTimeTemp; | ||
| 374 | canSendSms = true; | 429 | canSendSms = true; |
| 375 | - if (erroInfo == '1分钟内只能发送一条短信') { | 430 | + Map<String, dynamic> dataSp = {}; |
| 431 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 432 | + dataSp = json.decode(App.sp.getString('notebook_timer')); | ||
| 433 | + } | ||
| 434 | + if (dataSp.containsKey(widget.rid)) { | ||
| 435 | + //当前rid 有缓存 | ||
| 436 | + dataSp.remove(widget.rid); | ||
| 437 | + if (dataSp.length == 0) { | ||
| 438 | + App.sp.remove('notebook_timer'); | ||
| 439 | + } else { | ||
| 440 | + App.sp.setString('notebook_timer', json.encode(dataSp)); | ||
| 441 | + } | ||
| 442 | + } | ||
| 443 | + if (erroInfo == '2分钟内只能发送一条短信') { | ||
| 376 | setState(() { | 444 | setState(() { |
| 377 | showErroInfo = false; | 445 | showErroInfo = false; |
| 446 | + couponProvider.sendSMS = 0; | ||
| 447 | + smsTitle = '发短信'; | ||
| 378 | }); | 448 | }); |
| 379 | } | 449 | } |
| 450 | + | ||
| 380 | _timer.cancel(); | 451 | _timer.cancel(); |
| 381 | } else { | 452 | } else { |
| 382 | - countdownTime -= 1; | 453 | + countdownTimeTemp -= 1; |
| 454 | + countdownTime = countdownTimeTemp; | ||
| 383 | } | 455 | } |
| 384 | // }); | 456 | // }); |
| 385 | }; | 457 | }; |
| @@ -2333,14 +2405,14 @@ class InvicationPageState extends State<InvicationPage> | @@ -2333,14 +2405,14 @@ class InvicationPageState extends State<InvicationPage> | ||
| 2333 | mainAxisSize: MainAxisSize.min, | 2405 | mainAxisSize: MainAxisSize.min, |
| 2334 | children: [ | 2406 | children: [ |
| 2335 | Image.asset( | 2407 | Image.asset( |
| 2336 | - Utils.getImgPath(erroInfo == '1分钟内只能发送一条短信' | 2408 | + Utils.getImgPath(erroInfo == '2分钟内只能发送一条短信' |
| 2337 | ? 'error_circle_yellow' | 2409 | ? 'error_circle_yellow' |
| 2338 | : 'error_circle_red'), | 2410 | : 'error_circle_red'), |
| 2339 | width: ScreenUtil().setWidth(40)), | 2411 | width: ScreenUtil().setWidth(40)), |
| 2340 | HEmptyView(10), | 2412 | HEmptyView(10), |
| 2341 | Text(erroInfo, | 2413 | Text(erroInfo, |
| 2342 | style: TextStyle( | 2414 | style: TextStyle( |
| 2343 | - color: erroInfo == '1分钟内只能发送一条短信' | 2415 | + color: erroInfo == '2分钟内只能发送一条短信' |
| 2344 | ? MyColours.color_ED7B2F | 2416 | ? MyColours.color_ED7B2F |
| 2345 | : MyColours.color_E34D59, | 2417 | : MyColours.color_E34D59, |
| 2346 | fontSize: ScreenUtil().setSp(28))), | 2418 | fontSize: ScreenUtil().setSp(28))), |
| @@ -4056,7 +4128,7 @@ class InvicationPageState extends State<InvicationPage> | @@ -4056,7 +4128,7 @@ class InvicationPageState extends State<InvicationPage> | ||
| 4056 | smsTitle = '已发${couponProvider.sendSMS}次'; | 4128 | smsTitle = '已发${couponProvider.sendSMS}次'; |
| 4057 | }); | 4129 | }); |
| 4058 | canSendSms = false; | 4130 | canSendSms = false; |
| 4059 | - startCountdown(); | 4131 | + startCountdown(120); |
| 4060 | } else { | 4132 | } else { |
| 4061 | if (couponProvider.errorSMS != '') { | 4133 | if (couponProvider.errorSMS != '') { |
| 4062 | setState(() { | 4134 | setState(() { |
| @@ -4073,10 +4145,10 @@ class InvicationPageState extends State<InvicationPage> | @@ -4073,10 +4145,10 @@ class InvicationPageState extends State<InvicationPage> | ||
| 4073 | 4145 | ||
| 4074 | } | 4146 | } |
| 4075 | } else { | 4147 | } else { |
| 4076 | - //显示1分钟只能发1次短信 | 4148 | + //显示2分钟只能发1次短信 |
| 4077 | setState(() { | 4149 | setState(() { |
| 4078 | showErroInfo = true; | 4150 | showErroInfo = true; |
| 4079 | - erroInfo = '1分钟内只能发送一条短信'; | 4151 | + erroInfo = '2分钟内只能发送一条短信'; |
| 4080 | }); | 4152 | }); |
| 4081 | return; | 4153 | return; |
| 4082 | } | 4154 | } |
| @@ -4133,7 +4205,7 @@ class InvicationPageState extends State<InvicationPage> | @@ -4133,7 +4205,7 @@ class InvicationPageState extends State<InvicationPage> | ||
| 4133 | smsTitle = '已发${couponProvider.sendSMS}次'; | 4205 | smsTitle = '已发${couponProvider.sendSMS}次'; |
| 4134 | }); | 4206 | }); |
| 4135 | canSendSms = false; | 4207 | canSendSms = false; |
| 4136 | - startCountdown(); | 4208 | + startCountdown(120); |
| 4137 | } else { | 4209 | } else { |
| 4138 | if (couponProvider.errorSMS != '') { | 4210 | if (couponProvider.errorSMS != '') { |
| 4139 | setState(() { | 4211 | setState(() { |
| @@ -4144,10 +4216,10 @@ class InvicationPageState extends State<InvicationPage> | @@ -4144,10 +4216,10 @@ class InvicationPageState extends State<InvicationPage> | ||
| 4144 | } | 4216 | } |
| 4145 | } | 4217 | } |
| 4146 | } else { | 4218 | } else { |
| 4147 | - //显示1分钟只能发1次短信 | 4219 | + //显示2分钟只能发1次短信 |
| 4148 | setState(() { | 4220 | setState(() { |
| 4149 | showErroInfo = true; | 4221 | showErroInfo = true; |
| 4150 | - erroInfo = '1分钟内只能发送一条短信'; | 4222 | + erroInfo = '2分钟内只能发送一条短信'; |
| 4151 | }); | 4223 | }); |
| 4152 | return; | 4224 | return; |
| 4153 | } | 4225 | } |
| @@ -91,6 +91,10 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> { | @@ -91,6 +91,10 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> { | ||
| 91 | //退出清空模块过期数据缓存 | 91 | //退出清空模块过期数据缓存 |
| 92 | App.sp.remove('sellerEdateModule'); | 92 | App.sp.remove('sellerEdateModule'); |
| 93 | } | 93 | } |
| 94 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 95 | + //退出清空订单发短信2分钟限制数据缓存 | ||
| 96 | + App.sp.remove('notebook_timer'); | ||
| 97 | + } | ||
| 94 | 98 | ||
| 95 | 99 | ||
| 96 | 100 |
| @@ -160,6 +160,10 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> | @@ -160,6 +160,10 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> | ||
| 160 | //退出清空模块过期数据缓存 | 160 | //退出清空模块过期数据缓存 |
| 161 | App.sp.remove('sellerEdateModule'); | 161 | App.sp.remove('sellerEdateModule'); |
| 162 | } | 162 | } |
| 163 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 164 | + //退出清空订单发短信2分钟限制数据缓存 | ||
| 165 | + App.sp.remove('notebook_timer'); | ||
| 166 | + } | ||
| 163 | bus.emit('refresh_token'); | 167 | bus.emit('refresh_token'); |
| 164 | Map<String, dynamic> seller = sunModel.toJson(); | 168 | Map<String, dynamic> seller = sunModel.toJson(); |
| 165 | Map<String, dynamic> userMap = { | 169 | Map<String, dynamic> userMap = { |
| @@ -200,7 +204,6 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> | @@ -200,7 +204,6 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> | ||
| 200 | // leftTitle: '上一步', | 204 | // leftTitle: '上一步', |
| 201 | rightImgName: 'add_check_store.png', onTapRight: () async { | 205 | rightImgName: 'add_check_store.png', onTapRight: () async { |
| 202 | NavigatorUtil.goCollectStoreInfoPage(context); | 206 | NavigatorUtil.goCollectStoreInfoPage(context); |
| 203 | - | ||
| 204 | } | 207 | } |
| 205 | 208 | ||
| 206 | // rightImgName: 'add_check_store.png', onTapRight: () { | 209 | // rightImgName: 'add_check_store.png', onTapRight: () { |
| @@ -17,6 +17,8 @@ import 'package:one_key/widgets/system_app_bar.dart'; | @@ -17,6 +17,8 @@ import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 17 | import 'package:one_key/widgets/v_empty_view.dart'; | 17 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 18 | import 'package:provider/provider.dart'; | 18 | import 'package:provider/provider.dart'; |
| 19 | 19 | ||
| 20 | +import '../../../../provider/collect_store_provider.dart'; | ||
| 21 | + | ||
| 20 | class MyMarketingRecordsDetailPage extends StatefulWidget { | 22 | class MyMarketingRecordsDetailPage extends StatefulWidget { |
| 21 | final String uid; | 23 | final String uid; |
| 22 | final String idstr; | 24 | final String idstr; |
| @@ -33,6 +35,7 @@ class _MyMarketingRecordsDetailPageState | @@ -33,6 +35,7 @@ class _MyMarketingRecordsDetailPageState | ||
| 33 | extends State<MyMarketingRecordsDetailPage> { | 35 | extends State<MyMarketingRecordsDetailPage> { |
| 34 | CustomerProvider customerProvider; | 36 | CustomerProvider customerProvider; |
| 35 | String aidStr = ''; | 37 | String aidStr = ''; |
| 38 | + CollectStoreProvider collectStoreProvider; | ||
| 36 | @override | 39 | @override |
| 37 | void initState() { | 40 | void initState() { |
| 38 | super.initState(); | 41 | super.initState(); |
| @@ -42,6 +45,7 @@ class _MyMarketingRecordsDetailPageState | @@ -42,6 +45,7 @@ class _MyMarketingRecordsDetailPageState | ||
| 42 | // } | 45 | // } |
| 43 | // _getMarketingById(); | 46 | // _getMarketingById(); |
| 44 | _couponNetworkData(); | 47 | _couponNetworkData(); |
| 48 | + getSellerVersion(); | ||
| 45 | }); | 49 | }); |
| 46 | } | 50 | } |
| 47 | 51 | ||
| @@ -50,6 +54,12 @@ class _MyMarketingRecordsDetailPageState | @@ -50,6 +54,12 @@ class _MyMarketingRecordsDetailPageState | ||
| 50 | super.dispose(); | 54 | super.dispose(); |
| 51 | } | 55 | } |
| 52 | 56 | ||
| 57 | + getSellerVersion() async { | ||
| 58 | + await collectStoreProvider.getSellerVersion(context); | ||
| 59 | + | ||
| 60 | + setState(() {}); | ||
| 61 | + } | ||
| 62 | + | ||
| 53 | // _getMarketingById() async { | 63 | // _getMarketingById() async { |
| 54 | // Map<String, String> params = {"id": widget.idstr}; | 64 | // Map<String, String> params = {"id": widget.idstr}; |
| 55 | // await customerProvider.getMarketingById(context, params); | 65 | // await customerProvider.getMarketingById(context, params); |
| @@ -83,6 +93,8 @@ class _MyMarketingRecordsDetailPageState | @@ -83,6 +93,8 @@ class _MyMarketingRecordsDetailPageState | ||
| 83 | @override | 93 | @override |
| 84 | Widget build(BuildContext context) { | 94 | Widget build(BuildContext context) { |
| 85 | customerProvider = Provider.of<CustomerProvider>(context, listen: true); | 95 | customerProvider = Provider.of<CustomerProvider>(context, listen: true); |
| 96 | + collectStoreProvider = | ||
| 97 | + Provider.of<CollectStoreProvider>(context, listen: true); | ||
| 86 | return Scaffold( | 98 | return Scaffold( |
| 87 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), | 99 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), |
| 88 | appBar: SystemAppBar( | 100 | appBar: SystemAppBar( |
| @@ -206,6 +218,14 @@ class _MyMarketingRecordsDetailPageState | @@ -206,6 +218,14 @@ class _MyMarketingRecordsDetailPageState | ||
| 206 | horizontal: ScreenUtil().setWidth(200)), | 218 | horizontal: ScreenUtil().setWidth(200)), |
| 207 | isBold: false, | 219 | isBold: false, |
| 208 | onPressed: () { | 220 | onPressed: () { |
| 221 | + if (!collectStoreProvider.sellerMarketing) { | ||
| 222 | + //没有购买客情营销模块 | ||
| 223 | + //提示购买 | ||
| 224 | + | ||
| 225 | + DialogUtil.showSellerVersionBuyDialog( | ||
| 226 | + context, '客情营销', (v) {}); | ||
| 227 | + return; | ||
| 228 | + } | ||
| 209 | NavigatorUtil.goMyMakeMarkingPage(context, widget.uid, | 229 | NavigatorUtil.goMyMakeMarkingPage(context, widget.uid, |
| 210 | selfList: widget.selfList, | 230 | selfList: widget.selfList, |
| 211 | fromPage: FromPage.FromPageMakeRecordDetail); | 231 | fromPage: FromPage.FromPageMakeRecordDetail); |
| @@ -19,6 +19,8 @@ import 'package:provider/provider.dart'; | @@ -19,6 +19,8 @@ import 'package:provider/provider.dart'; | ||
| 19 | import 'package:one_key/models/store_customer_home_model.dart' | 19 | import 'package:one_key/models/store_customer_home_model.dart' |
| 20 | as storeCustomerHomeModel; | 20 | as storeCustomerHomeModel; |
| 21 | 21 | ||
| 22 | +import '../../../../provider/collect_store_provider.dart'; | ||
| 23 | + | ||
| 22 | class MarketingRecordsDetailPage extends StatefulWidget { | 24 | class MarketingRecordsDetailPage extends StatefulWidget { |
| 23 | final String idstr; | 25 | final String idstr; |
| 24 | final List<storeCustomerHomeModel.SellerUser> sellerUser; | 26 | final List<storeCustomerHomeModel.SellerUser> sellerUser; |
| @@ -33,6 +35,7 @@ class MarketingRecordsDetailPage extends StatefulWidget { | @@ -33,6 +35,7 @@ class MarketingRecordsDetailPage extends StatefulWidget { | ||
| 33 | class _MarketingRecordsDetailPageState | 35 | class _MarketingRecordsDetailPageState |
| 34 | extends State<MarketingRecordsDetailPage> { | 36 | extends State<MarketingRecordsDetailPage> { |
| 35 | CustomerProvider customerProvider; | 37 | CustomerProvider customerProvider; |
| 38 | + CollectStoreProvider collectStoreProvider; | ||
| 36 | @override | 39 | @override |
| 37 | void initState() { | 40 | void initState() { |
| 38 | super.initState(); | 41 | super.initState(); |
| @@ -41,6 +44,7 @@ class _MarketingRecordsDetailPageState | @@ -41,6 +44,7 @@ class _MarketingRecordsDetailPageState | ||
| 41 | // _getMarketingBySeller(); | 44 | // _getMarketingBySeller(); |
| 42 | // } | 45 | // } |
| 43 | _getMarketingById(); | 46 | _getMarketingById(); |
| 47 | + getSellerVersion(); | ||
| 44 | }); | 48 | }); |
| 45 | } | 49 | } |
| 46 | 50 | ||
| @@ -49,6 +53,12 @@ class _MarketingRecordsDetailPageState | @@ -49,6 +53,12 @@ class _MarketingRecordsDetailPageState | ||
| 49 | super.dispose(); | 53 | super.dispose(); |
| 50 | } | 54 | } |
| 51 | 55 | ||
| 56 | + getSellerVersion() async { | ||
| 57 | + await collectStoreProvider.getSellerVersion(context); | ||
| 58 | + | ||
| 59 | + setState(() {}); | ||
| 60 | + } | ||
| 61 | + | ||
| 52 | _getMarketingById() async { | 62 | _getMarketingById() async { |
| 53 | Map<String, String> params = {"id": widget.idstr}; | 63 | Map<String, String> params = {"id": widget.idstr}; |
| 54 | await customerProvider.getMarketingById(context, params); | 64 | await customerProvider.getMarketingById(context, params); |
| @@ -145,6 +155,8 @@ class _MarketingRecordsDetailPageState | @@ -145,6 +155,8 @@ class _MarketingRecordsDetailPageState | ||
| 145 | @override | 155 | @override |
| 146 | Widget build(BuildContext context) { | 156 | Widget build(BuildContext context) { |
| 147 | customerProvider = Provider.of<CustomerProvider>(context, listen: true); | 157 | customerProvider = Provider.of<CustomerProvider>(context, listen: true); |
| 158 | + collectStoreProvider = | ||
| 159 | + Provider.of<CollectStoreProvider>(context, listen: true); | ||
| 148 | return Scaffold( | 160 | return Scaffold( |
| 149 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), | 161 | backgroundColor: Color.fromRGBO(246, 248, 250, 1), |
| 150 | appBar: SystemAppBar( | 162 | appBar: SystemAppBar( |
| @@ -379,6 +391,14 @@ class _MarketingRecordsDetailPageState | @@ -379,6 +391,14 @@ class _MarketingRecordsDetailPageState | ||
| 379 | horizontal: ScreenUtil().setWidth(200)), | 391 | horizontal: ScreenUtil().setWidth(200)), |
| 380 | isBold: false, | 392 | isBold: false, |
| 381 | onPressed: () { | 393 | onPressed: () { |
| 394 | + if (!collectStoreProvider.sellerMarketing) { | ||
| 395 | + //没有购买客情营销模块 | ||
| 396 | + //提示购买 | ||
| 397 | + | ||
| 398 | + DialogUtil.showSellerVersionBuyDialog( | ||
| 399 | + context, '客情营销', (v) {}); | ||
| 400 | + return; | ||
| 401 | + } | ||
| 382 | // NavigatorUtil.goMyMakeMarkingPage(context, | 402 | // NavigatorUtil.goMyMakeMarkingPage(context, |
| 383 | // selfList: widget.selfList, | 403 | // selfList: widget.selfList, |
| 384 | // fromPage: FromPage.FromPageMakeRecordDetail); | 404 | // fromPage: FromPage.FromPageMakeRecordDetail); |
| @@ -17,6 +17,7 @@ import '../../../utils/screen_util.dart'; | @@ -17,6 +17,7 @@ import '../../../utils/screen_util.dart'; | ||
| 17 | import '../../../widgets/round_button.dart'; | 17 | import '../../../widgets/round_button.dart'; |
| 18 | import '../../constant/state.dart'; | 18 | import '../../constant/state.dart'; |
| 19 | import '../../models/cookbook_model.dart'; | 19 | import '../../models/cookbook_model.dart'; |
| 20 | +import '../../models/guest_info_model.dart'; | ||
| 20 | import '../../models/notebook_detail.dart'; | 21 | import '../../models/notebook_detail.dart'; |
| 21 | import '../../models/plan_cook_list_model.dart'; | 22 | import '../../models/plan_cook_list_model.dart'; |
| 22 | import '../../provider/customer_provider.dart'; | 23 | import '../../provider/customer_provider.dart'; |
| @@ -69,6 +70,31 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -69,6 +70,31 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 69 | bus.off("refresh_order_advance_home"); | 70 | bus.off("refresh_order_advance_home"); |
| 70 | } | 71 | } |
| 71 | 72 | ||
| 73 | + _getGuestInfo() async { | ||
| 74 | + if (widget.detailEntity.gid != null && | ||
| 75 | + widget.detailEntity.phone != null && | ||
| 76 | + widget.detailEntity.phone != '') { | ||
| 77 | + Map<String, String> params = { | ||
| 78 | + "uid": Provider.of<UserModel>(context, listen: false).user.openid, | ||
| 79 | + "id": widget.detailEntity.gid, | ||
| 80 | + 'phone': widget.detailEntity.phone | ||
| 81 | + }; | ||
| 82 | + CustomerProvider customerProvider = | ||
| 83 | + Provider.of<CustomerProvider>(context, listen: false); | ||
| 84 | + bool success = await customerProvider.getGuestInfo(context, params); | ||
| 85 | + if (success) { | ||
| 86 | + Guest guest = customerProvider.guestInfoSunModel.guest; | ||
| 87 | + likeController.text = guest.like ?? ''; | ||
| 88 | + noFoodController.text = guest.taboos ?? ''; | ||
| 89 | + serviceController.text = guest.serve ?? ''; | ||
| 90 | + | ||
| 91 | + setState(() {}); | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + // await customerProvider.searchData(customerProvider.controller.text); | ||
| 96 | + } | ||
| 97 | + | ||
| 72 | _setGuestInfo() async { | 98 | _setGuestInfo() async { |
| 73 | Map<String, String> params = { | 99 | Map<String, String> params = { |
| 74 | "id": widget.detailEntity.gid, | 100 | "id": widget.detailEntity.gid, |
| @@ -112,8 +138,10 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -112,8 +138,10 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 112 | serviceController.text = | 138 | serviceController.text = |
| 113 | _planDishProvider.planCookByRidSunModel.serve ?? ''; | 139 | _planDishProvider.planCookByRidSunModel.serve ?? ''; |
| 114 | name = _planDishProvider.planCookByRidSunModel.planName ?? ""; | 140 | name = _planDishProvider.planCookByRidSunModel.planName ?? ""; |
| 141 | + setState(() {}); | ||
| 142 | + } else { | ||
| 143 | + _getGuestInfo(); | ||
| 115 | } | 144 | } |
| 116 | - setState(() {}); | ||
| 117 | } | 145 | } |
| 118 | 146 | ||
| 119 | _getPageMenuData() async { | 147 | _getPageMenuData() async { |
| @@ -729,22 +757,22 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -729,22 +757,22 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 729 | )), | 757 | )), |
| 730 | InkWell( | 758 | InkWell( |
| 731 | onTap: () async { | 759 | onTap: () async { |
| 732 | - Map object = | ||
| 733 | - await NavigatorUtil.goOrderCustomerDetailEditPage( | ||
| 734 | - context, widget.detailEntity); | ||
| 735 | - if (object != null) { | ||
| 736 | - if (object.containsKey('taboos')) { | ||
| 737 | - noFoodController.text = object['taboos']; | ||
| 738 | - } | ||
| 739 | - if (object.containsKey('like')) { | ||
| 740 | - likeController.text = object['like']; | ||
| 741 | - } | ||
| 742 | - if (object.containsKey('serve')) { | ||
| 743 | - serviceController.text = object['serve']; | ||
| 744 | - } | 760 | + // Map object = |
| 761 | + // await NavigatorUtil.goOrderCustomerDetailEditPage( | ||
| 762 | + // context, widget.detailEntity); | ||
| 763 | + // if (object != null) { | ||
| 764 | + // if (object.containsKey('taboos')) { | ||
| 765 | + // noFoodController.text = object['taboos']; | ||
| 766 | + // } | ||
| 767 | + // if (object.containsKey('like')) { | ||
| 768 | + // likeController.text = object['like']; | ||
| 769 | + // } | ||
| 770 | + // if (object.containsKey('serve')) { | ||
| 771 | + // serviceController.text = object['serve']; | ||
| 772 | + // } | ||
| 745 | 773 | ||
| 746 | - setState(() {}); | ||
| 747 | - } | 774 | + // setState(() {}); |
| 775 | + // } | ||
| 748 | }, | 776 | }, |
| 749 | child: Container( | 777 | child: Container( |
| 750 | padding: EdgeInsets.only( | 778 | padding: EdgeInsets.only( |
| @@ -753,15 +781,15 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -753,15 +781,15 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 753 | mainAxisAlignment: MainAxisAlignment.spaceBetween, | 781 | mainAxisAlignment: MainAxisAlignment.spaceBetween, |
| 754 | children: [ | 782 | children: [ |
| 755 | Text( | 783 | Text( |
| 756 | - '客户偏好参考', | 784 | + '客户偏好', |
| 757 | style: TextStyle( | 785 | style: TextStyle( |
| 758 | fontSize: font(16), | 786 | fontSize: font(16), |
| 759 | color: MyColours.color_515151), | 787 | color: MyColours.color_515151), |
| 760 | ), | 788 | ), |
| 761 | - Image.asset( | ||
| 762 | - Utils.getImgPath('merge_arrow'), | ||
| 763 | - width: w(20), | ||
| 764 | - ) | 789 | + // Image.asset( |
| 790 | + // Utils.getImgPath('merge_arrow'), | ||
| 791 | + // width: w(20), | ||
| 792 | + // ) | ||
| 765 | ], | 793 | ], |
| 766 | ), | 794 | ), |
| 767 | )), | 795 | )), |
| @@ -380,6 +380,10 @@ class UserModel with ChangeNotifier { | @@ -380,6 +380,10 @@ class UserModel with ChangeNotifier { | ||
| 380 | //退出清空模块过期数据缓存 | 380 | //退出清空模块过期数据缓存 |
| 381 | App.sp.remove('sellerEdateModule'); | 381 | App.sp.remove('sellerEdateModule'); |
| 382 | } | 382 | } |
| 383 | + if (App.sp.containsKey('notebook_timer')) { | ||
| 384 | + //退出清空订单发短信2分钟限制数据缓存 | ||
| 385 | + App.sp.remove('notebook_timer'); | ||
| 386 | + } | ||
| 383 | 387 | ||
| 384 | App.sp.setBool("isLogin", false); | 388 | App.sp.setBool("isLogin", false); |
| 385 | // XgFlutterPlugin().stopXg(); | 389 | // XgFlutterPlugin().stopXg(); |
| @@ -1225,7 +1225,10 @@ var marketingRecordsDetailPageHandle = new Handler( | @@ -1225,7 +1225,10 @@ var marketingRecordsDetailPageHandle = new Handler( | ||
| 1225 | } | 1225 | } |
| 1226 | return ChangeNotifierProvider<CustomerProvider>( | 1226 | return ChangeNotifierProvider<CustomerProvider>( |
| 1227 | create: (_) => CustomerProvider(), | 1227 | create: (_) => CustomerProvider(), |
| 1228 | - child: MarketingRecordsDetailPage(idstr: idstr, sellerUser: sellerUser)); | 1228 | + child: ChangeNotifierProvider<CollectStoreProvider>( |
| 1229 | + create: (_) => CollectStoreProvider(), | ||
| 1230 | + child: MarketingRecordsDetailPage( | ||
| 1231 | + idstr: idstr, sellerUser: sellerUser))); | ||
| 1229 | }); | 1232 | }); |
| 1230 | 1233 | ||
| 1231 | ///我的营销记录详情 ---- 个人任务 | 1234 | ///我的营销记录详情 ---- 个人任务 |
| @@ -1238,8 +1241,10 @@ var myMarketingRecordsDetailPageHandle = new Handler( | @@ -1238,8 +1241,10 @@ var myMarketingRecordsDetailPageHandle = new Handler( | ||
| 1238 | 1241 | ||
| 1239 | return ChangeNotifierProvider<CustomerProvider>( | 1242 | return ChangeNotifierProvider<CustomerProvider>( |
| 1240 | create: (_) => CustomerProvider(), | 1243 | create: (_) => CustomerProvider(), |
| 1241 | - child: MyMarketingRecordsDetailPage( | ||
| 1242 | - idstr: idstr, selfList: selfList, uid: uid)); | 1244 | + child: ChangeNotifierProvider<CollectStoreProvider>( |
| 1245 | + create: (_) => CollectStoreProvider(), | ||
| 1246 | + child: MyMarketingRecordsDetailPage( | ||
| 1247 | + idstr: idstr, selfList: selfList, uid: uid))); | ||
| 1243 | }); | 1248 | }); |
| 1244 | 1249 | ||
| 1245 | ///我的营销记录详情 ---- 全店任务 | 1250 | ///我的营销记录详情 ---- 全店任务 |
-
Please register or login to post a comment