Commit a5e503b9656594ad2124b02eb2e1d66d2fd75da2

Authored by weixin_45529955
2 parents e78ab5ed 124d0473

。。。

@@ -20,19 +20,19 @@ if (flutterRoot == null) { @@ -20,19 +20,19 @@ if (flutterRoot == null) {
20 20
21 21
22 22
23 -def flutterVersionCode = "701" 23 +def flutterVersionCode = "702"
24 if (flutterVersionCode == null) { 24 if (flutterVersionCode == null) {
25 - flutterVersionCode = '701' 25 + flutterVersionCode = '702'
26 26
27 27
28 28
29 } 29 }
30 30
31 31
32 -def flutterVersionName = "7.0.1" 32 +def flutterVersionName = "7.0.2"
33 33
34 if (flutterVersionName == null) { 34 if (flutterVersionName == null) {
35 - flutterVersionName = '7.0.1' 35 + flutterVersionName = '7.0.2'
36 36
37 } 37 }
38 38
@@ -83,8 +83,8 @@ android { @@ -83,8 +83,8 @@ android {
83 83
84 ndk { 84 ndk {
85 //选择要添加的对应 cpu 类型的 .so 库。 85 //选择要添加的对应 cpu 类型的 .so 库。
86 - // abiFilters 'arm64-v8a', 'x86_64', 'mips64' //魅族64位,不支持32位  
87 - abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64','x86', 'mips', 'mips64' 86 + abiFilters 'arm64-v8a', 'x86_64', 'mips64' //魅族64位,不支持32位
  87 + // abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64','x86', 'mips', 'mips64'
88 } 88 }
89 89
90 lintOptions { 90 lintOptions {
@@ -355,10 +355,14 @@ @@ -355,10 +355,14 @@
355 inputFileListPaths = ( 355 inputFileListPaths = (
356 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", 356 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
357 ); 357 );
  358 + inputPaths = (
  359 + );
358 name = "[CP] Embed Pods Frameworks"; 360 name = "[CP] Embed Pods Frameworks";
359 outputFileListPaths = ( 361 outputFileListPaths = (
360 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", 362 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
361 ); 363 );
  364 + outputPaths = (
  365 + );
362 runOnlyForDeploymentPostprocessing = 0; 366 runOnlyForDeploymentPostprocessing = 0;
363 shellPath = /bin/sh; 367 shellPath = /bin/sh;
364 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; 368 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
@@ -372,10 +376,14 @@ @@ -372,10 +376,14 @@
372 inputFileListPaths = ( 376 inputFileListPaths = (
373 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", 377 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
374 ); 378 );
  379 + inputPaths = (
  380 + );
375 name = "[CP] Copy Pods Resources"; 381 name = "[CP] Copy Pods Resources";
376 outputFileListPaths = ( 382 outputFileListPaths = (
377 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", 383 "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
378 ); 384 );
  385 + outputPaths = (
  386 + );
379 runOnlyForDeploymentPostprocessing = 0; 387 runOnlyForDeploymentPostprocessing = 0;
380 shellPath = /bin/sh; 388 shellPath = /bin/sh;
381 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; 389 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
@@ -527,7 +535,7 @@ @@ -527,7 +535,7 @@
527 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 535 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
528 CLANG_ENABLE_MODULES = YES; 536 CLANG_ENABLE_MODULES = YES;
529 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; 537 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
530 - CURRENT_PROJECT_VERSION = 7000; 538 + CURRENT_PROJECT_VERSION = 703;
531 DEVELOPMENT_TEAM = 8J59HM8B82; 539 DEVELOPMENT_TEAM = 8J59HM8B82;
532 ENABLE_BITCODE = NO; 540 ENABLE_BITCODE = NO;
533 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; 541 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
@@ -537,7 +545,7 @@ @@ -537,7 +545,7 @@
537 "$(inherited)", 545 "$(inherited)",
538 "@executable_path/Frameworks", 546 "@executable_path/Frameworks",
539 ); 547 );
540 - MARKETING_VERSION = 7.0.0; 548 + MARKETING_VERSION = 7.0.3;
541 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 549 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
542 PRODUCT_NAME = "$(TARGET_NAME)"; 550 PRODUCT_NAME = "$(TARGET_NAME)";
543 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 551 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -712,7 +720,7 @@ @@ -712,7 +720,7 @@
712 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 720 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
713 CLANG_ENABLE_MODULES = YES; 721 CLANG_ENABLE_MODULES = YES;
714 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; 722 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
715 - CURRENT_PROJECT_VERSION = 7000; 723 + CURRENT_PROJECT_VERSION = 703;
716 DEVELOPMENT_TEAM = 8J59HM8B82; 724 DEVELOPMENT_TEAM = 8J59HM8B82;
717 ENABLE_BITCODE = NO; 725 ENABLE_BITCODE = NO;
718 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; 726 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
@@ -722,7 +730,7 @@ @@ -722,7 +730,7 @@
722 "$(inherited)", 730 "$(inherited)",
723 "@executable_path/Frameworks", 731 "@executable_path/Frameworks",
724 ); 732 );
725 - MARKETING_VERSION = 7.0.0; 733 + MARKETING_VERSION = 7.0.3;
726 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 734 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
727 PRODUCT_NAME = "$(TARGET_NAME)"; 735 PRODUCT_NAME = "$(TARGET_NAME)";
728 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 736 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -740,7 +748,7 @@ @@ -740,7 +748,7 @@
740 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 748 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
741 CLANG_ENABLE_MODULES = YES; 749 CLANG_ENABLE_MODULES = YES;
742 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; 750 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
743 - CURRENT_PROJECT_VERSION = 7000; 751 + CURRENT_PROJECT_VERSION = 703;
744 DEVELOPMENT_TEAM = 8J59HM8B82; 752 DEVELOPMENT_TEAM = 8J59HM8B82;
745 ENABLE_BITCODE = NO; 753 ENABLE_BITCODE = NO;
746 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; 754 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
@@ -750,7 +758,7 @@ @@ -750,7 +758,7 @@
750 "$(inherited)", 758 "$(inherited)",
751 "@executable_path/Frameworks", 759 "@executable_path/Frameworks",
752 ); 760 );
753 - MARKETING_VERSION = 7.0.0; 761 + MARKETING_VERSION = 7.0.3;
754 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 762 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
755 PRODUCT_NAME = "$(TARGET_NAME)"; 763 PRODUCT_NAME = "$(TARGET_NAME)";
756 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 764 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -82,6 +82,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> { @@ -82,6 +82,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> {
82 } else { 82 } else {
83 NavigatorUtil.goCustomerStatisticsPage(context); 83 NavigatorUtil.goCustomerStatisticsPage(context);
84 } 84 }
  85 + } else {
  86 + Utils.showToast('您还没有操作权限,请联系管理员');
85 } 87 }
86 } else { 88 } else {
87 if (Utils.getAuthority(context, '我的客情')) { 89 if (Utils.getAuthority(context, '我的客情')) {
@@ -96,6 +98,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> { @@ -96,6 +98,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> {
96 } else { 98 } else {
97 NavigatorUtil.goMyCustomerPage(context); 99 NavigatorUtil.goMyCustomerPage(context);
98 } 100 }
  101 + } else {
  102 + Utils.showToast('您还没有操作权限,请联系管理员');
99 } 103 }
100 } 104 }
101 }, 105 },
  1 +import 'package:flutter/material.dart';
  2 +import 'package:one_key/res/colors.dart';
  3 +import 'package:one_key/route/navigator_util.dart';
  4 +import 'package:one_key/utils/screen_util.dart';
  5 +import 'package:one_key/utils/utils.dart';
  6 +import 'package:one_key/widgets/MyDivider.dart';
  7 +import 'package:one_key/widgets/system_app_bar.dart';
  8 +import 'package:one_key/widgets/v_empty_view.dart';
  9 +
  10 +/**
  11 + * 沉睡/流失客户唤醒营销
  12 + */
  13 +
  14 +class AwakeningMarketingPage extends StatefulWidget {
  15 + const AwakeningMarketingPage({super.key});
  16 +
  17 + @override
  18 + State<AwakeningMarketingPage> createState() => _AwakeningMarketingPageState();
  19 +}
  20 +
  21 +class _AwakeningMarketingPageState extends State<AwakeningMarketingPage> {
  22 + bool isRemindSleep = false;
  23 + bool isSendSleep = false;
  24 +
  25 + bool isRemindLeave = false;
  26 + bool isSendLeave = false;
  27 +
  28 + Widget _itemSmsWidget(bool isSelect, String title,
  29 + {GestureTapCallback? onTap}) {
  30 + return Column(
  31 + children: [
  32 + InkWell(
  33 + onTap: onTap,
  34 + child: Padding(
  35 + padding: EdgeInsets.only(
  36 + left: w(16), top: w(14), bottom: w(3), right: w(12)),
  37 + child: Row(
  38 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  39 + children: [
  40 + Text(
  41 + title,
  42 + style: TextStyle(
  43 + color: MyColours.color_515151, fontSize: font(14)),
  44 + ),
  45 + Spacer(),
  46 + Container(
  47 + margin: EdgeInsets.symmetric(
  48 + horizontal: w(7), vertical: w(4)),
  49 + child: Image.asset(
  50 + Utils.getImgPath(isSelect ? 'swich_on' : 'swich_off'),
  51 + width: w(44),
  52 + ),
  53 + )
  54 + // RoundButton(
  55 + // text: '预览',
  56 + // gradientStart: MyColours.color_ffffff,
  57 + // gradientEnd: MyColours.color_ffffff,
  58 + // borderColor: MyColours.color_438E93,
  59 + // textColor: MyColours.color_438E93,
  60 + // radius: ScreenUtil().setWidth(22),
  61 + // fontSize: 24,
  62 + // width: w(72),
  63 + // height: ScreenUtil().setWidth(44),
  64 + // isBold: true,
  65 + // onPressed: () {
  66 + // NavigatorUtil.goMarkingPreviewPage(context);
  67 + // },
  68 + // ),
  69 + ]))),
  70 + Padding(
  71 + padding: EdgeInsets.only(left: w(16)),
  72 + child: MyDivider(double.infinity, w(0.5),
  73 + color: MyColours.color_E7E7E7)),
  74 + ],
  75 + );
  76 + }
  77 +
  78 + Widget _title(String title) {
  79 + return Column(
  80 + crossAxisAlignment: CrossAxisAlignment.start,
  81 + children: [
  82 + Padding(
  83 + padding: EdgeInsets.symmetric(vertical: w(8)),
  84 + child: Text(
  85 + title,
  86 + style: TextStyle(color: MyColours.color_515151, fontSize: font(16)),
  87 + ),
  88 + ),
  89 + MyDivider(double.infinity, w(0.5), color: MyColours.color_E7E7E7),
  90 + ],
  91 + );
  92 + }
  93 +
  94 + @override
  95 + Widget build(BuildContext context) {
  96 + return Scaffold(
  97 + backgroundColor: MyColours.color_ffffff,
  98 + appBar: SystemAppBar('沉睡/流失客户唤醒营销'),
  99 + body: Column(
  100 + children: [
  101 + Expanded(
  102 + child: SingleChildScrollView(
  103 + child: Padding(
  104 + padding: EdgeInsets.only(left: w(16)),
  105 + child: Column(
  106 + crossAxisAlignment: CrossAxisAlignment.start,
  107 + children: [
  108 + _title('活跃客户转沉睡'),
  109 + _itemSmsWidget(isRemindSleep, '进入沉睡状态时给经理发送提醒消息',
  110 + onTap: () {
  111 + setState(() {
  112 + isRemindSleep = !isRemindSleep;
  113 + });
  114 + // _setCancelSMS();
  115 + }),
  116 + _itemSmsWidget(isSendSleep, '进入沉睡状态时给客户发送优惠', onTap: () {
  117 + setState(() {
  118 + isSendSleep = !isSendSleep;
  119 + });
  120 + // _setNotice();
  121 + }),
  122 + VEmptyView(28),
  123 + InkWell(
  124 + onTap: () {
  125 + NavigatorUtil.goAwakeningSendSettingPage(context);
  126 + },
  127 + child: Padding(
  128 + padding: EdgeInsets.only(
  129 + left: w(16),
  130 + top: w(14),
  131 + bottom: w(10),
  132 + right: w(12)),
  133 + child: Row(
  134 + mainAxisAlignment:
  135 + MainAxisAlignment.spaceBetween,
  136 + children: [
  137 + Text(
  138 + '客户沉睡发放优惠设置',
  139 + style: TextStyle(
  140 + color: MyColours.color_515151,
  141 + fontSize: font(14)),
  142 + ),
  143 + Spacer(),
  144 + // HEmptyView(20),
  145 + // Expanded(
  146 + // child: Text(
  147 + // smsTemplate,
  148 + // textAlign: TextAlign.right,
  149 + // style: TextStyle(
  150 + // color: MyColours.color_515151,
  151 + // fontSize: font(14)),
  152 + // )),
  153 + Container(
  154 + padding: EdgeInsets.symmetric(
  155 + horizontal: w(11), vertical: w(4)),
  156 + child: Image.asset(
  157 + "assets/arrow_right_new.png",
  158 + width: w(9),
  159 + height: w(16),
  160 + ),
  161 + )
  162 + ]))),
  163 +
  164 + Padding(
  165 + padding: EdgeInsets.only(left: w(16)),
  166 + child: MyDivider(double.infinity, w(0.5),
  167 + color: MyColours.color_E7E7E7)),
  168 + // _itemSmsWidget(marketingSms, '使用店铺手机发送营销短信',
  169 + // onTap: () {
  170 + // setState(() {
  171 + // marketingSms = !marketingSms;
  172 + // });
  173 + // }),
  174 + VEmptyView(24),
  175 + _title('沉睡客户转流失'),
  176 + _itemSmsWidget(isRemindLeave, '进入流失状态时给经理发送提醒消息',
  177 + onTap: () {
  178 + setState(() {
  179 + isRemindLeave = !isRemindLeave;
  180 + });
  181 + // _setCancelSMS();
  182 + }),
  183 + _itemSmsWidget(isSendLeave, '进入流失状态时给客户发送优惠', onTap: () {
  184 + setState(() {
  185 + isSendLeave = !isSendLeave;
  186 + });
  187 + // _setNotice();
  188 + }),
  189 + VEmptyView(28),
  190 + InkWell(
  191 + onTap: () {
  192 + NavigatorUtil.goAwakeningSendSettingPage(context);
  193 + },
  194 + child: Padding(
  195 + padding: EdgeInsets.only(
  196 + left: w(16),
  197 + top: w(14),
  198 + bottom: w(10),
  199 + right: w(12)),
  200 + child: Row(
  201 + mainAxisAlignment:
  202 + MainAxisAlignment.spaceBetween,
  203 + children: [
  204 + Text(
  205 + '客户流失发放优惠设置',
  206 + style: TextStyle(
  207 + color: MyColours.color_515151,
  208 + fontSize: font(14)),
  209 + ),
  210 + Spacer(),
  211 + // HEmptyView(20),
  212 + // Expanded(
  213 + // child: Text(
  214 + // smsTemplate,
  215 + // textAlign: TextAlign.right,
  216 + // style: TextStyle(
  217 + // color: MyColours.color_515151,
  218 + // fontSize: font(14)),
  219 + // )),
  220 + Container(
  221 + padding: EdgeInsets.symmetric(
  222 + horizontal: w(11), vertical: w(4)),
  223 + child: Image.asset(
  224 + "assets/arrow_right_new.png",
  225 + width: w(9),
  226 + height: w(16),
  227 + ),
  228 + )
  229 + ]))),
  230 +
  231 + Padding(
  232 + padding: EdgeInsets.only(left: w(16)),
  233 + child: MyDivider(double.infinity, w(0.5),
  234 + color: MyColours.color_E7E7E7)),
  235 + // _itemSmsWidget(marketingSms, '使用店铺手机发送营销短信',
  236 + // onTap: () {
  237 + // setState(() {
  238 + // marketingSms = !marketingSms;
  239 + // });
  240 + // }),
  241 + VEmptyView(24),
  242 + ],
  243 + )),
  244 + )),
  245 + // Container(
  246 + // color: MyColours.color_ffffff,
  247 + // padding: EdgeInsets.only(
  248 + // left: w(23), right: w(23), top: w(12), bottom: w(25)),
  249 + // child: Row(
  250 + // children: [
  251 + // // RoundButton(
  252 + // // text: '图文预览',
  253 + // // width: w(100),
  254 + // // gradientStart: MyColours.color_ffffff,
  255 + // // gradientEnd: MyColours.color_ffffff,
  256 + // // borderColor: MyColours.color_438E93,
  257 + // // radius: r(5),
  258 + // // fontSize: 32,
  259 + // // height: w(40),
  260 + // // textColor: MyColours.color_438E93,
  261 + // // isBold: true,
  262 + // // onPressed: () async {
  263 + // // // NavigatorUtil.goMarkingPreviewPage(context);
  264 + // // if (previewUrl == '') {
  265 + // // Utils.showToast('暂时没有可预览的图文信息');
  266 + // // return;
  267 + // // }
  268 + // // //
  269 + // // _showPhotoView(context, 0, [previewUrl]);
  270 + // // }),
  271 + // // HEmptyView(30),
  272 + // Expanded(
  273 + // child: RoundButton(
  274 + // text: '保存',
  275 + // gradientStart: MyColours.color_199095,
  276 + // gradientEnd: MyColours.color_199095,
  277 + // // borderColor: MyColours.color_999999,
  278 + // radius: r(5),
  279 + // fontSize: 32,
  280 + // height: w(40),
  281 + // isBold: true,
  282 + // onPressed: () async {
  283 + // //调用接口
  284 + // _setData();
  285 + // }))
  286 + // ],
  287 + // ))
  288 + ],
  289 + ));
  290 + }
  291 +}
  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter/services.dart';
  3 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  4 +import 'package:one_key/provider/customer_making_provider.dart';
  5 +import 'package:one_key/provider/customer_provider.dart';
  6 +import 'package:one_key/provider/user_model.dart';
  7 +import 'package:one_key/res/colors.dart';
  8 +import 'package:one_key/route/navigator_util.dart';
  9 +import 'package:one_key/utils/dialog_util.dart';
  10 +import 'package:one_key/utils/screen_util.dart';
  11 +import 'package:one_key/utils/utils.dart';
  12 +import 'package:one_key/widgets/h_empty_view.dart';
  13 +import 'package:one_key/widgets/system_app_bar.dart';
  14 +import 'package:one_key/widgets/v_empty_view.dart';
  15 +import 'package:provider/provider.dart';
  16 +
  17 +/**
  18 + * 客户沉睡/流失发放优惠设置
  19 + */
  20 +
  21 +typedef ClickCallback = void Function(dynamic value);
  22 +
  23 +class AwakeningSendSettingPage extends StatefulWidget {
  24 + const AwakeningSendSettingPage({super.key});
  25 +
  26 + @override
  27 + State<AwakeningSendSettingPage> createState() =>
  28 + _AwakeningSendSettingPageState();
  29 +}
  30 +
  31 +class _AwakeningSendSettingPageState extends State<AwakeningSendSettingPage> {
  32 + TextEditingController moneyC = TextEditingController();
  33 + FocusNode moneyNode = FocusNode();
  34 +
  35 + late CustomerMakingProvider customerMakingProvider;
  36 + late CustomerProvider customerProvider;
  37 + List<String?> couponList = [];
  38 +
  39 + ///消费券
  40 + _couponNetworkData({bool isShowLoading = true}) async {
  41 + // customerMakingProvider.couponSelectIndex = 0;
  42 + Map<String, String?> params = {
  43 + "uid": Provider.of<UserModel>(context, listen: false).user!.openid,
  44 + 'status': '1'
  45 + };
  46 + await customerProvider.getCustomerSelectActivityNew(context, params,
  47 + isShowLoading: isShowLoading);
  48 + //此人已经新建好券
  49 + if (customerProvider.couponListSelect!.length > 0) {
  50 + // couponProvider.initCouponSelect(context);
  51 + couponList = [];
  52 + for (int i = 0; i < customerProvider.couponListSelect!.length; i++) {
  53 + couponList.add(customerProvider.couponListSelect![i].aname);
  54 + }
  55 + customerProvider.notifyListeners();
  56 + } else {
  57 + //没有新建的优惠券
  58 + }
  59 + }
  60 +
  61 + List<Widget> _templateUI() {
  62 + List<Widget> templates = [];
  63 + customerProvider.marketingSmsData!.forEach((element) {
  64 + templates.add(InkWell(
  65 + onTap: () {
  66 + //选择模版.默认数据
  67 +
  68 + String newStr = '';
  69 + UserModel userModel =
  70 + Provider.of<UserModel>(context, listen: false);
  71 + newStr = element.content!
  72 + .replaceAll('{店铺名称}', userModel.user!.sellername!);
  73 + newStr =
  74 + newStr.replaceAll('{店铺电话号码}', userModel.user!.sellerphone!);
  75 + newStr =
  76 + newStr.replaceAll('{经理名称}', userModel.user!.nickName ?? '');
  77 + newStr = newStr.replaceAll('{礼品领取链接}', '');
  78 +
  79 + customerMakingProvider.controller.text = newStr;
  80 + },
  81 + child: Container(
  82 + padding: EdgeInsets.symmetric(horizontal: w(10), vertical: w(5)),
  83 + decoration: BoxDecoration(
  84 + borderRadius: BorderRadius.circular(r(5)),
  85 + color: MyColours.color_ffffff,
  86 + border: Border.all(width: w(1), color: MyColours.color_438E93)),
  87 + child: Text(
  88 + element.title!,
  89 + style: TextStyle(
  90 + color: MyColours.color_438E93,
  91 + fontSize: font(12),
  92 + fontWeight: FontWeight.bold),
  93 + ),
  94 + )));
  95 + });
  96 + return templates;
  97 + }
  98 +
  99 + _insertUrllink(String? link) {
  100 + // *************开始直接插入会报错***********还没有改
  101 +
  102 + var cursorPos =
  103 + customerMakingProvider.controller.selection.base.offset; //获取到光标的在字符串的位置
  104 +
  105 + if (cursorPos < 0) {
  106 + customerMakingProvider.controller.text += link!;
  107 + } else {
  108 + String textAfterCursor = customerMakingProvider.controller.text
  109 + .substring(cursorPos); //把字符串从光标的位置截取,光标后面的
  110 +
  111 + String textBeforeCursor = customerMakingProvider.controller.text
  112 + .substring(0, cursorPos); //光标前面的字符串
  113 + customerMakingProvider.controller.text =
  114 + textBeforeCursor + link! + textAfterCursor; //把想要的插入的内容拼接在光标位置处
  115 +
  116 + customerMakingProvider.controller.selection = TextSelection.collapsed(
  117 + offset: customerMakingProvider.controller.text.length);
  118 + }
  119 + }
  120 +
  121 + _buttonChoose(String title, ClickCallback callback) {
  122 + return InkWell(
  123 + onTap: () {
  124 + callback(title);
  125 + },
  126 + child: Padding(
  127 + padding: EdgeInsets.symmetric(
  128 + horizontal: ScreenUtil().setWidth(20),
  129 + vertical: ScreenUtil().setWidth(10)),
  130 + // height: ScreenUtil().setWidth(50),
  131 + // decoration: BoxDecoration(
  132 + // // border: Border.all(
  133 + // // width: ScreenUtil().setWidth(2),
  134 + // // color: MyColours.color_199095),
  135 + // borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10))),
  136 + child: Row(
  137 + children: [
  138 + Expanded(
  139 + child: Text(
  140 + title,
  141 + overflow: TextOverflow.ellipsis,
  142 + textAlign: TextAlign.right,
  143 + style: TextStyle(
  144 + color: title == '时间(选填)' ||
  145 + title == '(选填)' ||
  146 + title == '选择优惠' ||
  147 + !customerMakingProvider.isUse
  148 + ? MyColours.color_999999
  149 + : MyColours.color_438E93,
  150 + fontSize: ScreenUtil().setWidth(30)),
  151 + )),
  152 + HEmptyView(20),
  153 + Image.asset(
  154 + // Utils.getImgPath(!customerMakingProvider.isUse
  155 + // ? 'c_arrow_down_unsel'
  156 + // : 'c_arrow_down'),
  157 + Utils.getImgPath('down_c'),
  158 + width: ScreenUtil().setWidth(44),
  159 + // height: ScreenUtil().setWidth(10),
  160 + )
  161 + ],
  162 + )));
  163 + }
  164 +
  165 + ///短信内容编辑UI
  166 + Widget _contentWidget(String hintText) {
  167 + return Container(
  168 + // height: ScreenUtil().setWidth(380),
  169 + child: Column(
  170 + crossAxisAlignment: CrossAxisAlignment.start,
  171 + children: [
  172 + // Align(
  173 + // alignment: Alignment.centerLeft,
  174 + // child: Text(
  175 + // title,
  176 + // textAlign: TextAlign.left,
  177 + // style: TextStyle(
  178 + // color: MyColours.color_515151,
  179 + // fontWeight: FontWeight.bold,
  180 + // fontSize: ScreenUtil().setSp(34)),
  181 + // )),
  182 + // VEmptyView(30),
  183 + TextField(
  184 + controller: customerMakingProvider.controller,
  185 + // keyboardType: TextInputType.numberWithOptions(decimal: true), //键盘类型,数字键盘
  186 + maxLines: 6,
  187 + // focusNode: _focusNode,
  188 + // maxLength: 50,
  189 +
  190 + // maxLengthEnforced: true,
  191 + style: TextStyle(
  192 + fontSize: ScreenUtil().setSp(28),
  193 + color: MyColours.color_515151), //输入文本的样式
  194 + decoration: InputDecoration(
  195 + contentPadding: EdgeInsets.all(ScreenUtil().setWidth(30)),
  196 + hintText: hintText,
  197 + hintStyle: TextStyle(
  198 + color: MyColours.color_999999,
  199 + fontSize: ScreenUtil().setSp(28),
  200 + ),
  201 + fillColor: MyColours.color_ffffff,
  202 + // fillColor: Colors.red,
  203 + filled: true,
  204 + enabledBorder: OutlineInputBorder(
  205 + //未选中时候的颜色
  206 + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
  207 + borderSide: BorderSide(
  208 + color: MyColours.color_cccccc,
  209 + width: ScreenUtil().setWidth(2)),
  210 + ),
  211 + focusedBorder: OutlineInputBorder(
  212 + //选中时外边框颜色
  213 + borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
  214 + borderSide: BorderSide(
  215 + color: MyColours.app_main,
  216 + ),
  217 + ),
  218 + // border: OutlineInputBorder(
  219 + // borderRadius:
  220 + // BorderRadius.circular(ScreenUtil().setWidth(20)),
  221 + // borderSide: BorderSide(
  222 + // color: Colors.red, width: ScreenUtil().setWidth(2))),
  223 + ),
  224 + onChanged: (value) {
  225 + setState(() {});
  226 + },
  227 + ),
  228 + VEmptyView(20),
  229 + Container(
  230 + padding: EdgeInsets.only(left: w(10), right: w(10), bottom: w(10)),
  231 + decoration: BoxDecoration(
  232 + borderRadius: BorderRadius.circular(r(5)),
  233 + border: Border.all(width: w(1), color: MyColours.color_F8F7F3)),
  234 + child: Column(
  235 + crossAxisAlignment: CrossAxisAlignment.start,
  236 + children: [
  237 + Container(
  238 + height: w(34),
  239 + alignment: Alignment.centerLeft,
  240 + child: Text(
  241 + '常用模版',
  242 + style: TextStyle(
  243 + color: MyColours.color_515151,
  244 + fontSize: font(12),
  245 + ),
  246 + ),
  247 + ),
  248 + VEmptyView(10),
  249 + Padding(
  250 + padding: EdgeInsets.only(left: w(10)),
  251 + child: Wrap(
  252 + spacing: w(10),
  253 + runSpacing: w(5),
  254 + crossAxisAlignment: WrapCrossAlignment.center,
  255 + children: _templateUI(),
  256 + ),
  257 + )
  258 + ],
  259 + ),
  260 + ),
  261 + VEmptyView(50),
  262 + Row(
  263 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  264 + children: [
  265 + InkWell(
  266 + onTap: () {
  267 + customerMakingProvider.controller.text = '';
  268 + setState(() {});
  269 + // NavigatorUtil.goMarketingRecordsDetailPage(context);
  270 + },
  271 + child: Padding(
  272 + padding: EdgeInsets.only(right: ScreenUtil().setWidth(20)),
  273 + child: Text('清空',
  274 + style: TextStyle(
  275 + color: MyColours.color_199095,
  276 + fontSize: ScreenUtil().setSp(30))),
  277 + )),
  278 + Text(
  279 + '共 ${customerMakingProvider.controller.text.length} 字 ${customerMakingProvider.selectCustomerSeller.length} 条短信',
  280 + style: TextStyle(
  281 + color: MyColours.color_515151,
  282 + fontSize: ScreenUtil().setSp(26))),
  283 + ],
  284 + ),
  285 +
  286 + Column(children: [
  287 + VEmptyView(30),
  288 + InkWell(
  289 + onTap: () {
  290 + customerMakingProvider.isUpdate =
  291 + !customerMakingProvider.isUpdate;
  292 + setState(() {});
  293 + },
  294 + child: Row(children: [
  295 + Image.asset(
  296 + Utils.getImgPath(customerMakingProvider.isUpdate
  297 + ? 'f_select'
  298 + : 'f_select_not'),
  299 + width: ScreenUtil().setWidth(44)),
  300 + HEmptyView(15),
  301 + Text(
  302 + '客户经理不可修改短信内容',
  303 + style: TextStyle(
  304 + fontWeight: FontWeight.bold,
  305 + fontSize: ScreenUtil().setSp(32),
  306 + color: MyColours.color_515151),
  307 + ),
  308 + ])),
  309 + VEmptyView(30),
  310 + ]),
  311 + VEmptyView(30),
  312 + ],
  313 + ),
  314 + );
  315 + }
  316 +
  317 + @override
  318 + Widget build(BuildContext context) {
  319 + customerProvider = Provider.of<CustomerProvider>(context, listen: true);
  320 + customerMakingProvider =
  321 + Provider.of<CustomerMakingProvider>(context, listen: true);
  322 + return Scaffold(
  323 + backgroundColor: MyColours.color_ffffff,
  324 + appBar: SystemAppBar('客户沉睡发放优惠设置'),
  325 + body: Column(
  326 + children: [
  327 + Expanded(
  328 + child: SingleChildScrollView(
  329 + child: Column(
  330 + crossAxisAlignment: CrossAxisAlignment.start,
  331 + children: [
  332 + Container(
  333 + decoration: BoxDecoration(
  334 + border: Border(
  335 + bottom: BorderSide(
  336 + width: w(0.5), color: MyColours.color_E7E7E7))),
  337 + margin: EdgeInsets.only(left: w(16)),
  338 + padding: EdgeInsets.symmetric(vertical: w(13)),
  339 + child: Text('赠送优惠选择',
  340 + style: TextStyle(
  341 + color: MyColours.color_515151, fontSize: font(16))),
  342 + ),
  343 + InkWell(
  344 + onTap: () {},
  345 + child: Container(
  346 + height: w(40),
  347 + margin: EdgeInsets.only(left: w(40)),
  348 + // padding: EdgeInsets.only(
  349 + // top: w(8),
  350 + // bottom: w(8),
  351 + // ),
  352 + decoration: BoxDecoration(
  353 + border: Border(
  354 + bottom: BorderSide(
  355 + color: MyColours.color_E7E7E7, width: w(0.5)))),
  356 + child: Row(
  357 + crossAxisAlignment: CrossAxisAlignment.center,
  358 + mainAxisAlignment: MainAxisAlignment.start,
  359 + children: [
  360 + Image.asset(
  361 + Utils.getImgPath(
  362 + true ? 'radio_back' : 'radio_back_un'),
  363 + width: ScreenUtil().setWidth(18),
  364 + ),
  365 + HEmptyView(4),
  366 + Container(
  367 + // height: ScreenUtil().setWidth(40),
  368 + // color: Colors.red,
  369 + child: Text(
  370 + '发放消费金',
  371 + style: TextStyle(
  372 + color: MyColours.color_515151,
  373 + fontSize: ScreenUtil().setSp(28)),
  374 + ),
  375 + ),
  376 + HEmptyView(4),
  377 + Container(
  378 + width: w(54),
  379 + height: w(26),
  380 + alignment: Alignment.center,
  381 + decoration: BoxDecoration(
  382 + border: Border.all(
  383 + color: MyColours.color_999999, width: w(1))),
  384 + child: TextField(
  385 + controller: moneyC,
  386 + textAlign: TextAlign.center,
  387 + textAlignVertical: TextAlignVertical.center,
  388 + maxLines: 1,
  389 + // //光标颜色
  390 + // cursorColor:
  391 + // widget.isSelect ? Colors.white : MyColours.color_199095,
  392 + //输入文本的样式
  393 + inputFormatters: [
  394 + FilteringTextInputFormatter.allow(
  395 + RegExp("[0-9.]")),
  396 + ], // 限制输入为数字,
  397 + style: TextStyle(
  398 + color: MyColours.color_515151,
  399 + fontSize: ScreenUtil().setSp(20),
  400 + ),
  401 + focusNode: moneyNode,
  402 + decoration: InputDecoration(
  403 + isCollapsed: true,
  404 + border: OutlineInputBorder(
  405 + borderSide: BorderSide.none),
  406 + hintText: '请输入数字',
  407 + hintStyle: TextStyle(
  408 + color: MyColours.color_999999,
  409 + fontSize: ScreenUtil().setSp(20),
  410 + ),
  411 + enabledBorder: new UnderlineInputBorder(
  412 + borderSide: BorderSide.none,
  413 + ),
  414 + focusedBorder: new UnderlineInputBorder(
  415 + borderSide: BorderSide.none,
  416 + ),
  417 + ),
  418 + onChanged: (value) {},
  419 + onEditingComplete: () {
  420 + FocusScope.of(context)
  421 + .requestFocus(FocusNode()); //点击空白处隐藏键盘
  422 + },
  423 + keyboardType: TextInputType.numberWithOptions()),
  424 + ),
  425 + HEmptyView(10),
  426 + Text(
  427 + '元',
  428 + style: TextStyle(
  429 + color: MyColours.color_515151,
  430 + fontSize: font(14)),
  431 + ),
  432 + ],
  433 + ),
  434 + ),
  435 + ),
  436 + InkWell(
  437 + onTap: () {},
  438 + child: Container(
  439 + height: w(40),
  440 + margin: EdgeInsets.only(left: w(40)),
  441 + // padding: EdgeInsets.only(
  442 + // top: w(8),
  443 + // bottom: w(8),
  444 + // ),
  445 + decoration: BoxDecoration(
  446 + border: Border(
  447 + bottom: BorderSide(
  448 + color: MyColours.color_E7E7E7, width: w(0.5)))),
  449 + child: Row(
  450 + crossAxisAlignment: CrossAxisAlignment.center,
  451 + mainAxisAlignment: MainAxisAlignment.start,
  452 + children: [
  453 + Image.asset(
  454 + Utils.getImgPath(
  455 + true ? 'radio_back' : 'radio_back_un'),
  456 + width: ScreenUtil().setWidth(18),
  457 + ),
  458 + HEmptyView(4),
  459 + Container(
  460 + // height: ScreenUtil().setWidth(40),
  461 + // color: Colors.red,
  462 + child: Text(
  463 + '赠送优惠券',
  464 + style: TextStyle(
  465 + color: MyColours.color_515151,
  466 + fontSize: ScreenUtil().setSp(28)),
  467 + ),
  468 + ),
  469 + HEmptyView(4),
  470 + Spacer(),
  471 + Row(children: [
  472 + Expanded(
  473 + child: Container(
  474 + height: ScreenUtil().setWidth(70),
  475 + // width: ScreenUtil().setWidth(130),
  476 + decoration: BoxDecoration(
  477 + borderRadius: BorderRadius.circular(
  478 + ScreenUtil().setWidth(10)),
  479 + color: MyColours.color_DBDBDB),
  480 + child: _buttonChoose(
  481 + customerMakingProvider.youhui!, (value) {
  482 + FocusScope.of(context)
  483 + .requestFocus(FocusNode()); //隐藏键盘
  484 + if (couponList == null ||
  485 + couponList.length == 0) {
  486 + Utils.showToast('暂无优惠券,请创建新优惠');
  487 + return;
  488 + }
  489 + DialogUtil.showSelectCusmanDialog(
  490 + context, couponList, (value) async {
  491 + if (value != null) {
  492 + if (customerProvider
  493 + .couponListSelect![value.first]
  494 + .urllink ==
  495 + null) {
  496 + //创建链接
  497 + //创建券的二维码
  498 + Map<String, String?> param = {
  499 + "sid": Provider.of<UserModel>(
  500 + context,
  501 + listen: false)
  502 + .user!
  503 + .sellerid,
  504 + "id": customerProvider
  505 + .couponListSelect![value.first]
  506 + .id,
  507 + };
  508 + dynamic object =
  509 + await customerProvider
  510 + .createActivityUrlLink(
  511 + context, param);
  512 + if (object is bool ||
  513 + object == null) {
  514 + //
  515 + } else {
  516 + //成功
  517 +
  518 + setState(() {
  519 + customerMakingProvider
  520 + .couponSelectIndex =
  521 + value.first;
  522 + customerMakingProvider.youhui =
  523 + couponList[
  524 + customerMakingProvider
  525 + .couponSelectIndex!];
  526 + });
  527 + _insertUrllink(object);
  528 + }
  529 + } else {
  530 + // 直接使用
  531 + setState(() {
  532 + customerMakingProvider
  533 + .couponSelectIndex =
  534 + value.first;
  535 + customerMakingProvider.youhui =
  536 + couponList[
  537 + customerMakingProvider
  538 + .couponSelectIndex!];
  539 + });
  540 +
  541 + _insertUrllink(customerProvider
  542 + .couponListSelect![value.first]
  543 + .urllink);
  544 + }
  545 + }
  546 + },
  547 + selecteds: customerMakingProvider
  548 + .couponSelectIndex ==
  549 + null
  550 + ? []
  551 + : [
  552 + customerMakingProvider
  553 + .couponSelectIndex!
  554 + ])
  555 + .then((value) {});
  556 + }))),
  557 + HEmptyView(40),
  558 + InkWell(
  559 + onTap: () async {
  560 + // NavigatorUtil.goMarketingRecordsDetailPage(context);
  561 + // bool? needRefresh =
  562 + // await NavigatorUtil.goCouponEditPage(context) ;
  563 + // print(needRefresh);
  564 + // if (needRefresh != null && needRefresh) {
  565 + // //刷新页面数据
  566 + // // _controller.callRefresh();
  567 + // _couponNetworkData();
  568 + // }
  569 + bool? needRefresh = await NavigatorUtil
  570 + .goCouponCreateSelectTypePage(
  571 + context,
  572 + );
  573 + if (needRefresh != null && needRefresh) {
  574 + //刷新页面数据
  575 + // _controller.callRefresh();
  576 + _couponNetworkData();
  577 + } else {
  578 + Utils.showToast('您没有相关权限!');
  579 + }
  580 + },
  581 + child: Text('创建新优惠',
  582 + style: TextStyle(
  583 + decoration: TextDecoration.underline,
  584 + color: MyColours.color_438E93,
  585 + fontWeight: FontWeight.bold,
  586 + fontSize: ScreenUtil().setSp(28)))),
  587 + ]),
  588 + ],
  589 + ),
  590 + ),
  591 + ),
  592 + _contentWidget(('输入营销短信内容'))
  593 + ],
  594 + ),
  595 + ))
  596 + ],
  597 + ),
  598 + );
  599 + }
  600 +}
