master
章文轩 4 years ago
parent 84e4db64b3
commit 6a036667bd

@ -159,19 +159,19 @@ class GoodsSimple {
class Living {
int status;
int itemId;
int roomId;
Living({this.status, this.itemId});
Living({this.status, this.roomId});
Living.fromJson(Map<String, dynamic> json) {
status = json['status'];
itemId = json['item_id'];
roomId = json['room_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['status'] = this.status;
data['item_id'] = this.itemId;
data['room_id'] = this.roomId;
return data;
}
}

@ -55,29 +55,29 @@ Map<String, dynamic> _$ShoppingCartBrandModelToJson(
ShoppingCartGoodsModel _$ShoppingCartGoodsModelFromJson(
Map<String, dynamic> json) {
return ShoppingCartGoodsModel(
json['shoppingTrolleyId'] as int,
json['goodsId'] as int,
json['goodsName'] as String,
json['mainPhotoUrl'] as String,
json['skuName'] as String,
json['skuId'] as int,
json['quantity'] as int,
json['valid'] as bool,
(json['price'] as num)?.toDouble(),
json['promotionName'] as String,
json['selected'] as bool,
json['promotion'] == null
? null
: Promotion.fromJson(json['promotion'] as Map<String, dynamic>),
json['commission'] as num,
json['originalPrice'] as num,
json['isImport'] as num,
json['isFerme'] as num,
json['storehouse'] as int,
json['ferme'] as num,
json['publish_status'] as num,
json['countryIcon'] as String,
);
json['shoppingTrolleyId'] as int,
json['goodsId'] as int,
json['goodsName'] as String,
json['mainPhotoUrl'] as String,
json['skuName'] as String,
json['skuId'] as int,
json['quantity'] as int,
json['valid'] as bool,
(json['price'] as num)?.toDouble(),
json['promotionName'] as String,
json['selected'] as bool,
json['promotion'] == null
? null
: Promotion.fromJson(json['promotion'] as Map<String, dynamic>),
json['commission'] as num,
json['originalPrice'] as num,
json['isImport'] as num,
json['isFerme'] as num,
json['storehouse'] as int,
json['ferme'] as num,
json['publish_status'] as num,
json['country_icon'] as String,
);
}
Map<String, dynamic> _$ShoppingCartGoodsModelToJson(
@ -97,6 +97,6 @@ Map<String, dynamic> _$ShoppingCartGoodsModelToJson(
'promotion': instance.promotion,
'commission': instance.commission,
'originalPrice': instance.originalPrice,
'publish_status':instance.publishStatus,
'country_icon':instance.countryIcon,
'publish_status': instance.publishStatus,
'country_icon': instance.countryIcon,
};

@ -39,8 +39,8 @@ class CommodityDetailPage extends StatefulWidget {
this.liveId = 0,
}) : super(key: key);
static setArguments(int goodsID) {
return {"goodsID": goodsID};
static setArguments(int goodsID, {int liveStatus, int roomId}) {
return {"goodsID": goodsID, 'liveStatus': liveStatus, 'roomId': roomId};
}
@override
@ -57,11 +57,15 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
ValueNotifier<bool> _openSkuChoosePage = ValueNotifier(false);
int _goodsId;
GoodsDetailModel _goodsDetail;
int _liveStatus;
int _roomId;
@override
void initState() {
super.initState();
_goodsId = widget.arguments["goodsID"];
_liveStatus = widget.arguments["liveStatus"];
_roomId = widget.arguments["roomId"];
_tabController = TabController(length: 2, vsync: this);
_appBarController = AppBarController();
_bottomBarController = BottomBarController();
@ -145,8 +149,10 @@ class _CommodityDetailPageState extends BaseStoreState<CommodityDetailPage>
controller: _tabController,
children: [
GoodsPage(
isLive:widget.isLive,
liveId:widget.liveId,
liveStatus:_liveStatus,
roomId:_roomId,
isLive: widget.isLive,
liveId: widget.liveId,
openbrandList: () {
// _goodsDetail.data.brandId;
AppRouter.push(

@ -72,6 +72,9 @@ class GoodsPage extends StatefulWidget {
final bool isLive;
final int liveId;
final int liveStatus;
final int roomId;
const GoodsPage({
Key key,
this.onScroll,
@ -80,7 +83,7 @@ class GoodsPage extends StatefulWidget {
this.goodsDetail,
this.openbrandList,
this.isLive = false,
this.liveId = 0,
this.liveId = 0, this.liveStatus, this.roomId,
}) : super(key: key);
@override
@ -422,7 +425,7 @@ class _GoodsPageState extends BaseStoreState<GoodsPage> {
// images.add(widget.goodsDetail.data.video);
// }
images.addAll(widget.goodsDetail.data.mainPhotos);
return ImagePageView(images: images, onScrolled: (index) {});
return ImagePageView(images: images,liveStatus:widget.liveStatus,roomId:widget.roomId,onScrolled: (index) {});
}
///

@ -1082,10 +1082,10 @@ class _HomePageState extends BaseStoreState<HomePage>
onPressed: () async {
if (AppConfig.commissionByRoleLevel) {
//AppRouter.push(context, RouteName.REDEEM_LOTTERY_PAGE);
// UserManager.instance.selectTabbarIndex = 2;
// bool value = UserManager.instance.selectTabbar.value;
// UserManager.instance.selectTabbar.value = !value;
Get.to(() => ChooseTicketsTypePage());
UserManager.instance.selectTabbarIndex = 2;
bool value = UserManager.instance.selectTabbar.value;
UserManager.instance.selectTabbar.value = !value;
//Get.to(() => ChooseTicketsTypePage());
//setState(() {});
} else {
AppRouter.push(context, RouteName.GOODS_LIST_TEMP,

@ -84,7 +84,9 @@ class BrandDetailGridItem extends StatelessWidget {
width: 24,
height: 15,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: this.goods.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3 * 2.w),
),
child:

@ -84,10 +84,12 @@ class BrandLikeGridItem extends StatelessWidget {
width: 24,
height: 15,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: this.goods.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3 * 2.w),
),
child: this.goods.countryIcon==null?
child:this.goods.countryIcon==null?
Text(
'进口',
style: TextStyle(

@ -308,23 +308,27 @@ class _GoodPriceViewState extends State<GoodPriceView> {
width: 24,
height: 15,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: detailModel.data.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3 * 2.w),
),
child:detailModel.data.countryIcon==null?
Text(
'进口',
style: TextStyle(
color: Colors.white,
fontSize: 10 * 2.sp,
fontWeight: FontWeight.w600,
),
): CustomCacheImage(
width: rSize(100),
height: rSize(100),
imageUrl: Api.getImgUrl( detailModel.data.countryIcon),
fit: BoxFit.cover,
),
child: detailModel.data.countryIcon == null
? Text(
'进口',
style: TextStyle(
color: Colors.white,
fontSize: 10 * 2.sp,
fontWeight: FontWeight.w600,
),
)
: CustomCacheImage(
width: rSize(100),
height: rSize(100),
imageUrl: Api.getImgUrl(
detailModel.data.countryIcon),
fit: BoxFit.cover,
),
),
)
: WidgetSpan(child: SizedBox()),

@ -8,12 +8,14 @@
*/
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:recook/constants/api.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/models/goods_detail_model.dart';
import 'package:recook/pages/live/live_stream/live_stream_view_page.dart';
import 'package:recook/widgets/custom_cache_image.dart';
import 'package:recook/widgets/pic_swiper.dart';
import 'package:recook/widgets/seckill_activity_widget/live_animate_widget.dart';
import 'package:recook/widgets/video_view.dart';
typedef OnScrolledListener = Function(int index);
@ -21,10 +23,18 @@ typedef OnScrolledListener = Function(int index);
class ImagePageView extends StatefulWidget {
final OnScrolledListener onScrolled;
final List<dynamic> images;
final int liveStatus;
final int roomId;
// final Video video;
ImagePageView({Key key, this.onScrolled, this.images,})
: assert(images != null && images.length > 0, "images 不能为空");
ImagePageView({
Key key,
this.onScrolled,
this.images,
this.liveStatus,
this.roomId,
}) : assert(images != null && images.length > 0, "images 不能为空");
@override
State<StatefulWidget> createState() {
@ -39,7 +49,7 @@ class _ImagePageViewState extends State<ImagePageView> {
List<PicSwiperItem> picSwiperItem = [];
@override
void initState() {
for (dynamic photo in widget.images){
for (dynamic photo in widget.images) {
if (photo is MainPhotos) {
photoList.add(photo);
// picSwiperItem.add(PicSwiperItem(Api.getResizeImgUrl(photo.url, DeviceInfo.screenWidth.toInt()*2)));
@ -49,7 +59,6 @@ class _ImagePageViewState extends State<ImagePageView> {
super.initState();
}
@override
Widget build(BuildContext context) {
return _headPageView();
@ -73,29 +82,34 @@ class _ImagePageViewState extends State<ImagePageView> {
children: widget.images.map<Widget>((image) {
if (image is MainPhotos) {
return CustomCacheImage(
imageClick: (){
AppRouter.fade(
context,
RouteName.PIC_SWIPER,
arguments: PicSwiper.setArguments(
index: photoList.indexOf(image),
pics: picSwiperItem,
),
);
},
imageClick: () {
AppRouter.fade(
context,
RouteName.PIC_SWIPER,
arguments: PicSwiper.setArguments(
index: photoList.indexOf(image),
pics: picSwiperItem,
),
);
},
height: double.infinity,
width: double.infinity,
fit: BoxFit.cover,
placeholder: AppImageName.placeholder_1x1,
imageUrl: Api.getImgUrl(image.url));
// imageUrl: Api.getResizeImgUrl(image.url, DeviceInfo.screenWidth.toInt() * 2));
} else if (image is Video) {
// return Container(height: double.infinity, width: double.infinity,);
return VideoView(
videoUrl: Api.getImgUrl(image.url),
);
} else {
return Container(
height: double.infinity,
width: double.infinity,
fit: BoxFit.cover,
placeholder: AppImageName.placeholder_1x1,
imageUrl: Api.getImgUrl(image.url ));
// imageUrl: Api.getResizeImgUrl(image.url, DeviceInfo.screenWidth.toInt() * 2));
}else if (image is Video){
// return Container(height: double.infinity, width: double.infinity,);
return VideoView(videoUrl: Api.getImgUrl(image.url),);
}else{
return Container(height: double.infinity, width: double.infinity,);
);
}
// imageUrl: Api.getImgUrl(image.url),);
// imageUrl: Api.getImgUrl(image.url),);
}).toList()),
Positioned(
bottom: 35,
@ -107,7 +121,47 @@ class _ImagePageViewState extends State<ImagePageView> {
borderRadius:
BorderRadius.horizontal(left: Radius.circular(20))),
child: _imageCount(),
))
)),
widget.liveStatus == 1
? Positioned(
top: 32.rw,
right: 35.rw,
child: GestureDetector(
onTap: () {
Get.to(LiveStreamViewPage(id: widget.roomId));
},
child: Container(
width: 50.rw,
height: 69.rw,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(7.rw)),
color: Colors.white),
child: Column(
children: [
5.hb,
Container(
width: 40.rw,
height: 40.rw,
decoration: BoxDecoration(
color: Color(0xFFFF0000),
borderRadius:
BorderRadius.all(Radius.circular(40.rw))),
child: LiveAnimateWidget(
size: 80.w,
),
),
5.hb,
Text(
'直播中',
style: TextStyle(
fontSize: 10.rsp, color: Color(0xFF333333)),
)
],
),
),
),
)
: SizedBox(),
]),
),
);

@ -0,0 +1,48 @@
import 'package:recook/constants/api_v2.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/models/goods_simple_list_model.dart';
import 'package:recook/pages/home/model/aku_video_list_model.dart';
class ShoppingCartFuc {
//
static Future<List<GoodsSimple>> getLikeGoodsList(int user_id) async {
ResultData result = await HttpManager.post(APIV2.userAPI.getLikeGoodsList, {
'user_id': user_id, // 0
});
if (result.data != null) {
if (result.data['data'] != null) {
return (result.data['data'] as List)
.map((e) => GoodsSimple.fromJson(e))
.toList();
}
}
}
//
static Future<List<GoodsSimple>> getSimilarGoodsList(int goods_id) async {
ResultData result =
await HttpManager.post(APIV2.userAPI.getSimilarGoodsList, {
'goods_id': goods_id,
});
if (result.data != null) {
if (result.data['data'] != null) {
return (result.data['data'] as List)
.map((e) => GoodsSimple.fromJson(e))
.toList();
}
}
}
//
// static Future<String> addHits(int id) async {
// ResultData result = await HttpManager.post(APIV2.userAPI.addHits, {
// 'id': id,
// });
// if (result.data != null) {
// return result.data['code'];
// }
// }
}

@ -264,7 +264,9 @@ class _ShoppingCartItemState extends State<ShoppingCartItem> {
width: 24,
height: 15,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: goods.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius:
BorderRadius.circular(3 * 2.w),
),

@ -0,0 +1,278 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/manager/user_manager.dart';
import 'package:recook/models/goods_simple_list_model.dart';
import 'package:recook/pages/home/classify/brandgoods_list_page.dart';
import 'package:recook/pages/home/classify/commodity_detail_page.dart';
import 'package:recook/pages/home/items/item_brand_like_grid.dart';
import 'package:recook/widgets/custom_app_bar.dart';
import 'package:recook/widgets/goods_item.dart';
import 'package:recook/widgets/progress/re_toast.dart';
import 'package:recook/widgets/recook_back_button.dart';
import 'package:recook/widgets/refresh_widget.dart';
import 'package:waterfall_flow/waterfall_flow.dart';
import 'function/shopping_cart_fuc.dart';
class SimilarGoodsPage extends StatefulWidget {
final int goodsId;
//final List<GoodsSimple> similarGoodsList;
const SimilarGoodsPage({Key key, this.goodsId}) : super(key: key);
@override
State<StatefulWidget> createState() {
return _SimilarGoodsPageState();
}
}
class _SimilarGoodsPageState extends BaseStoreState<SimilarGoodsPage> {
GoodsSimpleListModel goodsSimpleListModel;
List<GoodsSimple> _likeGoodsList = [];
List<GoodsSimple> _similarGoodsList = [];
GSRefreshController _refreshController =
GSRefreshController(initialRefresh: true);
@override
void initState() {
super.initState();
//_similarGoodsList = widget.similarGoodsList;
Future.delayed(Duration.zero, () async {
int userid;
if (UserManager.instance.user.info.id == null) {
userid = 0;
} else {
userid = UserManager.instance.user.info.id;
}
_likeGoodsList = await ShoppingCartFuc.getLikeGoodsList(userid);
setState(() {});
});
}
@override
void dispose() {
super.dispose();
}
@override
Widget buildContext(BuildContext context, {store}) {
return Scaffold(
backgroundColor: AppColor.tableViewGrayColor,
appBar: CustomAppBar(
appBackground: Color(0xFFC92219),
elevation: 0,
leading: RecookBackButton(white: true),
title: Text(
'找相似',
style: TextStyle(fontSize: 18.rsp, color: Colors.white),
),
themeData: AppThemes.themeDataGrey.appBarTheme,
),
body: _buildList(),
);
}
_buildLikeTitle() {
return Container(
width: double.infinity,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 22.rw,
height: 2.rw,
decoration: BoxDecoration(color: Color(0xFFC92219)),
),
Container(
width: 6.rw,
height: 6.rw,
decoration: BoxDecoration(
color: Color(0xFFC92219),
borderRadius: BorderRadius.all(Radius.circular(6.rw))),
),
20.wb,
Text(
'您可能还喜欢',
style: TextStyle(color: Color(0xFFC92219), fontSize: 14.rsp),
),
20.wb,
Container(
width: 6.rw,
height: 6.rw,
decoration: BoxDecoration(
color: Color(0xFFC92219),
borderRadius: BorderRadius.all(Radius.circular(6.rw))),
),
Container(
width: 22.rw,
height: 2.rw,
decoration: BoxDecoration(color: Color(0xFFC92219)),
),
],
),
);
}
_buildLikeWidget() {
return Container(
padding: EdgeInsets.symmetric(horizontal: 10.rw),
height: _likeGoodsList?.length * 378.rw / 2,
width: double.infinity,
child: Column(
children: [
35.hb,
_buildLikeTitle(),
50.hb,
WaterfallFlow.builder(
primary: false,
shrinkWrap: true,
padding: EdgeInsets.only(bottom: DeviceInfo.bottomBarHeight),
physics: NeverScrollableScrollPhysics(),
itemCount: _likeGoodsList?.length,
gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10,
),
itemBuilder: (context, index) {
GoodsSimple goods = _likeGoodsList[index];
return MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
AppRouter.push(context, RouteName.COMMODITY_PAGE,
arguments:
CommodityDetailPage.setArguments(goods.id));
},
child: BrandLikeGridItem(
goods: goods,
onBrandClick: () {
AppRouter.push(context, RouteName.BRANDGOODS_LIST_PAGE,
arguments: BrandGoodsListPage.setArguments(
goods.brandId, goods.brandName));
},
));
}),
40.hb,
Container(
alignment: Alignment.center,
child: Text(
'已经到底啦~',
style: TextStyle(color: Color(0xFF999999), fontSize: 14.rsp),
),
),
],
),
);
}
_buildExtraItem(GoodsSimple goods, int index) {
return Column(
children: [
MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
AppRouter.push(context, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments(goods.id));
},
child: GoodsItemWidget.normalGoodsItem(
onBrandClick: () {
AppRouter.push(context, RouteName.BRANDGOODS_LIST_PAGE,
arguments: BrandGoodsListPage.setArguments(
goods.brandId, goods.brandName));
},
buildCtx: context,
model: goods,
type: 4,
)),
_likeGoodsList != null ? _buildLikeWidget() : SizedBox(),
],
);
}
_buildList() {
return RefreshWidget(
controller: _refreshController,
//noData: '抱歉,没有找相似商品',
noDataText: '抱歉,没有找相似商品',
onRefresh: () async {
//Function cancel = ReToast.loading();
if (_similarGoodsList.isNotEmpty) {
_similarGoodsList = [];
}
_similarGoodsList =
await ShoppingCartFuc.getSimilarGoodsList(widget.goodsId);
setState(() {});
_refreshController.refreshCompleted();
//cancel();
},
body: _similarGoodsList.isNotEmpty
? _buildSimilarList()
: noDataView('抱歉,没有找相似商品'),
//
);
}
noDataView(String text, {Widget icon}) {
return ListView(
//height: double.infinity,
children: <Widget>[
100.hb,
icon ??
Image.asset(
R.ASSETS_NODATA_PNG,
width: rSize(80),
height: rSize(80),
),
// Icon(AppIcons.icon_no_data_search,size: rSize(80),color: Colors.grey),
SizedBox(
height: 8,
),
Container(
alignment: Alignment.center,
width: double.infinity,
child: Text(
text,
style: AppTextStyle.generate(14 * 2.sp, color: Colors.grey),
),
),
SizedBox(
height: rSize(30),
),
_buildLikeWidget(),
],
);
}
_buildSimilarList() {
return ListView.builder(
//padding: EdgeInsets.only(bottom: 80.rw),
padding: EdgeInsets.only(top: 10.rw),
physics: AlwaysScrollableScrollPhysics(),
itemCount: _similarGoodsList?.length,
itemBuilder: (context, index) {
GoodsSimple goods = _similarGoodsList[index];
return index != _similarGoodsList.length - 1
? MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
AppRouter.push(context, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments(goods.id));
},
child: GoodsItemWidget.normalGoodsItem(
onBrandClick: () {
AppRouter.push(context, RouteName.BRANDGOODS_LIST_PAGE,
arguments: BrandGoodsListPage.setArguments(
goods.brandId, goods.brandName));
},
buildCtx: context,
model: goods,
type: 4,
))
: _buildExtraItem(_similarGoodsList[index], index);
});
}
}

