@@ -620,7 +620,7 @@ | |||
"languageVersion": "2.1" | |||
} | |||
], | |||
"generated": "2020-10-14T08:58:23.460236Z", | |||
"generated": "2020-10-14T11:33:32.742369Z", | |||
"generator": "pub", | |||
"generatorVersion": "2.8.2" | |||
} |
@@ -1,59 +1,56 @@ | |||
package cn.zhios.zhiying_base_widget_example; | |||
import cn.zhios.zhiying_comm.ZhiyingCommPlugin; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommHandler; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommNativable; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommNative; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommNativeResult; | |||
import androidx.annotation.NonNull; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
import androidx.annotation.NonNull; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommHandler; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommNativable; | |||
import cn.zhios.zhiying_comm.ZhiyingFlutterCommNative; | |||
import io.flutter.embedding.android.FlutterActivity; | |||
import io.flutter.embedding.engine.FlutterEngine; | |||
import io.flutter.plugins.GeneratedPluginRegistrant; | |||
public class MainActivity extends FlutterActivity implements ZhiyingFlutterCommNativable { | |||
@Override | |||
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { | |||
GeneratedPluginRegistrant.registerWith(flutterEngine); | |||
ZhiyingFlutterCommNative.getInstance().regist(this); | |||
} | |||
@Override | |||
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { | |||
GeneratedPluginRegistrant.registerWith(flutterEngine); | |||
ZhiyingFlutterCommNative.getInstance().regist(this); | |||
} | |||
boolean localDebug = false; | |||
boolean localDebug = false; | |||
@Override | |||
public void openPage(Map params) { | |||
@Override | |||
public void openPage(Map params) { | |||
} | |||
} | |||
@Override | |||
public void openNativePage(Map params) { | |||
@Override | |||
public void openNativePage(Map params) { | |||
} | |||
} | |||
@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://192.168.0.113:5000"); | |||
map.put("master_id", "123456"); | |||
map.put("secret_key", "123456"); | |||
@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://192.168.0.113:5000"); | |||
map.put("master_id", "123456"); | |||
map.put("secret_key", "123456"); | |||
// map.put("token", "123465"); | |||
return map; | |||
} | |||
@Override | |||
public void invokeMethod(String method, Map<String, Object> params, ZhiyingFlutterCommHandler handler) { | |||
return; | |||
} | |||
@Override | |||
protected void onDestroy() { | |||
super.onDestroy(); | |||
ZhiyingFlutterCommNative.getInstance().unregist(); | |||
} | |||
return map; | |||
} | |||
@Override | |||
public void invokeMethod(String method, Map<String, Object> params, ZhiyingFlutterCommHandler handler) { | |||
return; | |||
} | |||
@Override | |||
protected void onDestroy() { | |||
super.onDestroy(); | |||
ZhiyingFlutterCommNative.getInstance().unregist(); | |||
} | |||
} |
@@ -1,10 +1,10 @@ | |||
import 'package:flutter/material.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/coupon/counpon_sk.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/footer/goods_details_footer_sk.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/slide_banner/goods_details_slide_banner_sk.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/store/store_sk.dart'; | |||
import 'package:zhiying_base_widget/widgets/goods_details/upgrade_tip/upgrade_tip_sk.dart'; | |||
import 'package:zhiying_comm/util/shimmer_util.dart'; | |||
import 'package:flutter/material.dart'; | |||
class GoodsDetailsPageSkeleton extends StatelessWidget { | |||
@override | |||
@@ -13,27 +13,31 @@ class GoodsDetailsPageSkeleton extends StatelessWidget { | |||
backgroundColor: Colors.white, | |||
body: Stack( | |||
children: <Widget>[ | |||
Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
children: <Widget>[ | |||
/// 轮播图 | |||
GoodsDetailsSlideBannerSkeleton(), | |||
SizedBox(height: 12.5), | |||
SingleChildScrollView( | |||
child: Column( | |||
crossAxisAlignment: CrossAxisAlignment.start, | |||
children: <Widget>[ | |||
/// 轮播图 | |||
GoodsDetailsSlideBannerSkeleton(), | |||
SizedBox(height: 12.5), | |||
/// 更新 | |||
UpgradeTipSkeleton(), | |||
/// 更新 | |||
UpgradeTipSkeleton(), | |||
/// 商店 | |||
StoreSkeleton(), | |||
/// 商店 | |||
StoreSkeleton(), | |||
/// 优惠卷 | |||
CounponSkeleton(), | |||
SizedBox(height: 15), | |||
/// 优惠卷 | |||
CounponSkeleton(), | |||
SizedBox(height: 15), | |||
/// 图片 | |||
ShimmerUtil.getShimmerWidget(width: double.infinity, height: 40), | |||
ShimmerUtil.getShimmerWidget(width: double.infinity, height: 40), | |||
], | |||
/// 图片 | |||
ShimmerUtil.getShimmerWidget( | |||
width: double.infinity, height: 40), | |||
ShimmerUtil.getShimmerWidget( | |||
width: double.infinity, height: 40), | |||
], | |||
), | |||
), | |||
Align( | |||
alignment: Alignment.bottomCenter, | |||
@@ -66,15 +66,36 @@ class _GooddsDetailsFooterContainerState | |||
void _collectOnClick() {} | |||
/// 分享 | |||
void _shareOnClick(GoodsDetailsFooterModel model) { | |||
void _shareOnClick(GoodsDetailsFooterModel model) async { | |||
print(_user?.toString()); | |||
if (_user?.token == null || _user.token == '') { | |||
print('need login...'); | |||
RouterUtil.goLogin(context); | |||
return; | |||
} | |||
Navigator.of(context).push( | |||
MaterialPageRoute(builder: (context) => GoodsSharePage(widget.model))); | |||
String d = widget.model['data']; | |||
Map<String, dynamic> data = jsonDecode(d); | |||
Map shareArgs = data['share_url_args'] ?? {}; | |||
String shopType = shareArgs['type']; | |||
if (data.containsKey('buy_url')) { | |||
String url = data['buy_url']; | |||
if (url == null || url == '') { | |||
Fluttertoast.showToast(msg: '购买链接不存在'); | |||
return; | |||
} | |||
if (shopType == 'taobao') { | |||
bool isAuth = await TaobaoAuth.isAuth(); | |||
if (!isAuth) { | |||
TaobaoAuth.auth(context); | |||
return; | |||
} | |||
} | |||
Navigator.of(context).push(MaterialPageRoute( | |||
builder: (context) => GoodsSharePage(widget.model))); | |||
} | |||
} | |||
/// 自购省 | |||
@@ -99,7 +120,14 @@ class _GooddsDetailsFooterContainerState | |||
return; | |||
} | |||
if (shopType == 'taobao') { | |||
TradeResult result = await FlutterAlibc.openByUrl(url: url,backUrl: "alisdk://"); | |||
bool isAuth = await TaobaoAuth.isAuth(); | |||
if (!isAuth) { | |||
TaobaoAuth.auth(context); | |||
return; | |||
} | |||
TradeResult result = | |||
await FlutterAlibc.openByUrl(url: url, backUrl: "alisdk://"); | |||
Logger.debug('${result.errorCode} ${result.errorMessage} '); | |||
} else { | |||
RouterUtil.openWebview(url, context); | |||
@@ -6,11 +6,10 @@ import 'package:provider/provider.dart'; | |||
import 'package:zhiying_base_widget/widgets/home/home_auth/models/home_auth_model.dart'; | |||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||
class HomeAuth extends StatelessWidget { | |||
class HomeAuth extends StatefulWidget { | |||
final Map<String, dynamic> data; | |||
Map<String, dynamic> _json; | |||
HomeAuthModel _style; | |||
UserInfoModel _user; | |||
HomeAuth(this.data, {Key key}) : super(key: key) { | |||
String d = data['data']; | |||
@@ -18,22 +17,44 @@ class HomeAuth extends StatelessWidget { | |||
_style = HomeAuthModel.fromJson(Map<String, dynamic>.from(_json)); | |||
} | |||
@override | |||
_HomeAuthState createState() => _HomeAuthState(); | |||
} | |||
class _HomeAuthState extends State<HomeAuth> { | |||
UserInfoModel _user; | |||
bool _isAuth = false; | |||
@override | |||
void initState() { | |||
TaobaoAuth.isAuth().then((isAuth) { | |||
_isAuth = isAuth; | |||
setState(() {}); | |||
}); | |||
super.initState(); | |||
} | |||
@override | |||
Widget build(BuildContext context) { | |||
_user = Provider.of<UserInfoNotifier>(context).userInfo; | |||
if (_isAuth) { | |||
// 授权过,不显示 | |||
return Container(); | |||
} | |||
return Container( | |||
height: 34, | |||
width: double.infinity, | |||
margin: EdgeInsets.only(left: 12, right: 12, top: 4, bottom: 4), | |||
decoration: BoxDecoration( | |||
color: HexColor.fromHex(_style?.taoaboTipBgColor ?? 'ffffff'), | |||
color: HexColor.fromHex(widget._style?.taoaboTipBgColor ?? 'ffffff'), | |||
borderRadius: BorderRadius.circular(17), | |||
boxShadow: [ | |||
BoxShadow( | |||
offset: Offset(2, 1), //x,y轴 | |||
color: | |||
HexColor.fromHex(_style?.taoaboTipShadowColor ?? '767676') | |||
.withAlpha(70), //投影颜色 | |||
color: HexColor.fromHex( | |||
widget._style?.taoaboTipShadowColor ?? '767676') | |||
.withAlpha(70), //投影颜色 | |||
blurRadius: 5 //投影距离 | |||
) | |||
]), | |||
@@ -44,18 +65,19 @@ class HomeAuth extends StatelessWidget { | |||
width: 20, | |||
height: 20, | |||
child: CachedNetworkImage( | |||
imageUrl: _style.taobaoAuthIcon, | |||
imageUrl: widget._style.taobaoAuthIcon, | |||
fit: BoxFit.contain, | |||
), | |||
), | |||
Expanded( | |||
child: Text( | |||
_style?.taoaboTipText ?? '', | |||
widget._style?.taoaboTipText ?? '', | |||
maxLines: 1, | |||
style: TextStyle( | |||
fontSize: 12, | |||
fontWeight: FontWeight.bold, | |||
color: HexColor.fromHex(_style?.taoaboTipTextColor ?? '333333'), | |||
color: HexColor.fromHex( | |||
widget._style?.taoaboTipTextColor ?? '333333'), | |||
), | |||
), | |||
), | |||
@@ -64,15 +86,15 @@ class HomeAuth extends StatelessWidget { | |||
padding: EdgeInsets.only(left: 12, right: 12, top: 3, bottom: 3), | |||
margin: EdgeInsets.only(left: 8, right: 8), | |||
decoration: BoxDecoration( | |||
color: | |||
HexColor.fromHex(_style?.taoaboTipBtnBgColor ?? 'FF4242'), | |||
color: HexColor.fromHex( | |||
widget._style?.taoaboTipBtnBgColor ?? 'FF4242'), | |||
borderRadius: BorderRadius.circular(20)), | |||
child: Text( | |||
_style?.taoaboTipBtnText ?? '', | |||
widget._style?.taoaboTipBtnText ?? '', | |||
style: TextStyle( | |||
fontSize: 12, | |||
color: HexColor.fromHex( | |||
_style?.taoaboTipBtnTextColor ?? 'ffffff'), | |||
widget._style?.taoaboTipBtnTextColor ?? 'ffffff'), | |||
), | |||
), | |||
), | |||
@@ -82,13 +104,7 @@ class HomeAuth extends StatelessWidget { | |||
RouterUtil.goLogin(context); | |||
return; | |||
} | |||
bool isAuth = await TaobaoAuth.isAuth(); | |||
if (!isAuth) { | |||
TaobaoAuth.auth(context); | |||
} else { | |||
Logger.debug('您已经授权过了'); | |||
} | |||
TaobaoAuth.auth(context); | |||
}, | |||
), | |||
], | |||
@@ -1,10 +1,10 @@ | |||
import 'dart:convert'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
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'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
class HotRankingAppBar extends StatelessWidget { | |||
final Map<String, dynamic> data; | |||
@@ -15,18 +15,15 @@ class HotRankingAppBar extends StatelessWidget { | |||
Widget build(BuildContext context) { | |||
var model = HotRankingAppbarModel.fromJson(json.decode(data['data'])); | |||
return Container( | |||
height: MediaQuery | |||
.of(context) | |||
.padding | |||
.top + 56, | |||
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(); | |||
}) | |||
icon: Icon(Icons.arrow_back_ios), | |||
onPressed: () { | |||
Navigator.of(context).pop(); | |||
}) | |||
: Container(), | |||
backgroundColor: HexColor.fromHex( | |||
model.appBarBgColor == "" ? "#00000000" : model.appBarBgColor), | |||
@@ -37,9 +34,8 @@ class HotRankingAppBar extends StatelessWidget { | |||
children: <Widget>[ | |||
Text( | |||
model.appBarName ?? "", | |||
style: | |||
TextStyle( | |||
color: HexColor.fromHex(model.appBarNameColor ?? "")), | |||
style: TextStyle( | |||
color: HexColor.fromHex(model?.appBarNameColor ?? "")), | |||
), | |||
CachedNetworkImage( | |||
height: 40.w, | |||