@@ -375,7 +375,10 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> { @@ -375,7 +375,10 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
375 color: MyColours.color_E7E7E7)), 375 color: MyColours.color_E7E7E7)),
376 VEmptyView(24), 376 VEmptyView(24),
377 InkWell( 377 InkWell(
378 - onTap: () {}, 378 + onTap: () {
  379 + //
  380 + NavigatorUtil.goAwakeningMarketingPage(context);
  381 + },
379 child: Padding( 382 child: Padding(
380 padding: EdgeInsets.only( 383 padding: EdgeInsets.only(
381 left: w(16), 384 left: w(16),
@@ -619,7 +619,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver { @@ -619,7 +619,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
619 ), 619 ),
620 child: Text( 620 child: Text(
621 '${model.user!.nickName} ${model.user!.role_name} >', 621 '${model.user!.nickName} ${model.user!.role_name} >',
622 - maxLines: 1, 622 + maxLines: 2,
623 overflow: TextOverflow.ellipsis, 623 overflow: TextOverflow.ellipsis,
624 style: TextStyle( 624 style: TextStyle(
625 letterSpacing: 0.2, 625 letterSpacing: 0.2,
@@ -640,8 +640,9 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver { @@ -640,8 +640,9 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
640 ], 640 ],
641 )), 641 )),
642 HEmptyView(22), 642 HEmptyView(22),
643 - Spacer(),  
644 - Column( 643 + // Spacer(),
  644 + Expanded(
  645 + child: Column(
645 crossAxisAlignment: CrossAxisAlignment.end, 646 crossAxisAlignment: CrossAxisAlignment.end,
646 mainAxisAlignment: MainAxisAlignment.center, 647 mainAxisAlignment: MainAxisAlignment.center,
647 children: [ 648 children: [
@@ -665,6 +666,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver { @@ -665,6 +666,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
665 // json.encode(user.toJson())); 666 // json.encode(user.toJson()));
666 // print(userModel.user); 667 // print(userModel.user);
667 setState(() {}); 668 setState(() {});
  669 + } else {
  670 + Utils.showToast('您还没有操作权限,请联系管理员!');
668 } 671 }
669 }, 672 },
670 child: Container( 673 child: Container(
@@ -672,7 +675,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver { @@ -672,7 +675,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
672 EdgeInsets.only(bottom: w(6)), 675 EdgeInsets.only(bottom: w(6)),
673 child: Text( 676 child: Text(
674 '${model.user!.sellername} >', 677 '${model.user!.sellername} >',
675 - maxLines: 1, 678 + maxLines: 2,
  679 + textAlign: TextAlign.end,
676 overflow: TextOverflow.ellipsis, 680 overflow: TextOverflow.ellipsis,
677 style: TextStyle( 681 style: TextStyle(
678 letterSpacing: 0.2, 682 letterSpacing: 0.2,
@@ -723,7 +727,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver { @@ -723,7 +727,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
723 }, 727 },
724 ), 728 ),
725 ], 729 ],
726 - ) 730 + ))
727 ])), 731 ])),
728 ), 732 ),
729 Positioned( 733 Positioned(
@@ -411,8 +411,11 @@ class MenuManageProvider extends ChangeNotifier { @@ -411,8 +411,11 @@ class MenuManageProvider extends ChangeNotifier {
411 .cast<CookbookCategorySunModel>(); 411 .cast<CookbookCategorySunModel>();
412 categorySunModel! 412 categorySunModel!
413 .removeWhere((element) => element.classType == '1'); 413 .removeWhere((element) => element.classType == '1');
414 -  
415 - pageStateCategory = PageState.Success; 414 + if (categorySunModel!.length == 0) {
  415 + pageStateCategory = PageState.Empty;
  416 + } else {
  417 + pageStateCategory = PageState.Success;
  418 + }
416 } 419 }
417 } else { 420 } else {
418 pageStateCategory = PageState.Empty; 421 pageStateCategory = PageState.Empty;
@@ -2653,4 +2653,22 @@ class NavigatorUtil { @@ -2653,4 +2653,22 @@ class NavigatorUtil {
2653 return _navigateTo(context, "${Routes.integral_details_page}", 2653 return _navigateTo(context, "${Routes.integral_details_page}",
2654 replace: replace); 2654 replace: replace);
2655 } 2655 }
  2656 +
  2657 + //沉睡/流失客户唤醒营销
  2658 + static Future<dynamic> goAwakeningMarketingPage(
  2659 + BuildContext context, {
  2660 + replace = false,
  2661 + }) {
  2662 + return _navigateTo(context, "${Routes.awakening_marketing_page}",
  2663 + replace: replace);
  2664 + }
  2665 +
  2666 + //沉睡/流失发放优惠设置
  2667 + static Future<dynamic> goAwakeningSendSettingPage(
  2668 + BuildContext context, {
  2669 + replace = false,
  2670 + }) {
  2671 + return _navigateTo(context, "${Routes.awakening_send_setting_page}",
  2672 + replace: replace);
  2673 + }
2656 } 2674 }
@@ -104,6 +104,8 @@ import 'package:one_key/pages/my/feast_manage/feast_setmeal_manage_page.dart'; @@ -104,6 +104,8 @@ import 'package:one_key/pages/my/feast_manage/feast_setmeal_manage_page.dart';
104 import 'package:one_key/pages/my/finance_manage/deposit_record_detail_page.dart'; 104 import 'package:one_key/pages/my/finance_manage/deposit_record_detail_page.dart';
105 import 'package:one_key/pages/my/finance_manage/record_home_classify_home_page.dart'; 105 import 'package:one_key/pages/my/finance_manage/record_home_classify_home_page.dart';
106 import 'package:one_key/pages/my/finance_manage/vip_record_detail_page.dart'; 106 import 'package:one_key/pages/my/finance_manage/vip_record_detail_page.dart';
  107 +import 'package:one_key/pages/my/marketing_center/awakening_marketing_page.dart';
  108 +import 'package:one_key/pages/my/marketing_center/awakening_send_setting_page.dart';
