|
|
|
@ -20,11 +20,13 @@ import '../../../view_widget/classic_header.dart';
|
|
|
|
|
import '../../../view_widget/custom_image.dart'; |
|
|
|
|
import '../../../view_widget/my_footer.dart'; |
|
|
|
|
import '../../../view_widget/no_data_view.dart'; |
|
|
|
|
import '../../../view_widget/settlement_tips_dialog.dart'; |
|
|
|
|
|
|
|
|
|
class GoodsSort extends StatefulWidget { |
|
|
|
|
final Map<String, dynamic> arguments; |
|
|
|
|
|
|
|
|
|
GoodsSort({this.arguments}); |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
State<StatefulWidget> createState() { |
|
|
|
|
return _GoodsSort(); |
|
|
|
@ -42,7 +44,6 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
int groupIndex = -1; |
|
|
|
|
bool _shimmer = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
void initState() { |
|
|
|
|
super.initState(); |
|
|
|
@ -61,13 +62,17 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
status: S.current.zhengzaijiazai, |
|
|
|
|
maskType: EasyLoadingMaskType.black); |
|
|
|
|
SharedPreferences.getInstance().then((value) { |
|
|
|
|
businessService = BusinessApiService(Dio(), |
|
|
|
|
context: context, |
|
|
|
|
token: BusinessInstance.instance.businessToken, |
|
|
|
|
tenant: BusinessInstance.instance.businessTenant, |
|
|
|
|
storeId: widget.arguments["storeId"],); |
|
|
|
|
businessService = BusinessApiService( |
|
|
|
|
Dio(), |
|
|
|
|
context: context, |
|
|
|
|
token: BusinessInstance.instance.businessToken, |
|
|
|
|
tenant: BusinessInstance.instance.businessTenant, |
|
|
|
|
storeId: widget.arguments["storeId"], |
|
|
|
|
); |
|
|
|
|
queryProductGroupList(); |
|
|
|
|
queryGoodsList(groupIndex != -1 ? productGroupList.records[groupIndex].id : "", isSing: false); |
|
|
|
|
queryGoodsList( |
|
|
|
|
groupIndex != -1 ? productGroupList.records[groupIndex].id : "", |
|
|
|
|
isSing: false); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -118,7 +123,7 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
maskType: EasyLoadingMaskType.black); |
|
|
|
|
try { |
|
|
|
|
BaseData<BusinessGoods> baseData = |
|
|
|
|
await businessService.findAdminProductLis({ |
|
|
|
|
await businessService.findAdminProductLis({ |
|
|
|
|
"groupId": groupId, |
|
|
|
|
"hasStock": "", |
|
|
|
|
"keyword": "", |
|
|
|
@ -153,6 +158,37 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
///商品排序/一键置顶 |
|
|
|
|
goodsSortTop(id) async { |
|
|
|
|
try{ |
|
|
|
|
EasyLoading.show( |
|
|
|
|
status: S.current.zhengzaijiazai, maskType: EasyLoadingMaskType.black); |
|
|
|
|
if (businessService == null) { |
|
|
|
|
businessService = BusinessApiService(Dio(), |
|
|
|
|
context: context, |
|
|
|
|
token: BusinessInstance.instance.businessToken, |
|
|
|
|
tenant: BusinessInstance.instance.businessTenant, |
|
|
|
|
storeId: widget.arguments["storeId"]); |
|
|
|
|
} |
|
|
|
|
BaseData baseData = await businessService.productSortTop({ |
|
|
|
|
"id": id, |
|
|
|
|
}).catchError((error) {}); |
|
|
|
|
if (baseData != null && baseData.isSuccess) { |
|
|
|
|
_pageIndex = 1; |
|
|
|
|
adminProductVoList.clear(); |
|
|
|
|
await queryGoodsList(groupIndex == -1 |
|
|
|
|
? "" |
|
|
|
|
: productGroupList?.records[groupIndex]?.id ?? "",isSing: false); |
|
|
|
|
SmartDialog.showToast("商品置顶成功", alignment: Alignment.center); |
|
|
|
|
setState(() {}); |
|
|
|
|
} else { |
|
|
|
|
SmartDialog.showToast(baseData.msg, alignment: Alignment.center); |
|
|
|
|
} |
|
|
|
|
}finally{ |
|
|
|
|
EasyLoading.dismiss(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
Widget build(BuildContext context) { |
|
|
|
|
return Scaffold( |
|
|
|
@ -164,7 +200,7 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
leadingColor: Colors.black, |
|
|
|
|
brightness: Brightness.dark, |
|
|
|
|
), |
|
|
|
|
body:Row( |
|
|
|
|
body: Row( |
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start, |
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start, |
|
|
|
|
children: [ |
|
|
|
@ -175,40 +211,40 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
color: Color(0xFFFAFAFA), |
|
|
|
|
child: (_shimmer) |
|
|
|
|
? ListView.builder( |
|
|
|
|
itemCount: 10, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortLeftItemSm(); |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
itemCount: 10, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortLeftItemSm(); |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
: ListView.builder( |
|
|
|
|
itemCount: productGroupList?.records?.length ?? 0, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return GestureDetector( |
|
|
|
|
behavior: HitTestBehavior.opaque, |
|
|
|
|
onTap: () { |
|
|
|
|
groupIndex = position; |
|
|
|
|
_pageIndex = 1; |
|
|
|
|
adminProductVoList.clear(); |
|
|
|
|
queryGoodsList(productGroupList?.records[position].id,); |
|
|
|
|
}, |
|
|
|
|
child: sortLeftItem( |
|
|
|
|
productGroupList.records[position], |
|
|
|
|
position), |
|
|
|
|
); |
|
|
|
|
}, |
|
|
|
|
), |
|
|
|
|
itemCount: productGroupList?.records?.length ?? 0, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return GestureDetector( |
|
|
|
|
behavior: HitTestBehavior.opaque, |
|
|
|
|
onTap: () { |
|
|
|
|
groupIndex = position; |
|
|
|
|
_pageIndex = 1; |
|
|
|
|
adminProductVoList.clear(); |
|
|
|
|
queryGoodsList( |
|
|
|
|
productGroupList?.records[position].id, |
|
|
|
|
); |
|
|
|
|
}, |
|
|
|
|
child: sortLeftItem( |
|
|
|
|
productGroupList.records[position], position), |
|
|
|
|
); |
|
|
|
|
}, |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
Container( |
|
|
|
|
width: MediaQuery.of(context).size.width - 100.w, |
|
|
|
|
child: SmartRefresher( |
|
|
|
|
controller: _refreshController, |
|
|
|
|
enablePullDown: true, |
|
|
|
|
enablePullUp: |
|
|
|
|
adminProductVoList.length != 0 ? true : false, |
|
|
|
|
enablePullUp: adminProductVoList.length != 0 ? true : false, |
|
|
|
|
header: MyHeader( |
|
|
|
|
color: Color(0xFF30415B), |
|
|
|
|
), |
|
|
|
@ -233,42 +269,40 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
color: Colors.white, |
|
|
|
|
child: (_shimmer) |
|
|
|
|
? ListView.builder( |
|
|
|
|
itemCount: 10, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortGoodsItemSm(); |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
itemCount: 10, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortGoodsItemSm(); |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
: ((adminProductVoList == null || |
|
|
|
|
adminProductVoList.length == 0) |
|
|
|
|
? NoDataView( |
|
|
|
|
src: |
|
|
|
|
"assets/image/bs_no data_logo.webp", |
|
|
|
|
isShowBtn: false, |
|
|
|
|
text: "该分组暂无添加商品", |
|
|
|
|
fontSize: 16.sp, |
|
|
|
|
margin: EdgeInsets.all(20.h), |
|
|
|
|
) |
|
|
|
|
: ListView.builder( |
|
|
|
|
itemCount: |
|
|
|
|
adminProductVoList?.length ?? 0, |
|
|
|
|
controller: controller, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortGoodsItem(adminProductVoList[position]); |
|
|
|
|
}, |
|
|
|
|
)))), |
|
|
|
|
adminProductVoList.length == 0) |
|
|
|
|
? NoDataView( |
|
|
|
|
src: "assets/image/bs_no data_logo.webp", |
|
|
|
|
isShowBtn: false, |
|
|
|
|
text: "该分组暂无添加商品", |
|
|
|
|
fontSize: 16.sp, |
|
|
|
|
margin: EdgeInsets.all(20.h), |
|
|
|
|
) |
|
|
|
|
: ListView.builder( |
|
|
|
|
itemCount: adminProductVoList?.length ?? 0, |
|
|
|
|
controller: controller, |
|
|
|
|
physics: BouncingScrollPhysics(), |
|
|
|
|
shrinkWrap: true, |
|
|
|
|
itemBuilder: (context, position) { |
|
|
|
|
return sortGoodsItem( |
|
|
|
|
adminProductVoList[position]); |
|
|
|
|
}, |
|
|
|
|
)))), |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
|
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
///左边list |
|
|
|
|
Widget sortLeftItem(Records records, index){ |
|
|
|
|
Widget sortLeftItem(Records records, index) { |
|
|
|
|
return Container( |
|
|
|
|
color: groupIndex == index ? Colors.white : Color(0xFFFAFAFA), |
|
|
|
|
alignment: Alignment.center, |
|
|
|
@ -279,24 +313,24 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
children: [ |
|
|
|
|
Expanded( |
|
|
|
|
child: Text( |
|
|
|
|
records?.groupName ?? "", |
|
|
|
|
textAlign: TextAlign.center, |
|
|
|
|
style: TextStyle( |
|
|
|
|
color: |
|
|
|
|
records?.groupName ?? "", |
|
|
|
|
textAlign: TextAlign.center, |
|
|
|
|
style: TextStyle( |
|
|
|
|
color: |
|
|
|
|
groupIndex == index ? Color(0xFF30415B) : Color(0xFF626264), |
|
|
|
|
fontSize: 12.sp, |
|
|
|
|
fontWeight: groupIndex == index |
|
|
|
|
? MyFontWeight.semi_bold |
|
|
|
|
: MyFontWeight.regular, |
|
|
|
|
), |
|
|
|
|
)), |
|
|
|
|
fontSize: 12.sp, |
|
|
|
|
fontWeight: groupIndex == index |
|
|
|
|
? MyFontWeight.semi_bold |
|
|
|
|
: MyFontWeight.regular, |
|
|
|
|
), |
|
|
|
|
)), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
///右边List |
|
|
|
|
Widget sortGoodsItem(AdminProductVoList adminProductVoList){ |
|
|
|
|
Widget sortGoodsItem(AdminProductVoList adminProductVoList) { |
|
|
|
|
return Container( |
|
|
|
|
margin: EdgeInsets.only(bottom: 21.h), |
|
|
|
|
padding: EdgeInsets.only(left: 16.w, right: 14.w), |
|
|
|
@ -309,16 +343,21 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
fit: BoxFit.cover, |
|
|
|
|
radius: BorderRadius.circular(4), |
|
|
|
|
), |
|
|
|
|
SizedBox(width:12.w,), |
|
|
|
|
Expanded(child:Column( |
|
|
|
|
SizedBox( |
|
|
|
|
width: 12.w, |
|
|
|
|
), |
|
|
|
|
Expanded( |
|
|
|
|
child: Column( |
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start, |
|
|
|
|
children: [ |
|
|
|
|
Padding(padding:EdgeInsets.only(bottom:11.h,top: 2.h), |
|
|
|
|
Padding( |
|
|
|
|
padding: EdgeInsets.only(bottom: 11.h, top: 2.h), |
|
|
|
|
child: Row( |
|
|
|
|
children: [ |
|
|
|
|
Expanded(child: Text( |
|
|
|
|
Expanded( |
|
|
|
|
child: Text( |
|
|
|
|
adminProductVoList?.productName ?? "", |
|
|
|
|
maxLines:1, |
|
|
|
|
maxLines: 1, |
|
|
|
|
overflow: TextOverflow.ellipsis, |
|
|
|
|
style: TextStyle( |
|
|
|
|
fontSize: 14.sp, |
|
|
|
@ -326,16 +365,34 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
color: Color(0xFF000000), |
|
|
|
|
), |
|
|
|
|
)), |
|
|
|
|
Text( |
|
|
|
|
"置顶", |
|
|
|
|
style: TextStyle( |
|
|
|
|
fontSize: 12.sp, |
|
|
|
|
fontWeight: MyFontWeight.medium, |
|
|
|
|
color: Color(0xFFF4524D), |
|
|
|
|
), |
|
|
|
|
) |
|
|
|
|
GestureDetector( |
|
|
|
|
behavior: HitTestBehavior.opaque, |
|
|
|
|
onTap: () { |
|
|
|
|
if (widget.arguments["storeId"] == "0") { |
|
|
|
|
SmartDialog.show( |
|
|
|
|
widget: SettlementTips( |
|
|
|
|
() {}, |
|
|
|
|
text: "当前为所有门店状态,置顶商品时,请将门店切换至对应门店操作!", |
|
|
|
|
color: Color(0xFF30415B), |
|
|
|
|
)); |
|
|
|
|
} else { |
|
|
|
|
goodsSortTop(adminProductVoList.id); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
child: Padding( |
|
|
|
|
padding: EdgeInsets.only(left:10.w,top: 2.h,bottom: 2.h), |
|
|
|
|
child: Text( |
|
|
|
|
"置顶", |
|
|
|
|
style: TextStyle( |
|
|
|
|
fontSize: 12.sp, |
|
|
|
|
fontWeight: MyFontWeight.medium, |
|
|
|
|
color: Color(0xFFF4524D), |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
)) |
|
|
|
|
], |
|
|
|
|
),), |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
Row( |
|
|
|
|
children: [ |
|
|
|
|
Text( |
|
|
|
@ -346,7 +403,9 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
color: Color(0xFFA29E9E), |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
SizedBox(width: 8.w,), |
|
|
|
|
SizedBox( |
|
|
|
|
width: 8.w, |
|
|
|
|
), |
|
|
|
|
Text( |
|
|
|
|
"销量${adminProductVoList?.sellCount ?? 0}", |
|
|
|
|
style: TextStyle( |
|
|
|
@ -357,7 +416,9 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
SizedBox(height:7.h,), |
|
|
|
|
SizedBox( |
|
|
|
|
height: 7.h, |
|
|
|
|
), |
|
|
|
|
Text.rich( |
|
|
|
|
TextSpan( |
|
|
|
|
children: [ |
|
|
|
@ -428,93 +489,95 @@ class _GoodsSort extends State<GoodsSort> {
|
|
|
|
|
), |
|
|
|
|
Expanded( |
|
|
|
|
child: Column( |
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start, |
|
|
|
|
children: [ |
|
|
|
|
Padding( |
|
|
|
|
padding: EdgeInsets.only(bottom: 11.h, top: 2.h), |
|
|
|
|
child: Row( |
|
|
|
|
children: [Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 120.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start, |
|
|
|
|
children: [ |
|
|
|
|
Padding( |
|
|
|
|
padding: EdgeInsets.only(bottom: 11.h, top: 2.h), |
|
|
|
|
child: Row( |
|
|
|
|
children: [ |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 120.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
), |
|
|
|
|
SizedBox( |
|
|
|
|
width:10.w, |
|
|
|
|
), |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 24.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
), |
|
|
|
|
),], |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
Row( |
|
|
|
|
children: [ |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 43.w, |
|
|
|
|
height: 18.h, |
|
|
|
|
SizedBox( |
|
|
|
|
width: 10.w, |
|
|
|
|
), |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 24.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
), |
|
|
|
|
SizedBox( |
|
|
|
|
width: 8.w, |
|
|
|
|
), |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 43.w, |
|
|
|
|
height: 18.h, |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
Row( |
|
|
|
|
children: [ |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
width: 43.w, |
|
|
|
|
height: 18.h, |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
SizedBox( |
|
|
|
|
height: 7.h, |
|
|
|
|
width: 8.w, |
|
|
|
|
), |
|
|
|
|
Row( |
|
|
|
|
children: [ |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 28.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
), |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
Spacer(), |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
width: 43.w, |
|
|
|
|
height: 18.h, |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
)), |
|
|
|
|
), |
|
|
|
|
SizedBox( |
|
|
|
|
height: 7.h, |
|
|
|
|
), |
|
|
|
|
Row( |
|
|
|
|
children: [ |
|
|
|
|
Shimmer.fromColors( |
|
|
|
|
baseColor: Color(0XFFD8D8D8), |
|
|
|
|
highlightColor: Color(0XFFD8D8D8), |
|
|
|
|
child: Container( |
|
|
|
|
decoration: BoxDecoration( |
|
|
|
|
color: Color(0XFFD8D8D8), |
|
|
|
|
borderRadius: BorderRadius.circular(2), |
|
|
|
|
), |
|
|
|
|
width: 28.w, |
|
|
|
|
height: 20.h, |
|
|
|
|
), |
|
|
|
|
), |
|
|
|
|
Spacer(), |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
], |
|
|
|
|
)), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
); |
|
|
|
|