Showing
4 changed files
with
323 additions
and
7 deletions
| 1 | +import 'dart:convert'; | ||
| 2 | + | ||
| 1 | import 'package:json_annotation/json_annotation.dart'; | 3 | import 'package:json_annotation/json_annotation.dart'; |
| 4 | +import 'package:one_key/models/filter_btn_model.dart'; | ||
| 2 | 5 | ||
| 3 | part 'coupon_model.g.dart'; | 6 | part 'coupon_model.g.dart'; |
| 4 | 7 | ||
| @@ -76,6 +79,15 @@ class CouponSunModel extends Object { | @@ -76,6 +79,15 @@ class CouponSunModel extends Object { | ||
| 76 | @JsonKey(name: 'is_open') | 79 | @JsonKey(name: 'is_open') |
| 77 | bool isOpenBool = false; | 80 | bool isOpenBool = false; |
| 78 | 81 | ||
| 82 | + @JsonKey(name: 'price') | ||
| 83 | + dynamic price; | ||
| 84 | + | ||
| 85 | + @JsonKey(name: 'use') | ||
| 86 | + CouponUse use; | ||
| 87 | + | ||
| 88 | + @JsonKey(name: 'exp_date') | ||
| 89 | + ExpDate expDate; | ||
| 90 | + | ||
| 79 | bool isCheck = false; | 91 | bool isCheck = false; |
| 80 | bool showText = false; | 92 | bool showText = false; |
| 81 | 93 | ||
| @@ -96,10 +108,68 @@ class CouponSunModel extends Object { | @@ -96,10 +108,68 @@ class CouponSunModel extends Object { | ||
| 96 | this.isExamine, | 108 | this.isExamine, |
| 97 | this.isType, | 109 | this.isType, |
| 98 | this.isOpen, | 110 | this.isOpen, |
| 99 | - this.isOpenBool); | 111 | + this.isOpenBool, |
| 112 | + this.price, | ||
| 113 | + this.use, | ||
| 114 | + this.expDate); | ||
| 100 | 115 | ||
| 101 | factory CouponSunModel.fromJson(Map<String, dynamic> srcJson) => | 116 | factory CouponSunModel.fromJson(Map<String, dynamic> srcJson) => |
| 102 | _$CouponSunModelFromJson(srcJson); | 117 | _$CouponSunModelFromJson(srcJson); |
| 103 | 118 | ||
| 104 | Map<String, dynamic> toJson() => _$CouponSunModelToJson(this); | 119 | Map<String, dynamic> toJson() => _$CouponSunModelToJson(this); |
| 105 | } | 120 | } |
| 121 | + | ||
| 122 | +@JsonSerializable() | ||
| 123 | +class CouponUse extends Object { | ||
| 124 | + @JsonKey(name: 'is_cash') | ||
| 125 | + bool isCash; | ||
| 126 | + | ||
| 127 | + @JsonKey(name: 'is_discount') | ||
| 128 | + bool isDiscount; | ||
| 129 | + | ||
| 130 | + @JsonKey(name: 'is_dish') | ||
| 131 | + bool isDish; | ||
| 132 | + | ||
| 133 | + @JsonKey(name: 'cash') | ||
| 134 | + String cash; | ||
| 135 | + | ||
| 136 | + @JsonKey(name: 'discount') | ||
| 137 | + String discount; | ||
| 138 | + | ||
| 139 | + @JsonKey(name: 'dish') | ||
| 140 | + String dish; | ||
| 141 | + | ||
| 142 | + CouponUse(this.isCash, this.isDiscount, this.isDish, this.cash, this.discount, | ||
| 143 | + this.dish); | ||
| 144 | + | ||
| 145 | + factory CouponUse.fromJson(Map<String, dynamic> srcJson) => | ||
| 146 | + _$CouponUseFromJson(srcJson); | ||
| 147 | + | ||
| 148 | + Map<String, dynamic> toJson() => _$CouponUseToJson(this); | ||
| 149 | +} | ||
| 150 | + | ||
| 151 | +@JsonSerializable() | ||
| 152 | +class ExpDate extends Object { | ||
| 153 | + @JsonKey(name: 'is_none') | ||
| 154 | + bool isNone; | ||
| 155 | + | ||
| 156 | + @JsonKey(name: 'is_week') | ||
| 157 | + bool isWeek; | ||
| 158 | + | ||
| 159 | + @JsonKey(name: 'is_birthday') | ||
| 160 | + bool isBirthday; | ||
| 161 | + | ||
| 162 | + @JsonKey(name: 'week_show') | ||
| 163 | + String weekShow; | ||
| 164 | + | ||
| 165 | + @JsonKey(name: 'week_data') | ||
| 166 | + List<FilterBtnModel> weekData; | ||
| 167 | + | ||
| 168 | + ExpDate( | ||
| 169 | + this.isNone, this.isWeek, this.isBirthday, this.weekShow, this.weekData); | ||
| 170 | + | ||
| 171 | + factory ExpDate.fromJson(Map<String, dynamic> srcJson) => | ||
| 172 | + _$ExpDateFromJson(srcJson); | ||
| 173 | + | ||
| 174 | + Map<String, dynamic> toJson() => _$ExpDateToJson(this); | ||
| 175 | +} |
| @@ -42,7 +42,22 @@ CouponSunModel _$CouponSunModelFromJson(Map<String, dynamic> json) { | @@ -42,7 +42,22 @@ CouponSunModel _$CouponSunModelFromJson(Map<String, dynamic> json) { | ||
| 42 | json['is_examine'] as String, | 42 | json['is_examine'] as String, |
| 43 | json['is_type'] as String, | 43 | json['is_type'] as String, |
| 44 | json['is_open'] as String, | 44 | json['is_open'] as String, |
| 45 | - json['status'] == "1" ? true : false, | 45 | + json['is_open'] == "1" ? true : false, |
| 46 | + json['price'] as String, | ||
| 47 | + json['use'] == null | ||
| 48 | + ? null | ||
| 49 | + : (json['use'] is String) | ||
| 50 | + ? CouponUse.fromJson(jsonDecode(json['use'])) | ||
| 51 | + : (json['use'] is Map) | ||
| 52 | + ? CouponUse.fromJson(json['use']) | ||
| 53 | + : null, | ||
| 54 | + json['exp_date'] == null | ||
| 55 | + ? null | ||
| 56 | + : (json['exp_date'] is String) | ||
| 57 | + ? ExpDate.fromJson(jsonDecode(json['exp_date'])) | ||
| 58 | + : (json['exp_date'] is Map) | ||
| 59 | + ? ExpDate.fromJson(json['exp_date']) | ||
| 60 | + : null, | ||
| 46 | ); | 61 | ); |
| 47 | } | 62 | } |
| 48 | 63 | ||
| @@ -64,5 +79,88 @@ Map<String, dynamic> _$CouponSunModelToJson(CouponSunModel instance) => | @@ -64,5 +79,88 @@ Map<String, dynamic> _$CouponSunModelToJson(CouponSunModel instance) => | ||
| 64 | 'is_examine': instance.isExamine, | 79 | 'is_examine': instance.isExamine, |
| 65 | 'is_type': instance.isType, | 80 | 'is_type': instance.isType, |
| 66 | 'isOpen': instance.isOpen, | 81 | 'isOpen': instance.isOpen, |
| 67 | - 'isOpenBool': instance.isOpenBool | 82 | + 'isOpenBool': instance.isOpenBool, |
| 83 | + 'price': instance.price, | ||
| 84 | + 'use': instance.use, | ||
| 85 | + 'exp_date': instance.expDate | ||
| 86 | + }; | ||
| 87 | + | ||
| 88 | +CouponUse _$CouponUseFromJson(Map<String, dynamic> json) { | ||
| 89 | + bool iscash = false; | ||
| 90 | + if (json['is_cash'] is String) { | ||
| 91 | + iscash = json['is_cash'] == '1' ? true : false; | ||
| 92 | + } else if (json['is_cash'] is bool) { | ||
| 93 | + iscash = json['is_cash'] ? true : false; | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + bool isdiscount = false; | ||
| 97 | + if (json['is_discount'] is String) { | ||
| 98 | + isdiscount = json['is_discount'] == '1' ? true : false; | ||
| 99 | + } else if (json['is_discount'] is bool) { | ||
| 100 | + isdiscount = json['is_discount'] ? true : false; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + bool isdish = false; | ||
| 104 | + if (json['is_dish'] is String) { | ||
| 105 | + isdish = json['is_dish'] == '1' ? true : false; | ||
| 106 | + } else if (json['is_dish'] is bool) { | ||
| 107 | + isdish = json['is_dish'] ? true : false; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + return CouponUse( | ||
| 111 | + iscash, | ||
| 112 | + isdiscount, | ||
| 113 | + isdish, | ||
| 114 | + json['cash'] as String, | ||
| 115 | + json['discount'] as String, | ||
| 116 | + json['dish'] as String, | ||
| 117 | + ); | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | +Map<String, dynamic> _$CouponUseToJson(CouponUse instance) => <String, dynamic>{ | ||
| 121 | + 'is_cash': instance.isCash, | ||
| 122 | + 'is_discount': instance.isDiscount, | ||
| 123 | + 'is_dish': instance.isDish, | ||
| 124 | + 'cash': instance.cash, | ||
| 125 | + 'discount': instance.discount, | ||
| 126 | + 'dish': instance.dish, | ||
| 127 | + }; | ||
| 128 | + | ||
| 129 | +ExpDate _$ExpDateFromJson(Map<String, dynamic> json) { | ||
| 130 | + List<FilterBtnModel> weekdata = []; | ||
| 131 | + if (json['week_data'] != null) { | ||
| 132 | + json['week_data'].forEach((v) { | ||
| 133 | + weekdata.add(new FilterBtnModel.fromJson(v)); | ||
| 134 | + }); | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + bool isnone = false; | ||
| 138 | + if (json['is_none'] is String) { | ||
| 139 | + isnone = json['is_none'] == '1' ? true : false; | ||
| 140 | + } else if (json['is_none'] is bool) { | ||
| 141 | + isnone = json['is_none'] ? true : false; | ||
| 142 | + } | ||
| 143 | + bool isweek = false; | ||
| 144 | + if (json['is_week'] is String) { | ||
| 145 | + isweek = json['is_week'] == '1' ? true : false; | ||
| 146 | + } else if (json['is_week'] is bool) { | ||
| 147 | + isweek = json['is_week'] ? true : false; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + bool isbirthday = false; | ||
| 151 | + if (json['is_birthday'] is String) { | ||
| 152 | + isbirthday = json['is_birthday'] == '1' ? true : false; | ||
| 153 | + } else if (json['is_birthday'] is bool) { | ||
| 154 | + isbirthday = json['is_birthday'] ? true : false; | ||
| 155 | + } | ||
| 156 | + return ExpDate( | ||
| 157 | + isnone, isweek, isbirthday, json['week_show'] as String, weekdata); | ||
| 158 | +} | ||
| 159 | + | ||
| 160 | +Map<String, dynamic> _$ExpDateToJson(ExpDate instance) => <String, dynamic>{ | ||
| 161 | + 'is_none': instance.isNone, | ||
| 162 | + 'is_week': instance.isWeek, | ||
| 163 | + 'is_birthday': instance.isBirthday, | ||
| 164 | + 'week_show': instance.weekShow, | ||
| 165 | + 'week_data': instance.weekData, | ||
| 68 | }; | 166 | }; |
| @@ -18,6 +18,7 @@ import 'package:one_key/widgets/system_app_bar.dart'; | @@ -18,6 +18,7 @@ import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 18 | import 'package:one_key/widgets/v_empty_view.dart'; | 18 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 19 | import 'package:provider/provider.dart'; | 19 | import 'package:provider/provider.dart'; |
| 20 | 20 | ||
| 21 | +import '../../utils/screen_util.dart'; | ||
| 21 | import '../../widgets/page_exception.dart'; | 22 | import '../../widgets/page_exception.dart'; |
| 22 | 23 | ||
| 23 | /** | 24 | /** |
| @@ -143,6 +144,38 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | @@ -143,6 +144,38 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | ||
| 143 | ); | 144 | ); |
| 144 | } | 145 | } |
| 145 | 146 | ||
| 147 | + ///输入框 | ||
| 148 | + Widget _textShow(String title, String subtitle) { | ||
| 149 | + return Container( | ||
| 150 | + padding: EdgeInsets.only( | ||
| 151 | + left: w(15), | ||
| 152 | + ), | ||
| 153 | + child: Row( | ||
| 154 | + mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||
| 155 | + children: [ | ||
| 156 | + Container( | ||
| 157 | + child: Text( | ||
| 158 | + title, | ||
| 159 | + style: TextStyle( | ||
| 160 | + color: Color.fromRGBO(0, 0, 0, 0.9), | ||
| 161 | + fontSize: ScreenUtil().setSp(32)), | ||
| 162 | + ), | ||
| 163 | + ), | ||
| 164 | + Spacer(), | ||
| 165 | + Text( | ||
| 166 | + subtitle, | ||
| 167 | + | ||
| 168 | + //输入文本的样式 | ||
| 169 | + style: TextStyle( | ||
| 170 | + color: Color.fromRGBO(0, 0, 0, 0.4), | ||
| 171 | + fontSize: ScreenUtil().setSp(32), | ||
| 172 | + ), | ||
| 173 | + ), | ||
| 174 | + ], | ||
| 175 | + ), | ||
| 176 | + ); | ||
| 177 | + } | ||
| 178 | + | ||
| 146 | @override | 179 | @override |
| 147 | Widget build(BuildContext context) { | 180 | Widget build(BuildContext context) { |
| 148 | couponProvider = Provider.of<CouponProvider>(context, listen: true); | 181 | couponProvider = Provider.of<CouponProvider>(context, listen: true); |
| @@ -196,6 +229,59 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | @@ -196,6 +229,59 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | ||
| 196 | color: MyColours.color_E7E7E7, | 229 | color: MyColours.color_E7E7E7, |
| 197 | ), | 230 | ), |
| 198 | VEmptyView(24), | 231 | VEmptyView(24), |
| 232 | + if (couponProvider.couponSunModel.isType == '1' && | ||
| 233 | + couponProvider.couponSunModel.use != null) | ||
| 234 | + Column( | ||
| 235 | + children: [ | ||
| 236 | + _item( | ||
| 237 | + '销售价', | ||
| 238 | + couponProvider.couponSunModel.price ?? | ||
| 239 | + ''), | ||
| 240 | + Container( | ||
| 241 | + height: ScreenUtil().setWidth(2), | ||
| 242 | + color: MyColours.color_E7E7E7, | ||
| 243 | + ), | ||
| 244 | + VEmptyView(24), | ||
| 245 | + _item( | ||
| 246 | + '券用途', | ||
| 247 | + couponProvider.couponSunModel.use.isCash | ||
| 248 | + ? '代金券' | ||
| 249 | + : couponProvider | ||
| 250 | + .couponSunModel.use.isDiscount | ||
| 251 | + ? '折扣券' | ||
| 252 | + : couponProvider | ||
| 253 | + .couponSunModel.use.isDish | ||
| 254 | + ? '菜品券' | ||
| 255 | + : ''), | ||
| 256 | + VEmptyView(10), | ||
| 257 | + _textShow( | ||
| 258 | + couponProvider.couponSunModel.use.isCash | ||
| 259 | + ? '金额:' | ||
| 260 | + : couponProvider | ||
| 261 | + .couponSunModel.use.isDiscount | ||
| 262 | + ? '折扣率:' | ||
| 263 | + : couponProvider | ||
| 264 | + .couponSunModel.use.isDish | ||
| 265 | + ? '菜品:' | ||
| 266 | + : '', | ||
| 267 | + couponProvider.couponSunModel.use.isCash | ||
| 268 | + ? '${couponProvider.couponSunModel.use.cash}元' | ||
| 269 | + : couponProvider | ||
| 270 | + .couponSunModel.use.isDiscount | ||
| 271 | + ? '${couponProvider.couponSunModel.use.discount}折' | ||
| 272 | + : couponProvider | ||
| 273 | + .couponSunModel.use.isDish | ||
| 274 | + ? couponProvider | ||
| 275 | + .couponSunModel.use.dish | ||
| 276 | + : ''), | ||
| 277 | + VEmptyView(24), | ||
| 278 | + Container( | ||
| 279 | + height: ScreenUtil().setWidth(2), | ||
| 280 | + color: MyColours.color_E7E7E7, | ||
| 281 | + ), | ||
| 282 | + VEmptyView(24), | ||
| 283 | + ], | ||
| 284 | + ), | ||
| 199 | _item('券要求', couponProvider.couponSunModel.desc), | 285 | _item('券要求', couponProvider.couponSunModel.desc), |
| 200 | Container( | 286 | Container( |
| 201 | height: ScreenUtil().setWidth(2), | 287 | height: ScreenUtil().setWidth(2), |
| @@ -215,6 +301,27 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | @@ -215,6 +301,27 @@ class _CouponDetailPageState extends State<CouponDetailPage> { | ||
| 215 | '有效期至', | 301 | '有效期至', |
| 216 | Utils.getDateStrFromJiekou( | 302 | Utils.getDateStrFromJiekou( |
| 217 | couponProvider.couponSunModel.etime)), | 303 | couponProvider.couponSunModel.etime)), |
| 304 | + if (couponProvider.couponSunModel.isType == '1' && | ||
| 305 | + couponProvider.couponSunModel.expDate != null) | ||
| 306 | + Column(children: [ | ||
| 307 | + Container( | ||
| 308 | + height: ScreenUtil().setWidth(2), | ||
| 309 | + color: MyColours.color_E7E7E7, | ||
| 310 | + ), | ||
| 311 | + VEmptyView(24), | ||
| 312 | + _item( | ||
| 313 | + '使用限制', | ||
| 314 | + couponProvider.couponSunModel.expDate.isNone | ||
| 315 | + ? '无' | ||
| 316 | + : couponProvider.couponSunModel.expDate | ||
| 317 | + .isBirthday | ||
| 318 | + ? '会员生日当天' | ||
| 319 | + : couponProvider.couponSunModel | ||
| 320 | + .expDate.isWeek | ||
| 321 | + ? couponProvider.couponSunModel | ||
| 322 | + .expDate.weekShow | ||
| 323 | + : ''), | ||
| 324 | + ]), | ||
| 218 | couponProvider.couponSunModel.isType == '1' | 325 | couponProvider.couponSunModel.isType == '1' |
| 219 | ? Column( | 326 | ? Column( |
| 220 | crossAxisAlignment: | 327 | crossAxisAlignment: |
| 1 | +import 'dart:convert'; | ||
| 2 | + | ||
| 1 | import 'package:common_utils/common_utils.dart'; | 3 | import 'package:common_utils/common_utils.dart'; |
| 2 | import 'package:flutter/material.dart'; | 4 | import 'package:flutter/material.dart'; |
| 3 | import 'package:flutter_picker/flutter_picker.dart'; | 5 | import 'package:flutter_picker/flutter_picker.dart'; |
| @@ -195,6 +197,25 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | @@ -195,6 +197,25 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | ||
| 195 | //创建新券 客户经理创建活动 | 197 | //创建新券 客户经理创建活动 |
| 196 | _createNewCoupon() async { | 198 | _createNewCoupon() async { |
| 197 | FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 | 199 | FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 |
| 200 | + if (!widget.isMine) { | ||
| 201 | + if (money && moneyControl.text.trim().length == 0) { | ||
| 202 | + Utils.showToast('请输入代金券金额!'); | ||
| 203 | + return; | ||
| 204 | + } | ||
| 205 | + if (discount && discountControl.text.trim().length == 0) { | ||
| 206 | + Utils.showToast('请输入折扣率!'); | ||
| 207 | + return; | ||
| 208 | + } | ||
| 209 | + if (dish && dishControl.text.trim().length == 0) { | ||
| 210 | + Utils.showToast('请输入菜品!'); | ||
| 211 | + return; | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + if (limitWeek && weekShow == '点击设置可用日期') { | ||
| 215 | + Utils.showToast('请设置可用日期!'); | ||
| 216 | + return; | ||
| 217 | + } | ||
| 218 | + } | ||
| 198 | String from = fromDate + ' 00:00:00'; | 219 | String from = fromDate + ' 00:00:00'; |
| 199 | String end = endDate + ' 23:59:59'; | 220 | String end = endDate + ' 23:59:59'; |
| 200 | Map<String, String> params = { | 221 | Map<String, String> params = { |
| @@ -215,6 +236,27 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | @@ -215,6 +236,27 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | ||
| 215 | if (!widget.isMine) { | 236 | if (!widget.isMine) { |
| 216 | params['is_examine'] = swichHexiao ? "1" : "0"; | 237 | params['is_examine'] = swichHexiao ? "1" : "0"; |
| 217 | params['uid_list'] = uids; | 238 | params['uid_list'] = uids; |
| 239 | + params['price'] = | ||
| 240 | + _priceControl.text.trim().length == 0 ? '0' : _priceControl.text; | ||
| 241 | + | ||
| 242 | + Map use = { | ||
| 243 | + 'is_cash': money ? '1' : '0', | ||
| 244 | + 'is_discount': discount ? '1' : '0', | ||
| 245 | + 'is_dish': dish ? '1' : '0', | ||
| 246 | + 'cash': moneyControl.text, | ||
| 247 | + 'discount': discountControl.text, | ||
| 248 | + 'dish': dishControl.text | ||
| 249 | + }; | ||
| 250 | + params['use'] = jsonEncode(use); | ||
| 251 | + | ||
| 252 | + Map expDate = { | ||
| 253 | + 'is_none': limitNone ? '1' : '0', | ||
| 254 | + 'is_week': limitWeek ? '1' : '0', | ||
| 255 | + 'is_birthday': limitBirthday ? '1' : '0', | ||
| 256 | + 'week_show': weekShow, | ||
| 257 | + 'week_data': weekData | ||
| 258 | + }; | ||
| 259 | + params['exp_date'] = jsonEncode(expDate); | ||
| 218 | } | 260 | } |
| 219 | bool isSuccess = | 261 | bool isSuccess = |
| 220 | await couponProvider.createCustomerActivity(context, params); | 262 | await couponProvider.createCustomerActivity(context, params); |
| @@ -749,16 +791,15 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | @@ -749,16 +791,15 @@ class _CouponEidtPageState extends State<CouponEidtPage> { | ||
| 749 | .numberWithOptions()), | 791 | .numberWithOptions()), |
| 750 | if (discount) | 792 | if (discount) |
| 751 | _textfieldSelect('折扣率:', '点击输入折扣,如9折', | 793 | _textfieldSelect('折扣率:', '点击输入折扣,如9折', |
| 752 | - moneyControl, moneyFocusNode, | 794 | + discountControl, dishFocusNode, |
| 753 | subtitle: '折', | 795 | subtitle: '折', |
| 754 | textInputType: TextInputType | 796 | textInputType: TextInputType |
| 755 | .numberWithOptions()), | 797 | .numberWithOptions()), |
| 756 | 798 | ||
| 757 | if (dish) | 799 | if (dish) |
| 758 | _textfieldSelect('菜品:', '点击输入赠送菜品名称', | 800 | _textfieldSelect('菜品:', '点击输入赠送菜品名称', |
| 759 | - moneyControl, moneyFocusNode, | ||
| 760 | - textInputType: TextInputType | ||
| 761 | - .numberWithOptions()), | 801 | + dishControl, dishFocusNode, |
| 802 | + textInputType: TextInputType.text), | ||
| 762 | VEmptyView(48), | 803 | VEmptyView(48), |
| 763 | Container( | 804 | Container( |
| 764 | height: ScreenUtil().setWidth(2), | 805 | height: ScreenUtil().setWidth(2), |
-
Please register or login to post a comment