107 import 'package:one_key/pages/my/marketing_center/book_notification/marking_interaction_page.dart'; 109 import 'package:one_key/pages/my/marketing_center/book_notification/marking_interaction_page.dart';
108 import 'package:one_key/pages/my/marketing_center/recharge/recharge_edit_page.dart'; 110 import 'package:one_key/pages/my/marketing_center/recharge/recharge_edit_page.dart';
109 import 'package:one_key/pages/my/marketing_center/recharge/recharge_type_select_page.dart'; 111 import 'package:one_key/pages/my/marketing_center/recharge/recharge_type_select_page.dart';
@@ -161,6 +163,7 @@ import 'package:one_key/provider/choose_table_model.dart'; @@ -161,6 +163,7 @@ import 'package:one_key/provider/choose_table_model.dart';
161 import 'package:one_key/provider/contant_show_model.dart'; 163 import 'package:one_key/provider/contant_show_model.dart';
162 import 'package:one_key/provider/coupon_provider.dart'; 164 import 'package:one_key/provider/coupon_provider.dart';
163 import 'package:one_key/provider/create_store_model.dart'; 165 import 'package:one_key/provider/create_store_model.dart';
  166 +import 'package:one_key/provider/customer_making_provider.dart';
164 import 'package:one_key/provider/customer_provider.dart'; 167 import 'package:one_key/provider/customer_provider.dart';
165 import 'package:one_key/provider/menu_provider.dart'; 168 import 'package:one_key/provider/menu_provider.dart';
166 import 'package:one_key/provider/my_model.dart'; 169 import 'package:one_key/provider/my_model.dart';
@@ -4547,6 +4550,22 @@ var integralDetailsPageHandle = new Handler( @@ -4547,6 +4550,22 @@ var integralDetailsPageHandle = new Handler(
4547 create: (_) => CustomerProvider(), child: IntegralDetailsPage()); 4550 create: (_) => CustomerProvider(), child: IntegralDetailsPage());
4548 }); 4551 });
4549 4552
  4553 +var awakeningMarketingPageHandle = new Handler(
  4554 + handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
  4555 + return ChangeNotifierProvider<MarketingCenterProvider>(
  4556 + create: (_) => MarketingCenterProvider(),
  4557 + child: AwakeningMarketingPage());
  4558 +});
  4559 +
  4560 +var awakeningSendSettingPageHandle = new Handler(
  4561 + handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
  4562 + return ChangeNotifierProvider<CustomerMakingProvider>(
  4563 + create: (_) => CustomerMakingProvider(),
  4564 + child: ChangeNotifierProvider<CustomerProvider>(
  4565 + create: (_) => CustomerProvider(),
  4566 + child: AwakeningSendSettingPage()));
  4567 +});
  4568 +
