# Conflicts: # lib/widgets/custom/multi_nav/custom_quick_entry.darttags/0.0.11+8
@@ -1,746 +0,0 @@ | |||||
{ | |||||
"configVersion": 2, | |||||
"packages": [ | |||||
{ | |||||
"name": "ali_auth_wbq", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/zhiying_ali_auth_wbq-f6421fe5735eab13738946da8fa7405e7aa952c6/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "amap_flutter_location", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_location-1.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "archive", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/archive-2.0.13", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "args", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/args-1.6.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.3" | |||||
}, | |||||
{ | |||||
"name": "async", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/async-2.5.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "bloc", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/bloc-4.0.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "boolean_selector", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/boolean_selector-2.1.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "cached_network_image", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image-2.5.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "characters", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/characters-1.1.0-nullsafety.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "charcode", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.2.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "clock", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/clock-1.1.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "collection", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/collection-1.15.0-nullsafety.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "connectivity", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/connectivity-0.4.9+5", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "connectivity_for_web", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/connectivity_for_web-0.3.1+4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "connectivity_macos", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/connectivity_macos-0.1.0+7", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "connectivity_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/connectivity_platform_interface-1.0.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "convert", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/convert-2.1.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.17" | |||||
}, | |||||
{ | |||||
"name": "cookie_jar", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/cookie_jar-1.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.20" | |||||
}, | |||||
{ | |||||
"name": "crypto", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/crypto-2.1.5", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.3" | |||||
}, | |||||
{ | |||||
"name": "device_info", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/device_info-0.4.2+10", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "device_info_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/device_info_platform_interface-1.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "dio", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/dio-3.0.10", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.4" | |||||
}, | |||||
{ | |||||
"name": "dio_cookie_manager", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/dio_cookie_manager-1.0.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.4" | |||||
}, | |||||
{ | |||||
"name": "equatable", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/equatable-1.2.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "event_bus", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/event_bus-1.1.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "fake_async", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.2.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "ffi", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/ffi-0.1.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "file", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/file-5.2.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.2" | |||||
}, | |||||
{ | |||||
"name": "flutter", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/packages/flutter", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "flutter_alibc", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/zhiying_flutter_alibc-159f123705b3e3dc28d6991df5b39b24a54c41a0/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "flutter_bloc", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_bloc-4.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "flutter_blurhash", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_blurhash-0.5.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.4" | |||||
}, | |||||
{ | |||||
"name": "flutter_cache_manager", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_cache_manager-2.1.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "flutter_cupertino_date_picker", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/flutter-cupertino-date-picker-82142a924a770e68dca2a2f7b51449166870d7e2/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.19" | |||||
}, | |||||
{ | |||||
"name": "flutter_native_image", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_image-0.0.5+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.19" | |||||
}, | |||||
{ | |||||
"name": "flutter_page_indicator", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_page_indicator-0.0.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "flutter_plugin_android_lifecycle", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-1.0.11", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "flutter_screenutil", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_screenutil-1.1.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "flutter_slidable", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_slidable-0.5.7", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.19" | |||||
}, | |||||
{ | |||||
"name": "flutter_swiper", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_swiper-1.1.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "flutter_test", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/packages/flutter_test", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.2" | |||||
}, | |||||
{ | |||||
"name": "flutter_update_dialog", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_update_dialog-1.0.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "flutter_user_agent", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_user_agent-1.2.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "flutter_web_plugins", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/packages/flutter_web_plugins", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "flutter_xupdate", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/flutter_xupdate-d17c695461ee4588dec990533d7467c11884cd0f/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "fluttertoast", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-4.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "fluwx", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/fluwx-2.6.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "http", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/http-0.12.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.4" | |||||
}, | |||||
{ | |||||
"name": "http_parser", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/http_parser-3.1.4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.3" | |||||
}, | |||||
{ | |||||
"name": "image", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/image-2.1.19", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "image_cropper", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/Image_Cropper-e32f2264f86a27a2f5d7a7a5e26c6154eaf5798e/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.20" | |||||
}, | |||||
{ | |||||
"name": "image_picker", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/image_picker-0.6.7+22", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "image_picker_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/image_picker_platform_interface-1.1.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.5" | |||||
}, | |||||
{ | |||||
"name": "imei_plugin", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/imei_plugin-1.2.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "intl", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/intl-0.16.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.5" | |||||
}, | |||||
{ | |||||
"name": "jdsdk", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/jdsdk-0.0.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "loading_indicator", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/loading_indicator-1.2.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "matcher", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.10-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "meta", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/meta-1.3.0-nullsafety.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "moblink", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/moblink-5472bb698d70e336cf55febb9b0a209411466632/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "mobpush_plugin", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/mobpush_plugin-1.1.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "mobsms", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/mobsms-1.1.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "more_picture_share", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/more_picture_share-4767c418bfe4b8d75f9f8958199384141ba88e21/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "nested", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/nested-0.0.4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.2" | |||||
}, | |||||
{ | |||||
"name": "octo_image", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/octo_image-0.3.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "package_info", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/package_info-0.4.3+4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "path", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path-1.8.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "path_provider", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider-1.6.28", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "path_provider_linux", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-0.0.1+2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "path_provider_macos", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider_macos-0.0.4+8", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "path_provider_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider_platform_interface-1.0.4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "path_provider_windows", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-0.0.4+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "pedantic", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/pedantic-1.9.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "permission_handler", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/permission_handler-b8c45c4c20221ac39fe083113fc360cc632f33a4/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "permission_handler_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_platform_interface-2.0.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "petitparser", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/petitparser-3.1.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "photo_view", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/photo_view-0.10.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "platform", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/platform-2.2.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.24" | |||||
}, | |||||
{ | |||||
"name": "plugin_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/plugin_platform_interface-1.0.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "process", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/process-3.0.13", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "provider", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/provider-4.3.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "pull_to_refresh", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/flutter_pulltorefresh-78a12e0ea45fdf1fbc615b8d243e0f4a8667489f/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "rxdart", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/rxdart-0.25.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.6" | |||||
}, | |||||
{ | |||||
"name": "save_image", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/save_image-b719ab2d77298cbfa5ce3397d83d5ba253ed29c1/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "secverify", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/secverify-5ec756e9fe63339209cc6906a37a778952ac61f1/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "share_extend", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/share_extend-1.1.9", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-0.5.12+4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences_linux", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-0.0.2+4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences_macos", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_macos-0.0.1+11", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_platform_interface-1.0.4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences_web", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-0.1.2+7", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shared_preferences_windows", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-0.0.2+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "sharesdk_plugin", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/sharesdk_plugin-f947c09803374acdc4fb720ccb5356d0779afe2f/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "shimmer", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/shimmer-1.1.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.20" | |||||
}, | |||||
{ | |||||
"name": "sky_engine", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/bin/cache/pkg/sky_engine", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "1.11" | |||||
}, | |||||
{ | |||||
"name": "source_span", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/source_span-1.8.0-nullsafety.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "sqflite", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/sqflite-1.3.1+2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "sqflite_common", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/sqflite_common-1.0.3+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "stack_trace", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.10.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "stream_channel", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/stream_channel-2.1.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "string_scanner", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/string_scanner-1.1.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "string_validator", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/string_validator-0.1.4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "synchronized", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/synchronized-2.2.0+2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.8" | |||||
}, | |||||
{ | |||||
"name": "tab_indicator_styler", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/tab_indicator_styler-1.0.0", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "term_glyph", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.2.0-nullsafety.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "test_api", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.2.19-nullsafety.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "tobias", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/git/tobias-15f6acb72df68703c96b2d8a14e1ab28f5dcc008/", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "transformer_page_view", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/transformer_page_view-0.1.6", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.0" | |||||
}, | |||||
{ | |||||
"name": "typed_data", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/typed_data-1.3.0-nullsafety.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "url_launcher", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-5.7.10", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "url_launcher_linux", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-0.0.1+4", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "url_launcher_macos", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-0.0.1+9", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "url_launcher_platform_interface", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_platform_interface-1.0.9", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "url_launcher_web", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-0.1.5+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.2" | |||||
}, | |||||
{ | |||||
"name": "url_launcher_windows", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-0.0.1+3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "uuid", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/uuid-2.2.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.2" | |||||
}, | |||||
{ | |||||
"name": "vector_math", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.1.0-nullsafety.3", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.10" | |||||
}, | |||||
{ | |||||
"name": "webview_flutter", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter-1.0.7", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "win32", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/win32-1.7.4+1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "xdg_directories", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/xdg_directories-0.1.2", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.3" | |||||
}, | |||||
{ | |||||
"name": "xml", | |||||
"rootUri": "file:///Users/fnuoos/development/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/xml-4.5.1", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.7" | |||||
}, | |||||
{ | |||||
"name": "zhiying_comm", | |||||
"rootUri": "../../zhiying_comm", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.1" | |||||
}, | |||||
{ | |||||
"name": "zhiying_base_widget", | |||||
"rootUri": "../", | |||||
"packageUri": "lib/", | |||||
"languageVersion": "2.8" | |||||
} | |||||
], | |||||
"generated": "2021-03-27T01:30:55.826166Z", | |||||
"generator": "pub", | |||||
"generatorVersion": "2.10.0" | |||||
} |
@@ -33,6 +33,6 @@ android { | |||||
} | } | ||||
dependencies { | dependencies { | ||||
// implementation 'com.amap.api:location:5.2.0' | |||||
} | } | ||||
} | } |
@@ -53,8 +53,8 @@ android { | |||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
ndk { | ndk { | ||||
//选择要添加的对应cpu类型的.so库。 | //选择要添加的对应cpu类型的.so库。 | ||||
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a' | |||||
//abiFilters 'armeabi-v7a','x86_64','arm64-v8a' | |||||
// abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a' | |||||
abiFilters 'armeabi-v7a','x86_64' | |||||
} | } | ||||
} | } | ||||
@@ -109,33 +109,33 @@ android { | |||||
// 应用信息配置 | // 应用信息配置 | ||||
// productFlavors { | |||||
// // 智夜生活 | |||||
// zhiying { | |||||
// applicationId "cn.zhios.zhiying" | |||||
// versionCode 57 | |||||
// dimension "app" | |||||
// versionName '1.3.17' | |||||
// // 签名信息 | |||||
// signingConfig signingConfigs.zhiying | |||||
// } | |||||
// } | |||||
// | |||||
// // 打包脚本 | |||||
// android.applicationVariants.all { variant -> | |||||
// if (variant.buildType.name != "debug") { | |||||
// variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk") | |||||
// } | |||||
// | |||||
// variant.outputs.all { output -> | |||||
// def outputFile = output.outputFile | |||||
// if (outputFile != null && outputFile.name.endsWith('.apk')) { | |||||
// //这里修改apk文件名 | |||||
// def fileName = "${variant.productFlavors[0].name}_${releaseTime()}01_&V${variant.productFlavors[0].versionCode}.apk" | |||||
// outputFileName = fileName | |||||
// } | |||||
// } | |||||
// } | |||||
productFlavors { | |||||
// 智夜生活 | |||||
zhiying { | |||||
applicationId "cn.zhios.zhiying" | |||||
versionCode 60 | |||||
dimension "app" | |||||
versionName '1.3.20' | |||||
// 签名信息 | |||||
signingConfig signingConfigs.zhiying | |||||
} | |||||
} | |||||
// 打包脚本 | |||||
android.applicationVariants.all { variant -> | |||||
if (variant.buildType.name != "debug") { | |||||
variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk") | |||||
} | |||||
variant.outputs.all { output -> | |||||
def outputFile = output.outputFile | |||||
if (outputFile != null && outputFile.name.endsWith('.apk')) { | |||||
//这里修改apk文件名 | |||||
def fileName = "${variant.productFlavors[0].name}_${releaseTime()}01_&V${variant.productFlavors[0].versionCode}.apk" | |||||
outputFileName = fileName | |||||
} | |||||
} | |||||
} | |||||
configurations.all { | configurations.all { | ||||
resolutionStrategy.eachDependency { DependencyResolveDetails details -> | resolutionStrategy.eachDependency { DependencyResolveDetails details -> | ||||
@@ -185,7 +185,9 @@ dependencies { | |||||
implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.16@aar' | implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.16@aar' | ||||
implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.16@aar' | implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.16@aar' | ||||
implementation 'com.alibaba:fastjson:1.2.41@jar' | implementation 'com.alibaba:fastjson:1.2.41@jar' | ||||
implementation 'com.amap.api:location:5.2.0' | |||||
implementation (name: 'kaduofensdk', ext: 'aar') | |||||
} | } | ||||
@@ -160,14 +160,14 @@ public class MainActivity extends FlutterActivity implements ZhiyingFlutterCommN | |||||
// map.put("secret_key", "123456"); | // map.put("secret_key", "123456"); | ||||
///正式 | ///正式 | ||||
// map.put("domain", "http://api.zhios.cn/");//45678910,api.zhios.cn84198689 | |||||
// map.put("master_id", "99813608"); | |||||
// map.put("secret_key", "123456"); | |||||
map.put("domain", "http://api.zhios.cn/");//45678910,api.zhios.cn84198689 | |||||
map.put("master_id", "99813608"); | |||||
map.put("secret_key", "123456"); | |||||
//客户测试 | //客户测试 | ||||
map.put("domain", "http://admin.asmetymj.com/");//45678910,api.zhios.cn84198689 | |||||
map.put("master_id", "32053480"); | |||||
map.put("secret_key", "123456"); | |||||
// map.put("domain", "http://api.zhios.cn/");//45678910,api.zhios.cn84198689 | |||||
// map.put("master_id", "13376168"); | |||||
// map.put("secret_key", "123456"); | |||||
// map.put("token", "123465"); | // map.put("token", "123465"); | ||||
return map; | return map; | ||||
@@ -2,6 +2,9 @@ buildscript { | |||||
repositories { | repositories { | ||||
google() | google() | ||||
jcenter() | jcenter() | ||||
flatDir { | |||||
dirs 'libs' | |||||
} | |||||
} | } | ||||
dependencies { | dependencies { | ||||
@@ -18,6 +21,9 @@ allprojects { | |||||
maven { | maven { | ||||
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" | url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" | ||||
} | } | ||||
flatDir { | |||||
dirs 'libs' | |||||
} | |||||
} | } | ||||
} | } | ||||
@@ -12,13 +12,6 @@ PODS: | |||||
- AMapFoundation (~> 1.6.4) | - AMapFoundation (~> 1.6.4) | ||||
- BCUserTrack (5.2.0.18-appkeys): | - BCUserTrack (5.2.0.18-appkeys): | ||||
- UTDID | - UTDID | ||||
- connectivity (0.0.1): | |||||
- Flutter | |||||
- Reachability | |||||
- connectivity_for_web (0.1.0): | |||||
- Flutter | |||||
- connectivity_macos (0.0.1): | |||||
- Flutter | |||||
- device_info (0.0.1): | - device_info (0.0.1): | ||||
- Flutter | - Flutter | ||||
- Flutter (1.0.0) | - Flutter (1.0.0) | ||||
@@ -32,6 +25,8 @@ PODS: | |||||
- securityGuard (= 5.4.191) | - securityGuard (= 5.4.191) | ||||
- UTDID (= 1.1.0.16) | - UTDID (= 1.1.0.16) | ||||
- WindVane (= 8.5.0.46-bc11) | - WindVane (= 8.5.0.46-bc11) | ||||
- flutter_kaduofen (0.0.1): | |||||
- Flutter | |||||
- flutter_native_image (0.0.1): | - flutter_native_image (0.0.1): | ||||
- Flutter | - Flutter | ||||
- flutter_plugin_android_lifecycle (0.0.1): | - flutter_plugin_android_lifecycle (0.0.1): | ||||
@@ -142,7 +137,6 @@ PODS: | |||||
- Flutter | - Flutter | ||||
- "permission_handler (5.0.1+1)": | - "permission_handler (5.0.1+1)": | ||||
- Flutter | - Flutter | ||||
- Reachability (3.2) | |||||
- save_image (0.0.1): | - save_image (0.0.1): | ||||
- Flutter | - Flutter | ||||
- securityGuard (5.4.191) | - securityGuard (5.4.191) | ||||
@@ -209,12 +203,16 @@ PODS: | |||||
- WindVane/Basic (8.5.0.46-bc11) | - WindVane/Basic (8.5.0.46-bc11) | ||||
- WindVane/Core (8.5.0.46-bc11) | - WindVane/Core (8.5.0.46-bc11) | ||||
- WindVane/WindVane (8.5.0.46-bc11) | - WindVane/WindVane (8.5.0.46-bc11) | ||||
- zhiying_acquisition (0.0.1): | |||||
- Flutter | |||||
- zhiying_base_widget (0.0.1): | - zhiying_base_widget (0.0.1): | ||||
- Flutter | - Flutter | ||||
- zhiying_business_college (0.0.1): | - zhiying_business_college (0.0.1): | ||||
- Flutter | - Flutter | ||||
- zhiying_comm (0.0.1): | - zhiying_comm (0.0.1): | ||||
- Flutter | - Flutter | ||||
- zhiying_credit_card (0.0.1): | |||||
- Flutter | |||||
- zhiying_equity_card (0.0.1): | - zhiying_equity_card (0.0.1): | ||||
- Flutter | - Flutter | ||||
- zhiying_member_upgrade (0.0.1): | - zhiying_member_upgrade (0.0.1): | ||||
@@ -229,12 +227,10 @@ PODS: | |||||
DEPENDENCIES: | DEPENDENCIES: | ||||
- ali_auth_wbq (from `.symlinks/plugins/ali_auth_wbq/ios`) | - ali_auth_wbq (from `.symlinks/plugins/ali_auth_wbq/ios`) | ||||
- amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`) | - amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`) | ||||
- connectivity (from `.symlinks/plugins/connectivity/ios`) | |||||
- connectivity_for_web (from `.symlinks/plugins/connectivity_for_web/ios`) | |||||
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`) | |||||
- device_info (from `.symlinks/plugins/device_info/ios`) | - device_info (from `.symlinks/plugins/device_info/ios`) | ||||
- Flutter (from `Flutter`) | - Flutter (from `Flutter`) | ||||
- flutter_alibc (from `.symlinks/plugins/flutter_alibc/ios`) | - flutter_alibc (from `.symlinks/plugins/flutter_alibc/ios`) | ||||
- flutter_kaduofen (from `.symlinks/plugins/flutter_kaduofen/ios`) | |||||
- flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`) | - flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`) | ||||
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) | - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) | ||||
- flutter_user_agent (from `.symlinks/plugins/flutter_user_agent/ios`) | - flutter_user_agent (from `.symlinks/plugins/flutter_user_agent/ios`) | ||||
@@ -275,9 +271,11 @@ DEPENDENCIES: | |||||
- video_player (from `.symlinks/plugins/video_player/ios`) | - video_player (from `.symlinks/plugins/video_player/ios`) | ||||
- video_player_web (from `.symlinks/plugins/video_player_web/ios`) | - video_player_web (from `.symlinks/plugins/video_player_web/ios`) | ||||
- webview_flutter (from `.symlinks/plugins/webview_flutter/ios`) | - webview_flutter (from `.symlinks/plugins/webview_flutter/ios`) | ||||
- zhiying_acquisition (from `.symlinks/plugins/zhiying_acquisition/ios`) | |||||
- zhiying_base_widget (from `.symlinks/plugins/zhiying_base_widget/ios`) | - zhiying_base_widget (from `.symlinks/plugins/zhiying_base_widget/ios`) | ||||
- zhiying_business_college (from `.symlinks/plugins/zhiying_business_college/ios`) | - zhiying_business_college (from `.symlinks/plugins/zhiying_business_college/ios`) | ||||
- zhiying_comm (from `.symlinks/plugins/zhiying_comm/ios`) | - zhiying_comm (from `.symlinks/plugins/zhiying_comm/ios`) | ||||
- zhiying_credit_card (from `.symlinks/plugins/zhiying_credit_card/ios`) | |||||
- zhiying_equity_card (from `.symlinks/plugins/zhiying_equity_card/ios`) | - zhiying_equity_card (from `.symlinks/plugins/zhiying_equity_card/ios`) | ||||
- zhiying_member_upgrade (from `.symlinks/plugins/zhiying_member_upgrade/ios`) | - zhiying_member_upgrade (from `.symlinks/plugins/zhiying_member_upgrade/ios`) | ||||
- zhiying_new_user_free (from `.symlinks/plugins/zhiying_new_user_free/ios`) | - zhiying_new_user_free (from `.symlinks/plugins/zhiying_new_user_free/ios`) | ||||
@@ -304,7 +302,6 @@ SPEC REPOS: | |||||
- mob_sharesdk | - mob_sharesdk | ||||
- mob_smssdk | - mob_smssdk | ||||
- MOBFoundation | - MOBFoundation | ||||
- Reachability | |||||
- TOCropViewController | - TOCropViewController | ||||
- WechatOpenSDK | - WechatOpenSDK | ||||
@@ -313,18 +310,14 @@ EXTERNAL SOURCES: | |||||
:path: ".symlinks/plugins/ali_auth_wbq/ios" | :path: ".symlinks/plugins/ali_auth_wbq/ios" | ||||
amap_flutter_location: | amap_flutter_location: | ||||
:path: ".symlinks/plugins/amap_flutter_location/ios" | :path: ".symlinks/plugins/amap_flutter_location/ios" | ||||
connectivity: | |||||
:path: ".symlinks/plugins/connectivity/ios" | |||||
connectivity_for_web: | |||||
:path: ".symlinks/plugins/connectivity_for_web/ios" | |||||
connectivity_macos: | |||||
:path: ".symlinks/plugins/connectivity_macos/ios" | |||||
device_info: | device_info: | ||||
:path: ".symlinks/plugins/device_info/ios" | :path: ".symlinks/plugins/device_info/ios" | ||||
Flutter: | Flutter: | ||||
:path: Flutter | :path: Flutter | ||||
flutter_alibc: | flutter_alibc: | ||||
:path: ".symlinks/plugins/flutter_alibc/ios" | :path: ".symlinks/plugins/flutter_alibc/ios" | ||||
flutter_kaduofen: | |||||
:path: ".symlinks/plugins/flutter_kaduofen/ios" | |||||
flutter_native_image: | flutter_native_image: | ||||
:path: ".symlinks/plugins/flutter_native_image/ios" | :path: ".symlinks/plugins/flutter_native_image/ios" | ||||
flutter_plugin_android_lifecycle: | flutter_plugin_android_lifecycle: | ||||
@@ -405,12 +398,16 @@ EXTERNAL SOURCES: | |||||
:path: ".symlinks/plugins/video_player_web/ios" | :path: ".symlinks/plugins/video_player_web/ios" | ||||
webview_flutter: | webview_flutter: | ||||
:path: ".symlinks/plugins/webview_flutter/ios" | :path: ".symlinks/plugins/webview_flutter/ios" | ||||
zhiying_acquisition: | |||||
:path: ".symlinks/plugins/zhiying_acquisition/ios" | |||||
zhiying_base_widget: | zhiying_base_widget: | ||||
:path: ".symlinks/plugins/zhiying_base_widget/ios" | :path: ".symlinks/plugins/zhiying_base_widget/ios" | ||||
zhiying_business_college: | zhiying_business_college: | ||||
:path: ".symlinks/plugins/zhiying_business_college/ios" | :path: ".symlinks/plugins/zhiying_business_college/ios" | ||||
zhiying_comm: | zhiying_comm: | ||||
:path: ".symlinks/plugins/zhiying_comm/ios" | :path: ".symlinks/plugins/zhiying_comm/ios" | ||||
zhiying_credit_card: | |||||
:path: ".symlinks/plugins/zhiying_credit_card/ios" | |||||
zhiying_equity_card: | zhiying_equity_card: | ||||
:path: ".symlinks/plugins/zhiying_equity_card/ios" | :path: ".symlinks/plugins/zhiying_equity_card/ios" | ||||
zhiying_member_upgrade: | zhiying_member_upgrade: | ||||
@@ -431,12 +428,10 @@ SPEC CHECKSUMS: | |||||
AMapFoundation: b67560a6f21aab81c8c12f84616b55a3833b6253 | AMapFoundation: b67560a6f21aab81c8c12f84616b55a3833b6253 | ||||
AMapLocation: a46c30d9930d0f3a3bd21139d8f845d10ac3f01d | AMapLocation: a46c30d9930d0f3a3bd21139d8f845d10ac3f01d | ||||
BCUserTrack: 49251c6fb7c65cbbc221a492bbd3f3e142f1fb0f | BCUserTrack: 49251c6fb7c65cbbc221a492bbd3f3e142f1fb0f | ||||
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467 | |||||
connectivity_for_web: 2b8584556930d4bd490d82b836bcf45067ce345b | |||||
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191 | |||||
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 | device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 | ||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec | Flutter: 0e3d915762c693b495b44d77113d4970485de6ec | ||||
flutter_alibc: 0e2a29e7c1de759672d87a260051240d209964b9 | flutter_alibc: 0e2a29e7c1de759672d87a260051240d209964b9 | ||||
flutter_kaduofen: 12c2c62ef2346a8899796e03c05ad8060002f59f | |||||
flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe | flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe | ||||
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 | flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 | ||||
flutter_user_agent: 27c45d034dc31b80948d29998cea52cd3a7bf936 | flutter_user_agent: 27c45d034dc31b80948d29998cea52cd3a7bf936 | ||||
@@ -466,7 +461,6 @@ SPEC CHECKSUMS: | |||||
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 | path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 | ||||
path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b | path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b | ||||
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 | permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 | ||||
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 | |||||
save_image: 1d4bdcb69832f573215c0e2971fe9e572dfc1c84 | save_image: 1d4bdcb69832f573215c0e2971fe9e572dfc1c84 | ||||
securityGuard: 9c04c44a3b663f36e15064042abfc107fa07133c | securityGuard: 9c04c44a3b663f36e15064042abfc107fa07133c | ||||
secverify: f4bc7284766a8804646c377e61f37252964842dd | secverify: f4bc7284766a8804646c377e61f37252964842dd | ||||
@@ -491,9 +485,11 @@ SPEC CHECKSUMS: | |||||
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 | webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 | ||||
WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 | WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 | ||||
WindVane: 56e096abae757397ccd3accb66a959f3ffcbf949 | WindVane: 56e096abae757397ccd3accb66a959f3ffcbf949 | ||||
zhiying_acquisition: d18b272f27cdda68733e7becc54f17e0a64f9806 | |||||
zhiying_base_widget: 00868c0d2723a3a425c18b27204fbc67e3f7e59d | zhiying_base_widget: 00868c0d2723a3a425c18b27204fbc67e3f7e59d | ||||
zhiying_business_college: dc3ba7fb32aad4db421aa94dbbc1ef712e7d00cd | zhiying_business_college: dc3ba7fb32aad4db421aa94dbbc1ef712e7d00cd | ||||
zhiying_comm: 0daef4a480f4f4dbea3e11b615f3264aafea924b | zhiying_comm: 0daef4a480f4f4dbea3e11b615f3264aafea924b | ||||
zhiying_credit_card: 1ebff7a1f74683c6d4adc7bf2dc3aa3b83bbf7da | |||||
zhiying_equity_card: 1afe5c3c8e5317dcebf55159b4087cd0d57e49ff | zhiying_equity_card: 1afe5c3c8e5317dcebf55159b4087cd0d57e49ff | ||||
zhiying_member_upgrade: 1207671575ad01ed3336c604e235843a98fa1a0c | zhiying_member_upgrade: 1207671575ad01ed3336c604e235843a98fa1a0c | ||||
zhiying_new_user_free: 1640f83c12643475f03fabffcba13f498e555243 | zhiying_new_user_free: 1640f83c12643475f03fabffcba13f498e555243 | ||||
@@ -10,6 +10,7 @@ | |||||
0AE1282E2855C01A7663C354 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A860D105A09AEA74261219D2 /* libPods-Runner.a */; }; | 0AE1282E2855C01A7663C354 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A860D105A09AEA74261219D2 /* libPods-Runner.a */; }; | ||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; | ||||
1F2F55D7256DFF5400A97630 /* app_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F2F55D6256DFF5400A97630 /* app_icon.png */; }; | 1F2F55D7256DFF5400A97630 /* app_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F2F55D6256DFF5400A97630 /* app_icon.png */; }; | ||||
1F5407E52616FE4800C6A831 /* FNBaseFlutterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F5407E42616FE4800C6A831 /* FNBaseFlutterViewController.m */; }; | |||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | ||||
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; | ||||
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; | 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; | ||||
@@ -41,6 +42,8 @@ | |||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; 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>"; }; | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | ||||
1F2F55D6256DFF5400A97630 /* app_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = app_icon.png; sourceTree = "<group>"; }; | 1F2F55D6256DFF5400A97630 /* app_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = app_icon.png; sourceTree = "<group>"; }; | ||||
1F5407E32616FE4800C6A831 /* FNBaseFlutterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FNBaseFlutterViewController.h; sourceTree = "<group>"; }; | |||||
1F5407E42616FE4800C6A831 /* FNBaseFlutterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FNBaseFlutterViewController.m; sourceTree = "<group>"; }; | |||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | ||||
3CF5E07C1CDF5F802B057127 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; | 3CF5E07C1CDF5F802B057127 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; | ||||
5F28AF46041AA2464EF2701A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; | 5F28AF46041AA2464EF2701A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; | ||||
@@ -123,6 +126,8 @@ | |||||
97C146F01CF9000F007C117D /* Runner */ = { | 97C146F01CF9000F007C117D /* Runner */ = { | ||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
1F5407E32616FE4800C6A831 /* FNBaseFlutterViewController.h */, | |||||
1F5407E42616FE4800C6A831 /* FNBaseFlutterViewController.m */, | |||||
9F5F7EA525626514009BD779 /* Runner.entitlements */, | 9F5F7EA525626514009BD779 /* Runner.entitlements */, | ||||
9FFCE2F3251ADE0600F4F353 /* 项目资源 */, | 9FFCE2F3251ADE0600F4F353 /* 项目资源 */, | ||||
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, | ||||
@@ -362,6 +367,7 @@ | |||||
isa = PBXSourcesBuildPhase; | isa = PBXSourcesBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
files = ( | files = ( | ||||
1F5407E52616FE4800C6A831 /* FNBaseFlutterViewController.m in Sources */, | |||||
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, | ||||
97C146F31CF9000F007C117D /* main.m in Sources */, | 97C146F31CF9000F007C117D /* main.m in Sources */, | ||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, | ||||
@@ -27,19 +27,19 @@ | |||||
// 获取设置 | // 获取设置 | ||||
- (NSDictionary*)getSetting { | - (NSDictionary*)getSetting { | ||||
// return @{ | |||||
// @"domain": @"http://inapi.izhyin.cn", | |||||
// @"master_id": @"123456", | |||||
// @"secret_key": @"123456" | |||||
return @{ | |||||
@"domain": @"http://inapi.izhyin.cn", | |||||
@"master_id": @"123456", | |||||
@"secret_key": @"123456" | |||||
//@"domain": @"http://192.168.0.113:5000" | //@"domain": @"http://192.168.0.113:5000" | ||||
// }; | |||||
}; | |||||
return @{ | |||||
@"domain": @"http://api.zhios.cn", | |||||
@"master_id": @"99813608", | |||||
@"secret_key": @"123456" | |||||
// return @{ | |||||
// @"domain": @"http://api.zhios.cn", | |||||
// @"master_id": @"99813608", | |||||
// @"secret_key": @"123456" | |||||
//@"domain": @"http://192.168.0.113:5000" | //@"domain": @"http://192.168.0.113:5000" | ||||
}; | |||||
// }; | |||||
} | } | ||||
#pragma mark -- 第三方应用跳转 | #pragma mark -- 第三方应用跳转 | ||||
@@ -1,16 +1,16 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> | |||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> | |||||
<device id="retina6_1" orientation="portrait" appearance="light"/> | <device id="retina6_1" orientation="portrait" appearance="light"/> | ||||
<dependencies> | <dependencies> | ||||
<deployment identifier="iOS"/> | <deployment identifier="iOS"/> | ||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/> | |||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/> | |||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||||
</dependencies> | </dependencies> | ||||
<scenes> | <scenes> | ||||
<!--Flutter View Controller--> | |||||
<!--Base Flutter View Controller--> | |||||
<scene sceneID="tne-QT-ifu"> | <scene sceneID="tne-QT-ifu"> | ||||
<objects> | <objects> | ||||
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController"> | |||||
<viewController id="BYZ-38-t0r" customClass="FNBaseFlutterViewController" sceneMemberID="viewController"> | |||||
<layoutGuides> | <layoutGuides> | ||||
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> | <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> | ||||
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> | <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> | ||||
@@ -20,6 +20,7 @@ | |||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||||
</view> | </view> | ||||
<navigationItem key="navigationItem" id="Nba-kd-4am"/> | |||||
</viewController> | </viewController> | ||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> | <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> | ||||
</objects> | </objects> | ||||
@@ -0,0 +1,18 @@ | |||||
// | |||||
// FNBaseFlutterViewController.h | |||||
// Runner | |||||
// | |||||
// Created by FNUser on 2020/10/28. | |||||
// | |||||
#import <UIKit/UIKit.h> | |||||
#import "Flutter/FlutterViewController.h" | |||||
NS_ASSUME_NONNULL_BEGIN | |||||
@interface FNBaseFlutterViewController : FlutterViewController | |||||
@end | |||||
NS_ASSUME_NONNULL_END |
@@ -0,0 +1,38 @@ | |||||
// | |||||
// FNBaseFlutterViewController.m | |||||
// Runner | |||||
// | |||||
// Created by FNUser on 2020/10/28. | |||||
// | |||||
#import "FNBaseFlutterViewController.h" | |||||
@interface FNBaseFlutterViewController () | |||||
@end | |||||
@implementation FNBaseFlutterViewController | |||||
- (void)viewDidLoad { | |||||
[super viewDidLoad]; | |||||
UIWindow *window = [UIApplication sharedApplication].delegate.window; | |||||
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self]; | |||||
window.rootViewController = navController; | |||||
navController.navigationBar.hidden = YES; | |||||
} | |||||
- (void)viewWillDisappear:(BOOL)animated { | |||||
[super viewWillDisappear:animated]; | |||||
[self.navigationController setNavigationBarHidden:NO animated:animated]; | |||||
} | |||||
- (void)viewWillAppear:(BOOL)animated { | |||||
[super viewWillAppear:animated]; | |||||
[self.navigationController setNavigationBarHidden:YES animated:animated]; | |||||
} | |||||
@end |
@@ -23,6 +23,8 @@ import 'package:zhiying_member_upgrade/register.dart'; | |||||
import 'package:zhiying_equity_card/zhiying_equity_card.dart'; | import 'package:zhiying_equity_card/zhiying_equity_card.dart'; | ||||
import 'package:zhiying_official/register.dart'; | import 'package:zhiying_official/register.dart'; | ||||
import 'package:zhiying_base_widget/zhiying_base_widget.dart'; | import 'package:zhiying_base_widget/zhiying_base_widget.dart'; | ||||
import 'package:zhiying_acquisition/register.dart'; | |||||
import 'package:zhiying_credit_card/register.dart'; | |||||
void main() { | void main() { | ||||
FlutterError.onError = (FlutterErrorDetails details) { | FlutterError.onError = (FlutterErrorDetails details) { | ||||
@@ -65,6 +67,8 @@ class _MyAppState extends State<MyApp> { | |||||
MemberUpgradeRegister.init(); | MemberUpgradeRegister.init(); | ||||
EquityCardRegister.init(); | EquityCardRegister.init(); | ||||
OfficialRegister.init(); | OfficialRegister.init(); | ||||
AcquisitionRegister.init(); | |||||
CreditCardRegister.init(); | |||||
print('初始化百川'); | print('初始化百川'); | ||||
FlutterAlibc.initAlibc(version: "", appName: "").then((result) { | FlutterAlibc.initAlibc(version: "", appName: "").then((result) { | ||||
print("白川" + '${result.errorCode} ${result.errorMessage}'); | print("白川" + '${result.errorCode} ${result.errorMessage}'); | ||||
@@ -72,9 +76,11 @@ class _MyAppState extends State<MyApp> { | |||||
MobPushUtil.setCanPush(); | MobPushUtil.setCanPush(); | ||||
EventUtil.instance.on().listen((event) {}); | EventUtil.instance.on().listen((event) {}); | ||||
// app更新插件 | |||||
AppUpdateUtil.initXUpdate(); | |||||
const bool inProduction = const bool.fromEnvironment("dart.vm.product"); | |||||
if (!inProduction) { | |||||
//debug app不更新 app更新插件 | |||||
AppUpdateUtil.initXUpdate(); | |||||
} | |||||
} | } | ||||
@override | @override | ||||
@@ -101,6 +107,7 @@ class _MyAppState extends State<MyApp> { | |||||
child: child, | child: child, | ||||
); | ); | ||||
}, | }, | ||||
navigatorObservers: [lifeObserver], | |||||
theme: ThemeData( | theme: ThemeData( | ||||
fontFamily: 'PingFang', | fontFamily: 'PingFang', | ||||
primaryColor: HexColor.fromHex('#FF4242'), | primaryColor: HexColor.fromHex('#FF4242'), | ||||
@@ -32,11 +32,15 @@ dev_dependencies: | |||||
path: ../../zhiying_equity_card | path: ../../zhiying_equity_card | ||||
zhiying_official: | zhiying_official: | ||||
path: ../../zhiying_official | path: ../../zhiying_official | ||||
zhiying_acquisition: | |||||
path: ../../zhiying_acquisition | |||||
zhiying_credit_card: | |||||
path: ../../zhiying_credit_card | |||||
#微信导师 | #微信导师 | ||||
zhiying_wechat_teacher: | zhiying_wechat_teacher: | ||||
#path: ../zhiying_wechat_teacher | #path: ../zhiying_wechat_teacher | ||||
git: | git: | ||||
ref: 0.0.1+1 | |||||
ref: 0.0.2 | |||||
url: http://192.168.0.138:3000/FnuoOS_ZhiYing/zhiying_wechat_teacher.git | url: http://192.168.0.138:3000/FnuoOS_ZhiYing/zhiying_wechat_teacher.git | ||||
#朋友圈 | #朋友圈 | ||||
zhiying_moments: | zhiying_moments: | ||||
@@ -48,7 +52,7 @@ dev_dependencies: | |||||
zhiying_member_upgrade: | zhiying_member_upgrade: | ||||
#path: ../Zhiying_Member_Upgrade | #path: ../Zhiying_Member_Upgrade | ||||
git: | git: | ||||
ref: 0.0.2 | |||||
ref: 0.0.6 | |||||
url: http://192.168.0.138:3000/FnuoOS_ZhiYing/Zhiying_Member_Upgrade.git | url: http://192.168.0.138:3000/FnuoOS_ZhiYing/Zhiying_Member_Upgrade.git | ||||
plugin_platform_interface: "1.0.2" | plugin_platform_interface: "1.0.2" | ||||
permission_handler_platform_interface: "2.0.1" | permission_handler_platform_interface: "2.0.1" | ||||
@@ -14,6 +14,8 @@ class ActivityDialog extends StatelessWidget { | |||||
const ActivityDialog(this.model, {Key key}) : super(key: key); | const ActivityDialog(this.model, {Key key}) : super(key: key); | ||||
static Future show(BuildContext context) async { | static Future show(BuildContext context) async { | ||||
try { | try { | ||||
Map result = await NetUtil.post('/api/v1/mod/pub.flutter.current_activity_dialog', method: NetMethod.GET); | Map result = await NetUtil.post('/api/v1/mod/pub.flutter.current_activity_dialog', method: NetMethod.GET); | ||||
@@ -25,8 +25,8 @@ class AdvertisingDialog extends StatelessWidget { | |||||
if (!EmptyUtil.isEmpty(item)) { | if (!EmptyUtil.isEmpty(item)) { | ||||
AdvertisingDialogModel model = AdvertisingDialogModel.fromJson(item); | AdvertisingDialogModel model = AdvertisingDialogModel.fromJson(item); | ||||
if (!EmptyUtil.isEmpty(model)) { | if (!EmptyUtil.isEmpty(model)) { | ||||
await Future.delayed(Duration(milliseconds: model?.interval*1000)); | |||||
await showCupertinoDialog(context: context, builder: (_) => AdvertisingDialog(model)); | await showCupertinoDialog(context: context, builder: (_) => AdvertisingDialog(model)); | ||||
await Future.delayed(Duration(milliseconds: (model?.interval ?? 0) * 1000 * 60)); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -1,9 +1,11 @@ | |||||
import 'dart:async'; | import 'dart:async'; | ||||
import 'dart:convert'; | import 'dart:convert'; | ||||
import 'dart:io'; | |||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:flutter_clipboard_plugin/flutter_clipboard_plugin.dart'; | |||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/Intellect_search_set_model.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/Intellect_search_set_model.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart'; | ||||
import 'package:zhiying_base_widget/utils/contants.dart'; | import 'package:zhiying_base_widget/utils/contants.dart'; | ||||
@@ -18,9 +20,19 @@ class IntellectCreate { | |||||
static IntellectSearchSetModel _setModel; | static IntellectSearchSetModel _setModel; | ||||
static bool isRequest = false; | static bool isRequest = false; | ||||
//是否检查粘贴板 | |||||
static bool check = false; | |||||
static setCheck(bool isCheck){ | |||||
check=isCheck; | |||||
} | |||||
///判断规则 | ///判断规则 | ||||
static checkAndCreate(AppLifecycleState state, BuildContext context) async { | static checkAndCreate(AppLifecycleState state, BuildContext context) async { | ||||
if (state == AppLifecycleState.resumed && !isRequest) { | |||||
if (state == AppLifecycleState.resumed && !isRequest &&check) { | |||||
print("读取粘贴版"); | print("读取粘贴版"); | ||||
isRequest = true; | isRequest = true; | ||||
Timer(Duration(milliseconds: 2000), () { | Timer(Duration(milliseconds: 2000), () { | ||||
@@ -30,8 +42,7 @@ class IntellectCreate { | |||||
await _requestSetData(context); | await _requestSetData(context); | ||||
} catch (e, s) { | } catch (e, s) { | ||||
isRequest = false; | isRequest = false; | ||||
print(e); | |||||
print(s); | |||||
Logger.error(e, s); | |||||
} | } | ||||
} | } | ||||
// Timer(Duration(milliseconds: 500), () async { | // Timer(Duration(milliseconds: 500), () async { | ||||
@@ -95,7 +106,11 @@ class IntellectCreate { | |||||
///弹起存在不存在商品的弹窗 | ///弹起存在不存在商品的弹窗 | ||||
if (!Constants.isShowIntellectDialog) { | if (!Constants.isShowIntellectDialog) { | ||||
Constants.isShowIntellectDialog = true; | Constants.isShowIntellectDialog = true; | ||||
await showDialog(context: context, child: IntellectSearchNoGoodsDialog(setModel: _setModel,)); | |||||
await showDialog( | |||||
context: context, | |||||
child: IntellectSearchNoGoodsDialog( | |||||
setModel: _setModel, | |||||
)); | |||||
Constants.isShowIntellectDialog = false; | Constants.isShowIntellectDialog = false; | ||||
} | } | ||||
} else if (data.toString() == "403032") { | } else if (data.toString() == "403032") { | ||||
@@ -119,8 +134,7 @@ class IntellectCreate { | |||||
///检查字段是否被监听 | ///检查字段是否被监听 | ||||
static void validate(BuildContext context, IntellectSearchSetModel setModel) async { | static void validate(BuildContext context, IntellectSearchSetModel setModel) async { | ||||
//获取粘贴板的文字 | //获取粘贴板的文字 | ||||
ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain); | |||||
String content = data?.text?.trim() ?? ""; | |||||
String content = await FlutterClipboardPlugin.getData; | |||||
///粘贴版的文字如果是空直接跳出不检索 | ///粘贴版的文字如果是空直接跳出不检索 | ||||
if (content == null || content.length == 0) { | if (content == null || content.length == 0) { | ||||
@@ -162,6 +176,6 @@ class IntellectCreate { | |||||
} | } | ||||
} | } | ||||
} | } | ||||
requestDialog(context, content,setModel); | |||||
requestDialog(context, content, setModel); | |||||
} | } | ||||
} | } |
@@ -1,6 +1,7 @@ | |||||
import 'dart:convert'; | import 'dart:convert'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:flutter_clipboard_plugin/flutter_clipboard_plugin.dart'; | |||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/no_goods_dialog_style_model.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/model/no_goods_dialog_style_model.dart'; | ||||
import 'package:cached_network_image/cached_network_image.dart'; | import 'package:cached_network_image/cached_network_image.dart'; | ||||
@@ -34,9 +35,10 @@ class _IntellectSearchNoGoodsDialogState extends State<IntellectSearchNoGoodsDia | |||||
///获取粘贴板内容 | ///获取粘贴板内容 | ||||
_getClipBoardData() async { | _getClipBoardData() async { | ||||
ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain); | |||||
_textEditingController.text = data.text.trim(); | |||||
searchText = data.text.trim(); | |||||
// ClipboardData data = await Clipboard.getData(Clipboard.kTextPlain); | |||||
String result = await FlutterClipboardPlugin.getData; | |||||
_textEditingController.text = result; | |||||
searchText = result; | |||||
requestStyle(); | requestStyle(); | ||||
setState(() {}); | setState(() {}); | ||||
} | } | ||||
@@ -2,14 +2,11 @@ import 'dart:convert'; | |||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:pull_to_refresh/pull_to_refresh.dart'; | |||||
import 'package:tab_indicator_styler/tab_indicator_styler.dart'; | import 'package:tab_indicator_styler/tab_indicator_styler.dart'; | ||||
import 'package:zhiying_base_widget/pages/custom_page/custom_item_page.dart'; | import 'package:zhiying_base_widget/pages/custom_page/custom_item_page.dart'; | ||||
import 'package:zhiying_base_widget/pages/main_page/model/background_model.dart'; | import 'package:zhiying_base_widget/pages/main_page/model/background_model.dart'; | ||||
import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart'; | import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart'; | ||||
import 'package:zhiying_base_widget/widgets/custom/search/custom_search_widget.dart'; | |||||
import 'package:zhiying_base_widget/widgets/empty/empty_widget.dart'; | import 'package:zhiying_base_widget/widgets/empty/empty_widget.dart'; | ||||
import 'package:zhiying_base_widget/widgets/others/mine_header_bg_widget.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | import 'package:zhiying_comm/zhiying_comm.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
@@ -19,8 +16,8 @@ import 'bloc/custom_page_bloc.dart'; | |||||
import 'bloc/custom_page_state.dart'; | import 'bloc/custom_page_state.dart'; | ||||
import 'bloc/custom_page_event.dart'; | import 'bloc/custom_page_event.dart'; | ||||
import 'bloc/custom_page_repository.dart'; | import 'bloc/custom_page_repository.dart'; | ||||
import 'package:zhiying_base_widget/widgets/search/widget/my_tab.dart'; | |||||
import 'dart:ui'; | import 'dart:ui'; | ||||
import 'package:fluttertoast/fluttertoast.dart'; | |||||
/// | /// | ||||
/// 通用模块页面 | /// 通用模块页面 | ||||
@@ -258,24 +255,24 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
String parentTitle = !EmptyUtil.isEmpty(widget?.data) ? widget?.data['title'] ?? '' : ''; | String parentTitle = !EmptyUtil.isEmpty(widget?.data) ? widget?.data['title'] ?? '' : ''; | ||||
_isHasAppbar = true; | _isHasAppbar = true; | ||||
return AppBar( | return AppBar( | ||||
backgroundColor: HexColor.fromHex(null != data ? data['app_bar_bg_color'] ?? '#FFFFFF' : '#FFFFFF'), | |||||
backgroundColor: HexColor.fromHex(!EmptyUtil.isEmpty(data) ? data['app_bar_bg_color'] ?? '#FFFFFF' : '#FFFFFF'), | |||||
brightness: Brightness.light, | brightness: Brightness.light, | ||||
leading: IconButton( | |||||
leading: Navigator.canPop(context) ? IconButton( | |||||
icon: Icon( | icon: Icon( | ||||
Icons.arrow_back_ios, | Icons.arrow_back_ios, | ||||
size: 22, | size: 22, | ||||
color: HexColor.fromHex('#333333'), | |||||
color: HexColor.fromHex(!EmptyUtil.isEmpty(data) ? data['app_bar_name_color'] ?? '#333333' : '#333333'), | |||||
), | ), | ||||
onPressed: () => Navigator.maybePop(context), | onPressed: () => Navigator.maybePop(context), | ||||
), | |||||
) : null, | |||||
title: Text( | title: Text( | ||||
null != data && data.containsKey('app_bar_name') | |||||
? data['app_bar_name'] != '自定义页面' | |||||
!EmptyUtil.isEmpty(data) && data.containsKey('app_bar_name') | |||||
// ? data['app_bar_name'] != '自定义页面' | |||||
? data['app_bar_name'] | ? data['app_bar_name'] | ||||
: parentTitle | |||||
// : parentTitle | |||||
: parentTitle, | : parentTitle, | ||||
style: TextStyle( | style: TextStyle( | ||||
color: HexColor.fromHex(null != data ? data['app_bar_name_color'] ?? '#333333' : '#333333'), | |||||
color: HexColor.fromHex(!EmptyUtil.isEmpty(data) ? data['app_bar_name_color'] ?? '#333333' : '#333333'), | |||||
fontSize: 16, | fontSize: 16, | ||||
fontWeight: FontWeight.bold, | fontWeight: FontWeight.bold, | ||||
), | ), | ||||
@@ -314,6 +311,15 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
// 2、导航栏开启的情况 | // 2、导航栏开启的情况 | ||||
if (listStyle.length > 0) { | if (listStyle.length > 0) { | ||||
// 获取分类类型,如果第一位type等于imageAndText说明是带有小图标的 | |||||
bool haveIcon = false; | |||||
try { | |||||
haveIcon = listStyle[0]['type']?.toString() == 'imageAndText'; | |||||
} catch (e, s){ | |||||
Logger.error(e, s); | |||||
} | |||||
// tabContorller 初始化 | // tabContorller 初始化 | ||||
if (null == _tabController || _tabController.length != listStyle.length) { | if (null == _tabController || _tabController.length != listStyle.length) { | ||||
_tabController = new TabController(length: listStyle.length, vsync: this); | _tabController = new TabController(length: listStyle.length, vsync: this); | ||||
@@ -321,6 +327,7 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
result.add(Container( | result.add(Container( | ||||
height: 40, | height: 40, | ||||
padding: const EdgeInsets.only(bottom: 5), | |||||
width: double.infinity, | width: double.infinity, | ||||
color: HexColor.fromHex(data['bg_color']), | color: HexColor.fromHex(data['bg_color']), | ||||
child: TabBar( | child: TabBar( | ||||
@@ -340,7 +347,18 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
height: 2.5, | height: 2.5, | ||||
horizontalPadding: 5, | horizontalPadding: 5, | ||||
), | ), | ||||
tabs: listStyle.map((e) => Text(e['name'])).toList(), | |||||
// 不带图标 | |||||
tabs: !haveIcon ? listStyle.map((e) => Text(e['name'])).toList() : | |||||
// 带图标 | |||||
listStyle.map((item) { | |||||
return MyTab( | |||||
icon: CachedNetworkImage( | |||||
imageUrl: item['choose_image_url'] ?? '', | |||||
width: 14, | |||||
), | |||||
text: item['name'], | |||||
); | |||||
}).toList() | |||||
), | ), | ||||
)); | )); | ||||
@@ -372,6 +390,7 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
return result; | return result; | ||||
} | } | ||||
/// 背景颜色 | |||||
_buildBackground(BackgroundModel backgroundModel) { | _buildBackground(BackgroundModel backgroundModel) { | ||||
if (backgroundModel != null) { | if (backgroundModel != null) { | ||||
var headerBg = backgroundModel.headerBg; | var headerBg = backgroundModel.headerBg; | ||||
@@ -422,7 +441,6 @@ class __CommonPageContainerState extends State<_CommonPageContainer> with Single | |||||
} | } | ||||
@override | @override | ||||
// TODO: implement wantKeepAlive | |||||
bool get wantKeepAlive => true; | bool get wantKeepAlive => true; | ||||
} | } | ||||
@@ -368,7 +368,7 @@ class _GoodsShareImageContentState extends State<_GoodsShareImageContent> with A | |||||
Loading.show(context); | Loading.show(context); | ||||
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png); | ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png); | ||||
Uint8List pngBytes = byteData.buffer.asUint8List(); | Uint8List pngBytes = byteData.buffer.asUint8List(); | ||||
File file = await EncodeUtil.compressImage(context,images: pngBytes, size: 400); | |||||
File file = await EncodeUtil.compressImage(context, images: pngBytes, size: 400); | |||||
Loading.dismiss(); | Loading.dismiss(); | ||||
_shareModel.poster = file.readAsBytesSync(); | _shareModel.poster = file.readAsBytesSync(); | ||||
} | } | ||||
@@ -406,6 +406,10 @@ class _GoodsShareImageContentState extends State<_GoodsShareImageContent> with A | |||||
// ============= 复制文案 ================= | // ============= 复制文案 ================= | ||||
Clipboard.setData(ClipboardData(text: _content)); | Clipboard.setData(ClipboardData(text: _content)); | ||||
if(_shareModel.image==null){ | |||||
_shareModel.image=List(); | |||||
} | |||||
showCupertinoModalPopup( | showCupertinoModalPopup( | ||||
context: context, | context: context, | ||||
builder: (context) => ShareAlert( | builder: (context) => ShareAlert( | ||||
@@ -1,26 +1,17 @@ | |||||
import 'dart:async'; | import 'dart:async'; | ||||
import 'dart:convert' as convert; | import 'dart:convert' as convert; | ||||
import 'dart:convert'; | |||||
import 'dart:io'; | |||||
import 'package:cached_network_image/cached_network_image.dart'; | import 'package:cached_network_image/cached_network_image.dart'; | ||||
import 'package:connectivity/connectivity.dart'; | |||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/foundation.dart'; | import 'package:flutter/foundation.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:flutter/widgets.dart'; | import 'package:flutter/widgets.dart'; | ||||
import 'package:moblink/moblink.dart'; | import 'package:moblink/moblink.dart'; | ||||
import 'package:mobpush_plugin/mobpush_custom_message.dart'; | |||||
import 'package:mobpush_plugin/mobpush_notify_message.dart'; | |||||
import 'package:mobpush_plugin/mobpush_plugin.dart'; | |||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/activity_dialog/activity_dialog.dart'; | |||||
import 'package:zhiying_base_widget/dialog/global_dialog/advertising_dialog/advertising_dialog.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/advertising_dialog/advertising_dialog.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/notification_setting_dialog/notification_setting_dialog.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/notification_setting_dialog/notification_setting_dialog.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/policy_dialog/policy_dialog.dart'; | |||||
import 'package:zhiying_base_widget/dialog/tip_dialog/tip_dialog.dart'; | |||||
import 'package:zhiying_base_widget/models/app_config_model.dart'; | import 'package:zhiying_base_widget/models/app_config_model.dart'; | ||||
import 'package:zhiying_base_widget/pages/custom_page/event/reload_event.dart'; | import 'package:zhiying_base_widget/pages/custom_page/event/reload_event.dart'; | ||||
import 'package:zhiying_base_widget/utils/contants.dart'; | import 'package:zhiying_base_widget/utils/contants.dart'; | ||||
@@ -36,10 +27,6 @@ import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
import 'package:zhiying_comm/util/event_util/login_success_event.dart'; | import 'package:zhiying_comm/util/event_util/login_success_event.dart'; | ||||
import 'package:zhiying_comm/util/event_util/event_util.dart'; | import 'package:zhiying_comm/util/event_util/event_util.dart'; | ||||
import 'package:zhiying_comm/util/event_util/log_out.dart'; | import 'package:zhiying_comm/util/event_util/log_out.dart'; | ||||
import 'package:zhiying_comm/util/event_util/login_success_event.dart'; | |||||
import 'package:zhiying_comm/util/event_util/event_util.dart'; | |||||
import 'package:zhiying_comm/util/event_util/log_out.dart'; | |||||
import 'package:package_info/package_info.dart'; | |||||
class HomeCenterPage extends StatefulWidget { | class HomeCenterPage extends StatefulWidget { | ||||
@override | @override | ||||
@@ -60,7 +47,7 @@ class HomePage extends StatefulWidget { | |||||
_HomePageState createState() => _HomePageState(); | _HomePageState createState() => _HomePageState(); | ||||
} | } | ||||
class _HomePageState extends State<HomePage> with WidgetsBindingObserver, TickerProviderStateMixin { | |||||
class _HomePageState extends LifeState<HomePage> with WidgetsBindingObserver, TickerProviderStateMixin { | |||||
int _currentIndex = 0; | int _currentIndex = 0; | ||||
List<Map<String, dynamic>> _data = List(); | List<Map<String, dynamic>> _data = List(); | ||||
static const EventChannel _eventChannel = const EventChannel('JAVA_TO_FLUTTER'); | static const EventChannel _eventChannel = const EventChannel('JAVA_TO_FLUTTER'); | ||||
@@ -290,6 +277,63 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||||
items: items); | items: items); | ||||
} | } | ||||
// Widget createBottomNavigationBarNew(List<Map<String, dynamic>> tabs) { | |||||
// | |||||
// List<TabItem> items = List<TabItem>(); | |||||
// for (int i = 0; i < tabs.length; i++) { | |||||
// BaseTabModel model = BaseTabModel.fromJson(tabs[i]); | |||||
// String icon = ImageUtil.getUrl(model.icon); | |||||
// String selectedIcon = ImageUtil.getUrl(model.chooseIcon ?? model.icon); | |||||
// String textColor = model.fontColor; | |||||
// String chooseColor = model.chooseColor ?? textColor; | |||||
// | |||||
// if (model.isShow == "1") { | |||||
// items.add(TabItem<Image>( | |||||
// icon: Image.network(icon ?? ''), | |||||
// activeIcon: Image.network(selectedIcon ?? ''), | |||||
// title: model.name ?? '' | |||||
// )); | |||||
// } | |||||
// } | |||||
// | |||||
// if (items.length < 2) { | |||||
// return Container(); | |||||
// } | |||||
// String bgColor = '#ffffff'; | |||||
// String textColor = '#999999'; | |||||
// String activeColor = '#FF4242'; | |||||
// if (tabs.first != null) { | |||||
// BaseTabModel model = BaseTabModel.fromJson(tabs.first); | |||||
// bgColor = model.bgColor ?? bgColor; | |||||
// textColor = model?.fontColor ?? textColor; | |||||
// activeColor = model?.chooseColor ?? activeColor; | |||||
// } | |||||
// | |||||
// return ConvexAppBar( | |||||
// elevation: 0, | |||||
// backgroundColor: HexColor.fromHex(bgColor), | |||||
// items: items, | |||||
// height: 50, | |||||
// color: HexColor.fromHex(textColor), | |||||
// activeColor: HexColor.fromHex(activeColor), | |||||
// initialActiveIndex: _currentIndex, | |||||
// style: TabStyle.react, | |||||
// onTap: (int index) async { | |||||
// BaseTabModel model = BaseTabModel.fromJson(tabs[index]); | |||||
// if (await _checkLimit(model)) { | |||||
// ///避免同一个页面多次点击多次重绘 | |||||
// if (_currentIndex == index) { | |||||
// return; | |||||
// } else { | |||||
// setState(() { | |||||
// _currentIndex = index; | |||||
// }); | |||||
// } | |||||
// } | |||||
// }, | |||||
// ); | |||||
// } | |||||
Future<bool> _checkLimit(BaseTabModel model) async { | Future<bool> _checkLimit(BaseTabModel model) async { | ||||
if (model.requiredLogin == '1') { | if (model.requiredLogin == '1') { | ||||
UserInfoModel user = await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | UserInfoModel user = await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | ||||
@@ -320,6 +364,7 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||||
// 活动弹窗 | // 活动弹窗 | ||||
await AdvertisingDialog.show(context); | await AdvertisingDialog.show(context); | ||||
// 检查app更新 | |||||
await AppUpdateUtil.updateApp(context); | await AppUpdateUtil.updateApp(context); | ||||
IntellectCreate.checkAndCreateFirst(context); | IntellectCreate.checkAndCreateFirst(context); | ||||
@@ -384,4 +429,59 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||||
) | ) | ||||
])); | ])); | ||||
} | } | ||||
@override | |||||
void onPaused() { | |||||
print("首页调用不可见"); | |||||
IntellectCreate.setCheck(false); | |||||
} | |||||
@override | |||||
void onResume() { | |||||
print("首页调用可见"); | |||||
IntellectCreate.setCheck(true); | |||||
} | |||||
} | |||||
final RouteObserver<Route> lifeObserver = RouteObserver(); | |||||
abstract class LifeState<T extends StatefulWidget> extends State<T> | |||||
with RouteAware { | |||||
@override | |||||
void initState() { | |||||
super.initState(); | |||||
} | |||||
@override | |||||
void didChangeDependencies() { | |||||
lifeObserver.subscribe(this, ModalRoute.of(context)); | |||||
super.didChangeDependencies(); | |||||
} | |||||
@override | |||||
void dispose() { | |||||
lifeObserver.unsubscribe(this); | |||||
super.dispose(); | |||||
} | |||||
void didPop() { | |||||
onPaused(); | |||||
} | |||||
void didPopNext() { | |||||
onResume(); | |||||
} | |||||
void didPush() { | |||||
onResume(); | |||||
} | |||||
void didPushNext() { | |||||
onPaused(); | |||||
} | |||||
void onResume(); | |||||
void onPaused(); | |||||
} | } |
@@ -3,7 +3,6 @@ import 'dart:async'; | |||||
import 'dart:io'; | import 'dart:io'; | ||||
import 'dart:typed_data'; | import 'dart:typed_data'; | ||||
import 'package:connectivity/connectivity.dart'; | |||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/foundation.dart'; | import 'package:flutter/foundation.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
@@ -40,12 +39,10 @@ class LaunchPage extends StatefulWidget { | |||||
class _LaunchPageState extends State<LaunchPage> with TickerProviderStateMixin { | class _LaunchPageState extends State<LaunchPage> with TickerProviderStateMixin { | ||||
final GlobalKey navigatorKey = new GlobalKey(); | final GlobalKey navigatorKey = new GlobalKey(); | ||||
int showTime = 0; | int showTime = 0; | ||||
@override | @override | ||||
void initState() { | void initState() { | ||||
validateInit(); | validateInit(); | ||||
super.initState(); | super.initState(); | ||||
} | } | ||||
@@ -56,6 +53,20 @@ class _LaunchPageState extends State<LaunchPage> with TickerProviderStateMixin { | |||||
// I am connected to a wifi network. | // I am connected to a wifi network. | ||||
Logger.debug('ConnectivityResult.wifi'); | Logger.debug('ConnectivityResult.wifi'); | ||||
print('ConnectivityResult.wifi'); | print('ConnectivityResult.wifi'); | ||||
///检查是否覆盖安装 | |||||
//取masterId | |||||
String lasterMasterId = await SharedPreferencesUtil.getStringValue(Constants.masterId, defaultVal: "1"); | |||||
Map setting = await NativeUtil.getSetting(); | |||||
String masterId = setting['master_id']; | |||||
if (lasterMasterId != "1") { | |||||
if (masterId != lasterMasterId) { | |||||
await SharedPreferencesUtil.clean(); | |||||
} | |||||
} | |||||
SharedPreferencesUtil.setStringValue(Constants.masterId, masterId); | |||||
Application.init().then((_) async { | Application.init().then((_) async { | ||||
///引导页 | ///引导页 | ||||
PackageInfo packageInfo = await PackageInfo.fromPlatform(); | PackageInfo packageInfo = await PackageInfo.fromPlatform(); | ||||
@@ -29,7 +29,7 @@ class OrderTabbarWidget extends StatelessWidget { | |||||
Expanded( | Expanded( | ||||
child: TabBar( | child: TabBar( | ||||
controller: controller, | controller: controller, | ||||
isScrollable: false, | |||||
isScrollable: (controller?.length ?? 0) >=4 ? true : false, | |||||
indicatorSize: TabBarIndicatorSize.label, | indicatorSize: TabBarIndicatorSize.label, | ||||
// tabs: widgets, | // tabs: widgets, | ||||
indicatorColor: | indicatorColor: | ||||
@@ -80,7 +80,7 @@ class _SecurityBindAlipayContainerState | |||||
void _verifiy() { | void _verifiy() { | ||||
bool canConfirm = _nameController.text.length > 0 && | bool canConfirm = _nameController.text.length > 0 && | ||||
_accountController.text.length > 0 && | _accountController.text.length > 0 && | ||||
_codeController.text.length == 6; | |||||
_codeController.text.length >= 4 && _codeController.text.length <= 4; | |||||
if (canConfirm != _canConfirm) { | if (canConfirm != _canConfirm) { | ||||
setState(() { | setState(() { | ||||
_canConfirm = canConfirm; | _canConfirm = canConfirm; | ||||
@@ -130,7 +130,7 @@ class _SecurityMobileUnbindState extends State<SecurityMobileUnbind> { | |||||
} | } | ||||
void _verifiy() { | void _verifiy() { | ||||
bool canConfirm = _codeController.text.length == 6; | |||||
bool canConfirm = _codeController.text.length >= 4 && _codeController.text.length <= 6; | |||||
if (canConfirm != _canConfirm) { | if (canConfirm != _canConfirm) { | ||||
setState(() { | setState(() { | ||||
_canConfirm = canConfirm; | _canConfirm = canConfirm; | ||||
@@ -145,7 +145,8 @@ class _SecurityPasswordState extends State<SecurityPassword> { | |||||
} | } | ||||
void _verifiy() { | void _verifiy() { | ||||
bool canConfirm = _passwordController.text.length >= 6 && _confirmController.text.length >= 6 && _codeController.text.length == 6; | |||||
bool canConfirm = _passwordController.text.length >= 6 && _confirmController.text.length >= 6 && | |||||
_codeController.text.length >= 4 && _codeController.text.length <= 6; | |||||
if (canConfirm != _canConfirm) { | if (canConfirm != _canConfirm) { | ||||
setState(() { | setState(() { | ||||
_canConfirm = canConfirm; | _canConfirm = canConfirm; | ||||
@@ -36,7 +36,7 @@ class _SecurityUnbinAlipayState extends State<SecurityUnbinAlipay> { | |||||
} | } | ||||
void _verifiy() { | void _verifiy() { | ||||
bool canConfirm = _codeController.text.length == 6; | |||||
bool canConfirm = _codeController.text.length >= 4 && _codeController.text.length <= 6; | |||||
if (canConfirm != _canConfirm) { | if (canConfirm != _canConfirm) { | ||||
setState(() { | setState(() { | ||||
_canConfirm = canConfirm; | _canConfirm = canConfirm; | ||||
@@ -133,7 +133,7 @@ class _TeamPageContainerState extends State<_TeamPageContainer> { | |||||
SliverPersistentHeader( | SliverPersistentHeader( | ||||
delegate: new _SliverTabBarDelegate( | delegate: new _SliverTabBarDelegate( | ||||
tabBar: TabBar( | tabBar: TabBar( | ||||
isScrollable: false, | |||||
isScrollable: (styleModel?.userLvTabs?.length ?? 0) <= 4 ? false : true, | |||||
labelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 13), | labelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 13), | ||||
unselectedLabelStyle: TextStyle(fontSize: 13), | unselectedLabelStyle: TextStyle(fontSize: 13), | ||||
indicator: MaterialIndicator( | indicator: MaterialIndicator( | ||||
@@ -143,7 +143,7 @@ class _TeamPageContainerState extends State<_TeamPageContainer> { | |||||
bottomLeftRadius: 8, | bottomLeftRadius: 8, | ||||
bottomRightRadius: 8, | bottomRightRadius: 8, | ||||
color: HexColor.fromHex(styleModel?.userLvTabsLineColor ?? '#F94B47'), | color: HexColor.fromHex(styleModel?.userLvTabsLineColor ?? '#F94B47'), | ||||
horizontalPadding: 30, | |||||
horizontalPadding: (styleModel?.userLvTabs?.length ?? 0) <= 4 ? 30 : 20, | |||||
), | ), | ||||
controller: _controller, | controller: _controller, | ||||
// tabs: tabTitle.map((f) => Tab(text: f)).toList(), | // tabs: tabTitle.map((f) => Tab(text: f)).toList(), | ||||
@@ -41,6 +41,7 @@ import 'package:zhiying_base_widget/widgets/custom/goods/custom_goods_creater.da | |||||
import 'package:zhiying_base_widget/widgets/custom/multi_nav/custom_quick_entry.dart'; | import 'package:zhiying_base_widget/widgets/custom/multi_nav/custom_quick_entry.dart'; | ||||
import 'package:zhiying_base_widget/widgets/custom/notice/custom_notice_widget.dart'; | import 'package:zhiying_base_widget/widgets/custom/notice/custom_notice_widget.dart'; | ||||
import 'package:zhiying_base_widget/widgets/custom/search/custom_search_widget.dart'; | import 'package:zhiying_base_widget/widgets/custom/search/custom_search_widget.dart'; | ||||
import 'package:zhiying_base_widget/widgets/custom/share_content/share_content_widget.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/slide_banner/custom_slide_banner_creater.dart'; | import 'package:zhiying_base_widget/widgets/custom/slide_banner/custom_slide_banner_creater.dart'; | ||||
import 'package:zhiying_base_widget/widgets/goods_details/footer/goods_details_footer_widget.dart'; | import 'package:zhiying_base_widget/widgets/goods_details/footer/goods_details_footer_widget.dart'; | ||||
import 'package:zhiying_base_widget/widgets/goods_details/price/goods_details_price_widget.dart'; | import 'package:zhiying_base_widget/widgets/goods_details/price/goods_details_price_widget.dart'; | ||||
@@ -121,8 +122,8 @@ class BaseWidgetRegister { | |||||
// ================ Weixin | // ================ Weixin | ||||
register.setupWechat(config.keys?.weixin?.appId ?? '', config.keys?.weixin?.secret ?? '', config.keys?.weixin?.universalLink ?? ''); | register.setupWechat(config.keys?.weixin?.appId ?? '', config.keys?.weixin?.secret ?? '', config.keys?.weixin?.universalLink ?? ''); | ||||
// register.setupSinaWeibo(config.keys?.weibo?.appkey ?? '', config.keys?.weibo?.secret ?? '', config.keys?.weibo?.redirectUrl ?? ''); | |||||
register.setupSinaWeibo(config.keys?.weibo?.appkey ?? '', config.keys?.weibo?.secret ?? '', config.keys?.weibo?.redirectUrl ?? '',config.keys?.weibo?.universalLink??'templink'); | |||||
register.setupQQ(config.keys?.qq?.appId ?? '', config.keys?.qq?.appkey ?? ''); | register.setupQQ(config.keys?.qq?.appId ?? '', config.keys?.qq?.appkey ?? ''); | ||||
@@ -410,5 +411,7 @@ class BaseWidgetRegister { | |||||
WidgetFactory.regist('placard', DefaultWidgetCreater((model) => CustomNoticeWidget(model))); | WidgetFactory.regist('placard', DefaultWidgetCreater((model) => CustomNoticeWidget(model))); | ||||
// 授权 | // 授权 | ||||
WidgetFactory.regist('audit_tip', DefaultWidgetCreater((model) => HomeAuth(model))); | WidgetFactory.regist('audit_tip', DefaultWidgetCreater((model) => HomeAuth(model))); | ||||
// 分享内容组件 | |||||
WidgetFactory.regist('share_content', DefaultWidgetCreater((model) => CustomShareContentWidget(model))); | |||||
} | } | ||||
} | } |
@@ -29,4 +29,8 @@ class Constants { | |||||
//==============================版本号,控制引导页显示=================================== | //==============================版本号,控制引导页显示=================================== | ||||
static String versionNumber = "versionNumber"; | static String versionNumber = "versionNumber"; | ||||
///masterId | |||||
static String masterId="sp_master_id"; | |||||
} | } |
@@ -120,7 +120,7 @@ class __CustomQuickEntryContainerState extends State<_CustomQuickEntryContainer> | |||||
// 图标的高度 | // 图标的高度 | ||||
double iconHeight = 40.0; | double iconHeight = 40.0; | ||||
// 标题的高度 | // 标题的高度 | ||||
double titleHeight = 20.0; | |||||
double titleHeight = 21.0; | |||||
// 子元素的高度 | // 子元素的高度 | ||||
double itemHeight = iconHeight; | double itemHeight = iconHeight; | ||||
@@ -443,7 +443,7 @@ class __CustomQuickEntryContainerState extends State<_CustomQuickEntryContainer> | |||||
child: Text( | child: Text( | ||||
item?.title ?? '', | item?.title ?? '', | ||||
style: | style: | ||||
TextStyle(fontSize: 10, color: HexColor.fromHex(model?.titleColor)), | |||||
TextStyle(fontSize: 12, color: HexColor.fromHex(model?.titleColor)), | |||||
), | ), | ||||
), | ), | ||||
), | ), | ||||
@@ -558,83 +558,6 @@ class MyNetWorkImage extends StatelessWidget { | |||||
child: CachedNetworkImage(width: width, imageUrl: imgUrl), | child: CachedNetworkImage(width: width, imageUrl: imgUrl), | ||||
); | ); | ||||
} | } | ||||
// Widget _getMainWidget(CustomQuickEntryModel model) { | |||||
// // 数据总数 | |||||
// int totalDataSize = model?.listStyle?.length ?? 0; | |||||
// | |||||
// // 展示的总行数 | |||||
// int totalRowSize = 1;int.parse(model?.rowSize ?? '1'); | |||||
// | |||||
// // 展示的列数 | |||||
// int columSize = 5;int.parse(model?.columnSize ?? '5'); | |||||
// | |||||
// // 图标的高度 | |||||
// double iconHeight = 40.0; | |||||
// // 标题的高度 | |||||
// double titleHeight = 20.0; | |||||
// | |||||
// // 子元素的高度 | |||||
// double itemHeight = iconHeight; | |||||
// | |||||
// // 如果有一级标题 | |||||
// if (!EmptyUtil.isEmpty(model?.isShowTitle) && model.isShowTitle == '1') { | |||||
// itemHeight = iconHeight + titleHeight; | |||||
// } | |||||
// | |||||
// //如果有二级标题 | |||||
// if (!EmptyUtil.isEmpty(model?.isShowSubTitle) && model.isShowSubTitle == '1') { | |||||
// itemHeight = iconHeight + titleHeight * 2; | |||||
// } | |||||
// | |||||
// // 进度条的边距 | |||||
// double barMargin = 15.0; | |||||
// // 总页数 | |||||
// int totalPage = totalDataSize % (totalRowSize * columSize) == 0 ? totalDataSize ~/ (totalRowSize * columSize) : (totalDataSize ~/ (totalRowSize * columSize)) + 1; | |||||
// | |||||
// // 总体高度 = 行数 * (子元素高度 + 边距高度) + 进度条的高度 | |||||
// double totalHeight = totalRowSize * (itemHeight + barMargin) + 4; | |||||
// if (!EmptyUtil.isEmpty(model?.pagination) && model.pagination != 'type_null' /*model.pagination_open == '0'*/) { | |||||
// totalHeight = totalRowSize * (itemHeight + barMargin); | |||||
// } | |||||
// | |||||
// return Container( | |||||
// color: HexColor.fromHex(widget?.model['bg_color']), | |||||
// // color: Colors.yellow, | |||||
// child: Container( | |||||
// margin: EdgeInsets.only(top: 15, bottom: totalPage > 1 ? 15 : 0), | |||||
// height: totalHeight, | |||||
// // 总体高度 | |||||
// width: double.infinity, | |||||
// color: HexColor.fromHex(widget?.model['bg_color']), | |||||
// child: Swiper( | |||||
// controller: _controller, | |||||
// itemCount: totalPage, | |||||
// loop: false, | |||||
// itemBuilder: (context, index) { | |||||
// return Container( | |||||
// height: double.infinity, | |||||
// width: double.infinity, | |||||
// padding: const EdgeInsets.symmetric(horizontal: 12.5), | |||||
// child: _getPageWidget( | |||||
// iconHeight: iconHeight, | |||||
// titleHeight: titleHeight, | |||||
// totalDataSize: totalDataSize, | |||||
// totalPage: totalPage, | |||||
// currentPage: index, | |||||
// totalRowSize: totalRowSize, | |||||
// columSize: columSize, | |||||
// model: model, | |||||
// itemHeight: itemHeight, | |||||
// ), | |||||
// ); | |||||
// }, | |||||
// pagination: totalPage <= 1 ? null : _getSwiperPaginationContorl(model, totalPage), | |||||
// ), | |||||
// ), | |||||
// ); | |||||
// } | |||||
} | } | ||||
class CustomQuickCateEntry extends StatefulWidget { | class CustomQuickCateEntry extends StatefulWidget { | ||||
@@ -739,7 +662,7 @@ class _CustomQuickCateEntryState extends State<CustomQuickCateEntry> | |||||
// 图标的高度 | // 图标的高度 | ||||
double iconHeight = 40; | double iconHeight = 40; | ||||
// 标题的高度 | // 标题的高度 | ||||
double titleHeight = 20.0; | |||||
double titleHeight = 21.0; | |||||
// 子元素的高度 | // 子元素的高度 | ||||
double itemHeight = iconHeight; | double itemHeight = iconHeight; | ||||
@@ -48,12 +48,18 @@ class CustomSearchWidget extends StatelessWidget { | |||||
if (EmptyUtil.isEmpty(model)) return Container(); | if (EmptyUtil.isEmpty(model)) return Container(); | ||||
Widget rlt; | Widget rlt; | ||||
switch (model.moduleType) { | switch (model.moduleType) { | ||||
case 'search_1': | |||||
case 'search_1': // 右1图标 | |||||
rlt = _buildStyle1Widget(context); | rlt = _buildStyle1Widget(context); | ||||
break; | break; | ||||
case 'search_2': | |||||
case 'search_2': // 无图标 | |||||
rlt = _buildStyle2Widget(context); | rlt = _buildStyle2Widget(context); | ||||
break; | break; | ||||
case 'search_3': // 左1右1图标 | |||||
rlt = _buildStyle3Widget(context); | |||||
break; | |||||
case 'search_4': // 右按钮 | |||||
rlt = _buildStyle4Widget(context); | |||||
break; | |||||
default: | default: | ||||
rlt = Container(); | rlt = Container(); | ||||
break; | break; | ||||
@@ -62,6 +68,113 @@ class CustomSearchWidget extends StatelessWidget { | |||||
return rlt; | return rlt; | ||||
} | } | ||||
/// 左1右1图标 | |||||
Widget _buildStyle3Widget(BuildContext context) { | |||||
return Row( | |||||
mainAxisAlignment: MainAxisAlignment.center, | |||||
children: [ | |||||
GestureDetector( | |||||
onTap: () => _onClickListener(context, model?.listStyle?.leftCss), | |||||
child: CachedNetworkImage( | |||||
width: 30, | |||||
height: 30, | |||||
imageUrl: model?.listStyle?.leftCss?.image ?? '', | |||||
)), | |||||
// 图标1 | |||||
SizedBox(width: 10), | |||||
// 中间 | |||||
Expanded( | |||||
child: GestureDetector( | |||||
onTap: () => _onClickListener(context, model?.listStyle?.searchCss), | |||||
behavior: HitTestBehavior.opaque, | |||||
child: Container( | |||||
// height: 30, | |||||
width: double.infinity, | |||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 9), | |||||
decoration: BoxDecoration(borderRadius: BorderRadius.circular(60 / 2), color: HexColor.fromHex(model?.listStyle?.searchCss?.bgColor)), | |||||
child: Row( | |||||
children: <Widget>[ | |||||
CachedNetworkImage( | |||||
width: 15, | |||||
height: 15, | |||||
imageUrl: model?.listStyle?.searchCss?.image ?? '', | |||||
), | |||||
SizedBox(width: 4), | |||||
Text(model?.listStyle?.searchCss?.text ?? '输入搜索内容,领券省钱', style: TextStyle(fontSize: 13, color: HexColor.fromHex(model?.listStyle?.searchCss?.textColor??"#FFFFFF"))) | |||||
], | |||||
), | |||||
), | |||||
)), | |||||
SizedBox(width: 10), | |||||
// 图标2 | |||||
GestureDetector( | |||||
onTap: () => _onClickListener(context, model?.listStyle?.rightCss), | |||||
child: CachedNetworkImage( | |||||
width: 30, | |||||
height: 30, | |||||
imageUrl: model?.listStyle?.rightCss?.image ?? '', | |||||
)), | |||||
], | |||||
); | |||||
} | |||||
/// 右按钮 | |||||
Widget _buildStyle4Widget(BuildContext context) { | |||||
return GestureDetector( | |||||
onTap: () => _onClickListener(context, model?.listStyle?.rightBtnCss), | |||||
child: Container( | |||||
height: 38, | |||||
padding: EdgeInsets.only(left: 10.5), | |||||
decoration: BoxDecoration( | |||||
border: Border.all(color: HexColor.fromHex(model?.listStyle?.searchCss?.borderColor ?? "")), | |||||
borderRadius: BorderRadius.only( | |||||
bottomRight: Radius.circular(ParseUtil.stringParseDouble(model?.bottomRightRadius)), | |||||
bottomLeft: Radius.circular(ParseUtil.stringParseDouble(model?.bottomLeftRadius)), | |||||
topLeft: Radius.circular(ParseUtil.stringParseDouble(model?.topLeftRadius)), | |||||
topRight: Radius.circular(ParseUtil.stringParseDouble(model?.topRightRadius)), | |||||
)), | |||||
child: Row( | |||||
mainAxisAlignment: MainAxisAlignment.start, | |||||
crossAxisAlignment: CrossAxisAlignment.center, | |||||
children: <Widget>[ | |||||
///搜索图标 | |||||
CachedNetworkImage( | |||||
imageUrl: model?.listStyle?.searchCss?.image ?? '', | |||||
width: 16, | |||||
fit: BoxFit.fitWidth, | |||||
), | |||||
SizedBox( | |||||
width: 4, | |||||
), | |||||
Expanded( | |||||
child: TextField( | |||||
style: TextStyle(fontSize: 13), | |||||
decoration: InputDecoration( | |||||
isDense: true, | |||||
enabled: false, | |||||
border: InputBorder.none, | |||||
hintText: model?.listStyle?.searchCss?.text ?? "", | |||||
hintStyle: TextStyle(color: HexColor.fromHex(model?.listStyle?.searchCss?.textColor ?? ""))), | |||||
), | |||||
), | |||||
Container( | |||||
padding: EdgeInsets.only(left: 16, right: 16), | |||||
decoration: BoxDecoration( | |||||
image: DecorationImage(image: CachedNetworkImageProvider(model?.listStyle?.rightBtnCss?.bgImg ?? ""), fit: BoxFit.fitHeight), | |||||
borderRadius: BorderRadius.circular(2)), | |||||
height: double.infinity, | |||||
child: Center( | |||||
child: Text( | |||||
model?.listStyle?.rightBtnCss?.text ?? "", | |||||
style: TextStyle(color: HexColor.fromHex(model?.listStyle?.rightBtnCss?.textColor ?? "#FFFFFF"), fontWeight: FontWeight.w500, fontSize: 13), | |||||
)), | |||||
) | |||||
], | |||||
), | |||||
), | |||||
); | |||||
} | |||||
/// 右1图标 | /// 右1图标 | ||||
Widget _buildStyle1Widget(BuildContext context) { | Widget _buildStyle1Widget(BuildContext context) { | ||||
return Row( | return Row( | ||||
@@ -78,8 +191,8 @@ class CustomSearchWidget extends StatelessWidget { | |||||
child: Row( | child: Row( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
CachedNetworkImage( | CachedNetworkImage( | ||||
width: 13, | |||||
height: 13, | |||||
width: 15, | |||||
height: 15, | |||||
imageUrl: model?.listStyle?.searchCss?.image ?? '', | imageUrl: model?.listStyle?.searchCss?.image ?? '', | ||||
), | ), | ||||
SizedBox(width: 4), | SizedBox(width: 4), | ||||
@@ -83,12 +83,16 @@ class CustomSearchModel { | |||||
class ListStyle { | class ListStyle { | ||||
SearchCss searchCss; | SearchCss searchCss; | ||||
RightCss rightCss; | RightCss rightCss; | ||||
RightCss leftCss; | |||||
RightBtnCss rightBtnCss; | |||||
ListStyle({this.searchCss, this.rightCss}); | |||||
ListStyle({this.searchCss, this.rightCss, this.leftCss, this.rightBtnCss}); | |||||
ListStyle.fromJson(Map<String, dynamic> json) { | ListStyle.fromJson(Map<String, dynamic> json) { | ||||
searchCss = json['search_css'] != null ? new SearchCss.fromJson(json['search_css']) : null; | searchCss = json['search_css'] != null ? new SearchCss.fromJson(json['search_css']) : null; | ||||
rightCss = json['right_css'] != null ? new RightCss.fromJson(json['right_css']) : null; | rightCss = json['right_css'] != null ? new RightCss.fromJson(json['right_css']) : null; | ||||
leftCss = json['left_css'] != null ? new RightCss.fromJson(json['left_css']) : null; | |||||
rightBtnCss = json['right_btn_css'] != null ? new RightBtnCss.fromJson(json['right_btn_css']) : null; | |||||
} | } | ||||
Map<String, dynamic> toJson() { | Map<String, dynamic> toJson() { | ||||
@@ -99,6 +103,12 @@ class ListStyle { | |||||
if (this.rightCss != null) { | if (this.rightCss != null) { | ||||
data['right_css'] = this.rightCss.toJson(); | data['right_css'] = this.rightCss.toJson(); | ||||
} | } | ||||
if (this.leftCss != null) { | |||||
data['left_css'] = this.leftCss.toJson(); | |||||
} | |||||
if (this.rightBtnCss != null) { | |||||
data['right_btn_css'] = this.rightBtnCss.toJson(); | |||||
} | |||||
return data; | return data; | ||||
} | } | ||||
} | } | ||||
@@ -112,19 +122,21 @@ class SearchCss extends SkipModel { | |||||
String requiredLogin; | String requiredLogin; | ||||
String requiredTaobaoAuth; | String requiredTaobaoAuth; | ||||
String skipIdentifier; | String skipIdentifier; | ||||
String borderColor; | |||||
SearchCss({this.name, this.text, this.image, this.bgColor, this.textColor, this.requiredLogin, this.requiredTaobaoAuth, this.skipIdentifier}); | |||||
SearchCss({this.name, this.text, this.image, this.bgColor, this.textColor, this.requiredLogin, this.requiredTaobaoAuth, this.skipIdentifier, this.borderColor}); | |||||
SearchCss.fromJson(Map<String, dynamic> json) { | SearchCss.fromJson(Map<String, dynamic> json) { | ||||
super.fromJson(json); | super.fromJson(json); | ||||
name = json['name']; | |||||
text = json['text']; | |||||
image = json['image']; | |||||
bgColor = json['bg_color']; | |||||
textColor = json['text_color']; | |||||
requiredLogin = json['required_login']; | |||||
requiredTaobaoAuth = json['required_taobao_auth']; | |||||
skipIdentifier = json['skip_identifier']; | |||||
name = json['name']?.toString(); | |||||
text = json['text']?.toString(); | |||||
image = json['image']?.toString(); | |||||
bgColor = json['bg_color']?.toString(); | |||||
textColor = json['text_color']?.toString(); | |||||
requiredLogin = json['required_login']?.toString(); | |||||
requiredTaobaoAuth = json['required_taobao_auth']?.toString(); | |||||
skipIdentifier = json['skip_identifier']?.toString(); | |||||
borderColor = json['border_color']?.toString(); | |||||
} | } | ||||
Map<String, dynamic> toJson() { | Map<String, dynamic> toJson() { | ||||
@@ -137,6 +149,7 @@ class SearchCss extends SkipModel { | |||||
data['required_login'] = this.requiredLogin; | data['required_login'] = this.requiredLogin; | ||||
data['required_taobao_auth'] = this.requiredTaobaoAuth; | data['required_taobao_auth'] = this.requiredTaobaoAuth; | ||||
data['skip_identifier'] = this.skipIdentifier; | data['skip_identifier'] = this.skipIdentifier; | ||||
data['border_color'] = this.borderColor; | |||||
return data; | return data; | ||||
} | } | ||||
} | } | ||||
@@ -175,3 +188,61 @@ class RightCss extends SkipModel { | |||||
return data; | return data; | ||||
} | } | ||||
} | } | ||||
class RightBtnCss extends SkipModel { | |||||
String name; | |||||
String text; | |||||
String textColor; | |||||
String bgImg; | |||||
String bgImgUrl; | |||||
String skipIdentifier; | |||||
String skipName; | |||||
String requiredLogin; | |||||
String requiredTaobaoAuth; | |||||
String isJump; | |||||
String cateTag; | |||||
RightBtnCss( | |||||
{this.name, | |||||
this.text, | |||||
this.textColor, | |||||
this.bgImg, | |||||
this.bgImgUrl, | |||||
this.skipIdentifier, | |||||
this.skipName, | |||||
this.requiredLogin, | |||||
this.requiredTaobaoAuth, | |||||
this.isJump, | |||||
this.cateTag}); | |||||
RightBtnCss.fromJson(Map<String, dynamic> json) { | |||||
super.fromJson(json); | |||||
name = json['name']; | |||||
text = json['text']; | |||||
textColor = json['text_color']; | |||||
bgImg = json['bg_img']; | |||||
bgImgUrl = json['bg_img_url']; | |||||
skipIdentifier = json['skip_identifier']; | |||||
skipName = json['skip_name']; | |||||
requiredLogin = json['required_login']; | |||||
requiredTaobaoAuth = json['required_taobao_auth']; | |||||
isJump = json['is_jump']; | |||||
cateTag = json['cate_tag']; | |||||
} | |||||
Map<String, dynamic> toJson() { | |||||
final Map<String, dynamic> data = super.toJson(); | |||||
data['name'] = this.name; | |||||
data['text'] = this.text; | |||||
data['text_color'] = this.textColor; | |||||
data['bg_img'] = this.bgImg; | |||||
data['bg_img_url'] = this.bgImgUrl; | |||||
data['skip_identifier'] = this.skipIdentifier; | |||||
data['skip_name'] = this.skipName; | |||||
data['required_login'] = this.requiredLogin; | |||||
data['required_taobao_auth'] = this.requiredTaobaoAuth; | |||||
data['is_jump'] = this.isJump; | |||||
data['cate_tag'] = this.cateTag; | |||||
return data; | |||||
} | |||||
} |
@@ -0,0 +1,39 @@ | |||||
import 'dart:async'; | |||||
import 'package:bloc/bloc.dart'; | |||||
import 'package:meta/meta.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/model/custom_share_content_model.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
import 'custom_share_content_repository.dart'; | |||||
part 'custom_share_content_event.dart'; | |||||
part 'custom_share_content_state.dart'; | |||||
class CustomShareContentBloc extends Bloc<CustomShareContentEvent, CustomShareContentState> { | |||||
CustomShareContentBloc({this.repository}) : super(CustomShareContentInitial()); | |||||
CustomShareContentRepository repository; | |||||
@override | |||||
Stream<CustomShareContentState> mapEventToState( | |||||
CustomShareContentEvent event, | |||||
) async* { | |||||
/// 初始化 | |||||
if (event is CustomShareContentInitEvent) { | |||||
yield* _mapInitEventToState(event); | |||||
} | |||||
} | |||||
/// 初始化事件 | |||||
Stream<CustomShareContentState> _mapInitEventToState(CustomShareContentInitEvent event) async* { | |||||
var parentData = await repository.fetchParentStyle(event.model); | |||||
if (!EmptyUtil.isEmpty(parentData)) { | |||||
yield CustomShareContentLoadedState(model: parentData); | |||||
var netData = await repository.fetchNetData(event.model); | |||||
if (!EmptyUtil.isEmpty(netData)) { | |||||
parentData..text = netData?.toString(); | |||||
yield CustomShareContentLoadedState(model: parentData); | |||||
} | |||||
} else { | |||||
yield CustomShareContentErrorState(); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,10 @@ | |||||
part of 'custom_share_content_bloc.dart'; | |||||
@immutable | |||||
abstract class CustomShareContentEvent {} | |||||
/// 初始化事件 | |||||
class CustomShareContentInitEvent extends CustomShareContentEvent { | |||||
final Map<String, dynamic> model; | |||||
CustomShareContentInitEvent({this.model}); | |||||
} |
@@ -0,0 +1,42 @@ | |||||
import 'dart:convert'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/model/custom_share_content_model.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
class CustomShareContentRepository { | |||||
/// | |||||
/// 获取缓存的数据 | |||||
/// | |||||
Future<CustomShareContentModel> fetchParentStyle(Map<String, dynamic> model) async { | |||||
try { | |||||
if (!EmptyUtil.isEmpty(model)) { | |||||
return CustomShareContentModel.fromJson(jsonDecode(model['data'])); | |||||
} | |||||
} catch (e, s) { | |||||
Logger.error(e, s); | |||||
} | |||||
return null; | |||||
} | |||||
/// | |||||
/// 获取网络的数据 | |||||
/// | |||||
Future<String> fetchNetData(Map<String, dynamic> model) async { | |||||
try { | |||||
if (!EmptyUtil.isEmpty(model)) { | |||||
var result = await NetUtil.post('/api/v1/third_party/content/${model['mod_id']?.toString()}', method: NetMethod.GET ); | |||||
if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) { | |||||
var data = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['content']; | |||||
if (!EmptyUtil.isEmpty(data)) { | |||||
return data; | |||||
} | |||||
} | |||||
} | |||||
} catch (e, s) { | |||||
Logger.error(e, s); | |||||
} | |||||
return null; | |||||
} | |||||
} |
@@ -0,0 +1,16 @@ | |||||
part of 'custom_share_content_bloc.dart'; | |||||
@immutable | |||||
abstract class CustomShareContentState {} | |||||
/// 初始化 | |||||
class CustomShareContentInitial extends CustomShareContentState {} | |||||
/// 数据加载成功 | |||||
class CustomShareContentLoadedState extends CustomShareContentState { | |||||
CustomShareContentModel model; | |||||
CustomShareContentLoadedState({this.model}); | |||||
} | |||||
/// 数据加载失败 | |||||
class CustomShareContentErrorState extends CustomShareContentState {} |
@@ -0,0 +1,139 @@ | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
class CustomShareContentModel extends SkipModel{ | |||||
String name; | |||||
String desc; | |||||
String text; | |||||
String moduleType; | |||||
String moduleKey; | |||||
String isTopMargin; | |||||
String isLeftRightMargin; | |||||
String isShow; | |||||
String topMargin; | |||||
String leftRightMargin; | |||||
String topLeftRadius; | |||||
String topRightRadius; | |||||
String bottomLeftRadius; | |||||
String bottomRightRadius; | |||||
String bgColor; | |||||
String isShowShareFriend; | |||||
String bgImage; | |||||
String bgImageUrl; | |||||
String titleImage; | |||||
String titleImageUrl; | |||||
String copyImage; | |||||
String copyImageUrl; | |||||
String copyLongImage; | |||||
String copyLongImageUrl; | |||||
String shareImage; | |||||
String shareImageUrl; | |||||
String textColor; | |||||
String skipName; | |||||
String cateTag; | |||||
CustomShareContentModel( | |||||
{this.name, | |||||
this.desc, | |||||
this.text, | |||||
this.moduleType, | |||||
this.moduleKey, | |||||
this.isTopMargin, | |||||
this.isLeftRightMargin, | |||||
this.isShow, | |||||
this.topMargin, | |||||
this.leftRightMargin, | |||||
this.topLeftRadius, | |||||
this.topRightRadius, | |||||
this.bottomLeftRadius, | |||||
this.bottomRightRadius, | |||||
this.bgColor, | |||||
this.isShowShareFriend, | |||||
this.bgImage, | |||||
this.bgImageUrl, | |||||
this.titleImage, | |||||
this.titleImageUrl, | |||||
this.copyImage, | |||||
this.copyImageUrl, | |||||
this.copyLongImage, | |||||
this.copyLongImageUrl, | |||||
this.shareImage, | |||||
this.shareImageUrl, | |||||
this.textColor, | |||||
this.skipName, | |||||
this.cateTag}); | |||||
CustomShareContentModel.fromJson(Map<String, dynamic> json) { | |||||
super.fromJson(json); | |||||
name = json['name']; | |||||
desc = json['desc']; | |||||
text = json['text']; | |||||
moduleType = json['module_type']; | |||||
moduleKey = json['module_key']; | |||||
isTopMargin = json['is_top_margin']; | |||||
isLeftRightMargin = json['is_left_right_margin']; | |||||
isShow = json['is_show']; | |||||
topMargin = json['top_margin']; | |||||
leftRightMargin = json['left_right_margin']; | |||||
topLeftRadius = json['top_left_radius']; | |||||
topRightRadius = json['top_right_radius']; | |||||
bottomLeftRadius = json['bottom_left_radius']; | |||||
bottomRightRadius = json['bottom_right_radius']; | |||||
bgColor = json['bg_color']; | |||||
isShowShareFriend = json['is_show_share_friend']; | |||||
bgImage = json['bg_image']; | |||||
bgImageUrl = json['bg_image_url']; | |||||
titleImage = json['title_image']; | |||||
titleImageUrl = json['title_image_url']; | |||||
copyImage = json['copy_image']; | |||||
copyImageUrl = json['copy_image_url']; | |||||
copyLongImage = json['copy_long_image']; | |||||
copyLongImageUrl = json['copy_long_image_url']; | |||||
shareImage = json['share_image']; | |||||
shareImageUrl = json['share_image_url']; | |||||
textColor = json['text_color']; | |||||
skipIdentifier = json['skip_identifier']; | |||||
skipName = json['skip_name']; | |||||
requiredLogin = json['required_login']; | |||||
requiredTaobaoAuth = json['required_taobao_auth']; | |||||
isJump = json['is_jump']; | |||||
cateTag = json['cate_tag']; | |||||
} | |||||
Map<String, dynamic> toJson() { | |||||
final Map<String, dynamic> data = super.toJson(); | |||||
data['name'] = this.name; | |||||
data['desc'] = this.desc; | |||||
data['text'] = this.text; | |||||
data['module_type'] = this.moduleType; | |||||
data['module_key'] = this.moduleKey; | |||||
data['is_top_margin'] = this.isTopMargin; | |||||
data['is_left_right_margin'] = this.isLeftRightMargin; | |||||
data['is_show'] = this.isShow; | |||||
data['top_margin'] = this.topMargin; | |||||
data['left_right_margin'] = this.leftRightMargin; | |||||
data['top_left_radius'] = this.topLeftRadius; | |||||
data['top_right_radius'] = this.topRightRadius; | |||||
data['bottom_left_radius'] = this.bottomLeftRadius; | |||||
data['bottom_right_radius'] = this.bottomRightRadius; | |||||
data['bg_color'] = this.bgColor; | |||||
data['is_show_share_friend'] = this.isShowShareFriend; | |||||
data['bg_image'] = this.bgImage; | |||||
data['bg_image_url'] = this.bgImageUrl; | |||||
data['title_image'] = this.titleImage; | |||||
data['title_image_url'] = this.titleImageUrl; | |||||
data['copy_image'] = this.copyImage; | |||||
data['copy_image_url'] = this.copyImageUrl; | |||||
data['copy_long_image'] = this.copyLongImage; | |||||
data['copy_long_image_url'] = this.copyLongImageUrl; | |||||
data['share_image'] = this.shareImage; | |||||
data['share_image_url'] = this.shareImageUrl; | |||||
data['text_color'] = this.textColor; | |||||
data['skip_identifier'] = this.skipIdentifier; | |||||
data['skip_name'] = this.skipName; | |||||
data['required_login'] = this.requiredLogin; | |||||
data['required_taobao_auth'] = this.requiredTaobaoAuth; | |||||
data['is_jump'] = this.isJump; | |||||
data['cate_tag'] = this.cateTag; | |||||
return data; | |||||
} | |||||
} |
@@ -0,0 +1,22 @@ | |||||
import 'package:flutter/material.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/share_content_sk.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/share_content_widget.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
/// | |||||
/// 可以滚动Banner | |||||
/// | |||||
class CustomShareContentCreater extends WidgetCreater { | |||||
@override | |||||
List<Widget> createSkeleton(Map<String, dynamic> model) { | |||||
return [CustomShareContentSkeleton()]; | |||||
} | |||||
@override | |||||
List<Widget> createWidgets(Map<String, dynamic> model) { | |||||
return [ | |||||
CustomShareContentWidget(model), | |||||
]; | |||||
} | |||||
} |
@@ -0,0 +1,8 @@ | |||||
import 'package:flutter/material.dart'; | |||||
class CustomShareContentSkeleton extends StatelessWidget { | |||||
@override | |||||
Widget build(BuildContext context) { | |||||
return Container(); | |||||
} | |||||
} |
@@ -0,0 +1,142 @@ | |||||
import 'package:flutter/material.dart'; | |||||
import 'package:flutter/services.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/model/custom_share_content_model.dart'; | |||||
import 'package:zhiying_base_widget/widgets/custom/share_content/share_content_sk.dart'; | |||||
import 'package:zhiying_base_widget/widgets/share/models/share_alert_model.dart'; | |||||
import 'package:zhiying_base_widget/widgets/share/models/share_data_model.dart'; | |||||
import 'package:zhiying_base_widget/widgets/share/share_alert.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
import 'package:flutter_bloc/flutter_bloc.dart'; | |||||
import 'bloc/custom_share_content_bloc.dart'; | |||||
import 'bloc/custom_share_content_repository.dart'; | |||||
import 'package:flutter/cupertino.dart'; | |||||
/// | |||||
/// 分享内容组件 | |||||
/// | |||||
class CustomShareContentWidget extends StatelessWidget { | |||||
final Map<String, dynamic> model; | |||||
const CustomShareContentWidget(this.model, {Key key}) : super(key: key); | |||||
@override | |||||
Widget build(BuildContext context) { | |||||
return BlocProvider( | |||||
create: (_) => CustomShareContentBloc(repository: CustomShareContentRepository())..add(CustomShareContentInitEvent(model: model)), | |||||
child: _CustomShareContentContainerWidget(), | |||||
); | |||||
} | |||||
} | |||||
class _CustomShareContentContainerWidget extends StatefulWidget { | |||||
@override | |||||
_CustomShareContentContainerWidgetState createState() => _CustomShareContentContainerWidgetState(); | |||||
} | |||||
class _CustomShareContentContainerWidgetState extends State<_CustomShareContentContainerWidget> { | |||||
/// 分享方法 | |||||
void _clickShareButton(val) { | |||||
showCupertinoModalPopup( | |||||
context: context, | |||||
builder: (context) => ShareAlert(ShareDataModel(content: val), 'pub.flutter.share_icon', isContentShow: false), | |||||
); | |||||
} | |||||
/// 复制方法 | |||||
void _clickCopyButton(String val) { | |||||
if (!EmptyUtil.isEmpty(val)) { | |||||
Clipboard.setData(ClipboardData(text: val)); | |||||
Fluttertoast.showToast(msg: '复制成功'); | |||||
} | |||||
} | |||||
@override | |||||
Widget build(BuildContext context) { | |||||
return BlocConsumer<CustomShareContentBloc, CustomShareContentState>( | |||||
listener: (prev, next) {}, | |||||
buildWhen: (context, state) { | |||||
return true; | |||||
}, | |||||
builder: (context, state) { | |||||
Logger.log('商品详情刷新了 builder state = ' + state?.toString()); | |||||
/// 数据加载完毕 | |||||
if (state is CustomShareContentLoadedState) { | |||||
return _getMainWidget(state?.model); | |||||
} | |||||
/// 异常 | |||||
if (state is CustomShareContentErrorState) { | |||||
return _errorWidget(); | |||||
} | |||||
/// 骨架图 | |||||
return _getSkeletonWidget(); | |||||
}, | |||||
); | |||||
} | |||||
/// 主视图 | |||||
Widget _getMainWidget(CustomShareContentModel model) { | |||||
return Container( | |||||
width: double.infinity, | |||||
// height: 98, | |||||
margin: EdgeInsets.only(top: ParseUtil.stringParseDouble(model?.topMargin), left: ParseUtil.stringParseDouble(model?.leftRightMargin, defVal: 12.5), right: ParseUtil.stringParseDouble(model?.leftRightMargin, defVal: 12.5)), | |||||
decoration: BoxDecoration( | |||||
// color: Colors.red, | |||||
borderRadius: BorderRadius.only( | |||||
bottomLeft: Radius.circular(ParseUtil.stringParseDouble(model?.bottomLeftRadius)), | |||||
bottomRight: Radius.circular(ParseUtil.stringParseDouble(model?.bottomRightRadius)), | |||||
topLeft: Radius.circular(ParseUtil.stringParseDouble(model?.topLeftRadius)), | |||||
topRight: Radius.circular(ParseUtil.stringParseDouble(model?.topRightRadius)), | |||||
)), | |||||
child: Container( | |||||
padding: const EdgeInsets.only(left: 12, right: 12, top: 12, bottom: 14), | |||||
height: 200, | |||||
width: double.infinity, | |||||
decoration: BoxDecoration( | |||||
image: DecorationImage( | |||||
image: CachedNetworkImageProvider(model?.bgImageUrl ?? '') | |||||
) | |||||
), | |||||
child: Column( | |||||
mainAxisAlignment: MainAxisAlignment.spaceBetween, | |||||
children: [ | |||||
// 标题 | |||||
CachedNetworkImage(imageUrl: model?.titleImageUrl, width: 90,), | |||||
// SizedBox(height: 20), | |||||
// 文案 | |||||
Text(model?.text?? '', style: TextStyle(color: HexColor.fromHex(model?.textColor), fontSize: 15),), | |||||
// SizedBox(height: 22), | |||||
// 复制按钮 or 分享 按钮 | |||||
Visibility( | |||||
visible: (model?.isShowShareFriend ?? '0') == '1', | |||||
// 仅仅复制按钮 | |||||
replacement: GestureDetector( onTap: () => _clickCopyButton(model?.text) ,child: CachedNetworkImage(imageUrl: model?.copyLongImageUrl ?? '', width: double.infinity)), | |||||
child: Row( | |||||
children: [ | |||||
// 复制按钮 | |||||
Flexible(flex: 1, child: GestureDetector(onTap: () => _clickCopyButton(model?.text),child: CachedNetworkImage(imageUrl: model?.copyImageUrl, width: double.infinity,))), | |||||
SizedBox(width: 20), | |||||
// 分享按钮 | |||||
Flexible(flex: 1,child: GestureDetector(onTap: ()=> _clickShareButton(model?.text), child: CachedNetworkImage(imageUrl: model?.shareImageUrl, width: double.infinity,))) | |||||
], | |||||
)) | |||||
], | |||||
), | |||||
) | |||||
); | |||||
} | |||||
/// 骨架图 | |||||
Widget _getSkeletonWidget() { | |||||
return CustomShareContentSkeleton(); | |||||
} | |||||
/// 无数据视图 or 异常 | |||||
Widget _errorWidget() { | |||||
return Container(); | |||||
} | |||||
} | |||||
@@ -14,6 +14,7 @@ class GoodsDetailsAppBarWidget extends StatefulWidget { | |||||
GoodsDetailsAppBarWidget(this.data, {Key key}) : super(key: key){ | GoodsDetailsAppBarWidget(this.data, {Key key}) : super(key: key){ | ||||
try{ | try{ | ||||
model = GoodsDetailsAppBarModel.fromJson(jsonDecode(data['data'])); | model = GoodsDetailsAppBarModel.fromJson(jsonDecode(data['data'])); | ||||
Logger.log('商品详情页面数据 = ${model.toJson()}'); | |||||
}catch(e, s){ | }catch(e, s){ | ||||
Logger.error(e, s); | Logger.error(e, s); | ||||
} | } | ||||
@@ -54,6 +55,8 @@ class _GoodsDetailsAppBarWidgetState extends State<GoodsDetailsAppBarWidget> { | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
_endTextColor = HexColor.fromHex(widget?.model?.appBarNameColor ?? '#FFFFFF' ); | |||||
_endBgColor = HexColor.fromHex(widget?.model?.appBarBgColor ?? '#FF4242'); | |||||
// Logger.log('^-^'); | // Logger.log('^-^'); | ||||
return Container( | return Container( | ||||
width: double.infinity, | width: double.infinity, | ||||
@@ -33,7 +33,7 @@ class HomeGoodsListStyleModel { | |||||
}); | }); | ||||
HomeGoodsListStyleModel.fromJson(Map<String, dynamic> json) { | HomeGoodsListStyleModel.fromJson(Map<String, dynamic> json) { | ||||
hotRankIconList = json['hot_rank_icon_list']. cast<String>(); | |||||
hotRankIconList = json['hot_rank_icon_list'].cast<String>(); | |||||
topMargin = json['top_margin']; | topMargin = json['top_margin']; | ||||
listColumn = json['list_column']; | listColumn = json['list_column']; | ||||
leftRighMargin = json['left_righ_margin']; | leftRighMargin = json['left_righ_margin']; | ||||
@@ -127,7 +127,7 @@ class _MineDataWidgetState extends State<MineDataWidget> { | |||||
), | ), | ||||
), | ), | ||||
Text( | Text( | ||||
widget?.profile?.gridViews[0]?.value ?? "¥0", | |||||
EmptyUtil.isEmpty(widget?.profile?.gridViews) ? '¥0' : widget?.profile?.gridViews[0]?.value ?? "¥0", | |||||
style: TextStyle( | style: TextStyle( | ||||
fontSize: 18, | fontSize: 18, | ||||
fontWeight: FontWeight.w800, | fontWeight: FontWeight.w800, | ||||
@@ -158,8 +158,8 @@ class _MineDataWidgetState extends State<MineDataWidget> { | |||||
), | ), | ||||
Center( | Center( | ||||
child: Text( | child: Text( | ||||
_style.cashBtn.btnText, | |||||
style: TextStyle(fontSize: 12, color: HexColor.fromHex(_style.cashBtn.btnTextColor)), | |||||
_style?.cashBtn?.btnText ?? '', | |||||
style: TextStyle(fontSize: 12, color: HexColor.fromHex(_style?.cashBtn?.btnTextColor)), | |||||
), | ), | ||||
) | ) | ||||
], | ], | ||||
@@ -167,7 +167,7 @@ class _MineDataWidgetState extends State<MineDataWidget> { | |||||
), | ), | ||||
behavior: HitTestBehavior.opaque, | behavior: HitTestBehavior.opaque, | ||||
onTap: () { | onTap: () { | ||||
RouterUtil.route(_style.cashBtn, _style.cashBtn.toJson(), context); | |||||
RouterUtil.route(_style?.cashBtn, _style?.cashBtn?.toJson(), context); | |||||
}, | }, | ||||
) | ) | ||||
], | ], | ||||
@@ -26,9 +26,13 @@ class MineHeaderBloc extends BlocBase { | |||||
Logger.log("我的数据:"+ json.encode(data)); | Logger.log("我的数据:"+ json.encode(data)); | ||||
_profile = MineProfileModel.fromJson(Map<String, dynamic>.from(data)); | _profile = MineProfileModel.fromJson(Map<String, dynamic>.from(data)); | ||||
_profileController.add(_profile); | _profileController.add(_profile); | ||||
///信用卡初始化 | |||||
///只有在用户数据被加载时调用 | |||||
Application.doStringMethod("initCreditCard"); | |||||
}, onError: (err) { | }, onError: (err) { | ||||
_profile = MineProfileModel(); | _profile = MineProfileModel(); | ||||
_profileController.add(_profile); | _profileController.add(_profile); | ||||
}); | }); | ||||
} | } | ||||
} | } |
@@ -68,11 +68,12 @@ class _RestartWidgetState extends State<RestartWidget> { | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
const bool inProduction = const bool.fromEnvironment("dart.vm.product"); | |||||
if (!inProduction) { | |||||
///debug阶段可重启 | |||||
isFirst=true; | |||||
} | |||||
// const bool inProduction = const bool.fromEnvironment("dart.vm.product"); | |||||
// if (!inProduction) { | |||||
// ///debug阶段可重启 | |||||
// isFirst=true; | |||||
// } | |||||
isFirst = true; | |||||
return StreamBuilder(stream: outData,builder: (context,asyn){ | return StreamBuilder(stream: outData,builder: (context,asyn){ | ||||
if(asyn.data==null&&!isFirst){ | if(asyn.data==null&&!isFirst){ | ||||
return Scaffold( | return Scaffold( | ||||
@@ -82,6 +83,7 @@ class _RestartWidgetState extends State<RestartWidget> { | |||||
isFirst=false; | isFirst=false; | ||||
return widget?.child; | return widget?.child; | ||||
} | } | ||||
// return widget?.child; | |||||
}); | }); | ||||
} | } | ||||
@@ -278,9 +278,9 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
} else { | } else { | ||||
var type = SSDKContentTypes.auto; | var type = SSDKContentTypes.auto; | ||||
if (widget?.model?.image?.length != 0 && widget.model?.url != null) { | |||||
if ((widget?.model?.image?.length ?? 0) != 0 && widget.model?.url != null) { | |||||
type = SSDKContentTypes.webpage; | type = SSDKContentTypes.webpage; | ||||
} else if (widget?.model?.image?.length != 0) { | |||||
} else if ((widget?.model?.image?.length ?? 0) != 0) { | |||||
type = SSDKContentTypes.image; | type = SSDKContentTypes.image; | ||||
} else if (widget?.model?.title != null || widget.model?.content != null) { | } else if (widget?.model?.title != null || widget.model?.content != null) { | ||||
type = SSDKContentTypes.text; | type = SSDKContentTypes.text; | ||||
@@ -24,7 +24,7 @@ dependencies: | |||||
ref: '0.0.1' | ref: '0.0.1' | ||||
image_picker: ^0.6.7+3 | image_picker: ^0.6.7+3 | ||||
tab_indicator_styler: 1.0.0 | tab_indicator_styler: 1.0.0 | ||||
connectivity: ^0.4.9+3 | |||||
image_cropper: | image_cropper: | ||||
git: | git: | ||||
url: 'http://192.168.0.138:3000/FnuoOS_Flutter_Components/Image_Cropper.git' | url: 'http://192.168.0.138:3000/FnuoOS_Flutter_Components/Image_Cropper.git' | ||||
@@ -60,8 +60,8 @@ dependencies: | |||||
permission_handler_platform_interface: "2.0.1" | permission_handler_platform_interface: "2.0.1" | ||||
flutter_user_agent: ^1.2.2 | flutter_user_agent: ^1.2.2 | ||||
# 特效底部 | |||||
# convex_bottom_bar: ^2.7.1+2 | |||||
dev_dependencies: | dev_dependencies: | ||||
flutter_test: | flutter_test: | ||||