@ -464,7 +464,9 @@ class _OrderListItemState extends State<OrderListItem> {
width: 24.rw,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: goods.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3.rw),
),
child: goods.countryIcon == null

@ -64,7 +64,9 @@ class GuideOrderCard extends StatelessWidget {
width: 24.rw,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: item.countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3.rw),
),
child: item.countryIcon == null

@ -140,43 +140,44 @@ class _OrderDetailPageState extends OrderDetailState<OrderDetailPage>
return _deliverItems();
case 4:
{
if (!TextUtils.isEmpty(orderDetail.evaluatedAt)) return [];
DPrint.printf(TextUtils.isEmpty(orderDetail.evaluatedAt));
return [
CustomImageButton(
title: "评价",
color: AppColor.themeColor,
fontSize: 13 * 2.sp,
padding: EdgeInsets.symmetric(
vertical: rSize(2), horizontal: rSize(20)),
borderRadius: BorderRadius.all(Radius.circular(40)),
border: Border.all(color: AppColor.themeColor, width: 0.8 * 2.w),
onPressed: () {
List<EvaluationGoodsModel> goodsList = [];
orderDetail.brands.forEach((brand) {
brand.goods.forEach((goods) {
if (goods.assType == 0) {
goodsList.add(EvaluationGoodsModel(
id: goods.goodsId,
mainPhotoUrl: goods.mainPhotoUrl,
goodsName: goods.goodsName));
}
});
});
push(RouteName.ORDER_EVALUATION,
arguments: PublishEvaluationPage.setArguments(
orderId: orderDetail.id, goodsList: goodsList))
.then((isSuccess) {
if (isSuccess) {
orderDetail.evaluatedAt = "已评价";
}
});
},
)
];
}
return null;
// {
// if (!TextUtils.isEmpty(orderDetail.evaluatedAt)) return [];
// DPrint.printf(TextUtils.isEmpty(orderDetail.evaluatedAt));
// return [
// CustomImageButton(
// title: "评价",
// color: AppColor.themeColor,
// fontSize: 13 * 2.sp,
// padding: EdgeInsets.symmetric(
// vertical: rSize(2), horizontal: rSize(20)),
// borderRadius: BorderRadius.all(Radius.circular(40)),
// border: Border.all(color: AppColor.themeColor, width: 0.8 * 2.w),
// onPressed: () {
// List<EvaluationGoodsModel> goodsList = [];
// orderDetail.brands.forEach((brand) {
// brand.goods.forEach((goods) {
// if (goods.assType == 0) {
// goodsList.add(EvaluationGoodsModel(
// id: goods.goodsId,
// mainPhotoUrl: goods.mainPhotoUrl,
// goodsName: goods.goodsName));
// }
// });
// });
// push(RouteName.ORDER_EVALUATION,
// arguments: PublishEvaluationPage.setArguments(
// orderId: orderDetail.id, goodsList: goodsList))
// .then((isSuccess) {
// if (isSuccess) {
// orderDetail.evaluatedAt = "已评价";
// }
// });
// },
// )
// ];
// }
}
return null;
}