4550 var customLabelPageHandle = new Handler( 4569 var customLabelPageHandle = new Handler(
4551 handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) { 4570 handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
4552 return ChangeNotifierProvider<CustomerProvider>( 4571 return ChangeNotifierProvider<CustomerProvider>(
@@ -475,6 +475,12 @@ class Routes { @@ -475,6 +475,12 @@ class Routes {
475 475
476 static String integral_details_page = "/integral_details_page"; // 积分明细页面 476 static String integral_details_page = "/integral_details_page"; // 积分明细页面
477 477
  478 + static String awakening_marketing_page =
  479 + "/awakening_marketing_page"; // 沉睡/流失客户唤醒营销
  480 +
  481 + static String awakening_send_setting_page =
  482 + "/awakening_send_setting_page"; // 沉睡/流失发放优惠设置
  483 +
478 static void configureRoutes(FluroRouter router) { 484 static void configureRoutes(FluroRouter router) {
479 router.notFoundHandler = new Handler( 485 router.notFoundHandler = new Handler(
480 handlerFunc: (BuildContext? context, Map<String, List<String>> params) { 486 handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
@@ -904,5 +910,10 @@ class Routes { @@ -904,5 +910,10 @@ class Routes {
904 router.define(consumer_details_page, handler: consumerDetailsPageHandle); 910 router.define(consumer_details_page, handler: consumerDetailsPageHandle);
905 911
906 router.define(integral_details_page, handler: integralDetailsPageHandle); 912 router.define(integral_details_page, handler: integralDetailsPageHandle);
  913 +
  914 + router.define(awakening_marketing_page,
  915 + handler: awakeningMarketingPageHandle);
  916 + router.define(awakening_send_setting_page,
  917 + handler: awakeningSendSettingPageHandle);
907 } 918 }
908 } 919 }