| @@ -205,6 +205,12 @@ | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.2" | |||
| }, | |||
| { | |||
| "name": "flutter_alibc", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_alibc-0.0.15", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "flutter_bloc", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_bloc-4.0.1", | |||
| @@ -343,6 +349,12 @@ | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.0" | |||
| }, | |||
| { | |||
| "name": "jdsdk", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/jdsdk-0.0.1", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "js", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/js-0.6.2", | |||
| @@ -463,6 +475,12 @@ | |||
| "packageUri": "lib/", | |||
| "languageVersion": "1.24" | |||
| }, | |||
| { | |||
| "name": "platform_detect", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/platform_detect-1.4.0", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.4" | |||
| }, | |||
| { | |||
| "name": "plugin_platform_interface", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/plugin_platform_interface-1.0.2", | |||
| @@ -655,6 +673,42 @@ | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.0" | |||
| }, | |||
| { | |||
| "name": "url_launcher", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-5.6.0", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "url_launcher_linux", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-0.0.1+1", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "url_launcher_macos", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-0.0.1+8", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "url_launcher_platform_interface", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_platform_interface-1.0.8", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "url_launcher_web", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-0.1.3+2", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.2" | |||
| }, | |||
| { | |||
| "name": "url_launcher_windows", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-0.0.1+1", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.1" | |||
| }, | |||
| { | |||
| "name": "uuid", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/uuid-2.2.2", | |||
| @@ -679,6 +733,12 @@ | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.0" | |||
| }, | |||
| { | |||
| "name": "webview_flutter", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter-0.3.22+1", | |||
| "packageUri": "lib/", | |||
| "languageVersion": "2.7" | |||
| }, | |||
| { | |||
| "name": "xdg_directories", | |||
| "rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/xdg_directories-0.1.0", | |||
| @@ -710,7 +770,7 @@ | |||
| "languageVersion": "2.1" | |||
| } | |||
| ], | |||
| "generated": "2020-09-17T12:08:09.612292Z", | |||
| "generated": "2020-09-19T06:19:07.938950Z", | |||
| "generator": "pub", | |||
| "generatorVersion": "2.7.2" | |||
| } | |||
| @@ -1,4 +1,5 @@ | |||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
| xmlns:tools="http://schemas.android.com/tools" | |||
| package="cn.zhios.zhiying_base_widget_example"> | |||
| <!-- io.flutter.app.FlutterApplication is an android.app.Application that | |||
| calls FlutterMain.startInitialization(this); in its onCreate method. | |||
| @@ -8,7 +9,8 @@ | |||
| <application | |||
| android:name="io.flutter.app.FlutterApplication" | |||
| android:label="zhiying_base_widget_example" | |||
| android:icon="@mipmap/ic_launcher"> | |||
| android:icon="@mipmap/ic_launcher" | |||
| tools:replace="android:label"> | |||
| <activity | |||
| android:name=".MainActivity" | |||
| android:launchMode="singleTop" | |||
| @@ -17,8 +19,8 @@ | |||
| android:hardwareAccelerated="true" | |||
| android:windowSoftInputMode="adjustResize"> | |||
| <intent-filter> | |||
| <action android:name="android.intent.action.MAIN"/> | |||
| <category android:name="android.intent.category.LAUNCHER"/> | |||
| <action android:name="android.intent.action.MAIN" /> | |||
| <category android:name="android.intent.category.LAUNCHER" /> | |||
| </intent-filter> | |||
| </activity> | |||
| <!-- Don't delete the meta-data below. | |||
| @@ -1,6 +1,6 @@ | |||
| # Uncomment this line to define a global platform for your project | |||
| # platform :ios, '9.0' | |||
| source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git' | |||
| # CocoaPods analytics sends network stats synchronously affecting flutter build latency. | |||
| ENV['COCOAPODS_DISABLE_STATS'] = 'true' | |||
| @@ -1,7 +1,22 @@ | |||
| PODS: | |||
| - AliAuthSDK (1.1.0.41-bc) | |||
| - AlibcTradeSDK (4.0.1.6) | |||
| - AliLinkPartnerSDK (4.0.0.24) | |||
| - BCUserTrack (5.2.0.18-appkeys): | |||
| - UTDID | |||
| - device_info (0.0.1): | |||
| - Flutter | |||
| - Flutter (1.0.0) | |||
| - flutter_alibc (0.0.1): | |||
| - AliAuthSDK (= 1.1.0.41-bc) | |||
| - AlibcTradeSDK (= 4.0.1.6) | |||
| - AliLinkPartnerSDK (= 4.0.0.24) | |||
| - BCUserTrack (= 5.2.0.18-appkeys) | |||
| - Flutter | |||
| - mtopSDK (= 3.0.0.3-BC) | |||
| - securityGuard (= 5.4.191) | |||
| - UTDID (= 1.1.0.16) | |||
| - WindVane (= 8.5.0.46-bc11) | |||
| - flutter_native_image (0.0.1): | |||
| - Flutter | |||
| - flutter_plugin_android_lifecycle (0.0.1): | |||
| @@ -16,6 +31,9 @@ PODS: | |||
| - TOCropViewController (~> 2.5.2) | |||
| - image_picker (0.0.1): | |||
| - Flutter | |||
| - jdsdk (0.0.1): | |||
| - Flutter | |||
| - mtopSDK (3.0.0.3-BC) | |||
| - package_info (0.0.1): | |||
| - Flutter | |||
| - path_provider (0.0.1): | |||
| @@ -24,6 +42,7 @@ PODS: | |||
| - Flutter | |||
| - path_provider_macos (0.0.1): | |||
| - Flutter | |||
| - securityGuard (5.4.191) | |||
| - shared_preferences (0.0.1): | |||
| - Flutter | |||
| - shared_preferences_linux (0.0.1): | |||
| @@ -36,6 +55,26 @@ PODS: | |||
| - Flutter | |||
| - FMDB (~> 2.7.2) | |||
| - TOCropViewController (2.5.3) | |||
| - url_launcher (0.0.1): | |||
| - Flutter | |||
| - url_launcher_linux (0.0.1): | |||
| - Flutter | |||
| - url_launcher_macos (0.0.1): | |||
| - Flutter | |||
| - url_launcher_web (0.0.1): | |||
| - Flutter | |||
| - url_launcher_windows (0.0.1): | |||
| - Flutter | |||
| - UTDID (1.1.0.16) | |||
| - webview_flutter (0.0.1): | |||
| - Flutter | |||
| - WindVane (8.5.0.46-bc11): | |||
| - WindVane/Basic (= 8.5.0.46-bc11) | |||
| - WindVane/Core (= 8.5.0.46-bc11) | |||
| - WindVane/WindVane (= 8.5.0.46-bc11) | |||
| - WindVane/Basic (8.5.0.46-bc11) | |||
| - WindVane/Core (8.5.0.46-bc11) | |||
| - WindVane/WindVane (8.5.0.46-bc11) | |||
| - zhiying_base_widget (0.0.1): | |||
| - Flutter | |||
| - zhiying_comm (0.0.1): | |||
| @@ -44,11 +83,13 @@ PODS: | |||
| DEPENDENCIES: | |||
| - device_info (from `.symlinks/plugins/device_info/ios`) | |||
| - Flutter (from `Flutter`) | |||
| - flutter_alibc (from `.symlinks/plugins/flutter_alibc/ios`) | |||
| - flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`) | |||
| - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) | |||
| - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) | |||
| - image_cropper (from `.symlinks/plugins/image_cropper/ios`) | |||
| - image_picker (from `.symlinks/plugins/image_picker/ios`) | |||
| - jdsdk (from `.symlinks/plugins/jdsdk/ios`) | |||
| - package_info (from `.symlinks/plugins/package_info/ios`) | |||
| - path_provider (from `.symlinks/plugins/path_provider/ios`) | |||
| - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`) | |||
| @@ -58,10 +99,25 @@ DEPENDENCIES: | |||
| - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) | |||
| - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) | |||
| - sqflite (from `.symlinks/plugins/sqflite/ios`) | |||
| - url_launcher (from `.symlinks/plugins/url_launcher/ios`) | |||
| - url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`) | |||
| - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) | |||
| - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) | |||
| - url_launcher_windows (from `.symlinks/plugins/url_launcher_windows/ios`) | |||
| - webview_flutter (from `.symlinks/plugins/webview_flutter/ios`) | |||
| - zhiying_base_widget (from `.symlinks/plugins/zhiying_base_widget/ios`) | |||
| - zhiying_comm (from `.symlinks/plugins/zhiying_comm/ios`) | |||
| SPEC REPOS: | |||
| http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git: | |||
| - AliAuthSDK | |||
| - AlibcTradeSDK | |||
| - AliLinkPartnerSDK | |||
| - BCUserTrack | |||
| - mtopSDK | |||
| - securityGuard | |||
| - UTDID | |||
| - WindVane | |||
| trunk: | |||
| - FMDB | |||
| - TOCropViewController | |||
| @@ -71,6 +127,8 @@ EXTERNAL SOURCES: | |||
| :path: ".symlinks/plugins/device_info/ios" | |||
| Flutter: | |||
| :path: Flutter | |||
| flutter_alibc: | |||
| :path: ".symlinks/plugins/flutter_alibc/ios" | |||
| flutter_native_image: | |||
| :path: ".symlinks/plugins/flutter_native_image/ios" | |||
| flutter_plugin_android_lifecycle: | |||
| @@ -81,6 +139,8 @@ EXTERNAL SOURCES: | |||
| :path: ".symlinks/plugins/image_cropper/ios" | |||
| image_picker: | |||
| :path: ".symlinks/plugins/image_picker/ios" | |||
| jdsdk: | |||
| :path: ".symlinks/plugins/jdsdk/ios" | |||
| package_info: | |||
| :path: ".symlinks/plugins/package_info/ios" | |||
| path_provider: | |||
| @@ -99,33 +159,61 @@ EXTERNAL SOURCES: | |||
| :path: ".symlinks/plugins/shared_preferences_web/ios" | |||
| sqflite: | |||
| :path: ".symlinks/plugins/sqflite/ios" | |||
| url_launcher: | |||
| :path: ".symlinks/plugins/url_launcher/ios" | |||
| url_launcher_linux: | |||
| :path: ".symlinks/plugins/url_launcher_linux/ios" | |||
| url_launcher_macos: | |||
| :path: ".symlinks/plugins/url_launcher_macos/ios" | |||
| url_launcher_web: | |||
| :path: ".symlinks/plugins/url_launcher_web/ios" | |||
| url_launcher_windows: | |||
| :path: ".symlinks/plugins/url_launcher_windows/ios" | |||
| webview_flutter: | |||
| :path: ".symlinks/plugins/webview_flutter/ios" | |||
| zhiying_base_widget: | |||
| :path: ".symlinks/plugins/zhiying_base_widget/ios" | |||
| zhiying_comm: | |||
| :path: ".symlinks/plugins/zhiying_comm/ios" | |||
| SPEC CHECKSUMS: | |||
| AliAuthSDK: 7018e8f3c8be3382e60f69d3b517c7de34c351e0 | |||
| AlibcTradeSDK: 9a3e7af6cd648dd1f85684e82694c213fe48dad2 | |||
| AliLinkPartnerSDK: c5778cdfdcee7bfe342238d39a77766184d36a46 | |||
| BCUserTrack: 49251c6fb7c65cbbc221a492bbd3f3e142f1fb0f | |||
| device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 | |||
| Flutter: 0e3d915762c693b495b44d77113d4970485de6ec | |||
| flutter_alibc: 0e2a29e7c1de759672d87a260051240d209964b9 | |||
| flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe | |||
| flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 | |||
| fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b | |||
| FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | |||
| image_cropper: 3c16d7651730ffe85897f5a1c4e2547e6b54989a | |||
| image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 | |||
| jdsdk: 2ca38c7e3a2dfb0f3641425f8fd1e8d20357693f | |||
| mtopSDK: d6fdf81730342a69be920b576541c7bb81a683d5 | |||
| package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 | |||
| path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c | |||
| path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4 | |||
| path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 | |||
| securityGuard: 9c04c44a3b663f36e15064042abfc107fa07133c | |||
| shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d | |||
| shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78 | |||
| shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 | |||
| shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 | |||
| sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0 | |||
| TOCropViewController: 20a14b6a7a098308bf369e7c8d700dc983a974e6 | |||
| url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef | |||
| url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0 | |||
| url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 | |||
| url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c | |||
| url_launcher_windows: 683d7c283894db8d1914d3ab2223b20cc1ad95d5 | |||
| UTDID: c28855683c5ea2e77e597cb14609328f7d470d6e | |||
| webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 | |||
| WindVane: 56e096abae757397ccd3accb66a959f3ffcbf949 | |||
| zhiying_base_widget: 00868c0d2723a3a425c18b27204fbc67e3f7e59d | |||
| zhiying_comm: 0daef4a480f4f4dbea3e11b615f3264aafea924b | |||
| PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271 | |||
| PODFILE CHECKSUM: 9d32dfabb033b26968c1f3c861e00bd0fcc5665d | |||
| COCOAPODS: 1.9.3 | |||
| @@ -0,0 +1,107 @@ | |||
| import 'package:flutter/cupertino.dart'; | |||
| import 'package:flutter/material.dart'; | |||
| import 'package:zhiying_base_widget/pages/orders_page/views/order_item_widget.dart'; | |||
| import 'package:zhiying_base_widget/pages/orders_page/views/order_serch_widget.dart'; | |||
| import 'package:zhiying_base_widget/pages/orders_page/views/order_tabbar_widget.dart'; | |||
| // 订单页面 | |||
| class OrdersPage extends StatefulWidget { | |||
| final Map<String, dynamic> data; | |||
| const OrdersPage( | |||
| this.data, { | |||
| Key key, | |||
| }) : super(key: key); | |||
| @override | |||
| _OrdersPageState createState() => _OrdersPageState(); | |||
| } | |||
| class _OrdersPageState extends State<OrdersPage> { | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Scaffold( | |||
| backgroundColor: Color(0xfff9f9f9), | |||
| appBar: _createNav(), | |||
| body: SafeArea( | |||
| child: _OrdersContainer(), | |||
| ), | |||
| ); | |||
| } | |||
| // 导航栏 | |||
| Widget _createNav() { | |||
| return CupertinoNavigationBar( | |||
| border: Border( | |||
| bottom: BorderSide( | |||
| width: 0.0, // One physical pixel. | |||
| style: BorderStyle.none, | |||
| ), | |||
| ), | |||
| backgroundColor: Colors.white, | |||
| leading: Navigator.canPop(context) | |||
| ? GestureDetector( | |||
| child: Container( | |||
| padding: EdgeInsets.zero, | |||
| child: Icon( | |||
| Icons.arrow_back_ios, | |||
| size: 20, | |||
| ), | |||
| ), | |||
| onTap: () { | |||
| if (Navigator.canPop(context)) { | |||
| Navigator.pop(context); | |||
| } | |||
| }, | |||
| ) | |||
| : Container(), | |||
| middle: Text( | |||
| '我的订单', | |||
| style: TextStyle( | |||
| fontSize: 15, | |||
| color: Color(0xff333333), | |||
| ), | |||
| ), | |||
| ); | |||
| } | |||
| } | |||
| class _OrdersContainer extends StatefulWidget { | |||
| @override | |||
| _OrdersContainerState createState() => _OrdersContainerState(); | |||
| } | |||
| class _OrdersContainerState extends State<_OrdersContainer> | |||
| with TickerProviderStateMixin { | |||
| TabController _tabController; | |||
| @override | |||
| void initState() { | |||
| _tabController = TabController(length: 6, vsync: this); | |||
| super.initState(); | |||
| } | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Column( | |||
| children: <Widget>[ | |||
| OrderSearchWidget(), | |||
| OrderTabbarWidget(_tabController, [ | |||
| '全部', | |||
| '已付款', | |||
| '已结算', | |||
| '已失效', | |||
| '全部', | |||
| '已付款', | |||
| ]), | |||
| Expanded( | |||
| child: ListView.builder( | |||
| itemCount: 20, | |||
| itemBuilder: (context, index) { | |||
| return OrderItemWidget(); | |||
| }), | |||
| ) | |||
| ], | |||
| ); | |||
| } | |||
| } | |||
| @@ -0,0 +1,122 @@ | |||
| import 'package:flutter/material.dart'; | |||
| class OrderItemWidget extends StatelessWidget { | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container( | |||
| margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 4, bottom: 4), | |||
| padding: EdgeInsets.all(10), | |||
| width: double.infinity, | |||
| decoration: BoxDecoration( | |||
| borderRadius: BorderRadius.circular(7.5), color: Colors.white), | |||
| child: Column( | |||
| children: <Widget>[ | |||
| _createHeader(), | |||
| _createCenter(), | |||
| ], | |||
| ), | |||
| ); | |||
| } | |||
| Widget _createHeader() { | |||
| return Padding( | |||
| padding: const EdgeInsets.only(bottom: 8), | |||
| child: Row( | |||
| children: <Widget>[ | |||
| Expanded( | |||
| child: Text( | |||
| '粉丝订单:Mickey', | |||
| maxLines: 1, | |||
| style: TextStyle( | |||
| fontSize: 12, | |||
| fontWeight: FontWeight.bold, | |||
| color: Color(0xff333333), | |||
| ), | |||
| ), | |||
| ), | |||
| Text( | |||
| '待结算', | |||
| maxLines: 1, | |||
| style: TextStyle( | |||
| fontSize: 12, | |||
| fontWeight: FontWeight.bold, | |||
| color: Color(0xff999999), | |||
| ), | |||
| ), | |||
| ], | |||
| ), | |||
| ); | |||
| } | |||
| Widget _createCenter() { | |||
| return Row( | |||
| crossAxisAlignment: CrossAxisAlignment.start, | |||
| children: <Widget>[ | |||
| Container( | |||
| margin: EdgeInsets.only(right: 10), | |||
| width: 96, | |||
| height: 96, | |||
| color: Colors.black12, | |||
| ), | |||
| Expanded( | |||
| child: Column( | |||
| crossAxisAlignment: CrossAxisAlignment.start, | |||
| children: <Widget>[ | |||
| _createTitle(), | |||
| _creteText('订单编号:15487945211587'), | |||
| _creteText('下单时间:2020-06-18 17:11:15'), | |||
| _creteText('完成时间:2020-06-18 17:11:15'), | |||
| ], | |||
| ), | |||
| ) | |||
| ], | |||
| ); | |||
| } | |||
| Widget _createTitle() { | |||
| List<InlineSpan> list = List(); | |||
| list.add(WidgetSpan( | |||
| child: Container( | |||
| padding: EdgeInsets.only(left: 2, right: 2, top: 3, bottom: 3), | |||
| margin: EdgeInsets.only(right: 4), | |||
| child: Text( | |||
| '类型', | |||
| style: TextStyle( | |||
| fontSize: 9, | |||
| height: 1, | |||
| color: Colors.purpleAccent, | |||
| ), | |||
| ), | |||
| decoration: BoxDecoration( | |||
| color: Colors.amber, borderRadius: BorderRadius.circular(2.5)), | |||
| ), | |||
| )); | |||
| list.add( | |||
| TextSpan( | |||
| text: '桶装水抽水器饮水机泵器动桶装水抽水器饮水机泵器动', | |||
| style: TextStyle( | |||
| fontSize: 15, | |||
| color: Color(0xff333333), | |||
| fontWeight: FontWeight.bold), | |||
| ), | |||
| ); | |||
| return RichText( | |||
| maxLines: 1, | |||
| overflow: TextOverflow.ellipsis, | |||
| text: TextSpan(children: list), | |||
| ); | |||
| } | |||
| Widget _creteText(String text) { | |||
| return Padding( | |||
| padding: EdgeInsets.only(top: 4), | |||
| child: Text( | |||
| text, | |||
| style: TextStyle( | |||
| fontSize: 10, | |||
| color: Color(0xff999999), | |||
| ), | |||
| ), | |||
| ); | |||
| } | |||
| } | |||
| @@ -0,0 +1,23 @@ | |||
| import 'package:flutter/cupertino.dart'; | |||
| import 'package:flutter/material.dart'; | |||
| class OrderSearchWidget extends StatelessWidget { | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container( | |||
| width: double.infinity, | |||
| height: 40, | |||
| padding: EdgeInsets.only(left: 12.5, right: 12.5, top: 4, bottom: 4), | |||
| color: Colors.white, | |||
| child: CupertinoTextField( | |||
| textAlign: TextAlign.center, | |||
| textInputAction: TextInputAction.search, | |||
| padding: EdgeInsets.only(left: 12, right: 12), | |||
| decoration: BoxDecoration( | |||
| borderRadius: BorderRadius.circular(16), color: Color(0xfff9f9f9)), | |||
| placeholder: '搜索商品标题/粉丝姓名/订单号', | |||
| placeholderStyle: TextStyle(color: Color(0xff999999), fontSize: 14), | |||
| ), | |||
| ); | |||
| } | |||
| } | |||
| @@ -0,0 +1,59 @@ | |||
| import 'package:flutter/material.dart'; | |||
| class OrderTabbarWidget extends StatelessWidget { | |||
| final TabController controller; | |||
| final List<String> titles; | |||
| const OrderTabbarWidget( | |||
| this.controller, | |||
| this.titles, { | |||
| Key key, | |||
| }) : super(key: key); | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container( | |||
| width: double.infinity, | |||
| height: 40, | |||
| color: Colors.white, | |||
| child: Row( | |||
| children: <Widget>[ | |||
| Expanded( | |||
| child: TabBar( | |||
| controller: controller, | |||
| isScrollable: true, | |||
| indicatorSize: TabBarIndicatorSize.label, | |||
| tabs: titles | |||
| .map((title) => OrderTabbarItemWidget(title: title)) | |||
| .toList(), | |||
| ), | |||
| ), | |||
| Container( | |||
| width: 40, | |||
| height: 40, | |||
| child: Icon( | |||
| Icons.filter_4, | |||
| size: 14, | |||
| ), | |||
| ) | |||
| ], | |||
| )); | |||
| } | |||
| } | |||
| class OrderTabbarItemWidget extends StatelessWidget { | |||
| final String title; | |||
| const OrderTabbarItemWidget({Key key, this.title}) : super(key: key); | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container( | |||
| height: 26, | |||
| child: Text( | |||
| title, | |||
| style: TextStyle(color: Color(0xFFFF4242)), | |||
| ), | |||
| ); | |||
| } | |||
| } | |||
| @@ -1,8 +1,10 @@ | |||
| import 'package:zhiying_base_widget/pages/home_page/home_page.dart'; | |||
| import 'package:zhiying_base_widget/pages/main_page/main_page.dart'; | |||
| import 'package:zhiying_base_widget/pages/mine_detail_page/mine_detail_page.dart'; | |||
| import 'package:zhiying_base_widget/pages/orders_page/orders_page.dart'; | |||
| import 'package:zhiying_base_widget/pages/setting_page/setting_page.dart'; | |||
| import 'package:zhiying_base_widget/pages/wallet_page/wallet_page.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_auth/home_auth_creater.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_banner/home_banner_creater.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_banner/home_banner_widget.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_goods/home_goods_creater.dart'; | |||
| @@ -14,7 +16,6 @@ import 'package:zhiying_base_widget/widgets/mine/mine_nav/mine_nav_creater.dart' | |||
| import 'package:zhiying_base_widget/widgets/mine/mine_quick_entry/mine_quick_entry.dart'; | |||
| import 'package:zhiying_base_widget/widgets/others/normal_nav/normal_nav_creater.dart'; | |||
| import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data.dart'; | |||
| import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/wallet_detail.dart'; | |||
| import 'package:zhiying_base_widget/widgets/wallet/wallet_income/wallet_income.dart'; | |||
| import 'package:zhiying_comm/util/defalut_widget_creater.dart'; | |||
| import 'package:zhiying_comm/zhiying_comm.dart'; | |||
| @@ -42,6 +43,7 @@ class BaseWidgetRegister { | |||
| PageFactory.regist( | |||
| 'pub.flutter.profile_settings', (model) => MineDetailPage()); | |||
| PageFactory.regist('pub.flutter.settings', (model) => SettingPage(model)); | |||
| PageFactory.regist('pub.flutter.my_orders', (model) => OrdersPage(model)); | |||
| } | |||
| // 注册控件 | |||
| @@ -65,6 +67,7 @@ class BaseWidgetRegister { | |||
| // /// 不可以滚动banner | |||
| WidgetFactory.regist('index_banner_one', HomeBannerCreater()); | |||
| WidgetFactory.regist('index_banner_two', HomeBannerCreater()); | |||
| WidgetFactory.regist('index_taobao_auth_tip', HomeAuthCreater()); | |||
| // ==================== 个人中心 | |||
| WidgetFactory.regist('profile_appbar', MineNavCreater()); | |||
| @@ -84,8 +87,9 @@ class BaseWidgetRegister { | |||
| // ==================== 钱包 | |||
| WidgetFactory.regist( | |||
| 'wallet_data', DefaultWidgetCreater((model) => WalletData())); | |||
| WidgetFactory.regist( | |||
| 'wallet_detail', DefaultWidgetCreater((model) => WalletDetail())); | |||
| // WidgetFactory.regist( | |||
| // 'wallet_detail', DefaultWidgetCreater((model) => WalletDetail())); | |||
| WidgetFactory.regist('wallet_detail', HomeAuthCreater()); | |||
| WidgetFactory.regist( | |||
| 'wallet_income', DefaultWidgetCreater((model) => WalletIncome())); | |||
| @@ -0,0 +1,65 @@ | |||
| import 'package:flutter/material.dart'; | |||
| import 'package:zhiying_comm/zhiying_comm.dart'; | |||
| class HomeAuth extends StatelessWidget { | |||
| final Map<String, dynamic> data; | |||
| const HomeAuth(this.data, {Key key}) : super(key: key); | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container( | |||
| height: 34, | |||
| width: double.infinity, | |||
| margin: EdgeInsets.only(left: 12, right: 12, top: 4, bottom: 4), | |||
| decoration: BoxDecoration( | |||
| color: Colors.white, | |||
| borderRadius: BorderRadius.circular(17), | |||
| boxShadow: [ | |||
| BoxShadow( | |||
| offset: Offset(2, 1), //x,y轴 | |||
| color: Color(0x4d767676), //投影颜色 | |||
| blurRadius: 5 //投影距离 | |||
| ) | |||
| ]), | |||
| child: Row( | |||
| children: <Widget>[ | |||
| Container( | |||
| margin: EdgeInsets.only(left: 10, right: 8), | |||
| width: 20, | |||
| height: 20, | |||
| color: Colors.redAccent, | |||
| ), | |||
| Expanded( | |||
| child: Text( | |||
| '一键授权淘宝权限,让购物更轻松', | |||
| maxLines: 1, | |||
| style: TextStyle(fontSize: 12, fontWeight: FontWeight.bold), | |||
| ), | |||
| ), | |||
| GestureDetector( | |||
| child: Container( | |||
| padding: EdgeInsets.only(left: 12, right: 12, top: 3, bottom: 3), | |||
| margin: EdgeInsets.only(left: 8, right: 8), | |||
| decoration: BoxDecoration( | |||
| color: Colors.redAccent, | |||
| borderRadius: BorderRadius.circular(20)), | |||
| child: Text( | |||
| '点击授权', | |||
| style: TextStyle(fontSize: 12, color: Colors.white), | |||
| ), | |||
| ), | |||
| onTap: () async { | |||
| bool isAuth = await TaobaoAuth.isAuth(); | |||
| if (!isAuth) { | |||
| TaobaoAuth.auth(context); | |||
| } else { | |||
| Logger.debug('您已经授权过了'); | |||
| } | |||
| }, | |||
| ), | |||
| ], | |||
| ), | |||
| ); | |||
| } | |||
| } | |||
| @@ -0,0 +1,21 @@ | |||
| import 'package:flutter/material.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_auth/home_auth_delegate.dart'; | |||
| import 'package:zhiying_comm/zhiying_comm.dart'; | |||
| class HomeAuthCreater extends WidgetCreater { | |||
| @override | |||
| List<Widget> createWidgets(Map<String, dynamic> model) { | |||
| return [ | |||
| SliverPersistentHeader( | |||
| pinned: true, | |||
| floating: false, | |||
| delegate: HomeAuthDelegate(model), | |||
| ), | |||
| ]; | |||
| } | |||
| @override | |||
| bool isSliverChild() { | |||
| return true; | |||
| } | |||
| } | |||
| @@ -0,0 +1,26 @@ | |||
| import 'package:flutter/cupertino.dart'; | |||
| import 'package:flutter/material.dart'; | |||
| import 'package:zhiying_base_widget/widgets/home/home_auth/home_auth.dart'; | |||
| class HomeAuthDelegate extends SliverPersistentHeaderDelegate { | |||
| final Map<String, dynamic> data; | |||
| HomeAuthDelegate(this.data); | |||
| @override | |||
| Widget build( | |||
| BuildContext context, double shrinkOffset, bool overlapsContent) { | |||
| print('${shrinkOffset.toString()} ${overlapsContent.toString()}'); | |||
| return HomeAuth(data); | |||
| } | |||
| @override | |||
| double get maxExtent => 40; | |||
| @override | |||
| double get minExtent => 40; | |||
| @override | |||
| bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) => | |||
| false; // 如果内容需要更新,设置为true | |||
| } | |||
| @@ -16,6 +16,7 @@ class HomeGoodsHeaderDelegate extends SliverPersistentHeaderDelegate { | |||
| @override | |||
| Widget build( | |||
| BuildContext context, double shrinkOffset, bool overlapsContent) { | |||
| print('${shrinkOffset.toString()} ${overlapsContent.toString()}'); | |||
| return child; | |||
| } | |||
| @@ -0,0 +1,8 @@ | |||
| import 'package:flutter/material.dart'; | |||
| class TaobaoAuthOverlay extends StatelessWidget { | |||
| @override | |||
| Widget build(BuildContext context) { | |||
| return Container(); | |||
| } | |||
| } | |||