|
|
@ -26,9 +26,11 @@ import 'package:shared_preferences/shared_preferences.dart'; |
|
|
|
import 'package:dio/dio.dart'; |
|
|
|
import 'package:dio/dio.dart'; |
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import '../retrofit/data/banner.dart'; |
|
|
|
import '../retrofit/data/coupon.dart'; |
|
|
|
import '../retrofit/data/coupon.dart'; |
|
|
|
import '../retrofit/data/page.dart'; |
|
|
|
import '../retrofit/data/page.dart'; |
|
|
|
import '../utils/flutter_utils.dart'; |
|
|
|
import '../utils/flutter_utils.dart'; |
|
|
|
|
|
|
|
import '../view_widget/custom_image.dart'; |
|
|
|
import 'mine_view/mine_item.dart'; |
|
|
|
import 'mine_view/mine_item.dart'; |
|
|
|
import 'mine_view/mine_view.dart'; |
|
|
|
import 'mine_view/mine_view.dart'; |
|
|
|
|
|
|
|
|
|
|
@ -49,6 +51,7 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
final RefreshController _refreshController = RefreshController(); |
|
|
|
final RefreshController _refreshController = RefreshController(); |
|
|
|
int totalMsg = 0; |
|
|
|
int totalMsg = 0; |
|
|
|
String couponNum; |
|
|
|
String couponNum; |
|
|
|
|
|
|
|
List<BannerData> activityBannerData = []; |
|
|
|
|
|
|
|
|
|
|
|
_toUserInfo() async { |
|
|
|
_toUserInfo() async { |
|
|
|
SharedPreferences shared = await SharedPreferences.getInstance(); |
|
|
|
SharedPreferences shared = await SharedPreferences.getInstance(); |
|
|
@ -78,6 +81,7 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
querySocialInfo(); |
|
|
|
querySocialInfo(); |
|
|
|
queryMsgStats(); |
|
|
|
queryMsgStats(); |
|
|
|
queryCoupon(); |
|
|
|
queryCoupon(); |
|
|
|
|
|
|
|
queryActivityBanner(); |
|
|
|
// queryCard(); |
|
|
|
// queryCard(); |
|
|
|
|
|
|
|
|
|
|
|
eventBus.on<EventType>().listen((event) { |
|
|
|
eventBus.on<EventType>().listen((event) { |
|
|
@ -136,6 +140,23 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
// EasyLoading.dismiss(); |
|
|
|
// EasyLoading.dismiss(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///宣传banner |
|
|
|
|
|
|
|
queryActivityBanner() async { |
|
|
|
|
|
|
|
SharedPreferences value = await SharedPreferences.getInstance(); |
|
|
|
|
|
|
|
apiService = ApiService( |
|
|
|
|
|
|
|
Dio(), |
|
|
|
|
|
|
|
context: context, |
|
|
|
|
|
|
|
token: value.getString("token"), |
|
|
|
|
|
|
|
showLoading: false, |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
BaseData<PageInfo<BannerData>> baseData = await apiService.queryBanner({ |
|
|
|
|
|
|
|
"model": {"type": "HOME_STORE_PAGE"}, |
|
|
|
|
|
|
|
}).catchError((onError) {}); |
|
|
|
|
|
|
|
if (baseData != null && baseData.isSuccess) { |
|
|
|
|
|
|
|
activityBannerData = baseData.data.records; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
queryCoupon() async { |
|
|
|
queryCoupon() async { |
|
|
|
SharedPreferences value = await SharedPreferences.getInstance(); |
|
|
|
SharedPreferences value = await SharedPreferences.getInstance(); |
|
|
|
apiService = ApiService( |
|
|
|
apiService = ApiService( |
|
|
@ -166,6 +187,7 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
queryCoupon(); |
|
|
|
queryCoupon(); |
|
|
|
querySocialInfo(); |
|
|
|
querySocialInfo(); |
|
|
|
queryMsgStats(); |
|
|
|
queryMsgStats(); |
|
|
|
|
|
|
|
queryActivityBanner(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
///个人社交信息(粉丝/关注数量/成就数量) |
|
|
|
///个人社交信息(粉丝/关注数量/成就数量) |
|
|
@ -427,10 +449,11 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
///推广图 |
|
|
|
///推广图 |
|
|
|
Widget spreadImage() { |
|
|
|
Widget spreadImage() { |
|
|
|
return Container( |
|
|
|
return Container( |
|
|
|
margin: EdgeInsets.only(bottom: 30.h,), |
|
|
|
|
|
|
|
width: double.infinity, |
|
|
|
width: double.infinity, |
|
|
|
|
|
|
|
// margin: EdgeInsets.symmetric(horizontal:14.w), |
|
|
|
height: 85.h, |
|
|
|
height: 85.h, |
|
|
|
child: Swiper( |
|
|
|
child: activityBannerData != null && activityBannerData.isNotEmpty |
|
|
|
|
|
|
|
? Swiper( |
|
|
|
pagination: SwiperPagination( |
|
|
|
pagination: SwiperPagination( |
|
|
|
alignment: Alignment.bottomCenter, |
|
|
|
alignment: Alignment.bottomCenter, |
|
|
|
margin: EdgeInsets.only(top: 5.h), |
|
|
|
margin: EdgeInsets.only(top: 5.h), |
|
|
@ -442,37 +465,82 @@ class MinePageState extends State<MinePage> with AutomaticKeepAliveClientMixin { |
|
|
|
color: Colors.white.withAlpha(76), |
|
|
|
color: Colors.white.withAlpha(76), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
autoplay:true, |
|
|
|
autoplay: true, |
|
|
|
duration: 1000, |
|
|
|
duration: 1000, |
|
|
|
autoplayDelay: 2000, |
|
|
|
autoplayDelay: 2000, |
|
|
|
itemBuilder: (context, position) { |
|
|
|
itemBuilder: (context, position) { |
|
|
|
return GestureDetector( |
|
|
|
return InkWell( |
|
|
|
onTap: (){ |
|
|
|
onTap: () { |
|
|
|
if(position == 0){ |
|
|
|
spreadBannerClick(activityBannerData[position]); |
|
|
|
Navigator.of(context).pushNamed('/router/invite_friends'); |
|
|
|
|
|
|
|
}else if(position == 1){ |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed('/router/trading_card_page'); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
child:Container( |
|
|
|
child: Container( |
|
|
|
margin: EdgeInsets.symmetric(horizontal:14.w), |
|
|
|
margin: EdgeInsets.symmetric(horizontal: 14.w), |
|
|
|
child: ClipRRect( |
|
|
|
child: MImage( |
|
|
|
child:Image.asset( |
|
|
|
activityBannerData[position].imgUrl, |
|
|
|
spreadItem[position], |
|
|
|
fit: BoxFit.cover, |
|
|
|
width:double.infinity, |
|
|
|
radius: BorderRadius.circular(6), |
|
|
|
fit: BoxFit.fill, |
|
|
|
errorSrc: "assets/image/default_2_1.webp", |
|
|
|
height:double.infinity, |
|
|
|
fadeSrc: "assets/image/default_2_1.webp", |
|
|
|
), |
|
|
|
|
|
|
|
borderRadius: BorderRadius.circular(6.w), |
|
|
|
|
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
); |
|
|
|
); |
|
|
|
}, |
|
|
|
}, |
|
|
|
itemCount:2, |
|
|
|
itemCount: activityBannerData.length, |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
: Image.asset( |
|
|
|
|
|
|
|
"assets/image/default_2_1.webp", |
|
|
|
|
|
|
|
fit: BoxFit.cover, |
|
|
|
), |
|
|
|
), |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// contentType 跳转类型(0:不跳转,1:积分商品,2:活动,3:文章,4:页面跳转,5:课程,7:门店跳转) |
|
|
|
|
|
|
|
spreadBannerClick(BannerData activityBannerData) async { |
|
|
|
|
|
|
|
switch (activityBannerData.contentType) { |
|
|
|
|
|
|
|
case 1: |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed('/router/integral_store_page', |
|
|
|
|
|
|
|
arguments: {"goodsId": activityBannerData.content}); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 2: |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed('/router/web_page', arguments: { |
|
|
|
|
|
|
|
"activityId": activityBannerData.content, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 3: |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed('/router/web_page', arguments: { |
|
|
|
|
|
|
|
"articleId": activityBannerData.content, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 4: |
|
|
|
|
|
|
|
String router = activityBannerData.content; |
|
|
|
|
|
|
|
// String router = "/router/store_order?{\"id\":\"1512378184161558528\",\"tenant\":\"1188\",\"storeName\":\"农场煮意\"}"; |
|
|
|
|
|
|
|
if (router.contains("?")) { |
|
|
|
|
|
|
|
String params = router.substring(router.indexOf("?") + 1); |
|
|
|
|
|
|
|
Map map = jsonDecode(params); |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed( |
|
|
|
|
|
|
|
router.substring(0, router.indexOf("?")), |
|
|
|
|
|
|
|
arguments: map); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed(router); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 5: |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed('/router/class_details', arguments: { |
|
|
|
|
|
|
|
"id": activityBannerData.content, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 7: |
|
|
|
|
|
|
|
String params = activityBannerData.content |
|
|
|
|
|
|
|
.substring(activityBannerData.content.indexOf("?") + 1); |
|
|
|
|
|
|
|
Map map = jsonDecode(params); |
|
|
|
|
|
|
|
Navigator.of(context).pushNamed( |
|
|
|
|
|
|
|
activityBannerData.content |
|
|
|
|
|
|
|
.substring(0, activityBannerData.content.indexOf("?")), |
|
|
|
|
|
|
|
arguments: map); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
final List<String> spreadItem = [ |
|
|
|
final List<String> spreadItem = [ |
|
|
|
"assets/image/welfare_spread.webp", |
|
|
|
"assets/image/welfare_spread.webp", |
|
|
|
"assets/image/welfare_yz.webp", |
|
|
|
"assets/image/welfare_yz.webp", |
|
|
|