Commit 06c09d4fa3112b834596a11c3c78d667c51e761e

Authored by wdn127929
1 parent 16e390c4

预订安排定制 ok

1 -import 'package:flutter/material.dart';  
2 import 'dart:convert' as convert; 1 import 'dart:convert' as convert;
3 2
4 -import 'package:one_key/models/set_xuan_tai_model.dart';  
5 -  
6 class MarkDataModel extends Object { 3 class MarkDataModel extends Object {
7 String id; 4 String id;
8 5
@@ -197,7 +194,7 @@ class MarkStoreModel { @@ -197,7 +194,7 @@ class MarkStoreModel {
197 String style; // 194 String style; //
198 String sellerName; // 195 String sellerName; //
199 String introduce; 196 String introduce;
200 - List<Images> images; 197 + List<String> images;
201 198
202 MarkStoreModel({ 199 MarkStoreModel({
203 this.style, 200 this.style,
@@ -212,14 +209,14 @@ class MarkStoreModel { @@ -212,14 +209,14 @@ class MarkStoreModel {
212 introduce = json['introduce']; 209 introduce = json['introduce'];
213 210
214 if (json['images'] != null) { 211 if (json['images'] != null) {
215 - images = <Images>[]; 212 + images = <String>[];
216 if (json['images'] is List) { 213 if (json['images'] is List) {
217 json['images'].forEach((v) { 214 json['images'].forEach((v) {
218 - images.add(new Images.fromJson(v)); 215 + images.add(v);
219 }); 216 });
220 } else { 217 } else {
221 convert.jsonDecode(json['images']).forEach((v) { 218 convert.jsonDecode(json['images']).forEach((v) {
222 - images.add(new Images.fromJson(v)); 219 + images.add(v);
223 }); 220 });
224 } 221 }
225 } 222 }
@@ -272,7 +269,7 @@ class MarkChefModel { @@ -272,7 +269,7 @@ class MarkChefModel {
272 class MarkSignboardModel { 269 class MarkSignboardModel {
273 String swich; // 270 String swich; //
274 271
275 - List<Images> images; 272 + List<String> images;
276 273
277 MarkSignboardModel({ 274 MarkSignboardModel({
278 this.swich, 275 this.swich,
@@ -282,14 +279,14 @@ class MarkSignboardModel { @@ -282,14 +279,14 @@ class MarkSignboardModel {
282 MarkSignboardModel.fromJson(Map<String, dynamic> json) { 279 MarkSignboardModel.fromJson(Map<String, dynamic> json) {
283 swich = json['swich']; 280 swich = json['swich'];
284 if (json['images'] != null) { 281 if (json['images'] != null) {
285 - images = <Images>[]; 282 + images = <String>[];
286 if (json['images'] is List) { 283 if (json['images'] is List) {
287 json['images'].forEach((v) { 284 json['images'].forEach((v) {
288 - images.add(new Images.fromJson(v)); 285 + images.add(v);
289 }); 286 });
290 } else { 287 } else {
291 convert.jsonDecode(json['images']).forEach((v) { 288 convert.jsonDecode(json['images']).forEach((v) {
292 - images.add(new Images.fromJson(v)); 289 + images.add(v);
293 }); 290 });
294 } 291 }
295 } 292 }
@@ -10,6 +10,7 @@ import 'package:one_key/widgets/v_empty_view.dart'; @@ -10,6 +10,7 @@ import 'package:one_key/widgets/v_empty_view.dart';
10 import 'package:provider/provider.dart'; 10 import 'package:provider/provider.dart';
11 11
12 import '../../../../models/get_seller_info_model.dart'; 12 import '../../../../models/get_seller_info_model.dart';
  13 +import '../../../../models/mark_data_model.dart';
13 import '../../../../provider/base_info_provider.dart'; 14 import '../../../../provider/base_info_provider.dart';
14 import '../../../../provider/marketing_center_provider.dart'; 15 import '../../../../provider/marketing_center_provider.dart';
15 import '../../../../provider/store_base_info_provider.dart'; 16 import '../../../../provider/store_base_info_provider.dart';
@@ -65,9 +66,29 @@ class _BookInfoPageState extends State<BookInfoPage> { @@ -65,9 +66,29 @@ class _BookInfoPageState extends State<BookInfoPage> {
65 await marketingCenterProvider.getTableList(context); 66 await marketingCenterProvider.getTableList(context);
66 await _getStoreBaseinfo(); 67 await _getStoreBaseinfo();
67 await _getCustomerActivityBaseinfo(); 68 await _getCustomerActivityBaseinfo();
  69 +
  70 + await getSellerTemplateConf();
68 }); 71 });
69 } 72 }
70 73
  74 + getSellerTemplateConf() async {
  75 + bool success = await marketingCenterProvider.getSellerTemplateConf(context);
  76 + if (success && marketingCenterProvider.markDataModel.reserve != null) {
  77 + addManager =
  78 + marketingCenterProvider.markDataModel.reserve.swichManager == '1'
  79 + ? true
  80 + : false;
  81 + addParking =
  82 + marketingCenterProvider.markDataModel.reserve.swichPark == '1'
  83 + ? true
  84 + : false;
  85 + parkingIncoC.text =
  86 + marketingCenterProvider.markDataModel.reserve.parkInfo;
  87 +
  88 + setState(() {});
  89 + }
  90 + }
  91 +
71 _getCustomerActivityBaseinfo() async { 92 _getCustomerActivityBaseinfo() async {
72 Map<String, String> params = { 93 Map<String, String> params = {
73 'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid, 94 'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid,
@@ -59,6 +59,7 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> { @@ -59,6 +59,7 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> {
59 UserModel userModel = Provider.of<UserModel>(context, listen: false); 59 UserModel userModel = Provider.of<UserModel>(context, listen: false);
60 sellername = userModel.user.sellername; 60 sellername = userModel.user.sellername;
61 setState(() {}); 61 setState(() {});
  62 + await getSellerTemplateConf();
62 }); 63 });
63 } 64 }
64 65
@@ -68,6 +69,28 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> { @@ -68,6 +69,28 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> {
68 super.dispose(); 69 super.dispose();
69 } 70 }
70 71
  72 + getSellerTemplateConf() async {
  73 + bool success =
  74 + await _marketingCenterProvider.getSellerTemplateConf(context);
  75 + if (success && _marketingCenterProvider.markDataModel.chef != null) {
  76 + currIndex = int.parse(_marketingCenterProvider.markDataModel.chef.style);
  77 +
  78 + _uploadImageProvider.firstImage.qiniuUrl =
  79 + _marketingCenterProvider.markDataModel.chef.image ?? null;
  80 +
  81 + _uploadImageProvider.firstImage.process =
  82 + _uploadImageProvider.firstImage.qiniuUrl != null &&
  83 + _uploadImageProvider.firstImage.qiniuUrl != ''
  84 + ? 1
  85 + : null;
  86 +
  87 + chefNameC.text = _marketingCenterProvider.markDataModel.chef.chefName;
  88 + chefIntroduceC.text =
  89 + _marketingCenterProvider.markDataModel.chef.introduce;
  90 + setState(() {});
  91 + }
  92 + }
  93 +
71 ///#相机拍照,单图选择 94 ///#相机拍照,单图选择
72 Future _getFromPictureOrCamera(UploadImgModel imgModel, imageSource) async { 95 Future _getFromPictureOrCamera(UploadImgModel imgModel, imageSource) async {
73 final pickedFile = await picker.getImage(source: imageSource); 96 final pickedFile = await picker.getImage(source: imageSource);
@@ -566,7 +589,12 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> { @@ -566,7 +589,12 @@ class _ChefIntroducePageState extends State<ChefIntroducePage> {
566 ///图文合并 589 ///图文合并
567 Widget _mergingWidget() { 590 Widget _mergingWidget() {
568 Color themColor = MyColours.color_0C0F0E; 591 Color themColor = MyColours.color_0C0F0E;
569 - int colorValue = App.sp.get("themeColor"); 592 + int colorValue = null;
  593 + if (_marketingCenterProvider.markDataModel.home != null &&
  594 + _marketingCenterProvider.markDataModel.home.themeColor != null) {
  595 + colorValue =
  596 + int.parse(_marketingCenterProvider.markDataModel.home.themeColor);
  597 + }
570 if (colorValue != null) { 598 if (colorValue != null) {
571 themColor = Color(colorValue); 599 themColor = Color(colorValue);
572 } 600 }
@@ -35,6 +35,14 @@ class _DishShowPageState extends State<DishShowPage> { @@ -35,6 +35,14 @@ class _DishShowPageState extends State<DishShowPage> {
35 35
36 UploadImageProvider _uploadImageProvider; 36 UploadImageProvider _uploadImageProvider;
37 ScrollController controller = ScrollController(); 37 ScrollController controller = ScrollController();
  38 + @override
  39 + void initState() {
  40 + super.initState();
  41 +
  42 + WidgetsBinding.instance.addPostFrameCallback((_) {
  43 + getSellerTemplateConf();
  44 + });
  45 + }
38 46
39 @override 47 @override
40 void dispose() { 48 void dispose() {
@@ -45,6 +53,48 @@ class _DishShowPageState extends State<DishShowPage> { @@ -45,6 +53,48 @@ class _DishShowPageState extends State<DishShowPage> {
45 super.dispose(); 53 super.dispose();
46 } 54 }
47 55
  56 + getSellerTemplateConf() async {
  57 + bool success = await marketingCenterProvider.getSellerTemplateConf(context);
  58 + if (success && marketingCenterProvider.markDataModel.signboard != null) {
  59 + addDish = marketingCenterProvider.markDataModel.signboard.swich == '1'
  60 + ? true
  61 + : false;
  62 +
  63 + _uploadImageProvider.storeImage1.qiniuUrl =
  64 + marketingCenterProvider.markDataModel.signboard.images.length > 0
  65 + ? marketingCenterProvider.markDataModel.signboard.images[0]
  66 + : null;
  67 +
  68 + _uploadImageProvider.storeImage1.process =
  69 + _uploadImageProvider.storeImage1.qiniuUrl != null &&
  70 + _uploadImageProvider.storeImage1.qiniuUrl != ''
  71 + ? 1
  72 + : null;
  73 +
  74 + _uploadImageProvider.storeImage2.qiniuUrl =
  75 + marketingCenterProvider.markDataModel.signboard.images.length > 1
  76 + ? marketingCenterProvider.markDataModel.signboard.images[1]
  77 + : null;
  78 + _uploadImageProvider.storeImage2.process =
  79 + _uploadImageProvider.storeImage2.qiniuUrl != null &&
  80 + _uploadImageProvider.storeImage2.qiniuUrl != ''
  81 + ? 1
  82 + : null;
  83 + _uploadImageProvider.storeImage3.qiniuUrl =
  84 + marketingCenterProvider.markDataModel.signboard.images.length > 2
  85 + ? marketingCenterProvider.markDataModel.signboard.images[2]
  86 + : null;
  87 +
  88 + _uploadImageProvider.storeImage3.process =
  89 + _uploadImageProvider.storeImage3.qiniuUrl != null &&
  90 + _uploadImageProvider.storeImage3.qiniuUrl != ''
  91 + ? 1
  92 + : null;
  93 +
  94 + setState(() {});
  95 + }
  96 + }
  97 +
48 Widget _item(String title, {bool select, GestureTapCallback onTap}) { 98 Widget _item(String title, {bool select, GestureTapCallback onTap}) {
49 return InkWell( 99 return InkWell(
50 onTap: onTap, 100 onTap: onTap,
@@ -140,9 +190,16 @@ class _DishShowPageState extends State<DishShowPage> { @@ -140,9 +190,16 @@ class _DishShowPageState extends State<DishShowPage> {
140 Provider.of<MarketingCenterProvider>(context, listen: true); 190 Provider.of<MarketingCenterProvider>(context, listen: true);
141 _uploadImageProvider = 191 _uploadImageProvider =
142 Provider.of<UploadImageProvider>(context, listen: true); 192 Provider.of<UploadImageProvider>(context, listen: true);
143 - int colorValue = App.sp.get("themeColor"); 193 +
144 Color themColor = MyColours.color_0C0F0E; 194 Color themColor = MyColours.color_0C0F0E;
145 195
  196 + int colorValue = null;
  197 + if (marketingCenterProvider.markDataModel != null &&
  198 + marketingCenterProvider.markDataModel.home != null &&
  199 + marketingCenterProvider.markDataModel.home.themeColor != null) {
  200 + colorValue =
  201 + int.parse(marketingCenterProvider.markDataModel.home.themeColor);
  202 + }
146 if (colorValue != null) { 203 if (colorValue != null) {
147 themColor = Color(colorValue); 204 themColor = Color(colorValue);
148 } 205 }
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; @@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
5 import 'package:flutter_screenutil/flutter_screenutil.dart'; 5 import 'package:flutter_screenutil/flutter_screenutil.dart';
6 import 'package:image_picker/image_picker.dart'; 6 import 'package:image_picker/image_picker.dart';
7 import 'package:one_key/provider/marketing_center_provider.dart'; 7 import 'package:one_key/provider/marketing_center_provider.dart';
  8 +import 'package:one_key/route/route_handles.dart';
8 import 'package:one_key/utils/dialog_util.dart'; 9 import 'package:one_key/utils/dialog_util.dart';
9 import 'package:one_key/utils/utils.dart'; 10 import 'package:one_key/utils/utils.dart';
10 import 'package:one_key/widgets/system_app_bar.dart'; 11 import 'package:one_key/widgets/system_app_bar.dart';
@@ -56,6 +57,9 @@ class _FirstImagePageState extends State<FirstImagePage> { @@ -56,6 +57,9 @@ class _FirstImagePageState extends State<FirstImagePage> {
56 super.initState(); 57 super.initState();
57 58
58 _initThemeColor(); 59 _initThemeColor();
  60 + WidgetsBinding.instance.addPostFrameCallback((_) {
  61 + getSellerTemplateConf();
  62 + });
59 } 63 }
60 64
61 @override 65 @override
@@ -64,12 +68,12 @@ class _FirstImagePageState extends State<FirstImagePage> { @@ -64,12 +68,12 @@ class _FirstImagePageState extends State<FirstImagePage> {
64 super.dispose(); 68 super.dispose();
65 } 69 }
66 70
67 - ///初始化主题颜色  
68 - _initThemeColor() {  
69 - int colorValue = App.sp.get("themeColor");  
70 -  
71 - if (colorValue != null) {  
72 - //缓存里有设置好的主题色 71 + getSellerTemplateConf() async {
  72 + bool success =
  73 + await _marketingCenterProvider.getSellerTemplateConf(context);
  74 + if (success && _marketingCenterProvider.markDataModel.home != null) {
  75 + int colorValue =
  76 + int.parse(_marketingCenterProvider.markDataModel.home.themeColor);
73 if (colorValue == MyColours.color_0C0F0E.value) { 77 if (colorValue == MyColours.color_0C0F0E.value) {
74 themeColorIndex = 0; 78 themeColorIndex = 0;
75 } else if (colorValue == MyColours.color_0143A3.value) { 79 } else if (colorValue == MyColours.color_0143A3.value) {
@@ -77,7 +81,34 @@ class _FirstImagePageState extends State<FirstImagePage> { @@ -77,7 +81,34 @@ class _FirstImagePageState extends State<FirstImagePage> {
77 } else if (colorValue == MyColours.color_438E93.value) { 81 } else if (colorValue == MyColours.color_438E93.value) {
78 themeColorIndex = 2; 82 themeColorIndex = 2;
79 } 83 }
  84 +
  85 + titleC.text = _marketingCenterProvider.markDataModel.home.title;
  86 + sloganC.text = _marketingCenterProvider.markDataModel.home.slogan;
  87 + _uploadImageProvider.firstImage.qiniuUrl =
  88 + _marketingCenterProvider.markDataModel.home.image ?? null;
  89 + _uploadImageProvider.firstImage.process =
  90 + _marketingCenterProvider.markDataModel.home.image != null &&
  91 + _marketingCenterProvider.markDataModel.home.image != ''
  92 + ? 1
  93 + : null;
  94 + setState(() {});
80 } 95 }
  96 + }
  97 +
  98 + ///初始化主题颜色
  99 + _initThemeColor() {
  100 + // int colorValue = App.sp.get("themeColor");
  101 +
  102 + // if (colorValue != null) {
  103 + // //缓存里有设置好的主题色
  104 + // if (colorValue == MyColours.color_0C0F0E.value) {
  105 + // themeColorIndex = 0;
  106 + // } else if (colorValue == MyColours.color_0143A3.value) {
  107 + // themeColorIndex = 1;
  108 + // } else if (colorValue == MyColours.color_438E93.value) {
  109 + // themeColorIndex = 2;
  110 + // }
  111 + // }
81 ThemeColorModel colorModel = ThemeColorModel(); 112 ThemeColorModel colorModel = ThemeColorModel();
82 colorModel.name = '睿智黑'; 113 colorModel.name = '睿智黑';
83 colorModel.color = MyColours.color_0C0F0E; 114 colorModel.color = MyColours.color_0C0F0E;
@@ -724,8 +755,14 @@ class _FirstImagePageState extends State<FirstImagePage> { @@ -724,8 +755,14 @@ class _FirstImagePageState extends State<FirstImagePage> {
724 return false; 755 return false;
725 } 756 }
726 757
727 - App.sp.setInt(  
728 - "themeColor", themeColorData[themeColorIndex].color.value); 758 + if (_uploadImageProvider.firstImage.process < 1 &&
  759 + _uploadImageProvider.firstImage.process > 0) {
  760 + Utils.showToast('正在上传餐厅照片!,请稍等');
  761 + return false;
  762 + }
  763 +
  764 + // App.sp.setInt(
  765 + // "themeColor", themeColorData[themeColorIndex].color.value);
729 //接口 766 //接口
730 Map homeData = { 767 Map homeData = {
731 'theme_color': 768 'theme_color':
@@ -51,8 +51,9 @@ class _MarkingInteractionPageState extends State<MarkingInteractionPage> { @@ -51,8 +51,9 @@ class _MarkingInteractionPageState extends State<MarkingInteractionPage> {
51 @override 51 @override
52 void initState() { 52 void initState() {
53 super.initState(); 53 super.initState();
54 - WidgetsBinding.instance.addPostFrameCallback((_) { 54 + WidgetsBinding.instance.addPostFrameCallback((_) async {
55 // _couponNetworkData(); 55 // _couponNetworkData();
  56 + await getSellerTemplateConf();
56 }); 57 });
57 } 58 }
58 59
@@ -62,6 +63,44 @@ class _MarkingInteractionPageState extends State<MarkingInteractionPage> { @@ -62,6 +63,44 @@ class _MarkingInteractionPageState extends State<MarkingInteractionPage> {
62 super.dispose(); 63 super.dispose();
63 } 64 }
64 65
  66 + getSellerTemplateConf() async {
  67 + bool success = await marketingCenterProvider.getSellerTemplateConf(context);
  68 + if (success && marketingCenterProvider.markDataModel.marketing != null) {
  69 + is_transpond =
  70 + marketingCenterProvider.markDataModel.marketing.isTranspond == '1'
  71 + ? true
  72 + : false;
  73 +
  74 + is_arrival =
  75 + marketingCenterProvider.markDataModel.marketing.isArrival == '1'
  76 + ? true
  77 + : false;
  78 + is_online_book =
  79 + marketingCenterProvider.markDataModel.marketing.isOnlineBook == '1'
  80 + ? true
  81 + : false;
  82 + is_order = marketingCenterProvider.markDataModel.marketing.isOrder == '1'
  83 + ? true
  84 + : false;
  85 + is_link = marketingCenterProvider.markDataModel.marketing.isLink == '1'
  86 + ? true
  87 + : false;
  88 +
  89 + _uploadImageProvider.firstImage.qiniuUrl =
  90 + marketingCenterProvider.markDataModel.marketing.logo ?? null;
  91 +
  92 + _uploadImageProvider.firstImage.process =
  93 + marketingCenterProvider.markDataModel.marketing.logo != null &&
  94 + marketingCenterProvider.markDataModel.marketing.logo != ''
  95 + ? 1
  96 + : 0;
  97 + welcomeTextC.text =
  98 + marketingCenterProvider.markDataModel.marketing.wecomle;
  99 +
  100 + setState(() {});
  101 + }
  102 + }
  103 +
65 ///获取优惠券列表数据(status == 1) 104 ///获取优惠券列表数据(status == 1)
66 105
67 _couponNetworkData({bool isShowLoading = true}) async { 106 _couponNetworkData({bool isShowLoading = true}) async {
  1 +import 'package:cached_network_image/cached_network_image.dart';
  2 +import 'package:flutter/material.dart';
  3 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  4 +import 'package:one_key/models/mark_data_model.dart';
  5 +import 'package:one_key/widgets/MyDivider.dart';
  6 +import 'package:one_key/widgets/system_app_bar.dart';
  7 +import 'package:provider/provider.dart';
  8 +
  9 +import '../../../../constant/state.dart';
  10 +import '../../../../models/theme_color_model.dart';
  11 +import '../../../../provider/marketing_center_provider.dart';
  12 +import '../../../../provider/upload_img_provider.dart';
  13 +import '../../../../provider/user_model.dart';
  14 +import '../../../../res/colors.dart';
  15 +import '../../../../utils/screen_util.dart';
  16 +import '../../../../utils/utils.dart';
  17 +import '../../../../widgets/h_empty_view.dart';
  18 +import '../../../../widgets/page_exception.dart';
  19 +import '../../../../widgets/round_button.dart';
  20 +import '../../../../widgets/v_empty_view.dart';
  21 +
  22 +/**
  23 + * 预订安排定制预览页
  24 + */
  25 +
  26 +class MarkingPreviewPage extends StatefulWidget {
  27 + MarkingPreviewPage({Key key}) : super(key: key);
  28 +
  29 + @override
  30 + _MarkingPreviewPageState createState() => _MarkingPreviewPageState();
  31 +}
  32 +
  33 +class _MarkingPreviewPageState extends State<MarkingPreviewPage> {
  34 + ScrollController controller = ScrollController();
  35 +
  36 + MarketingCenterProvider _marketingCenterProvider;
  37 +
  38 + List<ThemeColorModel> themeColorData = [];
  39 + int themeColorIndex = 0;
  40 +
  41 + String homeTitle = '';
  42 + String homeSlogan = '';
  43 + String homeImage = '';
  44 +
  45 + UploadImageProvider _uploadImageProvider;
  46 +
  47 + @override
  48 + void initState() {
  49 + super.initState();
  50 +
  51 + _initThemeColor();
  52 + WidgetsBinding.instance.addPostFrameCallback((_) {
  53 + getSellerTemplateConf();
  54 + });
  55 + }
  56 +
  57 + @override
  58 + void dispose() {
  59 + super.dispose();
  60 + }
  61 +
  62 + ///初始化主题颜色
  63 + _initThemeColor() {
  64 + // int colorValue = App.sp.get("themeColor");
  65 +
  66 + // if (colorValue != null) {
  67 + // //缓存里有设置好的主题色
  68 + // if (colorValue == MyColours.color_0C0F0E.value) {
  69 + // themeColorIndex = 0;
  70 + // } else if (colorValue == MyColours.color_0143A3.value) {
  71 + // themeColorIndex = 1;
  72 + // } else if (colorValue == MyColours.color_438E93.value) {
  73 + // themeColorIndex = 2;
  74 + // }
  75 + // }
  76 + ThemeColorModel colorModel = ThemeColorModel();
  77 + colorModel.name = '睿智黑';
  78 + colorModel.color = MyColours.color_0C0F0E;
  79 + colorModel.gradient = LinearGradient(
  80 + stops: [0, 1.24],
  81 + colors: [
  82 + // Color.fromARGB(67, 59, 206, 224),
  83 + // Color.fromRGBO(67, 85, 250, 162),
  84 + MyColours.color_0C0F0E,
  85 + MyColours.color_C76216,
  86 + ],
  87 + // begin: Alignment(0, 0),
  88 + // end: Alignment(2, 2),
  89 + begin: Alignment.bottomCenter,
  90 + end: Alignment.topCenter,
  91 + );
  92 + colorModel.gradientSub = LinearGradient(
  93 + stops: [0, 1.24],
  94 + colors: [
  95 + // Color.fromARGB(67, 59, 206, 224),
  96 + // Color.fromRGBO(67, 85, 250, 162),
  97 + MyColours.color_0C0F0E,
  98 + MyColours.color_EEAE74,
  99 + ],
  100 + begin: Alignment.bottomCenter,
  101 + end: Alignment.topCenter,
  102 + );
  103 + themeColorData.add(colorModel);
  104 +
  105 + ThemeColorModel colorModel1 = ThemeColorModel();
  106 + colorModel1.name = '孔雀蓝';
  107 + colorModel1.color = MyColours.color_0143A3;
  108 + colorModel1.gradient = LinearGradient(
  109 + stops: [0, 1.24],
  110 + colors: [
  111 + // Color.fromARGB(67, 59, 206, 224),
  112 + // Color.fromRGBO(67, 85, 250, 162),
  113 + MyColours.color_0143A3,
  114 + MyColours.color_CFB53B,
  115 + ],
  116 + // begin: Alignment(0, 0),
  117 + // end: Alignment(2, 2),
  118 + begin: Alignment.bottomCenter,
  119 + end: Alignment.topCenter,
  120 + );
  121 + colorModel1.gradientSub = LinearGradient(
  122 + stops: [0, 1.24],
  123 + colors: [
  124 + // Color.fromARGB(67, 59, 206, 224),
  125 + // Color.fromRGBO(67, 85, 250, 162),
  126 + MyColours.color_0143A3,
  127 + MyColours.color_EEAE74,
  128 + ],
  129 + begin: Alignment.bottomCenter,
  130 + end: Alignment.topCenter,
  131 + );
  132 + themeColorData.add(colorModel1);
  133 +
  134 + ThemeColorModel colorModel2 = ThemeColorModel();
  135 + colorModel2.name = '群青绿';
  136 + colorModel2.color = MyColours.color_438E93;
  137 + colorModel2.gradient = LinearGradient(
  138 + stops: [0, 1.24],
  139 + colors: [
  140 + // Color.fromARGB(67, 59, 206, 224),
  141 + // Color.fromRGBO(67, 85, 250, 162),
  142 + MyColours.color_438E93,
  143 + MyColours.color_CFB53B,
  144 + ],
  145 + // begin: Alignment(0, 0),
  146 + // end: Alignment(2, 2),
  147 + begin: Alignment.bottomCenter,
  148 + end: Alignment.topCenter,
  149 + );
  150 + colorModel2.gradientSub = LinearGradient(
  151 + stops: [0, 1.24],
  152 + colors: [
  153 + // Color.fromARGB(67, 59, 206, 224),
  154 + // Color.fromRGBO(67, 85, 250, 162),
  155 + MyColours.color_438E93,
  156 + MyColours.color_EEAE74,
  157 + ],
  158 + begin: Alignment.bottomCenter,
  159 + end: Alignment.topCenter,
  160 + );
  161 + themeColorData.add(colorModel2);
  162 + }
  163 +
  164 + getSellerTemplateConf() async {
  165 + bool success =
  166 + await _marketingCenterProvider.getSellerTemplateConf(context);
  167 + if (success && _marketingCenterProvider.markDataModel != null) {
  168 + if (_marketingCenterProvider.markDataModel.home != null) {
  169 + int colorValue =
  170 + int.parse(_marketingCenterProvider.markDataModel.home.themeColor);
  171 + if (colorValue == MyColours.color_0C0F0E.value) {
  172 + themeColorIndex = 0;
  173 + } else if (colorValue == MyColours.color_0143A3.value) {
  174 + themeColorIndex = 1;
  175 + } else if (colorValue == MyColours.color_438E93.value) {
  176 + themeColorIndex = 2;
  177 + }
  178 +
  179 + homeTitle = _marketingCenterProvider.markDataModel.home.title;
  180 + homeSlogan = _marketingCenterProvider.markDataModel.home.slogan;
  181 + homeImage = _marketingCenterProvider.markDataModel.home.image ?? null;
  182 + }
  183 + if (_marketingCenterProvider.markDataModel.reserve != null) {
  184 + int colorValue =
  185 + int.parse(_marketingCenterProvider.markDataModel.home.themeColor);
  186 + if (colorValue == MyColours.color_0C0F0E.value) {
  187 + themeColorIndex = 0;
  188 + } else if (colorValue == MyColours.color_0143A3.value) {
  189 + themeColorIndex = 1;
  190 + } else if (colorValue == MyColours.color_438E93.value) {
  191 + themeColorIndex = 2;
  192 + }
  193 +
  194 + homeTitle = _marketingCenterProvider.markDataModel.home.title;
  195 + homeSlogan = _marketingCenterProvider.markDataModel.home.slogan;
  196 + homeImage = _marketingCenterProvider.markDataModel.home.image ?? null;
  197 + }
  198 + setState(() {});
  199 + }
  200 + }
  201 +
  202 +//首图形象展示
  203 + Widget _firstImageWidget() {
  204 + ThemeColorModel themeColerModel = themeColorData[themeColorIndex];
  205 + return Column(
  206 + children: [
  207 + Container(
  208 + width: double.infinity,
  209 + height: w(165),
  210 + color: themeColerModel.color,
  211 + child: Column(
  212 + children: [
  213 + Align(
  214 + alignment: Alignment.centerLeft,
  215 + child: Image.asset(
  216 + Utils.getImgPath('olive_${themeColorIndex}'),
  217 + height: w(69),
  218 + ),
  219 + ),
  220 + Container(
  221 + width: double.infinity,
  222 + alignment: Alignment.center,
  223 + height: w(39),
  224 + child: ShaderMask(
  225 + shaderCallback: (rect) {
  226 + return themeColerModel.gradient.createShader(rect);
  227 + },
  228 + child: Text(
  229 + homeTitle,
  230 + style: TextStyle(
  231 + color: Colors.white,
  232 + fontSize: font(36),
  233 + ),
  234 + ),
  235 + // child: Text(
  236 + // homeTitle,
  237 + // // maxLines: 1,
  238 + // // overflow: TextOverflow.ellipsis,
  239 + // style: TextStyle(
  240 + // fontSize: font(36),
  241 + // foreground: Paint()
  242 + // ..shader = themeColerModel.gradient.createShader(
  243 + // Rect.fromLTWH(
  244 + // 0, 0, ScreenUtil().screenWidth, w(39)))),
  245 + // textAlign: TextAlign.center,
  246 + // ),
  247 + ),
  248 + ),
  249 + VEmptyView(12),
  250 + ShaderMask(
  251 + shaderCallback: (rect) {
  252 + return themeColerModel.gradientSub.createShader(rect);
  253 + },
  254 + child: Text(
  255 + homeSlogan,
  256 + style: TextStyle(
  257 + color: Colors.white,
  258 + fontSize: font(20),
  259 + ),
  260 + ),
  261 + ),
  262 + // Container(
  263 + // width: double.infinity,
  264 + // alignment: Alignment.center,
  265 + // height: w(39),
  266 + // child: Text(
  267 + // homeSlogan,
  268 + // maxLines: 2,
  269 + // overflow: TextOverflow.ellipsis,
  270 + // style: TextStyle(
  271 + // fontSize: font(20),
  272 + // foreground: Paint()
  273 + // ..shader = themeColerModel.gradientSub.createShader(
  274 + // Rect.fromLTWH(0, 0, ScreenUtil().screenWidth, 0))),
  275 + // textAlign: TextAlign.center,
  276 + // ),
  277 + // ),
  278 + ],
  279 + ),
  280 + ),
  281 + homeImage != null && homeImage != ''
  282 + ? CachedNetworkImage(
  283 + imageUrl: homeImage,
  284 + fit: BoxFit.cover,
  285 + width: double.infinity,
  286 + // width: ScreenUtil()
  287 + // .setWidth(imgSize * 2),
  288 + height: ScreenUtil()
  289 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  290 + )
  291 + : SizedBox(),
  292 + ],
  293 + );
  294 + }
  295 +
  296 + //预订信息模块
  297 + Widget _bookInfoWidget() {
  298 + MarkReserveModel reserveModel =
  299 + _marketingCenterProvider.markDataModel.reserve;
  300 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
  301 + int.parse(reserveModel.date.toString()) * 1000);
  302 + String date = Utils.returnYMDandLunarCalendar(dateTime, context);
  303 + return Column(
  304 + crossAxisAlignment: CrossAxisAlignment.start,
  305 + children: [
  306 + Container(
  307 + width: double.infinity,
  308 + margin: EdgeInsets.symmetric(horizontal: w(10)),
  309 + padding: EdgeInsets.symmetric(horizontal: w(8)),
  310 + decoration: BoxDecoration(
  311 + border: Border(
  312 + left:
  313 + BorderSide(width: w(2), color: MyColours.color_EEAE74))),
  314 + child: Column(
  315 + crossAxisAlignment: CrossAxisAlignment.start,
  316 + children: [
  317 + Text(
  318 + '尊敬的贵宾,您好!',
  319 + style: TextStyle(
  320 + color: MyColours.color_000000, fontSize: font(14)),
  321 + ),
  322 + VEmptyView(10),
  323 + Text('非常感谢您选择【${reserveModel.sellerName}】!',
  324 + style: TextStyle(
  325 + color: MyColours.color_000000, fontSize: font(14))),
  326 + VEmptyView(30),
  327 + _itemTitleAndSubTtile('日期', '${date}'),
  328 + VEmptyView(10),
  329 + _itemTitleAndSubTtile('餐段', '${reserveModel.dsolt}'),
  330 + VEmptyView(10),
  331 + _itemTitleAndSubTtile('包间', '${reserveModel.room}'),
  332 + VEmptyView(10),
  333 + _itemTitleAndSubTtile('人数', '${reserveModel.pnum}'),
  334 + VEmptyView(10),
  335 + _itemTitleAndSubTtile('地址', '${reserveModel.address}'),
  336 + VEmptyView(10),
  337 + reserveModel.swichPark == '1'
  338 + ? _itemTitleAndSubTtile('停车', '${reserveModel.parkInfo}')
  339 + : SizedBox(),
  340 + reserveModel.swichPark == '1' ? VEmptyView(10) : SizedBox(),
  341 + _itemTitleAndSubTtile('联系', '${reserveModel.sellerPhone}'),
  342 + VEmptyView(20),
  343 + reserveModel.swichManager == '1'
  344 + ? Row(
  345 + children: [
  346 + HEmptyView(72),
  347 + ClipRRect(
  348 + borderRadius: BorderRadius.circular(r(35)),
  349 + child: Image.network(
  350 + reserveModel.managerImage,
  351 + fit: BoxFit.cover,
  352 + width: w(70),
  353 + height: w(70),
  354 + ),
  355 + ),
  356 + Spacer(),
  357 + Column(
  358 + crossAxisAlignment: CrossAxisAlignment.start,
  359 + children: [
  360 + Text(
  361 + '专属服务:${reserveModel.managerName}',
  362 + style: TextStyle(
  363 + color: MyColours.color_999999,
  364 + fontWeight: FontWeight.bold,
  365 + fontSize: font(12)),
  366 + ),
  367 + VEmptyView(16),
  368 + Text(
  369 + '服务电话:${reserveModel.managerPhone}',
  370 + style: TextStyle(
  371 + color: MyColours.color_999999,
  372 + fontWeight: FontWeight.bold,
  373 + fontSize: font(12)),
  374 + ),
  375 + ],
  376 + ),
  377 + HEmptyView(6),
  378 + Column(
  379 + crossAxisAlignment: CrossAxisAlignment.start,
  380 + children: [
  381 + RoundButton(
  382 + width: w(72),
  383 + height: w(22),
  384 + text: '拨打电话',
  385 + gradientStart: MyColours.color_ffffff,
  386 + gradientEnd: MyColours.color_ffffff,
  387 + borderColor: MyColours.color_0143A3,
  388 + textColor: MyColours.color_0143A3,
  389 + radius: r(11),
  390 + fontSize: 24,
  391 + isBold: true,
  392 + onPressed: () {},
  393 + ),
  394 + VEmptyView(16),
  395 + RoundButton(
  396 + width: w(72),
  397 + height: w(22),
  398 + text: '复制微信号',
  399 + gradientStart: MyColours.color_ffffff,
  400 + gradientEnd: MyColours.color_ffffff,
  401 + borderColor: MyColours.color_0143A3,
  402 + textColor: MyColours.color_0143A3,
  403 + radius: r(11),
  404 + fontSize: 24,
  405 + isBold: true,
  406 + onPressed: () {},
  407 + ),
  408 + ],
  409 + )
  410 + ],
  411 + )
  412 + : SizedBox(),
  413 + reserveModel.swichManager == '1' ? VEmptyView(10) : SizedBox(),
  414 + Text('欢迎垂询,恭候光临!',
  415 + style: TextStyle(
  416 + color: MyColours.color_000000, fontSize: font(14))),
  417 + ],
  418 + ),
  419 + ),
  420 + VEmptyView(20),
  421 + Container(
  422 + width: double.infinity,
  423 + margin: EdgeInsets.symmetric(horizontal: w(20)),
  424 + padding: EdgeInsets.symmetric(horizontal: w(15), vertical: w(12)),
  425 + decoration: BoxDecoration(
  426 + color: MyColours.color_d9d9d9,
  427 + borderRadius: BorderRadius.circular(r(5))),
  428 + child: Row(
  429 + children: [
  430 + Image.asset(
  431 + Utils.getImgPath('location_blue'),
  432 + width: w(26),
  433 + ),
  434 + HEmptyView(28),
  435 + Expanded(
  436 + child: Column(
  437 + crossAxisAlignment: CrossAxisAlignment.start,
  438 + children: [
  439 + Text('${reserveModel.sellerName}',
  440 + style: TextStyle(
  441 + color: MyColours.color_000000,
  442 + fontWeight: FontWeight.bold,
  443 + fontSize: font(14))),
  444 + VEmptyView(10),
  445 + Text('${reserveModel.address}',
  446 + style: TextStyle(
  447 + height: 1.3,
  448 + color: MyColours.color_000000,
  449 + fontSize: font(14))),
  450 + ],
  451 + ))
  452 + ],
  453 + ),
  454 + ),
  455 + VEmptyView(20),
  456 + Padding(
  457 + padding: EdgeInsets.only(left: w(21)),
  458 + child: Text(
  459 + '确认赴约客人:0位',
  460 + style: TextStyle(
  461 + color: MyColours.color_515151,
  462 + fontSize: font(18),
  463 + fontWeight: FontWeight.bold),
  464 + )),
  465 + VEmptyView(40),
  466 + Padding(
  467 + padding: EdgeInsets.symmetric(horizontal: w(21)),
  468 + child: MyDivider(
  469 + double.infinity,
  470 + w(0.5),
  471 + color: MyColours.color_DBDBDB,
  472 + )),
  473 + VEmptyView(20),
  474 + ],
  475 + );
  476 + }
  477 +
  478 + _itemTitleAndSubTtile(String title, String subtitle) {
  479 + return Row(
  480 + crossAxisAlignment: CrossAxisAlignment.start,
  481 + children: [
  482 + Text('【${title}】',
  483 + style:
  484 + TextStyle(color: MyColours.color_000000, fontSize: font(14))),
  485 + HEmptyView(10),
  486 + Expanded(
  487 + child: Text('${subtitle}',
  488 + style: TextStyle(
  489 + color: MyColours.color_000000, fontSize: font(14)))),
  490 + ],
  491 + );
  492 + }
  493 +
  494 + ///店铺介绍
  495 + Widget _storeIntroduceWidget(ScrollController controller) {
  496 + int currIndex =
  497 + int.parse(_marketingCenterProvider.markDataModel.store.style);
  498 + return currIndex == 0
  499 + ? _noTextWidget(controller)
  500 + : currIndex == 1
  501 + ? _mergingWidget(controller)
  502 + : _separateWidget(controller);
  503 + }
  504 +
  505 + Widget _introduceWidget(EdgeInsets edgeInsets,
  506 + {double width = double.infinity,
  507 + Color textColor = MyColours.color_515151,
  508 + Color hintColor = MyColours.color_999999,
  509 + BoxDecoration boxDecoration}) {
  510 + return Container(
  511 + width: width,
  512 + alignment: Alignment.centerLeft,
  513 + padding: edgeInsets,
  514 + decoration: boxDecoration,
  515 + child: Column(
  516 + crossAxisAlignment: CrossAxisAlignment.start,
  517 + children: [
  518 + Text(
  519 + 'Introduce',
  520 + style: TextStyle(color: MyColours.color_B39437, fontSize: font(14)),
  521 + ),
  522 + Text(
  523 + '品牌介绍',
  524 + style: TextStyle(color: MyColours.color_B39437, fontSize: font(14)),
  525 + ),
  526 + VEmptyView(16),
  527 + Text(
  528 + '${_marketingCenterProvider.markDataModel.store.sellerName}',
  529 + style: TextStyle(color: textColor, fontSize: font(14)),
  530 + ),
  531 + VEmptyView(32),
  532 + Container(
  533 + width: double.infinity,
  534 + // margin: EdgeInsets.symmetric(horizontal: w(10)),
  535 + // padding: EdgeInsets.symmetric(horizontal: w(6)),
  536 + decoration: BoxDecoration(
  537 + border: Border(
  538 + left: BorderSide(
  539 + width: w(2), color: MyColours.color_EEAE74))),
  540 + child: Container(
  541 + width: double.infinity,
  542 + padding: EdgeInsets.symmetric(
  543 + horizontal: ScreenUtil().setWidth(12),
  544 + ),
  545 + alignment: Alignment.topLeft,
  546 + child: Text(
  547 + _marketingCenterProvider.markDataModel.store.introduce,
  548 + style: TextStyle(
  549 + height: 2,
  550 + color: textColor,
  551 + fontSize: ScreenUtil().setSp(20),
  552 + textBaseline: TextBaseline.alphabetic),
  553 + textAlign: TextAlign.center,
  554 + overflow: TextOverflow.ellipsis,
  555 + maxLines: 7,
  556 + ),
  557 + )),
  558 + ],
  559 + ),
  560 + );
  561 + }
  562 +
  563 + ///无文字
  564 + Widget _noTextWidget(ScrollController controller) {
  565 + List<String> images = _marketingCenterProvider.markDataModel.store.images;
  566 + return ListView.builder(
  567 + shrinkWrap: true,
  568 + controller: controller,
  569 + itemCount: images.length,
  570 + itemBuilder: (context, index) {
  571 + return Container(
  572 + margin: EdgeInsets.only(bottom: w(8)),
  573 + child: CachedNetworkImage(
  574 + imageUrl: images[index],
  575 + fit: BoxFit.cover,
  576 + width: double.infinity,
  577 + // width: ScreenUtil()
  578 + // .setWidth(imgSize * 2),
  579 + height: ScreenUtil()
  580 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  581 + ),
  582 + );
  583 + });
  584 + }
  585 +
  586 + ///图文合并
  587 + Widget _mergingWidget(ScrollController controller) {
  588 + List<String> images = _marketingCenterProvider.markDataModel.store.images;
  589 + return ListView.builder(
  590 + shrinkWrap: true,
  591 + controller: controller,
  592 + itemCount: images.length,
  593 + itemBuilder: (context, index) {
  594 + if (index == 0) {
  595 + return Stack(
  596 + children: [
  597 + Container(
  598 + margin: EdgeInsets.only(bottom: w(8)),
  599 + child: CachedNetworkImage(
  600 + imageUrl: images[index],
  601 + fit: BoxFit.cover,
  602 + width: double.infinity,
  603 + // width: ScreenUtil()
  604 + // .setWidth(imgSize * 2),
  605 + height: ScreenUtil()
  606 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  607 + ),
  608 + ),
  609 + Positioned(
  610 + child: _introduceWidget(
  611 + EdgeInsets.only(
  612 + left: w(15), top: w(23), right: w(7), bottom: w(42)),
  613 + textColor: MyColours.color_ffffff,
  614 + hintColor: MyColours.color_ffffff,
  615 + boxDecoration: BoxDecoration(
  616 + gradient: LinearGradient(
  617 + stops: [0, 1],
  618 + begin: Alignment.topCenter,
  619 + end: Alignment.bottomCenter,
  620 + colors: [
  621 + themeColorData[themeColorIndex].color,
  622 + MyColours.color_4D0C0F0E,
  623 + ],
  624 + ),
  625 + )),
  626 + width: w(160),
  627 + ),
  628 + ],
  629 + );
  630 + }
  631 + return Container(
  632 + margin: EdgeInsets.only(bottom: w(8)),
  633 + child: CachedNetworkImage(
  634 + imageUrl: images[index],
  635 + fit: BoxFit.cover,
  636 + width: double.infinity,
  637 + // width: ScreenUtil()
  638 + // .setWidth(imgSize * 2),
  639 + height: ScreenUtil()
  640 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  641 + ),
  642 + );
  643 + });
  644 + }
  645 +
  646 + ///图文分开
  647 + Widget _separateWidget(ScrollController controller) {
  648 + List<String> images = _marketingCenterProvider.markDataModel.store.images;
  649 + return Column(
  650 + crossAxisAlignment: CrossAxisAlignment.start,
  651 + children: [
  652 + _introduceWidget(EdgeInsets.all(w(15)),
  653 + boxDecoration: BoxDecoration(color: MyColours.color_ffffff)),
  654 + VEmptyView(18),
  655 + ListView.builder(
  656 + shrinkWrap: true,
  657 + controller: controller,
  658 + itemCount: images.length,
  659 + itemBuilder: (context, index) {
  660 + return Container(
  661 + margin: EdgeInsets.only(bottom: w(8)),
  662 + child: CachedNetworkImage(
  663 + imageUrl: images[index],
  664 + fit: BoxFit.cover,
  665 + width: double.infinity,
  666 + // width: ScreenUtil()
  667 + // .setWidth(imgSize * 2),
  668 + height: ScreenUtil()
  669 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  670 + ),
  671 + );
  672 + })
  673 + ],
  674 + );
  675 + }
  676 +
  677 + ///厨师
  678 + Widget _chefWidget() {
  679 + int currIndex =
  680 + int.parse(_marketingCenterProvider.markDataModel.chef.style);
  681 + return Column(
  682 + children: [
  683 + currIndex == 0
  684 + ? _noTextChefWidget()
  685 + : currIndex == 1
  686 + ? _mergingChefWidget()
  687 + : _separateChefWidget(),
  688 + VEmptyView(18),
  689 + ],
  690 + );
  691 + }
  692 +
  693 + ///无介绍
  694 + Widget _noTextChefWidget() {
  695 + return SizedBox();
  696 + // return Column(
  697 + // children: [
  698 + // _uploadImage(),
  699 + // VEmptyView(18),
  700 + // ],
  701 + // );
  702 + }
  703 +
  704 + ///图文合并
  705 + Widget _mergingChefWidget() {
  706 + return Column(
  707 + children: [
  708 + Stack(
  709 + alignment: Alignment.centerRight,
  710 + children: [
  711 + CachedNetworkImage(
  712 + imageUrl: _marketingCenterProvider.markDataModel.chef.image,
  713 + fit: BoxFit.cover,
  714 + width: double.infinity,
  715 + // width: ScreenUtil()
  716 + // .setWidth(imgSize * 2),
  717 + height: ScreenUtil()
  718 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  719 + ),
  720 + Positioned(
  721 + child: _introduceChefWidget(
  722 + EdgeInsets.only(
  723 + right: w(15), top: w(23), left: w(7), bottom: w(42)),
  724 + textColor: MyColours.color_ffffff,
  725 + hintColor: MyColours.color_ffffff,
  726 + boxDecoration: BoxDecoration(
  727 + gradient: LinearGradient(
  728 + stops: [0, 1],
  729 + begin: Alignment.topCenter,
  730 + end: Alignment.bottomCenter,
  731 + colors: [
  732 + themeColorData[themeColorIndex].color,
  733 + MyColours.color_4D0C0F0E,
  734 + ],
  735 + ),
  736 + )),
  737 + width: w(160),
  738 + ),
  739 + ],
  740 + ),
  741 + ],
  742 + );
  743 + }
  744 +
  745 + ///图文分开
  746 + Widget _separateChefWidget() {
  747 + return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
  748 + _introduceChefWidget(EdgeInsets.all(w(15)),
  749 + boxDecoration: BoxDecoration(color: MyColours.color_ffffff)),
  750 + VEmptyView(18),
  751 + CachedNetworkImage(
  752 + imageUrl: _marketingCenterProvider.markDataModel.chef.image,
  753 + fit: BoxFit.cover,
  754 + width: double.infinity,
  755 + // width: ScreenUtil()
  756 + // .setWidth(imgSize * 2),
  757 + height:
  758 + ScreenUtil().setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  759 + )
  760 + ]);
  761 + }
  762 +
  763 + Widget _introduceChefWidget(EdgeInsets edgeInsets,
  764 + {double width = double.infinity,
  765 + Color textColor = MyColours.color_515151,
  766 + Color hintColor = MyColours.color_999999,
  767 + BoxDecoration boxDecoration}) {
  768 + return Container(
  769 + width: width,
  770 + height: _uploadImageProvider.imgSizefirstImage,
  771 + alignment: Alignment.centerRight,
  772 + padding: edgeInsets,
  773 + decoration: boxDecoration,
  774 + child: Column(
  775 + crossAxisAlignment: CrossAxisAlignment.end,
  776 + children: [
  777 + Text(
  778 + 'Chief Cook',
  779 + style: TextStyle(color: MyColours.color_B39437, fontSize: font(14)),
  780 + ),
  781 + Text(
  782 + '知名主厨',
  783 + style: TextStyle(color: MyColours.color_B39437, fontSize: font(14)),
  784 + ),
  785 + VEmptyView(16),
  786 + // Text(
  787 + // '${sellername}',
  788 + // style: TextStyle(color: textColor, fontSize: font(14)),
  789 + // ),
  790 + Container(
  791 + width: double.infinity,
  792 + alignment: Alignment.topRight,
  793 + child: Text(
  794 + _marketingCenterProvider.markDataModel.chef.chefName,
  795 + textAlign: TextAlign.right,
  796 + style: TextStyle(
  797 + color: textColor,
  798 + fontSize: ScreenUtil().setSp(28),
  799 + textBaseline: TextBaseline.alphabetic),
  800 + maxLines: 1,
  801 + ),
  802 + ),
  803 + VEmptyView(32),
  804 + Container(
  805 + width: double.infinity,
  806 + // margin: EdgeInsets.symmetric(horizontal: w(10)),
  807 + // padding: EdgeInsets.symmetric(horizontal: w(6)),
  808 + decoration: BoxDecoration(
  809 + border: Border(
  810 + right: BorderSide(
  811 + width: w(2), color: MyColours.color_EEAE74))),
  812 + child: Container(
  813 + width: double.infinity,
  814 + padding: EdgeInsets.symmetric(
  815 + horizontal: ScreenUtil().setWidth(12),
  816 + ),
  817 + alignment: Alignment.topRight,
  818 + child: Text(
  819 + _marketingCenterProvider.markDataModel.chef.introduce,
  820 + textAlign: TextAlign.right,
  821 + style: TextStyle(
  822 + height: 2,
  823 + color: textColor,
  824 + fontSize: ScreenUtil().setSp(20),
  825 + textBaseline: TextBaseline.alphabetic),
  826 + maxLines: 7,
  827 + overflow: TextOverflow.ellipsis,
  828 + )),
  829 + ),
  830 + ],
  831 + ),
  832 + );
  833 + }
  834 +
  835 + ///招牌菜展示
  836 + Widget _signboardWidget(ScrollController controller) {
  837 + List<String> images =
  838 + _marketingCenterProvider.markDataModel.signboard.images;
  839 + return _marketingCenterProvider.markDataModel.signboard.swich == '1'
  840 + ? ListView.builder(
  841 + shrinkWrap: true,
  842 + controller: controller,
  843 + itemCount: images.length,
  844 + itemBuilder: (context, index) {
  845 + if (index == 0) {
  846 + return Stack(
  847 + alignment: Alignment.topCenter,
  848 + children: [
  849 + Container(
  850 + margin: EdgeInsets.only(bottom: w(8)),
  851 + child: CachedNetworkImage(
  852 + imageUrl: images[index],
  853 + fit: BoxFit.cover,
  854 + width: double.infinity,
  855 + // width: ScreenUtil()
  856 + // .setWidth(imgSize * 2),
  857 + height: ScreenUtil().setWidth(
  858 + _uploadImageProvider.imgSizefirstImage * 2),
  859 + ),
  860 + ),
  861 + Container(
  862 + width: double.infinity,
  863 + padding: EdgeInsets.only(
  864 + left: w(26), top: w(16), bottom: w(16)),
  865 + decoration: BoxDecoration(
  866 + gradient: LinearGradient(
  867 + stops: [0, 1],
  868 + begin: Alignment.topCenter,
  869 + end: Alignment.bottomCenter,
  870 + colors: [
  871 + themeColorData[themeColorIndex].color,
  872 + MyColours.color_4D0C0F0E,
  873 + ],
  874 + ),
  875 + ),
  876 + child: Column(
  877 + crossAxisAlignment: CrossAxisAlignment.start,
  878 + children: [
  879 + Text('Favorites',
  880 + style: TextStyle(
  881 + color: MyColours.color_B39437,
  882 + fontSize: font(14))),
  883 + Text('菜品展示',
  884 + style: TextStyle(
  885 + color: MyColours.color_B39437,
  886 + fontSize: font(14)))
  887 + ],
  888 + ),
  889 + )
  890 + ],
  891 + );
  892 + }
  893 + return Container(
  894 + margin: EdgeInsets.only(bottom: w(8)),
  895 + child: CachedNetworkImage(
  896 + imageUrl: images[index],
  897 + fit: BoxFit.cover,
  898 + width: double.infinity,
  899 + // width: ScreenUtil()
  900 + // .setWidth(imgSize * 2),
  901 + height: ScreenUtil()
  902 + .setWidth(_uploadImageProvider.imgSizefirstImage * 2),
  903 + ),
  904 + );
  905 + })
  906 + : SizedBox();
  907 + }
  908 +
  909 + ///去点餐
  910 + Widget _orderWidget() {
  911 + return Container(
  912 + padding: EdgeInsets.symmetric(horizontal: w(20), vertical: w(8)),
  913 + child: Column(
  914 + crossAxisAlignment: CrossAxisAlignment.start,
  915 + children: [
  916 + Text(
  917 + '特供服务',
  918 + style: TextStyle(
  919 + color: MyColours.color_515151,
  920 + fontSize: font(18),
  921 + fontWeight: FontWeight.bold),
  922 + ),
  923 + VEmptyView(20),
  924 + Container(
  925 + padding: EdgeInsets.symmetric(horizontal: w(10)),
  926 + child: Text(
  927 + '本店特为贵宾提供提前点餐服务,您现在可以选菜下单,到店就餐时无需等待服务员点餐,可以直接享受就餐服务^_^',
  928 + style: TextStyle(
  929 + color: MyColours.color_515151,
  930 + fontSize: font(12),
  931 + fontWeight: FontWeight.bold),
  932 + )),
  933 + VEmptyView(20),
  934 + Align(
  935 + alignment: Alignment.centerRight,
  936 + child: Container(
  937 + width: w(72),
  938 + height: w(22),
  939 + alignment: Alignment.center,
  940 + decoration: BoxDecoration(
  941 + borderRadius: BorderRadius.circular(r(11)),
  942 + gradient: LinearGradient(stops: [
  943 + -0.57,
  944 + 0.55,
  945 + 1.48
  946 + ], colors: [
  947 + MyColours.color_4C8DAD,
  948 + MyColours.color_0143A3,
  949 + MyColours.color_42A5FF
  950 + ], begin: Alignment.topLeft, end: Alignment.bottomRight)),
  951 + child: Text(
  952 + '去点餐',
  953 + style: TextStyle(
  954 + fontSize: font(12),
  955 + color: MyColours.color_F8F9FD,
  956 + fontWeight: FontWeight.bold),
  957 + )),
  958 + ),
  959 + VEmptyView(20),
  960 + MyDivider(
  961 + double.infinity,
  962 + w(0.5),
  963 + color: MyColours.color_DBDBDB,
  964 + ),
  965 + VEmptyView(16),
  966 + ],
  967 + ),
  968 + );
  969 + }
  970 +
  971 + ///logo + 优惠政策链接
  972 + ///
  973 + Widget _logoWidget() {
  974 + return Column(
  975 + children: [
  976 + Container(
  977 + height: w(180),
  978 + child: CachedNetworkImage(
  979 + imageUrl: _marketingCenterProvider.markDataModel.marketing.logo,
  980 + fit: BoxFit.cover,
  981 + width: double.infinity,
  982 + // width: ScreenUtil()
  983 + // .setWidth(imgSize * 2),
  984 + height: w(180),
  985 + )),
  986 + VEmptyView(40),
  987 + Container(
  988 + width: double.infinity,
  989 + alignment: Alignment.center,
  990 + padding: EdgeInsets.symmetric(
  991 + horizontal: ScreenUtil().setWidth(40),
  992 + ),
  993 + child: Text(
  994 + _marketingCenterProvider.markDataModel.marketing.wecomle,
  995 + style: TextStyle(
  996 + color: MyColours.color_000000,
  997 + fontSize: ScreenUtil().setSp(40),
  998 + textBaseline: TextBaseline.alphabetic),
  999 + textAlign: TextAlign.center,
  1000 + maxLines: 5,
  1001 + overflow: TextOverflow.ellipsis,
  1002 + // maxLength: 38,
  1003 + ),
  1004 + ),
  1005 + _marketingCenterProvider.markDataModel.marketing.isLink == '1'
  1006 + ? VEmptyView(90)
  1007 + : SizedBox(),
  1008 + _marketingCenterProvider.markDataModel.marketing.isLink == '1'
  1009 + ? Container(
  1010 + width: w(188),
  1011 + height: w(22),
  1012 + alignment: Alignment.center,
  1013 + decoration: BoxDecoration(
  1014 + borderRadius: BorderRadius.circular(r(11)),
  1015 + gradient: LinearGradient(
  1016 + stops: [
  1017 + -0.57,
  1018 + 0.55,
  1019 + 1.48
  1020 + ],
  1021 + colors: [
  1022 + MyColours.color_4C8DAD,
  1023 + MyColours.color_0143A3,
  1024 + MyColours.color_42A5FF
  1025 + ],
  1026 + begin: Alignment.centerLeft,
  1027 + end: Alignment.centerRight)),
  1028 + child: RoundButton(
  1029 + width: w(186),
  1030 + height: w(20),
  1031 + text: '点击了解更多会员优惠政策',
  1032 + gradientStart: MyColours.color_ffffff,
  1033 + gradientEnd: MyColours.color_ffffff,
  1034 + borderColor: Colors.transparent,
  1035 + // borderColor: MyColours.color_999999,
  1036 + textColor: MyColours.color_999999,
  1037 + radius: r(11),
  1038 + fontSize: 24,
  1039 +
  1040 + isBold: true,
  1041 + onPressed: () {},
  1042 + ))
  1043 + : SizedBox(),
  1044 + VEmptyView(18),
  1045 + Container(
  1046 + height: w(28),
  1047 + alignment: Alignment.center,
  1048 + child: Text(
  1049 + Provider.of<UserModel>(context, listen: false).user.sellername,
  1050 + style: TextStyle(fontSize: font(14), color: MyColours.color_515151),
  1051 + ),
  1052 + ),
  1053 + VEmptyView(20)
  1054 + ],
  1055 + );
  1056 + }
  1057 +
  1058 + @override
  1059 + Widget build(BuildContext context) {
  1060 + _marketingCenterProvider =
  1061 + Provider.of<MarketingCenterProvider>(context, listen: true);
  1062 + _uploadImageProvider =
  1063 + Provider.of<UploadImageProvider>(context, listen: false);
  1064 + return Scaffold(
  1065 + backgroundColor: MyColours.color_ffffff,
  1066 + appBar: SystemAppBar(
  1067 + '预览',
  1068 + onTap: () {
  1069 + Navigator.pop(context);
  1070 + },
  1071 + ),
  1072 + body: Container(child:
  1073 + Consumer<MarketingCenterProvider>(builder: (context, model, _) {
  1074 + if (model.pageState != PageState.Success) {
  1075 + return ExceptionPage(
  1076 + pageState: model.pageState,
  1077 + callback: () {
  1078 + // offset = 0;
  1079 + // getMessage(showLoading: true);
  1080 +
  1081 + // if (pageState == PageState.Empty) {
  1082 + // NavigatorUtil.goCouponHistoryPage(context);
  1083 + // } else {
  1084 + // _couponNetworkData(widget.index);
  1085 + // }
  1086 + },
  1087 + emptyMsg: "暂时没有预览信息哦,请提交后预览",
  1088 + emptyImg: "empty_search",
  1089 + showMsg: "加载中,请稍后...",
  1090 + );
  1091 + } else {
  1092 + return Column(
  1093 + children: [
  1094 + Expanded(
  1095 + child: SingleChildScrollView(
  1096 + controller: controller,
  1097 + child: Column(
  1098 + children: [
  1099 + _marketingCenterProvider.markDataModel.home == null
  1100 + ? SizedBox()
  1101 + : _firstImageWidget(),
  1102 + VEmptyView(20),
  1103 + _marketingCenterProvider.markDataModel.reserve == null
  1104 + ? SizedBox()
  1105 + : _bookInfoWidget(),
  1106 + _marketingCenterProvider.markDataModel.store == null
  1107 + ? SizedBox()
  1108 + : _storeIntroduceWidget(controller),
  1109 + _marketingCenterProvider.markDataModel.chef == null
  1110 + ? SizedBox()
  1111 + : _chefWidget(),
  1112 + _marketingCenterProvider.markDataModel.signboard == null
  1113 + ? SizedBox()
  1114 + : _signboardWidget(controller),
  1115 + _marketingCenterProvider.markDataModel.marketing != null &&
  1116 + _marketingCenterProvider
  1117 + .markDataModel.marketing.isOrder ==
  1118 + '1'
  1119 + ? _orderWidget()
  1120 + : SizedBox(),
  1121 + _marketingCenterProvider.markDataModel.marketing != null
  1122 + ? _logoWidget()
  1123 + : SizedBox()
  1124 + ],
  1125 + ),
  1126 + )),
  1127 + Container(
  1128 + color: MyColours.color_FAFAFA,
  1129 + padding: EdgeInsets.only(
  1130 + left: w(20), right: w(20), top: w(12), bottom: w(25)),
  1131 + child: Row(
  1132 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  1133 + children: [
  1134 + _marketingCenterProvider.markDataModel.marketing != null &&
  1135 + _marketingCenterProvider
  1136 + .markDataModel.marketing.isOnlineBook ==
  1137 + '1'
  1138 + ? RoundButton(
  1139 + text: '再次预订',
  1140 + width: w(100),
  1141 + gradientStart: MyColours.color_ffffff,
  1142 + gradientEnd: MyColours.color_ffffff,
  1143 + borderColor: MyColours.color_0143A3,
  1144 + textColor: MyColours.color_0143A3,
  1145 + radius: r(21),
  1146 + fontSize: 32,
  1147 + height: w(42),
  1148 + isBold: true,
  1149 + onPressed: () async {},
  1150 + )
  1151 + : SizedBox(),
  1152 + _marketingCenterProvider.markDataModel.marketing != null &&
  1153 + _marketingCenterProvider
  1154 + .markDataModel.marketing.isArrival ==
  1155 + '1'
  1156 + ? RoundButton(
  1157 + text: '确认赴约',
  1158 + width: w(100),
  1159 + gradientStart: MyColours.color_ffffff,
  1160 + gradientEnd: MyColours.color_ffffff,
  1161 + borderColor: MyColours.color_0143A3,
  1162 + textColor: MyColours.color_0143A3,
  1163 + radius: r(21),
  1164 + fontSize: 32,
  1165 + height: w(42),
  1166 + isBold: true,
  1167 + onPressed: () async {},
  1168 + )
  1169 + : SizedBox(),
  1170 + Container(
  1171 + width: w(100),
  1172 + height: w(42),
  1173 + alignment: Alignment.center,
  1174 + decoration: BoxDecoration(
  1175 + borderRadius: BorderRadius.circular(r(21)),
  1176 + gradient: LinearGradient(
  1177 + stops: [
  1178 + -0.57,
  1179 + 0.55,
  1180 + 1.48
  1181 + ],
  1182 + colors: [
  1183 + MyColours.color_4C8DAD,
  1184 + MyColours.color_0143A3,
  1185 + MyColours.color_42A5FF
  1186 + ],
  1187 + begin: Alignment.topLeft,
  1188 + end: Alignment.bottomRight)),
  1189 + child: Text(
  1190 + '转发给客人',
  1191 + style: TextStyle(
  1192 + fontSize: font(16),
  1193 + color: MyColours.color_F8F9FD,
  1194 + fontWeight: FontWeight.bold),
  1195 + )),
  1196 + ],
  1197 + ),
  1198 + )
  1199 + ],
  1200 + );
  1201 + }
  1202 + })),
  1203 + );
  1204 + }
  1205 +}
@@ -55,6 +55,7 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> { @@ -55,6 +55,7 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> {
55 UserModel userModel = Provider.of<UserModel>(context, listen: false); 55 UserModel userModel = Provider.of<UserModel>(context, listen: false);
56 sellername = userModel.user.sellername; 56 sellername = userModel.user.sellername;
57 setState(() {}); 57 setState(() {});
  58 + await getSellerTemplateConf();
58 }); 59 });
59 } 60 }
60 61
@@ -67,6 +68,54 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> { @@ -67,6 +68,54 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> {
67 super.dispose(); 68 super.dispose();
68 } 69 }
69 70
  71 + getSellerTemplateConf() async {
  72 + bool success = await marketingCenterProvider.getSellerTemplateConf(context);
  73 + if (success && marketingCenterProvider.markDataModel.store != null) {
  74 + currIndex = int.parse(marketingCenterProvider.markDataModel.store.style);
  75 +
  76 + _uploadImageProvider.storeImage1.qiniuUrl =
  77 + marketingCenterProvider.markDataModel.store.images.length > 0
  78 + ? marketingCenterProvider.markDataModel.store.images[0]
  79 + : null;
  80 + _uploadImageProvider.storeImage1.process =
  81 + _uploadImageProvider.storeImage1.qiniuUrl != null &&
  82 + _uploadImageProvider.storeImage1.qiniuUrl != ''
  83 + ? 1
  84 + : null;
  85 + _uploadImageProvider.storeImage2.qiniuUrl =
  86 + marketingCenterProvider.markDataModel.store.images.length > 1
  87 + ? marketingCenterProvider.markDataModel.store.images[1]
  88 + : null;
  89 + _uploadImageProvider.storeImage2.process =
  90 + _uploadImageProvider.storeImage2.qiniuUrl != null &&
  91 + _uploadImageProvider.storeImage2.qiniuUrl != ''
  92 + ? 1
  93 + : null;
  94 + _uploadImageProvider.storeImage3.qiniuUrl =
  95 + marketingCenterProvider.markDataModel.store.images.length > 2
  96 + ? marketingCenterProvider.markDataModel.store.images[2]
  97 + : null;
  98 + _uploadImageProvider.storeImage3.process =
  99 + _uploadImageProvider.storeImage3.qiniuUrl != null &&
  100 + _uploadImageProvider.storeImage3.qiniuUrl != ''
  101 + ? 1
  102 + : null;
  103 + _uploadImageProvider.storeImage4.qiniuUrl =
  104 + marketingCenterProvider.markDataModel.store.images.length > 3
  105 + ? marketingCenterProvider.markDataModel.store.images[3]
  106 + : null;
  107 + _uploadImageProvider.storeImage4.process =
  108 + _uploadImageProvider.storeImage4.qiniuUrl != null &&
  109 + _uploadImageProvider.storeImage4.qiniuUrl != ''
  110 + ? 1
  111 + : null;
  112 +
  113 + storeIntroduceC.text =
  114 + marketingCenterProvider.markDataModel.store.introduce;
  115 + setState(() {});
  116 + }
  117 + }
  118 +
70 ///图文合并,图文分开,无文字 119 ///图文合并,图文分开,无文字
71 Widget _selectBtnWidget() { 120 Widget _selectBtnWidget() {
72 return Container( 121 return Container(
@@ -234,8 +283,6 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> { @@ -234,8 +283,6 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> {
234 ); 283 );
235 } 284 }
236 285
237 -  
238 -  
239 ///无文字 286 ///无文字
240 Widget _noTextWidget() { 287 Widget _noTextWidget() {
241 return Column( 288 return Column(
@@ -276,7 +323,13 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> { @@ -276,7 +323,13 @@ class _StoreIntroducePageState extends State<StoreIntroducePage> {
276 ///图文合并 323 ///图文合并
277 Widget _mergingWidget() { 324 Widget _mergingWidget() {
278 Color themColor = MyColours.color_0C0F0E; 325 Color themColor = MyColours.color_0C0F0E;
279 - int colorValue = App.sp.get("themeColor"); 326 + int colorValue = null;
  327 + if (marketingCenterProvider.markDataModel.home != null &&
  328 + marketingCenterProvider.markDataModel.home.themeColor != null) {
  329 + colorValue =
  330 + int.parse(marketingCenterProvider.markDataModel.home.themeColor);
  331 + }
  332 +
280 if (colorValue != null) { 333 if (colorValue != null) {
281 themColor = Color(colorValue); 334 themColor = Color(colorValue);
282 } 335 }
@@ -140,7 +140,9 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> { @@ -140,7 +140,9 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
140 width: w(72), 140 width: w(72),
141 height: ScreenUtil().setWidth(44), 141 height: ScreenUtil().setWidth(44),
142 isBold: true, 142 isBold: true,
143 - onPressed: () {}, 143 + onPressed: () {
  144 + NavigatorUtil.goMarkingPreviewPage(context);
  145 + },
144 ), 146 ),
145 ])), 147 ])),
146 _item('首图形象展示', onTap: () { 148 _item('首图形象展示', onTap: () {
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/provider/user_model.dart'; 3 import 'package:one_key/provider/user_model.dart';
3 import 'package:provider/provider.dart'; 4 import 'package:provider/provider.dart';
4 5
5 import '../constant/constant.dart'; 6 import '../constant/constant.dart';
  7 +import '../models/mark_data_model.dart';
6 import '../models/tableOuter.dart'; 8 import '../models/tableOuter.dart';
7 import '../net/base_resp.dart'; 9 import '../net/base_resp.dart';
8 import '../net/dio_util.dart'; 10 import '../net/dio_util.dart';
@@ -12,6 +14,10 @@ import 'choose_table_model.dart'; @@ -12,6 +14,10 @@ import 'choose_table_model.dart';
12 14
13 class MarketingCenterProvider extends ChangeNotifier { 15 class MarketingCenterProvider extends ChangeNotifier {
14 List<TableOuter> tableOuterList = []; //区域-桌位列表 16 List<TableOuter> tableOuterList = []; //区域-桌位列表
  17 + MarkDataModel markDataModel;
  18 +
  19 + PageState pageState = PageState.Loading;
  20 +
15 //获取桌位列表 21 //获取桌位列表
16 getTableList(context, {needLoading = true}) async { 22 getTableList(context, {needLoading = true}) async {
17 UserModel userModel = Provider.of<UserModel>(context, listen: false); 23 UserModel userModel = Provider.of<UserModel>(context, listen: false);
@@ -46,27 +52,35 @@ class MarketingCenterProvider extends ChangeNotifier { @@ -46,27 +52,35 @@ class MarketingCenterProvider extends ChangeNotifier {
46 return false; 52 return false;
47 } 53 }
48 54
49 - // 获取商家设置预订安排模板页面  
50 - Future<bool> getSellerTemplateConf(  
51 - BuildContext context, Map<String, String> params, 55 + // 获取商家获取预订安排模板页面
  56 + Future<bool> getSellerTemplateConf(BuildContext context,
52 {bool showLoading = true}) async { 57 {bool showLoading = true}) async {
  58 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  59 + Map<String, String> params = {"sid": userModel.user.sellerid};
53 BaseResp<dynamic> baseResp = await DioUtil() 60 BaseResp<dynamic> baseResp = await DioUtil()
54 .request<dynamic>(context, Method.get, HttpUrl.get_seller_template_conf, 61 .request<dynamic>(context, Method.get, HttpUrl.get_seller_template_conf,
55 data: params, showLoading: showLoading) 62 data: params, showLoading: showLoading)
56 .catchError((error) { 63 .catchError((error) {
  64 + pageState = PageState.ConnectivityError;
57 print(error.toString()); 65 print(error.toString());
58 Utils.showToast('获取商家设置预订安排模板页面失败,请重试'); 66 Utils.showToast('获取商家设置预订安排模板页面失败,请重试');
  67 + notifyListeners();
59 return false; 68 return false;
60 }); 69 });
61 if (baseResp.code == Constant.status_success) { 70 if (baseResp.code == Constant.status_success) {
62 - if (baseResp.data == 0 || baseResp.data == 1) {  
63 - return true; 71 + if (baseResp.data == false) {
  72 + pageState = PageState.Empty;
64 } else { 73 } else {
65 - Utils.showToast('获取商家设置预订安排模板页面失败,请重试'); 74 + markDataModel = MarkDataModel.fromJson(baseResp.data);
  75 + pageState = PageState.Success;
66 } 76 }
  77 + notifyListeners();
  78 + return true;
67 } else { 79 } else {
68 Utils.showToast(baseResp.msg); 80 Utils.showToast(baseResp.msg);
  81 + pageState = PageState.ConnectivityError;
69 } 82 }
  83 + notifyListeners();
70 return false; 84 return false;
71 } 85 }
72 } 86 }
@@ -1454,4 +1454,13 @@ class NavigatorUtil { @@ -1454,4 +1454,13 @@ class NavigatorUtil {
1454 return _navigateTo(context, "${Routes.marking_coupon_select_page}", 1454 return _navigateTo(context, "${Routes.marking_coupon_select_page}",
1455 replace: replace); 1455 replace: replace);
1456 } 1456 }
  1457 +
  1458 + ///预订安排通知定制------预订安排预览页
  1459 + static Future<dynamic> goMarkingPreviewPage(
  1460 + BuildContext context, {
  1461 + replace = false,
  1462 + }) {
  1463 + return _navigateTo(context, "${Routes.marking_preview_page}",
  1464 + replace: replace);
  1465 + }
1457 } 1466 }
@@ -183,6 +183,7 @@ import '../pages/my/marketing_center/book_notification/chef_introduce_page.dart' @@ -183,6 +183,7 @@ import '../pages/my/marketing_center/book_notification/chef_introduce_page.dart'
183 import '../pages/my/marketing_center/book_notification/dish_show_page.dart'; 183 import '../pages/my/marketing_center/book_notification/dish_show_page.dart';
184 import '../pages/my/marketing_center/book_notification/first_image_page.dart'; 184 import '../pages/my/marketing_center/book_notification/first_image_page.dart';
185 import '../pages/my/marketing_center/book_notification/marking_coupon_select_page.dart'; 185 import '../pages/my/marketing_center/book_notification/marking_coupon_select_page.dart';
  186 +import '../pages/my/marketing_center/book_notification/marking_preview_page.dart';
186 import '../pages/my/marketing_center/book_notification/store_introduce_page.dart'; 187 import '../pages/my/marketing_center/book_notification/store_introduce_page.dart';
187 import '../pages/my/marketing_center/marketing_center_home_page.dart'; 188 import '../pages/my/marketing_center/marketing_center_home_page.dart';
188 import '../pages/my/plan_dish/final_plan_dish_page.dart'; 189 import '../pages/my/plan_dish/final_plan_dish_page.dart';
@@ -2378,3 +2379,13 @@ var markingCouponSelectPageHandle = new Handler( @@ -2378,3 +2379,13 @@ var markingCouponSelectPageHandle = new Handler(
2378 create: (_) => MarketingCenterProvider(), 2379 create: (_) => MarketingCenterProvider(),
2379 child: MarkingCouponSelectPage()); 2380 child: MarkingCouponSelectPage());
2380 }); 2381 });
  2382 +
  2383 +//我的----营销中心-预订安排预览页
  2384 +var markingPreviewPageHandle = new Handler(
  2385 + handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
  2386 + // String idstr = params["idstr"].first;
  2387 + // NotebookDetail detailEntity = NotebookDetail.fromJson(json
  2388 + // .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
  2389 + return ChangeNotifierProvider<MarketingCenterProvider>(
  2390 + create: (_) => MarketingCenterProvider(), child: MarkingPreviewPage());
  2391 +});
@@ -205,6 +205,9 @@ class Routes { @@ -205,6 +205,9 @@ class Routes {
205 static String marking_coupon_select_page = 205 static String marking_coupon_select_page =
206 "/marking_coupon_select_page"; //预订安排通知定制------优惠券选择 206 "/marking_coupon_select_page"; //预订安排通知定制------优惠券选择
207 207
  208 + static String marking_preview_page =
  209 + "/marking_preview_page"; //预订安排通知定制------预览页
  210 +
208 static void configureRoutes(FluroRouter router) { 211 static void configureRoutes(FluroRouter router) {
209 router.notFoundHandler = new Handler( 212 router.notFoundHandler = new Handler(
210 handlerFunc: (BuildContext context, Map<String, List<String>> params) { 213 handlerFunc: (BuildContext context, Map<String, List<String>> params) {
@@ -398,10 +401,8 @@ class Routes { @@ -398,10 +401,8 @@ class Routes {
398 router.define(dish_show_page, handler: dishShowPageHandle); 401 router.define(dish_show_page, handler: dishShowPageHandle);
399 router.define(marking_interaction_page, 402 router.define(marking_interaction_page,
400 handler: markingInteractionPageHandle); 403 handler: markingInteractionPageHandle);
401 - router.define(marking_coupon_select_page, 404 + router.define(marking_coupon_select_page,
402 handler: markingCouponSelectPageHandle); 405 handler: markingCouponSelectPageHandle);
403 -  
404 -  
405 - 406 + router.define(marking_preview_page, handler: markingPreviewPageHandle);
406 } 407 }
407 } 408 }