Browse Source

ios 小程序

null_safety
fmk 3 years ago
parent
commit
4e03a5cfb8
  1. 1
      .gitignore
  2. 18
      ios/Podfile.lock
  3. 101
      ios/Runner.xcodeproj/project.pbxproj
  4. BIN
      ios/Runner/Libs/libSDWebImage.a
  5. BIN
      ios/Runner/Libs/libcoreSupport.a
  6. BIN
      ios/Runner/Libs/liblibIO.a
  7. BIN
      ios/Runner/Libs/liblibNativeObj.a
  8. BIN
      ios/Runner/Libs/liblibNativeUI.a
  9. BIN
      ios/Runner/Libs/liblibNavigator.a
  10. BIN
      ios/Runner/Libs/liblibPDRCore.a
  11. BIN
      ios/Runner/Libs/liblibPGInvocation.a
  12. BIN
      ios/Runner/Libs/liblibStorage.a
  13. BIN
      ios/Runner/Libs/liblibUI.a
  14. BIN
      ios/Runner/Libs/liblibWeex.a
  15. 37
      ios/Runner/Libs/storage.framework/Headers/StorageManager.h
  16. 19
      ios/Runner/Libs/storage.framework/Headers/storage.h
  17. BIN
      ios/Runner/Libs/storage.framework/Info.plist
  18. 6
      ios/Runner/Libs/storage.framework/Modules/module.modulemap
  19. BIN
      ios/Runner/Libs/storage.framework/storage
  20. 10
      ios/Runner/MinPlugin.h
  21. 17
      ios/Runner/MinPlugin.m
  22. 59
      lib/home/huixiang_brand_page.dart
  23. 2
      lib/retrofit/retrofit_api.dart
  24. 2
      lib/retrofit/retrofit_api.g.dart
  25. 2
      lib/retrofit/test.html
  26. 598
      lib/union/union_details_page.dart
  27. 58
      lib/union/union_page.dart
  28. 116
      lib/view_widget/custom_image.dart
  29. 424
      pubspec.lock
  30. 7
      pubspec.yaml

1
.gitignore vendored

