@@ -19,18 +19,28 @@ class CounponWidget extends StatelessWidget { | |||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
// return Container(); | // return Container(); | ||||
return BlocProvider<CounponBloc>( | return BlocProvider<CounponBloc>( | ||||
create: (_) => CounponBloc(repository: CounponRepository())..add(CounponInitEvent(model: model)), | |||||
child: CounponWidgetContainer(), | |||||
create: (_) => CounponBloc(repository: CounponRepository()), //..add(CounponInitEvent(model: model)), | |||||
child: CounponWidgetContainer(model, key: UniqueKey(),), | |||||
); | ); | ||||
} | } | ||||
} | } | ||||
class CounponWidgetContainer extends StatefulWidget { | class CounponWidgetContainer extends StatefulWidget { | ||||
final Map<String, dynamic> model; | |||||
const CounponWidgetContainer(this.model, {Key key}) : super(key: key); | |||||
@override | @override | ||||
_CounponWidgetContainerState createState() => _CounponWidgetContainerState(); | _CounponWidgetContainerState createState() => _CounponWidgetContainerState(); | ||||
} | } | ||||
class _CounponWidgetContainerState extends State<CounponWidgetContainer> { | class _CounponWidgetContainerState extends State<CounponWidgetContainer> { | ||||
@override | |||||
void initState() { | |||||
BlocProvider.of<CounponBloc>(context).add(CounponInitEvent(model: widget?.model)); | |||||
super.initState(); | |||||
} | |||||
/// 点击领取 | /// 点击领取 | ||||
void _onJump(CounponModel model) {} | void _onJump(CounponModel model) {} | ||||
@@ -69,19 +79,18 @@ class _CounponWidgetContainerState extends State<CounponWidgetContainer> { | |||||
width: double.infinity, | width: double.infinity, | ||||
padding: const EdgeInsets.only(left: 18.5, top: 12, bottom: 14), | padding: const EdgeInsets.only(left: 18.5, top: 12, bottom: 14), | ||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
image: DecorationImage( | |||||
image: CachedNetworkImageProvider( | |||||
model?.bg_img ??'', | |||||
), | |||||
fit: BoxFit.fill | |||||
) | |||||
), | |||||
image: DecorationImage( | |||||
image: CachedNetworkImageProvider( | |||||
model?.bg_img ?? '', | |||||
), | |||||
fit: BoxFit.fill)), | |||||
alignment: Alignment.centerLeft, | alignment: Alignment.centerLeft, | ||||
child: Row( | child: Row( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
/// 价格 | /// 价格 | ||||
_getPriceWidget(model), | _getPriceWidget(model), | ||||
const SizedBox(width: 7.5), | const SizedBox(width: 7.5), | ||||
/// 有效期 | /// 有效期 | ||||
_getTimeWidget(model) | _getTimeWidget(model) | ||||
], | ], | ||||
@@ -102,7 +111,8 @@ class _CounponWidgetContainerState extends State<CounponWidgetContainer> { | |||||
Text(model?.price_type ?? '¥ ', style: TextStyle(fontSize: 15, color: HexColor.fromHex(model?.price_type_color ?? '#FFFFFF'))), | Text(model?.price_type ?? '¥ ', style: TextStyle(fontSize: 15, color: HexColor.fromHex(model?.price_type_color ?? '#FFFFFF'))), | ||||
/// 价格 | /// 价格 | ||||
Text(model?.coupon_price ??'100', style: TextStyle(fontSize: 30, color: HexColor.fromHex(model?.coupon_price_color ?? '#FFFFFF'), fontFamily: 'Din', package: 'zhiying_base_widget')), | |||||
Text(model?.coupon_price ?? '100', | |||||
style: TextStyle(fontSize: 30, color: HexColor.fromHex(model?.coupon_price_color ?? '#FFFFFF'), fontFamily: 'Din', package: 'zhiying_base_widget')), | |||||
], | ], | ||||
); | ); | ||||
} | } | ||||
@@ -113,7 +123,7 @@ class _CounponWidgetContainerState extends State<CounponWidgetContainer> { | |||||
crossAxisAlignment: CrossAxisAlignment.start, | crossAxisAlignment: CrossAxisAlignment.start, | ||||
children: <Widget>[ | children: <Widget>[ | ||||
/// 标题 | /// 标题 | ||||
Text(model?.coupon_title ?? '优惠券', style: TextStyle(fontSize: 17, color: HexColor.fromHex( model?.coupon_title_color ?? '#FFFFFF'))), | |||||
Text(model?.coupon_title ?? '优惠券', style: TextStyle(fontSize: 17, color: HexColor.fromHex(model?.coupon_title_color ?? '#FFFFFF'))), | |||||
/// 到期时间 | /// 到期时间 | ||||
Text(model?.coupon_endtime ?? '有效期至2020-10-01', style: TextStyle(fontSize: 10, color: HexColor.fromHex(model?.coupon_time_color ?? '#FFFFFF'))) | Text(model?.coupon_endtime ?? '有效期至2020-10-01', style: TextStyle(fontSize: 10, color: HexColor.fromHex(model?.coupon_time_color ?? '#FFFFFF'))) | ||||
@@ -19,18 +19,29 @@ class GoodsDetailsImgWidget extends StatelessWidget { | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
return BlocProvider<GoodsDetailsImgBloc>( | return BlocProvider<GoodsDetailsImgBloc>( | ||||
create: (_) => GoodsDetailsImgBloc(repository: GoodsDetailsImgRepository())..add(GoodsDetailsImgInitEvent(model: model)), | |||||
child: GoodsDetailsImgWidgetContainer(), | |||||
create: (_) => GoodsDetailsImgBloc(repository: GoodsDetailsImgRepository()),//..add(GoodsDetailsImgInitEvent(model: model)), | |||||
child: GoodsDetailsImgWidgetContainer(model, key: UniqueKey(),), | |||||
); | ); | ||||
} | } | ||||
} | } | ||||
class GoodsDetailsImgWidgetContainer extends StatefulWidget { | class GoodsDetailsImgWidgetContainer extends StatefulWidget { | ||||
final Map<String, dynamic> model; | |||||
const GoodsDetailsImgWidgetContainer(this.model, {Key key}) : super(key: key); | |||||
@override | @override | ||||
_GoodsDetailsImgWidgetContainerState createState() => _GoodsDetailsImgWidgetContainerState(); | _GoodsDetailsImgWidgetContainerState createState() => _GoodsDetailsImgWidgetContainerState(); | ||||
} | } | ||||
class _GoodsDetailsImgWidgetContainerState extends State<GoodsDetailsImgWidgetContainer> { | class _GoodsDetailsImgWidgetContainerState extends State<GoodsDetailsImgWidgetContainer> { | ||||
@override | |||||
void initState() { | |||||
BlocProvider.of<GoodsDetailsImgBloc>(context).add(GoodsDetailsImgInitEvent(model: widget?.model)); | |||||
super.initState(); | |||||
} | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
return BlocConsumer<GoodsDetailsImgBloc, GoodsDetailsImgState>( | return BlocConsumer<GoodsDetailsImgBloc, GoodsDetailsImgState>( | ||||
@@ -30,10 +30,12 @@ class GoodsDetailsFooterWidget extends StatelessWidget { | |||||
visible: !EmptyUtil.isEmpty(model), | visible: !EmptyUtil.isEmpty(model), | ||||
replacement: GoodsDetailsFooterSkeleton(), | replacement: GoodsDetailsFooterSkeleton(), | ||||
child: BlocProvider<GoodsDetailsFooterBloc>( | child: BlocProvider<GoodsDetailsFooterBloc>( | ||||
create: (_) => | |||||
GoodsDetailsFooterBloc(repository: GoodsDetailsFooterRepository()) | |||||
..add(GoodsDetailsFooterInitEvent(model: model)), | |||||
child: GooddsDetailsFooterContainer(model), | |||||
create: (_) => GoodsDetailsFooterBloc(repository: GoodsDetailsFooterRepository()), | |||||
//..add(GoodsDetailsFooterInitEvent(model: model)), | |||||
child: GooddsDetailsFooterContainer( | |||||
model, | |||||
key: UniqueKey(), | |||||
), | |||||
), | ), | ||||
); | ); | ||||
} | } | ||||
@@ -45,21 +47,24 @@ class GooddsDetailsFooterContainer extends StatefulWidget { | |||||
const GooddsDetailsFooterContainer(this.model, {Key key}) : super(key: key); | const GooddsDetailsFooterContainer(this.model, {Key key}) : super(key: key); | ||||
@override | @override | ||||
_GooddsDetailsFooterContainerState createState() => | |||||
_GooddsDetailsFooterContainerState(); | |||||
_GooddsDetailsFooterContainerState createState() => _GooddsDetailsFooterContainerState(); | |||||
} | } | ||||
class _GooddsDetailsFooterContainerState | |||||
extends State<GooddsDetailsFooterContainer> { | |||||
class _GooddsDetailsFooterContainerState extends State<GooddsDetailsFooterContainer> { | |||||
UserInfoModel _user; | UserInfoModel _user; | ||||
@override | |||||
void initState() { | |||||
BlocProvider.of<GoodsDetailsFooterBloc>(context).add(GoodsDetailsFooterInitEvent(model: widget?.model)); | |||||
super.initState(); | |||||
} | |||||
/// 打开首页 | /// 打开首页 | ||||
void _openHome() { | void _openHome() { | ||||
Navigator.pushAndRemoveUntil( | Navigator.pushAndRemoveUntil( | ||||
context, | context, | ||||
CupertinoPageRoute( | |||||
builder: (BuildContext context) => | |||||
PageFactory.create('homePage', null)), | |||||
CupertinoPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), | |||||
(Route<dynamic> route) => false, | (Route<dynamic> route) => false, | ||||
); | ); | ||||
} | } | ||||
@@ -95,8 +100,7 @@ class _GooddsDetailsFooterContainerState | |||||
return; | return; | ||||
} | } | ||||
} | } | ||||
Navigator.of(context).push(CupertinoPageRoute( | |||||
builder: (context) => GoodsSharePage(widget.model))); | |||||
Navigator.of(context).push(CupertinoPageRoute(builder: (context) => GoodsSharePage(widget.model))); | |||||
} | } | ||||
} | } | ||||
@@ -166,8 +170,7 @@ class _GooddsDetailsFooterContainerState | |||||
return SafeArea( | return SafeArea( | ||||
child: Container( | child: Container( | ||||
width: double.infinity, | width: double.infinity, | ||||
padding: EdgeInsets.only( | |||||
bottom: (height > 10 ? 0 : 8), top: 8, left: 21, right: 12.5), | |||||
padding: EdgeInsets.only(bottom: (height > 10 ? 0 : 8), top: 8, left: 21, right: 12.5), | |||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
// boxShadow: [ | // boxShadow: [ | ||||
// BoxShadow(color: Colors.grey[300], offset: Offset(0.0, 0.0), blurRadius: 5.0, spreadRadius: 2.0), | // BoxShadow(color: Colors.grey[300], offset: Offset(0.0, 0.0), blurRadius: 5.0, spreadRadius: 2.0), | ||||
@@ -206,18 +209,12 @@ class _GooddsDetailsFooterContainerState | |||||
onTap: () => _openHome(), | onTap: () => _openHome(), | ||||
child: Padding( | child: Padding( | ||||
padding: const EdgeInsets.only(right: 35), | padding: const EdgeInsets.only(right: 35), | ||||
child: _getCustomWidget(model?.home ?? '首页', | |||||
model?.home_color ?? '999999', model?.home_icon ?? ''), | |||||
child: _getCustomWidget(model?.home ?? '首页', model?.home_color ?? '999999', model?.home_icon ?? ''), | |||||
)), | )), | ||||
GestureDetector( | GestureDetector( | ||||
behavior: HitTestBehavior.opaque, | behavior: HitTestBehavior.opaque, | ||||
onTap: () => _collectOnClick(), | onTap: () => _collectOnClick(), | ||||
child: Padding( | |||||
padding: const EdgeInsets.only(right: 0), | |||||
child: _getCustomWidget( | |||||
model?.collect ?? '收藏', | |||||
model?.collect_color ?? '999999', | |||||
model?.collect_icon ?? ''))) | |||||
child: Padding(padding: const EdgeInsets.only(right: 0), child: _getCustomWidget(model?.collect ?? '收藏', model?.collect_color ?? '999999', model?.collect_icon ?? ''))) | |||||
], | ], | ||||
); | ); | ||||
} | } | ||||
@@ -244,40 +241,30 @@ class _GooddsDetailsFooterContainerState | |||||
width: 110, | width: 110, | ||||
// padding: const EdgeInsets.only(left: 30, right: 30, top: 5, bottom: 5), | // padding: const EdgeInsets.only(left: 30, right: 30, top: 5, bottom: 5), | ||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
gradient: LinearGradient(colors: [ | |||||
HexColor.fromHex(model?.share_earn_bg1_color ?? '#FFCA66'), | |||||
HexColor.fromHex(model?.share_earn_bg2_color ?? '#FFD961') | |||||
], begin: Alignment.centerLeft, end: Alignment.centerRight), | |||||
borderRadius: BorderRadius.only( | |||||
bottomLeft: Radius.circular(25), topLeft: Radius.circular(25))), | |||||
gradient: LinearGradient( | |||||
colors: [HexColor.fromHex(model?.share_earn_bg1_color ?? '#FFCA66'), HexColor.fromHex(model?.share_earn_bg2_color ?? '#FFD961')], | |||||
begin: Alignment.centerLeft, | |||||
end: Alignment.centerRight), | |||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(25), topLeft: Radius.circular(25))), | |||||
child: Column( | child: Column( | ||||
crossAxisAlignment: CrossAxisAlignment.center, | crossAxisAlignment: CrossAxisAlignment.center, | ||||
mainAxisAlignment: MainAxisAlignment.center, | mainAxisAlignment: MainAxisAlignment.center, | ||||
children: <Widget>[ | children: <Widget>[ | ||||
RichText( | RichText( | ||||
text: TextSpan( | |||||
text: '¥ ', | |||||
style: TextStyle( | |||||
fontSize: 12, | |||||
color: HexColor.fromHex( | |||||
model?.share_earn_val_color ?? 'FFFFFF')), | |||||
children: [ | |||||
TextSpan( | |||||
text: model?.share_value ?? '0.0', | |||||
style: TextStyle( | |||||
fontSize: 15, | |||||
fontWeight: FontWeight.bold, | |||||
color: HexColor.fromHex( | |||||
model?.share_earn_color ?? '#FFFFFF'), | |||||
fontFamily: 'Din', | |||||
package: 'zhiying_base_widget')), | |||||
]), | |||||
text: TextSpan(text: '¥ ', style: TextStyle(fontSize: 12, color: HexColor.fromHex(model?.share_earn_val_color ?? 'FFFFFF')), children: [ | |||||
TextSpan( | |||||
text: model?.share_value ?? '0.0', | |||||
style: TextStyle( | |||||
fontSize: 15, | |||||
fontWeight: FontWeight.bold, | |||||
color: HexColor.fromHex(model?.share_earn_color ?? '#FFFFFF'), | |||||
fontFamily: 'Din', | |||||
package: 'zhiying_base_widget')), | |||||
]), | |||||
), | ), | ||||
Text( | Text( | ||||
model?.share_earn ?? '分享赚', | model?.share_earn ?? '分享赚', | ||||
style: TextStyle( | |||||
color: HexColor.fromHex(model?.share_earn_color ?? '#FFFFFF'), | |||||
fontSize: 12), | |||||
style: TextStyle(color: HexColor.fromHex(model?.share_earn_color ?? '#FFFFFF'), fontSize: 12), | |||||
), | ), | ||||
], | ], | ||||
), | ), | ||||
@@ -296,42 +283,29 @@ class _GooddsDetailsFooterContainerState | |||||
height: 44, | height: 44, | ||||
width: 110, | width: 110, | ||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
gradient: LinearGradient(colors: [ | |||||
HexColor.fromHex(model?.save_earn_bg1_color ?? '#FF6969'), | |||||
HexColor.fromHex(model?.save_earn_bg2_color ?? '#FF4646') | |||||
], begin: Alignment.centerLeft, end: Alignment.centerRight), | |||||
borderRadius: BorderRadius.only( | |||||
bottomRight: Radius.circular(25), | |||||
topRight: Radius.circular(25))), | |||||
gradient: LinearGradient( | |||||
colors: [HexColor.fromHex(model?.save_earn_bg1_color ?? '#FF6969'), HexColor.fromHex(model?.save_earn_bg2_color ?? '#FF4646')], | |||||
begin: Alignment.centerLeft, | |||||
end: Alignment.centerRight), | |||||
borderRadius: BorderRadius.only(bottomRight: Radius.circular(25), topRight: Radius.circular(25))), | |||||
child: Column( | child: Column( | ||||
crossAxisAlignment: CrossAxisAlignment.center, | crossAxisAlignment: CrossAxisAlignment.center, | ||||
mainAxisAlignment: MainAxisAlignment.center, | mainAxisAlignment: MainAxisAlignment.center, | ||||
children: <Widget>[ | children: <Widget>[ | ||||
RichText( | RichText( | ||||
text: TextSpan( | |||||
text: '¥ ', | |||||
style: TextStyle( | |||||
fontSize: 12, | |||||
color: HexColor.fromHex( | |||||
model?.save_earn_val_color ?? 'FFFFFF')), | |||||
children: [ | |||||
TextSpan( | |||||
text: model?.slef_buy_value ?? '0.0', | |||||
style: TextStyle( | |||||
fontSize: 15, | |||||
fontWeight: FontWeight.bold, | |||||
color: HexColor.fromHex( | |||||
model?.save_earn_val_color ?? '#FFFFFF'), | |||||
fontFamily: 'Din', | |||||
package: 'zhiying_base_widget', | |||||
)), | |||||
]), | |||||
text: TextSpan(text: '¥ ', style: TextStyle(fontSize: 12, color: HexColor.fromHex(model?.save_earn_val_color ?? 'FFFFFF')), children: [ | |||||
TextSpan( | |||||
text: model?.slef_buy_value ?? '0.0', | |||||
style: TextStyle( | |||||
fontSize: 15, | |||||
fontWeight: FontWeight.bold, | |||||
color: HexColor.fromHex(model?.save_earn_val_color ?? '#FFFFFF'), | |||||
fontFamily: 'Din', | |||||
package: 'zhiying_base_widget', | |||||
)), | |||||
]), | |||||
), | ), | ||||
Text(model?.save_earn ?? '自购省', | |||||
style: TextStyle( | |||||
color: | |||||
HexColor.fromHex(model?.save_earn_color ?? '#FFFFFF'), | |||||
fontSize: 12)) | |||||
Text(model?.save_earn ?? '自购省', style: TextStyle(color: HexColor.fromHex(model?.save_earn_color ?? '#FFFFFF'), fontSize: 12)) | |||||
], | ], | ||||
), | ), | ||||
), | ), | ||||
@@ -354,8 +328,7 @@ class _GooddsDetailsFooterContainerState | |||||
const SizedBox(height: 5), | const SizedBox(height: 5), | ||||
/// 图片 | /// 图片 | ||||
Text(text, | |||||
style: TextStyle(color: HexColor.fromHex(textColor), fontSize: 11)) | |||||
Text(text, style: TextStyle(color: HexColor.fromHex(textColor), fontSize: 11)) | |||||
], | ], | ||||
); | ); | ||||
} | } | ||||
@@ -19,8 +19,8 @@ class GoodsDetailsSlideBannerWidget extends StatelessWidget { | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
return BlocProvider<GoodsDetailsSlideBannerBloc>( | return BlocProvider<GoodsDetailsSlideBannerBloc>( | ||||
create: (_) => GoodsDetailsSlideBannerBloc(repository: GoodsDetailsSlideBannerRepository())..add(GoodsDetailsSlideBannerInitEvent(model: model)), | |||||
child: GoodsDetailsSlideBannerContainer(model), | |||||
create: (_) => GoodsDetailsSlideBannerBloc(repository: GoodsDetailsSlideBannerRepository()),//..add(GoodsDetailsSlideBannerInitEvent(model: model)), | |||||
child: GoodsDetailsSlideBannerContainer(model, key: UniqueKey(),), | |||||
); | ); | ||||
} | } | ||||
} | } | ||||
@@ -40,6 +40,12 @@ class _GoodsDetailsSlideBannerContainerState extends State<GoodsDetailsSlideBann | |||||
print('点击了 $model'); | print('点击了 $model'); | ||||
} | } | ||||
@override | |||||
void initState() { | |||||
BlocProvider.of<GoodsDetailsSlideBannerBloc>(context).add(GoodsDetailsSlideBannerInitEvent(model: widget?.model)); | |||||
super.initState(); | |||||
} | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
return BlocConsumer<GoodsDetailsSlideBannerBloc, GoodsDetailsSlideBannerState>( | return BlocConsumer<GoodsDetailsSlideBannerBloc, GoodsDetailsSlideBannerState>( | ||||
@@ -20,18 +20,29 @@ class StoreWidget extends StatelessWidget { | |||||
@override | @override | ||||
Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
return BlocProvider<StoreBloc>( | return BlocProvider<StoreBloc>( | ||||
create: (_) => StoreBloc(repository: StoreRepository())..add(StoreInitEvent(model: model)), | |||||
child: StoreContainer(), | |||||
create: (_) => StoreBloc(repository: StoreRepository()),//..add(StoreInitEvent(model: model)), | |||||
child: StoreContainer(model, key: UniqueKey(),), | |||||
); | ); | ||||
} | } | ||||
} | } | ||||
class StoreContainer extends StatefulWidget { | class StoreContainer extends StatefulWidget { | ||||
final Map<String, dynamic> model; | |||||
const StoreContainer(this.model, {Key key}) : super(key: key); | |||||
@override | @override | ||||
_StoreContainerState createState() => _StoreContainerState(); | _StoreContainerState createState() => _StoreContainerState(); | ||||
} | } | ||||
class _StoreContainerState extends State<StoreContainer> { | class _StoreContainerState extends State<StoreContainer> { | ||||
@override | |||||
void initState() { | |||||
BlocProvider.of<StoreBloc>(context).add(StoreInitEvent(model: widget?.model)); | |||||
super.initState(); | |||||
} | |||||
/// 点击更多 | /// 点击更多 | ||||
void _onMoreClick() {} | void _onMoreClick() {} | ||||
@@ -5,6 +5,7 @@ import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/h | |||||
import 'package:zhiying_base_widget/widgets/hot_ranking/hot_ranking_list/model/hot_ranking_list_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:zhiying_comm/zhiying_comm.dart'; | ||||
import 'package:cached_network_image/cached_network_image.dart'; | import 'package:cached_network_image/cached_network_image.dart'; | ||||
import 'dart:ui' as ui show ParagraphBuilder, PlaceholderAlignment; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | import 'package:zhiying_comm/zhiying_comm.dart'; | ||||
class HotRankingGoods extends StatelessWidget { | class HotRankingGoods extends StatelessWidget { | ||||
@@ -26,8 +27,7 @@ class HotRankingGoods extends StatelessWidget { | |||||
Providers providers = getProvider(good.provider); | Providers providers = getProvider(good.provider); | ||||
return GestureDetector( | return GestureDetector( | ||||
onTap: () { | onTap: () { | ||||
RouterUtil.route(SkipModel(skipIdentifier: "goods_details"), | |||||
{"provider": good.provider, "good_id": good.goodId}, context); | |||||
RouterUtil.route(SkipModel(skipIdentifier: "goods_details"), good?.toJson(), context); | |||||
}, | }, | ||||
child: Stack( | child: Stack( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
@@ -60,27 +60,27 @@ class HotRankingGoods extends StatelessWidget { | |||||
children: <Widget>[ | children: <Widget>[ | ||||
Expanded( | Expanded( | ||||
child: RichText( | child: RichText( | ||||
textAlign: TextAlign.start, | |||||
overflow: TextOverflow.ellipsis, | overflow: TextOverflow.ellipsis, | ||||
maxLines: 2, | maxLines: 2, | ||||
text: TextSpan(children: <InlineSpan>[ | text: TextSpan(children: <InlineSpan>[ | ||||
WidgetSpan( | WidgetSpan( | ||||
alignment: ui.PlaceholderAlignment.middle, | |||||
child: Container( | child: Container( | ||||
padding: EdgeInsets.only( | |||||
left: 4.w, right: 4.w, top: 1, bottom: 1), | |||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
color: HexColor.fromHex( | color: HexColor.fromHex( | ||||
providers.providerBgColor), | providers.providerBgColor), | ||||
borderRadius: | 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), | |||||
), | |||||
BorderRadius.circular(2.5)), | |||||
child: Text( | |||||
good.providerName ?? "", | |||||
style: TextStyle( | |||||
color: HexColor.fromHex( | |||||
providers.providerNameColor, | |||||
), | |||||
fontSize: 18.sp), | |||||
), | ), | ||||
)), | )), | ||||
WidgetSpan( | WidgetSpan( | ||||
@@ -211,9 +211,10 @@ class HotRankingGoods extends StatelessWidget { | |||||
children: <Widget>[ | children: <Widget>[ | ||||
Expanded( | Expanded( | ||||
child: Container( | child: Container( | ||||
alignment: Alignment.centerLeft, | |||||
height: 40.w, | height: 40.w, | ||||
padding: EdgeInsets.only( | padding: EdgeInsets.only( | ||||
left: 64.w, | |||||
left: 40.w, | |||||
), | ), | ||||
margin: | margin: | ||||
EdgeInsets.only(right: 20, left: 20.w), | EdgeInsets.only(right: 20, left: 20.w), | ||||
@@ -36,19 +36,22 @@ class Good { | |||||
String marketPrice; | String marketPrice; | ||||
String currentPrice; | String currentPrice; | ||||
String inorderCount; | String inorderCount; | ||||
Map<String, dynamic> detailData; | |||||
Good( | |||||
{this.provider, | |||||
this.providerName, | |||||
this.goodId, | |||||
this.goodImage, | |||||
this.goodTitle, | |||||
this.shopName, | |||||
this.coupon, | |||||
this.commission, | |||||
this.marketPrice, | |||||
this.currentPrice, | |||||
this.inorderCount}); | |||||
Good({ | |||||
this.provider, | |||||
this.providerName, | |||||
this.goodId, | |||||
this.goodImage, | |||||
this.goodTitle, | |||||
this.shopName, | |||||
this.coupon, | |||||
this.commission, | |||||
this.marketPrice, | |||||
this.currentPrice, | |||||
this.inorderCount, | |||||
this.detailData, | |||||
}); | |||||
Good.fromJson(Map<String, dynamic> json) { | Good.fromJson(Map<String, dynamic> json) { | ||||
provider = json['provider']; | provider = json['provider']; | ||||
@@ -62,6 +65,7 @@ class Good { | |||||
marketPrice = json['market_price']; | marketPrice = json['market_price']; | ||||
currentPrice = json['current_price']; | currentPrice = json['current_price']; | ||||
inorderCount = json['inorder_count']; | inorderCount = json['inorder_count']; | ||||
detailData = json['detail_data']; | |||||
} | } | ||||
Map<String, dynamic> toJson() { | Map<String, dynamic> toJson() { | ||||
@@ -77,6 +81,7 @@ class Good { | |||||
data['market_price'] = this.marketPrice; | data['market_price'] = this.marketPrice; | ||||
data['current_price'] = this.currentPrice; | data['current_price'] = this.currentPrice; | ||||
data['inorder_count'] = this.inorderCount; | data['inorder_count'] = this.inorderCount; | ||||
data['detail_data'] = this.detailData; | |||||
return data; | return data; | ||||
} | } | ||||
} | } |
@@ -58,7 +58,7 @@ class _MineHeaderContainerState extends State<MineHeaderContainer> { | |||||
child: ClipRRect( | child: ClipRRect( | ||||
borderRadius: BorderRadius.circular(28), | borderRadius: BorderRadius.circular(28), | ||||
child: CachedNetworkImage( | child: CachedNetworkImage( | ||||
imageUrl: profile.avatar, | |||||
imageUrl: profile?.avatar ?? '', | |||||
fit: BoxFit.cover, | fit: BoxFit.cover, | ||||
), | ), | ||||
), | ), | ||||