秒杀。京东bug,购物车bug

master
章文轩 4 years ago
parent c163f70f51
commit edd353fbf9

@ -1,3 +1,3 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig" #include "Generated.xcconfig"
#include "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"

@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project # Uncomment this line to define a global platform for your project
platform :ios, '9.3' # platform :ios, '9.3'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'

@ -473,6 +473,6 @@ SPEC CHECKSUMS:
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44
PODFILE CHECKSUM: 80e178f7acd39d9ad7aacc7d6a4e9dea0cb945ea PODFILE CHECKSUM: 8eecf180615377d7d7172e551af1ab922f54002e
COCOAPODS: 1.11.0 COCOAPODS: 1.11.0

@ -133,6 +133,7 @@ class Data extends Object {
int brandId; int brandId;
String goodsName; String goodsName;
String description; String description;
@ -178,6 +179,7 @@ class Data extends Object {
Living living; Living living;
Seckill seckill; Seckill seckill;
int vendorId;
Data( Data(
@ -207,7 +209,8 @@ class Data extends Object {
this.notice, this.notice,
this.countryIcon, this.countryIcon,
this.living, this.living,
this.seckill this.seckill,
this.vendorId
); );
factory Data.fromJson(Map<String, dynamic> srcJson) => factory Data.fromJson(Map<String, dynamic> srcJson) =>

@ -77,6 +77,7 @@ Data _$DataFromJson(Map<String, dynamic> json) {
json['country_icon'], json['country_icon'],
json['living'] == null ? null : new Living.fromJson(json['living']), json['living'] == null ? null : new Living.fromJson(json['living']),
json['sec_kill'] == null ? null : new Seckill.fromJson(json['sec_kill']), json['sec_kill'] == null ? null : new Seckill.fromJson(json['sec_kill']),
json['vendorId'] as int,
); );
} }
@ -103,6 +104,7 @@ Map<String, dynamic> _$DataToJson(Data instance) => <String, dynamic>{
'country_icon': instance.countryIcon, 'country_icon': instance.countryIcon,
'living': instance.living, 'living': instance.living,
'sec_kill':instance.seckill, 'sec_kill':instance.seckill,
'vendorId':instance.vendorId
}; };
MainPhotos _$MainPhotosFromJson(Map<String, dynamic> json) { MainPhotos _$MainPhotosFromJson(Map<String, dynamic> json) {

@ -47,6 +47,8 @@ class Data {
int isFerme; int isFerme;
int storehouse; int storehouse;
String countryIcon; String countryIcon;
int gysId;
SecKill secKill;
Data({ Data({
this.id, this.id,
this.goodsName, this.goodsName,
@ -67,6 +69,8 @@ class Data {
this.isImport, this.isImport,
this.storehouse, this.storehouse,
this.countryIcon, this.countryIcon,
this.gysId,
this.secKill
}); });
Data.fromJson(Map<String, dynamic> json) { Data.fromJson(Map<String, dynamic> json) {
@ -88,6 +92,10 @@ class Data {
isFerme = json['isFerme']; isFerme = json['isFerme'];
storehouse = json['storehouse']; storehouse = json['storehouse'];
countryIcon = json['country_icon']; countryIcon = json['country_icon'];
gysId = json['gys_id'];
secKill = json['sec_kill'] != null
? new SecKill.fromJson(json['sec_kill'])
: null;
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -107,6 +115,38 @@ class Data {
data['isFerme'] = this.isFerme; data['isFerme'] = this.isFerme;
data['storehouse'] = this.storehouse; data['storehouse'] = this.storehouse;
data['country_icon'] = this.countryIcon; data['country_icon'] = this.countryIcon;
data['gys_id'] = this.gysId;
if (this.secKill != null) {
data['sec_kill'] = this.secKill.toJson();
}
return data;
}
}
class SecKill {
int secKill;
String secKillEndTime;
int secKillMinPrice;
int secKillCommission;
SecKill(
{this.secKill,
this.secKillEndTime,
this.secKillMinPrice,
this.secKillCommission});
SecKill.fromJson(Map<String, dynamic> json) {
secKill = json['sec_kill'];
secKillEndTime = json['sec_kill_end_time'];
secKillMinPrice = json['sec_kill_min_price'];
secKillCommission = json['sec_kill_commission'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['sec_kill'] = this.secKill;
data['sec_kill_end_time'] = this.secKillEndTime;
data['sec_kill_min_price'] = this.secKillMinPrice;
data['sec_kill_commission'] = this.secKillCommission;
return data; return data;
} }
} }

@ -1,5 +1,7 @@
import 'package:recook/pages/home/promotion_time_tool.dart'; import 'package:recook/pages/home/promotion_time_tool.dart';
import 'goods_hot_sell_list_model.dart';
class GoodsSimpleListModel { class GoodsSimpleListModel {
String code; String code;
String msg; String msg;
@ -56,6 +58,7 @@ class GoodsSimple {
num gysId; num gysId;
List<String> specialIcon; List<String> specialIcon;
String countryIcon; String countryIcon;
SecKill secKill;
GoodsSimple( GoodsSimple(
{this.id, {this.id,
this.goodsName, this.goodsName,
@ -83,7 +86,8 @@ class GoodsSimple {
this.living, this.living,
this.gysId, this.gysId,
this.specialIcon, this.specialIcon,
this.countryIcon}); this.countryIcon,
this.secKill});
GoodsSimple.fromJson(Map<String, dynamic> json) { GoodsSimple.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
@ -117,6 +121,9 @@ class GoodsSimple {
specialIcon = specialIcon =
json['spec_icon'] != null ? json['spec_icon'].cast<String>() : null; json['spec_icon'] != null ? json['spec_icon'].cast<String>() : null;
countryIcon = json['country_icon']; countryIcon = json['country_icon'];
secKill = json['sec_kill'] != null
? new SecKill.fromJson(json['sec_kill'])
: null;
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -150,6 +157,9 @@ class GoodsSimple {
data['gys_id'] = this.gysId; data['gys_id'] = this.gysId;
data['spec_icon'] = this.specialIcon; data['spec_icon'] = this.specialIcon;
data['country_icon'] = this.countryIcon; data['country_icon'] = this.countryIcon;
if (this.secKill != null) {
data['sec_kill'] = this.secKill.toJson();
}
return data; return data;
} }
@ -176,3 +186,4 @@ class Living {
return data; return data;
} }
} }

@ -1,6 +1,7 @@
import 'package:flustars/flustars.dart'; import 'package:flustars/flustars.dart';
import 'package:recook/pages/home/promotion_time_tool.dart'; import 'package:recook/pages/home/promotion_time_tool.dart';
import 'goods_hot_sell_list_model.dart';
import 'goods_simple_list_model.dart'; import 'goods_simple_list_model.dart';
class PromotionGoodsListModel { class PromotionGoodsListModel {
@ -126,6 +127,7 @@ class PromotionGoodsModel {
num gysId; num gysId;
List<String> specialIcon; List<String> specialIcon;
String countryIcon; String countryIcon;
SecKill secKill;
PromotionGoodsModel( PromotionGoodsModel(
{this.goodsId, {this.goodsId,
@ -158,7 +160,8 @@ class PromotionGoodsModel {
this.specialSale, this.specialSale,
this.gysId, this.gysId,
this.specialIcon, this.specialIcon,
this.countryIcon}); this.countryIcon,
this.secKill});
PromotionGoodsModel.fromJson(Map<String, dynamic> json) { PromotionGoodsModel.fromJson(Map<String, dynamic> json) {
goodsId = json['goodsId']; goodsId = json['goodsId'];
@ -197,6 +200,9 @@ class PromotionGoodsModel {
json['spec_icon'] != null ? json['spec_icon'].cast<String>() : null; json['spec_icon'] != null ? json['spec_icon'].cast<String>() : null;
gysId = json['gys_id']; gysId = json['gys_id'];
countryIcon = json['country_icon']; countryIcon = json['country_icon'];
secKill = json['sec_kill'] != null
? new SecKill.fromJson(json['sec_kill'])
: null;
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -236,6 +242,9 @@ class PromotionGoodsModel {
data['gys_id'] = this.gysId; data['gys_id'] = this.gysId;
data['spec_icon'] = this.specialIcon; data['spec_icon'] = this.specialIcon;
data['country_icon'] = this.countryIcon; data['country_icon'] = this.countryIcon;
if (this.secKill != null) {
data['sec_kill'] = this.secKill.toJson();
}
return data; return data;
} }

@ -42,8 +42,8 @@ class CommodityDetailPage extends StatefulWidget {
this.liveId = 0, this.liveId = 0,
}) : super(key: key); }) : super(key: key);
static setArguments(int goodsID, {int liveStatus, int roomId,int gysId,bool seckillout}) { static setArguments(int goodsID, {int liveStatus, int roomId,bool seckillout}) {
return {"goodsID": goodsID, 'liveStatus': liveStatus, 'roomId': roomId,'gysId':gysId,'seckillout':seckillout}; return {"goodsID": goodsID, 'liveStatus': liveStatus, 'roomId': roomId,'seckillout':seckillout};
} }
@override @override
@ -62,7 +62,7 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
GoodsDetailModel _goodsDetail; GoodsDetailModel _goodsDetail;
int _liveStatus; int _liveStatus;
int _roomId; int _roomId;
num _gysId;
bool _seckillout;// bool _seckillout;//
@ -72,8 +72,6 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
_goodsId = widget.arguments["goodsID"]; _goodsId = widget.arguments["goodsID"];
_liveStatus = widget.arguments["liveStatus"]; _liveStatus = widget.arguments["liveStatus"];
_roomId = widget.arguments["roomId"]; _roomId = widget.arguments["roomId"];
_gysId = widget.arguments["gysId"];
_seckillout = widget.arguments['seckillout']??false; _seckillout = widget.arguments['seckillout']??false;
_tabController = TabController(length: 3, vsync: this); _tabController = TabController(length: 3, vsync: this);
@ -158,6 +156,7 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
child: CacheTabBarView( child: CacheTabBarView(
controller: _tabController, controller: _tabController,
children: [ children: [
_goodsDetail!=null?
GoodsPage( GoodsPage(
liveStatus: _liveStatus, liveStatus: _liveStatus,
roomId: _roomId, roomId: _roomId,
@ -172,7 +171,6 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
goodsId: _goodsId, goodsId: _goodsId,
openSkuChoosePage: _openSkuChoosePage, openSkuChoosePage: _openSkuChoosePage,
goodsDetail: _goodsDetail, goodsDetail: _goodsDetail,
gysId: _gysId,
onScroll: (notification) { onScroll: (notification) {
// double maxScroll = notification.metrics.maxScrollExtent; // double maxScroll = notification.metrics.maxScrollExtent;
double offset = notification.metrics.pixels; double offset = notification.metrics.pixels;
@ -185,7 +183,7 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
// _tabController.animateTo(1); // _tabController.animateTo(1);
// } // }
}, },
), ):SizedBox(),
// DetailPage( // DetailPage(
// goodsID: _goodsId, // goodsID: _goodsId,
// ), // ),

@ -84,7 +84,6 @@ class GoodsPage extends StatefulWidget {
final int liveStatus; final int liveStatus;
final int roomId; final int roomId;
final num gysId;
const GoodsPage({ const GoodsPage({
Key key, Key key,
@ -97,7 +96,6 @@ class GoodsPage extends StatefulWidget {
// this.liveId = 0, // this.liveId = 0,
this.liveStatus, this.liveStatus,
this.roomId, this.roomId,
this.gysId,
}) : super(key: key); }) : super(key: key);
@override @override
@ -128,7 +126,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
AddressDefaultModel _addressModel; AddressDefaultModel _addressModel;
String _defaltAddress; String _defaltAddress;
int _jDHaveGoods = -1; int _jDHaveGoods = -1;
int _seckillStatus = 0;// 0 1 // int _seckillStatus = 0;// 0 1
@override @override
bool get wantKeepAlive => true; bool get wantKeepAlive => true;
@ -136,8 +134,8 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
//gysid18002000 //
if (widget.gysId == 1800 || widget.gysId == 2000) { if (widget.goodsDetail.data.vendorId == 1800 || widget.goodsDetail.data.vendorId == 2000) {
Future.delayed(Duration.zero, () async { Future.delayed(Duration.zero, () async {
_addressList = await _getDefaultAddress(); _addressList = await _getDefaultAddress();
if (_addressList != null) { if (_addressList != null) {
@ -156,12 +154,14 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
}); });
} }
} }
//
}); });
} }
}); });
} }
//goodsDetail.data.vendorId18002000
GoodsDetailModelImpl.getDetailImages(widget.goodsId) GoodsDetailModelImpl.getDetailImages(widget.goodsId)
.then((GoodsDetailImagesModel model) { .then((GoodsDetailImagesModel model) {
if (model.code != HttpStatus.SUCCESS) { if (model.code != HttpStatus.SUCCESS) {
@ -177,7 +177,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
if (_context != null && if (_context != null &&
widget.goodsDetail != null && widget.goodsDetail != null &&
widget.openSkuChoosePage.value) { widget.openSkuChoosePage.value) {
if (widget.gysId == 1800 || widget.gysId == 2000) { if (widget.goodsDetail.data.vendorId == 1800 || widget.goodsDetail.data.vendorId == 2000) {
if (_jDHaveGoods == 1) { if (_jDHaveGoods == 1) {
_showSkuChoosePage(context); _showSkuChoosePage(context);
} else { } else {
@ -190,6 +190,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
} }
}); });
} }
@override @override
@ -201,6 +202,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
@override @override
Widget buildContext(BuildContext context, {store}) { Widget buildContext(BuildContext context, {store}) {
if (widget.goodsDetail != null) { if (widget.goodsDetail != null) {
_skuCombinations(); _skuCombinations();
_itemModels = _chooseValues(); _itemModels = _chooseValues();
} }
@ -210,6 +212,8 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
} }
MediaQuery _buildBody(BuildContext context) { MediaQuery _buildBody(BuildContext context) {
_context = context; _context = context;
return MediaQuery.removePadding( return MediaQuery.removePadding(
key: myGlobals.scaffoldKey, key: myGlobals.scaffoldKey,
@ -245,6 +249,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
} }
List<Widget> _detailListWidget() { List<Widget> _detailListWidget() {
List<Widget> children = []; List<Widget> children = [];
children.addAll(_goodHeadDetail()); children.addAll(_goodHeadDetail());
children.addAll(_goodDetailImages()); children.addAll(_goodDetailImages());
@ -409,7 +414,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
children: <Widget>[ children: <Widget>[
_headPageView(), _headPageView(),
GoodPriceView( GoodPriceView(
gysId: widget.gysId,
detailModel: widget.goodsDetail, detailModel: widget.goodsDetail,
shareCallback: () { shareCallback: () {
String img = ''; String img = '';
@ -441,7 +446,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
color: Colors.white, color: Colors.white,
child: _discountContent(context), child: _discountContent(context),
), ),
widget.gysId == 1800 || widget.gysId == 2000 widget.goodsDetail.data.vendorId == 1800 || widget.goodsDetail.data.vendorId == 2000
? Container( ? Container(
margin: EdgeInsets.only(bottom: 13), margin: EdgeInsets.only(bottom: 13),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
@ -545,7 +550,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
margin: EdgeInsets.only(top: 10), margin: EdgeInsets.only(top: 10),
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
if (widget.gysId == 1800 || widget.gysId == 2000) { if (widget.goodsDetail.data.vendorId == 1800 || widget.goodsDetail.data.vendorId == 2000) {
if (_jDHaveGoods == 1) { if (_jDHaveGoods == 1) {
_showSkuChoosePage(context); _showSkuChoosePage(context);
} else { } else {
@ -812,7 +817,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
Expanded( Expanded(
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
widget.gysId == 1800 widget.goodsDetail.data.vendorId == 1800
? Text( ? Text(
"京东仓发货 | ", "京东仓发货 | ",
style: AppTextStyle.generate(13 * 2.sp, style: AppTextStyle.generate(13 * 2.sp,

@ -34,9 +34,26 @@ class BrandDetailGridItem extends StatelessWidget {
{Key key, this.goods, this.buyClick, this.onBrandClick}) {Key key, this.goods, this.buyClick, this.onBrandClick})
: super(key: key); : super(key: key);
static final Color colorGrey = Color(0xff999999); static final Color colorGrey = Color(0xff999999);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
bool isSoldOut = goods.inventory <= 0 ? true : false;
bool sellout = false;
bool isSeckill = false;
if(this.goods.inventory>0){
sellout = false;
}else{
sellout = true;
}
if(this.goods.secKill!=null){
if(this.goods.secKill.secKill==1){
isSeckill = true;
sellout = true;
// seckill
}
}
double width = (MediaQuery.of(context).size.width - 10) / 2; double width = (MediaQuery.of(context).size.width - 10) / 2;
return ClipRRect( return ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(8)), borderRadius: BorderRadius.all(Radius.circular(8)),
@ -63,7 +80,7 @@ class BrandDetailGridItem extends StatelessWidget {
Api.getResizeImgUrl(goods.mainPhotoUrl, 300)), Api.getResizeImgUrl(goods.mainPhotoUrl, 300)),
)), )),
Positioned( Positioned(
child: isSoldOut child: sellout
? ItemTagWidget.imageMaskWidget( ? ItemTagWidget.imageMaskWidget(
padding: 40, width: width - 80, height: width - 80) padding: 40, width: width - 80, height: width - 80)
: Container(), : Container(),
@ -171,10 +188,20 @@ class BrandDetailGridItem extends StatelessWidget {
// Spacer(), // Spacer(),
_saleNumberWidget(this.goods), _saleNumberWidget(this.goods),
SizedBox( SizedBox(
height: 4 * 2.w, height: 4.w,
), ),
Row( Row(
children: [ children: [
isSeckill?Container(
alignment: Alignment.center,
child: Text(
"" + (this.goods.commission??0).toStringAsFixed(2),
style: TextStyle(
color: Color(0xFFC92219),
fontSize: 12 * 2.sp,
),
),
):
Text( Text(
'¥${this.goods.originalPrice.toStringAsFixed(2)}', '¥${this.goods.originalPrice.toStringAsFixed(2)}',
style: TextStyle( style: TextStyle(
@ -270,7 +297,7 @@ class BrandDetailGridItem extends StatelessWidget {
child: CustomImageButton( child: CustomImageButton(
direction: Direction.horizontal, direction: Direction.horizontal,
height: 21, height: 21,
title: this.goods.inventory <= 0 ? "已售完" : "自购", title: sellout ? "已售完" : "自购",
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 13 * 2.sp, fontSize: 13 * 2.sp,
@ -298,7 +325,7 @@ class BrandDetailGridItem extends StatelessWidget {
// : 0), // : 0),
// topRight: Radius.circular(40), // topRight: Radius.circular(40),
// bottomRight: Radius.circular(40)), // bottomRight: Radius.circular(40)),
backgroundColor: this.goods.inventory <= 0 backgroundColor: sellout
? AppColor.greyColor ? AppColor.greyColor
: Color(0xFFC92219), : Color(0xFFC92219),
pureDisplay: true, pureDisplay: true,
@ -317,11 +344,27 @@ class BrandDetailGridItem extends StatelessWidget {
} }
_saleNumberWidget(GoodsSimple goods) { _saleNumberWidget(GoodsSimple goods) {
bool sellout = false;
bool isSeckill = false;
if(this.goods.inventory>0){
sellout = false;
}else{
sellout = true;
}
if(this.goods.secKill!=null){
if(this.goods.secKill.secKill==1){
isSeckill = true;
sellout = true;
// seckill
}
}
return Container( return Container(
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Row( Row(
children: <Widget>[ children: <Widget>[
isSeckill?SizedBox():
(goods.coupon != null && goods.coupon != 0) (goods.coupon != null && goods.coupon != 0)
? Container( ? Container(
margin: EdgeInsets.only(right: 5), margin: EdgeInsets.only(right: 5),
@ -331,11 +374,16 @@ class BrandDetailGridItem extends StatelessWidget {
), ),
) )
: SizedBox(), : SizedBox(),
isSeckill? Container(
padding: EdgeInsets.only(top:5.rw),
child: Image.asset(R.ASSETS_SECKILL_ICON_PNG,width: 69.rw,height: 20.rw,),
):
AppConfig.commissionByRoleLevel AppConfig.commissionByRoleLevel
? Container( ? Container(
child: Stack( child: Stack(
alignment: Alignment.center, alignment: Alignment.center,
children: <Widget>[ children: <Widget>[
Container( Container(
margin: EdgeInsets.symmetric(vertical: 2), margin: EdgeInsets.symmetric(vertical: 2),
alignment: Alignment.center, alignment: Alignment.center,
@ -354,6 +402,7 @@ class BrandDetailGridItem extends StatelessWidget {
), ),
), ),
), ),
AppConfig.getShowCommission() AppConfig.getShowCommission()
? Container( ? Container(
alignment: Alignment.center, alignment: Alignment.center,
@ -383,7 +432,7 @@ class BrandDetailGridItem extends StatelessWidget {
buyClick(); buyClick();
} else { } else {
AppRouter.push(context, RouteName.COMMODITY_PAGE, AppRouter.push(context, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments(this.goods.id,gysId: this.goods.gysId)); arguments: CommodityDetailPage.setArguments(this.goods.id));
} }
} }

@ -188,7 +188,7 @@ class BrandLikeGridItem extends StatelessWidget {
TextSpan( TextSpan(
text: "券后 ¥ ", text: "券后 ¥ ",
style: AppTextStyle.generate(12 * 2.sp, style: AppTextStyle.generate(12 * 2.sp,
color: Color(0xFFFA6400), color: Color(0xffc70404),
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
TextSpan( TextSpan(

@ -29,10 +29,9 @@ import 'package:recook/widgets/goods_item.dart';
class GoodPriceView extends StatefulWidget { class GoodPriceView extends StatefulWidget {
final GoodsDetailModel detailModel; final GoodsDetailModel detailModel;
final VoidCallback shareCallback; final VoidCallback shareCallback;
final gysId;
const GoodPriceView( const GoodPriceView(
{Key key, this.detailModel, this.shareCallback, this.gysId}) {Key key, this.detailModel, this.shareCallback})
: super(key: key); : super(key: key);
@override @override
@ -54,10 +53,7 @@ class _GoodPriceViewState extends State<GoodPriceView> {
if(widget.detailModel.data.seckill!=null){ if(widget.detailModel.data.seckill!=null){
_status = widget.detailModel.data.seckill.seckill_status; _status = widget.detailModel.data.seckill.seckill_status;
_endTime = widget.detailModel.data.seckill.seckillEndTime; _endTime = widget.detailModel.data.seckill.seckillEndTime;
print('--------------------'); //_endTime= DateUtil.formatDate(DateTime.parse(_endTime), format: 'HH-mm-ss');
print(DateTime.parse(_endTime));
print('--------------------');
_endTime= DateUtil.formatDate(DateTime.parse(_endTime), format: 'HH-mm-ss');
} }
detailModel = widget.detailModel; detailModel = widget.detailModel;
@ -75,7 +71,7 @@ class _GoodPriceViewState extends State<GoodPriceView> {
_detail(), _detail(),
_label(), _label(),
// //
widget.gysId == 1800 || widget.gysId == 2000 ?SizedBox(): _service() , widget.detailModel.data.vendorId == 1800 || widget.detailModel.data.vendorId == 2000 ?SizedBox(): _service() ,
], ],
); );
} }
@ -156,11 +152,10 @@ class _GoodPriceViewState extends State<GoodPriceView> {
"${_getDoubleText(minCommission)}-${_getDoubleText(maxCommission)}"; "${_getDoubleText(minCommission)}-${_getDoubleText(maxCommission)}";
} }
if(_status==1){ if(_status==1){
if(detailModel.data.sku != null && detailModel.data.sku.length > 0){
detailModel.data.sku.sort((left,right)=> left.discountPrice.compareTo(right.discountPrice)); price = detailModel.data.seckill.seckillMinPrice.toStringAsFixed(2)??'';
price = detailModel.data.sku[0].discountPrice.toStringAsFixed(2); commission = detailModel.data.seckill.seckillCommission.toStringAsFixed(2)??'';
commission = detailModel.data.sku[0].commission.toStringAsFixed(2);
}
} }
return _normalPriceWidget( return _normalPriceWidget(
price, commission, originPrice, isTwoPrice, coupon); price, commission, originPrice, isTwoPrice, coupon);

@ -319,13 +319,16 @@ class _DetailBottomBarState extends State<DetailBottomBar> {
_twoButtonRow() { _twoButtonRow() {
String commission = ''; String commission = '';
if(widget.goodsDetail != null){ if(widget.goodsDetail != null){
if( widget.goodsDetail.data.seckill.seckill_status==1){ commission = widget.goodsDetail == null
commission = widget.goodsDetail.data.seckill.seckillCommission.toStringAsFixed(2); ? null
}else{ : widget.goodsDetail.data.price.min.commission.toStringAsFixed(2);
commission = widget.goodsDetail == null if(widget.goodsDetail.data.seckill!=null){
? null if( widget.goodsDetail.data.seckill.seckill_status==1){
: widget.goodsDetail.data.price.min.commission.toStringAsFixed(2); commission = widget.goodsDetail.data.seckill.seckillCommission.toStringAsFixed(2);
}
} }
} }

@ -17,12 +17,12 @@ import 'package:recook/widgets/refresh_widget.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import 'cut_down_time_widget.dart'; import 'cut_down_time_widget.dart';
import 'functions/SeckillFunctions.dart';
import 'model/SeckillModel.dart'; import 'model/SeckillModel.dart';
class SeckillActivityPage extends StatefulWidget { class SeckillActivityPage extends StatefulWidget {
final SeckillModel seckillModel;
SeckillActivityPage({ SeckillActivityPage({
Key key, @required this.seckillModel, Key key
}) : super(key: key); }) : super(key: key);
@override @override
@ -36,6 +36,8 @@ class _SeckillActivityPageState extends State<SeckillActivityPage> {
String _endTime = ''; String _endTime = '';
String _startTime = ''; String _startTime = '';
num _peopleNum = 800; num _peopleNum = 800;
SeckillModel _seckillModel;
GSRefreshController _refreshController = GSRefreshController _refreshController =
GSRefreshController(initialRefresh: true); GSRefreshController(initialRefresh: true);
@ -43,10 +45,7 @@ class _SeckillActivityPageState extends State<SeckillActivityPage> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_status = widget.seckillModel.status;
_endTime = widget.seckillModel.endTime;
_startTime = widget.seckillModel.startTime;
_peopleNum = widget.seckillModel.shoppingPeople;
} }
@override @override
@ -91,41 +90,41 @@ class _SeckillActivityPageState extends State<SeckillActivityPage> {
bottom: _bottomWidgt(), bottom: _bottomWidgt(),
), ),
body: Container( body: RefreshWidget(
// decoration: BoxDecoration( controller: _refreshController,
// gradient: LinearGradient( noData: '抱歉,没有找到商品',
// begin: Alignment.topCenter, onRefresh: () async {
// end: Alignment.bottomCenter, _seckillModel = await SeckillFunc.getSeckillList();
// colors: [ if(_seckillModel!=null){
// Color(0xFFD5101A), _status =_seckillModel.status;
// Color(0x03FE2E39), _endTime = _seckillModel.endTime;
// ], _startTime = _seckillModel.startTime;
// stops: [0.0, 0.5], _peopleNum = _seckillModel.shoppingPeople;
// )), setState(() {});
child: _listWidget(), }
), _refreshController.refreshCompleted();
);
},
body: _listWidget()));
} }
_listWidget() { _listWidget() {
return Container( return _seckillModel!=null?
child: widget.seckillModel.seckillGoodsList!=null?
ListView.builder( ListView.builder(
itemBuilder: (_, index) { itemBuilder: (_, index) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
AppRouter.push(context, RouteName.COMMODITY_PAGE, AppRouter.push(context, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments( arguments: CommodityDetailPage.setArguments(
widget.seckillModel.seckillGoodsList[index].goodsId)); _seckillModel.seckillGoodsList[index].goodsId));
}, },
child: _itemWidget(widget.seckillModel.seckillGoodsList[index]), child: _itemWidget(_seckillModel.seckillGoodsList[index]),
); );
}, },
itemCount: widget.seckillModel.seckillGoodsList.length, itemCount: _seckillModel.seckillGoodsList.length,
):noDataView('没有找到商品'), ):noDataView('没有找到商品');
);
} }
noDataView(String text, {Widget icon}) { noDataView(String text, {Widget icon}) {
return Container( return Container(
@ -170,7 +169,7 @@ class _SeckillActivityPageState extends State<SeckillActivityPage> {
}, },
buildCtx: context, buildCtx: context,
model: data, model: data,
seckillModel: widget.seckillModel, seckillModel: _seckillModel,
), ),
], ],
), ),

@ -72,8 +72,8 @@ class _ShoppingCartItemState extends State<ShoppingCartItem> {
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
!widget.model.isAllWaitPromotionStart() || widget.isEdit // !widget.model.isAllWaitPromotionStart() || widget.isEdit?
? CustomImageButton( CustomImageButton(
icon: Icon( icon: Icon(
widget.model.selected widget.model.selected
? AppIcons.icon_check_circle ? AppIcons.icon_check_circle
@ -98,8 +98,8 @@ class _ShoppingCartItemState extends State<ShoppingCartItem> {
}); });
setState(() {}); setState(() {});
}, },
) ),
: Container(), // : Container(),
Container( Container(
width: rSize(6), width: rSize(6),
), ),

@ -76,6 +76,7 @@ class _ShoppingCartPageState extends BaseStoreState<ShoppingCartPage>
_controller = MvpListViewController(); _controller = MvpListViewController();
_selectedGoods = []; _selectedGoods = [];
_presenter.getShoppingCartList(UserManager.instance.user.info.id); _presenter.getShoppingCartList(UserManager.instance.user.info.id);
UserManager.instance.refreshShoppingCart.addListener(_refreshShoppingCart); UserManager.instance.refreshShoppingCart.addListener(_refreshShoppingCart);
@ -308,12 +309,14 @@ class _ShoppingCartPageState extends BaseStoreState<ShoppingCartPage>
_checkAll = !_checkAll; _checkAll = !_checkAll;
_selectedGoods.clear(); _selectedGoods.clear();
// //
// //
_controller.getData().forEach((brand) { _controller.getData().forEach((brand) {
brand.selected = _checkAll; brand.selected = _checkAll;
brand.children.forEach((goods) { brand.children.forEach((goods) {
if (_checkAll) { if (_checkAll) {
_selectedGoods.add(goods); if(goods.publishStatus!=0){//
_selectedGoods.add(goods);
}
} }
goods.selected = _checkAll; goods.selected = _checkAll;
}); });

@ -509,11 +509,12 @@ class _OrderListItemState extends State<OrderListItem> {
borderRadius: BorderRadius.circular(2), borderRadius: BorderRadius.circular(2),
color: Color(0xffeff1f6), color: Color(0xffeff1f6),
), ),
constraints: BoxConstraints(maxWidth: 150.rw),//
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
vertical: 3, horizontal: 6), vertical: 3, horizontal: 6),
child: Text( child: Text(
"${goods.skuName}", "${goods.skuName}",
maxLines: 3, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: AppTextStyle.generate(11 * 2.sp, style: AppTextStyle.generate(11 * 2.sp,
color: Colors.grey[600], color: Colors.grey[600],

@ -577,6 +577,7 @@ abstract class OrderDetailState<T extends StatefulWidget>
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Container( Container(
constraints: BoxConstraints(maxWidth: 150.rw),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(2), borderRadius: BorderRadius.circular(2),
color: Color(0xffeff1f6), color: Color(0xffeff1f6),
@ -585,7 +586,7 @@ abstract class OrderDetailState<T extends StatefulWidget>
vertical: 3, horizontal: 6), vertical: 3, horizontal: 6),
child: Text( child: Text(
goods.skuName, goods.skuName,
maxLines: 3, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: AppTextStyle.generate(11 * 2.sp, style: AppTextStyle.generate(11 * 2.sp,
color: Colors.grey[600], color: Colors.grey[600],

@ -138,11 +138,10 @@ class _SettingItemListViewState extends ResumableState<SettingItemListView> {
// //
SCTile.normalTile("秒杀(临时)", listener: () async { SCTile.normalTile("秒杀(临时)", listener: () async {
SeckillModel seckillModel = new SeckillModel();
seckillModel = await SeckillFunc.getSeckillList();
if(seckillModel!=null){ Get.to(() => SeckillActivityPage());
Get.to(() => SeckillActivityPage(seckillModel:seckillModel));
}
//CRoute.push(context, PrivacyPageV2()); //CRoute.push(context, PrivacyPageV2());
}), }),

@ -32,7 +32,7 @@ class _LaunchWidgetState extends BaseStoreState<LaunchWidget>
@override @override
void initState() { void initState() {
super.initState(); super.initState();
PowerLogger.start(context, debug: AppConfig.debug); PowerLogger.start(context, debug: true);//
WidgetsBinding.instance.addPostFrameCallback((callback) async { WidgetsBinding.instance.addPostFrameCallback((callback) async {
await Future.delayed(Duration(milliseconds: 2450)); await Future.delayed(Duration(milliseconds: 2450));
if (HiveStore.appBox.get('privacy_init') == null) { if (HiveStore.appBox.get('privacy_init') == null) {

@ -8,6 +8,7 @@ import 'package:recook/constants/header.dart';
import 'package:recook/manager/user_manager.dart'; import 'package:recook/manager/user_manager.dart';
import 'package:recook/models/goods_detail_model.dart'; import 'package:recook/models/goods_detail_model.dart';
import 'package:recook/models/goods_hot_sell_list_model.dart';
import 'package:recook/models/goods_simple_list_model.dart'; import 'package:recook/models/goods_simple_list_model.dart';
import 'package:recook/models/promotion_goods_list_model.dart'; import 'package:recook/models/promotion_goods_list_model.dart';
@ -16,8 +17,6 @@ import 'package:recook/pages/home/classify/commodity_detail_page.dart';
import 'package:recook/pages/home/classify/mvp/goods_detail_model_impl.dart'; import 'package:recook/pages/home/classify/mvp/goods_detail_model_impl.dart';
import 'package:recook/pages/home/promotion_time_tool.dart'; import 'package:recook/pages/home/promotion_time_tool.dart';
import 'package:recook/pages/seckill_activity/model/SeckillModel.dart'; import 'package:recook/pages/seckill_activity/model/SeckillModel.dart';
import 'package:recook/pages/seckill_activity/model/SeckillModel.dart';
import 'package:recook/pages/seckill_activity/model/SeckillModel.dart';
import 'package:recook/utils/share_tool.dart'; import 'package:recook/utils/share_tool.dart';
import 'package:recook/utils/user_level_tool.dart'; import 'package:recook/utils/user_level_tool.dart';
import 'package:recook/widgets/custom_cache_image.dart'; import 'package:recook/widgets/custom_cache_image.dart';
@ -69,6 +68,7 @@ class GoodsItemWidget extends StatelessWidget {
final GifController gifController; final GifController gifController;
final num gysId; final num gysId;
final SeckillModel seckillModel; final SeckillModel seckillModel;
final SecKill secKill;
const GoodsItemWidget({ const GoodsItemWidget({
@ -98,7 +98,7 @@ class GoodsItemWidget extends StatelessWidget {
this.specialIcon, this.specialIcon,
this.type, this.type,
this.countryIcon, this.countryIcon,
this.living, this.gifController, this.gysId, this.seckillModel, this.living, this.gifController, this.gysId, this.seckillModel, this.secKill,
//this.special_sale, //this.special_sale,
}) : widgetType = GoodsItemType.NONE, }) : widgetType = GoodsItemType.NONE,
super(key: key); super(key: key);
@ -137,6 +137,8 @@ class GoodsItemWidget extends StatelessWidget {
countryIcon = model.countryIcon, countryIcon = model.countryIcon,
living = model.living, living = model.living,
gysId = model.gysId, gysId = model.gysId,
secKill = model.secKill,
//secKill = model.
super(key: key); super(key: key);
///Hot List ///Hot List
@ -152,7 +154,7 @@ class GoodsItemWidget extends StatelessWidget {
this.specialSale, this.specialSale,
this.specialIcon, this.specialIcon,
this.type, this.type,
this.living, this.gifController, this.gysId, this.seckillModel, this.living, this.gifController, this.seckillModel,
}) : goodsName = data.goodsName, }) : goodsName = data.goodsName,
brandName = data.brandName, brandName = data.brandName,
brandPictureUrl = data.brandImg, brandPictureUrl = data.brandImg,
@ -172,6 +174,8 @@ class GoodsItemWidget extends StatelessWidget {
widgetType = GoodsItemType.HOT_LIST, widgetType = GoodsItemType.HOT_LIST,
isImport = data.isImport, isImport = data.isImport,
countryIcon = data.countryIcon, countryIcon = data.countryIcon,
gysId = data.gysId,
secKill = data.secKill,
super(key: key); super(key: key);
/// ///
@ -184,7 +188,7 @@ class GoodsItemWidget extends StatelessWidget {
@required this.buyClick, @required this.buyClick,
PromotionGoodsModel model, PromotionGoodsModel model,
this.notShowAmount = false, this.notShowAmount = false,
this.type, this.gifController, this.gysId, this.seckillModel, this.type, this.gifController, this.seckillModel,
}) : goodsName = model.goodsName, }) : goodsName = model.goodsName,
brandName = model.brandName, brandName = model.brandName,
brandPictureUrl = model.brandImg, brandPictureUrl = model.brandImg,
@ -205,6 +209,8 @@ class GoodsItemWidget extends StatelessWidget {
specialIcon = model.specialIcon, specialIcon = model.specialIcon,
countryIcon = model.countryIcon, countryIcon = model.countryIcon,
living = model.living, living = model.living,
gysId = model.gysId,
secKill = model.secKill,
super(key: key); super(key: key);
// //
@ -220,7 +226,7 @@ class GoodsItemWidget extends StatelessWidget {
this.notShowAmount = false, this.notShowAmount = false,
this.specialSale, this.specialSale,
this.type, this.gifController,this.originalPrice, this.percent, this.coupon,this.isImport, this.specialIcon, this.promotionStatus, this.living, this.gysId, this.type, this.gifController,this.originalPrice, this.percent, this.coupon,this.isImport, this.specialIcon, this.promotionStatus, this.living, this.gysId, this.secKill,
//this.special_sale, //this.special_sale,
}) : goodsName = model.goodsName, }) : goodsName = model.goodsName,
brandName = model.brandName, brandName = model.brandName,
@ -492,6 +498,26 @@ class GoodsItemWidget extends StatelessWidget {
// } // }
_image() { _image() {
bool sellout = false;
if(this.widgetType == GoodsItemType.SECKILL){
if(this.salesVolume>=this.inventory){
sellout = true;
}else{
sellout = false;
}
}else{
if(this.inventory>0){
sellout = false;
}else{
sellout = true;
}
if(this.secKill!=null){
if(secKill.secKill==1){
sellout = true;
// seckill
}
}
}
double cir = 5; double cir = 5;
return Container( return Container(
width: _height - 8, width: _height - 8,
@ -523,7 +549,7 @@ class GoodsItemWidget extends StatelessWidget {
left: 0, left: 0,
bottom: 0, bottom: 0,
child: Offstage( child: Offstage(
offstage: this.inventory > 0&&(this.salesVolume<this.inventory||this.widgetType != GoodsItemType.SECKILL), offstage: !sellout,
child: Container( child: Container(
color: Colors.black38, color: Colors.black38,
child: Center( child: Center(
@ -651,8 +677,38 @@ class GoodsItemWidget extends StatelessWidget {
_inventoryView() { _inventoryView() {
// //
bool seckillout = this.salesVolume>=this.inventory&&this.widgetType == GoodsItemType.SECKILL; // bool seckillout = this.salesVolume>=this.inventory&&(this.widgetType == GoodsItemType.SECKILL);
bool sellout = this.inventory <= 0; // bool sellout = this.inventory <= 0;
bool sellout = false;
bool isSeckill = false;
if(this.widgetType == GoodsItemType.SECKILL){
if(this.seckillModel!=null){
if(seckillModel.status==2){
isSeckill = true;// 2
}
else{
isSeckill = false;
}
}
if(this.salesVolume>=this.inventory){
sellout = true;
}else{
sellout = false;
}
}else{
if(this.inventory>0){
sellout = false;
}else{
sellout = true;
}
if(this.secKill!=null){
if(secKill.secKill==1){
isSeckill = true;
sellout = true;
// seckill
}
}
}
Color priceColor = Color(0xffc70404); Color priceColor = Color(0xffc70404);
return Container( return Container(
height: 20 * 2.h, height: 20 * 2.h,
@ -678,7 +734,7 @@ class GoodsItemWidget extends StatelessWidget {
children: [ children: [
ExtendedText.rich(TextSpan(children: [ ExtendedText.rich(TextSpan(children: [
TextSpan( TextSpan(
text: widgetType == GoodsItemType.SECKILL? "秒杀 ¥ ": "券后 ¥ ", text: isSeckill&&this.widgetType == GoodsItemType.SECKILL? "秒杀 ¥ ": isSeckill&&this.widgetType != GoodsItemType.SECKILL?'¥':"券后 ¥ ",
style: AppTextStyle.generate(12 * 2.sp, style: AppTextStyle.generate(12 * 2.sp,
color: priceColor, fontWeight: FontWeight.w500), color: priceColor, fontWeight: FontWeight.w500),
), ),
@ -698,7 +754,7 @@ class GoodsItemWidget extends StatelessWidget {
width: 5, width: 5,
)), )),
TextSpan( TextSpan(
text: widgetType == GoodsItemType.SECKILL?'':"¥${this.originalPrice.toStringAsFixed(0)}", text: isSeckill?'':"¥${this.originalPrice.toStringAsFixed(0)}",
style: TextStyle( style: TextStyle(
decoration: TextDecoration.lineThrough, decoration: TextDecoration.lineThrough,
decorationColor: Color(0xff898989), decorationColor: Color(0xff898989),
@ -708,7 +764,7 @@ class GoodsItemWidget extends StatelessWidget {
) )
])), ])),
AppConfig.getShowCommission()&&this.widgetType==GoodsItemType.SECKILL AppConfig.getShowCommission()&&(isSeckill)
? Container( ? Container(
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
@ -807,7 +863,7 @@ class GoodsItemWidget extends StatelessWidget {
direction: Direction.horizontal, direction: Direction.horizontal,
height: 21, height: 21,
// //
title: sellout||seckillout ? "已售完" : "自购", title: sellout?"已售完" : "自购",
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
@ -838,7 +894,7 @@ class GoodsItemWidget extends StatelessWidget {
// bottomRight: Radius.circular(40)), // bottomRight: Radius.circular(40)),
backgroundColor: backgroundColor:
// //
sellout||seckillout ? AppColor.greyColor : _shareTextColor, sellout? AppColor.greyColor : _shareTextColor,
pureDisplay: true, pureDisplay: true,
), ),
@ -906,11 +962,34 @@ class GoodsItemWidget extends StatelessWidget {
// } // }
_saleNumberWidget() { _saleNumberWidget() {
bool isSeckill = false;
if(this.widgetType == GoodsItemType.SECKILL){
if(this.seckillModel!=null){
if(seckillModel.status==2){
isSeckill = true;// 2
}
else{
isSeckill = false;
}
}
}else{
if(this.secKill!=null){
if(secKill.secKill==1){
isSeckill = true;
// seckill
}else{
isSeckill = false;
}
}
}
return Container( return Container(
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Row( Row(
children: <Widget>[ children: <Widget>[
isSeckill?SizedBox():
(this.coupon != null && this.coupon != 0) (this.coupon != null && this.coupon != 0)
? Container( ? Container(
margin: EdgeInsets.only(right: 5), margin: EdgeInsets.only(right: 5),
@ -920,7 +999,7 @@ class GoodsItemWidget extends StatelessWidget {
), ),
) )
: SizedBox(), : SizedBox(),
this.widgetType==GoodsItemType.SECKILL? isSeckill?
Container( Container(
child: Image.asset(R.ASSETS_SECKILL_ICON_PNG,width: 69.rw,height: 20.rw,), child: Image.asset(R.ASSETS_SECKILL_ICON_PNG,width: 69.rw,height: 20.rw,),
): ):
@ -1037,15 +1116,34 @@ class GoodsItemWidget extends StatelessWidget {
} }
_buyEvent() { _buyEvent() {
bool seckillout = this.salesVolume>=this.inventory&&this.widgetType == GoodsItemType.SECKILL; bool sellout = false;
if(this.widgetType == GoodsItemType.SECKILL){
if(this.salesVolume>=this.inventory){
sellout = true;
}else{
sellout = false;
}
}else{
if(this.inventory>0){
sellout = false;
}else{
sellout = true;
}
if(this.secKill!=null){
if(secKill.secKill==1){
sellout = true;
// seckill
}
}
}
if (buyClick != null) { if (buyClick != null) {
buyClick(); buyClick();
} else { } else {
AppRouter.push(buildCtx, RouteName.COMMODITY_PAGE, AppRouter.push(buildCtx, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments( arguments: CommodityDetailPage.setArguments(
this.id, this.id,
gysId: gysId,
seckillout:seckillout seckillout:sellout
// liveStatus: living == null ? null : living.status, // liveStatus: living == null ? null : living.status,
// roomId: living == null ? null : living.roomId // roomId: living == null ? null : living.roomId
)); ));

Loading…
Cancel
Save