import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:image_stack/image_stack.dart'; import 'package:akuCommunity/utils/screenutil.dart'; import 'package:akuCommunity/widget/cached_image_wrapper.dart'; import 'package:akuCommunity/routers/page_routers.dart'; import 'package:akuCommunity/model/aku_shop_model.dart'; class HomeCard extends StatefulWidget { final String title; final String subtitleOne; final String subtitleTwo; final bool isActivity; final String imagePath; HomeCard( {this.title, this.subtitleOne, this.subtitleTwo, this.imagePath, this.isActivity, Key key}) : super(key: key); @override _HomeCardState createState() => _HomeCardState(); } class _HomeCardState extends State { List images = [ "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1151143562,4115642159&fm=26&gp=0.jpg", "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2551412680,857245643&fm=26&gp=0.jpg", "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3604827221,1047385274&fm=26&gp=0.jpg", ]; Widget _countDown() { return Container( width: Screenutil.length(638), color: Color(0xff333333).withOpacity(0.8), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( padding: EdgeInsets.only( left: Screenutil.length(24), top: Screenutil.length(11), bottom: Screenutil.length(12), ), child: Text( '剩余时间:09天13时46分', style: TextStyle( fontWeight: FontWeight.w600, color: Color(0xffffffff), fontSize: Screenutil.size(24)), ), ), Container( padding: EdgeInsets.only( right: Screenutil.length(24), top: Screenutil.length(7), bottom: Screenutil.length(7), ), child: Text( '¥99.9', style: TextStyle( color: Color(0xffff8200), fontSize: Screenutil.size(36)), ), ), ], ), ); } Widget _button(String buttonName) { return InkWell( onTap: () { switch (widget.isActivity) { case true: Navigator.pushNamed( context, PageName.activities_details_page.toString(), arguments: Bundle() ..putMap('details', { 'title': widget.title, 'imagePath': widget.imagePath, 'isOver': false, 'isVoteOver': false, 'isVote': false, 'memberList': images })); break; case false: var shopInfo; shopInfo = { 'itemid': '1', 'itemtitle':widget.title, 'taobao_image': "${widget.imagePath},${widget.imagePath}", 'itemprice': '69.9', 'itemshorttitle': widget.title, 'itempic_copy': widget.imagePath, 'itemdesc': widget.title, 'itempic': widget.imagePath }; Navigator.pushNamed(context, PageName.goods_details_page.toString(), arguments: Bundle() ..putString( 'shoplist', json.encode(shopInfo).toString())); break; default: } }, child: Container( height: Screenutil.length(44), width: Screenutil.length(120), alignment: Alignment.center, decoration: BoxDecoration( color: Color(0xffffc40c), borderRadius: BorderRadius.all(Radius.circular(Screenutil.length(22))), ), padding: EdgeInsets.symmetric(vertical: Screenutil.length(8)), child: Text( buttonName, style: TextStyle( fontWeight: FontWeight.w600, color: Color(0xff4a4b51), fontSize: Screenutil.size(20)), ), ), ); } @override Widget build(BuildContext context) { return Container( color: Colors.white, margin: EdgeInsets.symmetric( horizontal: Screenutil.length(32), ), padding: EdgeInsets.only( left: Screenutil.length(24), right: Screenutil.length(24), bottom: Screenutil.length(40), ), child: Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(Screenutil.length(8))), border: Border.all(color: Color(0xffe8e8e8), width: Screenutil.length(2)), ), padding: EdgeInsets.only(bottom: Screenutil.length(24)), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Stack( children: [ Container( child: ClipRRect( borderRadius: BorderRadius.only( topLeft: Radius.circular(Screenutil.length(8)), topRight: Radius.circular(Screenutil.length(8)), ), child: CachedImageWrapper( url: widget.imagePath, width: Screenutil.length(638), height: Screenutil.length(210), ), ), ), ], ), Container( margin: EdgeInsets.only( top: Screenutil.length(16), left: Screenutil.length(24), ), child: Text( widget.title, style: TextStyle( fontWeight: FontWeight.w600, color: Color(0xff4a4b51), fontSize: Screenutil.size(28)), ), ), Container( margin: EdgeInsets.only( top: Screenutil.length(16), left: Screenutil.length(24), right: Screenutil.length(24), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ RichText( text: TextSpan( style: TextStyle(fontSize: Screenutil.size(24)), children: [ TextSpan( text: widget.isActivity ? '地点:' : '原产地区:', style: TextStyle(color: Color(0xff999999))), TextSpan( text: widget.subtitleOne, style: TextStyle(color: Color(0xff4a4b51))), ], ), ), Container( margin: EdgeInsets.only(top: Screenutil.length(8)), child: RichText( text: TextSpan( style: TextStyle(fontSize: Screenutil.size(24)), children: [ TextSpan( text: widget.isActivity ? '活动时间:' : '预计到货:', style: TextStyle(color: Color(0xff999999))), TextSpan( text: widget.subtitleTwo, style: TextStyle(color: Color(0xff4a4b51))), ], ), ), ), ], ), widget.isActivity ? SizedBox() : _button('去团购') ], ), ), widget.isActivity ? Container( margin: EdgeInsets.only( top: Screenutil.length(16), right: Screenutil.length(24), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( margin: EdgeInsets.only(left: Screenutil.length(80)), child: ImageStack( imageList: images, imageRadius: Screenutil.size(44), imageCount: 3, imageBorderWidth: 1, totalCount: 3, ), ), _button('去看看'), ], ), ) : SizedBox(), ], ), ), ); } }