@ -51,3 +51,4 @@ ios/UniMPSDK/Core/*
ios/UniMPSDK/Features/*
/.gradle/
/.vscode/
/ios/build/

18
ios/Podfile.lock

@ -14,15 +14,23 @@ PODS:
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- image_cropper (0.0.4):
- Flutter
- TOCropViewController (~> 2.6.0)
- image_picker (0.0.1):
- Flutter
- path_provider (0.0.1):
- Flutter
- "permission_handler (5.1.0+2)":
- Flutter
- shared_preferences (0.0.1):
- Flutter
- sqflite (0.0.2):
- Flutter
- FMDB (>= 2.7.5)
- Toast (4.0.0)
- TOCropViewController (2.6.0)
- video_player (0.0.1):
@ -39,8 +47,10 @@ DEPENDENCIES:
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- video_player (from `.symlinks/plugins/video_player/ios`)
- wakelock (from `.symlinks/plugins/wakelock/ios`)
- webview_flutter (from `.symlinks/plugins/webview_flutter/ios`)
@ -50,6 +60,7 @@ SPEC REPOS:
- AMap3DMap
- AMapFoundation
- AMapLocation
- FMDB
- Toast
- TOCropViewController
@ -66,10 +77,14 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/image_cropper/ios"
image_picker:
:path: ".symlinks/plugins/image_picker/ios"
path_provider:
:path: ".symlinks/plugins/path_provider/ios"
permission_handler:
:path: ".symlinks/plugins/permission_handler/ios"
shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
video_player:
:path: ".symlinks/plugins/video_player/ios"
wakelock:
@ -85,10 +100,13 @@ SPEC CHECKSUMS:
AMapLocation: dad27669c4ca68e395ce7532ff614b7d4d45f7b7
Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
image_cropper: f1668dd8d2cad2d357955caad15a40547856edcb
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e

101
ios/Runner.xcodeproj/project.pbxproj

@ -32,7 +32,6 @@
057FFDAD26934BAE0082DFF3 /* weexUniJs.js in Resources */ = {isa = PBXBuildFile; fileRef = 057FFDA726934BAE0082DFF3 /* weexUniJs.js */; };
057FFDFD26934C430082DFF3 /* __UNI__11E9B73.wgt in Resources */ = {isa = PBXBuildFile; fileRef = 057FFDFB26934C430082DFF3 /* __UNI__11E9B73.wgt */; };
057FFDFE26934C430082DFF3 /* __UNI__CBDCE04.wgt in Resources */ = {isa = PBXBuildFile; fileRef = 057FFDFC26934C430082DFF3 /* __UNI__CBDCE04.wgt */; };
057FFE0126934CEB0082DFF3 /* MinPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 057FFE0026934CEB0082DFF3 /* MinPlugin.m */; };
057FFE02269352DC0082DFF3 /* libcoreSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 057FFD6826934AD00082DFF3 /* libcoreSupport.a */; };
057FFE03269352DC0082DFF3 /* liblibIO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 057FFD6926934AD00082DFF3 /* liblibIO.a */; };
057FFE04269352DC0082DFF3 /* liblibNativeObj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 057FFD6626934AD00082DFF3 /* liblibNativeObj.a */; };
@ -47,6 +46,18 @@
057FFE0D269352DC0082DFF3 /* storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 057FFD7126934AD00082DFF3 /* storage.framework */; };
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
891821F62694072600DB8C50 /* libSDWebImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821EA2694072600DB8C50 /* libSDWebImage.a */; };
891821F72694072600DB8C50 /* liblibIO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821EB2694072600DB8C50 /* liblibIO.a */; };
891821F82694072600DB8C50 /* liblibWeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821EC2694072600DB8C50 /* liblibWeex.a */; };
891821F92694072600DB8C50 /* liblibPDRCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821ED2694072600DB8C50 /* liblibPDRCore.a */; };
891821FA2694072600DB8C50 /* liblibNativeUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821EE2694072600DB8C50 /* liblibNativeUI.a */; };
891821FB2694072600DB8C50 /* liblibUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821EF2694072600DB8C50 /* liblibUI.a */; };
891821FC2694072600DB8C50 /* libcoreSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F02694072600DB8C50 /* libcoreSupport.a */; };
891821FD2694072600DB8C50 /* liblibStorage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F12694072600DB8C50 /* liblibStorage.a */; };
891821FE2694072600DB8C50 /* liblibPGInvocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F22694072600DB8C50 /* liblibPGInvocation.a */; };
891821FF2694072600DB8C50 /* liblibNavigator.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F32694072600DB8C50 /* liblibNavigator.a */; };
891822002694072600DB8C50 /* storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F42694072600DB8C50 /* storage.framework */; };
891822012694072600DB8C50 /* liblibNativeObj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891821F52694072600DB8C50 /* liblibNativeObj.a */; };
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
@ -180,8 +191,6 @@
057FFDF926934BC20082DFF3 /* DCUniMPMenuActionSheetStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DCUniMPMenuActionSheetStyle.h; sourceTree = "<group>"; };
057FFDFB26934C430082DFF3 /* __UNI__11E9B73.wgt */ = {isa = PBXFileReference; lastKnownFileType = file; path = __UNI__11E9B73.wgt; sourceTree = "<group>"; };
057FFDFC26934C430082DFF3 /* __UNI__CBDCE04.wgt */ = {isa = PBXFileReference; lastKnownFileType = file; path = __UNI__CBDCE04.wgt; sourceTree = "<group>"; };
057FFDFF26934CEA0082DFF3 /* MinPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MinPlugin.h; path = ../../ios111/Runner/MinPlugin.h; sourceTree = "<group>"; };
057FFE0026934CEB0082DFF3 /* MinPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MinPlugin.m; path = ../../ios111/Runner/MinPlugin.m; sourceTree = "<group>"; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
@ -189,6 +198,18 @@
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
891821EA2694072600DB8C50 /* libSDWebImage.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libSDWebImage.a; sourceTree = "<group>"; };
891821EB2694072600DB8C50 /* liblibIO.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibIO.a; sourceTree = "<group>"; };
891821EC2694072600DB8C50 /* liblibWeex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibWeex.a; sourceTree = "<group>"; };
891821ED2694072600DB8C50 /* liblibPDRCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibPDRCore.a; sourceTree = "<group>"; };
891821EE2694072600DB8C50 /* liblibNativeUI.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibNativeUI.a; sourceTree = "<group>"; };
891821EF2694072600DB8C50 /* liblibUI.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibUI.a; sourceTree = "<group>"; };
891821F02694072600DB8C50 /* libcoreSupport.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcoreSupport.a; sourceTree = "<group>"; };
891821F12694072600DB8C50 /* liblibStorage.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibStorage.a; sourceTree = "<group>"; };
891821F22694072600DB8C50 /* liblibPGInvocation.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibPGInvocation.a; sourceTree = "<group>"; };
891821F32694072600DB8C50 /* liblibNavigator.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibNavigator.a; sourceTree = "<group>"; };
891821F42694072600DB8C50 /* storage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = storage.framework; sourceTree = "<group>"; };
891821F52694072600DB8C50 /* liblibNativeObj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblibNativeObj.a; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -210,22 +231,31 @@
057FFE02269352DC0082DFF3 /* libcoreSupport.a in Frameworks */,
057FFE03269352DC0082DFF3 /* liblibIO.a in Frameworks */,
057FFE04269352DC0082DFF3 /* liblibNativeObj.a in Frameworks */,
891821FE2694072600DB8C50 /* liblibPGInvocation.a in Frameworks */,
057FFE05269352DC0082DFF3 /* liblibNativeUI.a in Frameworks */,
057FFE06269352DC0082DFF3 /* liblibNavigator.a in Frameworks */,
057FFE07269352DC0082DFF3 /* liblibPDRCore.a in Frameworks */,
057FFE08269352DC0082DFF3 /* liblibPGInvocation.a in Frameworks */,
891821FC2694072600DB8C50 /* libcoreSupport.a in Frameworks */,
057FFE09269352DC0082DFF3 /* liblibStorage.a in Frameworks */,
891821F62694072600DB8C50 /* libSDWebImage.a in Frameworks */,
057FFE0A269352DC0082DFF3 /* liblibUI.a in Frameworks */,
057FFE0B269352DC0082DFF3 /* liblibWeex.a in Frameworks */,
057FFE0C269352DC0082DFF3 /* libSDWebImage.a in Frameworks */,
057FFE0D269352DC0082DFF3 /* storage.framework in Frameworks */,
891821FB2694072600DB8C50 /* liblibUI.a in Frameworks */,
057FFD9F26934B7A0082DFF3 /* libiconv.tbd in Frameworks */,
057FFD9D26934B710082DFF3 /* AddressBook.framework in Frameworks */,
891821FA2694072600DB8C50 /* liblibNativeUI.a in Frameworks */,
891822002694072600DB8C50 /* storage.framework in Frameworks */,
057FFD9B26934B680082DFF3 /* CoreLocation.framework in Frameworks */,
057FFD9926934B600082DFF3 /* AssetsLibrary.framework in Frameworks */,
891821F92694072600DB8C50 /* liblibPDRCore.a in Frameworks */,
057FFD9726934B5A0082DFF3 /* CoreTelephony.framework in Frameworks */,
057FFD9526934B530082DFF3 /* QuickLook.framework in Frameworks */,
057FFD9326934B4C0082DFF3 /* libc++.tbd in Frameworks */,
891822012694072600DB8C50 /* liblibNativeObj.a in Frameworks */,
891821FF2694072600DB8C50 /* liblibNavigator.a in Frameworks */,
057FFD9126934B3F0082DFF3 /* CoreGraphics.framework in Frameworks */,
057FFD8F26934B380082DFF3 /* QuartzCore.framework in Frameworks */,
057FFD8D26934B300082DFF3 /* CoreText.framework in Frameworks */,
@ -233,10 +263,13 @@
057FFD8926934B200082DFF3 /* GLKit.framework in Frameworks */,
057FFD8726934B190082DFF3 /* AVKit.framework in Frameworks */,
057FFD8526934B100082DFF3 /* AVFoundation.framework in Frameworks */,
891821F82694072600DB8C50 /* liblibWeex.a in Frameworks */,
057FFD8326934B070082DFF3 /* MediaPlayer.framework in Frameworks */,
057FFD8126934AFC0082DFF3 /* CoreMedia.framework in Frameworks */,
057FFD7F26934AF00082DFF3 /* JavaScriptCore.framework in Frameworks */,
FD4D7844B237D994024F411B /* libPods-Runner.a in Frameworks */,
891821F72694072600DB8C50 /* liblibIO.a in Frameworks */,
891821FD2694072600DB8C50 /* liblibStorage.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -246,6 +279,7 @@
057FFDA026934B8E0082DFF3 /* UniMP */ = {
isa = PBXGroup;
children = (
891821E92694072600DB8C50 /* Libs */,
057FFDFA26934C430082DFF3 /* Apps */,
057FFDAE26934BC20082DFF3 /* Headers */,
057FFDA126934BAE0082DFF3 /* Resources */,
@ -411,6 +445,33 @@
path = Pods;
sourceTree = "<group>";
};
891821E92694072600DB8C50 /* Libs */ = {
isa = PBXGroup;
children = (
891821EA2694072600DB8C50 /* libSDWebImage.a */,
891821EB2694072600DB8C50 /* liblibIO.a */,
891821EC2694072600DB8C50 /* liblibWeex.a */,
891821ED2694072600DB8C50 /* liblibPDRCore.a */,
891821EE2694072600DB8C50 /* liblibNativeUI.a */,
891821EF2694072600DB8C50 /* liblibUI.a */,
891821F02694072600DB8C50 /* libcoreSupport.a */,
891821F12694072600DB8C50 /* liblibStorage.a */,
891821F22694072600DB8C50 /* liblibPGInvocation.a */,
891821F32694072600DB8C50 /* liblibNavigator.a */,
891821F42694072600DB8C50 /* storage.framework */,
891821F52694072600DB8C50 /* liblibNativeObj.a */,
);
path = Libs;
sourceTree = "<group>";
};
89E12C2E26940DE200C7B0FE /* Classes */ = {
isa = PBXGroup;
children = (
);
name = Classes;
path = ../../flutter_plugin/ios/Classes;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@ -444,8 +505,7 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
057FFDFF26934CEA0082DFF3 /* MinPlugin.h */,
057FFE0026934CEB0082DFF3 /* MinPlugin.m */,
89E12C2E26940DE200C7B0FE /* Classes */,
057FFDA026934B8E0082DFF3 /* UniMP */,
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
@ -623,7 +683,6 @@
buildActionMask = 2147483647;
files = (
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,
057FFE0126934CEB0082DFF3 /* MinPlugin.m in Sources */,
97C146F31CF9000F007C117D /* main.m in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
@ -710,11 +769,21 @@
CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = YF3Q8DVP52;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.zsw.hx;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -837,11 +906,21 @@
CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = YF3Q8DVP52;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.zsw.hx;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -857,11 +936,21 @@
CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = YF3Q8DVP52;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Runner/Libs",
"$(PROJECT_DIR)/Runner/UniMP/Libs",
);
MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.zsw.hx;
PRODUCT_NAME = "$(TARGET_NAME)";

BIN
ios/Runner/Libs/libSDWebImage.a

Binary file not shown.

BIN
ios/Runner/Libs/libcoreSupport.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibIO.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibNativeObj.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibNativeUI.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibNavigator.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibPDRCore.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibPGInvocation.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibStorage.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibUI.a

Binary file not shown.

BIN
ios/Runner/Libs/liblibWeex.a

Binary file not shown.

37
ios/Runner/Libs/storage.framework/Headers/StorageManager.h

@ -0,0 +1,37 @@
//
// StorageManager.h
// storage
//
// Created by DCloud on 2018/6/13.
// Copyright © 2018年 DCloud. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef void (^StorageManagerCallback)(id result);
@class Storage;
@interface StorageManager : NSObject
+ (Storage*)currentStorage;
+ (Storage*)activeStorageWithDomain:(NSString*)domain;
+ (void)serializeStorageWithDomain:(NSString*)domain;
+ (Storage*)storageWithDomain:(NSString*)domain;
@end
@interface Storage : NSObject
@property(nonatomic, strong)NSString* domain;
@property(nonatomic, strong)NSString* rootPath;
- (NSUInteger)length;
- (NSArray*)getAllKeys;
- (void)setItem:(NSString *)key value:(NSString *)value callback:(StorageManagerCallback)callback;
- (void)setItemPersistent:(NSString *)key value:(NSString *)value callback:(StorageManagerCallback)callback;
- (NSString*)getItem:(NSString *)key callback:(StorageManagerCallback)callback;
- (void)removeItem:(NSString *)key callback:(StorageManagerCallback)callback;
- (void)clear;
@end

19
ios/Runner/Libs/storage.framework/Headers/storage.h

@ -0,0 +1,19 @@
//
// storage.h
// storage
//
// Created by DCloud on 2018/6/13.
// Copyright © 2018年 DCloud. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for storage.
FOUNDATION_EXPORT double storageVersionNumber;
//! Project version string for storage.
FOUNDATION_EXPORT const unsigned char storageVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <storage/PublicHeader.h>
#import <storage/StorageManager.h>

BIN
ios/Runner/Libs/storage.framework/Info.plist

Binary file not shown.

6
ios/Runner/Libs/storage.framework/Modules/module.modulemap

@ -0,0 +1,6 @@
framework module storage {
umbrella header "storage.h"
export *
module * { export * }
}

BIN
ios/Runner/Libs/storage.framework/storage

Binary file not shown.

10
ios/Runner/MinPlugin.h

@ -1,10 +0,0 @@
//
// MinPlugin.h
// Runner
//
// Created by 冯美坎 on 2021/6/18.
//
#import <Flutter/Flutter.h>
@interface MinPlugin : NSObject<FlutterPlugin>
@end

17
ios/Runner/MinPlugin.m

@ -1,17 +0,0 @@
//
// MinPlugin.m
// Runner
//
// Created by 冯美坎 on 2021/6/18.
//
#import "MinPlugin.h"
#import <Foundation/Foundation.h>
#import <min-Swift.h>
@implementation MinPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
[SwiftMinPlugin registerWithRegistrar:registrar];
}
@end

59
lib/home/huixiang_brand_page.dart

@ -29,11 +29,11 @@ class _BrandPage extends State<BrandPage>
with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
ScrollController tabcontroller;
List<String> tabs = [
S.current.bainianchuanjiao,
S.current.haixiajiemei,
S.current.qianjinmaiwei,
];
// List<String> tabs = [
// S.current.bainianchuanjiao,
// S.current.haixiajiemei,
// S.current.qianjinmaiwei,
// ];
Map<String, String> images = {
S.current.bainianchuanjiao: "assets/image/icon_chili.png",
@ -80,40 +80,40 @@ class _BrandPage extends State<BrandPage>
if (tabcontroller == null) tabcontroller = ScrollController();
tabcontroller.addListener(() {
// RenderBox contentRenderBox = contentGlobalKey.currentContext.findRenderObject();
RenderBox chiliRenderBox =
chiliGlobalKey.currentContext.findRenderObject();
RenderBox milkTeaRenderBox =
milkTeaGlobalKey.currentContext.findRenderObject();
RenderBox breadRenderBox =
breadGlobalKey.currentContext.findRenderObject();
// Offset contentOffset = contentRenderBox.localToGlobal(Offset.zero);
Offset chiliOffset = chiliRenderBox.localToGlobal(Offset.zero);
Offset milkTeaOffset = milkTeaRenderBox.localToGlobal(Offset.zero);
Offset breadOffset = breadRenderBox.localToGlobal(Offset.zero);
// print("chiliOffset: ${chiliOffset.dy}");
// print("milkTeaOffset: ${milkTeaOffset.dy}");
// print("breadOffset: ${breadOffset.dy}");
var top = 96.h;
if (chiliOffset.dy <= top) {
if (!isVisible) {
isVisible = true;
setState(() {});
}
} else {
var b = isVisible;
isVisible = false;
if(b)
setState(() {});
selectedIndex = "";
}
if (chiliOffset.dy <= top && milkTeaOffset.dy > top) {
selectedIndex = tabs[0];
selectedIndex = (brandData.contents as Map<String, dynamic>).keys.elementAt(0);
setState(() {});
} else if (milkTeaOffset.dy <= top && breadOffset.dy > top) {
selectedIndex = tabs[1];
selectedIndex = (brandData.contents as Map<String, dynamic>).keys.elementAt(1);
setState(() {});
} else if (breadOffset.dy <= top) {
selectedIndex = tabs[2];
selectedIndex = (brandData.contents as Map<String, dynamic>).keys.elementAt(2);
setState(() {});
}
setState(() {});
});
}
@ -129,7 +129,6 @@ class _BrandPage extends State<BrandPage>
elevation: 0,
),
body: Container(
// key: contentGlobalKey,
child: Stack(
children: [
Container(
@ -138,16 +137,18 @@ class _BrandPage extends State<BrandPage>
enablePullDown: true,
enablePullUp: false,
header: MyHeader(),
physics: BouncingScrollPhysics(),
scrollController: tabcontroller,
physics: BouncingScrollPhysics(),
onRefresh: queryHome,
child: SingleChildScrollView(
physics: NeverScrollableScrollPhysics(),
child: Container(
color: Color(0xFFF7F7F7),
margin: EdgeInsets.only(top: 16),
child: Column(
children: homeChildItem(),
child: Container(
child: SingleChildScrollView(
physics: NeverScrollableScrollPhysics(),
child: Container(
color: Color(0xFFF7F7F7),
margin: EdgeInsets.only(top: 16),
child: Column(
children: homeChildItem(),
),
),
),
),
@ -166,8 +167,7 @@ class _BrandPage extends State<BrandPage>
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children:
tabs.map((e) => item(e, selectedIndex == e)).toList(),
children: (brandData == null || brandData.contents == null) ? [] : (brandData.contents as Map<String, dynamic>).keys.map((e) => item(e, selectedIndex == e)).toList(),
),
),
),
@ -192,8 +192,7 @@ class _BrandPage extends State<BrandPage>
? milkTeaGlobalKey
: breadGlobalKey,
child: Html(
data:
"""<p><img class=\"wscnph\" src=\"blob:http://192.168.10.195:8082/bead76d2-cee4-4d54-906c-139a03328b8f\" /><img class=\"wscnph\" src=\"blob:http://192.168.10.195:8082/6bf9b43a-7f95-4fa5-abfb-a0542f167cbb\" /></p>""",
data:value,
),
));
});
@ -212,7 +211,7 @@ class _BrandPage extends State<BrandPage>
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: tabs.map((e) => item(e, selectedIndex == e)).toList(),
children: (brandData == null || brandData.contents == null) ? [] : (brandData.contents as Map<String, dynamic>).keys.map((e) => item(e, selectedIndex == e)).toList(),
),
);
}

2
lib/retrofit/retrofit_api.dart

@ -7,7 +7,7 @@ import 'package:retrofit/retrofit.dart';
part 'retrofit_api.g.dart';
@RestApi(baseUrl: "http://192.168.10.236:8766/app")
@RestApi(baseUrl: "http://platform.test.api.lotus-wallet.com/app")
abstract class ApiService {
factory ApiService(Dio dio, {String baseUrl, String token}) {
Map<String, dynamic> headers =

2
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://192.168.10.236:8766/app';
baseUrl ??= 'http://platform.test.api.lotus-wallet.com/app';
}
final Dio _dio;

2
lib/retrofit/test.html

@ -1,4 +1,4 @@
<p><img class="wscnph" src="http://192.168.10.195:8082/bead76d2-cee4-4d54-906c-139a03328b8f"/><img class="wscnph" src="http://192.168.10.195:8082/6bf9b43a-7f95-4fa5-abfb-a0542f167cbb"/></p>
<p><img class="wscnph" src="https://pos.upload.gznl.top/MDAwMA==/2021/07/242e5611-4d58-4ef0-9bce-c3d9a1561579.webp" /></p>

598
lib/union/union_details_page.dart

@ -10,6 +10,7 @@ import 'package:huixiang/retrofit/data/store_info.dart';
import 'package:huixiang/retrofit/data/user_info.dart';
import 'package:huixiang/retrofit/retrofit_api.dart';
import 'package:huixiang/utils/min.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/round_button.dart';
@ -17,6 +18,7 @@ import 'package:huixiang/view_widget/separator.dart';
import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
class UnionDetailsPage extends StatefulWidget {
final Map<String, dynamic> arguments;
@ -45,12 +47,22 @@ class _UnionDetailsPage extends State<UnionDetailsPage> {
StoreInfo storeInfo;
queryStoreInfo() async {
BaseData baseData = await apiService.queryStoreInfo(widget.arguments["id"]);
BaseData baseData = await apiService
.queryStoreInfo(widget.arguments["id"])
.catchError((error) {
refreshController.refreshFailed();
});
if (baseData.isSuccess) {
refreshController.refreshCompleted();
storeInfo = StoreInfo.fromJson(baseData.data);
} else {}
setState(() {});
} else {
refreshController.refreshFailed();
}
}
RefreshController refreshController = RefreshController();
@override
Widget build(BuildContext context) {
return Scaffold(
@ -78,316 +90,325 @@ class _UnionDetailsPage extends State<UnionDetailsPage> {
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
children: [
AspectRatio(
aspectRatio: 1,
child: GestureDetector(
onTap: () {
Navigator.of(context)
.pushNamed('/router/store_detail_page');
},
child: Container(
margin: EdgeInsets.fromLTRB(16, 20, 16, 8),
padding: EdgeInsets.fromLTRB(10, 20, 10, 14),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(8)),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(25),
offset: Offset(0, 1),
blurRadius: 12,
spreadRadius: 0,
)
]),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AspectRatio(
aspectRatio: 1.8,
child: buildSwiper(),
),
Expanded(
child: Container(
margin: EdgeInsets.only(
left: 10.w,
right: 10.w,
top: 16.h,
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
storeInfo != null
? storeInfo.storeName
: "",
style: TextStyle(
fontSize: 16.sp,
color: Colors.black,
fontWeight: FontWeight.bold,
child: SmartRefresher(
controller: refreshController,
enablePullDown: true,
enablePullUp: false,
header: MyHeader(),
onRefresh: queryStoreInfo,
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
children: [
AspectRatio(
aspectRatio: 1,
child: GestureDetector(
onTap: () {
Navigator.of(context)
.pushNamed('/router/store_detail_page');
},
child: Container(
margin: EdgeInsets.fromLTRB(16, 20, 16, 8),
padding: EdgeInsets.fromLTRB(10, 20, 10, 14),
decoration: BoxDecoration(
color: Colors.white,
borderRadius:
BorderRadius.all(Radius.circular(8)),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(25),
offset: Offset(0, 1),
blurRadius: 12,
spreadRadius: 0,
)
]),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AspectRatio(
aspectRatio: 1.8,
child: buildSwiper(),
),
Expanded(
child: Container(
margin: EdgeInsets.only(
left: 10.w,
right: 10.w,
top: 16.h,
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
storeInfo != null
? storeInfo.storeName
: "",
style: TextStyle(
fontSize: 16.sp,
color: Colors.black,
fontWeight: FontWeight.bold,
),
),
),
Icon(
Icons.keyboard_arrow_right,
size: 20,
color: Colors.black,
),
Expanded(
child: Container(
alignment: Alignment.centerRight,
child: Text(
S.of(context).ren(
storeInfo != null
? storeInfo
.perCapitaConsumption
: "",
),
style: TextStyle(
fontSize: 14.sp,
color: Color(0xFF353535),
Expanded(
child: Container(
alignment: Alignment.centerRight,
child: Text(
S.of(context).ren(
storeInfo != null
? storeInfo
.perCapitaConsumption
: "",
),
style: TextStyle(
fontSize: 14.sp,
color: Color(0xFF353535),
),
),
),
),
)
],
),
Text(
storeInfo != null
? storeInfo.address
: "",
maxLines: 2,
style: TextStyle(
)
],
),
Text(
storeInfo != null
? storeInfo.address
: "",
maxLines: 2,
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp),
),
Row(
children: [
RoundButton(
text: S.of(context).kongtiao,
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
),
SizedBox(
width: 8.w,
),
RoundButton(
text: "WiFi",
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
),
SizedBox(
width: 8.w,
),
RoundButton(
text: S.of(context).tingchewei,
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
fontSize: 12.sp,
),
],
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Expanded(
child: Text(
S.of(context).yingyeshijian(storeInfo ==
null
? ""
: (storeInfo.openStartTime ==
null &&
storeInfo.openEndTime ==
null)
? "全天"
: "${storeInfo.openStartTime} - ${storeInfo.openEndTime}"),
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
),
Row(
children: [
RoundButton(
text: S.of(context).kongtiao,
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
),
)),
SizedBox(
width: 16.w,
),
Image.asset(
"assets/image/icon_union_location.png",
width: 24.w,
height: 24.h,
),
SizedBox(
width: 16.w,
),
Image.asset(
"assets/image/icon_union_call.png",
width: 24.w,
height: 24.h,
)
],
),
],
SizedBox(
width: 8.w,
),
RoundButton(
text: "WiFi",
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
),
SizedBox(
width: 8.w,
),
RoundButton(
text: S.of(context).tingchewei,
backgroup: Color(0xFFFF7A1A),
padding: EdgeInsets.only(
left: 2.w, right: 2.w),
fontSize: 10.sp,
),
],
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Expanded(
child: Text(
S.of(context).yingyeshijian(storeInfo ==
null
? ""
: (storeInfo.openStartTime ==
null &&
storeInfo.openEndTime ==
null)
? "全天"
: "${storeInfo.openStartTime} - ${storeInfo.openEndTime}"),
style: TextStyle(
color: Color(0xFF353535),
fontSize: 12.sp,
),
)),
SizedBox(
width: 16.w,
),
Image.asset(
"assets/image/icon_union_location.png",
width: 24.w,
height: 24.h,
),
SizedBox(
width: 16.w,
),
Image.asset(
"assets/image/icon_union_call.png",
width: 24.w,
height: 24.h,
)
],
),
],
),
),
),
flex: 1,
)
],
flex: 1,
)
],
),
),
),
),
),
Container(
margin: EdgeInsets.only(top: 20.h, bottom: 20.h),
child: ItemTitle(
text: S.of(context).youhuiquan,
imgPath: "assets/image/icon_union_coupons.png",
Container(
margin: EdgeInsets.only(top: 20.h, bottom: 20.h),
child: ItemTitle(
text: S.of(context).youhuiquan,
imgPath: "assets/image/icon_union_coupons.png",
),
),
),
Container(
height: 109,
child: ListView.builder(
itemCount: 5,
physics: BouncingScrollPhysics(),
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(
height: 109,
child: ListView.builder(
itemCount: 5,
physics: BouncingScrollPhysics(),
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,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Container(
child: Image.network(
"https://t7.baidu.com/it/u=136439029,1848397702&fm=193&f=GIF",
width: 40.w,
height: 40.h,
fit: BoxFit.contain,
Container(
padding: EdgeInsets.only(
left: 24.w,
right: 24.w,
bottom: 17.h,
top: 11.h,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Container(
child: Image.network(
"https://t7.baidu.com/it/u=136439029,1848397702&fm=193&f=GIF",
width: 40.w,
height: 40.h,
fit: BoxFit.contain,
),
alignment: Alignment.center,
),
alignment: Alignment.center,
),
Container(
margin: EdgeInsets.only(
Container(
margin: EdgeInsets.only(
top: 12.h,
bottom: 12.h,
left: 24.w,
right: 24.w),
child: MySeparator(
width: 1.w,
height: 5.h,
color: Color(0xFF979797),
right: 24.w,
),
child: MySeparator(
width: 1.w,
height: 5.h,
color: Color(0xFF979797),
),
),
),
Expanded(
child: Container(
margin: EdgeInsets.only(
bottom: 12.h, top: 12.h),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
"百年川椒",
style: TextStyle(
fontSize: 10.sp,
fontWeight: FontWeight.bold,
color: Color(0xFF727272),
Expanded(
child: Container(
margin: EdgeInsets.only(
bottom: 12.h, top: 12.h),
child: Column(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
"百年川椒",
style: TextStyle(
fontSize: 10.sp,
fontWeight: FontWeight.bold,
color: Color(0xFF727272),
),
),
),
Text(
S
.of(context)
.manlijiandaijinquan(30, 5),
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14.sp,
fontWeight: FontWeight.bold,
color: Color(0xFFFF7A1A),
Text(
S
.of(context)
.manlijiandaijinquan(
30, 5),
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14.sp,
fontWeight: FontWeight.bold,
color: Color(0xFFFF7A1A),
),
),
),
Text(
S
.of(context)
.youxiaoqizhi("2021.01.03"),
style: TextStyle(
fontSize: 8.sp,
color: Color(0xFFA29E9E),
Text(
S.of(context).youxiaoqizhi(
"2021.01.03"),
style: TextStyle(
fontSize: 8.sp,
color: Color(0xFFA29E9E),
),
),
),
],
),
)),
Container(
margin: EdgeInsets.only(bottom: 12.h),
height: 25.h,
child: RoundButton(
text: S.of(context).lingqu,
textColor: Colors.white,
backgroup: Color(0xFF32A060),
padding:
EdgeInsets.fromLTRB(8, 4, 8, 4),
fontSize: 12.sp,
],
),
)),
Container(
margin:
EdgeInsets.only(bottom: 12.h),
height: 25.h,
child: RoundButton(
text: S.of(context).lingqu,
textColor: Colors.white,
backgroup: Color(0xFF32A060),
padding: EdgeInsets.fromLTRB(
8, 4, 8, 4),
fontSize: 12.sp,
),
),
),
],
),
)
],
],
),
)
],
),
),
),
);
}),
),
Container(
margin: EdgeInsets.only(top: 20.h, bottom: 20.h),
child: ItemTitle(
text: S.of(context).xindianhuodong,
imgPath: "assets/image/icon_union_start_store.png",
);
}),
),
),
Container(
padding: EdgeInsets.only(left: 10.w, right: 10.w),
margin: EdgeInsets.only(bottom: 30.h),
child: AspectRatio(
aspectRatio: 2.0,
child: buildSwiper2Bottom(),
Container(
margin: EdgeInsets.only(top: 20.h, bottom: 20.h),
child: ItemTitle(
text: S.of(context).xindianhuodong,
imgPath: "assets/image/icon_union_start_store.png",
),
),
)
],
Container(
padding: EdgeInsets.only(left: 10.w, right: 10.w),
margin: EdgeInsets.only(bottom: 30.h),
child: AspectRatio(
aspectRatio: 2.0,
child: buildSwiper2Bottom(),
),
)
],
),
),
),
flex: 1,
@ -419,6 +440,7 @@ class _UnionDetailsPage extends State<UnionDetailsPage> {
}
_startMin() async {
if (storeInfo == null) return;
if (!(await Min.isInitialize())) {
await Min.initialize();
}

58
lib/union/union_page.dart

@ -131,30 +131,32 @@ class _UnionPage extends State<UnionPage> with AutomaticKeepAliveClientMixin {
}
getLatLng() async {
SharedPreferences.getInstance().then((value) => {
apiService = ApiService(Dio(), token: value.getString('token')),
latLng = LatLng(double.tryParse(value.getString("latitude")),
double.tryParse(value.getString("longitude"))),
queryStore(
value.getString("latitude"),
value.getString("longitude"),
value.getString("province"),
value.getString("city"),
value.getString("district"),
""),
setState(() {
if (_mapController != null) {
_mapController.moveCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: latLng,
zoom: 15.0,
),
SharedPreferences.getInstance().then(
(value) => {
apiService = ApiService(Dio(), token: value.getString('token')),
latLng = LatLng(double.tryParse(value.getString("latitude")),
double.tryParse(value.getString("longitude"))),
queryStore(
value.getString("latitude"),
value.getString("longitude"),
value.getString("province"),
value.getString("city"),
value.getString("district"),
""),
setState(() {
if (_mapController != null) {
_mapController.moveCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: latLng,
zoom: 15.0,
),
);
}
})
});
),
);
}
})
},
);
}
List<Store> storeList;
@ -171,8 +173,7 @@ class _UnionPage extends State<UnionPage> with AutomaticKeepAliveClientMixin {
refreshController.refreshFailed();
});
if(Navigator.canPop(context))
Navigator.of(context).pop();
if (Navigator.canPop(context)) Navigator.of(context).pop();
if (baseData.isSuccess) {
storeList = (baseData.data as List<dynamic>)
@ -260,9 +261,7 @@ class _UnionPage extends State<UnionPage> with AutomaticKeepAliveClientMixin {
onTap: () {
Navigator.of(context).pushNamed(
'/router/union_detail_page',
arguments: {
"id":storeList[position].id
});
arguments: {"id": storeList[position].id});
},
child: buildStoreItem(storeList[position], position),
);
@ -492,7 +491,8 @@ class _UnionPage extends State<UnionPage> with AutomaticKeepAliveClientMixin {
TextStyle(color: Color(0xFFA29E9E), fontSize: 12),
),
Text(
S.of(context).ren(store == null ? "" : store.perCapitaConsumption),
S.of(context).ren(
store == null ? "" : store.perCapitaConsumption),
style:
TextStyle(color: Color(0xFF353535), fontSize: 12),
)

116
lib/view_widget/custom_image.dart

@ -1,3 +1,4 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
class MImage extends StatelessWidget {
@ -10,7 +11,8 @@ class MImage extends StatelessWidget {
final double height;
final BoxFit fit;
MImage(this.src, {
MImage(
this.src, {
this.errorSrc,
this.fadeSrc,
this.aspectRatio,
@ -24,57 +26,81 @@ class MImage extends StatelessWidget {
Widget build(BuildContext context) {
var clipRRect = ClipRRect(
borderRadius: radius,
child: Image.network(
src,
fit: fit,
errorBuilder: (context, error, stackTrace) {
child: CachedNetworkImage(
imageUrl: src,
fadeInDuration: Duration(milliseconds: 300),
fadeOutDuration: Duration(milliseconds: 300),
imageBuilder: (context, provide) {
return Image(
image: provide,
fit: fit,
);
},
errorWidget: (context, error, stackTrace) {
return Image.asset(
errorSrc,
fit: fit,
);
},
frameBuilder: (context, child, frame, wasSynchronousLoaded) {
if (wasSynchronousLoaded) {
return child;
} else {
return AnimatedCrossFade(
firstChild: child,
layoutBuilder: (widgetFirst, keyFirst, widgetSecond, keySecond) {
return Stack(
clipBehavior: Clip.none,
children: <Widget>[
Positioned(
key: keySecond,
left: 0.0,
top: 0.0,
right: 0.0,
bottom: 0.0,
child: widgetSecond,
),
Positioned(
key: keyFirst,
left: 0.0,
top: 0.0,
right: 0.0,
bottom: 0.0,
child: widgetFirst,
),
],
);
},
secondChild: Image.asset(
fadeSrc,
fit: fit,
),
crossFadeState: frame != null
? CrossFadeState.showFirst
: CrossFadeState.showSecond,
duration: Duration(milliseconds: 500),
);
}
placeholder: (context, placeholder) {
print("object $placeholder");
return Image.asset(
fadeSrc,
fit: fit,
);
},
excludeFromSemantics: true,
),
// child: Image.network(
// src,
// fit: fit,
// errorBuilder: (context, error, stackTrace) {
// return Image.asset(
// errorSrc,
// fit: fit,
// );
// },
// frameBuilder: (context, child, frame, wasSynchronousLoaded) {
// if (wasSynchronousLoaded) {
// return child;
// } else {
// return AnimatedCrossFade(
// firstChild: child,
// layoutBuilder: (widgetFirst, keyFirst, widgetSecond, keySecond) {
// return Stack(
// clipBehavior: Clip.none,
// children: <Widget>[
// Positioned(
// key: keySecond,
// left: 0.0,
// top: 0.0,
// right: 0.0,
// bottom: 0.0,
// child: widgetSecond,
// ),
// Positioned(
// key: keyFirst,
// left: 0.0,
// top: 0.0,
// right: 0.0,
// bottom: 0.0,
// child: widgetFirst,
// ),
// ],
// );
// },
// secondChild: Image.asset(
// fadeSrc,
// fit: fit,
// ),
// crossFadeState: frame != null
// ? CrossFadeState.showFirst
// : CrossFadeState.showSecond,
// duration: Duration(milliseconds: 500),
// );
// }
// },
// excludeFromSemantics: true,
// ),
);
if (aspectRatio != null && aspectRatio > 0) {

424
pubspec.lock

File diff suppressed because it is too large Load Diff

7
pubspec.yaml

@ -47,8 +47,6 @@ dependencies:
json_annotation: ^3.1.1
# webview_flutter: ^2.0.8
logger: ^1.0.0
chewie: ^1.2.2
video_player: ^2.1.6
flutter_screenutil: ^5.0.0+2
bubble_tab_indicator: ^0.1.6
@ -66,9 +64,14 @@ dependencies:
# flukit: ^1.0.2
# azlistview: ^1.1.1
cached_network_image: ^2.0.0
flutter_html: ^1.3.0 #2.1.0
photo_view: ^0.11.1
chewie: ^0.12.2
video_player: ^1.0.1
dev_dependencies:
flutter_test:
sdk: flutter

Loading…
Cancel
Save