From 58c2b25225aafafca60862fcba6cc2611efd2196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=8D=8E=E8=BD=A9?= <646903573@qq.com> Date: Tue, 13 Oct 2020 17:43:22 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=83=AD=E6=A6=9C=20-=20=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AF=B9=E6=8E=A5=202.=E9=92=B1=E5=8C=85=20-?= =?UTF-8?q?=20=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/android/app/build.gradle | 28 +- .../android/app/src/main/AndroidManifest.xml | 53 +- .../MainActivity.java | 3 +- .../TestActivity.java | 108 ++++ .../WebActivity.java | 521 ++++++++++++++++++ .../app/src/main/res/drawable/bg_launcher.png | Bin 0 -> 288220 bytes .../main/res/drawable/launch_background.xml | 9 +- .../{yw_1222.jpg => yw_1222_baichuan.jpg} | Bin .../app/src/main/res/layout/activity_test.xml | 26 + .../app/src/main/res/layout/activity_web.xml | 14 + example/android/build.gradle | 4 + .../intellect_search_goods_dialog.dart | 38 +- .../model/intellect_dialog_data_model.dart | 1 + lib/dialog/tip_dialog/tip_dialog.dart | 71 +++ .../hot_ranking_page/hot_ranking_page.dart | 147 ++++- .../hot_ranking_page_bloc.dart | 51 +- .../hot_ranking_page/hot_ranking_page_sk.dart | 91 +++ lib/pages/wallet_page/wallet_page.dart | 72 +-- lib/pages/wallet_page/wallet_page_bloc.dart | 18 +- lib/register.dart | 12 + .../footer/goods_details_footer_widget.dart | 2 +- .../hot_ranking_appbar.dart | 49 ++ .../model/hot_ranking_appbaar_model.dart | 32 ++ lib/widgets/hot_ranking/hot_ranking_bloc.dart | 44 -- .../hot_ranking/hot_ranking_container.dart | 91 --- .../hot_ranking_goods/hot_ranking_goods.dart | 454 ++++++++------- .../hot_ranking_list/hot_ranking_bloc.dart | 87 +++ .../hot_ranking_list/hot_ranking_list.dart | 145 +++++ .../hot_ranking_list_sk.dart} | 1 + .../model/hot_ranking_list_data_model.dart | 82 +++ .../model/hot_ranking_list_model.dart | 211 +++++++ .../hot_ranking/hot_tab_bar/hot_tab_bar.dart | 99 ++++ .../hot_tab_bar/model/hot_tabbar_model.dart | 51 ++ lib/widgets/hot_ranking/hot_test.dart | 6 +- .../wallet/wallet_appbar/wallet_appbar.dart | 7 +- .../wallet_appbar/wallet_appbar_sk.dart | 20 + .../model/wallet_header_model.dart | 54 +- .../wallet/wallet_data/wallet_data.dart | 211 ++++--- .../wallet/wallet_data/wallet_data_bloc.dart | 29 + .../wallet_data/wallet_data_creater.dart | 3 +- .../model/wallet_detail_data_model.dart | 45 ++ .../model/wallet_detail_model.dart | 80 ++- .../wallet/wallet_detail/wallet_detail.dart | 368 +++++++++---- .../wallet_detail/wallet_detail_bloc.dart | 52 ++ .../wallet_detail/wallet_detail_sk.dart | 91 ++- .../wallet_income/wallet_income_sk.dart | 90 +-- 46 files changed, 2914 insertions(+), 757 deletions(-) create mode 100644 example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/TestActivity.java create mode 100644 example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/WebActivity.java create mode 100644 example/android/app/src/main/res/drawable/bg_launcher.png rename example/android/app/src/main/res/drawable/{yw_1222.jpg => yw_1222_baichuan.jpg} (100%) create mode 100644 example/android/app/src/main/res/layout/activity_test.xml create mode 100644 example/android/app/src/main/res/layout/activity_web.xml create mode 100644 lib/dialog/tip_dialog/tip_dialog.dart create mode 100644 lib/pages/hot_ranking_page/hot_ranking_page_sk.dart create mode 100644 lib/widgets/hot_ranking/hot_ranking_appbar/hot_ranking_appbar.dart create mode 100644 lib/widgets/hot_ranking/hot_ranking_appbar/model/hot_ranking_appbaar_model.dart delete mode 100644 lib/widgets/hot_ranking/hot_ranking_bloc.dart delete mode 100644 lib/widgets/hot_ranking/hot_ranking_container.dart create mode 100644 lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_bloc.dart create mode 100644 lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart rename lib/widgets/hot_ranking/{hot_ranking_sk.dart => hot_ranking_list/hot_ranking_list_sk.dart} (98%) create mode 100644 lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart create mode 100644 lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart create mode 100644 lib/widgets/hot_ranking/hot_tab_bar/hot_tab_bar.dart create mode 100644 lib/widgets/hot_ranking/hot_tab_bar/model/hot_tabbar_model.dart create mode 100644 lib/widgets/wallet/wallet_appbar/wallet_appbar_sk.dart create mode 100644 lib/widgets/wallet/wallet_data/wallet_data_bloc.dart create mode 100644 lib/widgets/wallet/wallet_detail/model/wallet_detail_data_model.dart create mode 100644 lib/widgets/wallet/wallet_detail/wallet_detail_bloc.dart diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 42522d5..972d31e 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -34,7 +34,7 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion 29 lintOptions { disable 'InvalidPackage' @@ -44,7 +44,7 @@ android { defaultConfig { applicationId "cn.zhios.zhiying" minSdkVersion 21 - targetSdkVersion 28 + targetSdkVersion 29 versionCode 1 versionName "1.0" aaptOptions.cruncherEnabled = false @@ -157,9 +157,33 @@ flutter { } dependencies { + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + +//登陆 + implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.11@aar' + implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.11@aar' + implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.11@aar' + //安全组件 + implementation 'com.taobao.android:securityguardaar3:5.4.171@aar' + implementation 'com.taobao.android:securitybodyaar3:5.4.99@aar' + implementation 'com.taobao.android:avmpaar3:5.4.36@aar' + implementation 'com.taobao.android:sgmiddletieraar3:5.4.9@aar' + //Mtop + implementation 'com.taobao.android:mtopsdk_allinone_open:3.1.2.5@jar' + //applink + implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar' + //ut + implementation 'com.taobao.android:utdid4all:1.5.2' + implementation 'com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc' + // 电商基础组件 + implementation 'com.alibaba.sdk.android:AlibcTradeCommon: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:fastjson:1.2.41@jar' } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index f488c56..b5031d2 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,40 +1,51 @@ + - + + + + + + + + + + + + + - - - - + + + + + + + - + - - - - - - - + \ No newline at end of file diff --git a/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/MainActivity.java b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/MainActivity.java index ad201e5..e2bb010 100644 --- a/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/MainActivity.java +++ b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/MainActivity.java @@ -38,7 +38,8 @@ public class MainActivity extends FlutterActivity implements ZhiyingFlutterCommN @Override public Map getSetting() { Map map = new HashMap(); - map.put("domain", "http://inapi.izhyin.cn"); //"http://120.76.175.204:8989"); + //map.put("domain", "http://inapi.izhyin.cn"); //"http://120.76.175.204:8989"); + map.put("domain", "http://192.168.0.113:5000"); map.put("master_id", "123456"); map.put("secret_key", "123456"); // map.put("token", "123465"); diff --git a/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/TestActivity.java b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/TestActivity.java new file mode 100644 index 0000000..c552dce --- /dev/null +++ b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/TestActivity.java @@ -0,0 +1,108 @@ +package cn.zhios.zhiying_base_widget_example; + +import androidx.appcompat.app.AppCompatActivity; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.TextView; +import android.widget.Toast; + +import com.alibaba.baichuan.android.trade.AlibcTrade; +import com.alibaba.baichuan.android.trade.AlibcTradeSDK; +import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; +import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback; +import com.alibaba.baichuan.android.trade.model.AlibcShowParams; +import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; +import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; +import com.alibaba.baichuan.trade.biz.login.AlibcLogin; +import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; +import com.alibaba.baichuan.trade.common.utils.AlibcLogger; + +import java.util.HashMap; + +public class TestActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_test); + TextView aliBcTV = findViewById(R.id.tv_aliBc); + AlibcTradeSDK.asyncInit(this.getApplication(), new AlibcTradeInitCallback() { + @Override + public void onSuccess() { + Toast.makeText(TestActivity.this, "阿里百川注册成功", Toast.LENGTH_LONG).show(); + } + + @Override + public void onFailure(int i, String s) { + Toast.makeText(TestActivity.this, "阿里百川注册失败" + s, Toast.LENGTH_LONG).show(); + } + }); + + aliBcTV.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { + @Override + public void onSuccess(int i, String s, String s1) { + Toast.makeText(TestActivity.this, "授权成功" + s, Toast.LENGTH_LONG).show(); + } + + @Override + public void onFailure(int i, String s) { + Toast.makeText(TestActivity.this, "登陆失败" + s, Toast.LENGTH_LONG).show(); + } + }); + } + }); + + findViewById(R.id.tv_open_detail).setOnClickListener(new View.OnClickListener() { + AlibcShowParams showParams = new AlibcShowParams(); + @Override + public void onClick(View v) { +// // 以显示传入url的方式打开页面(第二个参数是套件名称) +// AlibcTrade.openByUrl(TestActivity.this, "", "http://www.izhim.com/comm/tb_callback.php?_ctrl=domain&domain_state=MTI2&domain_return_url=aHR0cDovLzE5Mi4xNjguMC4xMTM6NTAwMC9hcGkvdjEvdGFvYmFvL2F1dGgvY2FsbGJhY2s%2FdGltZT0xNjAyNDk4MjA3", new WebView(TestActivity.this), +// new WebViewClient(), new WebChromeClient(), showParams, +// new AlibcTaokeParams("","",""), new HashMap(), new AlibcTradeCallback() { +// @Override +// public void onTradeSuccess(AlibcTradeResult tradeResult) { +// AlibcLogger.i("", "request success"); +// } +// @Override +// public void onFailure(int code, String msg) { +// AlibcLogger.e("", "code=" + code + ", msg=" + msg); +// if (code == -1) { +// Toast.makeText(TestActivity.this, msg, Toast.LENGTH_SHORT).show(); +// } +// } +// }); + + if (!AlibcLogin.getInstance().isLogin()) { + + AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { + @Override + public void onSuccess(int i, String s, String s1) { + startActivity(new Intent(TestActivity.this,WebActivity.class)); + } + + @Override + public void onFailure(int i, String s) { + Log.d("阿里百川授权失败",s); + } + }); + } else { + startActivity(new Intent(TestActivity.this,WebActivity.class)); + } + + + } + }); + + } +} \ No newline at end of file diff --git a/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/WebActivity.java b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/WebActivity.java new file mode 100644 index 0000000..eb948a6 --- /dev/null +++ b/example/android/app/src/main/java/cn/zhios/zhiying_base_widget_example/WebActivity.java @@ -0,0 +1,521 @@ +package cn.zhios.zhiying_base_widget_example; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.ComponentName; +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; +import android.net.http.SslError; +import android.os.Bundle; +import android.util.Log; +import android.util.Patterns; +import android.view.View; +import android.webkit.GeolocationPermissions; +import android.webkit.JavascriptInterface; +import android.webkit.SslErrorHandler; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceError; +import android.webkit.WebResourceRequest; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Toast; + +import com.alibaba.baichuan.android.trade.AlibcTrade; +import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; +import com.alibaba.baichuan.android.trade.model.AlibcShowParams; +import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; +import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; +import com.alibaba.baichuan.trade.biz.login.AlibcLogin; +import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; + +import java.util.HashMap; +import java.util.Map; + +public class WebActivity extends Activity { + WebView mainWeb; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_web_bc); + mainWeb = findViewById(R.id.webview_main); + mainWeb.getSettings().setJavaScriptEnabled(true); + mainWeb.getSettings().setDomStorageEnabled(true); + mainWeb.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); + mainWeb.getSettings().setLoadWithOverviewMode(true); + mainWeb.getSettings().setAllowFileAccess(true); + mainWeb.getSettings().setDatabaseEnabled(true); + MyWebClient myWebClient = new MyWebClient(); + MyWebChromeClient myWebChromeClient = new MyWebChromeClient(); + mainWeb.setWebViewClient(myWebClient); + mainWeb.setWebChromeClient(myWebChromeClient); + + Map exParams = new HashMap<>();//yhhpass参数 +// AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("", "", ""); +// alibcTaokeParams.pid = SPUtils.getPrefString(mActivity, Pkey.pid, ""); +// alibcTaokeParams.adzoneid = SPUtils.getPrefString(mActivity, Pkey.APP_adzoneId, ""); +// alibcTaokeParams.extraParams = new HashMap<>(); +// alibcTaokeParams.extraParams.put("taokeAppkey", SPUtils.getPrefString(mActivity, Pkey.APP_alliance_appkey, "")); + AlibcShowParams showParams = new AlibcShowParams(); + showParams.setBackUrl("alisdk://"); + AlibcTrade.openByUrl(WebActivity.this, "", "http://www.izhim.com/comm/tb_callback.php?_ctrl=domain&domain_state=MTI2&domain_return_url=aHR0cDovLzE5Mi4xNjguMC4xMTM6NTAwMC9hcGkvdjEvdGFvYmFvL2F1dGgvY2FsbGJhY2s%2FdGltZT0xNjAyNDk4MjA3", + mainWeb, new MyBaichuanWebClient(), new MyWebChromeClient(), showParams, + new AlibcTaokeParams("", "", ""), exParams, new AlibcTradeCallback() { + @Override + public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { + + } + + @Override + public void onFailure(int i, String s) { + + } + }); + } + + //用于百川授权的简化的WebClient + @SuppressLint("AddJavascriptInterface") + private class MyBaichuanWebClient extends WebViewClient { + @SuppressLint("AddJavascriptInterface") + @Override + public boolean shouldOverrideUrlLoading(WebView view, final String url) { + Log.d("百川拦截", url); + //绑定会员关系时获取网页内容关闭网页 + if (url.contains("comm/tbredirect.php") && !url.contains("oauth.m.taobao.com") && url.contains("track_id")) { + Log.d("百川系时获取网页内容关闭网页", url); + mainWeb.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj"); + + } + if (url.contains("oauth.taobao.com/authorize") || url.contains("oauth.m.taobao.com/authorize")) { + //渠道授权改动测试 + Log.d("百川渠道授权改动测试", url); + Map exParams = new HashMap<>();//yhhpass参数 + AlibcShowParams showParams = new AlibcShowParams(); + showParams.setBackUrl("alisdk://"); + AlibcTrade.openByUrl(WebActivity.this, "", url, + mainWeb, new MyBaichuanWebClient(), new MyWebChromeClient(), showParams, + new AlibcTaokeParams("", "", ""), exParams, new AlibcTradeCallback() { + @Override + public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { + Log.d("cg", alibcTradeResult.toString()); + } + + @Override + public void onFailure(int i, String s) { + Log.d("sb", s); + } + }); + } + return super.shouldOverrideUrlLoading(view, url); + } + + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + // WebLoad.setVisibility(View.GONE); + mainWeb.setVisibility(View.GONE); + //开始加载设置为透明 + super.onPageStarted(view, url, favicon); + } + + @Override + public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { + super.onReceivedError(view, request, error); + } + + @Override + public void onPageFinished(WebView view, String url) { + // WebLoad.setVisibility(View.GONE); + mainWeb.setVisibility(View.VISIBLE); + // 获取页面内容 + view.loadUrl("javascript:window.java_obj.showSource(" + + "document.documentElement.innerText);"); + + // 获取解析 + view.loadUrl("javascript:window.java_obj.showDescription(" + + "document.querySelector('meta[name=\"share-description\"]').getAttribute('content')" + + ");"); + // quanyikaText(); + super.onPageFinished(view, url); + } + + //处理 [Android]用WebView访问证书有问题的SSL网页 + //http://blog.sina.com.cn/s/blog_4cd978f90102vrxk.html + @Override + public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { + handler.proceed(); + } + + } + + /** + * 绑定渠道 + */ + private final class InJavaScriptLocalObj { + @JavascriptInterface + public void showSource(final String html) { + //获取网页内容,用于判断是否成功绑定关系id + + try { + if (html.contains("成功")) {//成功 + Toast.makeText(WebActivity.this, "授权成功", Toast.LENGTH_SHORT).show(); + finish(); + } else {//失败 + mainWeb.setAlpha(0); + + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @JavascriptInterface + public void showDescription(String str) { + + + } + } + + + public class MyWebChromeClient extends WebChromeClient { + + private CustomViewCallback mCustomViewCallback; + // 横屏时,显示视频的view + private View mCustomView; + + // 点击全屏按钮时,调用的方法 + @Override + public void onShowCustomView(View view, CustomViewCallback callback) { + super.onShowCustomView(view, callback); + //isFullPlayVedio = true; + //如果view 已经存在,则隐藏 + if (mCustomView != null) { + callback.onCustomViewHidden(); + return; + } + + mCustomView = view; + mCustomView.setVisibility(View.VISIBLE); + mCustomViewCallback = callback; + + + } + + // 取消全屏调用的方法 + @Override + public void onHideCustomView() { + super.onHideCustomView(); + + if (mCustomView == null) { + return; + } + mCustomView.setVisibility(View.GONE); + + mCustomView = null; + + try { + mCustomViewCallback.onCustomViewHidden(); + } catch (Exception e) { + } +// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏 + + + } + + @Override + public void onProgressChanged(WebView view, int newProgress) { + + } + + @Override + public void onReceivedTitle(WebView view, String title) { + super.onReceivedTitle(view, title); +// Logger.wtf("我的url" + view.getUrl()); + String url = view.getUrl(); + if (Patterns.WEB_URL.matcher(title).matches()) { + //网址不显示为标题 + + } else { + + //不是网址 + if (!url.contains("api.ejiayou.com/pages/platform/soulList/index.html")) { + + } + } + } + + @Override + public void onGeolocationPermissionsShowPrompt(final String origin, final GeolocationPermissions.Callback callback) { + + + super.onGeolocationPermissionsShowPrompt(origin, callback); + } + + + // For Android 3.0+ + public void openFileChooser(ValueCallback uploadMsg, String acceptType) { + + + } + + // For Android < 3.0 + public void openFileChooser(ValueCallback uploadMsg) { + openFileChooser(uploadMsg, ""); + } + + // For Android > 4.1.1 + public void openFileChooser(ValueCallback uploadMsg, + String acceptType, String capture) { + + openFileChooser(uploadMsg, acceptType); + } + + // For Android > 5.0 + @Override + public boolean onShowFileChooser(WebView webView, + ValueCallback filePathCallback, + FileChooserParams fileChooserParams) { + + return true; + } + + + } + + @SuppressLint("AddJavascriptInterface") + private class MyWebClient extends WebViewClient { + + @SuppressLint("AddJavascriptInterface") + @Override + public boolean shouldOverrideUrlLoading(WebView view, final String url) { + + if (url.startsWith("tel:")) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); + return true; + } + if (url.startsWith("bdnetdisk:")) { + return true; + } + + + if (url.contains("tmast://")) { + try { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + startActivity(intent); + } catch (Exception e) { + + } + return true; + } + if (url.startsWith("http://ditu.amap.com") || + url.startsWith("https://ditu.amap.com")) { + return true; + } + if (url.contains("oauth.taobao.com/authorize") || url.contains("oauth.m.taobao.com/authorize")) { + +// mainWeb.addJavascriptInterface(new InJavaScriptLocadeUpgralObj(), "java_obj"); + Map exParams = new HashMap<>();//yhhpass参数 +// AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("", "", ""); +// alibcTaokeParams.pid = SPUtils.getPrefString(mActivity, Pkey.pid, ""); +// alibcTaokeParams.adzoneid = SPUtils.getPrefString(mActivity, Pkey.APP_adzoneId, ""); +// alibcTaokeParams.extraParams = new HashMap<>(); +// alibcTaokeParams.extraParams.put("taokeAppkey", SPUtils.getPrefString(mActivity, Pkey.APP_alliance_appkey, "")); + AlibcShowParams showParams = new AlibcShowParams(); + showParams.setBackUrl("alisdk://"); + AlibcTrade.openByUrl(WebActivity.this, "", url, mainWeb, new MyBaichuanWebClient(), new MyWebChromeClient(), showParams, + new AlibcTaokeParams("", "", ""), exParams, new AlibcTradeCallback() { + @Override + public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { + + } + + @Override + public void onFailure(int i, String s) { + + } + }); + } + + if (url.contains("tbopen://") || url.contains("tmall://") || url.contains("taobaotravel://")) { + return true; + } + + + if (url.contains("dianping://")) { + return true; + } + if (url.contains("aliim:")) { + return true; + } + if (url.contains("?mod=appapi&act=miandan_course&ctrl=close")) { + finish(); + return true; + } + if (url.contains("vipma.net/quickapp.html?")) { + return true; + } + + + // 如下方案可在非微信内部WebView的H5页面中调出微信支付 + if (url.startsWith("weixin://wap/pay?")) { + try { + Intent intent = new Intent(); + intent.setAction(Intent.ACTION_VIEW); + intent.setData(Uri.parse(url)); + startActivity(intent); + return true; + } catch (Exception e) { + e.printStackTrace(); + + } + return true; + } + if (url.startsWith("weixin://")) { + try { + Intent intent = new Intent(); + intent.setAction(Intent.ACTION_VIEW); + intent.setData(Uri.parse(url)); + startActivity(intent); + return true; + } catch (Exception e) { + e.printStackTrace(); + + } + return true; + } + if (url.endsWith("native://wechat")) { + Intent intent = new Intent(); + ComponentName cmp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI"); + intent.setAction(Intent.ACTION_MAIN); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setComponent(cmp); + startActivity(intent); + return true; + } + if (url.contains("navite://save#")) { + + } + //不拦截的话绑定淘宝关系id的时候会因为下面login.m.taobao.com的拦截而唤醒手淘授权之后导致不能切换帐号 +// if (url.contains("client_id") && url.contains("login.m.taobao.com/logout.htm?")) { +// view.loadUrl(url); +// return true; +// } + if (url.contains("client_id")) { + view.loadUrl(url); + return true; + } +// if (url.contains("login.m.taobao.com")) { +// if (!AlibcLogin.getInstance().isLogin()) { +// AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { +//// @Override +//// public void onSuccess(int i) { +//// } +// +// @Override +// public void onSuccess(int i, String s, String s1) { +// +// } +// +// @Override +// public void onFailure(int i, String s) { +// } +// }); +// } +// return true; +// } + if (url.contains("maliprod.alipay.com") && !url.contains("confirmGoods.do")) { + AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { + @Override + public void onSuccess(int i, String s, String s1) { + + } + + @Override + public void onFailure(int i, String s) { + + } + }); + } + + if (url.contains("intent://go/ju/webview?")) { + return true; + } +// if (url.contains("s.click.taobao.com")) { +// Logger.wtf(SPUtils.getPrefString(WebActivity.this, Pkey.IS_OPEN_TAOBAO, "")); +// if (SPUtils.getPrefString(WebActivity.this, Pkey.IS_OPEN_TAOBAO, "").equals("shoutao")) { +// if (!Token.isLogin()) { +// if (isFirst2Login) { +// ActivityJump.toLogin(WebActivity.this); +// } +// isFirst2Login = false; +// finish(); +// } else { +// if (isInstallTaoBao(WebActivity.this)) { +// jump2TaoBao(url); +// finish(); +// } else { +// view.loadUrl(url); +// } +// } +// return true; +// } +// } + + +// if (url.contains("kingcard.dgunicom.com") && url.contains("newMsg") && url.contains("fill.html")) { +// getItf(url); +// } + + +// else { +// Logger.wtf("123"); +// mainWeb.loadUrl(url); +// } + return super.shouldOverrideUrlLoading(view, url); + } + + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + // WebLoad.setVisibility(View.GONE); + //开始加载设置为透明 + super.onPageStarted(view, url, favicon); + } + + @Override + public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { + super.onReceivedError(view, request, error); + } + + @Override + public void onPageFinished(WebView view, String url) { + // WebLoad.setVisibility(View.GONE); +// // 获取页面内容 + view.loadUrl("javascript:window.java_obj.showSource(" + + "document.documentElement.innerText);"); + + // 获取解析 + view.loadUrl("javascript:window.java_obj.showDescription(" + + "document.querySelector('meta[name=\"share-description\"]').getAttribute('content')" + + ");"); + // quanyikaText(); + super.onPageFinished(view, url); + } + + //处理 [Android]用WebView访问证书有问题的SSL网页 + //http://blog.sina.com.cn/s/blog_4cd978f90102vrxk.html + @Override + public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { + handler.proceed(); + } + + } + +} + + diff --git a/example/android/app/src/main/res/drawable/bg_launcher.png b/example/android/app/src/main/res/drawable/bg_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f90628863c19f9f75168a548920452e704f35e GIT binary patch literal 288220 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

{SIwu_7r_L&zS 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 MvL9utq)kHp4+idFbpQYW literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/example/android/app/src/main/res/drawable/launch_background.xml index 304732f..5d0b6a2 100644 --- a/example/android/app/src/main/res/drawable/launch_background.xml +++ b/example/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,11 @@ - + - + android:src="@drawable/bg_launcher" /> + diff --git a/example/android/app/src/main/res/drawable/yw_1222.jpg b/example/android/app/src/main/res/drawable/yw_1222_baichuan.jpg similarity index 100% rename from example/android/app/src/main/res/drawable/yw_1222.jpg rename to example/android/app/src/main/res/drawable/yw_1222_baichuan.jpg diff --git a/example/android/app/src/main/res/layout/activity_test.xml b/example/android/app/src/main/res/layout/activity_test.xml new file mode 100644 index 0000000..031365f --- /dev/null +++ b/example/android/app/src/main/res/layout/activity_test.xml @@ -0,0 +1,26 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/android/app/src/main/res/layout/activity_web.xml b/example/android/app/src/main/res/layout/activity_web.xml new file mode 100644 index 0000000..45e0243 --- /dev/null +++ b/example/android/app/src/main/res/layout/activity_web.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/example/android/build.gradle b/example/android/build.gradle index 36dc0b4..fce6d9c 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -15,6 +15,10 @@ allprojects { repositories { google() jcenter() + maven { + url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" + } + } } diff --git a/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_search_goods_dialog.dart b/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_search_goods_dialog.dart index e3c30e3..c26d72d 100644 --- a/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_search_goods_dialog.dart +++ b/lib/dialog/global_dialog/intellect_search_goods_dialog/intellect_search_goods_dialog.dart @@ -13,6 +13,7 @@ import 'package:provider/provider.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:flutter_alibc/flutter_alibc.dart'; import 'package:flutter_alibc/alibc_model.dart'; +import 'package:flutter_alibc/alibc_const_key.dart'; class IntellectSearchGoodsDialog extends StatefulWidget { final IntellectDialogDataModel model; @@ -31,7 +32,6 @@ class _IntellectSearchGoodsDialogState @override void initState() { - requestStyle(); super.initState(); } @@ -243,7 +243,10 @@ class _IntellectSearchGoodsDialogState ), ), Text( - widget?.model?.price ?? "", + (num.tryParse(widget?.model?.price ?? "0") - + num.tryParse( + widget?.model?.couponPrice ?? "0")).toString() ?? + "", style: TextStyle( fontSize: 32.sp, color: HexColor.fromHex( @@ -281,12 +284,10 @@ class _IntellectSearchGoodsDialogState child: Text( (_styleModel?.moduleList?.saveBtn?.content ?? "") + " ¥" + - ((double.tryParse( - widget?.model?.couponPrice ?? "0.0") ?? + ((num.tryParse(widget?.model?.couponPrice ?? "0") ?? 0) + - double.tryParse( + num.tryParse( widget?.model?.commission ?? '0')) - .toString() .toString(), style: TextStyle( color: HexColor.fromHex( @@ -353,17 +354,26 @@ class _IntellectSearchGoodsDialogState RouterUtil.goLogin(context); return; } else { - print("平台"+widget?.model?.provider??""); + print("平台" + widget?.model?.provider ?? ""); + print("链接" + widget?.model?.couponUrl ?? ""); if (widget?.model?.provider == 'taobao') { - TradeResult result = - await FlutterAlibc.openByUrl(url: widget?.model?.couponUrl??""); + TradeResult result = await FlutterAlibc.openByUrl( + url: widget?.model?.couponUrl ?? "", + openType: AlibcOpenType.AlibcOpenTypeNative, + backUrl: "alisdk://"); Logger.debug('${result.errorCode} ${result.errorMessage} '); - print("链接"+widget?.model?.couponUrl??""); - print("错误码"+result.errorCode); - print("原因"+result.errorMessage); - + print("链接" + widget?.model?.couponUrl ?? ""); + print("错误码" + result.errorCode); + print("原因" + result.errorMessage); } else { - RouterUtil.openWebview(widget?.model?.couponUrl, context); + await FlutterAlibc.openByUrl( + url: widget?.model?.couponUrl, + openType: AlibcOpenType.AlibcOpenTypeNative); + } + + ///关闭弹窗 + if (Navigator.canPop(context)) { + Navigator.pop(context); } } } diff --git a/lib/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart b/lib/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart index 38a98b6..5c83878 100644 --- a/lib/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart +++ b/lib/dialog/global_dialog/intellect_search_goods_dialog/model/intellect_dialog_data_model.dart @@ -10,6 +10,7 @@ class IntellectDialogDataModel { String couponUrl; String couponPrice; + IntellectDialogDataModel( {this.itemId, this.title, diff --git a/lib/dialog/tip_dialog/tip_dialog.dart b/lib/dialog/tip_dialog/tip_dialog.dart new file mode 100644 index 0000000..af49407 --- /dev/null +++ b/lib/dialog/tip_dialog/tip_dialog.dart @@ -0,0 +1,71 @@ +import 'package:flutter/material.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; + +class TipDialog extends StatelessWidget { + String title; + + TipDialog({this.title = "温馨提示", this.content}); + + String content; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.transparent, + body: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: double.infinity, + decoration: BoxDecoration( + color: Colors.white, borderRadius: BorderRadius.circular(20)), + margin: EdgeInsets.only(left: 91.w, right: 91.w), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 16), + child: Text( + title, + style: TextStyle(fontSize: 30.sp,fontWeight: FontWeight.w400), + ), + ), + Container( + margin: EdgeInsets.all(16), + constraints: BoxConstraints(minHeight: 100), + child: Text( + content, + style: TextStyle(fontSize: 26.sp), + ), + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 16, right: 16, bottom: 16), + child: FlatButton( + padding: EdgeInsets.only(top: 10, bottom: 10), + color: HexColor.fromHex("#FFFF4242"), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(50)), + onPressed: () { + Navigator.pop(context); + }, + child: Text( + "知道了", + style: TextStyle( + color: HexColor.fromHex("#FFFFFF"), + fontSize: 26.sp), + )), + )) + ], + ) + ], + ), + ) + ], + ), + ); + } +} diff --git a/lib/pages/hot_ranking_page/hot_ranking_page.dart b/lib/pages/hot_ranking_page/hot_ranking_page.dart index f1262af..910125c 100644 --- a/lib/pages/hot_ranking_page/hot_ranking_page.dart +++ b/lib/pages/hot_ranking_page/hot_ranking_page.dart @@ -1,6 +1,22 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; +import 'package:zhiying_base_widget/pages/hot_ranking_page/hot_ranking_page_sk.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_notifier.dart'; +import 'package:zhiying_base_widget/utils/contants.dart'; +import 'package:zhiying_comm/util/base_bloc.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; +import 'package:provider/provider.dart'; + +import 'hot_ranking_page_bloc.dart'; class HotRankingPage extends StatefulWidget { + final Map data; + + const HotRankingPage(this.data, {Key key}) : super(key: key); + @override _HotRankingPageState createState() => _HotRankingPageState(); } @@ -10,7 +26,6 @@ class _HotRankingPageState extends State { Widget build(BuildContext context) { print('hot_ranking_page build'); - // // List contentWidgets = tabs.map((item) { // BaseTabModel model = BaseTabModel.fromJson(item); @@ -19,6 +34,134 @@ class _HotRankingPageState extends State { // if (_currentIndex >= contentWidgets.length) { // _currentIndex = 0; // } - return Scaffold(); + return Scaffold( + backgroundColor: Color(0xfff9f9f9), + body: MultiProvider( + providers: [ + ChangeNotifierProvider.value(value: MainPageBgNotifier()), + ], + child: BlocProvider( + bloc: HotRankingPageBloc(), + child: _HotRankingPageContainer(data: widget.data), + ), + ), + ); + } +} + +class _HotRankingPageContainer extends StatefulWidget { + final Map data; + + const _HotRankingPageContainer({Key key, this.data}) : super(key: key); + + @override + __HotRankingPageContainerState createState() => + __HotRankingPageContainerState(); +} + +class __HotRankingPageContainerState extends State<_HotRankingPageContainer> { + HotRankingPageBloc _bloc; + RefreshController _refreshController; + String backgroundImage; + + @override + void initState() { + _refreshController = RefreshController(); + _bloc = BlocProvider.of(context); + if (widget.data.containsKey(Constants.SkipIdentifierName)) { + _bloc.loadData(widget.data[Constants.SkipIdentifierName]); + } + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return StreamBuilder( + stream: _bloc.outData, + builder: (context, asyncSnapshot) { + + var model = asyncSnapshot.data; + if (model == null) { + return HotRankingPageSkeleton(); + } + for (var item in model) { + WidgetModel widgetModel = + WidgetModel.fromJson(Map.from(item)); + if (item.containsKey("mod_name") && + item['mod_name'] == "hot_rank_bg_img") { + _bloc.backgroundImage = json.decode(item['data'])['bg_img']; + break; + } + } + return Stack( + children: [ + Container( + height: 293.h, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + _bloc.backgroundImage ?? ""), + fit: BoxFit.fill)), + ), + Column( + children: _createContent(context, model), + ) + ], + ); + }, + ); + } + + //刷新 + void _onLoading() async {} + + ///构建子模块 + _createContent(BuildContext context, List> model) { + List list = List(); + if (model == null) { + ///骨架图 + } else { + for (var item in model) { + WidgetModel widgetModel = + WidgetModel.fromJson(Map.from(item)); + if (item.containsKey("mod_name") && + item['mod_name'] == "hot_rank_tab_view") { + list.add(Expanded( + child: WidgetFactory.create(widgetModel.modName, + isSliver: false, model: item)[0])); + continue; + } + list.addAll(WidgetFactory.create(widgetModel.modName, + isSliver: false, model: item)); + } + } + return list; + } +} + +class _SilverAppBarDelegate extends SliverPersistentHeaderDelegate { + _SilverAppBarDelegate(BuildContext context, this.child) { + this.context = context; + } + + BuildContext context; + final Widget child; + + @override + double get minExtent => MediaQuery.of(context).padding.top + 44; + + @override + double get maxExtent => MediaQuery.of(context).padding.top + 44; + + @override + Widget build( + BuildContext context, double shrinkOffset, bool overlapsContent) { + return child; + } + + @override + bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) { + return false; } } diff --git a/lib/pages/hot_ranking_page/hot_ranking_page_bloc.dart b/lib/pages/hot_ranking_page/hot_ranking_page_bloc.dart index 724f5e6..beba5ed 100644 --- a/lib/pages/hot_ranking_page/hot_ranking_page_bloc.dart +++ b/lib/pages/hot_ranking_page/hot_ranking_page_bloc.dart @@ -3,42 +3,49 @@ import 'dart:async'; import 'package:zhiying_comm/util/base_bloc.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; -class HotRankingPage extends BlocBase { +class HotRankingPageBloc extends BlocBase { List> _pageData = List(); StreamController>> _dataController = - StreamController>>(); + StreamController>>(); Stream>> get outData => _dataController.stream; + StreamController> _eventController = + StreamController.broadcast(); + + Stream> get event => _eventController.stream; + + String backgroundImage; + @override void dispose() { _dataController.close(); + _eventController.close(); _dataController = null; + _eventController.close(); } - void loadData(int id) { - NetUtil.request('/api/v1/mod', - method: NetMethod.POST, - params: Map.from({ - 'ids': [id] - }), onCache: (data) { - _loadData(id, data); - }, onSuccess: (data) { - _loadData(id, data); - }); + loadData(String skipIdentifier) { + NetUtil.request('/api/v1/mod/${skipIdentifier}', method: NetMethod.GET, + onCache: (data) { + _loadData(data); + }, onSuccess: (data) { + print(data); + _loadData(data); + }); } - void _loadData(int id, dynamic data) { - String key = id.toString(); - Map json = Map.from(data); - if (json.containsKey(key)) { - List list = json[key]; - _pageData = list.map((item) { - return Map.from(item); - }).toList(); - } - + void _loadData(dynamic data) { + print(data["mod_lis"]); + _pageData = List.from(data["mod_list"]).map((v) { + return Map.from(v); + }).toList(); _dataController.add(_pageData); } + + void sendEvent(Map event){ + _eventController.add(event); + } + } diff --git a/lib/pages/hot_ranking_page/hot_ranking_page_sk.dart b/lib/pages/hot_ranking_page/hot_ranking_page_sk.dart new file mode 100644 index 0000000..caefe4d --- /dev/null +++ b/lib/pages/hot_ranking_page/hot_ranking_page_sk.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; +import 'package:shimmer/shimmer.dart'; + +class HotRankingPageSkeleton extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Shimmer.fromColors( + baseColor: Colors.grey[300], + highlightColor: Colors.grey[100], + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + color: Colors.white, + width: double.infinity, + height: 96, + ), + Container( + width: double.infinity, + margin: EdgeInsets.all(16), + height: 48, + child: Row( + children: _buildTopRow(), + )), + Expanded( + child: Container( + child: Column( + children: _buildBottomListItem(), + ), + )) + ], + ), + ); + } + + _buildBottomListItem() { + List listWidget = List(); + for (var index = 0; index < 3; index++) { + listWidget.add(Container( + margin: EdgeInsets.only(left: 16, top: 10, bottom: 10), + child: Row( + children: [ + Container( + width: 127, + height: 127, + color: Colors.white, + ), + Container( + height: 127, + margin: EdgeInsets.only(left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 40, + width: 200, + color: Colors.white, + ), + Container( + height: 30, + width: 100, + color: Colors.grey, + ), + Container( + height: 30, + width: 200, + color: Colors.grey, + ) + ], + ), + ) + ], + ), + )); + } + return listWidget; + } + + _buildTopRow() { + List listWidget = List(); + for (var index = 0; index < 5; index++) { + listWidget.add(Container( + width: 50, + color: Colors.white, + margin: EdgeInsets.all(10), + )); + } + return listWidget; + } +} diff --git a/lib/pages/wallet_page/wallet_page.dart b/lib/pages/wallet_page/wallet_page.dart index b7e7ae2..aaf0bf7 100644 --- a/lib/pages/wallet_page/wallet_page.dart +++ b/lib/pages/wallet_page/wallet_page.dart @@ -6,13 +6,17 @@ import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifi import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_notifier.dart'; import 'package:zhiying_base_widget/utils/contants.dart'; import 'package:zhiying_base_widget/widgets/others/mine_header_bg_widget.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_appbar/wallet_appbar_sk.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data_sk.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/wallet_detail_sk.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_income/wallet_income_sk.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:zhiying_comm/util/base_bloc.dart'; import 'package:zhiying_comm/util/custom_sliver_persistent_header_delegate.dart'; - import 'wallet_page_bloc.dart'; import 'wallet_page_bloc.dart'; +///钱包页面 class WalletPage extends StatefulWidget { final Map data; @@ -77,8 +81,8 @@ class _WalletPageContainerState extends State<_WalletPageContainer> { ScreenUtil.init(context, width: 750, height: 1334); return SmartRefresher( controller: _refreshController, - enablePullDown: false, - enablePullUp: false, + enablePullDown: true, + enablePullUp:true, header: WaterDropHeader(), onLoading: _onLoading, child: Container( @@ -86,15 +90,17 @@ class _WalletPageContainerState extends State<_WalletPageContainer> { child: Stack( fit: StackFit.passthrough, children: [ - MineHeaderBgWidget( - controller: _controller, - ), StreamBuilder( stream: _pageBloc.outData, builder: (context, asyncSnapshot) { var model = asyncSnapshot.data; - return CustomScrollView( - slivers: _createContent(context, model), + return Stack( + children: [ + Container(height: 362.h, color: _pageBloc.backgroundColor), + CustomScrollView( + slivers: _createContent(context, model), + ) + ], ); }, ) @@ -108,37 +114,33 @@ class _WalletPageContainerState extends State<_WalletPageContainer> { BuildContext context, List> model) { List list = List(); if (model == null) { - list.addAll(WidgetFactory.create( - 'normal_nav', - isSliver: true, - model: Map(), + ///骨架图 + list.add(SliverToBoxAdapter( + child: WalletAppbarSkeleton(), )); - list.addAll(WidgetFactory.create( - 'wallet_data', - isSliver: true, - model: Map(), + list.add(SliverToBoxAdapter( + child: WalletDataSkeleton(), )); - list.addAll(WidgetFactory.create( - 'wallet_detail', - isSliver: true, - model: Map(), + list.add(SliverToBoxAdapter( + child: WalletIncomeSkeleton(), )); - - list.addAll(WidgetFactory.create( - 'wallet_income', - isSliver: true, - model: Map(), + list.add(SliverToBoxAdapter( + child: WalletDetailSkeleton(), )); } else { for (var item in model) { WidgetModel widgetModel = WidgetModel.fromJson(Map.from(item)); - if (item.containsKey("mod_name")&&item['mod_name']=="my_wallet_appbar") { + if (item.containsKey("mod_name") && + item['mod_name'] == "my_wallet_appbar") { list.add(SliverPersistentHeader( - delegate: _SilverAppBarDelegate(context, - WidgetFactory.create(widgetModel.modName, - isSliver: false, model: item)[0]),pinned: true,)); - continue; + delegate: _SilverAppBarDelegate( + context, + WidgetFactory.create(widgetModel.modName, + isSliver: false, model: item)[0]), + pinned: true, + )); + continue; } list.addAll(WidgetFactory.create(widgetModel.modName, isSliver: true, model: item)); @@ -149,23 +151,23 @@ class _WalletPageContainerState extends State<_WalletPageContainer> { } class _SilverAppBarDelegate extends SliverPersistentHeaderDelegate { - _SilverAppBarDelegate(BuildContext context,this.child){ - this.context=context; + _SilverAppBarDelegate(BuildContext context, this.child) { + this.context = context; } + BuildContext context; final Widget child; @override - double get minExtent => MediaQuery.of(context).padding.top+44; + double get minExtent => MediaQuery.of(context).padding.top + 44; @override - double get maxExtent => MediaQuery.of(context).padding.top+44; + double get maxExtent => MediaQuery.of(context).padding.top + 44; @override Widget build( BuildContext context, double shrinkOffset, bool overlapsContent) { return child; - } @override diff --git a/lib/pages/wallet_page/wallet_page_bloc.dart b/lib/pages/wallet_page/wallet_page_bloc.dart index d1bf439..e9d87ec 100644 --- a/lib/pages/wallet_page/wallet_page_bloc.dart +++ b/lib/pages/wallet_page/wallet_page_bloc.dart @@ -1,16 +1,22 @@ import 'dart:async'; - +import 'dart:convert'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:zhiying_base_widget/utils/contants.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_appbar/model/WalletAppbarModel.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_data/model/wallet_header_model.dart'; import 'package:zhiying_comm/util/base_bloc.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; class WalletPageBloc extends BlocBase { - List> _tabs = List(); StreamController>> _tabController = StreamController>>(); Stream>> get outData => _tabController.stream; + Color backgroundColor = Colors.transparent; + @override void dispose() { _tabController.close(); @@ -34,6 +40,14 @@ class WalletPageBloc extends BlocBase { var list = List.from(data["mod_list"]).map((v) { return Map.from(v); }).toList(); + for (var item in list) { + if (item['mod_name'] == "my_wallet_appbar") { + WalletAppbarModel walletAppbarModel = + WalletAppbarModel.fromJson(json.decode(item["data"])); + backgroundColor = HexColor.fromHex(walletAppbarModel.appBarBgColor); + break; + } + } _tabController.add(list); } } diff --git a/lib/register.dart b/lib/register.dart index f3ba897..557e2d7 100644 --- a/lib/register.dart +++ b/lib/register.dart @@ -3,6 +3,7 @@ import 'package:sharesdk_plugin/sharesdk_register.dart'; import 'package:zhiying_base_widget/pages/favorite_page/favorite_page.dart'; import 'package:zhiying_base_widget/pages/goods_details_page/goods_details_page.dart'; import 'package:zhiying_base_widget/pages/home_page/home_page.dart'; +import 'package:zhiying_base_widget/pages/hot_ranking_page/hot_ranking_page.dart'; import 'package:zhiying_base_widget/pages/invited_friends/invited_friends.dart'; import 'package:zhiying_base_widget/pages/launch_page/launch_page.dart'; import 'package:zhiying_base_widget/pages/main_page/main_page.dart'; @@ -29,6 +30,9 @@ import 'package:zhiying_base_widget/widgets/home/home_goods/home_goods_creater.d import 'package:zhiying_base_widget/widgets/home/home_notice/home_notice_widget.dart'; import 'package:zhiying_base_widget/widgets/home/home_slide_banner/home_slide_banner_creater.dart'; import 'package:zhiying_base_widget/widgets/home/home_sreach/home_sreach_creater.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_appbar/hot_ranking_appbar.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_tab_bar/hot_tab_bar.dart'; import 'package:zhiying_base_widget/widgets/mine/mine_data/mine_data.dart'; import 'package:zhiying_base_widget/widgets/mine/mine_header/mine_header.dart'; import 'package:zhiying_base_widget/widgets/mine/mine_nav/mine_nav_bg.dart'; @@ -99,6 +103,8 @@ class BaseWidgetRegister { PageFactory.regist('homePage', (model) => HomePage()); PageFactory.regist('pub.flutter.index', (model) => MainPage(model)); PageFactory.regist('pub.flutter.profile', (model) => MainPage(model)); + PageFactory.regist( + 'pub.flutter.hot_rank', (model) => HotRankingPage(model)); PageFactory.regist( 'pub.flutter.my_wallet', (model) => WalletPage(data: model)); PageFactory.regist('goods_details', (model) => GoodsDetailsPage(model)); @@ -304,5 +310,11 @@ class BaseWidgetRegister { 'wallet_income', DefaultWidgetCreater((model) => WalletIncome())); //======================= 账单明细 + + + //======================== 热榜 + WidgetFactory.regist('hot_rank_appbar', DefaultWidgetCreater((model)=>HotRankingAppBar(model))); + WidgetFactory.regist('hot_rank_tabs', DefaultWidgetCreater((model)=>HotRankTableBar(model))); + WidgetFactory.regist('hot_rank_tab_view', DefaultWidgetCreater((model)=>HotRankingList(model))); } } diff --git a/lib/widgets/goods_details/footer/goods_details_footer_widget.dart b/lib/widgets/goods_details/footer/goods_details_footer_widget.dart index 74ea4bb..0a06453 100644 --- a/lib/widgets/goods_details/footer/goods_details_footer_widget.dart +++ b/lib/widgets/goods_details/footer/goods_details_footer_widget.dart @@ -99,7 +99,7 @@ class _GooddsDetailsFooterContainerState return; } if (shopType == 'taobao') { - TradeResult result = await FlutterAlibc.openByUrl(url: url); + TradeResult result = await FlutterAlibc.openByUrl(url: url,backUrl: "alisdk://"); Logger.debug('${result.errorCode} ${result.errorMessage} '); } else { RouterUtil.openWebview(url, context); diff --git a/lib/widgets/hot_ranking/hot_ranking_appbar/hot_ranking_appbar.dart b/lib/widgets/hot_ranking/hot_ranking_appbar/hot_ranking_appbar.dart new file mode 100644 index 0000000..0b40ba0 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_appbar/hot_ranking_appbar.dart @@ -0,0 +1,49 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_appbar/model/hot_ranking_appbaar_model.dart'; +import 'package:zhiying_comm/util/extension/color.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; + +class HotRankingAppBar extends StatelessWidget { + final Map data; + + const HotRankingAppBar(this.data, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + var model = HotRankingAppbarModel.fromJson(json.decode(data['data'])); + return Container( + height: MediaQuery.of(context).padding.top + 56, + child: AppBar( + elevation: 0, + leading: Navigator.canPop(context) + ? IconButton( + icon: Icon(Icons.arrow_back_ios), + onPressed: () { + Navigator.of(context).pop(); + }) + : Container(), + backgroundColor: HexColor.fromHex(model.appBarBgColor==""?"#00000000":model.appBarBgColor), + centerTitle: true, + title: Container( + child: Stack( + alignment: Alignment.center, + children: [ + Text( + model.appBarName??"", + style: + TextStyle(color: HexColor.fromHex(model.appBarNameColor??"")), + ), + CachedNetworkImage( + height: 40.w, + width: 144.w, + imageUrl: model.appBarNameImg??"", + fit: BoxFit.fill, + ) + ], + ), + )), + ); + } +} diff --git a/lib/widgets/hot_ranking/hot_ranking_appbar/model/hot_ranking_appbaar_model.dart b/lib/widgets/hot_ranking/hot_ranking_appbar/model/hot_ranking_appbaar_model.dart new file mode 100644 index 0000000..16ddf59 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_appbar/model/hot_ranking_appbaar_model.dart @@ -0,0 +1,32 @@ +class HotRankingAppbarModel { + String appBarName; + String appBarNameColor; + String appBarBgImg; + String appBarBgColor; + String appBarNameImg; + + HotRankingAppbarModel( + {this.appBarName, + this.appBarNameColor, + this.appBarBgImg, + this.appBarBgColor, + this.appBarNameImg}); + + HotRankingAppbarModel.fromJson(Map json) { + appBarName = json['app_bar_name']; + appBarNameColor = json['app_bar_name_color']; + appBarBgImg = json['app_bar_bg_img']; + appBarBgColor = json['app_bar_bg_color']; + appBarNameImg = json['app_bar_name_img']; + } + + Map toJson() { + final Map data = new Map(); + data['app_bar_name'] = this.appBarName; + data['app_bar_name_color'] = this.appBarNameColor; + data['app_bar_bg_img'] = this.appBarBgImg; + data['app_bar_bg_color'] = this.appBarBgColor; + data['app_bar_name_img'] = this.appBarNameImg; + return data; + } +} diff --git a/lib/widgets/hot_ranking/hot_ranking_bloc.dart b/lib/widgets/hot_ranking/hot_ranking_bloc.dart deleted file mode 100644 index b65ffb5..0000000 --- a/lib/widgets/hot_ranking/hot_ranking_bloc.dart +++ /dev/null @@ -1,44 +0,0 @@ -import 'dart:async'; - -import 'package:zhiying_comm/util/base_bloc.dart'; -import 'package:zhiying_comm/zhiying_comm.dart'; - -class HotRankingBloc extends BlocBase { - List> _pageData = List(); - - StreamController>> _dataController = - StreamController>>(); - - Stream>> get outData => _dataController.stream; - - @override - void dispose() { - _dataController.close(); - _dataController = null; - } - - void loadData(int id) { - NetUtil.request('/api/v1/mod', - method: NetMethod.POST, - params: Map.from({ - 'ids': [id] - }), onCache: (data) { - _loadData(id, data); - }, onSuccess: (data) { - _loadData(id, data); - }); - } - - void _loadData(int id, dynamic data) { - String key = id.toString(); - Map json = Map.from(data); - if (json.containsKey(key)) { - List list = json[key]; - _pageData = list.map((item) { - return Map.from(item); - }).toList(); - } - - _dataController.add(_pageData); - } -} diff --git a/lib/widgets/hot_ranking/hot_ranking_container.dart b/lib/widgets/hot_ranking/hot_ranking_container.dart deleted file mode 100644 index 41984ba..0000000 --- a/lib/widgets/hot_ranking/hot_ranking_container.dart +++ /dev/null @@ -1,91 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_bloc.dart'; -import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart'; -import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_sk.dart'; - -class HotRankingContainer extends StatefulWidget { - final Map data; - - const HotRankingContainer({Key key, this.data}) : super(key: key); - - @override - _HotRankingState createState() => _HotRankingState(); -} - -class _HotRankingState extends State - with TickerProviderStateMixin { - HotRankingBloc _bloc; - TabController _tabController; - - @override - void initState() { - _bloc = HotRankingBloc(); - super.initState(); - } - - _buildTabs() { - List listWidget = List(); - for (int index = 0; index < 4; index++) { - listWidget.add(Tab( - text: "hahah", - )); - } - return listWidget; - } - - @override - void dispose() { - _tabController.dispose(); - super.dispose(); - } - - ///构建 - void createTabController() { - _tabController = TabController(length: 4, vsync: this); - } - - ///构建TabView - _buildTabView() { - List listWidget = List(); - for (var index = 0; index < 4; index++) { - listWidget.add(ListView.builder( - padding: EdgeInsets.all(0), - itemCount: 10, - itemBuilder: (context, index) { - return Container( - child: HotRankingGoods(), - ); - })); - } - return listWidget; - } - - @override - Widget build(BuildContext context) { - - return StreamBuilder( - stream: _bloc.outData, - builder: (context, snapshot) { - if (snapshot.data != null) { - return HotRankingSkeleton(); - } else { - createTabController(); - return Container( - child: Column( - children: [ - TabBar( - controller: _tabController, - isScrollable: true, - tabs: _buildTabs(), - ), - Expanded( - child: TabBarView( - controller: _tabController, - children: _buildTabView())) - ], - ), - ); - } - }); - } -} diff --git a/lib/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart b/lib/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart index 901497c..998fd95 100644 --- a/lib/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart +++ b/lib/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart @@ -1,218 +1,290 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:zhiying_base_widget/widgets/home/home_quick_entry/cached_network_image_util.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; class HotRankingGoods extends StatelessWidget { + Good good; + HotRankingListModel styleModel; + int index; + + HotRankingGoods({Key key, this.good, this.styleModel, this.index}) + : super(key: key); + @override Widget build(BuildContext context) { - return Stack( - children: [ - Container( - padding: EdgeInsets.all(15.w), - margin: - EdgeInsets.only(top: 8.w, bottom: 8.w, left: 25.w, right: 25.w), - decoration: BoxDecoration( - color: Colors.white, borderRadius: BorderRadius.circular(15.w)), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 254.w, - height: 254.w, - color: Colors.amber, - ), - Expanded( - child: Container( - margin: EdgeInsets.only(left: 20.w), - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Container( - height: 70.h, - child: Row( - children: [ - Expanded( - child: RichText( - overflow: TextOverflow.ellipsis, - maxLines: 2, - text: TextSpan(children: [ - WidgetSpan( - child: Container( - decoration: BoxDecoration( - color: Colors.red, - borderRadius: - BorderRadius.circular(4)), - child: Padding( - padding: EdgeInsets.only( - left: 4.w, right: 4.w), - child: Text( - "京东", + var indexImage; + if (styleModel.hotRankIconList != null && + styleModel.hotRankIconList.length > 0 && + styleModel.hotRankIconList.length - 1 >= index) { + indexImage = styleModel.hotRankIconList[index]; + } + Providers providers = getProvider(good.provider); + return GestureDetector( + onTap: () { + RouterUtil.route(SkipModel(skipIdentifier: "goods_details"), + {"provider": good.provider, "good_id": good.goodId}, context); + }, + child: Stack( + children: [ + Container( + padding: EdgeInsets.all(15.w), + margin: + EdgeInsets.only(top: 8.w, bottom: 8.w, left: 25.w, right: 25.w), + decoration: BoxDecoration( + color: Colors.white, borderRadius: BorderRadius.circular(15.w)), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 254.w, + height: 254.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + image: DecorationImage( + image: CachedNetworkImageProvider(good.goodImage))), + ), + Expanded( + child: Container( + margin: EdgeInsets.only(left: 20.w), + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + Container( + height: 70.h, + child: Row( + children: [ + Expanded( + child: RichText( + overflow: TextOverflow.ellipsis, + maxLines: 2, + text: TextSpan(children: [ + WidgetSpan( + child: Container( + decoration: BoxDecoration( + color: HexColor.fromHex( + providers.providerBgColor), + borderRadius: + BorderRadius.circular(4)), + child: Padding( + padding: EdgeInsets.only( + left: 4.w, right: 4.w), + child: Text( + good.providerName ?? "", + style: TextStyle( + color: HexColor.fromHex( + providers.providerNameColor, + ), + fontSize: 18.sp), + ), + ), + )), + WidgetSpan( + child: SizedBox( + width: 4.h, + )), + TextSpan( + text: good.goodTitle, style: TextStyle( color: HexColor.fromHex( - "#FFFFFF", - ), - fontSize: 18.sp), - ), - ), - )), - WidgetSpan( - child: SizedBox( - width: 4.h, - )), - TextSpan( - text: - "Segway Ninebot mini Pro九号平衡车智能代步...", - style: TextStyle( - color: Colors.black, - fontSize: 30.sp)) - ]))) + styleModel.titleColor ?? ""), + fontSize: 30.sp)) + ]))) + ], + ), + ), + Row( + children: [ + good.coupon == "" + ? Container() + : Container( + margin: EdgeInsets.only( + top: 4, bottom: 4, right: 15.w), + decoration: BoxDecoration( + color: HexColor.fromHex(styleModel + .couponCommission.left.couponBgColor), + image: DecorationImage( + image: CachedNetworkImageProvider( + styleModel.couponCommission.left + .couponBgImg))), + child: Padding( + padding: const EdgeInsets.only( + left: 8, right: 8, top: 2, bottom: 2), + child: Text( + (good.coupon ?? "") + + (styleModel.couponCommission.left + .couonText ?? + ""), + style: TextStyle( + color: HexColor.fromHex(styleModel + .couponCommission + .left + .couponFontColor), + fontSize: 22.sp), + ), + ), + ), + good.commission == "" + ? Container() + : Container( + margin: EdgeInsets.only(top: 4, bottom: 4), + decoration: BoxDecoration( + color: HexColor.fromHex(styleModel + .couponCommission + .right + .commissionBgColor ?? + ""), + image: DecorationImage( + image: CachedNetworkImageProvider( + styleModel.couponCommission.right + .commissionBgImg ?? + ""))), + child: Padding( + padding: const EdgeInsets.only( + left: 8, right: 8, top: 2, bottom: 2), + child: Text( + (styleModel.couponCommission.right + .commissionText ?? + "") + + (good.commission ?? ""), + style: TextStyle( + color: HexColor.fromHex(styleModel + .couponCommission + .right + .commissionFontColor), + fontSize: 22.sp), + ), + ), + ), ], ), - ), - Row( - children: [ - Container( - margin: EdgeInsets.only(top: 4, bottom: 4), - decoration: BoxDecoration(color: Colors.red), - child: Padding( - padding: const EdgeInsets.only( - left: 8, right: 8, top: 2, bottom: 2), - child: Text( - "50元券", - style: TextStyle( - color: Colors.white, fontSize: 22.sp), + Padding( + padding: const EdgeInsets.only(top: 4, bottom: 4), + child: Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: EdgeInsets.only(bottom: 6.sp), + child: Text( + "¥", + style: TextStyle( + color: HexColor.fromHex( + styleModel.currentPriceColor ?? ""), + fontSize: 20.sp), + ), ), - ), - ), - SizedBox( - width: 10.sp, - ), - Container( - margin: EdgeInsets.only(top: 4, bottom: 4), - decoration: BoxDecoration(color: Colors.red), - child: Padding( - padding: const EdgeInsets.only( - left: 8, right: 8, top: 2, bottom: 2), - child: Text( - "50元券", + Text( + good.currentPrice ?? "", style: TextStyle( - color: Colors.white, fontSize: 22.sp), + color: HexColor.fromHex( + styleModel.currentPriceColor ?? ""), + fontSize: 40.sp), ), - ), - ) - ], - ), - Padding( - padding: const EdgeInsets.only(top: 4, bottom: 4), - child: Row( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Padding( - padding: EdgeInsets.only(bottom: 6.sp), - child: Text( - "¥", - style: - TextStyle(color: Colors.red, fontSize: 20.sp), + SizedBox( + width: 6, ), - ), - Text( - "1409", - style: - TextStyle(color: Colors.red, fontSize: 40.sp), - ), - SizedBox( - width: 6, - ), - Padding( - padding: EdgeInsets.only(bottom: 4.sp), - child: Text( - "¥1409", - style: TextStyle( - color: Colors.red, - fontSize: 22.sp, - decoration: TextDecoration.lineThrough), + Padding( + padding: EdgeInsets.only(bottom: 4.sp), + child: Text( + "¥" + good.marketPrice ?? "", + style: TextStyle( + color: HexColor.fromHex( + styleModel.marketPriceColor ?? ""), + fontSize: 22.sp, + decoration: TextDecoration.lineThrough), + ), ), - ), - ], + ], + ), ), - ), - Row( - children: [ - Expanded( - child: Stack( - alignment: Alignment.centerLeft, - children: [ - Row( - children: [ - Expanded( - child: Container( - height: 40.w, - padding: EdgeInsets.only( - left: 64.w, - ), - margin: EdgeInsets.only(right: 20), - color: Colors.red, - child: Text( - "热销1231.1万件", - style: TextStyle( - color: Colors.white, fontSize: 22.sp), - ), - )) - ], - ), - Container( - color: Colors.amber, - width: 48.w, - height: 48.w, - child: CachedNetworkImage( - imageUrl: "", + Row( + children: [ + Expanded( + child: Stack( + alignment: Alignment.centerLeft, + children: [ + Row( + children: [ + Expanded( + child: Container( + height: 40.w, + padding: EdgeInsets.only( + left: 64.w, + ), + margin: + EdgeInsets.only(right: 20, left: 20.w), + color: HexColor.fromHex( + styleModel.hotRank.bgColor ?? ""), + child: Text( + "热销" + good.inorderCount + "件", + style: TextStyle( + color: Colors.white, fontSize: 22.sp), + ), + )) + ], + ), + Container( width: 48.w, height: 48.w, - placeholder: (context, _) => - Container(color: Colors.yellow), - fit: BoxFit.fill, - ), - ), - Align( - alignment: Alignment.centerRight, - child: Container( - decoration: BoxDecoration( - color: Colors.amber, - borderRadius: BorderRadius.circular(20)), - margin: EdgeInsets.only(right: 0), - child: Padding( - padding: EdgeInsets.only( - left: 16, right: 16, top: 4, bottom: 4), - child: Text( - "马上抢", - style: TextStyle( - color: Colors.white, fontSize: 26.sp), - ), + child: CachedNetworkImage( + imageUrl: styleModel.hotRank.hotSaleImg ?? "", + width: 48.w, + height: 48.w, + placeholder: (context, _) => + Container(color: Colors.yellow), + fit: BoxFit.fill, ), ), - ) - ], - )) - ], - ) - ], - ), - )) - ], - ), - ), - Align( - alignment: Alignment.topLeft, - child: Container( - margin: EdgeInsets.only(left: 40.w, top: 8.h), - color: Colors.red, - height: 60.w, - width: 60.w, + Align( + alignment: Alignment.centerRight, + child: Container( + height: 48.h, + width: 127.w, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + styleModel.hotRank.buyNowImg ?? + ""), + fit: BoxFit.fitWidth), + borderRadius: + BorderRadius.circular(20)), + margin: EdgeInsets.only(right: 0), + )) + ], + )) + ], + ) + ], + ), + )) + ], + ), ), - ) - ], + Align( + alignment: Alignment.topLeft, + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider(indexImage ?? ""))), + margin: EdgeInsets.only(left: 40.w, top: 8.h), + height: 60.w, + width: 60.w, + ), + ) + ], + ), ); } + + Providers getProvider(String provider) { + for (var item in styleModel.providers) { + if (item.type == provider) { + return item; + } + } + } } diff --git a/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_bloc.dart b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_bloc.dart new file mode 100644 index 0000000..ccfefdc --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_bloc.dart @@ -0,0 +1,87 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart'; +import 'package:zhiying_comm/util/base_bloc.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; + +class HotRankingListBloc extends BlocBase { + HotRankingListDataModel _pageData; + + StreamController _dataController = + StreamController(); + + Stream get outData => _dataController.stream; + + String currentTypeId; + + int currentPage = 1; + + bool isLoading = false; + + @override + void dispose() { + _dataController.close(); + _dataController = null; + } + + void loadData(String typeId, int page,Function complete) { + if (isLoading) { + complete(); + return; + } + isLoading = true; + currentTypeId = typeId; + NetUtil.request( + '/api/v1/rec/taobao?type_id=' + typeId + '&page=' + page.toString(), + method: NetMethod.GET, onSuccess: (data) { + complete(); + isLoading = false; + _loadData(data); + }, onError: (e) { + complete(); + isLoading = false; + }); + } + + void loadMoreData(String typeId,Function complete) { + if (isLoading) { + complete(); + return; + } + currentPage++; + isLoading = true; + NetUtil.request( + '/api/v1/rec/taobao?type_id=' + + typeId + + '&page=' + + currentPage.toString(), + method: NetMethod.GET, onSuccess: (data) { + complete(); + isLoading = false; + _loadMoreData(data); + }, onError: (e) { + complete(); + isLoading = false; + }); + } + + void _loadData(dynamic data) { + if (_pageData != null && _pageData.good != null) { + _pageData.good.clear(); + _pageData.good.addAll(HotRankingListDataModel.fromJson(data).good); + } else { + _pageData = HotRankingListDataModel.fromJson(data); + } + _dataController.add(_pageData); + } + + void _loadMoreData(dynamic data) { + if (_pageData != null && _pageData.good != null) { + _pageData.good.addAll(HotRankingListDataModel.fromJson(data).good); + _dataController.add(_pageData); + } + } +} +// http://192.168.0.113:5000/api/v1/rec/taobao?page=1 +// http://192.168.0.113:5000/api/v1/rec/taobao?page=1 diff --git a/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart new file mode 100644 index 0000000..82eb770 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list.dart @@ -0,0 +1,145 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; +import 'package:zhiying_base_widget/pages/hot_ranking_page/hot_ranking_page_bloc.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_goods/hot_ranking_goods.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart'; +import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart'; +import 'package:zhiying_comm/util/base_bloc.dart'; + +import 'hot_ranking_bloc.dart'; +import 'hot_ranking_list_sk.dart'; + +class HotRankingList extends StatefulWidget { + final Map data; + + const HotRankingList(this.data, {Key key}) : super(key: key); + + @override + _HotRankingState createState() => _HotRankingState(); +} + +class _HotRankingState extends State + with TickerProviderStateMixin { + HotRankingListBloc _bloc; + TabController _tabController; + RefreshController _refreshController; + List goods; + + HotRankingPageBloc _pageBloc; + + ScrollController _scrollcontroller; + + @override + void initState() { + _bloc = HotRankingListBloc(); + _refreshController = RefreshController(); + _pageBloc = BlocProvider.of(context); + _scrollcontroller=ScrollController(); + + if (_pageBloc != null) { + _pageBloc.event.listen((event) { + if (event.containsKey('type') && event['type'] == "loadData") { + _bloc.currentPage=1; + _bloc.loadData(event['type_id'], _bloc.currentPage, () {}); + } + }); + } + + super.initState(); + } + + _buildTabs() { + List listWidget = List(); + for (int index = 0; index < 4; index++) { + listWidget.add(Tab( + text: "hahah", + )); + } + return listWidget; + } + + @override + void dispose() { + _tabController.dispose(); + super.dispose(); + } + + ///构建 + void createTabController() { + _tabController = TabController(length: 4, vsync: this); + } + + ///构建TabView + _buildTabView() { + List listWidget = List(); + for (var index = 0; index < 4; index++) { + listWidget.add(ListView.builder( + padding: EdgeInsets.all(0), + itemCount: 10, + itemBuilder: (context, index) { + return Container( + child: HotRankingGoods(), + ); + })); + } + return listWidget; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder( + stream: _bloc.outData, + builder: (context, snapshot) { + if (snapshot.data == null) { + return HotRankingSkeleton(); + } else { + goods = snapshot.data.good; + if(_bloc.currentPage==1){ + Future.delayed(Duration(milliseconds: 100),(){ + _scrollcontroller.animateTo(0, duration: Duration(milliseconds: 100), curve: Curves.ease); + }); + } + return SmartRefresher( + controller: _refreshController, + enablePullDown: true, + enablePullUp: true, + onLoading: _onLoading, + onRefresh: _onRefresh, + child: CustomScrollView( + controller: _scrollcontroller, + slivers: [ + SliverList( + delegate: SliverChildBuilderDelegate(_buildListItem, + childCount: goods.length)) + ], + ), + ); + } + }); + } + + Future _onLoading() async { + _bloc.loadMoreData(_bloc.currentTypeId, () { + _refreshController.loadComplete(); + }); + return null; + } + + Future _onRefresh() async { + _bloc.currentPage = 1; + _bloc.loadData(_bloc.currentTypeId, _bloc.currentPage, () { + _refreshController.refreshCompleted(); + }); + } + + Widget _buildListItem(BuildContext context, int index) { + return HotRankingGoods( + styleModel: + HotRankingListModel.fromJson(json.decode(widget.data['data'])), + good: goods[index], + index: index, + ); + } +} diff --git a/lib/widgets/hot_ranking/hot_ranking_sk.dart b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list_sk.dart similarity index 98% rename from lib/widgets/hot_ranking/hot_ranking_sk.dart rename to lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list_sk.dart index 9d73cee..fb0b167 100644 --- a/lib/widgets/hot_ranking/hot_ranking_sk.dart +++ b/lib/widgets/hot_ranking/hot_ranking_list/hot_ranking_list_sk.dart @@ -8,6 +8,7 @@ class HotRankingSkeleton extends StatelessWidget { baseColor: Colors.grey[300], highlightColor: Colors.grey[100], child: Column( + mainAxisSize: MainAxisSize.min, children: [ Container( width: double.infinity, diff --git a/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart new file mode 100644 index 0000000..04b2de2 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_data_model.dart @@ -0,0 +1,82 @@ +class HotRankingListDataModel { + String provider; + List good; + + HotRankingListDataModel({this.provider, this.good}); + + HotRankingListDataModel.fromJson(Map json) { + provider = json['provider']; + if (json['good'] != null) { + good = new List(); + json['good'].forEach((v) { + good.add(new Good.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['provider'] = this.provider; + if (this.good != null) { + data['good'] = this.good.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Good { + String provider; + String providerName; + String goodId; + String goodImage; + String goodTitle; + String shopName; + String coupon; + String commission; + String marketPrice; + String currentPrice; + String inorderCount; + + Good( + {this.provider, + this.providerName, + this.goodId, + this.goodImage, + this.goodTitle, + this.shopName, + this.coupon, + this.commission, + this.marketPrice, + this.currentPrice, + this.inorderCount}); + + Good.fromJson(Map json) { + provider = json['provider']; + providerName = json['provider_name']; + goodId = json['good_id']; + goodImage = json['good_image']; + goodTitle = json['good_title']; + shopName = json['shop_name']; + coupon = json['coupon']; + commission = json['commission']; + marketPrice = json['market_price']; + currentPrice = json['current_price']; + inorderCount = json['inorder_count']; + } + + Map toJson() { + final Map data = new Map(); + data['provider'] = this.provider; + data['provider_name'] = this.providerName; + data['good_id'] = this.goodId; + data['good_image'] = this.goodImage; + data['good_title'] = this.goodTitle; + data['shop_name'] = this.shopName; + data['coupon'] = this.coupon; + data['commission'] = this.commission; + data['market_price'] = this.marketPrice; + data['current_price'] = this.currentPrice; + data['inorder_count'] = this.inorderCount; + return data; + } +} diff --git a/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart new file mode 100644 index 0000000..b6c0267 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_model.dart @@ -0,0 +1,211 @@ +class HotRankingListModel { + List hotRankIconList; + String topMargin; + String leftRighMargin; + List providers; + String titleColor; + String currentPriceColor; + String marketPriceColor; + String shopNameColor; + String saleCountColor; + String shopIcon; + CouponCommission couponCommission; + HotRank hotRank; + + HotRankingListModel( + {this.hotRankIconList, + this.topMargin, + this.leftRighMargin, + this.providers, + this.titleColor, + this.currentPriceColor, + this.marketPriceColor, + this.shopNameColor, + this.saleCountColor, + this.shopIcon, + this.couponCommission, + this.hotRank}); + + HotRankingListModel.fromJson(Map json) { + hotRankIconList = json['hot_rank_icon_list'].cast(); + topMargin = json['top_margin']; + leftRighMargin = json['left_righ_margin']; + if (json['providers'] != null) { + providers = new List(); + json['providers'].forEach((v) { + providers.add(new Providers.fromJson(v)); + }); + } + titleColor = json['title_color']; + currentPriceColor = json['current_price_color']; + marketPriceColor = json['market_price_color']; + shopNameColor = json['shop_name_color']; + saleCountColor = json['sale_count_color']; + shopIcon = json['shop_icon']; + couponCommission = json['coupon_commission'] != null + ? new CouponCommission.fromJson(json['coupon_commission']) + : null; + hotRank = json['hot_rank'] != null + ? new HotRank.fromJson(json['hot_rank']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['hot_rank_icon_list'] = this.hotRankIconList; + data['top_margin'] = this.topMargin; + data['left_righ_margin'] = this.leftRighMargin; + if (this.providers != null) { + data['providers'] = this.providers.map((v) => v.toJson()).toList(); + } + data['title_color'] = this.titleColor; + data['current_price_color'] = this.currentPriceColor; + data['market_price_color'] = this.marketPriceColor; + data['shop_name_color'] = this.shopNameColor; + data['sale_count_color'] = this.saleCountColor; + data['shop_icon'] = this.shopIcon; + if (this.couponCommission != null) { + data['coupon_commission'] = this.couponCommission.toJson(); + } + if (this.hotRank != null) { + data['hot_rank'] = this.hotRank.toJson(); + } + return data; + } +} + +class Providers { + String type; + String providerNameColor; + String providerBgColor; + + Providers({this.type, this.providerNameColor, this.providerBgColor}); + + Providers.fromJson(Map json) { + type = json['type']; + providerNameColor = json['provider_name_color']; + providerBgColor = json['provider_bg_color']; + } + + Map toJson() { + final Map data = new Map(); + data['type'] = this.type; + data['provider_name_color'] = this.providerNameColor; + data['provider_bg_color'] = this.providerBgColor; + return data; + } +} + +class CouponCommission { + Left left; + Right right; + + CouponCommission({this.left, this.right}); + + CouponCommission.fromJson(Map json) { + left = json['left'] != null ? new Left.fromJson(json['left']) : null; + right = json['right'] != null ? new Right.fromJson(json['right']) : null; + } + + Map toJson() { + final Map data = new Map(); + if (this.left != null) { + data['left'] = this.left.toJson(); + } + if (this.right != null) { + data['right'] = this.right.toJson(); + } + return data; + } +} + +class Left { + String couonText; + String couponFontColor; + String couponBgColor; + String couponBgImg; + + Left( + {this.couonText, + this.couponFontColor, + this.couponBgColor, + this.couponBgImg}); + + Left.fromJson(Map json) { + couonText = json['couon_text']; + couponFontColor = json['coupon_font_color']; + couponBgColor = json['coupon_bg_color']; + couponBgImg = json['coupon_bg_img']; + } + + Map toJson() { + final Map data = new Map(); + data['couon_text'] = this.couonText; + data['coupon_font_color'] = this.couponFontColor; + data['coupon_bg_color'] = this.couponBgColor; + data['coupon_bg_img'] = this.couponBgImg; + return data; + } +} + +class Right { + String commissionText; + String commissionFontColor; + String commissionBgColor; + String commissionBgImg; + + Right( + {this.commissionText, + this.commissionFontColor, + this.commissionBgColor, + this.commissionBgImg}); + + Right.fromJson(Map json) { + commissionText = json['commission_text']; + commissionFontColor = json['commission_font_color']; + commissionBgColor = json['commission_bg_color']; + commissionBgImg = json['commission_bg_img']; + } + + Map toJson() { + final Map data = new Map(); + data['commission_text'] = this.commissionText; + data['commission_font_color'] = this.commissionFontColor; + data['commission_bg_color'] = this.commissionBgColor; + data['commission_bg_img'] = this.commissionBgImg; + return data; + } +} + +class HotRank { + String isOpen; + String bgColor; + String fontColor; + String hotSaleImg; + String buyNowImg; + + HotRank( + {this.isOpen, + this.bgColor, + this.fontColor, + this.hotSaleImg, + this.buyNowImg}); + + HotRank.fromJson(Map json) { + isOpen = json['is_open']; + bgColor = json['bg_color']; + fontColor = json['font_color']; + hotSaleImg = json['hot_sale_img']; + buyNowImg = json['buy_now_img']; + } + + Map toJson() { + final Map data = new Map(); + data['is_open'] = this.isOpen; + data['bg_color'] = this.bgColor; + data['font_color'] = this.fontColor; + data['hot_sale_img'] = this.hotSaleImg; + data['buy_now_img'] = this.buyNowImg; + return data; + } +} diff --git a/lib/widgets/hot_ranking/hot_tab_bar/hot_tab_bar.dart b/lib/widgets/hot_ranking/hot_tab_bar/hot_tab_bar.dart new file mode 100644 index 0000000..af5afb6 --- /dev/null +++ b/lib/widgets/hot_ranking/hot_tab_bar/hot_tab_bar.dart @@ -0,0 +1,99 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:zhiying_base_widget/pages/hot_ranking_page/hot_ranking_page_bloc.dart'; +import 'package:zhiying_comm/util/base_bloc.dart'; +import 'package:zhiying_comm/util/extension/color.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; +import 'model/hot_tabbar_model.dart'; + +class HotRankTableBar extends StatefulWidget { + final Map data; + + const HotRankTableBar(this.data, {Key key}) : super(key: key); + + @override + _HotRankTableBarState createState() => _HotRankTableBarState(); +} + +class _HotRankTableBarState extends State + with TickerProviderStateMixin { + TabController _tabController; + + HotRankingTabBarModel _barModel; + + HotRankingPageBloc _pageBloc; + + @override + void initState() { + _barModel = + HotRankingTabBarModel.fromJson(json.decode(widget.data['data'])); + _tabController = + TabController(length: _barModel.tabList.length, vsync: this); + _pageBloc = BlocProvider.of(context); + + ///待页面初始化后发送加载事件 + Timer(Duration(milliseconds: 100), () { + if (_barModel != null && + _barModel.tabList != null && + _barModel.tabList.length > 0) { + var params = { + "type": "loadData", + "type_id": _barModel.tabList[0].typeId + }; + _pageBloc.sendEvent(params); + } + }); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.only(bottom: 10), + child: TabBar( + indicatorPadding: EdgeInsets.only(bottom: 0), + indicatorSize: TabBarIndicatorSize.label, + controller: _tabController, + indicatorColor: HexColor.fromHex( + _barModel.tabList[_tabController.index].nameSelectColor), + unselectedLabelColor: HexColor.fromHex( + _barModel.tabList[_tabController.index].nameNoSelectColor), + labelColor: HexColor.fromHex( + _barModel.tabList[_tabController.index].nameSelectColor), + isScrollable: true, + tabs: _buildTabs(), + onTap: (index) { + var params = { + "type": "loadData", + "type_id": _barModel.tabList[_tabController.index].typeId + }; + _pageBloc.sendEvent(params); + }, + ), + ); + } + + _buildTabs() { + List listWidget = List(); + for (int index = 0; index < _barModel.tabList.length; index++) { + var item = _barModel.tabList[index]; + + listWidget.add(Container( + child: Padding( + padding: const EdgeInsets.only( + bottom: 2, + top: 0, + ), + child: Text( + item.name, + style: TextStyle(fontSize: 26.sp), + ), + ), + )); + } + return listWidget; + } +} diff --git a/lib/widgets/hot_ranking/hot_tab_bar/model/hot_tabbar_model.dart b/lib/widgets/hot_ranking/hot_tab_bar/model/hot_tabbar_model.dart new file mode 100644 index 0000000..ccf54bb --- /dev/null +++ b/lib/widgets/hot_ranking/hot_tab_bar/model/hot_tabbar_model.dart @@ -0,0 +1,51 @@ +class HotRankingTabBarModel { + String indicatorColor; + List tabList; + + HotRankingTabBarModel({this.indicatorColor, this.tabList}); + + HotRankingTabBarModel.fromJson(Map json) { + indicatorColor = json['indicator_color']; + if (json['tab_list'] != null) { + tabList = new List(); + json['tab_list'].forEach((v) { + tabList.add(new TabList.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['indicator_color'] = this.indicatorColor; + if (this.tabList != null) { + data['tab_list'] = this.tabList.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class TabList { + String name; + String nameSelectColor; + String nameNoSelectColor; + String typeId; + + TabList( + {this.name, this.nameSelectColor, this.nameNoSelectColor, this.typeId}); + + TabList.fromJson(Map json) { + name = json['name']; + nameSelectColor = json['name_select_color']; + nameNoSelectColor = json['name_no_select_color']; + typeId = json['type_id']; + } + + Map toJson() { + final Map data = new Map(); + data['name'] = this.name; + data['name_select_color'] = this.nameSelectColor; + data['name_no_select_color'] = this.nameNoSelectColor; + data['type_id'] = this.typeId; + return data; + } +} diff --git a/lib/widgets/hot_ranking/hot_test.dart b/lib/widgets/hot_ranking/hot_test.dart index 2b2c64e..a1fc24d 100644 --- a/lib/widgets/hot_ranking/hot_test.dart +++ b/lib/widgets/hot_ranking/hot_test.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_container.dart'; -import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_sk.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'hot_ranking_list/hot_ranking_list.dart'; + class HotTest extends StatefulWidget { @override _HotTestState createState() => _HotTestState(); @@ -14,7 +14,7 @@ class _HotTestState extends State { // 屏幕适配初始化 ScreenUtil.init(context, width: 750, height: 1334); return Scaffold( - body: HotRankingContainer(), + body: HotRankingList(null), ); } } diff --git a/lib/widgets/wallet/wallet_appbar/wallet_appbar.dart b/lib/widgets/wallet/wallet_appbar/wallet_appbar.dart index 718950b..4f3d8ad 100644 --- a/lib/widgets/wallet/wallet_appbar/wallet_appbar.dart +++ b/lib/widgets/wallet/wallet_appbar/wallet_appbar.dart @@ -15,6 +15,7 @@ class WalletAppbar extends StatelessWidget { return Container( height: MediaQuery.of(context).padding.top + 56, child: AppBar( + elevation: 0, leading: Navigator.canPop(context) ? IconButton( icon: Icon(Icons.arrow_back_ios), @@ -22,11 +23,11 @@ class WalletAppbar extends StatelessWidget { Navigator.of(context).pop(); }) : Container(), - backgroundColor: HexColor.fromHex(model.appBarBgColor), + backgroundColor: HexColor.fromHex(model.appBarBgColor??""), centerTitle: true, title: Text( - model.appBarName, - style: TextStyle(color: HexColor.fromHex(model.appBarNameColor)), + model.appBarName??"", + style: TextStyle(color: HexColor.fromHex(model.appBarNameColor??"")), ), ), ); diff --git a/lib/widgets/wallet/wallet_appbar/wallet_appbar_sk.dart b/lib/widgets/wallet/wallet_appbar/wallet_appbar_sk.dart new file mode 100644 index 0000000..e0e0ba4 --- /dev/null +++ b/lib/widgets/wallet/wallet_appbar/wallet_appbar_sk.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; +import 'package:shimmer/shimmer.dart'; + +class WalletAppbarSkeleton extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container( + child: Shimmer.fromColors( + baseColor: Colors.grey[300], + highlightColor: Colors.grey[100], + child: Container( + child: AppBar( + backgroundColor: Colors.white, + ), + ), + ), + ); + } +} diff --git a/lib/widgets/wallet/wallet_data/model/wallet_header_model.dart b/lib/widgets/wallet/wallet_data/model/wallet_header_model.dart index 4fbd0a9..68cb2d0 100644 --- a/lib/widgets/wallet/wallet_data/model/wallet_header_model.dart +++ b/lib/widgets/wallet/wallet_data/model/wallet_header_model.dart @@ -3,6 +3,7 @@ class WalletHeaderModel { String headerAvatar; String headerCashOutText; String headerCashOutTextColor; + String headerCashOutKey; String headerCashOutBtnImg; List headerBottomList; @@ -11,6 +12,7 @@ class WalletHeaderModel { this.headerAvatar, this.headerCashOutText, this.headerCashOutTextColor, + this.headerCashOutKey, this.headerCashOutBtnImg, this.headerBottomList}); @@ -19,6 +21,7 @@ class WalletHeaderModel { headerAvatar = json['header_avatar']; headerCashOutText = json['header_cash_out_text']; headerCashOutTextColor = json['header_cash_out_text_color']; + headerCashOutKey = json['header_cash_out_key']; headerCashOutBtnImg = json['header_cash_out_btn_img']; if (json['header_bottom_list'] != null) { headerBottomList = new List(); @@ -34,6 +37,7 @@ class WalletHeaderModel { data['header_avatar'] = this.headerAvatar; data['header_cash_out_text'] = this.headerCashOutText; data['header_cash_out_text_color'] = this.headerCashOutTextColor; + data['header_cash_out_key'] = this.headerCashOutKey; data['header_cash_out_btn_img'] = this.headerCashOutBtnImg; if (this.headerBottomList != null) { data['header_bottom_list'] = @@ -44,50 +48,26 @@ class WalletHeaderModel { } class HeaderBottomList { - String totalText; - String totalTextColor; - String totalValueColor; - String cashOutText; - String cashOutTextColor; - String cashOutValueColor; - String unfinalText; - String unfinalTextColor; - String unfinalValueColor; + String text; + String textColor; + String valueColor; + String valueKey; - HeaderBottomList( - {this.totalText, - this.totalTextColor, - this.totalValueColor, - this.cashOutText, - this.cashOutTextColor, - this.cashOutValueColor, - this.unfinalText, - this.unfinalTextColor, - this.unfinalValueColor}); + HeaderBottomList({this.text, this.textColor, this.valueColor, this.valueKey}); HeaderBottomList.fromJson(Map json) { - totalText = json['total_text']; - totalTextColor = json['total_text_color']; - totalValueColor = json['total_value_color']; - cashOutText = json['cash_out_text']; - cashOutTextColor = json['cash_out_text_color']; - cashOutValueColor = json['cash_out_value_color']; - unfinalText = json['unfinal_text']; - unfinalTextColor = json['unfinal_text_color']; - unfinalValueColor = json['unfinal_value_color']; + text = json['text']; + textColor = json['text_color']; + valueColor = json['value_color']; + valueKey = json['value_key']; } Map toJson() { final Map data = new Map(); - data['total_text'] = this.totalText; - data['total_text_color'] = this.totalTextColor; - data['total_value_color'] = this.totalValueColor; - data['cash_out_text'] = this.cashOutText; - data['cash_out_text_color'] = this.cashOutTextColor; - data['cash_out_value_color'] = this.cashOutValueColor; - data['unfinal_text'] = this.unfinalText; - data['unfinal_text_color'] = this.unfinalTextColor; - data['unfinal_value_color'] = this.unfinalValueColor; + data['text'] = this.text; + data['text_color'] = this.textColor; + data['value_color'] = this.valueColor; + data['value_key'] = this.valueKey; return data; } } diff --git a/lib/widgets/wallet/wallet_data/wallet_data.dart b/lib/widgets/wallet/wallet_data/wallet_data.dart index eb1a4a3..b0ccccd 100644 --- a/lib/widgets/wallet/wallet_data/wallet_data.dart +++ b/lib/widgets/wallet/wallet_data/wallet_data.dart @@ -2,118 +2,159 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:zhiying_base_widget/widgets/wallet/wallet_data/model/wallet_header_model.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data_bloc.dart'; import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data_sk.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; -class WalletData extends StatelessWidget { +class WalletData extends StatefulWidget { final Map data; const WalletData(this.data, {Key key}) : super(key: key); @override - Widget build(BuildContext context) { + _WalletDataState createState() => _WalletDataState(); +} + +class _WalletDataState extends State { + Map data; + WalletDataBloc _bloc; + + Map dataModel; + + @override + void initState() { + data = widget.data; + _bloc = WalletDataBloc(); + _bloc.loadHeaderData(); + super.initState(); + } + @override + Widget build(BuildContext context) { print(data); - Map temp = json.decode(data['data']); - var model = WalletHeaderModel.fromJson(temp); - return Container( - width: double.infinity, - child: data == null - ? WalletDataSkeleton() - : Container( - margin: EdgeInsets.only(left: 12.5, right: 12.5,top: 10), - padding: EdgeInsets.only(left: 36.w, right: 26.w), - decoration: BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider(model.headerImg),fit: BoxFit.fill)), - height: 290.h, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - CachedNetworkImage( - imageUrl: model.headerAvatar, - height: 66.h, - width: 52.w, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + WalletHeaderModel model; + + return StreamBuilder( + stream: _bloc.outData, + builder: (context, asn) { + dataModel = asn.data; + if (data.containsKey('data')) { + Map temp = json.decode(data['data']); + model = WalletHeaderModel.fromJson(temp); + } else { + return WalletDataSkeleton(); + } + return Container( + width: double.infinity, + child: dataModel == null + ? WalletDataSkeleton() + : Container( + margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 10), + padding: EdgeInsets.only(left: 36.w, right: 26.w), + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + model?.headerImg ?? ""), + fit: BoxFit.fill)), + height: 290.h, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( children: [ - Text( - model.headerCashOutText, - style: TextStyle( - fontSize: 25.sp, - color: HexColor.fromHex( - model.headerCashOutTextColor)), - ), - Text( - "没数据", - style: TextStyle( - fontSize: 25.sp, - color: HexColor.fromHex( - model.headerCashOutTextColor)), + CachedNetworkImage( + imageUrl: model?.headerAvatar ?? "", + height: 66.h, + width: 52.h, + fit: BoxFit.fill, ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + model?.headerCashOutText ?? "", + style: TextStyle( + fontSize: 25.sp, + color: HexColor.fromHex( + model?.headerCashOutTextColor ?? + "")), + ), + Text( + dataModel.containsKey( + model.headerCashOutKey) + ? dataModel[model.headerCashOutKey] + : "", + style: TextStyle( + fontSize: 40.sp, + color: HexColor.fromHex( + model.headerCashOutTextColor)), + ), + ], + ), + ) ], ), - ) - ], - ), - GestureDetector( - child: Container( - decoration: BoxDecoration( - color: Colors.red, - borderRadius: BorderRadius.circular(10), - image: DecorationImage( - image: CachedNetworkImageProvider(""), - fit: BoxFit.fill)), - child: Padding( - padding: EdgeInsets.only( - left: 29.w, - right: 29.w, - top: 20.w, - bottom: 20.w), - child: Text( - "提现", - style: TextStyle(color: Colors.white), - ), - ), + GestureDetector( + child: Container( + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(10), + image: DecorationImage( + image: CachedNetworkImageProvider(""), + fit: BoxFit.fill)), + child: Padding( + padding: EdgeInsets.only( + left: 29.w, + right: 29.w, + top: 20.w, + bottom: 20.w), + child: Text( + "提现", + style: TextStyle(color: Colors.white), + ), + ), + ), + ) + ], + ), + Divider( + height: 1, ), - ) - ], - ), - Divider( - height: 1, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: _buildTopListItem(model?.headerBottomList)) - ], - ), - ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: _buildTopListItem(model)) + ], + ), + )); + }, ); } ///构建顶部Item - _buildTopListItem(List list) { + _buildTopListItem(WalletHeaderModel model) { List listWidget = List(); - for (var item in list) { + for (var item in model.headerBottomList) { listWidget.add(Column( mainAxisSize: MainAxisSize.min, children: [ Text( - "9999", - style: TextStyle(color: Colors.red, fontSize: 30.sp), + dataModel.containsKey(item.valueKey) + ? dataModel[item.valueKey] + : "", + style: TextStyle( + color: HexColor.fromHex(item.valueColor), fontSize: 30.sp), ), Text( - "累计到账(元)", - style: TextStyle(color: Colors.grey, fontSize: 22.sp), + item.text, + style: TextStyle( + color: HexColor.fromHex(item.textColor), fontSize: 22.sp), ), ], )); diff --git a/lib/widgets/wallet/wallet_data/wallet_data_bloc.dart b/lib/widgets/wallet/wallet_data/wallet_data_bloc.dart new file mode 100644 index 0000000..bef6a29 --- /dev/null +++ b/lib/widgets/wallet/wallet_data/wallet_data_bloc.dart @@ -0,0 +1,29 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:zhiying_comm/util/base_bloc.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; + +class WalletDataBloc extends BlocBase { + StreamController> _dataController = + StreamController>(); + + Stream> get outData => _dataController.stream; + + + @override + void dispose() { + _dataController.close(); + _dataController = null; + } + + /// + /// 加载头部数据 + /// + loadHeaderData() async { + await NetUtil.request("/api/v1/user/wallet/header",onSuccess: (data){ + _dataController.add(data); + }); + } + +} diff --git a/lib/widgets/wallet/wallet_data/wallet_data_creater.dart b/lib/widgets/wallet/wallet_data/wallet_data_creater.dart index cf2f551..10e95a6 100644 --- a/lib/widgets/wallet/wallet_data/wallet_data_creater.dart +++ b/lib/widgets/wallet/wallet_data/wallet_data_creater.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; +import 'wallet_data.dart'; + class WalletDataCreater extends WidgetCreater { @override List createWidgets(Map model) { diff --git a/lib/widgets/wallet/wallet_detail/model/wallet_detail_data_model.dart b/lib/widgets/wallet/wallet_detail/model/wallet_detail_data_model.dart new file mode 100644 index 0000000..f5e59c5 --- /dev/null +++ b/lib/widgets/wallet/wallet_detail/model/wallet_detail_data_model.dart @@ -0,0 +1,45 @@ +class WalletDetailDataModel { + String type; + String finish; + String selfbuyEstimatedIncome; + String selfbuyPayOrder; + String directPromoteEstimatedIncome; + String directPromotePayOrder; + String indirectPromoteEstimatedIncome; + String indirectPromotePayOrder; + + WalletDetailDataModel( + {this.type, + this.finish, + this.selfbuyEstimatedIncome, + this.selfbuyPayOrder, + this.directPromoteEstimatedIncome, + this.directPromotePayOrder, + this.indirectPromoteEstimatedIncome, + this.indirectPromotePayOrder}); + + WalletDetailDataModel.fromJson(Map json) { + type = json['type']; + finish = json['finish']; + selfbuyEstimatedIncome = json['selfbuy_estimated_income']; + selfbuyPayOrder = json['selfbuy_pay_order']; + directPromoteEstimatedIncome = json['direct_promote_estimated_income']; + directPromotePayOrder = json['direct_promote_pay_order']; + indirectPromoteEstimatedIncome = json['indirect_promote_estimated_income']; + indirectPromotePayOrder = json['indirect_promote_pay_order']; + } + + Map toJson() { + final Map data = new Map(); + data['type'] = this.type; + data['finish'] = this.finish; + data['selfbuy_estimated_income'] = this.selfbuyEstimatedIncome; + data['selfbuy_pay_order'] = this.selfbuyPayOrder; + data['direct_promote_estimated_income'] = this.directPromoteEstimatedIncome; + data['direct_promote_pay_order'] = this.directPromotePayOrder; + data['indirect_promote_estimated_income'] = + this.indirectPromoteEstimatedIncome; + data['indirect_promote_pay_order'] = this.indirectPromotePayOrder; + return data; + } +} diff --git a/lib/widgets/wallet/wallet_detail/model/wallet_detail_model.dart b/lib/widgets/wallet/wallet_detail/model/wallet_detail_model.dart index 37432a8..2515fd0 100644 --- a/lib/widgets/wallet/wallet_detail/model/wallet_detail_model.dart +++ b/lib/widgets/wallet/wallet_detail/model/wallet_detail_model.dart @@ -72,27 +72,46 @@ class Providers { } class DateList { + String isDefault; String text; + String type; String textSelectColor; String textUnselectColor; String btnImg; + String btnNoColorImg; + String btnColorImg; DateList( - {this.text, this.textSelectColor, this.textUnselectColor, this.btnImg}); + {this.isDefault, + this.text, + this.type, + this.textSelectColor, + this.textUnselectColor, + this.btnImg, + this.btnNoColorImg, + this.btnColorImg}); DateList.fromJson(Map json) { + isDefault = json['is_default']; text = json['text']; + type = json['type']; textSelectColor = json['text_select_color']; textUnselectColor = json['text_unselect_color']; btnImg = json['btn_img']; + btnNoColorImg = json['btn_no_color_img']; + btnColorImg = json['btn_color_img']; } Map toJson() { final Map data = new Map(); + data['is_default'] = this.isDefault; data['text'] = this.text; + data['type'] = this.type; data['text_select_color'] = this.textSelectColor; data['text_unselect_color'] = this.textUnselectColor; data['btn_img'] = this.btnImg; + data['btn_no_color_img'] = this.btnNoColorImg; + data['btn_color_img'] = this.btnColorImg; return data; } } @@ -139,49 +158,62 @@ class ProviderDashbord { } class Finish { + String isShow; String text; String textColor; String valueColor; + String vauleKey; String bgImg; + String tipIcon; + String tipText; - Finish({this.text, this.textColor, this.valueColor, this.bgImg}); + Finish( + {this.isShow, + this.text, + this.textColor, + this.valueColor, + this.vauleKey, + this.bgImg, + this.tipIcon, + this.tipText}); Finish.fromJson(Map json) { + isShow = json['is_show']; text = json['text']; textColor = json['text_color']; valueColor = json['value_color']; + vauleKey = json['vaule_key']; bgImg = json['bg_img']; + tipIcon = json['tip_icon']; + tipText = json['tip_text']; } Map toJson() { final Map data = new Map(); + data['is_show'] = this.isShow; data['text'] = this.text; data['text_color'] = this.textColor; data['value_color'] = this.valueColor; + data['vaule_key'] = this.vauleKey; data['bg_img'] = this.bgImg; + data['tip_icon'] = this.tipIcon; + data['tip_text'] = this.tipText; return data; } } class SelfBuy { + String isShow; String title; String titleColor; - String leftBgImg; - String rightBgImg; List itemList; - SelfBuy( - {this.title, - this.titleColor, - this.leftBgImg, - this.rightBgImg, - this.itemList}); + SelfBuy({this.isShow, this.title, this.titleColor, this.itemList}); SelfBuy.fromJson(Map json) { + isShow = json['is_show']; title = json['title']; titleColor = json['title_color']; - leftBgImg = json['left_bg_img']; - rightBgImg = json['right_bg_img']; if (json['list'] != null) { itemList = new List(); json['list'].forEach((v) { @@ -192,10 +224,9 @@ class SelfBuy { Map toJson() { final Map data = new Map(); + data['is_show'] = this.isShow; data['title'] = this.title; data['title_color'] = this.titleColor; - data['left_bg_img'] = this.leftBgImg; - data['right_bg_img'] = this.rightBgImg; if (this.itemList != null) { data['list'] = this.itemList.map((v) => v.toJson()).toList(); } @@ -204,23 +235,42 @@ class SelfBuy { } class ItemList { + String bgImg; String text; String textColor; + String vauleKey; String valueColor; + String tipIcon; + String tipText; - ItemList({this.text, this.textColor, this.valueColor}); + ItemList( + {this.bgImg, + this.text, + this.textColor, + this.vauleKey, + this.valueColor, + this.tipIcon, + this.tipText}); ItemList.fromJson(Map json) { + bgImg = json['bg_img']; text = json['text']; textColor = json['text_color']; + vauleKey = json['vaule_key']; valueColor = json['value_color']; + tipIcon = json['tip_icon']; + tipText = json['tip_text']; } Map toJson() { final Map data = new Map(); + data['bg_img'] = this.bgImg; data['text'] = this.text; data['text_color'] = this.textColor; + data['vaule_key'] = this.vauleKey; data['value_color'] = this.valueColor; + data['tip_icon'] = this.tipIcon; + data['tip_text'] = this.tipText; return data; } } diff --git a/lib/widgets/wallet/wallet_detail/wallet_detail.dart b/lib/widgets/wallet/wallet_detail/wallet_detail.dart index bd1c2c9..18d90d3 100644 --- a/lib/widgets/wallet/wallet_detail/wallet_detail.dart +++ b/lib/widgets/wallet/wallet_detail/wallet_detail.dart @@ -2,9 +2,12 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:zhiying_base_widget/dialog/tip_dialog/tip_dialog.dart'; import 'package:zhiying_base_widget/pages/withdraw_page/withdraw_page.dart'; import 'package:zhiying_base_widget/widgets/home/home_quick_entry/cached_network_image_util.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/model/wallet_detail_data_model.dart'; import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/model/wallet_detail_model.dart'; +import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/wallet_detail_bloc.dart'; import 'package:zhiying_base_widget/widgets/wallet/wallet_detail/wallet_detail_sk.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:cached_network_image/cached_network_image.dart'; @@ -25,7 +28,11 @@ class WalletDetail extends StatefulWidget { class _WalletDetailState extends State with TickerProviderStateMixin { WalletDetailModel _model; + TabController _tabController; + + WalletDetailBloc _bloc; + @override void initState() { if (widget.data != null) { @@ -33,92 +40,139 @@ class _WalletDetailState extends State _tabController = TabController(length: _model.providers.length, vsync: this); } + _bloc = new WalletDetailBloc(); + _bloc.loadData(_model.providers[0].type); super.initState(); } @override Widget build(BuildContext context) { - return Container( - margin: EdgeInsets.only(left: 12.5, right: 12.5), - child: Column( - children: [ - Container( - child: TabBar( - // isScrollable: true, - controller: _tabController, - tabs: _buildTabs()), - ), - Container( - height: 75.h, - child: ListView.builder( - padding: EdgeInsets.only(top: 16), - itemCount: _model.dateList.length, - scrollDirection: Axis.horizontal, - itemBuilder: _buildTimeItem), - ), - Container( - height: 126.h, - margin: EdgeInsets.only(top: 16), - width: double.infinity, - decoration: BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider( - _model.providerDashbord.finish.bgImg), - fit: BoxFit.fill)), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Row( + return StreamBuilder( + stream: _bloc.outData, + builder: (context, asyn) { + if (_bloc.listDataModel.length == 0) { + ///骨架图 + return WalletDetailSkeleton(); + } + return Container( + decoration: BoxDecoration( + color: Colors.white, borderRadius: BorderRadius.circular(8)), + margin: + EdgeInsets.only(left: 12.5, right: 12.5, top: 15.h, bottom: 15.h), + padding: EdgeInsets.only(bottom: 15.h), + child: Column( + children: [ + Container( + child: TabBar( + isScrollable: true, + unselectedLabelColor: + HexColor.fromHex(_model.providers[0].unselectColor), + labelColor: + HexColor.fromHex(_model.providers[0].selectColor), + controller: _tabController, + indicatorColor: + HexColor.fromHex(_model.providers[0].selectColor), + indicatorSize: TabBarIndicatorSize.label, + onTap: (index) { + ///变更平台 + changeProvider(_model.providers[index].type); + }, + tabs: _buildTabs()), + ), + + ///日期选择 + Container( + height: 75.h, + child: ListView.builder( + padding: EdgeInsets.only(top: 16,left: 16.w), + itemCount: _model.dateList.length, + scrollDirection: Axis.horizontal, + itemBuilder: _buildTimeItem), + ), + Container( + height: 126.h, + margin: EdgeInsets.only(top: 16, left: 30.w, right: 30.w), + width: double.infinity, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + _model.providerDashbord.finish.bgImg), + fit: BoxFit.fill)), + child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text( - "已结算", - style: TextStyle(color: Colors.black, fontSize: 22.sp), - ), - InkWell( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: CachedNetworkImage( - imageUrl: "", - width: 20.h, - height: 20.h, - fit: BoxFit.fill, + _model.providerDashbord.finish.isShow == "1" + ? Container() + : Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + _model.providerDashbord.finish.text, + style: TextStyle( + fontSize: 28.sp, + color: HexColor.fromHex(_model + .providerDashbord.finish.textColor)), + ), ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + _model.providerDashbord.finish.text ?? "", + style: + TextStyle(color: Colors.black, fontSize: 22.sp), ), - onTap: () { - ///问好 - }) + InkWell( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: CachedNetworkImage( + imageUrl: + _model.providerDashbord.finish.tipIcon ?? + "", + width: 20.h, + height: 20.h, + fit: BoxFit.fill, + ), + ), + onTap: () { + ///显示弹窗 + showTipDialog( + null, _model.providerDashbord.finish.tipText); + }) + ], + ), + Text( + _bloc.selectDateData.finish ?? "", + style: TextStyle(color: Colors.red, fontSize: 40.sp), + ) ], ), - Text( - "158", - style: TextStyle(color: Colors.red, fontSize: 40.sp), - ) - ], - ), + ), + Container( + child: ListView.builder( + padding: EdgeInsets.all(0), + itemCount: 3, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (context, index) { + return _buildBottomItem( + context, index, _model.providerDashbord); + }), + ) + ], ), - Container( - child: ListView.builder( - itemCount: 3, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (context, index) { - return _buildBottomItem( - context, index, _model.providerDashbord); - }), - ) - ], - ), + ); + }, ); } + ///平台选择 _buildTabs() { List listWidget = List(); for (var item in _model.providers) { listWidget.add(Tab( child: Text( item.name, - style: TextStyle(color: Colors.grey), + style: TextStyle(fontSize: 28.sp), ), )); } @@ -127,53 +181,173 @@ class _WalletDetailState extends State Widget _buildTimeItem(BuildContext context, int index) { var item = _model.dateList[index]; - return Container( - margin: EdgeInsets.only(top: 0, left: 8, right: 8), - decoration: BoxDecoration( - color: Colors.grey[200], borderRadius: BorderRadius.circular(50)), - child: Padding( - padding: const EdgeInsets.only(left: 16, right: 16), - child: Center( - child: Text( - item.text, - style: TextStyle(color: Colors.grey), - )), + return InkWell( + child: Container( + margin: EdgeInsets.only(top: 0, left: 8, right: 8), + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + item.type == _bloc.selectDateData.type + ? item.btnImg ?? "" + : item.btnNoColorImg ?? ""), + fit: BoxFit.fitWidth), + ), + child: Padding( + padding: const EdgeInsets.only(left: 16, right: 16), + child: Center( + child: Text( + item.text, + style: TextStyle( + fontSize: 22.sp, + color: HexColor.fromHex(item.type == _bloc.selectDateData.type + ? item.textSelectColor + : item.textUnselectColor)), + )), + ), ), + onTap: () { + for (var select in _bloc.listDataModel) { + if (select.type == item.type) { + _bloc.selectDay = item.type; + _bloc.refresh(); + return; + } + } + }, ); } + ///底部显示 Widget _buildBottomItem( BuildContext context, int index, ProviderDashbord dashbord) { - var item = dashbord.selfBuy; + SelfBuy item; + if (index == 0) { + item = dashbord.selfBuy; + } else if (index == 1) { + item = dashbord.directPromote; + } else { + item = dashbord.indirectPromote; + } + + var dataMap = _bloc.selectDateData.toJson(); + return Container( child: Column( children: [ - Text( - item.title, - style: TextStyle(color: HexColor.fromHex(item.titleColor)), + SizedBox( + height: 15.h, + ), + item.isShow == "0" + ? Container() + : Text( + item.title, + style: TextStyle( + color: HexColor.fromHex(item.titleColor), + fontSize: 28.sp), + ), + SizedBox( + height: 15.h, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: Container( - height: 123.h, - margin: EdgeInsets.only(right: 8), - decoration: BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider(item?.leftBgImg ?? ''), - fit: BoxFit.fill)), - child: Center(child: Text("ddd")), - ), + height: 123.h, + margin: EdgeInsets.only(right: 8, left: 30.w), + padding: EdgeInsets.only(left: 20.w), + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + item.itemList[0].bgImg ?? ""), + fit: BoxFit.fill)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + item.itemList[0].text ?? "", + style: TextStyle( + fontSize: 22.sp, + color: HexColor.fromHex( + item.itemList[0].textColor)), + ), + InkWell( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: CachedNetworkImage( + imageUrl: item.itemList[0].tipIcon, + width: 20.h, + height: 20.h, + fit: BoxFit.fill, + ), + ), + onTap: () { + //弹窗 + showTipDialog(null, item.itemList[0].tipText); + }, + ) + ], + ), + Text(dataMap[item.itemList[0].vauleKey], + style: TextStyle( + fontSize: 34.sp, + color: + HexColor.fromHex(item.itemList[1].valueColor), + )) + ], + )), ), Expanded( child: Container( - height: 123.h, - margin: EdgeInsets.only(left: 8), + height: 123.h, + margin: EdgeInsets.only(left: 8, right: 30.w), + padding: EdgeInsets.only(left: 20.w), decoration: BoxDecoration( image: DecorationImage( - image: CachedNetworkImageProvider(item?.rightBgImg ?? ''))), - child: Center(child: Text("dddd")), + image: CachedNetworkImageProvider( + item.itemList[1].bgImg ?? ""), + fit: BoxFit.fill)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + item.itemList[1].text ?? "", + style: TextStyle( + fontSize: 22.sp, + color: + HexColor.fromHex(item.itemList[1].textColor)), + ), + InkWell( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: CachedNetworkImage( + imageUrl: item.itemList[1].tipIcon, + width: 20.h, + height: 20.h, + fit: BoxFit.fill, + ), + ), + onTap: () { + //弹窗 + showTipDialog(null, item.itemList[1].tipText); + }, + ) + ], + ), + Text( + dataMap[item.itemList[1].vauleKey], + style: TextStyle( + fontSize: 34.sp, + color: HexColor.fromHex(item.itemList[1].valueColor)), + ) + ], + ), )) ], ) @@ -181,4 +355,14 @@ class _WalletDetailState extends State ), ); } + + ///变更平台 + void changeProvider(String type) { + _bloc.loadData(type); + } + + ///显示提示框 + void showTipDialog(String title, String content) { + showDialog(context: context, child: TipDialog(content: content)); + } } diff --git a/lib/widgets/wallet/wallet_detail/wallet_detail_bloc.dart b/lib/widgets/wallet/wallet_detail/wallet_detail_bloc.dart new file mode 100644 index 0000000..dc2fb94 --- /dev/null +++ b/lib/widgets/wallet/wallet_detail/wallet_detail_bloc.dart @@ -0,0 +1,52 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:zhiying_comm/util/base_bloc.dart'; +import 'package:zhiying_comm/zhiying_comm.dart'; + +import 'model/wallet_detail_data_model.dart'; + +class WalletDetailBloc extends BlocBase { + StreamController _dataController = + StreamController(); + + Stream get outData => _dataController.stream; + + ///选中的某一时间的数据 + WalletDetailDataModel selectDateData; + + String selectDay = "today"; + + List listDataModel = new List(); + + @override + void dispose() { + _dataController.close(); + _dataController = null; + } + + /// + /// 加载头部数据 + /// + loadData(String type) async { + await NetUtil.request("/api/v1/user/wallet/" + type, onSuccess: (data) { + listDataModel.clear(); + listDataModel.addAll(List.from(data).map((v) { + return WalletDetailDataModel.fromJson(v); + }).toList()); + refresh(); + }); + } + + + ///刷新页面 + refresh() { + for (var item in listDataModel) { + if (selectDay == item.type) { + selectDateData = item; + _dataController.add(selectDateData); + return; + } + } + } +} diff --git a/lib/widgets/wallet/wallet_detail/wallet_detail_sk.dart b/lib/widgets/wallet/wallet_detail/wallet_detail_sk.dart index 9092382..a9fdb46 100644 --- a/lib/widgets/wallet/wallet_detail/wallet_detail_sk.dart +++ b/lib/widgets/wallet/wallet_detail/wallet_detail_sk.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:shimmer/shimmer.dart'; class WalletDetailSkeleton extends StatelessWidget { + @override Widget build(BuildContext context) { return Container( @@ -12,23 +13,93 @@ class WalletDetailSkeleton extends StatelessWidget { child: Shimmer.fromColors( baseColor: Colors.grey[300], highlightColor: Colors.grey[100], - child: Row( + child: Column( children: [ Container( - width: 18, - height: 18, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(9), - color: Colors.white), + width: double.infinity, + child: _createTab(), ), Container( - margin: EdgeInsets.only(left: 8), - width: 120, - height: 14, - color: Colors.white, + margin: EdgeInsets.only(top: 6), + width: double.infinity, + child: _createTags(), ), + Container( + margin: EdgeInsets.only(top: 6), + height: 64, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(7.5), + color: Colors.white), + ), + _createDataRow(), + _createDataRow(), + _createDataRow(), ], )), ); } + + Widget _createTab() { + return Row( + children: List.generate(5, (index) { + return Expanded( + child: Container( + height: 14, + margin: EdgeInsets.only(left: 10, right: 10, top: 4, bottom: 4), + color: Colors.white, + ), + ); + }), + ); + } + + Widget _createTags() { + return Row( + children: List.generate(5, (index) { + return Expanded( + child: Container( + height: 20, + margin: EdgeInsets.only(left: 10, right: 10, top: 4, bottom: 4), + decoration: BoxDecoration( + color: Colors.white, borderRadius: BorderRadius.circular(10)), + ), + ); + }), + ); + } + + Widget _createDataRow() { + return Column( + children: [ + Container( + margin: EdgeInsets.only(top: 8, bottom: 2), + width: 64, + height: 18, + color: Colors.white, + ), + Row( + children: [ + Expanded( + child: Container( + margin: EdgeInsets.only(top: 6, right: 5), + height: 64, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(7.5), + color: Colors.white), + ), + ), + Expanded( + child: Container( + margin: EdgeInsets.only(top: 6, left: 5), + height: 64, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(7.5), + color: Colors.white), + ), + ) + ], + ) + ], + ); + } } diff --git a/lib/widgets/wallet/wallet_income/wallet_income_sk.dart b/lib/widgets/wallet/wallet_income/wallet_income_sk.dart index 0a23e34..d7e165d 100644 --- a/lib/widgets/wallet/wallet_income/wallet_income_sk.dart +++ b/lib/widgets/wallet/wallet_income/wallet_income_sk.dart @@ -12,93 +12,23 @@ class WalletIncomeSkeleton extends StatelessWidget { child: Shimmer.fromColors( baseColor: Colors.grey[300], highlightColor: Colors.grey[100], - child: Column( + child: Row( children: [ Container( - width: double.infinity, - child: _createTab(), - ), - Container( - margin: EdgeInsets.only(top: 6), - width: double.infinity, - child: _createTags(), - ), - Container( - margin: EdgeInsets.only(top: 6), - height: 64, + width: 18, + height: 18, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(7.5), + borderRadius: BorderRadius.circular(9), color: Colors.white), ), - _createDataRow(), - _createDataRow(), - _createDataRow(), + Container( + margin: EdgeInsets.only(left: 8), + width: 120, + height: 14, + color: Colors.white, + ), ], )), ); } - - Widget _createTab() { - return Row( - children: List.generate(5, (index) { - return Expanded( - child: Container( - height: 14, - margin: EdgeInsets.only(left: 10, right: 10, top: 4, bottom: 4), - color: Colors.white, - ), - ); - }), - ); - } - - Widget _createTags() { - return Row( - children: List.generate(5, (index) { - return Expanded( - child: Container( - height: 20, - margin: EdgeInsets.only(left: 10, right: 10, top: 4, bottom: 4), - decoration: BoxDecoration( - color: Colors.white, borderRadius: BorderRadius.circular(10)), - ), - ); - }), - ); - } - - Widget _createDataRow() { - return Column( - children: [ - Container( - margin: EdgeInsets.only(top: 8, bottom: 2), - width: 64, - height: 18, - color: Colors.white, - ), - Row( - children: [ - Expanded( - child: Container( - margin: EdgeInsets.only(top: 6, right: 5), - height: 64, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(7.5), - color: Colors.white), - ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only(top: 6, left: 5), - height: 64, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(7.5), - color: Colors.white), - ), - ) - ], - ) - ], - ); - } }