@ -152,6 +152,10 @@ class _WelcomeWidgetState extends BaseStoreState<WelcomeWidget> {
@override
void initState() {
super.initState();
Future.delayed(Duration.zero, () async {
UserManager.instance.kingCoinListModelList =
await UserFunc.getKingCoinList();
});
initPlatformState();
getPackageInfo();
_autoLogin();
@ -164,10 +168,7 @@ class _WelcomeWidgetState extends BaseStoreState<WelcomeWidget> {
UserManager.instance.activePeople();
}
});
Future.delayed(Duration.zero, () async {
UserManager.instance.kingCoinListModelList =
await UserFunc.getKingCoinList();
});
}
Future<void> initPlatformState() async {

@ -22,6 +22,7 @@ import 'package:recook/widgets/custom_image_button.dart';
import 'package:recook/models/goods_hot_sell_list_model.dart'
as GoodsHotSellListModel;
import 'package:recook/widgets/seckill_activity_widget/live_animate_widget.dart';
enum GoodsItemType {
NONE,
@ -325,7 +326,9 @@ class GoodsItemWidget extends StatelessWidget {
width: 24.rw,
height: 16.rw,
decoration: BoxDecoration(
color: Color(0xFFCC1B4F),
color: countryIcon == null
? Color(0xFFCC1B4F)
: Colors.transparent,
borderRadius: BorderRadius.circular(3 * 2.w),
),
child: countryIcon == null
@ -415,9 +418,31 @@ class GoodsItemWidget extends StatelessWidget {
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(cir)),
child: Stack(children: [
living?
child: Container(color: AppColor.frenchColor),
),
living?.status == 1
? Positioned(
top: 6.rw,
right: 6.rw,
child: Container(
width: 25.rw,
height: 16.rw,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8.rw)),
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [
Color(0xFFEC4073),
Color(0xFFE50043),
],
)),
child: Row(
children: [
LiveAnimateWidget(),
],
),
),
)
: SizedBox(),
Positioned(
top: 0,
right: 0,
@ -463,18 +488,21 @@ class GoodsItemWidget extends StatelessWidget {
specialSale != null
? Positioned(
left: 5.rw,
bottom: 5.rw,
top: 5.rw,
child: Container(
width: _height - 18,
height: specialSale.length > 3 ? 52.rw : 26.rw,
///color: Colors.red,
width: (_height - 8.rw) / 3.rw * 2.rw,
height: specialSale == null
? 0
: specialSale.length ~/ 2 * 24.rw + 24.rw,
child: GridView.builder(
shrinkWrap: true,
reverse: true,
//reverse: true,
padding: EdgeInsets.zero,
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
childAspectRatio: 2,
crossAxisCount: 2,
childAspectRatio: 2.4,
mainAxisSpacing: 5,
crossAxisSpacing: 5),
itemCount: specialSale.length,
@ -495,18 +523,20 @@ class GoodsItemWidget extends StatelessWidget {
specialIcon != null
? Positioned(
left: 5.rw,
bottom: 5.rw,
top: 5.rw,
child: Container(
width: _height - 18,
height: specialIcon.length > 3 ? 52.rw : 26.rw,
width: (_height - 8.rw) / 3.rw * 2.rw,
height: specialSale == null
? 0
: specialSale.length ~/ 2 * 26.rw,
child: GridView.builder(
shrinkWrap: true,
reverse: true,
padding: EdgeInsets.zero,
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
childAspectRatio: 2,
crossAxisCount: 2,
childAspectRatio: 2.4,
mainAxisSpacing: 5,
crossAxisSpacing: 5),
itemCount: specialIcon.length,
@ -893,7 +923,17 @@ class GoodsItemWidget extends StatelessWidget {
buyClick();
} else {
AppRouter.push(buildCtx, RouteName.COMMODITY_PAGE,
arguments: CommodityDetailPage.setArguments(this.id));
arguments: CommodityDetailPage.setArguments(this.id,
liveStatus: living == null ? null : living.status,
roomId: living == null ? null : living.roomId));
}
}
_getLivingStatus(int status) {
if (status == 1) {
return true;
} else {
return false;
}
}
}

Loading…
Cancel
Save