From ba6a25b89f66361a5e9cce49c71008fbc71f49a5 Mon Sep 17 00:00:00 2001 From: w-R <953969641@qq.com> Date: Thu, 22 Jul 2021 18:38:37 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/generated/intl/messages_zh_TW.dart | 2 +- lib/login/login_page.dart | 12 +- lib/retrofit/retrofit_api.g.dart | 765 +++++++++++++++++++++++++ pubspec.lock | 15 +- pubspec.yaml | 2 +- 5 files changed, 777 insertions(+), 19 deletions(-) create mode 100644 lib/retrofit/retrofit_api.g.dart diff --git a/lib/generated/intl/messages_zh_TW.dart b/lib/generated/intl/messages_zh_TW.dart index e85f588c..8f66d586 100644 --- a/lib/generated/intl/messages_zh_TW.dart +++ b/lib/generated/intl/messages_zh_TW.dart @@ -244,7 +244,7 @@ class MessageLookup extends MessageLookupByLibrary { "muqianzanwuxingdianhuodong" : MessageLookupByLibrary.simpleMessage("目前暫無星店活動"), "nindingweigongnengweikaiqi" : MessageLookupByLibrary.simpleMessage("您定位功能開關未開啟,請點擊去開啟定位"), "nindingweiquanxianweiyunxu" : MessageLookupByLibrary.simpleMessage("您未开启位置权限,请点击确定申请权限"), - "ninweidenglu" : MessageLookupByLibrary.simpleMessage("您未登錄,請點擊去燈籠"), + "ninweidenglu" : MessageLookupByLibrary.simpleMessage("您未登錄,請點擊去登錄"), "ninyouyigedingdanyaolingqu" : MessageLookupByLibrary.simpleMessage("您有一個訂單需要前往門店領取"), "ninyouyigexindedingdan" : MessageLookupByLibrary.simpleMessage("您有一個新訂單"), "peisong" : MessageLookupByLibrary.simpleMessage("配送"), diff --git a/lib/login/login_page.dart b/lib/login/login_page.dart index 09ab38d0..84ec339a 100644 --- a/lib/login/login_page.dart +++ b/lib/login/login_page.dart @@ -18,7 +18,7 @@ import 'package:flutter/services.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:dio/dio.dart'; -import 'package:photo_view/photo_view.dart'; +// import 'package:photo_view/photo_view.dart'; import 'package:shared_preferences/shared_preferences.dart'; class LoginPage extends StatefulWidget { @@ -391,11 +391,11 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { child: Stack( alignment: Alignment.center, children: [ - PhotoView( - imageProvider: AssetImage("assets/image/laoban.png"), - initialScale: Platform.isAndroid ? 1.02 : 1.2, - basePosition: alignmentProgress, - ), + // PhotoView( + // imageProvider: AssetImage("assets/image/laoban.png"), + // initialScale: Platform.isAndroid ? 1.02 : 1.2, + // basePosition: alignmentProgress, + // ), Positioned( top: 54.h, left: 28.w, diff --git a/lib/retrofit/retrofit_api.g.dart b/lib/retrofit/retrofit_api.g.dart new file mode 100644 index 00000000..9584b822 --- /dev/null +++ b/lib/retrofit/retrofit_api.g.dart @@ -0,0 +1,765 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'retrofit_api.dart'; + +// ************************************************************************** +// RetrofitGenerator +// ************************************************************************** + +class _ApiService implements ApiService { + _ApiService(this._dio, {this.baseUrl}) { + ArgumentError.checkNotNull(_dio, '_dio'); + baseUrl ??= 'http://platform.test.api.lotus-wallet.com/app/'; + } + + final Dio _dio; + + String baseUrl; + + @override + Future upload(data, folderId) async { + ArgumentError.checkNotNull(data, 'data'); + ArgumentError.checkNotNull(folderId, 'folderId'); + const _extra = {}; + final queryParameters = {}; + final _data = FormData(); + _data.files.add(MapEntry( + 'file', + MultipartFile.fromFileSync(data.path, + filename: data.path.split(Platform.pathSeparator).last))); + if (folderId != null) { + _data.fields.add(MapEntry('folderId', folderId.toString())); + } + final _result = await _dio.request>('/file/upload', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future searchPoi(lat, lng, keywords, size, page) async { + ArgumentError.checkNotNull(lat, 'lat'); + ArgumentError.checkNotNull(lng, 'lng'); + ArgumentError.checkNotNull(keywords, 'keywords'); + ArgumentError.checkNotNull(size, 'size'); + ArgumentError.checkNotNull(page, 'page'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request( + 'https://restapi.amap.com/v3/place/around?key=542b46afa8e4b88fe1eb3c4d0ba0872f&location=$lat,$lng&keywords=$keywords&offset={size}&page={page}&extensions=all', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = _result.data; + return value; + } + + @override + Future memberLogin(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/auth/platform/memberLogin', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future sendVerify(mobile) async { + ArgumentError.checkNotNull(mobile, 'mobile'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/auth/sendVerify/$mobile', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future creditGoods(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditGoods/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future creditGoodsById(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/creditGoods/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryInfo() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/info', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future editInfo(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/member/editMemberInfo', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future signInInfo() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/member/signInInfo', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future signIn() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/signIn', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future recharge(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/member/recharge', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future receiveCoupon(couponId) async { + ArgumentError.checkNotNull(couponId, 'couponId'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/coupon/receive?couponId=$couponId', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future creditOrderList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditOrder/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future creditOrder(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditOrder/create', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future addAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/add', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future deleteAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/delete', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryAddress(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/address/detail/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryMemberAddress() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/address/queryMemberAddress', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future updateAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/update', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryCoupon(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/coupon/centreList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryCard(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/coupon/packageList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryStore(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/store/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future informationList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/information/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future informationInfo(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/information/{id}', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future creditOrderReceive(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/creditOrder/receive/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryHome() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/home/home', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryStoreInfo(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/store/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryArticle(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/information/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryBanner(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/banner/page', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryHomeBrand() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/home/brand', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future minLogin(storeId) async { + ArgumentError.checkNotNull(storeId, 'storeId'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/auth/mini/login/$storeId', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future queryBillInfo(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/member/listBill', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future rankList() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/rankList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future orderList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/order/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future orderDetail(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/order/orderDetail?id=$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future continuePay(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/order/continuePay', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future receiveToCard(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/creditOrder/receive/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future vipList() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/vipList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } + + @override + Future vipDetail(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/member/vipDetail/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson(_result.data); + return value; + } +} diff --git a/pubspec.lock b/pubspec.lock index fcee6b3f..6adf8a0b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -56,7 +56,7 @@ packages: name: async url: "https://pub.flutter-io.cn" source: hosted - version: "2.5.0" + version: "2.6.1" barcode: dependency: transitive description: @@ -630,13 +630,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "4.1.0" - photo_view: - dependency: "direct main" - description: - name: photo_view - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.11.1" platform: dependency: transitive description: @@ -865,7 +858,7 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.2.19" + version: "0.3.0" timing: dependency: transitive description: @@ -977,7 +970,7 @@ packages: name: win32 url: "https://pub.flutter-io.cn" source: hosted - version: "2.0.5" + version: "2.2.5" xdg_directories: dependency: transitive description: @@ -1000,5 +993,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.13.0 <3.0.0" flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 836d4a8c..2d2f9efd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -80,7 +80,7 @@ dependencies: cached_network_image: ^2.0.0 flutter_html: ^1.3.0 #2.1.0 - photo_view: ^0.11.1 +# photo_view: ^0.11.1 chewie: ^0.12.2 video_player: ^1.0.1 From c30fbd5ca160e6993b2792fbc776f4f8bceff332 Mon Sep 17 00:00:00 2001 From: w-R <953969641@qq.com> Date: Thu, 22 Jul 2021 18:39:07 +0800 Subject: [PATCH 2/8] =?UTF-8?q?ui=E4=BC=98=E5=8C=96=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/integral/integral_page.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/integral/integral_page.dart b/lib/integral/integral_page.dart index c4e0c055..93a22ff8 100644 --- a/lib/integral/integral_page.dart +++ b/lib/integral/integral_page.dart @@ -420,9 +420,17 @@ class _IntegralPage extends State { return Container( child: Stack( children: [ + Container( + decoration: BoxDecoration( + border: Border(bottom: BorderSide(color: Color(0xFF3A405A),width: 0.0)), + color: Color(0xFF3A405A)), + ), Container( height: 42.h, - color: Color(0xFF3A405A), + // color: Color(0xFF3A405A), + decoration: BoxDecoration( + border: Border(bottom: BorderSide(color: Color(0xFF3A405A),width: 0.0)), + color: Color(0xFF3A405A)), ), Container( width: double.infinity, @@ -521,7 +529,9 @@ class _IntegralPage extends State { Widget integralAndVip() { return Container( padding: EdgeInsets.only(top: 16.h, bottom: 16.h), - color: Color(0xFF3A405A), + decoration: BoxDecoration( + border: Border(bottom: BorderSide(color: Color(0xFF3A405A),width: 0.0)), + color: Color(0xFF3A405A)), child: Row( children: [ Expanded( From 305f0b46b586d2c4bf0e6fe44b0df7bbf9d86b3a Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 18:43:51 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E7=99=BB=E5=BD=95=EF=BC=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 15 + android/app/libs/payment-weixin-release.aar | Bin 0 -> 28479 bytes .../wechat-sdk-android-without-mta-6.6.5.aar | Bin 0 -> 124784 bytes android/app/src/main/AndroidManifest.xml | 14 +- .../zsw/huixiang/wxapi/WXPayEntryActivity.kt | 29 ++ ios/Podfile.lock | 10 - ios/Runner.xcodeproj/project.pbxproj | 12 - ios/Runner/Info.plist | 25 +- ios/Runner/Runner.entitlements | 2 + lib/address/address_map_page.dart | 11 +- lib/address/edit_address_page.dart | 14 +- lib/generated/intl/messages_zh_TW.dart | 2 +- lib/home/activity_list_page.dart | 20 +- lib/home/home_page.dart | 30 +- lib/home/points_mall_page.dart | 208 +++++++------ lib/integral/integral_detailed_page.dart | 3 +- lib/integral/integral_page.dart | 170 +++++----- .../integral_store_details_page.dart | 17 +- lib/l10n/intl_zh_TW.arb | 2 +- lib/login/login_page.dart | 14 +- lib/mine/coupons_page.dart | 7 +- lib/mine/edit_name.dart | 4 +- lib/mine/manage_address_page.dart | 8 +- lib/mine/mine_card_invalid_page.dart | 3 +- lib/mine/mine_page.dart | 1 - lib/mine/mine_vip_level_page.dart | 4 +- lib/mine/mine_wallet_page.dart | 7 +- lib/mine/roll_center_page.dart | 7 +- lib/mine/user_info_page.dart | 4 +- lib/mine/vip_balance_page.dart | 5 +- lib/mine/vip_card_page.dart | 3 +- lib/mine/vip_detail_page.dart | 4 +- lib/order/exchange_history_page.dart | 5 +- lib/order/exchange_order_page.dart | 8 +- lib/order/exchange_order_success_page.dart | 4 +- lib/order/order_detail_page.dart | 6 +- lib/order/order_history_page.dart | 3 +- lib/order/store_selector_page.dart | 15 +- lib/retrofit/retrofit_api.dart | 7 +- lib/setting/setting_page.dart | 1 - lib/union/union_details_page.dart | 59 ++-- lib/union/union_page.dart | 3 - lib/view_widget/store_title_tab.dart | 6 +- pubspec.lock | 291 +++++++++--------- pubspec.yaml | 2 +- 45 files changed, 546 insertions(+), 519 deletions(-) create mode 100644 android/app/libs/payment-weixin-release.aar create mode 100644 android/app/libs/wechat-sdk-android-without-mta-6.6.5.aar create mode 100644 android/app/src/main/kotlin/com/zsw/huixiang/wxapi/WXPayEntryActivity.kt diff --git a/android/app/build.gradle b/android/app/build.gradle index e096a5e2..3f4e7beb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -60,12 +60,27 @@ android { v1SigningEnabled true //兼容v1 v2SigningEnabled true //兼容v2 } + debug {//debug版签名配置 + keyAlias 'huixiang' + keyPassword 'huixiang' + storeFile file('huixiang.jks') + storePassword 'huixiang' + v1SigningEnabled true //兼容v1 + v2SigningEnabled true //兼容v2 + } + } buildTypes { release { signingConfig signingConfigs.config } + debug { + signingConfig signingConfigs.config + } + profile { + signingConfig signingConfigs.config + } } aaptOptions { diff --git a/android/app/libs/payment-weixin-release.aar b/android/app/libs/payment-weixin-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..1e9280157920b5419cb9d2350dfeca3160f1b829 GIT binary patch literal 28479 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 aB>oTRuZsf;_NNl+>r?jyaQvzT0Qg^iE$J-) literal 0 HcmV?d00001 diff --git a/android/app/libs/wechat-sdk-android-without-mta-6.6.5.aar b/android/app/libs/wechat-sdk-android-without-mta-6.6.5.aar new file mode 100644 index 0000000000000000000000000000000000000000..43719c13c8c12bda22d9eed8434942ead7e421a6 GIT binary patch literal 124784 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 z zIh?67%k*lB@e|Rs3vEYEAIydvG4KWusgjNVE4xx&0fsHi`R%ATgq*z{O$#d#+v;&c z#;Dm)msCL61GA~(5~6oVHGmgmvVpdcZk#tjr3Ny9MQ6?HT{u{)VCICjLYpDoQO6AX zYze1#UeRugQ!f29q?S8Ix4cJnfNF zv<&rkTt8K^NS`q9%yn_A)hk8#GB%#px8*T%(+a88!#fnfx49J2g^SUL*x0j0xqtr< z;a$(5rchi7ZOc7Oe1sS!St0<|GzEmzUa|sQ%jqy4uu0!XTNOFk+j~xyHSbH6JwKJ4 zRrEge!*A;3Z5nUZngSq!X%rgPt{)V=A+rz~#kCaIw#bbq%3f^Ylh@1vq@4!M3j>Sp z&8CwlwkfTr#}y|hDRT^m{_+7sf> z{G2%VzZFwIN+)(7E{YP<)8Acfgdu_%MA?WKFF?=dR&oNbqQCgk*hO*j1G^*0kTZIl zej>i(^P~fkvWXHJsSia78>i(bNizPDqs({6JV9_;hhQPR(Nvnx zMA3P(czBc4MhDotyMt*%_##Bn_`MdkohVZ(7HwF5(}Ny((vKMtux_4AmViVNyz@c7R8RWW7@8xHnv?zAp)kSxry}{!4h~`-zkl*~cKD;k z;|~JGGe_$pi4)4;!hE?`jgMBzkap7)f4#XwmtWx@Hf<@X$LI5DRG@#+ZJ5`g=o#T(oeEak4#oN>9Z zC}h!LzY)$>WypoMgLjo&Ke%_W)82DCbDCDCYHGHNBxz8^X8bi%ol>-P?MOm7KuPVU zq4|k|WK+_H{*yrIJNh4!U6^we_uzOmAQ}_qu9+0J+gB>arrAh0l6M!|R@IEnytvnq z1GaeQR|^vh?*VsDokMXFy}M6rvTyFSNki6r6gHVyqV_!vrLbUtnvc}3SmGe%%#iNX zbUhOoicO3(H~MjES(Y_vOYTwGg?HEH~7dviYbu zP$^fS`8X>YMFmYznZawqdu?Fq+FHg=ma zW_H0Tz__O*0RSMNqya*f|Hz#|^g!cYa;6%ga>eo-_y}VR z;CD?>b44`Bl82u*yC-0={oA9k;Ln89bD8ZnlaDaNZlAkFSMn8#eWcCY zSp$+U*+(uHUPK}vR@GgfKY}kbVJFQ@^HBXW#ML-tu2Z$S@Xs=|5m$a$ix$cCCDsk< zQ!kKBHk}*}gw<`}P4KBHYO`a?2Ch>PLC&hwwKCBDM7Wa`NK*bKd$o~xI>@rlW=3?e>*{=fy4L{1+e@O;XSIhqn#yr@DYBH2dK=11|deYX2-5A%yT}x60<{WSwp(KASgo%<#?u@#3;T zU+sRc#ng=*tG#A86W#CE{wZs^tq6O^WyDhpD+{x;H=LC+^N>%07uT&21uc-;7dAeB z@2B}v0`FdaH!!{b@r3|6S7%G(e@{;9|Cpt|OTlQvX$J^fMWd`-#h0VYJW;E|gor2n z5V9;Gx=vUFGGwlgT@*I(u)Y&aJRbaEhR-S&Aqm`f3l2jM*16Y_#2+1 z!b1kv9Qss$XvwR2a1^A%@N!c1y`J$IeuG;jLH#9HWIpS>h_)%#h20hR13!aq><6=M zh4OTHDRcHr?m+*ez1kcRVS%|lbycQzGK3AtXWW5Gz<0K?-ezfmm>D?6r=tfPqw}ddBQXcv?rNkrf0Apa zzG#d(IPq5uXF%#|1&kF@cVJ*zY)3!yTFSb$EW}(wPR8Zw(xRrEJk8qI+S zjdFlU>PtJVNoHLi#i8diBk#;jvFXBVzacWC2~6D?A@x$17CI5xAoGeQuHTreF)g7B zPbIJ8V(ku;ZY9hGOW%j#gjJ;-m)67&^lwujFp%1MGJ^e|dQG(NXXP6yTPEXPUjh%x zHX^=uF)tu8z;D2<=fQW_w?I4ErCMXG{1nLu%j5{sdc^5{iZbP4Nx+kW0<4i{@6*7j$~Xg^vAEdcFBNh1EMW{ib;@TnR?Z=dhRS@`PncIo@Z1R3@HoU00^6-8 z5p0*rJSI+0&*FO1+v0aEcL*HDk}S!nk}YHFbQ0+}rn@=$QAJ>*sZalHz9@aLTVdLMT`2j{U z-gx%R%%53YyO8)3ax0CM1yf7cTms(tVIE3qG|!Ntm{%S&_98~CXTT}u5E!e34*xWB$`D6C=$LZ^T*)m3}YCErrqQ8G~GwP?dB$FH}KwnH^cQcCo#6Dht zWiluwi$AzzrxhBhcot1YDnlrR=z{%h?QsUrW;=4#MTYcB4$Q@uYNQeY^m>##Ph2!@ za=&D+zr9uIe}$}$GKM;Ty7_hTaNRm@bqYKAOJ1eYp)S{DEiu#dqMi(fjr`qu7zKmM{0OZ}0vq$)9tZ;gtZs@S zQB`Zi$?xG@NvFiikfL5(7(amOJ2K0q>U}(ec69Cv{R|r zla~HcasbybmC5NRuj1%hnr^t{$dPKJn%9@qWZax|7*~3+1eM$Fg+uCEX54zu28@4c zEonot{7T|TY=pS@BW#NwMa9D%z1QQLp;hkpbcEFzyxRSt^q6JlNAVqhC;U})x-hXm zM>6S0q_Fnk^^>|!58O9|1PBwQn_r6>T<1yT+GkWV*_CuplQO|Du_+k~!ia~NrF8;Y z0XOie6bd?os5QZ==#i3<9?(CU!eieVeln%_^O916?+pTG!Q=CD{4r2wLG6+a&4?$; zM7vtU(m_1FZLbI!G=YN=Mx-HBe`D^0GV&(mP!R$KQ>n40h&7Fyq~Vi~=7!1b@nJM# zLoA-SS`MBnLwG7Tt{>BRTZ8n2DDx1tQG4WjtAbZtE;4iYZ%y@H=Iw0@=J~vPe_xUt z6vT2Nt$KHsf`~m9!dy%Syjb9T_jAgE7_z1 zT8nRRobXCy%spV&gugcTD)K_7T|qhjODuV!PWz*Gw6^jN{x7<0e4$Iyq zqY2Q*aH%g& zBOL$?BShA<^AQ(*Dba@YP3B}i30u-AA`OPQeF zxn=6Nmd%E#zXUByr$BHXP!N#I-;ePBH-4;!rHh5Cy|t;`KRHHnatb{{$i8$$Vxo|9 zK@xaKR{r90k|cc=lCrYwxa>QwG-SFKO%2*y7PtR(w;1V40tfmXtZum7v(A3wl@O&C;4#BKb(pu}6i6O9cadi`rkKyC&>>`89a zsnw9yB83%)c6qjv(NeJcV6<5;f6XR5G8poa128e+Ub09Yn@34@1wb{y$B135QS{-$ zP_%MmpQP?C#V&2Kq*3yLEGMZw1eY}EM42sg67S55otUaM1g}HC+qOxDrcDiFa+uil zlwik%xd6e+2eZdpE;X4(h%b;*9WYKxpTu1@Y6n(8S3z?OHG|Cx*8gIW;o(vO)_M@+PqPgR7{Pizop;q=T$JOuFQ5O0? zGZE6z6g73WG`BN#`hSMM@VY*UO9?@uqDn?dp>^6&fFLM39}tk;hj*+vPa z=v0U%xMh6AzX!Bm&ER}b7r2GKrMk>aO$ST+(XIH{f9Zf~9*Op@8; zgGdNp3hJC5PGofC>=5w0BM1@MY0kZm161v%^|bq(QrG`fw0svG647R!&A<>434rzE zEIxzC8J{v-IMp9#VyWh%h~$%LC&g~fJ7!h73fBLn(c6rPLEvq`o$?V^*h^-O%ed`? z>Uhf{i^N$w%Grv`Pa@02Sf7XRhTCejz=6Oc09TO&yvSf0pJEI#cU*lAu((HLavHqV z8D-b8U5)B#NybF*2m)B_3F z-CVr}vt#jDs{#AuaTEwNavRrbu+bSIaZQd?!R@1Q@67okR4H9lxL#Jca;#Bbxq2cI z)hy$Uo7Y@^YGoI$qH>wDU*>f%^~)z$S_YMWOZaN)Sh_h**$~a%%FfqgZdg&54y^=ez%gbhu+}Q%ULO#)BNUrI@287#;x#jFr-5L)Kqs@mOgfyG_|Q+cshPW3YQM}H z117ST0H0j?k+FU91ut2?N#j>D>tbMO&i1TzoCL-qigzGEOT)DX-@c95HsP*$e9}4i+ zn`6?~x6}-9#FmRfBETi)qbiZb1&KdPl(WThJr#|{N5c5b&p|X(H0PoJAsh{kqDiQ~ z(9O62Z+CpgTh1iVZ{+Kk@+&x!Ow{v=;aTM1vgVb|r50+)D{_gqzJc&0`+3CMrV*dk z|4@3t*>4Az%-`NJMKyE|lwl#}at^fN^)D*vuOmmq2`CT{4aEPE3G%NyL301(Cww+` zQD^-pJwg4+9Ze1WT~CEI(FFp383m?BI#UhVI@cdKV?=IAN5cTgA)iP>kRfYirW^@> z@zNRjqKBp90IQ}tM|6w-K{k0E_ApM)o@25f^x95T-;_6dxu-LDOXKo)-zA)cPX(jwJ$z@gK&&*%B*TMsUd z!lTvjrafyYgwA(lA7%|Fh(O7y(wMLNbJ5+5FkcG4&y0D$&#k=}K^B+7o#*O!<9T}B4 z#BgHEf{ggBsZegk^-+tY90fpOhx0Wm1m^6JmMNPtIl2$OiT*}GJ)fB&Y zfcUGW!dFt5*T)X#3M~x~fg<9kU5?8&LWP7iSy&>Up<4qlZmIDC3XGI3NK+aQxR(8v zph6K`GXRNIX`;y++LcgZ8huslF9)zm>Y4w<%XSV;ZZj}%NBe{bH`C$*&ugV5RD`G9 z?48-{og)&Fg5bgKD?DsvsgP|L@LXZuCIPX(DRor?hGt{ZSDqKK!3eur6I9lj(q(^O zOWK>zxU3Pz8JL~bl-bQ@FKP4?1v0{?g7b;Jx+owdX?MMOBU(=s2XmRx%^ah*I}G5sEjs`9QXyjv2|^=s)Ch~$BjTQWIKg~+`LN-lS$1CQnRFtuIWT?U?5+b?^~ zwqDtYVD|mUD3BAzA!U*T4Nm%jmSo@i9InSY;MDrg0UI|-9jNLM_$1VE)92Aqc5%}| zycBEUZEMZo?kc+#N;>Joq!+o}3qmX1**61Q0vDTa0Qj-j=297tsrw5OY3bV1Uea)n z;ATWq41v#IRC|m)vYZ9BH30%EViegI4JBo(2azwc9>7zd1(KBqnC%6ASf-^UESeQ| z-h}DS&#+9+45?em(jDh)Lq)CIebt^hh&f0#u;O({K-7~fbzY%1TWjDpTS%@CQa*@q4^s4Ra*j*Sl^5ySWiTq%AX&x{9&;kenZnJQ;N~Z0~9!ia%Y0wxg)l?ux zgE<+`e^f3f8Tt@yqb%>0_OQCwThUjq`%Dr#}COZa$tB_Y;m^< z4zy(={_zVzrBHR$T(zLVNA%+ecI0sA{x$2b-e0!wtN^3zII6_?`DQ;{iG6R&50G=B z6ru{n9Q@^lTf{y8S5=(J;mKKZkBGi1#@&MLs_T;-j>{kYSZM=zD#*S8tQ#d>SA^*@ zFG!OaYd$^-$@j3+L;1URC<%+h`kL_UEL6@lh_W>yHXI)XkKYP)bl}}bfeSxBPu}LT zvAYw1sft@~0YC#U4bCyMbJ@B5;Vd!iBftt5dd7KGDHeIMvY^)mlwbGRJKdi54~vxU zVb9RXYj4Quc0*}&2p_WLMq?XQT!D#`R4~%{$=^94(>rtOFx#eF=q%qOkynHDkGdp) ztw%pII};$8Q2;zZ!@uBb(&CyDw03{$M z5&!=!wD=d&QlRorIT7Tu0dg^11SvD=R0=Ct#QrusDyoqb02!Tg+|-MP>}F(*CPMsc z7<`k>QXDll7UP%4SQkS+cQ{~JElc8B%VC!N#6$L=&&$(3oj=Q(`4%s4WJpu%F?Xlw z&D5{8_TA(Vfj=HiI&i*{n_H~*b}-H=>I5YUmCo7`Bltb77G*z=ndUD#b$VO&v)&4msky^erMtV()&+=vOix()0)yd0{2dZZEOfI~j- zN;`#?mSMUd_DYh1F7*e7bVP~+quKGa!1C`5oR*A$yO z!148n8g!@>?Q|oHtVSI=pDtv)v2qKGfe`c^3quPcdZ#9Q5B24%d=?eg(Z;lqa_0Pn z@H#VV$vlP-C>@h94bkTI^GNDhJ`q-{_ucQLWRvg+a#IPx9V1iEMR8n}@#xyk$qphS zSSu>cF?fLRDPF@9C0WN?*4t#gj)P7$);z`})p&}6@HLL!LMOE5;VHMmKrXv@_Mf;5 z9ym}?lWzOv5)Eb`K{U5yd8&#XQl$^%QXl#WCKIjf0Fo*vfC>tH3XTVSEvwH2Gg`A; z5Ep+xq0BwZAX1Yz8n)@t(_o>h$Y_fAbl$**p+O4JvEZHYV%lkJ2A74MDMYlk>&>*& zEU{v|trEt}ma*V_d_hXPl|cmeDCSW?Nq_EF=t7`mlX&ZN=@j>8b!~J|+}co!b!bux z=RNgpx4CKX{Ms_~NrJ5z*aOyntF)9|^qPf*j$H%jN_=R9XB|l1TB7Ne=RFvPWpJ0D z61$AJCl5y6C_bzSY7Zjgz!F>T_h$Gz6mMi|lXoPhQMMu0{Dnmh zWCsa_{2orXp#I0h1OK9iDg419#hjc(e!oQj&9$`06GP`m`?)Ydxt#VX_S610W_31~ z-LoVCm0V&gO*1UVTty^_a(y|~#HT-7R{{azXN^bDD^TSOVp>JPn?w)QwRBxYD@gLy znKf?b*oif6cek(JcQ;ial{;)uZ^yIH1y!uT+2f3qi_93^BQAy<8gm^x$MxOxma&`* zj3|D)Gw+U=RGQ0^l)*#Rb+_C+cX+eN<^t41nMj#F{;f(0()vc`pIrK_2~S#}#vr}) z=SsINwhpUIZaiW|qqbEI`ZnopZ46%(%PSsUI}jEtrtV=yaqMjQr;%=d6s(@_0M}2; zZ4ka!x3`WlKeq~j!2+)b*Oq2|Kd+Nq$lE67GRLv@s(u^r9Xvn69LFwvQCa(#aeOef zD`aw?bUx!qs-J=PnLTG!HTq8de(Eec44&BrkU?k|yhQD*W^FRoxIG;gCl;7=4W zN8^-gUudqHYEI@DEchx!_BYTx-9bmHxH)ZhBEE17T%Wpw5S+|-Y!EkGEpW;O5u@; z0Vu;p>{5d)h2sE;gcDbdf-sQkE{>Q6DW}F(VZrp*hGWOj0q8BfBa<894IrcPWujXm-F0aV`?TKIQ{wxIr2Fe#z)JYe z_}OS^>4QQ5xvw>%?NMlqP>CsUm*UiHb>S^X=0xCQE`wU&= zuc2x$7wW(?b4-X5ni4P71qTfv+)OztapH^Y6#PS4T-faziECI1nT|*J@g>Pusa7TX zw^1B8u4B!2Dib|YOb1{euB1W0ZV=kl~f0q2#TU(|2k2(mi;nDLX6rs3{aW@)my59x6R*VlN^+9H5z* z$F2;OZ;TqWT02-;s~Z~veZnS1U&E}GST@4KYw)pl$AhsKld@YeCl|jN(sF_H64(TX z#D=={{}Lqq&`m2e10F}_sw6Tg+7cSGy-lMCpv;l+@d@t|t%AwySd3sl{Z03b4Zvjr z1pyiQ{c!w;`-Ojwihr!g{`p@2JCPl9%|j8KJ%S_zn~9u~FbWp?uC>varhavWK_{v` zkqQk-z#qvp>lf76zl_5#Hy@Dv2@xUZtT@~@3h*SPkW1;qT&W`X6GYOLB}d|HMoU-; z+@&wp=t;>!t7zHhQo=XGRcB!N7I+Y+zY7|iCn)z)zPfFkyJy2cDTN^W`;YUUMb*pj z)a4Dupv??qu0FLgvv%^6oUg~Tj1+}F9xn?^eP>aTF%6Y|xqlmtS{oA<+j0^q+hs}b z6IT14qyg43j<7**1CQQV`)oIuCu>CJ7xVWigrtrDQORbv>v?e86mTBZjnwRW7s7 zSf`E7d{M@xvumI+&eL&Ezo}_16DLsB^fd=%nk*`^n1PJhy@UNB+jHve`u*|eatese zj=!JRFQbmvKz(=ZZ5JaWPn)`*O-XfDU}N%3N<;Z|^uYY4n##c1Ww@vVo|7Pp*(e~pHjP8Sag`^^AZ~QU>5=iT13CW^g&ilhCK_Flf6Z#@!O^MiPo7E>zV{q$VOfsjg z4-9Xzy*jJ9GuD3@qU8Y?{h1LCh|M|Y&Qmoz5Ry>MG0nD zLKQnaa&^iSX8R0>%sKU4b|1HsJ~q5_F?-zwGHrahXdRxr!`dT{qjoENe+ziB;whn5 zefO4kdydBH_Ia&Je=Hd_!BLzp80H5zXpz1M!TCe}CvE?VCwaJnAI;e^6 z;9eaX&fxKdNg7u6Q%S5(m4l)9yAqLZ$^;GQZkzg0k?br}Ybn(gIEv{Cg8o%;ph*d1 z&Y&Oi3DLqR%xd3HbU(8^sse{mX5?*=<>u{i*$qDBKuUGGsPQ!_^-y6YgOPn;x2-i~ zHAAx`GMDNF90#)e43Q@=U1V_M0H2y`y`}7?mE-pBFD*5+vUq`A#CUg1PQHRe1=IuQ zvd44O!cZ$s?2s+r#BtP|D~E@m*(j>@HT{<%xk!H*DdGt=C-kS_1hG4ni-ycpdRFeM zo+Zr5$AlbNvb5q^W~PX>&qh0W6tXlAc^9@}+IwNm_0YTS6MoZf(QaD(c~QQzlE1w2 zmfPbUZkc56(bcPf-CST77Lj*dEnxtCDR9JEKiC2$a~Hpd_+=Aon z_LD&I@g6->l3Vn`H20Dx3?bT^4w^W%jeS#N8lk=*y$yPZ}?O2U>dQPhIe>GPhNlH`0BdoV}P8i8_upx^OA@EWWQ7n zY{}>ORAXDDM?mUP+$%B%-0}c*A!BhIws#O91HBd(CT|;sRyiAr!(`UpY_@&5V*T!@K_SFbYXbY+=OEl)T8nii!dfWCniH#!2}QX;{X z-)Om9;bP>H@v}KKa)C-wStny|>_>(K6eBZ_VE1&8u_6*@M^dUxp^c~ybO58Demp~b zG=oIHUHqcOTqP8c?vji&Q>Te~R5a$&yj^YGgGxdM#0St_@`@>Yx=~8fHBSfN`p6A5{8KrS_#E;N# z$u{1j45$PAgPRun=PdG4wKcTqDp4BJw2FIsnRs7`)DP*wileZI8gi9pGH!L?s-76Gw{2g7j%kF zx~<7mZ#LJmRCk05&eE`tC6^^76lX~-N7d79^aH}Tz3DsHwIw3(82L#spJju<>>@6z zRb1yhqf=XGx`!DyiZR6j0x;M5kS*8pnkedqi1>zmK+6$Txjbi113McY1)%psoI)CMTigv0`|fOjTlZW)%(Mk^gx2Zg(9CQLKXFo_xbvET@B^u`&c1r=}RJW{YP<7 z2m@?co&5lh3skx~)mDM&l}kTt_5d;93z1hM`f-G{mD`s6FW&pkXP;@2DR^-gU_(y# zTm$nvMBST6z8kUvX#tDtpoTwL#&_G*3{qLb*;-xF@bG{ z8+V|*<`9vrpb(>c)mz-X+`HvvpJ|$Y^n@G$Ueuo@K)t=Sb*`yLGAS-V?=Hc8qhH`& zrr|nbldO$Cgcy7tK?Mt=#H~qv{Jzl7++iPbhx9!XhNbuf=iiqhZ12R`Zr|XA4eA>1 zue6_NyuFb4oQKmrw%it9pD2rd6lah*$$TMnE%wNDayA_A!r%Uj=T{j%Vs04}1jPII zJ%Q{0gXi$S`p%WK73aUB@W2#NGUh9R)A}rosKQu-6rsJ+l)`@Y{sb}5Qlu?ll;Bif z#vEPH6N+w%f{E|tJcM7gm6-U2Kg)#d#s0GGD04&l*Z$G6Ey#s|zrXKet%{H7l2^;F z7#?T0s@+>V!_nk-vA!e*@=2a*=q4WdbyaEAw3`ksDn@g*vw(4I@DiC72lddlIUN1% z(C=TN28$z#4BUsjazOvIUFK?eR~G#+w98GefGZ{M?eHIk6;_twLCSe3ErSugt}Qz7 zHBgH)v3etK6;2^i8Zaz4zyw&uEGly`Mv{CFz}!c8i;jx$<}PF3mB4(Q^H;NP!*XYp zDnNG#S~9)ktx_7sLRH-x_KoG!hOVXAtF+ocksK3k&~#KFKB()PiR zI+}iq#Bhw$%g*~y(g2d&Rn5XuD_~KGtbwb+c2!LmA+3}z2CBlg$Ple+UyO`ec`2xi z8g~^ZQf?TJybszjI~CTecxwV_J{Jr{N9FiP%ZTP1cE;34BOSs@8H$MF9~Vy3KW9U? zq1!mDk~9wxIS2LsB&<1CbvF#W6kEd{&n6EL9!)~JC3tS%hPBuWCI+`r+-H3baUu+i zI4+rfk+*aWQ*okel$i_HA;iL;rxTdb1>t$3Z@vFIi(15N@8KuWVYYO$o|yA(Ad2mf z%w{mPJ2ju$9q|YtbIL5%c>3}S`6-Nk1aEiBG_sLHMAnYoKtFf@8KZ0OjX|zhrd`@$r}jF z5fOvQiH3&H?ttdsto%@lXFAF2Xg@C>8qU1-o$yJvI?VjaLHGLUCPB-sGfN0PfbLA# zdGm7Xz5C_#gRj&3iyqzs=3|9wMiF0C@g;clc+>uPz)?$3lT~m(suq;x(y5)YnTwF4 zrf_zBa*my9m^!r?IyW9lCfZ=Kga8dKjr>_OBx)QYo2nK?aXF_Gm_2`2Qz|GwI!E*S&66D=&v73cnEaA&!45hSZRJ6@41Mt;V z3{#AWB-DRu?UYln{rSuGZu7YD`qo??@j5l^Jhlw;ExS@jtMd#0HDWpuBZ+;G{@JWa zlTO!-U6)IZPL-9C1#D$JNc}>%5K22Na2faHIK#+u-;fd`)retDU|9z&|7RIP zq*F!@R0?~{SZOqV zTUF$(b1@-PKg?|e2_1t`H>Kj;Is{#OERex5bcS$F=?b=?AWuQxDo`vLqaLc9p{_w0DW|%h*L8 z$yBTd(zDJqTU}^y>m4aX#rqitLT3AXhGo{g-e@SfCc@x6=Lvb;1cQ&?Vy|<$65@#t zIGN4R(?;)f&>XiX1+WNsXotvD7vA)E!vu`0r%yUm;5)PtVuedKkAm8o>ul@l3&gS= zC`w1A6jpO-QwTsKZ8{LuSKM&c^5z1q!k3o4 zBu-h0%HvttSAU%sKDxhFG;pk4GzV4#pS{LMs`89$+Et7lBg(;C? z4pUi?W^pECUL-z*Q-Ex_HU1#4c&0SoS|;+>fEruM6o69%g?2ncAWg|pW0a*re9zi) zzq6|;%Wb$Vjg*w7rKzZ?=zMBspO*oG!D$9hKH?`-wdSl7r-e~#wsiEWEop&>r>9{- z_-Mi#8UAkZ&iE4kYK{^uFmcC3%~1eTH9tMSBtIlX_9}?9ZyZtOw$QwE)U1DoHm^-> zGyonSm_=i|3gX zG>l3++yGnQ37zV~U`3y~y4vs~G1a)-!$NdA$!4uC<3}f%EcSk(UUc@)rh1q$uS~&50X@EUSzGnRws!Cx?{^phYCdP&2nRNyV zsSCAW7s!YC_f1az6~+GM3)D1)1`=5;_i#m?^St(2=DRCMV7uLe12PU-{Vv{Fl07?T zSlZ4lM*nir6^_=|>{C+rJca)0vW5OHDT0VM_wSob@H+&7G542qutkxA?J8h;ck!K7 ziURmRxZUal$TM(kfu2ZUYYIOZq$gaUgg8B%!PQ4pc!6^N8xdOIxc)auw%7tDh$|4_ z1(IhCO-qu|T#Vt9mS=1pWhaq6J?mbh#VV;R?m;rsrhczY5E2R|FrUzhX1+&Q->4uw zh{Ty97^fjr_(Q2MNAFdMs3NVBgL(Lyg7Hb&1z&G7mwk4K7WDK>Y|1cR3u=Rdq1p+c{4o`MM^DVen zQ5GE2(Hc9#5a=1eYOs#+0(*0c5|Bhk5!ECH4&zx>OpqNeQMS-tIul%N zONxye^2=z^>&V0IcwTjI;(RHN1@H5N_~JT^X>crq&3ALJ_CLR>54}9fSv?XS#QI$V zbx(Mmon7f}op-0LA3G?kbS)3WE1GksZzwL@@w%Z z3K+5qI_SyEqDKJgXVm0P_}UQ)I!vzORNo>54+=eIG)-!r)p01v zQGwnEUx&uUH-q>^%cG5gm@9~`xz`29S8RrW@aq}|1(#G}ajh8}?Y#^^`|c3;xay}x z57#5yfPEfju}onn=q7>lCHh<@Hn{y#Nb#Wiw9m$(^lfj9B2lG;0tLEES_4M9+3Rnt zWc#=_s*W^QMp>F-*=?`7NU+np>HvY04_e6OftSN8Y6zrP_9ZYGaGlJ-ifWZ<%*;wh z--wP9xf3)c4Y@C&zaTBdeI-R4ZO!+1Qrauq}BKS^az9r1uNVy>K2AA#yr2 zH=8cX#@C75$FXteM}V9#NO{5+o{d@ptZ+Wx z3xcqq6p|j5b@K~^x}}5<;s&-E>}Qw;e=&JCgl-Falv8$=oQ%5@Q>k^}o^n{Z2lp^*!7_qx{N8;dI|ja`9ST_T{P>VaU*yBOsKf1YS`2g@9|4x|?j1!fSVrs)s5B$8kjVS6|ZBB6Mb`5>*kE zwCuyOuJ7i0hp*4$xhqJ@HQZ<4=iA{^!}fWCrw!@2vrr`cvr{S}Et! z`nD(0C6mE$7Z!|`%~|!s>&B}@R!vj`uN&O@EyB5BL0;(8j!CDaH{yTN%Fq^T1@f%& z1jcV@dT0}EtkvZ?mgl3LFW-6Uwhp5oectkFfv^ymBKW_oZQ8UrRHidb)Lw1Ni_OHh zP&AOY(>%O>el^0R`iLP2#1VWqL<9IQ78yen)Y03K!WKH9VUlIc!M_%}P*Jn@RJ|5d z(eM&h4^>?zt6o;Jo=!efeXc+N5l)xCkVk)3++i{rkWo{`<^}3!R9IL0=8kyB5S>&g zj9zhuQRuX041dL$Bn&i!-5>Pf`MSp(32O+M01MOri|_cQ+Q%SoWw!|JwOa3Gy?I=k zOl|P!hOVRct^MANeD=riuVo~8^;B3x?-R_-Jgjq>71}AgcM#z(mfRsX9GSv#yF$9N zZ*@kD3By9F+cdyYUNcvvIKyFLr{G;VQSXJ@TH^bGEG{#xw`y*>J%z$^CZOJ#?>D>P;Fg{KhBlA zFT%}Al92c(4>Vv-30wADK{Yp$t9vQ2>;NiEShw~#Ly)U2#}#q?6r00(XPbPa5ooZp zlDyfO$k%CP5y=Vfw)57JGS5hQW{0%VJzxeqUo*w}k%f}-nb~jr_KKEMPxWOCIQx{u z6oMEfnP)FiWiU&Yw|4rer7(-C<=HAnjt_jgQ#2(UO7<7x?VsVQJIMkRyksy{yplb` zboJ=Oam1ZU>N~{GB$X1>Xusl`r+Lggeohc_J;xj>;8Hgf<`#Vh2SB(+$?sRVwsO>B zE7A<_i+9E7)T3Moc@G15gS0s#WD0{eI0c1s%@nd|?P8T0R0 z0F@U{ltoM*S+RO_5rRO1&@m@eF_#4GK{g0bGzWgw`0wIiM9n`(r&cFpSJRA5lELI_ zHNw#bU$i@$?rgBvjiBb9Z^?a*bM|t24e7VjR;AhWz1NI#&eGndT-|#vJ$oDvb3Weh zxj-KFxFCEEC-SQ2>ngP=u*e=@*H0-{+C$GHIr>pHQ0wkjzPWPM?-OzDCPUj;nMP++ zo5i5s;DYO%F*wbgpCTEE9>LG?P~xOy#-3#xnbuo+o{chKe8%9U6d6NSQBl(=mlInR z)^B?jk^nHn*zh|4IL@7cY!Xd+7r}t+Eb5Emgx7hGb_B;^`M|G7i^|$R<=L53nS24KWT@)954HK;s8%QA9wC{Q|9TMRs5?DyfQ*dQ3tmw)T?Jc#?)B`c-^e61V!Y$0uZdg3E@71V4T(vL z3n-!8sy<91!9*LR z_kvHrs^b{4CvHfNL2D8GoFNa=D*RdENa-mxOjFQm*Mth4fnH0%W~;8jE5}z7`c9pM z4!S;T>x#Zz7;$HM50Vs*vOP&Q!Q+xVf)_#^0-w#!k&o@6K{eNAqu-Gw!82K|Gi#!P~!5X*{!!6=V?@0)UT zAuCuFd#-i-PcrDa{&JR-XHEmf5LA@F>?}2>cZg&{#N~8p{ev$1k6t2f(#*(yAjvhQ zDc7f*=2rwCB`6Q*7|DRFV$8Y$qcsN}nLCZKVfRzMFlL1}nzEEicV5az=kFOM=J05h z&n5N!_;-jtf{yJd)2}=?>l9Pt{o9hx^Ij6>{PV1!YJ!dA#LtgI5(V3|t*)bdO_4P-YrPx{Z6eYKdiF1g$sAcC|uke5- z_2Md4@xcQ11__l+?2!+cHrn|lsD(uISo&UKlpOhH4yzO0YxTF$j;3mv6ym@O{Dfs5 z3ErVg(&_hJ#0s9s*QrKJp`1XHMOf7aiDJwla+cesPMc*b#Rp}hG`@mNIB;Ds4qx#g zB9Xa`6NA(5(Rp>Ov}JFs?<9inX@ojI%aP`4Wsp9cs?0hfvV4hUJLXa~+a{Lc8a$xh zP?_gmtVr`nw<_R|klUq>G;7XdLS0icNXxAZ>79cHfOyj~u)p>o@e_{X;+tu9ADPL_ zbP9kjqod*8LVE2<8OH*#m&Vw2&=uxg0zFtW0uE%`JjXAZ@r^SQHMVBqxwzvF0;UD%ri{f zP5{?l*gezpn41~ApoL^^J-I!22v#h{9naK`{+(Fub?CF%RjhoQSL%I3tHkzg@zdvM z07U`hP;AxrS3JuZv7bj^jP)RO&`PRJOhcwn)|!~e4PY)EJzG^SN&3@B3&ii2A&a7K zcVClUEJdvIoZ+J<^g^#>wFPcUjwKtXcf**npT8u|=DFn?qIp*Dq(Mks%4!Wh&5paN zylG>ikM86@BY6*wyCo$vZOLtqP3+D&8Kkep0--XC>|O1LbOXWI4F`K-VF-}|9`LPl z$G%MK5oUHoTQ9)2n^L>G&NZK9qV)joP>fG;!(_uM@JsQNu7^)rpOc@?H3dQy;oLt_C2Kl_@9m&@i^KXm37!zp$bz zz&U%4Jw)Rtaz1?@&2N}xeZ`6hm`~I`0 zc4hv2DIBl1&chk^RFbnu5ii#x{B1a#-lp$sf;8l+;+v^p6~ z*Sz>oV5&~~C7<3+C^~qHe4#{xgu@BDuZV^x%8a_Xu4;kp&X>4F?NDAV)H~i0% z@KRS^1B5{9fM9Pygfd!2cq+ z%h=jD>AT74|BD_uE(6MsSQ$4=ln;8^SAdMrt>;BzL^uQ!7KYB6TDq)nuCMRvvZ)># zGx84;;g?7GApl=4`N`>NS^4`vJcIz+Pdr&J8?Gn9`e$D_?}!y)3h+jgr6>rj#qmb{ zn^|qYZ;eC?Qfta`);f{w`_L}fPhQq7Iftc3ky(-_s=@DWig(Go${vV*5&!`W@e(XD z;$|v?7DOF1va&5SISQ!$D8|F9Ax=0=(R@24pq9fs4O8)F^LC!cjZfhmfx)3iY*;76 z=AwW!GEMN)n0P(Y6D9x#et+L!_wnd+vi;}|Vy#5q&7GLFW`jwrj?62>HM1OrM!C$l z-4oz! z6w~jYec{vJOQim944wbEt^VTUWXD^O!y@eyh(t$1Mvj6&zH3kX3Vq(}q6v@nB%3Y8 z{rLG+e#k$kSBA-UYbxWx=cC&fq_LJf_wc6sg|3St^6h((PvJQOR{Ysm5U2vcNH997 zu8YxKF(FvQMOR6$lyE-|w|wP3q|#YCU#0`NhDi#Le!Og4wP`o~RRBf^;*VzfjnX{E z=`<)0d9ZNO?v!RP!2jcrn`gUJ%5z^+_vJyHMMBApkX|mUG|d6DNOWpbPe8{ak7B1< z&vk_yS(5_l2YN#9lLc7~8XK4cHzW$ZTapeF52sJ19?ZJ2TB(Cjj5HY4vWDUuOd_KZ z*cgI*vYXSvm!QumYVB?T5%g`#X^Y7?6q#Om_iZSZ`XQcK_E|AwE26>n3HGjSlW%_+ zI?--jj57Z|-YS0g-h6*+A>Xw}6sjz+8 z2B2l57KL3+=yilJMFs!SAg0gO&N41%vEF&)(teI`1po9L$YL!q<5HL=5=Y2)SiZw1 zIE1oGfC6-I=QcO)EZn2JFt-14LuK=QQZD)h_GAV-STnMp((U_&&*hl+0oH@%^DG0N z0cE}KK(1W7D!%vE81s^JwK(w3rDriNb zEdQ;a8cK>wLSupdyhec{uZo}29a5X^_ehz+12H;-0A2!39yMC>2V6e@DK;q!v_ zL>x0@axqK_w860XC#-uGd-VTaj~y;suob@#g(A@Z_oIRT3%c-Mj|O7@BL{qYbeU{@ zrLbz~8H%pUY_8Z6Rr1+i4@N*(&VurI)9HakyPd1y%nF+SjQ-b92Aan%!j-7_v<;h1 z*bZ!_{?<_z2mR6VWkwE&&R&^cXD2t7moqo+AV0W z$x&2jV5eo-VUlTPyEZDRYQz#T}UFQeqPy-c?7uzkq;z0A? zYe3GN`ex&I4Ge<*j~@rae+I$R|0@!nUrwClznJ`!;wJylD}$$JiW$wJ-#$s?zG9;J zS!fn1B%uWv1*7DXNhcP5Qd!!OLT1mdJFwS4%)cCf{ttYmjh05e9`MkkyTb8;C;RE? z=L-TzhTBN5tnB*1bTR(uH%NCZp|N;*-Bd0UB7wdphUH1Zf?kzc-r3u&^Syq%M#>)eV?rDW8%Zui_u#v&XuV|pa1h zwakU;h`dGFb0JDZ;DB+w)@>lB4cUR!E*(EQDCdxISnqAQl^YhI#g>rwc%QXweWCo& z)phC#IC$O$&tidE*x@jj;q^EXx`-Me{|rOYVRyIj%)e;qq{Cb(5B(wwttsIdA295n zr4C2KRH?I~;oQ=(ZpCgQhM+MCFB(Bl{+K_h<+%0w>fY2wW7kxel zQOgeNHv3jqmT%}uOGyVMuV}t+!q4+x? zz()Ukhit8gtcv18_rn-!e7qQK#=u&&N}RxIR^T%~G+;&~cBWEIF-w1GlC;u>EzPPw zMdl4It9#;B&{u#@sd8qvZr{{5CWnjX;bM(Hq?yF=V%2flafTH+4ZI24R`#_kWKg5LCj*K9l>b+pp`X&wUI=#jV2yO*lgOSeZj0HQ6!5}Zh)bIpN|nHXc)R?Gfxa(qHsc-M6um5eGacL zyDtT5=oUjrr>jI(-nQ_yaMhekhbM;@^JiK?9{BRFw^#eNEgIU{ZxN1A6pwyW9XoC^ zrg8eW7-&Tb&uD@qq>Cf=ez&x!oOIzv_+?^yxbk5rf%SSF`g>c6p(-uS64dL1>lsB7 z_QHLIkX$(gSBc@gBtk30u%D5X)wU>5mch^J!{2+KpagrI(tn^>Y$(;18Zdy+Fp_{;BuTX8@1%$4^)?Wd&5KcFnb>W# zbYP+RTRhxvHC68~xp76ue>)NaU9KBqAki^$sgzl!pHbzk*@0l~wUD}Kag--M$kKB%IO^Q*m%OB&(>j`QNu~6n_hfF?KDau zSt9HTGWV9JBFKYy+9!tq#p5O71&^{y4Dfe~+>_naZs)g2U=>KOMkcvu^zgez$9RF; zTNXurdgn{c21$rCdG8IOM}%YGF)%PgO=T21Mkq}?9e5<9%kmDmB@Qc>_yKN^(uS&^S|_6|Hh)Rl%1Eu@PS`HW}~)J1ZW)=5uNpynh8K)AQLjG3oQ8cji(&8 z;)xXTSg*meMZFUBq*9Rh{DVeg+c8DYOy)ITILiU$A(Ly3YtMyPk-lurxnZe6X0Ay~$i~hl z?n(9P7mnE6-CVcik?TDc!05Njdp9FU$Rz;y2W-|zFZ)=Y>m}=s-}ml0jaqQax9^MO z3(*xyA*RKL)2!DsJg(pqiQqn8I>iW6Au+Y!Mdil^d+;_JriAC^6XmisUB@&3v1Wb8 zB*W84yvk!Lp>h>&d24tXH;NQ9h4$BO95*79H6_Ze1>_#=fe}rB)$zq`p?N}~*5>}) zt@ilB=6C%3^(H~UYuqI#uq9kQv0#r~Ny|T75aI^*W=K89GnsJz1TF>vmK|%Qc7g^C zGu+S_b)(R{Q|H@6Z><6@0$a4uiOs$YUQ2FV&Ro>%xbOAy5Fx5$EBb1Rc}GX1D?}4* z(Uq$;9$3IqJfEGXk0^JOmA`X%3Bfa;T4J&dX8WwiN#$Gx26NC7z5FBSz#NeT6i?Pn zS^vaQP$%Fg6h~4l^2t~BK!<+i*dZaM9(mvS)`1OGnnbE0@QY}ViT5}sY`ef`qR?@?3S=FB6ruJCsl(r*y|UTGWRVEE*}D=qnNR@xuBh^n!Hi@CAuzg3#` zpGxCN>2j(7Z!V*N+@tDWvZ>x{6CDq+;Eo*V+cUdTGH? zabf+a)0@yETCQbUO7klH)b(fd$#NCEd4}{<3tNlW`jI~Ya(^}p8}?+$X$lU;XAC?= zz*mQs$;}x%9N4lGAP&rcRY(c3<$dOMS&NZ^)Utr%P3>L`Z*PVW zZ&8^e59xp%EQ5rSgmwQVfyGp*T5PFWLI^&t7H5y}fV$xqU!s73;gH8}Q!XM+%1z?h z!*0LbI`o##&6y^u7IVgK=If=e1EKxZ_a_(U3D5Hv*s<=Pzx1Zrf_DZ+MRn-SZd8*e z<%@Zd@;mzTJy^!)B4si}vQ!3BKQXPLLT~%2abg3%cKKm?fT(j3>frA!sX1n}3NiE5 zi=igg5ZALXs)=y2QJA$C>+Z^!+lMaVQ^Z&=ggF=&(wweAQ7(5EXlYo%$zw`Z%!tgj z$?r*VLS^#Po{FhKxO*JQ$ILGL#d}IX!f-eb1_F`}1p-3zw_Q^I1QTrkaYwz|XpXSa z^)$=*NMcbZHclo7unK>d^j8r7WG)11&`HvA5u1feh1}qF{6)`_kv(tnJ9_VWXqx?QNbOBzlkWv+v`T#D!1$+4AS% zgSvgs0_Ps0x#9UdJMb7G50b8tg4tjB6wCP{JQDc2J2oUDbNtSYQ-Sg&0^MzyhzZCE zKRQVILjw?9Nx0%Bqe}2G^kDVAiCM1HU5)ieoO^8Ef8G^NN~cY6{M>D&dpNE-kOk&} z0nj<}jHs`dofmYsH5z$u83{}QRo6}Q>x(sm$7qL9WQJ9FXVcwl9`7pW!4HX6^^VE& zouUkR*HW5P2zrvBt@w<&B1E6rrSgqgIhATsTATV{S|^h-(^Riv^E(1+hyRy8tKdBL z9sRQ~IRj!yaN~m9BgN)Mc=rLBEX0~GuqM6ZtU9QwZR?1zJaLM56w3DWyg);l5nEE8 z>=3LPg`V_M877D!u}1)(aXe2CpRrOsTN;LowMzEP%4uLwA|fh%Hg}AR+`;OR zvMa}xw*cz85vQaWk*LFl`r4p`t!XE7L#I_s3hOn{FB`^K`+wwV>Va7ZFU zY7ctJe5RQZzE5kvTvk|E4N;5%v3&FR(2SL8f}u9uun7w>H5RaBZ`l;%pSJAQ^gP*n zW|?f|TIvr2`?Bn)2xqMqjYWAc%ib9-$$5`((54FIU1IPOSEWw6PO6nmd-qjP_vC^H z?;GhD35u%(%1|D|4eUDSmeh`+y8%|+()Iwk!fQqAQ0>hD#bl;&;m^dubaCb8%$G(( z87Oq|UEZINR829B_c_dG>K*xO{iI#NEyu4t+%*|~(f83Q?x)MpcNPBN$S+Qs^e&Y& zx^#n1EN~labzeM-GBSi}P#D?}pPgxAp>%&rxC(n@nb6ZaOe0rMT4#f7(nnrIjjCGD zQ$KelFnukE6AB_toBZ^Y+k~wA^=F3BJc~9RPEHpE;^U&(gCq3Q=1mHYdKjcyp_f zE4{hL+?DOTx_EQ5v9PlKWx?$;Vf*v(6KRx@7uo6rm4fW2gKvI~*(OjDc@eFAOne5l zslNW(A*!)Y5ZFD#H9}Eh7ERJ`-<4Dpwwudp!mtt+3fLA2EVL93*px|5QwvSj7R2+( zNLV+DAwtJc={vvs0!poU9^s3dRyp5s@SXTh+y$;01Hh&ld)v^yZG+-BfA0pTqspc7 z{XWfWb<(hKNq=Sxc%DVcIxjZSjr*mL*papy?Q8FbswzfZA*aC~hf;527TaWF!C;ca zg3;0nFft)-;V5-b&SD6mstlknwNZVO*E@e*rF@Oa3>SBXX#&v8Md4<|0Z{b?m z@3`SD^0X=EGSFUTwM0e9WnynUTvcB`Op|vOq^!(lx|rzfBVucB^Nm?SYp~0-v_`LO zky}@_zOu`!WV74a?$Yf_rJ)$gGgr=e@wiqzyBEi#^I={_J{56 z^e^E(OL|iRlplj9fzQ&SNCjbLMmX%Jf`1j#CM5qR3dG`hqtEYl^{lx88tF+!8(jMq zgh%O?5==*g*>1|qbjo#V`C*vc5BUtb^r`cxTZ|sskWa1*-<&J*nS_fe&o7a1HCE8r z%2sS^MM{8}OO}dZA@;f#UfJr!`@Wq{zGKnkG7$+#Sc%K3DgB_SdcT94$<0Hh^2cyra+bT>E7 z_m|OLAHr2ZBwS9f)7&Dfw)Wl2!`tT_&=*jPI*iuKxrhQ1NM*EvwP=GJBh_M*cqWnz zhswzFsL_mcbt9t(;b1^I6Xt51#96Ot)lVenHQc2sN>;0WU(+g=ah?=>Qpit`S`L7O zxO*{E859nCfwf0PQ%rRDK=z}Pw&}FGUzY$)K(fD}xVQ6eiRB{#I=O7}jt4;!F_|yB zL7fu<^0^Js+p~UB26-g0x-y^_>2x({&HoVJYuu8wnR$5KEA_rCGSMu2D;TB&P13BQ zJP#hjU;;e|aZC32`yOncVQ<^? ze~9lN+u2Ef22eeJ6Mpw+6a16P`A>~=Ql|fp!gZx8r1aezgq&_cjw(G?AQBr1c{5dS z&xb-4!>pu9QO)c}mR4Hp)h92CeOlXInhV#<363MOn}4hT)-b3=7v9q)Q)q!u2-SR@ zeSw>R1A!v6xO%)bhvE{P2@1^_Q@z7gzJR24n$)HkX?1q((nHvD7q6viq6YkKhfT@y zb#bd5BT%L^bYY#$*t&$^lp2`f=Sk1dCd?_N#N#ao*d@1qMQxBCOKN z^{@lx^h+yAspUMwQ_R1+a*|}`PRzYRqBxK@3@Rp!_5}VKL{HDb=KmC;r8$Aiw%EFq z<~dO?X?czR@4vmn@LhJ|A09Wv-y`Dv$NcGE&a{8t)RZ(8*HsYT;USDVBtR_)(8cy! z+g65}L0JaAQC8W*+SiFk@UYwpJH{f2@F(Ml%Zxgu>&}bna3;jd;6JZ~yccpCwZ|LF zhGtATu@vxhyqveBG|X*ZzCR-OGNr@5E>>jq%ZhJaIKd@&0;~@>T_i~?pBI*8Jw z@f_Go@S)#E&Yd@muKhBqN60$PwL)ASMIvg00}v~yD}uZUaZfZHLi&X0wlfxQS8Z~o4>a3tMh<5HE72MW7ejLkRtH;;#3t!lK z5fSdj>V_FE&<6-kT&90zrobj3z>Qxmm7Xbis1A{8MGN+$0#=oxG--#~G|JD*fAUlq zhkrTI-s8#*e`$|&pBQBHw}h3S#>1$25rKlj%n^u=;}QqANeGn)M_ge!aBO~5!)d6XNaYdKzfRl38j9=Wvtc8;ALpctpnhQIk3N!s#2Q~8!$=2g{tq1204We&R zDJPahj==qA`7GBAuWb_TYK>&OF)~+eex6}$m+9F-fIjp_u4e3U4Dl`%ufNoGKl0p= zUG^ zBtly_p(-yk0daMJ!%q|hUt$5)SPo;3*od*W?_1bcUgAx+?sP%c!o_5=0!ONkoK6=( z(x}WzKXlINClm~mPAGi*D>GHud_`#;1iCl2(4LqsUz$H}KZ^H0YBNmMJ+&ykW7N&1 zj&S;8jACH*c?-S&`b-Vyt;mBBw3_YpRuXp1nYw*TK9UW(%!H9cC=*hT|_%Qfh3L;%Q zA{dhq4KpUDvOO<&9yZe6u5W&_gWS0F_r^rCLE|r`FE$qS@tCJQ6)U5k#-Bn8+NqW* zp0c^#G+E29+rJf8&{^99Q5DNKN7&o4Qk?hDpaoFSBL+5+qa}qQGqQ9t=_bl@kbXB| z6!CyVs0K1ASxYw7akOI1?O9Nc0xE>2Np^ZDjXP~~=;ck6MIOrgVfFzVoGjQh$@wyQ z>!f6~jtu?Xo`F3vhJjKDL5F4ZDgM=sdJKrA?Hiuzr)-wSqm50UzH_7}bI}yRksTAk z3b$w$>>?MVV230NlGoE-G}y|CnJyaXld4!BvKI}0{Aa~b;z>kXNcuwgpwQ7Jd2VMc z8yNTD*fodB!*bgtI3hTcr8ad}8ueuwRhU@?xoa{&KzIuV+3g#`MzRM3%3CM0H(#dz z7E`sPLv}BNps!}rHxW#avWjp!680a2H4y!6QXR`ykm8ar37QIa=!TRV{t|cV#Tdh_ z0n~Ew$Nho6KbH!gNMiFS6*P_KEu-?PG8~#K2|`A{yG!sRczg~s2Lzc0FQH5XDW;Q# zG=HQ3M`0{-8O`UBzk~qim?Plk3f)O(%D% zsgEZVQO8{^_R?6uhDtxad5_`Vde07+(Kc;W&qbfjc1O54rI=|Kx9p69vbX~L=^=e! zm+g3HZC|+$bIS?514^521iz)WBfEwSeHv#7)n36 z0>7TLxjH$8CjWakpd$wleDU?`84We{+y&o@cwsO-^xF11T4z35&cWyV#NCJVnU9Ma zo!6Xo*yRr~k@%)r5q+)v5K7XHw9&n)Pq}*uvB_|;F{#;OfR^--b$MicV>06(d!dr1 z2Ju12EnJAArM0$GPHm2N_|J@upVdisBt5pEBKBVQ z-FMb|KW4=IKl;~u8+|lP)x|QK=B-l@!KC?)#Txn~B(rs;7=HMciy<0^f@s0?uN^ox zwQ8?WpysGP>31)0ni>pV9~@jU2J1PTUQq-PYI+XKx7s=Yj=j3grHrFyT;?8gm;&e1 zq=1AmqKU&vgsF6Q>n}OYblnoWR}x*MD^00jZiuJr){a2L7?H%`m3oU%`c)PzF{``z zniGd!z_$-8Xj*s7T&hq zQ?FYh(btQ{jKoq%QFhWsP?LsYZ#kvw$?~w%`ib6R7b(IU;kKDn^>aLr!Py$)zxR4yK6|4q}cS*0(`Nl9Er| zY;!l#IlYE+E*Qcc)rSmt-@|G-=6goVq@;^h3*(+YL&3}Xocz2Sar@;5hY{Xbhkyr; zN4XTh7rys9m;n3pZ+?hmfNC$zKP{aJ;@daTf95;xVQXjuFjfPYnA-hYUH^xEL{(c| zTl7yo>p13y0D-S*C8iHawUH^&IF_l=Q4S&Hk_hx#W|9ayZm;v8*S4R3**`2adG8E1 zee3uu*~`dN(>^&lC`MLB(Pf_< z&%{7)Wz;dXxC^Xs68=g~*1^`;Ranm>qft7T z8#qea?tUbEuXQ2XE!IE*h{_`^Lul}#H1P?eI)_@+NP<3Z8&0^P|D!y-7lLqWq7CFDzfvbwe}zgU*ez) z(|wkD+;(>08&@8xOu{G0N~VqSljaU3D@7wMX?sjep@{QHmdnfSG!BS-8R>z} z-ltC=g+{KGkO<~@PbvwqB%YCCy!V)WQKeU>MJVnX@3yVxpt<6wc$Bs$Y8ip_5_9dT zt)8}M=0?~jbSXHtE|uDiMsmH_>&z{)PqkiSHp;ZIZr=%43lh)zL6CydDP%K=b4GPE z{+PIKLLOB=x!q!wdtOK%`_~R6g!jg^(jZ1R(MbeVczi~INSB;!Jyw&F&eN`%!3-^7 z@NM1=8Bi3 z!KM{!!k(sdy2_%IxrR39%vV;Z>IG2sr8(@h`(mK@X5-Cfo*eB@Fm@oSc8~0AF2^Hp zz149?a(a19KF4Izb&mkAY=W}Yf@Y6WY@n7>bEEqrfDk>GeGnfI+$3FI1dS!%$h1FN zG_A=jv*?%pd}W3hS(k9n_Ug0%L}xU+m7(BIX%<^p_^wy(K5Z@i9gr)$JbmoYNJASI zCZ$yklSr#4B4eox!o6O^!zLEYG-4XS_#8)(4rjr8zSzq%&R*@JoBulF4P2mc4;xl= z|EdN@aiiA`NA+Z;!CflFJo)o`Dn?4b!%5;PrJ{&R)*p!ELJDuyORrc8nxllu#6kY_ zigbXVYpJ_BC4J6{8(;A?VVd23*kY!aThMYK-uM}qd?*~gVn{P_KG)-ah<5?+%s6&2 z+nM!l(+bnn1pC8XPxkM+8eLvlNZNlG#{U1rar!@(FF>c@95=aO8ae;PJ=J5d=!}sD zhHhv$n-UU=eE-YB?#EAjQ|o8o3(4|!&+>{MU%sAina1)0v}n9ns;`O|;95n3CZ~qK z$ybsg0ZPdxveAiEZ^XCcu2@e@KCV zWUy#*T_0|pD^{h~)|11RhJ$zu8=s{jc^(5ngtIkP9 zbYyO-)1$|2qGQPS<8GMuTZcoEV4E|b^-PGt=9E)a*?NJ6%Z0f=V5663snzJlK-^xc zj%!|-ht~$xnR?krYL;dbal(|_g>7|7b>5j88xLFlIj`?}dsTZT}t~~C-&_b^Cq%*Cy zJ}>UmI8Q33OG8{~lz14~r_9}Y+x}L9ijI7r1UR8$d%uv95PqaAZ>P7vKTd>-HH0_5 zvX9B{n*6|oM~zS))QHjgI3`LYHKGY z!Ud`)BAO(6)te5NYqa$Oo&xN`k6@{SBA3LxmV-L$mT0Nvpc0?bUc9=sivaL95@({u z%&AA^C6l%+o}9gC!L+}oYDZ0TjLht#_U*vy;ArJhsayojD{ZxF|<|WZzLoP1eth=GtqE}%}1rtbLjxZOfeCO0t8m> zrT#i6z@>n3B@4A_>ETsjkS7(&>1K)9}MC2KC6sDWk?+yxos3-gD@tV<#My2J+s9CN-X|D z-!~##x?K*{Lx9X%u22D(GhUtqpB1Nz1m{Wbcf}^oVBm(%UzDN?TtE$zShd9y{>hLS z#ki^a-wSd9ehtd&5E>{o-4LR`cHKxCQBixuua>>NR}d;=Uw;~odt0xFplCQ4)APk6(3O7$dU_}#x}8H} zuCV~815CP}W%{D?*U@3Bpby3ljf=L`kzCP0do=g?oB|q^PPrk$WEf}Y<^>|sgH5S} zdCM(8%a=|mWRXPoAg+@t}ByWTy>J6{GRg`HWlvQ8FCWQDV;mfed;Vms9{l&zP z7Y%5;O!);mGhrLNEq?hlz>A@hMv?-NA8$B$`6?6So9Rn2_4 zFSJ7G_1vh)&2602v2>@T61Ft^FJIu?Hcl#88w=F^yZMn0+&*EyHQAh_J?equkaUsL z_4qyCs{?g6hiM;M_Jmy`1-CB^p4+=Tui55$?JoQLR?)TU2r$R2<{Zg6ruO3%!A%Wu z-K|7NRDY!zTzL_9K%Wg0(H8d_roI1)CVm*^HbcPA=$(;;ncjZ3gTU#CfOOmo{CdIc z{LK~sL(4q!imlX=r|;INqR29Q9DSDA&rPxST@>4ezZs=9S0kA@{J{c;e|{wY_i^On46t^hH~g>hV;Vbdi6V#+{AG;P zVU9B?S|Bzc8W1Z`96>QKDx!m7kBR`(PTwJKMpY)Qtje2VuqnA73XT6O1WA4X`Z)ho zK^6bO_kF9|_XTR35)a}2;2>jEbOB@uv!Vg=$GOn>LSwkKCV91MMVs87+0>-Rscw03 z$tu}qRr|{FiLJGkAvyA4zz47)I!=N&k(<}U4_*%?9|}Pb1U$*$v2*N4P0kXbVZNrL z^64S6B4`@q#i@HC>WUAUt{=WbvUK)Y*9vcJVDsg4!9f7d@)ROh6zeN*Dg`77`B5r?@f(8*&l)$tD7F;?u#Jwa31A}$G>}=Esrb}%edF3BWu0}3frRBUE}1X z*NG}WkrfQ0YUfT;Q?K3Mo@?GEqlc#9+&-1D41rrhG={SfgIgJYL0uvx#}qpDU6b6` z?WhkiJ?NoMV^TyL zDgAR?jX?jiSJ!_&V3PdzpMT3cjMbI@Er1a;U3>1@qUQEplm8kR3)#>RFav_lLMCP8 zf76${b7ni&O#^!&Gk=n94e?H7*BLhe?fa8|?76vd02;|AA#KV-&P#4fzsL6-YFI^&OcxJgUQkgjkr`mg#($=_KU4 z7dUW!)C26}kG$X4;u_l8y85_0PSfcKKnU)=n0jJk%~ySzQFr-cYF+K5FGQw>F+_gW+JK*+My^ z^Gl!>a>4M}bhZ$qirhN_)PM0wxp;fH&IqoF;VJ`7%Bb(k&}p@1(aTg4n&u2cqGGNA zRT*{K&E-)h3WGn{^FK{N%Gf&C(6v>e6luq?1TUNV&K3MFaWfRr*yezKS=i=u($~Yk z1%$id@t$@;ufM8cIIhzM{am6{9iX0Zr^NwvBRwP2CQ-6 zL6}z=jZ#=t8>ZFe7v0&LFCT(dbMmaC;mu`gxQ3eF$+aB^az9yuhO`7pw`nL+55i=b zaC33!H+aI1UhXvui-oq7`?z=wKkS6O|G|~VMEDLV8Jf23H%5%MNv$WxFRk|K%f>jN zZfBk`W@iCvmL<8`P1btjHwSC2%1YbD7BAYsD3;#9K0G&`!Ixjh)7+#wdMexI8XsE| z6bhKXd#o9sMN9_9kxJH@S-trCJNIjw;m=bj5f zq3Dd)&eS{I7!EV-Wq`lFf$6L4vEGEkD4xU?ti4BCvZN+U29bq^zY|tpH6W zLsO-e-b#L%Ifn)=F|g?Pw*ZwZ94oPcozslPMpk z#Ku;@9wR!o#8pqM&3r72q=pF#k;|tX;tt?SfFS%b8?(z%qqqY+t3*vl%OiCGMezv< za}|C2Sk|(6jv}_LNq{!WI5PPaqjmauqDYb3tPDfGm)M}m@2Ymjwrxol)Q=>1-lr?% z%Py>Jaxl`{?J~313q>WJ&ILMDC4jMM# ziyTn&OBCj57rO?YqTNsm(VwxmESPHV)SZy+1@2<4?#Y&_+h$X^P`eoEDuvfPoSmiP zU{yTqq8Ivwq^t=(Z94jDH%NMU76X}=2zw|4R>z3zOJ(zP^~X&m{>U(bPgk2Hc(aoWP;R;@(fPMd_@7AhAHOw>*Ep2M6^n{wd{i42QGh z%QuU57Z_?X1j!ONJ4|6|&^i?gyTSK-1lg!;epJ#! zy{n(5UC0<@2Df=epifPz3S>&X62}6E*gSJsRok;OdudSF904zZ@7|qKUV!g{*DUuPB$U*{L%JyR?AW($?7A}H3X<*6h06i5qhyZxq=_y{kO1QpINk0?&xLw`1P z$W9vch!4L;J`^RlC)wZ*E?Jv0l(ag&fy$O9_Z7+ZJPK;bmER^Me76K0_WdQP*xQoO zbe4YdxZzeuxw@*;8{&fuQONC6H*~s%Atw63#~DJKZz}>W3gF`p=@>OHu*1<`AaE%S zj>^WD&&rF{qI@qw>@@EE^G21A791%mXj^t)=PxtgcDbA<$js|{TpRex*co8t~_s%7+lI*-oEx35A*)$z`!pGyD1US7( zGv@ci)nkWo3^A(ns;{?%Zi%V0J{9MVJ=W|H+Eq|>jkO}n$cPk3dF$4uc}iLH{3Umtc&N88o9oG318)-~7*M{- z1@xj^Jezj9U?RRW8NyJ6iQ)}Iud2IDMr^tc$k**#8zZ$amglq#XIgBSuOalyczso0 z3P=-olS@V3QC>0PWhH@EtQiUmZSbTop@KJ6sWABpfP!|jgJ~QwNgNUg^_O?+5#3$; zuM_Jw6JfI2YZAsWEBJaGF2hc2fNW`_n@s+u`;p4cxB@$6Qb+q zy<`EzhQYQIz^oQ05-r=eD*4x@r7ywA-1NDE42|l?f97(C*#l$gUV5w!&d5`rV$ZtZ zTMz1K%?=kmA+MTJ&h`Avo&&Y@0oD3N6U;U25g)2Jk@$Gx{fg7lk;<)78ijc*F#sOY z;|zC~0+gUakAy)fD?SZ+c{nt6bB&F6P^?wAj7p>H2!%UkA+ka~HG$bXe0t>W9c*Mv zrRA*Ika|}8%FSjJ)*OM6EjC2C6u>gbf~K|dZ1HC)w@lVmS|9{M-BoTBp z|5xHglJZ|70+b(gb{l4h7$Xt6k>Omm1wi4(1YBkW(qLFAG&c!tjVVft8+10q=)^se z$XQ`zpWl2FJy+=%{b!fqd8c`wPVUy7E>Bvna(aL?#Dn~Da(ZaGXJu*@Ty^lcvS}K5 zq%BA%(W|%pW}Ghq!9njtQYUlgp&I8H-GK9~Y&vFkFZ_)WTQpGqe3c2U=6&!IfsPf_ z*wllp7dB9l-(f2D4FiSJg@VN@OxE4)uE&pHRQKErrK;)F{MCvx2WF>w!|a3Edr&m7 zZ9-oO{+K#`QU#xZYCafbB0fSa?*&~PixDe&h2zo03kbgb`GUDm%388RRs;?2r^sfn zd`6GF2n{EVymDQ`D_{N|MhEp;=x)jU1oDI(nFhRl)R5iyJ53HHH)j_t}()cik1_3 zxSE-FzdUAayno)^q5tIUG@Y56cDvJ0s<+{4&+}-vF_r1)OY+}!46yR2o*xS%V>&?A z<3nXtrU){gMDW&fD92QGV)6`fyz`hsM@OT4itO+gpkT|;9XWIwYvI5E#yBhsId!O* zpp|EpU2ttBr79`kn&O!2DfMb1R&;$J?(PqoDff0xfhG?|3s&h@A}Xt%C6}=?PJP*u zV;sQLdiM-I{8*p`^LPtzEiMZ-Q(fSlUZ^@n3aBqg(e)BnY4F0ns{isg`FQ16#f-;e z$3;p&XUEV2o!y419GNLj@(IG+r9)rm-9rthJxji-=V%2F z(>o&bkUh>torM1MA_V|bFMVYHYMu?hr0{7OIU^hQ&b(*6{QBlUpa=82T8dF9zFEcyLB>PUSfB{_XUuP{tb^ylgQ zpkIdtWD)Ef)GnDiAWjk-(&!+JD(!va(0vl~Mj!qHj)o-k^v@9xR=_o98n`Zfvb2O- zWSuuL5_M`MBV-CN`ICQt&7(Em1^a6a^a}DnGZFrsTchr7sAOsaa5Ob`2H2V_{5_cQ zza(dFkzJgdLlL(`mZHmExD?TbEI)e@2pI)}pNraDQxun)WY=V8M(A%NAcc0p|Mxnm zaczdfKa6bB$M%Z%Xx%CM@yFNA1NKkQM2zRrQP-P*!gLqu`L>EQv1(hjK$UpwJm^aZ zN@`q3@)A6#rbCv~XceyQcH;VY)yajnq zes?MJk!l7N!&b*Gx{PFoOexvN==m*+tAj4}j84PS5HE3WZ50;n(rPmm{oC@?6|`tn zu~%6^=ZR?b&xQ=mZC(y5%hK}1z!n&7a z_O?o=0;;Q4whKDu{brU0ww6rGA4e+@?{;vDUkamMghUu7p;lt^m0`NFRgfu$3I|-Q zvQzIVR?Ielv% z5d=r11<#7%TMmp~VG$}%N;pr7*D@2x8$Gtvt_wGBPw9CzcNvLoo4M6sOUGLU^zDWi zeR}h4dk}p?t`osk;V!c16bj)Cx_5Xox%j}&!00EmKMB(n_jWc$4SOEvtU(G``0`sA z`#?&E=H8B4<2d{G&3}o@@0elll`+bD*}p1#IlT%IgvHV`BuSdjy`?#=^93cQDo(}n ziL%8#k>QTsKrdQnu*N-F48$Wdn`=A^{qEFnz?}l-v37c0V*~0Y`*h^Ub!nM?%>&3Kke)^-j+&TMF=R0=ymJ$vta?4L7`BIK7_n%*BbuX=$;hYq962D5cV zgEhK)BmJp;!Wmr*S%GrsB1De zUEIuOclBj;_Q$LhAp;o0c|HbZjJAiZN0}q1se0=Hnwb)4fdN@8~UdJ(mS$udXP z^eLrsi&WX{C?NX@g@sWh=c0yS;Fojo)ID>gc#K+C*I@t7ZTeUXRs=g z{{D$_F1)z~2EK^}mx)HOTPooUB6kguzpNpJg=wf;B>Ye|s@mc*zL#!EF>`allhi2jXm zwSpzE#*H9^_{J_FnLPI}Zm4#O7|o5!+gYOid zES}-{illjbZL6YP0zJfwGqag&rrL7zR9h;Wc^OZP$Hg$!o(}9;bTN7f&akgM0Z?F= zHM;Bf#LKV?$kiMUS}4{N$w4dkYRnJ^5m5~uP{Kfo3)+q%glI;VHPmT&e?$4Mmj$an z$V?PqpR7{41!wzkL);SsQAwD(c4rq6@koFP$Q}S}!926@t>Dc7!cHN4;H;wp715?cpn0a&TNmYzBVws=OED5B?gwq=z_CcihJ%f-!WbQ4*csG< z+8BGN=HlWkGT8Bh+l8?jZB~wJKWd>|km`U+r4rfex0Gm&3QdCn$uPNcS|yg5;2o#h+7AKZ zkD3eQLEn*?=2v(7tNM$Hkum;9>aV~d4wAt-y0ep)v`9V93iQzUxL1A9J&bnswCgT&a7JVf=ST(z&z)> z!z?1cT!bUlzTfg<_QV*_b%j>JYpQ#{Sg~xFd0iIJri6)S>kmLbY*@0(yjmH~XH1n#5=WEc5uI|8gBtppN^vC4G!L%spH_Zh*85`qJj7vP zzVrH4j!scwCLa>j{HRu^-qg+YYIAzn9}|%4VHBSv>rr%JJ|v)i0V9$);)=U4)?unh zHNUW1DR0oaZq(n&Zrt7p<93*_UJ+UNg)02FjoUS` zQ7rBuc!V$W^%uO8)Ad_|HCMrPaOEiIg{!JKv z1o==R`KL42A^tEt7;a>z10J!VQ#Tmistsyfrl#z#Nb)e!5wL zKufc2K;Y=*Wj+z?C>g1eU?Ej5MR<5Py|;hP0Q~2> z;a*zuW@Uh^I_@OPsj^w7 zI;*;-&QbYf#c6qbxh}r+twv9l^>O!MotdmnkNi%aN7z=W(Q3EPIPq?K3>-y*Nilj>q)htg6T$v*VB#!yBg_n1oIm7Q5eGgL7gY7=??LR zlVoVNki8sHY{7Gr>3N(>jMf!=>R&~aRV(8PI=T%@A*K-SgavaUpc-1iNIES2lQO9wUo1((YL_wIJaV<R5emGVfn za^ei`EX#5R;fBn$Xk4LTIiQHCsK5m0+4aNzj9Id|?g&H8yj<-PqHRNZE(OW4qao2c z+yzGzOx;3N*#yA8@P{{8rf|BF?9@i!hLBgFp`V$ZGNoVp)LymAn~yv6W4PAZu)XNR z=aM=ys^uf|NOam3P2`c4L=UDNa%YRe^y!RI@`@oj7SY-o_Mymw8rT6(>KI45ZAc#( zYL10M`mbT03)4-Wf!?mryy*}}l~5|_F^b~rss+`x6`}%t_tnSO?Bc+Op>;F+)No=_ zLRpARu%zT&-1KUzX6y-FK8@Ng4u}#A_mjoDErGg1sSojzN4d!lgdHQiqgBgxZBb18 zMgd2O}JG$WfOEt(VLyA!jp9fi{ zO>*mF+bsUv@$2t?Tilp*%vB;1&J#1$66#0JcOS6^gy;B!A()*ZU|y}FuxwMN-idwL z+j1E@nI+bxTzt{;5VOYl{pz8%F6jMG#C9D-SWW|qS&_8u;q{`L$SF6JW4|J)l%|mL z122n-a1|b4u1<|hQ!{ob$;K`qy%!^ADqJ~yGk8N=ezyiL`dpUD*O{}MbG+|Zc8@gKT+)=DAF;9L+ti7 zyCpR!3{FtkQ{|}fyOYd4W0|;&hogHjP%<2Od)jGb!DG(yvRQ8DFm5Dy`xU=rcZ%^#335wq$yPrI`P-f9)WNN3|V-e1s zLB7Ocs`{~%Bz{-Tb6A9L$sS?$4wj|?@*`h+3Dfu#8 zr1{{E?|~H_<_sl7NbX}imz^r6qwzFRmv}D({qDAK?S#_vQ}-E`(ze9$y%a`%Z#W-! zM)j8EM_=tSi>+e?4H9w}$z^{7MCkZ~c_P@U&-8)m4??8f>K~$^Idm1?siTj4lTwr+ zEaYXS!F|erqgo>8YON-zp&CpfCr~;J6wIC?xsB$m%B?Bzbs)=HTxMD{DTy#A@hDQ% zNeqTJPR6fjsxE@2OClj6z|I{0?dS*b&c>Jwuv{iLa11&o&#rg4ga)&_IoZN^6|ZHD zTw;)kUS*H4th~?LDuvP_TRXV59Bl_pJ}FH7Rz9uWz=Q^4xAHtEN;|X3Ysao&oV)K_ zxdhMhdYWF|rHnfCVa{G=UmBoP+XFpGRpc5e`BUrRg_v|mgxCcFf3V?J{C1oMci1R?4K-=^wCCLU*nwKE-2Xbtxg#Fc8?~C ze39Vw3165)qv!iQp_JS&@`M7NnggReqpV^YS;Ez=f0FbepJN8GMVdQ4pLA)+NNRgP@tcoiKXknHKNocWed!_U zW9MI(Z^O1fGma=Md}U}BZ|UqBaT9<-QpBLkYm1S+>O;tBv&0Rul010{rT!AagXw=x zsK|?V{gmNpaFc5nbdUY^@l9-5vE5_n7z^PJz%%3t_yIKCde`7Sm6bCLefdtLhsdlw z+}wUA_v%Z1Ec%R1`e{n@MW2XTvug>7Taz!;moCYYuOb9V%Zs!r-4888bccmFUzo4y zEnX6a8svRniFKQpD5C_OX7~rt&{G?jBjHKSmFlrT!ZKa7MSZ7xi)wz50)4~fjS+Mo30?Dx5EX&?X(aYRh{JY{n}t-s0j zd_2E{{_@Z<->%Wypzofslq&#etuy0tZ`q#;Wi09#Led2#&#SdfEUAgw=r&_1W&G%) zrF7JqA7OWAwp)bMrh#H)iu7mvNhr?iEWgZZ=;c|E$1Q6( z{@Px>stF4?hR0JIEOxuPNiX$448&+(dInpfwZ(pwW1C>Ov&#-I&FCa5+z-Z}d?~^8 zrx4!xf*=ZICV8x90I6_-h8exJ^NYx~S{;Jv7Z|K;lM}@X8pL*k@-h$KWk5`_+te-H z)T2zHDxw0W2K8gHA>T)gCiGrul(kFdDjZJ1@SK0sj-)4@iTLDz+er<7-3{G#2NIt} zEm)TfPDQC6rM+u2IF?Rn({;mbsODDc*{nZHPF4IpnpBceUb1JUt!Ris8Jz8N4Z*T& z-Q1}UgfRrC;8HtIUmB8JJO^@yj+D12TYg~zh@sRFb&LQ!9-wb)R6?WRIRx0UWx zP53cU!0&x`wg*9G(Ue>ZYsV_sO+VlOhmH~K$}h{iQ=BASMq4P8#&iLzq!nWnPxye| z(a19&@3}(wNTgdRVW1_;4ay{V)M+dov$l!UqE*PkBEOk`pFeDMhPqjKJDjXgU2n59 zrL7|+c)AxMH(nK{T};X#qmD_aKY%dc;G7?^OMPDgo0~DkD{+|}qaflY?~qD#3;Z!P zM=8l#T#xyP2z-@`r+Q_#^j3&DaYj!0gQ&(Ipc8I;F%h~c81D#CV$7cjb$WD|Lj zJJ(VA$yQFBAPZ+l+!8_+BZOTDrr-#aSLG@@yy9xpO*?p1uk#t6uwtX*9i`_|TuL6r z4$(81H=|b1?Qw!k2j1cxUh(ewGxwPQ5l(+*PtLad-&~|+irwPBfBQBA z^#2;)_YYRD|Ju4L>Plk^qVTqat*}NtbTs`?Xn)Q%($Nw$(xO44Km{Rfo@K{mUovra zb=_DA)j0J%RnCL|`2L|dnDG-u>PArivd!se-RW@i<>Tmx{@a-bL1{*Y*@YDXsY7|x zn2S+`!`xvmo{6;vC!AV9wc|qR_-xzRAYEw=)t)=61owhQk?IDTZPid`TOH-P^i*c3 z#Kq+5kk*CG^&~i=Kxu?{YD3iWp&?F)v~`Y~YM%pb~K% zojRM_*IGYw-#Rad|5s6)Q)kb|3$mfn)722%tqjE#M9oCjRdy$Ud*O@XIh7=F)2iZ* zHq8vsrrOJrowBn7YPdhuQ6wY39uA8cs<2X*+z_ldRY#l%AFqdYBW{CH!$?x~@#P!l zAOnNo?oT;dT0`TYMzt5f%+PoX%)I6I9U!+$1BHPWSI?pbA`T)BIxNL^2wvGo`#0fC z`y%xx@V9Sm;Qur0^1s@osEwT^;I9Mzui(ai@0eNtvTl(3wv|tk>&Q%4R-j}QX~SAb zsx!x;BeV-f4v>+^Z4^m{6Z~Cb*ay}Q@U~FY7X6|M?J=H2Oz$)Zs?teMIr#Zp1Um`|`-=L5~H!n`S`b*T^D$1vlv&Plp z)1;@K1=hlAZGB}^9YB*c?hxGFU4s+c-Q687T-@E=-JReBcL>4VEm0*C1Ve_9g zae^V9FGi~5aDy86OeRBH`BP(f`CzmUXgSn4^zB&8R4a?70i42u)o->5`pnb8OhxQOR{r2mbDZv%A+dB3)T2jbpB8iyhG-x zP#}Z{S=CVbWu!0^wS7&kz1?m(W8p$*Vc8mg@M-Qr(WBz`Lan!rqV?RnkiXw%|JcJR z-$+2Q>q=M#nT_U-`a~)`OfbjNI702ki>~KF;2GITk&jToVI-@Dj*S8!Mg$C@;K3YH z4Ze+=T%8%=;UyFQ#Qoa;3EB`lq&4_^$`MN(&4EIk&5@QT{utl(8%2$&J&gO2zGn_W zAZck4A8kpB!tg8 z=UE-aH60aJN8OoiY9Iv`D={x0E&ZJSM%oY8>$G|*YR$4`gt@oknPnD&O7DCV-)&GH zBe)`DXwv5N57nQAQJOd`*TPX4od!Cp1($5aT_1CAaj8JdqcDN9PfTcjeU{ruur+L9 z(N(&&P!qE__+N*!g0;~s{sWH=c9^cYv5~lfjZoG=wC_a8&?12@=gh4mj}oF?aM{^z zQHmKEZ5isfZlTqb5<_U0>4BWSIVsedFuxgL@1>^TS z>n`JUy`RkANz6EC7%2(@;avDkTP8I`00dmiwRCH6Owv-y0r{Wt+jrxis z{H$sSbtFa;?1Vgaiavila^DmbgA&r_1CCigajX+rn>ib}G`P5$HQ3#p8{9uUE<^s1 zbQebco~SD@sm(P`nzMsf7|F10_z)wj!IOX{i>yc5HJut_VlUo{nvOA$eog&Q*DW{| zOc2WG+W@ufNTTo4!!6j+$MNnTT%5vx=4`ek2Iey}>wmLyzh@R9C-n$2j!#h2Q;bwr z^`zg70^Z_qKWi9K-sHP2A5Y5jIU{N7Q?_s2zbMv(r8tS|$&$mYO zQ7TTxzS*J>ACuasq2u|N&pFa4{k{m~2~R!KU9tQz5p-U@7B@;7k;?GiX18b8Q(W=H z!YDE0F>m@sB(qP%@fX^H!~Khfxi~8+GrmSTt1Qk1@K`Y}Gmi?Y+VwlU2D54=lF#7qR zv!tg-OMX-iYaymB*qY4bkGPf`^aGDcG3zT+C~u8M4OM)O6-~D}Fq-WX{&k#>PsTvx zCLsET5G^_QeL>mFTN_DiY)nI1L``08oT{V{I4NJ4~i<7l~$ zs;r!?M?Jkxq$r&Y1tC(o3%nlw&}e=D>U`U2Bs>7S>1$PDZtS_#5~SLgOKsw>3p-fGGSmi8TWVcw24`7=Hxbs~nNmqDiw zib^o(o-O%=bDoMU1*rYYN2{w#8dMWzyKkFrmx@tEjUK#h39!+ewpe(7#TjOSF`1S{ zhQCQV&?B*pEF4wSIVtWsj4P4QCvR@yv1hm(i=z&@j^oQ9h)3<&HV|SNE2f6GxqZML zSfM%$(U(lwbLjV15OGK#_;%8{wkfDs4)3pFDHP=iog(JW*yJte<#C|*jZo7T z3j2kBw{Gv#XzQ=1ie2N9`cCzYl|zWL2_%;x1vH53n))HC`VqotPyVw}6@lkdWQgd_ zpc5nTe2)d@QGzC+x0a0-IBCBHfn_tRB`<}$HhYt$EKW+a3u05p%{q5?iz1WGpRg7P z4l&)%6-fs_=B8j1%d8S0s~pZT&gmBw=~MsU>_s3_TB570z8Q?5f!y}3Nae>DUHWMK zp+>=9%?-S#M2T~ zv-9KydmSfDp?efMoiO_!agNcxIA7O!hNk-Tr=6i~oa#{X#Z9)kG4NwV6}Q@@FJmT^ z{i;cg7ggP~3kXD_-7VAgG0VBy6>ZGhc>&?rMix2zz822)9gSLJtdz1fD7||bpth+l zpmm76L(X8%AIZFU{hP>*ss^8e< z&>G;)3^yvop|8f(!l}Xr4%f+}_vSO9@v#NY(LJsVh-s^$B@do1#M#DC4mg7u%6pOeELdZpv)&PjTF_y1t}sZ45sP&Ga1Qe<6?_^Glq*NZYaw z!~b>nolbPmL}6t=dwew9yC$pI_oke+rK{KtXR+JZvef_C6Ph>2GCVNlBA_AiP??p( z5S)sjlbIv3ZbYp{Xz^sgL2GEC)1~F6THYRMXa&}DRT`gr?O5q#6L~Y*){GI!R@_sR zzrd>gCM3Ai8l9gqJ4fkW_Mw;AfXZ{Fr*L|5lb_~Fp>ZDutz#wsb*SNnYuf;(dvh<{ zZtcq$Vs%m=VR>n_dgdUgT^we<=Gy;G6gq!-kB+N3)1{84Ux!uAE(tFhxf_Dtu$)`BlH|u zM;W|EGr}g8TvTa@0@@p{DWz(A)DS~NHA+NZj6f zOAx9l1yq~m%u#uRWrf7K%sD@ZKpK7#%L6tAix|UFxDbDf z@$5yoDzj=Vhe_pX)JmvXe>WG_K?`D=q@$iutlq0t+Z?}9U2&N~iA(wT;gGVy+`)6# zmji6~m9kHzADlC~#+-S`6pe9u$w##45&Pk7%WFh2>7i}&kQTFfO;3dGijU^utvkfj znZ)bqF1b2BR-7xlXIt``7A#rXpfa+5b_&iWR$y6$sHAk;mi7xD#Seg(k`&$Z!z66k zmUXYk?Jt39$x|2dl(pb5LWEJ7T9umP?O(V~Jdv&+pC{>~is!uBS`sijQ$AeBl24dR zGaGQeh3)yTrR5s%lJD>_c22-8{`_E^fmY;;B*HgD6+Y2dE9+r(Ubj`9O|vXSj5UB& zisYkwb+iwQ@6S_HdEM8SU5UPrw|@{;To;jQ$o@}XQ`r6P>zW5I*EAFvs`ECC$IUI; z?KMX%r?6Z!;~N1~|AgJn#PmShgrJRXhm2C$mVM`~R#WrIeSWrP^JXuEGKWPQApb@0 zo1yTmCe;!!!96R{Wi{yhWw;t#{s3B43sh6F+AK88E5%LSHseE2w?@{|72e|_;7<+9 z2_rLi^yZTuEx>R2_;c)M8S^7TZ!CMO1y z83IDBk>?SuZ{ytiABBV7p)~dxeko7tX0;zEJ#cx$dL#EywI{Bo@M;`;sUBX$=b7!~7^B;KjS5+{mudJh zHDZe)%mb==?>cUVV~;}u@6b#@w9AkjK3L*8+^West*7HGlHK;W94%dSe)nF-X&RsA zr-RZy31P9i92sGUkWM)vj$THAG7`d9Sc2$6!;c4&q_y_bKEWMm$NE)1&WaizPCxri z;n2Xq;J`Y`5~L<3%Zxe)b?me`G+_T^0zR4U-9g)5JnhhuKg#oP&kg8p=-JGn`#xSj zM@BpN+g9t{yp=u~J!wAu^Fh5SHJRiJ>=k#QwZt$r2gQB&sz*|_`Ue~VD?mrCMEPF2 zG^y{&NP3I3`nMuM>*e~{AvJsDWG;!QpY$@*75k^ zmY+z0`BR(tR}U^Y_@dn<8xS;7vKIcTCVTFeI=Kn(yYop4X0ZLzveLk{E|y;}RczG%&fdV3JphDD8*73 zLJIRl#2O^xu%(~ITCl6exM>2>omYTtT&SFWSmhGSEe-q-9lr7Kgm^BqRqFIGcNelB zd`hKcofNP`;H$lFzTH0aSv;_(Hw)`0MG|21O7?6A(9I6rONYukC| zbLnh;cEJY!a#0^q@+86qV+7wSkKqJ2dk8uwqTrVL{KJr>?Mm#(3)tnHE#A?8<-o(Q zJ9BS&@#4C?D%QO-TU&G7V7Op4`A*NjxYvOw^thI(*On?D$04Kq4RCpX`A5B=eR%cE z&XX-V%x~wo#i^h@L-HWm8dRig%T({})=}!Tb3Ok~L6uV_hv}b9J@b@DnX?J1eN(xX zSUSUAlk!c_Mr84MiL>z&xZGm5Y@SL1q*uPG4APz{or0z|W7CVwI_me{V^B$+3c>`% z+8bu_eVhUvQp+qE_%AY6V6}xRuumrwuZn@E}k!}Te2G{`a#gPsoW|Gdn z?})Y|+avwB>A7%3Yt?9cfCD4F*A;Rd5+d_0UVm@rfSu>&ahq4S`m5@!)w?Bi4s}2u z9m?$1LkdEGcdzhO?sq8L>{#b#!jaXJ%4p}0ADr;)-KQojRt~FDY^kyqmF+>d_M>Ko zX!PK6?1=v0D4I&_efjj&D8zB8gShtYB3SisPGoDwmghZj^=lm({t@3fOK!^y0JpGw zyD%hf#Mk5=h$8Qe+=pz9`MW68IgglsAFtmyvovkop5pH*$9^6jivT#KiT2MzfiX0 zB&9ez`h0Mq@Ok~sBI=+vZROf^6*!ifPYDT*y6}o%K zMP;B56K!VYx~w7Z&4C;!T97V{-iLYpMYcELnd8wTrug}iDO`dT^?&XLWR{gp8HqPk z?!bug?wOweu$7GVn+l9pIB3qNJP*kQ%W`Hj-}TL#paww3XARd(=Q`X5rFi+NajaO< zLRf|*Tswye<%Pe>5-lUwrpksXU2iPo51$3sItSpNqw(URR6D8Q?H+X=y*i>9h*(Op z+TX6t7p28z0F!8+o@|hDofw8K58$zQeqOyI{HK*aV77W6sb1MQaH!fY(oMS|9WZlCzAAECe<7ao^G_jqJo(myaGq@_2J5H<=vDS2qlR7h!`;v9$y#lJr!0cd7?Cw zR#1L@GUN(paGl?FR3x*si(KRf4^!3I>(R4UEfupvPxDf59ifAOtM1qf+-9MI%`A0? zJtonc;gg3a#%Ze9Ih$IsnVpE3J$gTfUj4CJIo@YCtz?+fWE0aGs1 z?Q9w1PC!4|Juy&3O1w_oxf<%`P4>^E#*$Hbk?LKP1*_ZRoHLCaCk;pmjlz$j-J@ax3;{pA0NLPt~2MB$);JW;0z|SMCmxx zD&HS}*%(tm>T#FO^;$`-Jn5r^NsXwuK-zAUb04lfr3wgPL5-J}&xu z5z2o2Rmm1RFv?2hE@!h|CFNQ#=rSVCe=$tbcv;}RN?7lz5W|B+gmxZHvd`jwFNyOo zke*$;K((0qRZm9cf#JsPb30ZjzzqEeKb9|I=n_I30ioD2rB3freuV=|p-YJ-UELOY zNld7hM&n~H=N9l*i01yb8{7WjIWDC6nM@fX7u+kR?KjKmrqV(|ks-7uKAmE3$v?2( zWpg)euNIM-XgpdOEIQ?L+mvF?lCCsB2(Z`bNKf*X~*#^2!NF(;&o-o*S5v+Xw9 zw*YZ*UHh*O`40ivBR(Bgs>yz0y*7olwWk;Cvx5D57pa%4fHfY^u9t(wklhgM;>~x_AntAYdfV=4r=H|{?$ivLi&_GNlRQvouG$iGwh%p={55g99MiM0P z+{QK!Q4 z0;lk81nO!wN(DMPnT|ioh;v#W@Az0)53BZ-`{~ykA%<8A&yOR)Y6nG#<*|<5pbBb6 z3rQRFGSUp)NIN@E$C>qP~4NNNttplh&H22d^f!d)gdOMY*-IrZH+?nj{hI7;LvKy;5eRSkX5;)&jpK!^n&|NVE)k`C&2 zI-y@4EGP(p9%$xVeaw>C-`13RQwRg+v%*Y_@h7SGkI}w;ut<~5U+S;3gr8VtHv;J{sm`l7npa_17DAN+a}{ItqW?)V6{m>g z9nzjoHYeaXs|Z`7l#lKlN6RO)rO94gbv3f+P9Gk{_Bv@`SF(*mKK(qm95e^SYo8AAV$aT}n@X$Ty3DGKlFE*Q z)-sJzuoUdQmRZr=+g<~3FM}(#Agd1x6r19_-&)(Te5pb0U|e{f-+5hse13u1Hg5n6 zQ9SYt^a4xpt}}|pzpq9@bOOBHEVj3;bgXaNZtu3!P@%9r5-y@+?E9x+6u3^9s=)R+ zgBUG9EY*dHyV5*5*~>U6z27{0A#4A5`l4A$H}6Mr)X7oQA47Ita{XAGOLEcO5ypU} z-NNzvptbJLPu`4xH9l&cUy~ZSt|k>L3f(FMEeX>gCw(zZO&v+!iN}*(*!{wQG>p#n z$pJN3zVfqIF#TI}Nh`~Zg#2g0S=9iJN&wM@up`k)LlGF7%sOI5p;Vfk*byz~%yg8`-koWM=dG=7?7T4DHu09I{j7uYM~M)gYPC z8HkJO^=}zrv-7$F$H?kwSmS7~KWKJo3rf~HXCQxQ%cG7;Pm`J81*;H742X7&^)Hqb z1`nq*7JMpn3S`bbHNY5jV>IiRkir2l>ua+2(eK`d-S9BrXOk7d4LDKK>&7MZAmrjb zDgus3(%2l;wOVgevIp5<6ktPoO>uOC19Km$HL9dDcj#o5=+a;v$VE{&33ll-(%Ak9 zmCy}7b5nUOcm-p-jSr#k@t{{wON2uk;|O1z<8U|p^V&)lIodwTUb;tfN=1y;5Zv4b z`K*Xe5x;gW;ZCs*7z=xZL7vfgB#EpHE|zO3$?hsw*6ObnpgojnHJ$pPH!tB!gHcL5soKLD=Z{*Nd$BpR*9a%M@;L&v*LXLx?;I` z%yUXpRN)Z>q^)Jmgo^L$oKh#_@40) zttjwu@5>!U72?@XaHun5zPR+FRGdBh(QYQ15%by|agU=2mHv;0ma{vq-|8x;09rO_%5uJ9DGx07J5iJKbHf^L; zHBwgoZx3oFd8<5Qa=O8@MU;$i`B&n(S8Z?KF0i(Do~;YfX&B_9@n0-BF$^^${(Qf! z;I=iLshtyjJzh0LZ^>&Ucp6V8MPTbyyW2L9g%=1sc`psL4r-Y(r2~t~MI>8269&M8 zp~9h05^Q*pw?~0qs1hN%W;kS9wSR$0HB?p47k^%`pp9@So^Nu(c+022*w)Kbrp%kc zswi3m_*3_8Ay_|7kkpWsOJU?^qb@6<9Td^lb10^Tt_RgG^=5B#jjb-TKep%r?Q`@> z_pdZy_l7u}i+Gis+U|-U(J72xf+K>HRw++cn-IPQ&&y8pr56c~kWO%D{6(4!*D&@_ zG}KTEGT$X;;Es8Wl}!2vncjgUL`RTjx9Ko^msd*3zlP z9m9MZ1$bA*aE6R|2=tc3ilwoM;Nu%6S$lSz!x#dUi!rd+H%mw<3^LKrGu6^^*`3^C zen7Ll0v-t1R1l!04&I5fWEc@39!YFRa6>IY{1Ib~W+mkOu%t^@4EuXluv!;Bav;(l zw=xli=`j$D@OKE_BNcS`F*d^nCcWeHZ^x?yc^IBsWbHHnG;C=McK-42d_L0E0+epy z;H!9?VI9+db{K$^78oKL8D!+Y2e2u|DgB|alPotAjX~HohQr)CwW3;-+H$VS5qwlv zT(jt6fhstX*`OX@?L;Nv;y!Te4*(Q+s#sEK9n&ChMgvNmG0rg8wH8FeU1jxz%kY6{ z&=<+t+7<@?-7gU^-^WH4cQ>_Qo@r4l)n>T45Qc{p&BHW|qpK%d`V)j@iSqFHn~bM} zH0FJA$PG|w70?{t+Di;xg9Ld+=7eE4$P)Kgy&8%{YoSFr1irg%&$Gwy4Z130sK4hl zT+TrvHa=8)j%ae&IWVGGLhlWMJJ~aK$+civSEX36dTBGQS|&42PFli?5P3uIBwC&j zT$d78iaF~SoF`RC5n&Ohol`RffNCLMT0)N&vssfqUffxeXeTrxWVvzx?dmRVkZY%E z8O`ohL^gECTI^;#w?POY9IYlkF<=#{ST(7+?2)nsIN&eYLqG_9~Xh_u2wIVn) zZHtf@A5y_3p`;%l{Ye+~2w`eDnxaipm74#%2SZRTf(#(4MCu}d1B~?)Em<8+YGo^h zuz@_^6b%7dp((s1>r%s(FtY_YdmmAX#77HjAv{Ijnw^gD-@jVR2srQ2(SuJfhE!P)zMbJV^QuQxZ^iy zWWHITA0hWt#Fp$-TA0UPuQgth(c7NaO9lyv7D`oF{>G?(CQ+6HhronH00V=A0|NsS z0h7g_+!pwX^uHA8OaH%=2K^^;bat?EGjTR&cJ*}q--@=#yr=*znte&xabA1~Vjg8%>k literal 0 HcmV?d00001 diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 2f03763c..1fcdf9a2 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -28,6 +28,12 @@ + + + + + + @@ -53,7 +59,13 @@ - + + + 1.6.4) - Flutter (1.0.0) - - fluttertoast (0.0.2): - - Flutter - - Toast - FMDB (2.7.5): - FMDB/standard (= 2.7.5) - FMDB/standard (2.7.5) @@ -35,7 +32,6 @@ PODS: - sqflite (0.0.2): - Flutter - FMDB (>= 2.7.5) - - Toast (4.0.0) - TOCropViewController (2.6.0) - video_player (0.0.1): - Flutter @@ -48,7 +44,6 @@ DEPENDENCIES: - amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`) - amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`) - Flutter (from `Flutter`) - - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - image_cropper (from `.symlinks/plugins/image_cropper/ios`) - image_picker (from `.symlinks/plugins/image_picker/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) @@ -67,7 +62,6 @@ SPEC REPOS: - AMapFoundation - AMapLocation - FMDB - - Toast - TOCropViewController EXTERNAL SOURCES: @@ -77,8 +71,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/amap_flutter_map/ios" Flutter: :path: Flutter - fluttertoast: - :path: ".symlinks/plugins/fluttertoast/ios" image_cropper: :path: ".symlinks/plugins/image_cropper/ios" image_picker: @@ -109,7 +101,6 @@ SPEC CHECKSUMS: AMapFoundation: c7da72b42a713f1429c88af1858d623dde88934b AMapLocation: dad27669c4ca68e395ce7532ff614b7d4d45f7b7 Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c - fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a image_cropper: f1668dd8d2cad2d357955caad15a40547856edcb image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 @@ -119,7 +110,6 @@ SPEC CHECKSUMS: share: 0b2c3e82132f5888bccca3351c504d0003b3b410 shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 - Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38 video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e wakelock: bfc7955c418d0db797614075aabbc58a39ab5107 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index eb0d7464..3e7bc8bd 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -856,10 +856,8 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/Toast\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_location\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_map\"", - "\"${PODS_ROOT}/Headers/Public/fluttertoast\"", "\"${PODS_ROOT}/Headers/Public/image_cropper\"", "\"${PODS_ROOT}/Headers/Public/image_picker\"", "\"${PODS_ROOT}/Headers/Public/path_provider\"", @@ -887,11 +885,9 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"Toast\"", "-l\"amap_flutter_location\"", "-l\"amap_flutter_map\"", "-l\"c++\"", - "-l\"fluttertoast\"", "-l\"image_cropper\"", "-l\"image_picker\"", "-l\"path_provider\"", @@ -1059,10 +1055,8 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/Toast\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_location\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_map\"", - "\"${PODS_ROOT}/Headers/Public/fluttertoast\"", "\"${PODS_ROOT}/Headers/Public/image_cropper\"", "\"${PODS_ROOT}/Headers/Public/image_picker\"", "\"${PODS_ROOT}/Headers/Public/path_provider\"", @@ -1090,11 +1084,9 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"Toast\"", "-l\"amap_flutter_location\"", "-l\"amap_flutter_map\"", "-l\"c++\"", - "-l\"fluttertoast\"", "-l\"image_cropper\"", "-l\"image_picker\"", "-l\"path_provider\"", @@ -1155,10 +1147,8 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/Toast\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_location\"", "\"${PODS_ROOT}/Headers/Public/amap_flutter_map\"", - "\"${PODS_ROOT}/Headers/Public/fluttertoast\"", "\"${PODS_ROOT}/Headers/Public/image_cropper\"", "\"${PODS_ROOT}/Headers/Public/image_picker\"", "\"${PODS_ROOT}/Headers/Public/path_provider\"", @@ -1186,11 +1176,9 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"Toast\"", "-l\"amap_flutter_location\"", "-l\"amap_flutter_map\"", "-l\"c++\"", - "-l\"fluttertoast\"", "-l\"image_cropper\"", "-l\"image_picker\"", "-l\"path_provider\"", diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 0a7518a3..7adc16ef 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,13 +2,6 @@ - UniversalLinks - https://hx.lotus-wallet.com/app/ - LSApplicationQueriesSchemes - - weixinULAPI - weixin - CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -35,10 +28,24 @@ ???? CFBundleURLTypes - + + CFBundleTypeRole + Editor + CFBundleURLName + weixin + CFBundleURLSchemes + + wx3b269e795ed23e5f + + CFBundleVersion $(CURRENT_PROJECT_VERSION) + LSApplicationQueriesSchemes + + weixinULAPI + weixin + LSRequiresIPhoneOS NSAppTransportSecurity @@ -89,6 +96,8 @@ UIViewControllerBasedStatusBarAppearance + UniversalLinks + https://hx.lotus-wallet.com/app/ io.flutter.embedded_views_preview YES diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements index df225489..9c897b6e 100644 --- a/ios/Runner/Runner.entitlements +++ b/ios/Runner/Runner.entitlements @@ -7,6 +7,8 @@ com.apple.developer.associated-domains applinks:demo.dcloud.net.cn + hx.lotus-wallet.com + applinks:hx.lotus-wallet.com diff --git a/lib/address/address_map_page.dart b/lib/address/address_map_page.dart index f567ba31..94eede08 100644 --- a/lib/address/address_map_page.dart +++ b/lib/address/address_map_page.dart @@ -9,7 +9,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/retrofit/data/address.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; import 'package:permission_handler/permission_handler.dart'; @@ -152,14 +152,7 @@ class _AddressMapPage extends State { if (await Permission.locationWhenInUse.serviceStatus.isEnabled) { bool isShown = await Permission.contacts.shouldShowRequestRationale; if (isShown) { - Fluttertoast.showToast( - msg: "shouldShowRequest", - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.CENTER, - timeInSecForIosWeb: 1, - backgroundColor: Colors.red, - textColor: Colors.white, - fontSize: 16.0.sp); + SmartDialog.showToast("shouldShowRequest"); } if (await Permission.location.isPermanentlyDenied) { //openAppSettings diff --git a/lib/address/edit_address_page.dart b/lib/address/edit_address_page.dart index 418c2b13..b1de27fe 100644 --- a/lib/address/edit_address_page.dart +++ b/lib/address/edit_address_page.dart @@ -1,6 +1,6 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/retrofit/data/address.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; @@ -151,19 +151,19 @@ class _EditAddressPage extends State { String city = addressController.text; String address = houseNumberController.text; if (name == null || name == "") { - Fluttertoast.showToast(msg: "请输入收货人姓名"); + SmartDialog.showToast("请输入收货人姓名"); return; } if (mobile == null || mobile == "") { - Fluttertoast.showToast(msg: "请输入收货人手机号"); + SmartDialog.showToast("请输入收货人手机号"); return; } if (city == null || city == "") { - Fluttertoast.showToast(msg: "请输入收货人地址"); + SmartDialog.showToast("请输入收货人地址"); return; } if (address == null || address == "") { - Fluttertoast.showToast(msg: "请输入收货人详细地址"); + SmartDialog.showToast("请输入收货人详细地址"); return; } BaseData baseData; @@ -199,10 +199,8 @@ class _EditAddressPage extends State { } if (baseData != null && baseData.isSuccess) { - Fluttertoast.showToast(msg: preAddress == null ? "保存成功" : "修改成功"); + SmartDialog.showToast(preAddress == null ? "保存成功" : "修改成功"); Navigator.of(context).pop(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/generated/intl/messages_zh_TW.dart b/lib/generated/intl/messages_zh_TW.dart index e85f588c..8f66d586 100644 --- a/lib/generated/intl/messages_zh_TW.dart +++ b/lib/generated/intl/messages_zh_TW.dart @@ -244,7 +244,7 @@ class MessageLookup extends MessageLookupByLibrary { "muqianzanwuxingdianhuodong" : MessageLookupByLibrary.simpleMessage("目前暫無星店活動"), "nindingweigongnengweikaiqi" : MessageLookupByLibrary.simpleMessage("您定位功能開關未開啟,請點擊去開啟定位"), "nindingweiquanxianweiyunxu" : MessageLookupByLibrary.simpleMessage("您未开启位置权限,请点击确定申请权限"), - "ninweidenglu" : MessageLookupByLibrary.simpleMessage("您未登錄,請點擊去燈籠"), + "ninweidenglu" : MessageLookupByLibrary.simpleMessage("您未登錄,請點擊去登錄"), "ninyouyigedingdanyaolingqu" : MessageLookupByLibrary.simpleMessage("您有一個訂單需要前往門店領取"), "ninyouyigexindedingdan" : MessageLookupByLibrary.simpleMessage("您有一個新訂單"), "peisong" : MessageLookupByLibrary.simpleMessage("配送"), diff --git a/lib/home/activity_list_page.dart b/lib/home/activity_list_page.dart index 1246c794..5615e50d 100644 --- a/lib/home/activity_list_page.dart +++ b/lib/home/activity_list_page.dart @@ -1,14 +1,15 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; +import 'package:huixiang/main.dart'; import 'package:huixiang/retrofit/data/activity.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/page.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; +import 'package:huixiang/utils/event_type.dart'; import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/custom_image.dart'; -import 'package:huixiang/view_widget/loading_view.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -32,17 +33,17 @@ class _ActivityListPage extends State apiService = ApiService(Dio(), context: context, token: value.getString('token')), queryActivity(), }); + + eventBus.on().listen((event) { + if (event.type < 3) { + setState(() {}); + } + }); } List activityList; queryActivity() async { - // showCupertinoDialog( - // context: context, - // barrierDismissible: true, - // builder: (context) { - // return LoadingView(); - // }); BaseData baseData = await apiService.informationList({ "pageNum": 1, "pageSize": 10, @@ -52,15 +53,12 @@ class _ActivityListPage extends State }).catchError((error) { _refreshController.refreshFailed(); }); - // if (Navigator.canPop(context)) Navigator.of(context).pop(); if (baseData != null && baseData.isSuccess) { PageInfo pageInfo = PageInfo.fromJson(baseData.data); _refreshController.refreshCompleted(); setState(() { activityList = pageInfo.list.map((e) => Activity.fromJson(e)).toList(); }); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/home/home_page.dart b/lib/home/home_page.dart index 0a829da1..8b29252c 100644 --- a/lib/home/home_page.dart +++ b/lib/home/home_page.dart @@ -38,9 +38,6 @@ class _HomePage extends State with AutomaticKeepAliveClientMixin { super.initState(); SharedPreferences.getInstance().then((value) => { - isLogin = (value.containsKey("token") && - value.getString('token') != null && - value.getString('token') != ""), apiService = ApiService(Dio(), context: context, token: value.getString('token'), @@ -52,12 +49,9 @@ class _HomePage extends State with AutomaticKeepAliveClientMixin { if (event.type < 3) { setState(() {}); } - ; }); } - bool isLogin = false; - loginTips() { SmartDialog.show( widget: LoginTips( @@ -173,20 +167,24 @@ class _HomePage extends State with AutomaticKeepAliveClientMixin { imgPath: "assets/image/icon_today_task.png", moreText: S.of(context).renwuzhongxin, onTap: () { - if (!isLogin) { - loginTips(); - return; - } - Navigator.of(context).pushNamed('/router/integral_page'); + SharedPreferences.getInstance().then((value) { + if (value.getString('token') == null) { + loginTips(); + } else { + Navigator.of(context).pushNamed('/router/integral_page'); + } + }); }, ), InkWell( onTap: () { - if (!isLogin) { - loginTips(); - return; - } - Navigator.of(context).pushNamed('/router/integral_page'); + SharedPreferences.getInstance().then((value) { + if (value.getString('token') == null) { + loginTips(); + } else { + Navigator.of(context).pushNamed('/router/integral_page'); + } + }); }, child: signIn(), ), diff --git a/lib/home/points_mall_page.dart b/lib/home/points_mall_page.dart index 07745abc..18029f9e 100644 --- a/lib/home/points_mall_page.dart +++ b/lib/home/points_mall_page.dart @@ -4,17 +4,21 @@ import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_swiper/flutter_swiper.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:huixiang/generated/l10n.dart'; +import 'package:huixiang/main.dart'; +import 'package:huixiang/retrofit/data/banner.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/goods.dart'; import 'package:huixiang/retrofit/data/page.dart'; import 'package:huixiang/retrofit/data/user_info.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; +import 'package:huixiang/utils/event_type.dart'; import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/custom_image.dart'; import 'package:huixiang/view_widget/item_title.dart'; +import 'package:huixiang/view_widget/login_tips.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -22,8 +26,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:dio/dio.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import '../retrofit/data/banner.dart'; - class PointsMallPage extends StatefulWidget { @override State createState() { @@ -50,11 +52,25 @@ class _PointsMallPage extends State void initState() { super.initState(); + refreshUserInfo(); + + eventBus.on().listen((event) { + if (event.type < 3) { + setState(() {}); + } + if (event.type == 3) { + refreshUserInfo(); + }; + }); + + } + + refreshUserInfo(){ SharedPreferences.getInstance().then((value) => { - client = ApiService(Dio(), context: context, token: value.getString('token')), - creditGoods(), - queryUser(), - }); + client = ApiService(Dio(), context: context, token: value.getString('token')), + creditGoods(), + queryUser(), + }); } int pageNum = 1; @@ -70,8 +86,6 @@ class _PointsMallPage extends State List bannerData = []; queryUser() async { - BaseData baseData = await client.queryInfo(); - BaseData banner = await client.queryBanner({ "model": {"type": "CREDIT_INDEX"}, }); @@ -81,16 +95,16 @@ class _PointsMallPage extends State bannerData.addAll((banner.data["records"] as List) .map((e) => BannerData.fromJson(e)) .toList()); + setState(() {}); } + BaseData baseData = await client.queryInfo(); if (baseData != null && baseData.isSuccess) { userinfo = UserInfo.fromJson(baseData.data); SharedPreferences.getInstance().then((value) => { value.setString('user', jsonEncode(baseData.data)), }); setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -121,7 +135,6 @@ class _PointsMallPage extends State } else { _refreshController.loadFailed(); _refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } @@ -200,7 +213,10 @@ class _PointsMallPage extends State _toDetails(index) async { await Navigator.of(context).pushNamed('/router/integral_store_page', arguments: {"goodsId": gooods[index].id}); - queryUser(); + SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); + String token = sharedPreferences.getString("token"); + if (token != null) + queryUser(); } _sortChange(item) { @@ -278,7 +294,7 @@ class _PointsMallPage extends State style: TextStyle( color: Colors.black, fontWeight: FontWeight.bold, - fontSize: 16, + fontSize: 16.sp, ), ), SizedBox( @@ -317,14 +333,14 @@ class _PointsMallPage extends State color: Color(0xFF585858), decoration: TextDecoration.lineThrough, decorationColor: Color(0xFF585858), - fontSize: 12, + fontSize: 12.sp, ), ), Text( S.of(context).jifen_(goods.price), style: TextStyle( color: Color(0xFF32A060), - fontSize: 14, + fontSize: 14.sp, fontWeight: FontWeight.bold, ), ), @@ -334,7 +350,7 @@ class _PointsMallPage extends State ), ], ), - ) + ), ], ), Visibility( @@ -343,8 +359,8 @@ class _PointsMallPage extends State borderRadius: BorderRadius.only(topRight: Radius.circular(4)), child: Image.asset( "assets/image/icon_hot_right_top.png", - width: 36, - height: 36, + width: 36.w, + height: 36.h, ), ), ), @@ -354,82 +370,100 @@ class _PointsMallPage extends State } Widget userItem() { - return Container( - margin: EdgeInsets.all(16), - child: Row( - children: [ - MImage( - userinfo != null ? userinfo.headimg : "", - width: 50, - height: 50, - radius: BorderRadius.all(Radius.circular(2)), - fit: BoxFit.cover, - errorSrc: "assets/image/default_1.png", - fadeSrc: "assets/image/default_1.png", - ), - Expanded( - child: Container( - margin: EdgeInsets.only(left: 15), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - userinfo != null ? userinfo.nickname : "", - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.bold, - color: Color(0xFF353535)), - ), - Row( + return InkWell( + onTap: () { + SharedPreferences.getInstance().then((value) { + if (value.getString("token") == null) { + SmartDialog.show( + widget: LoginTips( + click: () { + value.clear(); + Navigator.of(context).pushNamed('/router/login_page', arguments: {"login":"login"}); + }, + ), + clickBgDismissTemp: false, + ); + } + }); + }, + child:Container( + margin: EdgeInsets.all(16), + child: Row( + children: [ + MImage( + userinfo != null ? userinfo.headimg : "", + width: 50, + height: 50, + radius: BorderRadius.all(Radius.circular(2)), + fit: BoxFit.cover, + errorSrc: "assets/image/default_1.png", + fadeSrc: "assets/image/default_1.png", + ), + Expanded( + child: Container( + margin: EdgeInsets.only(left: 15), + height: 50.h, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Image.asset( - "assets/image/icon_an_crown.png", - width: 14, - height: 14, - ), - SizedBox( - width: 5, - ), Text( - (userinfo != null && userinfo.memberRankVo != null) - ? userinfo.memberRankVo.rankName - : "", - style: + userinfo != null ? userinfo.nickname : S.of(context).qudenglu, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF353535)), + ), + Row( + children: [ + Image.asset( + "assets/image/icon_an_crown.png", + width: 14, + height: 14, + ), + SizedBox( + width: 5, + ), + Text( + (userinfo != null && userinfo.memberRankVo != null) + ? userinfo.memberRankVo.rankName + : "", + style: TextStyle(fontSize: 12, color: Color(0xFF353535)), + ), + ], ), ], ), - ], - ), - ), - flex: 1, - ), - Container( - margin: EdgeInsets.only(left: 15), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - S.of(context).yiyoujifen, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.bold, - color: Color(0xFF4C4C4C)), ), - Text( - (userinfo != null) ? "${userinfo.points}" : "", - style: TextStyle( - fontSize: 16, - color: Color(0xFFF8BA61), - fontWeight: FontWeight.bold), + flex: 1, + ), + Container( + margin: EdgeInsets.only(left: 15), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + S.of(context).yiyoujifen, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF4C4C4C)), + ), + Text( + (userinfo != null) ? "${userinfo.points}" : "", + style: TextStyle( + fontSize: 16, + color: Color(0xFFF8BA61), + fontWeight: FontWeight.bold), + ), + ], ), - ], - ), - ) - ], - ), + ) + ], + ), + ), ); } diff --git a/lib/integral/integral_detailed_page.dart b/lib/integral/integral_detailed_page.dart index 30ae23f8..93c825ce 100644 --- a/lib/integral/integral_detailed_page.dart +++ b/lib/integral/integral_detailed_page.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/page.dart'; @@ -91,7 +91,6 @@ class _IntegralDetailedPage extends State } setState(() {}); } else { - Fluttertoast.showToast(msg: baseData.msg); refreshController.loadFailed(); refreshController.refreshFailed(); } diff --git a/lib/integral/integral_page.dart b/lib/integral/integral_page.dart index c4e0c055..e614209a 100644 --- a/lib/integral/integral_page.dart +++ b/lib/integral/integral_page.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_swiper/flutter_swiper.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/rank.dart'; @@ -66,8 +66,6 @@ class _IntegralPage extends State { if (baseData != null && baseData.isSuccess) { signInfo = SignInfo.fromJson(baseData.data); setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -122,11 +120,24 @@ class _IntegralPage extends State { ), body: SingleChildScrollView( child: Container( - child: Column( + child: Stack( children: [ - integralAndVip(), - inForPoints(), - integralTask(), + Positioned( + child: Container( + height: 122.h, + color: Color(0xFF3A405A), + ), + top: 0, + left: 0, + right: 0, + ), + Column( + children: [ + integralAndVip(), + inForPoints(), + integralTask(), + ], + ), ], ), ), @@ -418,83 +429,73 @@ class _IntegralPage extends State { ///立即签到 Widget inForPoints() { return Container( - child: Stack( + width: double.infinity, + margin: EdgeInsets.symmetric(horizontal: 16.w, vertical: 6.h), + padding: EdgeInsets.fromLTRB(20.w, 20.h, 20.w, 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - height: 42.h, - color: Color(0xFF3A405A), + Text( + S.of(context).qiandaolingjifen, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16.sp, + color: Color(0xFF353535)), ), - Container( - width: double.infinity, - margin: EdgeInsets.all(16), - padding: EdgeInsets.fromLTRB(20.w, 20.h, 20.w, 20.h), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(8)), - boxShadow: [ - BoxShadow( - color: Colors.black.withAlpha(12), - offset: Offset(0, 3), - blurRadius: 14, - spreadRadius: 0, - ) - ], + Text( + S.of(context).lianxuqiandaolingqushuangbeijifen, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 11.sp, + color: Color(0xFF727272), ), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - S.of(context).qiandaolingjifen, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 16.sp, - color: Color(0xFF353535)), - ), - Text( - S.of(context).lianxuqiandaolingqushuangbeijifen, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 11.sp, - color: Color(0xFF727272), - ), - ), - SizedBox( - height: 32.h, - ), - StaggeredGridView.countBuilder( - crossAxisCount: 4, - shrinkWrap: true, - itemCount: 7, - mainAxisSpacing: 8.h, - crossAxisSpacing: 18.w, - padding: EdgeInsets.only(bottom: 32.h), - physics: new NeverScrollableScrollPhysics(), - itemBuilder: (context, position) { - return signInItem(position); - }, - staggeredTileBuilder: (position) { - return StaggeredTile.count(position == 6 ? 2 : 1, 1.28); - }), - InkWell( - onTap: signIn, - child: Container( - alignment: Alignment.center, - child: RoundButton( - text: (signInfo != null && signInfo.todayHasSignin) - ? S.of(context).yiqiandao - : S.of(context).lijiqiandao, - textColor: Colors.white, - backgroup: (signInfo != null && signInfo.todayHasSignin) - ? Colors.grey - : Color(0xFF32A060), - fontSize: 16.sp, - padding: EdgeInsets.fromLTRB(16.w, 6.h, 16.w, 6.h), - radius: 4, - ), - ), - ) - ], + ), + SizedBox( + height: 32.h, + ), + StaggeredGridView.countBuilder( + crossAxisCount: 4, + shrinkWrap: true, + itemCount: 7, + mainAxisSpacing: 8.h, + crossAxisSpacing: 18.w, + padding: EdgeInsets.only(bottom: 32.h), + physics: new NeverScrollableScrollPhysics(), + itemBuilder: (context, position) { + return signInItem(position); + }, + staggeredTileBuilder: (position) { + return StaggeredTile.count(position == 6 ? 2 : 1, 1.28); + }), + InkWell( + onTap: signIn, + child: Container( + alignment: Alignment.center, + child: RoundButton( + text: (signInfo != null && signInfo.todayHasSignin) + ? S.of(context).yiqiandao + : S.of(context).lijiqiandao, + textColor: Colors.white, + backgroup: (signInfo != null && signInfo.todayHasSignin) + ? Colors.grey + : Color(0xFF32A060), + fontSize: 16.sp, + padding: EdgeInsets.fromLTRB(16.w, 6.h, 16.w, 6.h), + radius: 4, + ), ), ) ], @@ -505,15 +506,13 @@ class _IntegralPage extends State { ///立即签到 signIn() async { if ((signInfo != null && signInfo.todayHasSignin)) { - Fluttertoast.showToast(msg: "今日已签到了"); + SmartDialog.showToast("今日已签到了"); return; } BaseData baseData = await apiService.signIn(); if (baseData != null && baseData.isSuccess) { querySignInfo(); - Fluttertoast.showToast(msg: "签到成功"); - } else { - Fluttertoast.showToast(msg: baseData.msg); + SmartDialog.showToast("签到成功"); } } @@ -521,7 +520,6 @@ class _IntegralPage extends State { Widget integralAndVip() { return Container( padding: EdgeInsets.only(top: 16.h, bottom: 16.h), - color: Color(0xFF3A405A), child: Row( children: [ Expanded( diff --git a/lib/integral_store/integral_store_details_page.dart b/lib/integral_store/integral_store_details_page.dart index eef10bc2..8e67c85e 100644 --- a/lib/integral_store/integral_store_details_page.dart +++ b/lib/integral_store/integral_store_details_page.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_swiper/flutter_swiper.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/goods.dart'; @@ -35,11 +35,12 @@ class _IntegralStoreDetailsPage extends State { void initState() { super.initState(); - SharedPreferences.getInstance().then((value) => { - apiService = ApiService(Dio(), context: context, token: value.getString("token")), - points = - UserInfo.fromJson(jsonDecode(value.getString('user'))).points, - queryGoodsById(), + SharedPreferences.getInstance().then((value) { + apiService = ApiService(Dio(), context: context, token: value.getString("token")); + queryGoodsById(); + if (value.getString('user') != null) { + points = UserInfo.fromJson(jsonDecode(value.getString('user'))).points; + } }); } @@ -51,8 +52,6 @@ class _IntegralStoreDetailsPage extends State { setState(() { goods = Goods.fromJson(baseData.data); }); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -145,7 +144,7 @@ class _IntegralStoreDetailsPage extends State { child: Container( padding: EdgeInsets.only(top: 16.h, bottom: 16.h), decoration: BoxDecoration( - color: (goods != null && + color: (goods != null && points != null && int.tryParse(goods.price) < int.tryParse(points)) ? Color(0xFF32A060) : Color(0xFFD8D8D8), diff --git a/lib/l10n/intl_zh_TW.arb b/lib/l10n/intl_zh_TW.arb index 6a3dbe1c..c1c245d8 100644 --- a/lib/l10n/intl_zh_TW.arb +++ b/lib/l10n/intl_zh_TW.arb @@ -371,7 +371,7 @@ "huiyuanjifen": "會員積分", "huiyuanyue": "會員餘額", "gongxinichengweibendianhuiyuan": "恭喜您,成為本店會員,快去享受超多的會員權益吧。", - "ninweidenglu": "您未登錄,請點擊去燈籠", + "ninweidenglu": "您未登錄,請點擊去登錄", "weilegeiningenghaodefuwu": "為了給您提供更好的服務,以及享受更加精彩的信息內容,請在使用使用期間登錄", "qudenglu": "去登錄", "weidenglu": "未登錄", diff --git a/lib/login/login_page.dart b/lib/login/login_page.dart index 09ab38d0..fefc0708 100644 --- a/lib/login/login_page.dart +++ b/lib/login/login_page.dart @@ -5,7 +5,7 @@ import 'dart:ui'; import 'package:flutter/gestures.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/main.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; @@ -155,7 +155,7 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { _sendCode() async { if (!checkStatus) { - Fluttertoast.showToast(msg: S.of(context).gouxuanxieyi); + SmartDialog.showToast(S.of(context).gouxuanxieyi); return; } var mobile = _controllerPhone.text; @@ -175,12 +175,12 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { { btnText = S.of(context).send_code, _sendCodeStatus = 0, - Fluttertoast.showToast(msg: "${value.msg}"), + SmartDialog.showToast("${value.msg}"), refresh() } }) .catchError((error) { - Fluttertoast.showToast(msg: "$error"); + SmartDialog.showToast("$error"); }); } } @@ -224,7 +224,7 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { } if (!checkStatus) { - Fluttertoast.showToast(msg: S.of(context).gouxuanxieyi); + SmartDialog.showToast(S.of(context).gouxuanxieyi); return; } var mobile = _controllerPhone.text; @@ -260,7 +260,7 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { SmartDialog.showLoading(msg: S.of(context).zhengzaijiazai); BaseData value = await client.memberLogin(param).catchError((error) { print(error); - Fluttertoast.showToast(msg: "$error"); + SmartDialog.showToast("$error"); }); Future.delayed(Duration(seconds: 2), () { SmartDialog.dismiss(); @@ -273,7 +273,7 @@ class _MyLoginPageState extends State with TickerProviderStateMixin { Navigator.of(context).popAndPushNamed('/router/main_page'); } } else { - Fluttertoast.showToast(msg: "${value.msg}"); + SmartDialog.showToast("${value.msg}"); } }); } diff --git a/lib/mine/coupons_page.dart b/lib/mine/coupons_page.dart index d513beaf..dcf9815b 100644 --- a/lib/mine/coupons_page.dart +++ b/lib/mine/coupons_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/coupon.dart'; @@ -78,7 +78,6 @@ class _CouponsPage extends State { } else { _refreshController.loadFailed(); _refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } @@ -186,11 +185,9 @@ class _CouponsPage extends State { receiveCoupon(couponId) async { BaseData baseData = await apiService.receiveCoupon(couponId); - if (baseData.isSuccess) { + if (baseData != null && baseData.isSuccess) { _onRefresh(); showAlertDialog(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/mine/edit_name.dart b/lib/mine/edit_name.dart index a82dbf25..5900f76f 100644 --- a/lib/mine/edit_name.dart +++ b/lib/mine/edit_name.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -35,7 +35,7 @@ class _EditName extends State { if(name != null && name != "") { Navigator.of(context).pop(name); } else { - Fluttertoast.showToast(msg: "请输入用户名"); + SmartDialog.showToast("请输入用户名"); } }, child: Text( diff --git a/lib/mine/manage_address_page.dart b/lib/mine/manage_address_page.dart index 121a87ce..018f7454 100644 --- a/lib/mine/manage_address_page.dart +++ b/lib/mine/manage_address_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/address.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; @@ -47,8 +47,6 @@ class _ManageAddressPage extends State { .map((e) => Address.fromJson(e)) .toList(); setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -358,8 +356,6 @@ class _ManageAddressPage extends State { await apiService.deleteAddress(addressList[position].toJson()); if (baseData != null && baseData.isSuccess) { queryMemberAddress(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -371,8 +367,6 @@ class _ManageAddressPage extends State { BaseData baseData = await apiService.updateAddress(addressList[position].toJson()); if (baseData != null && baseData.isSuccess) { - } else { - Fluttertoast.showToast(msg: baseData.msg); } setState(() {}); } diff --git a/lib/mine/mine_card_invalid_page.dart b/lib/mine/mine_card_invalid_page.dart index b5b051af..dc2c677d 100644 --- a/lib/mine/mine_card_invalid_page.dart +++ b/lib/mine/mine_card_invalid_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/coupon.dart'; @@ -73,7 +73,6 @@ class _MineCardInvalidPage extends State { } else { _refreshController.loadFailed(); _refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/mine/mine_page.dart b/lib/mine/mine_page.dart index 0d4049b7..364cd691 100644 --- a/lib/mine/mine_page.dart +++ b/lib/mine/mine_page.dart @@ -3,7 +3,6 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/main.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; diff --git a/lib/mine/mine_vip_level_page.dart b/lib/mine/mine_vip_level_page.dart index caab2f35..abbe9bac 100644 --- a/lib/mine/mine_vip_level_page.dart +++ b/lib/mine/mine_vip_level_page.dart @@ -1,8 +1,8 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_swiper/flutter_swiper.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/rank.dart'; @@ -51,7 +51,7 @@ class _MineVipLevelPage extends State { controller.index = widget.arguments["rankLevel"] - 1; }); } else { - Fluttertoast.showToast(msg: rankData.msg); + SmartDialog.showToast(rankData.msg); } } diff --git a/lib/mine/mine_wallet_page.dart b/lib/mine/mine_wallet_page.dart index 43dc8625..74ea50a0 100644 --- a/lib/mine/mine_wallet_page.dart +++ b/lib/mine/mine_wallet_page.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/page.dart'; @@ -60,10 +60,8 @@ class _MineWalletPage extends State { if (baseData != null && baseData.isSuccess) { userInfo = UserInfo.fromJson(baseData.data); mBalance = double.tryParse(userInfo.money).toInt(); - if (mounted) setState(() {}); + if (mounted) setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -96,7 +94,6 @@ class _MineWalletPage extends State { } else { refreshController.refreshFailed(); refreshController.loadFailed(); - Fluttertoast.showToast(msg: baseData.msg); } if (mounted) setState(() {}); } diff --git a/lib/mine/roll_center_page.dart b/lib/mine/roll_center_page.dart index cb2ccd4a..594258fd 100644 --- a/lib/mine/roll_center_page.dart +++ b/lib/mine/roll_center_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/coupon.dart'; @@ -69,7 +69,6 @@ class _RollCenterPage extends State { } setState(() {}); } else { - Fluttertoast.showToast(msg: baseData.msg); _refreshController.refreshFailed(); _refreshController.loadFailed(); } @@ -166,11 +165,9 @@ class _RollCenterPage extends State { receiveCoupon(couponId) async { BaseData baseData = await apiService.receiveCoupon(couponId); - if (baseData.isSuccess) { + if (baseData != null && baseData.isSuccess) { refreshCoupon(); showAlertDialog(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/mine/user_info_page.dart b/lib/mine/user_info_page.dart index 4543ad5d..938c284f 100644 --- a/lib/mine/user_info_page.dart +++ b/lib/mine/user_info_page.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/upload_result.dart'; @@ -354,7 +354,7 @@ class _UserInfoPage extends State { var info = await apiService.editInfo(modifyInfo); if (info.isSuccess) { setState(() { - Fluttertoast.showToast(msg: "用户信息修改成功"); + SmartDialog.showToast("用户信息修改成功"); }); } } diff --git a/lib/mine/vip_balance_page.dart b/lib/mine/vip_balance_page.dart index c9db9dca..5cd8c9ae 100644 --- a/lib/mine/vip_balance_page.dart +++ b/lib/mine/vip_balance_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/coupon.dart'; @@ -53,7 +53,7 @@ class _VipBalancePage extends State { _refreshController.loadFailed(); _refreshController.refreshFailed(); }); - if (baseData.isSuccess) { + if (baseData != null && baseData.isSuccess) { PageInfo pageInfo = PageInfo.fromJson(baseData.data); if (pageNum == 1) { coupons.clear(); @@ -71,7 +71,6 @@ class _VipBalancePage extends State { } else { _refreshController.loadFailed(); _refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/mine/vip_card_page.dart b/lib/mine/vip_card_page.dart index b93e2ef3..12c57f10 100644 --- a/lib/mine/vip_card_page.dart +++ b/lib/mine/vip_card_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/vip_card.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; @@ -51,7 +51,6 @@ class _VipCardPage extends State { }); } else { _refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/mine/vip_detail_page.dart b/lib/mine/vip_detail_page.dart index 7661a32c..e380da02 100644 --- a/lib/mine/vip_detail_page.dart +++ b/lib/mine/vip_detail_page.dart @@ -1,7 +1,7 @@ import 'package:barcode_widget/barcode_widget.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/vip_card.dart'; @@ -45,8 +45,6 @@ class _VipDetailPage extends State { if (baseData != null && baseData.isSuccess) { vipCard = VipCard.fromJson(baseData.data); setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/order/exchange_history_page.dart b/lib/order/exchange_history_page.dart index 1267574f..0f10829c 100644 --- a/lib/order/exchange_history_page.dart +++ b/lib/order/exchange_history_page.dart @@ -1,7 +1,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/exchange_order.dart'; @@ -189,7 +189,6 @@ class _ExchangeHistoryList extends State { } else { _refreshController.refreshFailed(); _refreshController.loadFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } @@ -462,8 +461,6 @@ class _ExchangeHistoryList extends State { BaseData baseData = await apiService.creditOrderReceive(id); if (baseData != null && baseData.isSuccess) { queryHistory(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/order/exchange_order_page.dart b/lib/order/exchange_order_page.dart index 158d91ab..be5ef59d 100644 --- a/lib/order/exchange_order_page.dart +++ b/lib/order/exchange_order_page.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:dio/dio.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/user_info.dart'; @@ -424,12 +424,12 @@ class _ExchangeOrderPage extends State { creditOrder() async { if (widget.arguments["useTyped"] == 1 && (storeId == null || storeId == "")) { - Fluttertoast.showToast(msg: "请选择一个门店"); + SmartDialog.showToast("请选择一个门店"); return; } if (widget.arguments["useTyped"] == 2 && (userAddressId == null || userAddressId == "")) { - Fluttertoast.showToast(msg: "请选择一个收货地址"); + SmartDialog.showToast("请选择一个收货地址"); return; } BaseData baseDate = await apiService.creditOrder({ @@ -447,7 +447,7 @@ class _ExchangeOrderPage extends State { "${int.tryParse(points) - int.tryParse(widget.arguments["price"])}"; Navigator.of(context).pop(); } else { - Fluttertoast.showToast(msg: baseDate.msg); + SmartDialog.showToast(baseDate.msg); } } } diff --git a/lib/order/exchange_order_success_page.dart b/lib/order/exchange_order_success_page.dart index a2b63c8b..5e5974a2 100644 --- a/lib/order/exchange_order_success_page.dart +++ b/lib/order/exchange_order_success_page.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/user_info.dart'; @@ -227,8 +227,6 @@ class _ExchangeOrderSuccessPage extends State { if(baseData != null && baseData.isSuccess) { await Navigator.of(context).pushNamed('/router/mine_card'); Navigator.of(context).pop(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/order/order_detail_page.dart b/lib/order/order_detail_page.dart index be479aaa..494c576a 100644 --- a/lib/order/order_detail_page.dart +++ b/lib/order/order_detail_page.dart @@ -1,6 +1,6 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/order_info.dart'; @@ -68,8 +68,6 @@ class _OrderDetailPage extends State { setState(() { statusTitle(); }); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -482,7 +480,7 @@ class _OrderDetailPage extends State { // if (baseData != null && baseData.isSuccess) { // // queryDetails(); // } else { - // Fluttertoast.showToast(msg: baseData.msg); + // SmartDialog.showToast(baseData.msg); // } showDialog( context: context, diff --git a/lib/order/order_history_page.dart b/lib/order/order_history_page.dart index 48c71b1f..a9f45cac 100644 --- a/lib/order/order_history_page.dart +++ b/lib/order/order_history_page.dart @@ -1,6 +1,6 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/order_info.dart'; @@ -207,7 +207,6 @@ class _OrderHistoryList extends State } else { refreshController.refreshFailed(); refreshController.loadFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/order/store_selector_page.dart b/lib/order/store_selector_page.dart index a463f897..374bac0f 100644 --- a/lib/order/store_selector_page.dart +++ b/lib/order/store_selector_page.dart @@ -3,7 +3,7 @@ import 'package:amap_flutter_location/amap_location_option.dart'; import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; import 'package:huixiang/retrofit/data/store.dart'; @@ -96,14 +96,7 @@ class _StoreSelectorPage extends State { if (await Permission.locationWhenInUse.serviceStatus.isEnabled) { bool isShown = await Permission.contacts.shouldShowRequestRationale; if (isShown) { - Fluttertoast.showToast( - msg: "shouldShowRequestRationale", - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.CENTER, - timeInSecForIosWeb: 1, - backgroundColor: Colors.red, - textColor: Colors.white, - fontSize: 16.0); + SmartDialog.showToast("shouldShowRequestRationale"); } if (await Permission.location.isPermanentlyDenied) { openAppSettings(); @@ -172,8 +165,6 @@ class _StoreSelectorPage extends State { .map((e) => Store.fromJson(e)) .toList(); if (mounted) setState(() {}); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -232,7 +223,7 @@ class _StoreSelectorPage extends State { InkWell( onTap: () { if (groupValue == null) { - Fluttertoast.showToast(msg: S.of(context).qingxuanzeyigemendian); + SmartDialog.showToast(S.of(context).qingxuanzeyigemendian); return; } Store store = storeList[groupValue]; diff --git a/lib/retrofit/retrofit_api.dart b/lib/retrofit/retrofit_api.dart index 897224ac..1a957569 100644 --- a/lib/retrofit/retrofit_api.dart +++ b/lib/retrofit/retrofit_api.dart @@ -17,12 +17,13 @@ import 'package:shared_preferences/shared_preferences.dart'; part 'retrofit_api.g.dart'; const base_url = "http://platform.test.api.lotus-wallet.com/app/"; -const baseUrl = "http://platform.test.api.lotus-wallet.com/app/"; -// const baseUrl = "http://192.168.10.236:8766/app/"; +// const baseUrl = "http://platform.test.api.lotus-wallet.com/app/"; +const baseUrl = "http://192.168.10.236:8766/app/"; // const baseUrl = "http://192.168.10.129:8766/app/"; @RestApi(baseUrl: baseUrl) abstract class ApiService { + factory ApiService(Dio dio, {String baseUrl, BuildContext context, @@ -74,6 +75,8 @@ abstract class ApiService { ), clickBgDismissTemp: false, ); + } else if (map["code"] != 0) { + SmartDialog.showToast(map["msg"]); } debugPrint("======================= 响应数据结束 =======================\n"); }, onError: (DioError e) { diff --git a/lib/setting/setting_page.dart b/lib/setting/setting_page.dart index 118dd4b6..b3b5ece4 100644 --- a/lib/setting/setting_page.dart +++ b/lib/setting/setting_page.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/login/login_page.dart'; import 'package:huixiang/main.dart'; diff --git a/lib/union/union_details_page.dart b/lib/union/union_details_page.dart index d7ffe8e8..2ed43221 100644 --- a/lib/union/union_details_page.dart +++ b/lib/union/union_details_page.dart @@ -5,8 +5,8 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_swiper/flutter_swiper.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/activity.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; @@ -64,7 +64,9 @@ class _UnionDetailsPage extends State { if (baseData != null && baseData.isSuccess) { refreshController.refreshCompleted(); storeInfo = StoreInfo.fromJson(baseData.data); - activitys = storeInfo.informationVOPageVO.list.map((e) => Activity.fromJson(e)).toList(); + activitys = storeInfo.informationVOPageVO.list + .map((e) => Activity.fromJson(e)) + .toList(); if (mounted) setState(() {}); } else { refreshController.refreshFailed(); @@ -405,7 +407,9 @@ class _UnionDetailsPage extends State { width: 8.w, ), Text( - (storeInfo != null && storeInfo.memberSource != null) ? "${storeInfo.memberSource.integral}" : "", + (storeInfo != null && storeInfo.memberSource != null) + ? "${storeInfo.memberSource.integral}" + : "", style: TextStyle( fontSize: 14.sp, fontWeight: FontWeight.bold, @@ -416,7 +420,9 @@ class _UnionDetailsPage extends State { ), ], ), - SizedBox(height: 10.h,), + SizedBox( + height: 10.h, + ), Text( S.of(context).gongxinichengweibendianhuiyuan, style: TextStyle( @@ -459,7 +465,9 @@ class _UnionDetailsPage extends State { receiveVip(); }, child: RoundButton( - text: S.of(context).dianwolingqu, + text: isReceive + ? S.of(context).dianwolingqu + : S.of(context).yilingqu, textColor: isReceive ? Colors.white : Color(0xFF484D66), backgroup: isReceive ? Color(0xFF242B45) : Colors.white, padding: @@ -640,19 +648,29 @@ class _UnionDetailsPage extends State { ), InkWell( onTap: () { - receiveCoupon( - storeInfo.couponVOList[position].id); + if(storeInfo != null && + storeInfo.couponVOList != null && + storeInfo.couponVOList[position] + .status == + 0) { + receiveCoupon( + storeInfo.couponVOList[position].id); + } }, child: Container( height: 25.h, child: RoundButton( - text: S.of(context).lingqu, + text: (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo.couponVOList[position] + .status > + 0) ? S.of(context).yilingqu : S.of(context).lingqu, textColor: Colors.white, backgroup: (storeInfo != null && storeInfo.couponVOList != null && storeInfo.couponVOList[position] - .status >= - 2) + .status > + 0) ? Colors.grey : Color(0xFF32A060), padding: EdgeInsets.fromLTRB(8, 4, 8, 4), @@ -674,11 +692,9 @@ class _UnionDetailsPage extends State { ///领取优惠券 receiveCoupon(couponId) async { BaseData baseData = await apiService.receiveCoupon(couponId); - if (baseData.isSuccess) { + if (baseData != null && baseData.isSuccess) { queryStoreInfo(); showAlertDialog(); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -697,12 +713,10 @@ class _UnionDetailsPage extends State { receiveVip() async { BaseData baseData = await apiService.minLogin(storeInfo.id); if (baseData != null && baseData.isSuccess) { - Fluttertoast.showToast(msg: S.of(context).lingquchenggong); + SmartDialog.showToast(S.of(context).lingquchenggong); setState(() { isReceive = true; }); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -809,8 +823,7 @@ class _UnionDetailsPage extends State { ), child: Text( (activitys != null) - ? activitys[position].startTime - .split(" ")[0] + ? activitys[position].startTime.split(" ")[0] : "", style: TextStyle( fontWeight: FontWeight.bold, @@ -886,21 +899,19 @@ class _UnionDetailsPage extends State { print("print getAppBasePath: ${await Min.getAppBasePath(miniAppId)}"); print("print currentPageUrl: ${await Min.currentPageUrl()}"); print("print runingAppid: ${await Min.runingAppid()}"); - print("print getAppVersionInfo: ${await Min.getAppVersionInfo(miniAppId)}"); + // print("print getAppVersionInfo: ${await Min.getAppVersionInfo(miniAppId)}"); } _loginMin() async { if (storeInfo == null) return; if (!isEnable()) { - Fluttertoast.showToast(msg: S.of(context).zanbuzhichixianshangdiancan); + SmartDialog.showToast(S.of(context).zanbuzhichixianshangdiancan); return; } BaseData baseData = await apiService.minLogin(storeInfo.id); if (baseData != null && baseData.isSuccess) { UserEntity userEntity = UserEntity.fromJson(baseData.data); startMin(userEntity.token, userEntity.userId); - } else { - Fluttertoast.showToast(msg: baseData.msg); } } @@ -952,7 +963,7 @@ class _UnionDetailsPage extends State { "tenantCode": storeInfo.tenantCode, if (latitude != null && longitude != null) "position": "$latitude,$longitude", - "baseURL": "https://pos-test.api.lotus-wallet.com/app/", + "baseURL": "http://192.168.10.236:8765/app/", "uid": userId, "userInfo": { "nickname": nickname, @@ -992,7 +1003,7 @@ class _UnionDetailsPage extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( - height: 40.0.h, + height: 40.h, width: 40.w, child: CircularProgressIndicator( value: progressValue, diff --git a/lib/union/union_page.dart b/lib/union/union_page.dart index 2e2d7902..c30a762b 100644 --- a/lib/union/union_page.dart +++ b/lib/union/union_page.dart @@ -22,8 +22,6 @@ import 'package:huixiang/view_widget/custom_image.dart'; import 'package:huixiang/view_widget/item_title.dart'; import 'package:amap_flutter_base/amap_flutter_base.dart'; import 'package:amap_flutter_map/amap_flutter_map.dart'; -import 'package:fluttertoast/fluttertoast.dart'; -import 'package:huixiang/view_widget/loading_view.dart'; import 'package:huixiang/view_widget/request_permission.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; @@ -236,7 +234,6 @@ class _UnionPage extends State setState(() {}); } else { refreshController.refreshFailed(); - Fluttertoast.showToast(msg: baseData.msg); } } diff --git a/lib/view_widget/store_title_tab.dart b/lib/view_widget/store_title_tab.dart index b047a259..1f96396f 100644 --- a/lib/view_widget/store_title_tab.dart +++ b/lib/view_widget/store_title_tab.dart @@ -31,9 +31,9 @@ class _StoreTitleTab extends State { bool isVisible = false; List images = [ - "assets/image/icon_chili.png", - "assets/image/icon_milk_tea.png", - "assets/image/icon_bread.png", + "assets/image/icon_chili.webp", + "assets/image/icon_milk_tea.webp", + "assets/image/icon_bread.webp", ]; @override diff --git a/pubspec.lock b/pubspec.lock index fcee6b3f..8140237c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,294 +5,294 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "14.0.0" amap_flutter_base: dependency: transitive description: name: amap_flutter_base - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" amap_flutter_location: dependency: "direct main" description: name: amap_flutter_location - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" amap_flutter_map: dependency: "direct main" description: name: amap_flutter_map - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" analyzer: dependency: transitive description: name: analyzer - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.41.2" android_intent_plus: dependency: "direct main" description: name: android_intent_plus - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" args: dependency: transitive description: name: args - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" async: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.6.1" barcode: dependency: transitive description: name: barcode - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" barcode_widget: dependency: "direct main" description: name: barcode_widget - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" bubble_tab_indicator: dependency: "direct main" description: name: bubble_tab_indicator - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.6" build: dependency: transitive description: name: build - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.6.2" build_config: dependency: transitive description: name: build_config - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.4.6" build_daemon: dependency: transitive description: name: build_daemon - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.10" build_resolvers: dependency: transitive description: name: build_resolvers - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.5.3" build_runner: dependency: "direct dev" description: name: build_runner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.11.5" build_runner_core: dependency: transitive description: name: build_runner_core - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.1.10" built_collection: dependency: transitive description: name: built_collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.3.2" built_value: dependency: transitive description: name: built_value - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "7.1.0" cached_network_image: dependency: "direct main" description: name: cached_network_image - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" checked_yaml: dependency: transitive description: name: checked_yaml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.4" chewie: dependency: "direct main" description: name: chewie - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.2" chewie_audio: dependency: transitive description: name: chewie_audio - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.2" cli_util: dependency: transitive description: name: cli_util - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.3" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" code_builder: dependency: transitive description: name: code_builder - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.7.0" collection: dependency: transitive description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.15.0" convert: dependency: transitive description: name: convert - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" crypto: dependency: transitive description: name: crypto - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.5" css_colors: dependency: transitive description: name: css_colors - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" csslib: dependency: transitive description: name: csslib - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.16.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" dart_style: dependency: transitive description: name: dart_style - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.12" dio: dependency: "direct main" description: name: dio - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.10" event_bus: dependency: "direct main" description: name: event_bus - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" ffi: dependency: transitive description: name: ffi - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.2" file: dependency: transitive description: name: file - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.1.2" fixnum: dependency: transitive description: name: fixnum - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.10.11" flutter: @@ -304,21 +304,21 @@ packages: dependency: transitive description: name: flutter_cache_manager - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.3" flutter_html: dependency: "direct main" description: name: flutter_html - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" flutter_layout_grid: dependency: transitive description: name: flutter_layout_grid - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.10.5" flutter_localizations: @@ -330,49 +330,49 @@ packages: dependency: transitive description: name: flutter_page_indicator - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.0.3" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.11" flutter_screenutil: dependency: "direct main" description: name: flutter_screenutil - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.0.0+2" flutter_smart_dialog: dependency: "direct main" description: name: flutter_smart_dialog - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.6" flutter_staggered_grid_view: dependency: "direct main" description: name: flutter_staggered_grid_view - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.4.0" flutter_svg: dependency: transitive description: name: flutter_svg - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.20.0-nullsafety.3" flutter_swiper: dependency: "direct main" description: name: flutter_swiper - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.6" flutter_test: @@ -385,403 +385,396 @@ packages: description: flutter source: sdk version: "0.0.0" - fluttertoast: - dependency: "direct main" - description: - name: fluttertoast - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.0.7" glob: dependency: transitive description: name: glob - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" graphs: dependency: transitive description: name: graphs - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.0" html: dependency: transitive description: name: html - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.14.0+4" http: dependency: transitive description: name: http - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.2" http_multi_server: dependency: transitive description: name: http_multi_server - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" http_parser: dependency: transitive description: name: http_parser - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.4" image_cropper: dependency: "direct main" description: name: image_cropper - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.4.1" image_picker: dependency: transitive description: name: image_picker - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.6.7+22" image_picker_gallery_camera: dependency: "direct main" description: name: image_picker_gallery_camera - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.6" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.6" import_js_library: dependency: transitive description: name: import_js_library - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" intl: dependency: "direct main" description: name: intl - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.17.0" io: dependency: transitive description: name: io - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.5" js: dependency: transitive description: name: js - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.6.3" json_annotation: dependency: "direct main" description: name: json_annotation - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" json_serializable: dependency: "direct dev" description: name: json_serializable - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.5.1" logger: dependency: "direct main" description: name: logger - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" logging: dependency: transitive description: name: logging - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" mime: dependency: transitive description: name: mime - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" package_config: dependency: transitive description: name: package_config - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.9.3" package_info: dependency: "direct main" description: name: package_info - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.0" path_drawing: dependency: transitive description: name: path_drawing - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.5.1" path_parsing: dependency: transitive description: name: path_parsing - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.1" path_provider: dependency: "direct main" description: name: path_provider - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" path_provider_linux: dependency: transitive description: name: path_provider_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" path_provider_windows: dependency: transitive description: name: path_provider_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" pedantic: dependency: transitive description: name: pedantic - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.11.1" permission_handler: dependency: "direct main" description: name: permission_handler - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.1.0+2" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" petitparser: dependency: transitive description: name: petitparser - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.1.0" photo_view: dependency: "direct main" description: name: photo_view - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.11.1" platform: dependency: transitive description: name: platform - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" pool: dependency: transitive description: name: pool - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.5.0" process: dependency: transitive description: name: process - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.2.1" pub_semver: dependency: transitive description: name: pub_semver - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" pubspec_parse: dependency: transitive description: name: pubspec_parse - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.8" pull_to_refresh: dependency: "direct main" description: name: pull_to_refresh - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" qr: dependency: transitive description: name: qr - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" quiver: dependency: transitive description: name: quiver - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.5" retrofit: dependency: "direct main" description: name: retrofit - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.4+1" retrofit_generator: dependency: "direct dev" description: name: retrofit_generator - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.4.1+3" rxdart: dependency: "direct main" description: name: rxdart - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.26.0" share: dependency: "direct main" description: name: share - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.6.4+5" shared_preferences: dependency: "direct main" description: name: shared_preferences - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.6" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shelf: dependency: transitive description: name: shelf - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.7.9" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.4+1" sky_engine: @@ -793,212 +786,212 @@ packages: dependency: transitive description: name: source_gen - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.9.10+3" source_span: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.1" sqflite: dependency: transitive description: name: sqflite - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.2+4" sqflite_common: dependency: transitive description: name: sqflite_common - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3+3" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" stream_transform: dependency: transitive description: name: stream_transform - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" synchronized: dependency: transitive description: name: synchronized - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0+2" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.3.0" timing: dependency: transitive description: name: timing - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.1+3" transformer_page_view: dependency: transitive description: name: transformer_page_view - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.6" tuple: dependency: transitive description: name: tuple - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" uuid: dependency: transitive description: name: uuid - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.2" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" video_player: dependency: "direct main" description: name: video_player - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" video_player_web: dependency: transitive description: name: video_player_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.4+1" wakelock: dependency: transitive description: name: wakelock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.1+1" wakelock_platform_interface: dependency: transitive description: name: wakelock_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.0+1" wakelock_web: dependency: transitive description: name: wakelock_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.0+3" watcher: dependency: transitive description: name: watcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" web_socket_channel: dependency: transitive description: name: web_socket_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" webview_flutter: dependency: transitive description: name: webview_flutter - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.7" win32: dependency: transitive description: name: win32 - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.2.5" xdg_directories: dependency: transitive description: name: xdg_directories - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.0" xml: dependency: transitive description: name: xml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.1.2" yaml: dependency: transitive description: name: yaml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.13.0 <3.0.0" flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 836d4a8c..3a26bd7a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -63,7 +63,7 @@ dependencies: event_bus: ^2.0.0 intl: ^0.17.0 shared_preferences: ^2.0.6 - fluttertoast: ^8.0.7 +# fluttertoast: ^8.0.7 flutter_smart_dialog: ^2.1.6 # url_launcher: ^6.0.5 From b4be0a5ce3d963a74b41296edea0e1bfb6f5be9f Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 18:44:18 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E7=99=BB=E5=BD=95=EF=BC=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/union/union_details_page.dart | 363 +++++++++++++++--------------- 1 file changed, 178 insertions(+), 185 deletions(-) diff --git a/lib/union/union_details_page.dart b/lib/union/union_details_page.dart index 2ed43221..4d3958ba 100644 --- a/lib/union/union_details_page.dart +++ b/lib/union/union_details_page.dart @@ -486,206 +486,199 @@ class _UnionDetailsPage extends State { return Container( height: 109.h, child: ListView.builder( - itemCount: (storeInfo != null && storeInfo.couponVOList != null) - ? storeInfo.couponVOList.length - : 0, - physics: BouncingScrollPhysics(parent: PageScrollPhysics()), - scrollDirection: Axis.horizontal, - itemBuilder: (context, position) { - return Container( - width: MediaQuery.of(context).size.width * 0.784, - margin: EdgeInsets.only(left: 6.w), - child: AspectRatio( - aspectRatio: 2.86, - child: Stack( - children: [ - Image.asset( - "assets/image/icon_union_coupons_bg.png", - fit: BoxFit.fill, - width: double.infinity, - height: double.infinity, + itemCount: (storeInfo != null && storeInfo.couponVOList != null) + ? storeInfo.couponVOList.length + : 0, + physics: BouncingScrollPhysics(parent: PageScrollPhysics()), + scrollDirection: Axis.horizontal, + itemBuilder: (context, position) { + return Container( + width: MediaQuery.of(context).size.width * 0.784, + margin: EdgeInsets.only(left: 6.w), + child: AspectRatio( + aspectRatio: 2.86, + child: Stack( + children: [ + Image.asset( + "assets/image/icon_union_coupons_bg.png", + fit: BoxFit.fill, + width: double.infinity, + height: double.infinity, + ), + Container( + padding: EdgeInsets.only( + left: 24.w, + right: 24.w, + bottom: 17.h, + top: 11.h, ), - Container( - padding: EdgeInsets.only( - left: 24.w, - right: 24.w, - bottom: 17.h, - top: 11.h, - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - margin: EdgeInsets.only(left: 5), - child: Text.rich(TextSpan(children: [ - TextSpan( - text: (storeInfo != null && - storeInfo.couponVOList != null && - storeInfo.couponVOList[position] - .bizType == - 1) - ? "¥" - : "", - style: TextStyle( - fontSize: 22.sp, - color: Color(0xFFFF7A1A), - fontWeight: FontWeight.bold, - ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.only(left: 5), + child: Text.rich(TextSpan(children: [ + TextSpan( + text: (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo + .couponVOList[position].bizType == + 1) + ? "¥" + : "", + style: TextStyle( + fontSize: 22.sp, + color: Color(0xFFFF7A1A), + fontWeight: FontWeight.bold, ), - TextSpan( - text: (storeInfo != null && - storeInfo.couponVOList != null && - storeInfo.couponVOList[position] - .bizType == - 1) - ? "${double.tryParse(storeInfo.couponVOList[position].discountAmount).toInt()}" - : "${storeInfo.couponVOList[position].discountPercent}折", - style: TextStyle( - fontSize: 36.sp, - color: Color(0xFFFF7A1A), - fontWeight: FontWeight.bold, - ), + ), + TextSpan( + text: (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo + .couponVOList[position].bizType == + 1) + ? "${double.tryParse(storeInfo.couponVOList[position].discountAmount).toInt()}" + : "${storeInfo.couponVOList[position].discountPercent}折", + style: TextStyle( + fontSize: 36.sp, + color: Color(0xFFFF7A1A), + fontWeight: FontWeight.bold, ), - ])), - alignment: Alignment.center, + ), + ])), + alignment: Alignment.center, + ), + Container( + margin: EdgeInsets.only( + top: 12.h, + bottom: 12.h, + left: 15.w, + right: 24.w, + ), + child: MySeparator( + width: 1.w, + height: 5.h, + color: Color(0xFF979797), ), - Container( + ), + Expanded( + child: Container( margin: EdgeInsets.only( - top: 12.h, bottom: 12.h, - left: 15.w, - right: 24.w, - ), - child: MySeparator( - width: 1.w, - height: 5.h, - color: Color(0xFF979797), + top: 12.h, ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only( - bottom: 12.h, - top: 12.h, - ), - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - (storeInfo != null && - storeInfo.couponVOList != null) - ? storeInfo - .couponVOList[position].couponName - : "", - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 10.sp, - fontWeight: FontWeight.bold, - color: Color(0xFF727272), - ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + (storeInfo != null && + storeInfo.couponVOList != null) + ? storeInfo + .couponVOList[position].couponName + : "", + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 10.sp, + fontWeight: FontWeight.bold, + color: Color(0xFF727272), ), - Text( - (storeInfo != - null && - storeInfo.couponVOList != null) - ? (storeInfo.couponVOList[position] - .bizType == - 1 - ? S.of(context).manlijiandaijinquan( - double.tryParse(storeInfo - .couponVOList[position] - .fullAmount) - .toInt(), - double.tryParse(storeInfo - .couponVOList[position] - .discountAmount) - .toInt()) - : S.of(context).quanchangzhe( - storeInfo.couponVOList[position] - .discountPercent)) - : "", - // (storeInfo != null && storeInfo.couponVOList != null) ? storeInfo.couponVOList[position].couponImg : "", - // S.of(context).manlijiandaijinquan(30, 5), - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 12.sp, - fontWeight: FontWeight.bold, - color: Color(0xFFFF7A1A), - ), + ), + Text( + (storeInfo != null && + storeInfo.couponVOList != null) + ? (storeInfo.couponVOList[position] + .bizType == + 1 + ? S.of(context).manlijiandaijinquan( + double.tryParse(storeInfo + .couponVOList[position] + .fullAmount) + .toInt(), + double.tryParse(storeInfo + .couponVOList[position] + .discountAmount) + .toInt()) + : S.of(context).quanchangzhe(storeInfo + .couponVOList[position] + .discountPercent)) + : "", + // (storeInfo != null && storeInfo.couponVOList != null) ? storeInfo.couponVOList[position].couponImg : "", + // S.of(context).manlijiandaijinquan(30, 5), + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 12.sp, + fontWeight: FontWeight.bold, + color: Color(0xFFFF7A1A), ), - Text( - S.of(context).youxiaoqizhi( - (storeInfo != null && - storeInfo.couponVOList != - null && - storeInfo - .couponVOList[ - position] - .useStartTime != - null && - storeInfo - .couponVOList[ - position] - .useEndTime != - null) - ? "${storeInfo.couponVOList[position].useStartTime.replaceAll("-", ".").split(" ")[0]}-${storeInfo.couponVOList[position].useEndTime.replaceAll("-", ".").split(" ")[0]}" - : "", - ), - overflow: TextOverflow.ellipsis, - maxLines: 1, - style: TextStyle( - fontSize: 8.sp, - color: Color(0xFFA29E9E), - ), + ), + Text( + S.of(context).youxiaoqizhi( + (storeInfo != null && + storeInfo.couponVOList != + null && + storeInfo.couponVOList[position] + .useStartTime != + null && + storeInfo.couponVOList[position] + .useEndTime != + null) + ? "${storeInfo.couponVOList[position].useStartTime.replaceAll("-", ".").split(" ")[0]}-${storeInfo.couponVOList[position].useEndTime.replaceAll("-", ".").split(" ")[0]}" + : "", + ), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle( + fontSize: 8.sp, + color: Color(0xFFA29E9E), ), - ], - ), + ), + ], ), ), - InkWell( - onTap: () { - if(storeInfo != null && - storeInfo.couponVOList != null && - storeInfo.couponVOList[position] - .status == - 0) { - receiveCoupon( - storeInfo.couponVOList[position].id); - } - }, - child: Container( - height: 25.h, - child: RoundButton( - text: (storeInfo != null && - storeInfo.couponVOList != null && - storeInfo.couponVOList[position] - .status > - 0) ? S.of(context).yilingqu : S.of(context).lingqu, - textColor: Colors.white, - backgroup: (storeInfo != null && - storeInfo.couponVOList != null && - storeInfo.couponVOList[position] - .status > - 0) - ? Colors.grey - : Color(0xFF32A060), - padding: EdgeInsets.fromLTRB(8, 4, 8, 4), - fontSize: 12.sp, - ), + ), + InkWell( + onTap: () { + if (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo.couponVOList[position].status == 0) { + receiveCoupon( + storeInfo.couponVOList[position].id); + } + }, + child: Container( + height: 25.h, + child: RoundButton( + text: (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo.couponVOList[position].status > + 0) + ? S.of(context).yilingqu + : S.of(context).lingqu, + textColor: Colors.white, + backgroup: (storeInfo != null && + storeInfo.couponVOList != null && + storeInfo.couponVOList[position].status > + 0) + ? Colors.grey + : Color(0xFF32A060), + padding: EdgeInsets.fromLTRB(8, 4, 8, 4), + fontSize: 12.sp, ), ), - ], - ), - ) - ], - ), + ), + ], + ), + ) + ], ), - ); - }), + ), + ); + }, + ), ); } From 7c45fc73e371e3ce08b23f9c31d48623125fcb5a Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 18:47:03 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E7=99=BB=E5=BD=95=EF=BC=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/image/2x/icon_bread.webp | Bin 0 -> 902 bytes assets/image/2x/icon_chili.webp | Bin 0 -> 1004 bytes assets/image/2x/icon_milk_tea.webp | Bin 0 -> 894 bytes assets/image/3x/icon_bread.webp | Bin 0 -> 1468 bytes assets/image/3x/icon_chili.webp | Bin 0 -> 1524 bytes assets/image/3x/icon_milk_tea.webp | Bin 0 -> 1378 bytes assets/image/icon_bread.webp | Bin 0 -> 432 bytes assets/image/icon_chili.webp | Bin 0 -> 552 bytes assets/image/icon_milk_tea.webp | Bin 0 -> 532 bytes pubspec.lock | 7 ------- 10 files changed, 7 deletions(-) create mode 100644 assets/image/2x/icon_bread.webp create mode 100644 assets/image/2x/icon_chili.webp create mode 100644 assets/image/2x/icon_milk_tea.webp create mode 100644 assets/image/3x/icon_bread.webp create mode 100644 assets/image/3x/icon_chili.webp create mode 100644 assets/image/3x/icon_milk_tea.webp create mode 100644 assets/image/icon_bread.webp create mode 100644 assets/image/icon_chili.webp create mode 100644 assets/image/icon_milk_tea.webp diff --git a/assets/image/2x/icon_bread.webp b/assets/image/2x/icon_bread.webp new file mode 100644 index 0000000000000000000000000000000000000000..86cb05b8b9de3a886edc315c899de313f0700d29 GIT binary patch literal 902 zcmV;119|*XNk&F~0{{S5MM6+kP&iC+0{{RoC%_31|K&K6BuB}fxjVoS{I`fdKdm)5 z0XdQ+Ns4FnwF~Gk8v^j%A2;+gyvnH5?6pL8bz zGxJ?jRUH5X28Y9u5aCF0L?jeMI06C;3627XA>j)zc*hSiK4A!WMM6QqGYpPD7#tB1 z_Ky;gkRYujNQJHBb!?rTa(Ag-o$ z)Kr92*%N2;KByL|l?1~&UQ@!i`-#W{NJktXBq#4S^FzruIeD=Hk z{;RixyU0ED2q-cjp*W&C{`K9=OC(qJR>Hr;Kq3~YmVci^l1n~4c~On<3cW0JTvyDS ze1+ti&rja`n%a(7kCudCn_|OBk|)O8`?=s84>cl2FBN^aepAkUJ#H7t%}wx1(JBwY zY6la>A0)Z<$D=RsDbSG&)Lpc>j7=nWe0%)hy%*xNBp%c6s_rZ!d1~y#4^ws=s6~cW zVIWqhl(SxrT19dxLdta{)2nK~gA1ekca!ARcBE=a66%lH?e$wn1T=vZ{bBCYie-q|ild1@Gd cn!e#Wcqfa?S&5+le512v1QzG#mCOG#07Ox}-2eap literal 0 HcmV?d00001 diff --git a/assets/image/2x/icon_chili.webp b/assets/image/2x/icon_chili.webp new file mode 100644 index 0000000000000000000000000000000000000000..56159f5481f70c00e4ff569d3e47726cd788d42b GIT binary patch literal 1004 zcmVX zG9Pv0?sHs~$1wLfir+N9`{wZEUsJkq7fE;TC!q*}ngTV2GIjx=VE91k$hveGK8>G_Ax6wkMI2}B$at&T_G|DSd zAC*;;dRRF9luAf7Y`%W#&zrI_nmb&~ZqLg0sBBEidXQR(8a97s<+9svquGn6?Tt?h zZL+udW4@1yrtZam{co9rt3Ok^DJha#INI3!Jm>3ezBxa$APw8L^H1Jo+cjh@yN29s z-Px}FmTf)RZrMG{wrw|N>zC`}?~mt~K1cMQf!nr?Y_PpOf1&>SO^@jC(vnM-AK`ubki^&ddAqZtL! zVZUzl8?GTbmx;LH7{4;|?&{^A=qZ;SZFcbXo7Z3K`iBp1&|99;IK|8-fg7LSy#0hA z`BfU>5HrUeJ`am}iQ|OZLnkpaZ#!`O^tlTtB~E>e(MGamx9o`uOfTh#TYX~|SuDj) zpLqhVQt6svoHpFTx@q*JRYZ1a$|5PI&ti)#AbNl*Qu!l#4Aw?jSV{D_MQB!`j9wV4 z4P0Z9c|>=``%~A$ORe8R3(JU7;G0qSXRF~?e{F(=6_e>%Hxv`j<#1_`Hp23XGl=e? zj&Qj=TEEbStT$|&O_T_~EFx)Yp!LD^6IU5F%q2=jXaSK-?&v&vJX>__ETWW_Q7$5d zy>W5xfMFJvPNS*uKuO6``ihY_vy)eEWai~_h@Rd-NKpwFZ?rucXB@vdc0SSb_%3Lc zPoe~Hb~iKgrX@3I%AF&3)g1j(cJ3h~!4LvQ4Mhk-h9CqC zA)$bD3NN%H#f1qYooNuK00ALE5QKDq?sb7&(>zpSnMx-K!!{tHE%iUFgL)U~LQs$n zRmFTwv~^@Y2HG-Gg}x4q$4sCqREJcUuZargdu7^3s*40|DXI#=^0;YBs4l8PRUvr2 zE~<)DXcel9B+S>ue9w&gNF}60Uj~x!;UoFQgZ^FRY<$9VjX(as$dmlzvJTTZ9O<>> zy^2;X(k*%7AMmc%SrpME@s%{*UjT ze|YxhPpEL;cHQ;7`~x06CZbn2|A5z*Khw8skGQ<5H*V9R*MNb8hRm+^!t?g(onOss zdowhc9i5b#o{?uZS%rwCkKgb8oMlOf_a9eT2DUtFN{H`*sgoy79AAg%6Hyl!Z5C6! z%;H>gMq*-k(9#7nrcaqUchQo-h`8i5gUA>mLp>&kB`2n*=jWLW=7PMOtnAdJq!|Cv zT}iqny86^>(x!9Ie*FjZ>)pL`yA}5}#+8S+?i0|Kp|Tmu?2%PeDsJ5VLea@h7|4j7d-vFZ z75x;-O38^eIkIuU>2x070x?*lUQ&`bM?6ZM%6%|3Q)`|YL7c(ZuHxK{Fdvl>=1`V- z*raxTBj#5pYPArEVwr%oYR(g@Q5c#G0KP24uu8*uW}5)km2bc_mQE z!DyEHLR{3Lx)Os~e5^PnQ-t;`WWW)L3qW0-Ozf994IA;sqD0~tj7)*pDsd3mOtZ0G zVi)3>hNJkBK0B5%)iPs;u0ulfVWKfWxeiA$0*E~Uu$LTmI2=dIHVas)@X;I_v_)7A U`kfv8G7Aj`gCQquDE;dJ03tZN;s5{u literal 0 HcmV?d00001 diff --git a/assets/image/3x/icon_bread.webp b/assets/image/3x/icon_bread.webp new file mode 100644 index 0000000000000000000000000000000000000000..1740209e91ed140fceb3356d6f75700ba3456c43 GIT binary patch literal 1468 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 literal 0 HcmV?d00001 diff --git a/assets/image/icon_bread.webp b/assets/image/icon_bread.webp new file mode 100644 index 0000000000000000000000000000000000000000..8643f8aee4018bfc557c7c75b4dfd0c67573e825 GIT binary patch literal 432 zcmV;h0Z;x?Nk&Gf0RRA3MM6+kP&iDR0RR9m6Tk!z*Wx&mBuB~aIfZ!Qzc=`#!3|fD zWV=f5Ip;m%7Z&iZ06S>N$w4GZij>`l7S6ve(n0@@+(=TSf?=Lny3zl?H0t9rGgW7R zVEEyLAFeO}K#wKX0NwzOc;kgF0K*+00DpY(!@m`WJE4??v?*> z`yppe=s5SlYv;RQ3TwE=!2I|4(lGc`!P*BjZ<&16^AUyEFW`~8zv*+!7*_;JZ@_HD z;8}E9Vq@GC7<@6@yoB;r4klh0S literal 0 HcmV?d00001 diff --git a/assets/image/icon_chili.webp b/assets/image/icon_chili.webp new file mode 100644 index 0000000000000000000000000000000000000000..7017a75606afa96de7eb0d1151aa0aaa9664bf4b GIT binary patch literal 552 zcmV+@0@wXgNk&E>0ssJ4MM6+kP&iB!0ssIn6Tk!zzvD`_-L$!qoRpcF+h5-Qj+jx~ za2!c;!i-pEW@d=N`A6WlgJ3+#k!`za^CSh!%-#?PMRp45o z6+u1F0MQTskhyyR00K~e03@IQ3rIi%67T^9NWcXI-~k0d01@B=O(4Ls#Sma=Ad&}K zfB-CtFN!~K06v106?vl7h`~5>N7dGv zBq4j6lVTc-U2vZANEh{3EcYF5uj1bejqHcwfAlASR~Y3wQf6zv;Xhf=ag;>05PE*y zT3TG0PoB?H=2SyaKc3;kmv6p84#0uHCHOxb zQ8`7aaKC*2r~h79%}}o_!j5HSOJY-@;yM&;ou(g9xYh_Zq1T;}B&T;=oYs0C?>5U- z^;#K*r!c7w8I*d|W1V0Oz_M-IbaZ3ewr$(CPgr)!{r`Aj2O|2fux%Tp6%8&ySEEpH zbb~`IALU46I9#6*(Gij5mB0U3D0&#;%;xL&=R15*c*PCmocq1|Ab90xfYmN7JtTtm zM9ApjVF z!vO#=q>)D%IT#!y;w~h@PXK4T?~50XMOY=G`XWjQ0G^0@Qp5qduCf&JWo@3jdBz-f zdn}q>bjL|$s(*5P%bFAs){afvhkrYt`R?q_-qyb*Q(U2 z402Z_(bv^`{{Hpjcc@6=k)iIS*Jt_j44`2*Nf?a9J2U;+RNB{J7W^? zp{P;90cd`Fcj`El1UgvV5caIec$8!v_#cR@DCj)Q(lC&9M;Lhyku?J*l0K@3f W&F$S4n&Pp5esX*ww=gS$HUa>ErU8cl literal 0 HcmV?d00001 diff --git a/pubspec.lock b/pubspec.lock index 8140237c..76a491b7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -623,13 +623,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.1.0" - photo_view: - dependency: "direct main" - description: - name: photo_view - url: "https://pub.dartlang.org" - source: hosted - version: "0.11.1" platform: dependency: transitive description: From 4353a26bbcca5c6f395fb7f1da81dd578041861e Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 19:03:50 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E7=99=BB=E5=BD=95=EF=BC=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/image/2x/icon_today_video.png | Bin 0 -> 486 bytes assets/image/3x/icon_today_video.png.png | Bin 0 -> 834 bytes assets/image/icon_today_video.png | Bin 0 -> 293 bytes lib/home/home_page.dart | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/image/2x/icon_today_video.png create mode 100644 assets/image/3x/icon_today_video.png.png create mode 100644 assets/image/icon_today_video.png diff --git a/assets/image/2x/icon_today_video.png b/assets/image/2x/icon_today_video.png new file mode 100644 index 0000000000000000000000000000000000000000..3039e2f203d724d4b361c0bd0d7e7f496104df9a GIT binary patch literal 486 zcmV@P)8F@Atm%y$kOIEdPY%@q+=%R*)5_yaJt0rz?cG0-YP2 zv(C-6kd*SRgy55yhd~hR%nLx#20;*H!nSVCyMk2V3N2l}#Bqlgdt(?9PVedLI;Dt? z0y6>HzGppl?CK@shf8a1fnW@;EreSm0O@~t2qKj1unB35H_73yR+wi5%Gx(CLYwcSGT%Y@BEoK?7g zdue5B!1{|!_YY%{3fMi|wPCz&B*U6kn*V{r`X?sMOqI4Q_kEzW$TSaT0L?@hTgD0) cOReU{KYKaiKyv(5wg3PC07*qoM6N<$g5T)g3jhEB literal 0 HcmV?d00001 diff --git a/assets/image/3x/icon_today_video.png.png b/assets/image/3x/icon_today_video.png.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d20e09d98429daad4247d7028902c2c36e0b5f GIT binary patch literal 834 zcmV-I1HJr-P)gNp zJP8eo6vQI5SZ#J+SxwU<-RxxC#-!ONryORPo!>m~pLus)1^z+_DDnv>KtLLW5D)=H zb0Sm_6+{I^BR~a3<7e!HGMUV@WmyFg$pcu9HvNBlx~`NexvslitJS`n%xVnCahxp? zDFR5EOf&*xPn1%{N~Q9`Gr6F>wp4t^Z1)Ef|UGCR4wVJYWyb2WhAE2*|w4m7=i16nWVT8cBV{fiu{1LV)On=1#hAfV<> z5Kt3DyOVBLDFG2sZ?8okr19tkL_pDkJ{3d-jhTY7+3fvBqwz#UQsOK;kG8x%p0*Oe zavCz93LHFgCgwQKTM=0UkmzH1(TDiwfw>girz->$NZ_&oqKP%Pv7dq&PxBfNLO=x6 zNx-<|%7R(AglJ*`eEunlX_CDt$`i zVG6Qz)yQX$Toh}6`-{qhtXCfaAJU`+@7@gL!90-cubL7MKy5cP;77b$X?WR1$lN55 z2>(DFKR~AvO()^4%|hwzyc1z5$l?^d$4kJCOHy(jh!1MN1huh( z#Op6m`#%7;32H*Yd$GXtco4mHJ2L4PhF95tXm93b)T060AP3nZZ+e(~O(hb&CB zAjK1qzkE-izWs!Hvk&#@5b(w1`|Il|xEp5$d;%gM;G7C*Vx3XD0}!3``IM#|5E$k) zfS4$104YFjrXi1b)Hus!cvuauV6fa_RN*ljJkp6GTM=}hp4rS2PAHD;P;96R(*#>G zH9mz+y=D<~>_;2-i;X>zt_2d1X2%JLfTB4CDu@cAf}#HpKGPs7EH7Q`QBU?9#y z=BZa1{$^`4FfjZ-axP&Z*dihu`x6J zHxLFZAvuU>ZUM+uMhj>d$rwIB3Jz?+MtKlX+X8$+#CY{R!+%vi1_m}}xMxWA0X_>r zhW+PdW%%bH#lRrPLtZK(WWirwc?PEa&lvtI@G$(hmm)ox4!8yXc~}|#InpSIs2Isq rF0N@_;SgK)6RVE?buzIoBUT*%YmDd_d`9lw00000NkvXXu0mjf+KzXH literal 0 HcmV?d00001 diff --git a/lib/home/home_page.dart b/lib/home/home_page.dart index 8b29252c..6509e50b 100644 --- a/lib/home/home_page.dart +++ b/lib/home/home_page.dart @@ -190,7 +190,7 @@ class _HomePage extends State with AutomaticKeepAliveClientMixin { ), ItemTitle( text: S.of(context).remenwenzhangshipin, - imgPath: "assets/image/icon_today_task.png", + imgPath: "assets/image/icon_today_video.png", moreText: S.of(context).chakangengduo, onTap: () { Navigator.of(context).pushNamed('/router/hot_article_page'); From 77af29f3d18a5825c92768ee867c0690b5866fdb Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 19:31:21 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E7=99=BB=E5=BD=95=EF=BC=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/retrofit/retrofit_api.g.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/retrofit/retrofit_api.g.dart b/lib/retrofit/retrofit_api.g.dart index 9584b822..6018ba50 100644 --- a/lib/retrofit/retrofit_api.g.dart +++ b/lib/retrofit/retrofit_api.g.dart @@ -9,7 +9,7 @@ part of 'retrofit_api.dart'; class _ApiService implements ApiService { _ApiService(this._dio, {this.baseUrl}) { ArgumentError.checkNotNull(_dio, '_dio'); - baseUrl ??= 'http://platform.test.api.lotus-wallet.com/app/'; + baseUrl ??= 'http://192.168.10.236:8766/app/'; } final Dio _dio; From 045cd493f699572f7e1a0553c33f2379c82a556e Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 22 Jul 2021 19:39:54 +0800 Subject: [PATCH 8/8] fuwuqi --- lib/retrofit/retrofit_api.dart | 4 ++-- lib/union/union_details_page.dart | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/retrofit/retrofit_api.dart b/lib/retrofit/retrofit_api.dart index 1a957569..672a3c6b 100644 --- a/lib/retrofit/retrofit_api.dart +++ b/lib/retrofit/retrofit_api.dart @@ -17,8 +17,8 @@ import 'package:shared_preferences/shared_preferences.dart'; part 'retrofit_api.g.dart'; const base_url = "http://platform.test.api.lotus-wallet.com/app/"; -// const baseUrl = "http://platform.test.api.lotus-wallet.com/app/"; -const baseUrl = "http://192.168.10.236:8766/app/"; +const baseUrl = "http://platform.test.api.lotus-wallet.com/app/"; +// const baseUrl = "http://192.168.10.236:8766/app/"; // const baseUrl = "http://192.168.10.129:8766/app/"; @RestApi(baseUrl: baseUrl) diff --git a/lib/union/union_details_page.dart b/lib/union/union_details_page.dart index 4d3958ba..2f6dccf5 100644 --- a/lib/union/union_details_page.dart +++ b/lib/union/union_details_page.dart @@ -956,7 +956,7 @@ class _UnionDetailsPage extends State { "tenantCode": storeInfo.tenantCode, if (latitude != null && longitude != null) "position": "$latitude,$longitude", - "baseURL": "http://192.168.10.236:8765/app/", + "baseURL": "https://pos-test.api.lotus-wallet.com/app/", "uid": userId, "userInfo": { "nickname": nickname,