|
@@ -7,6 +7,7 @@ import 'package:cpt_rewards/modules/rewards_home/rewards_home_page.dart';
|
|
|
import 'package:cpt_rewards/modules/rewards_list/rewards_list_page.dart';
|
|
|
import 'package:cpt_rewards/modules/rewards_my/rewards_my_page.dart';
|
|
|
import 'package:cs_resources/generated/assets.dart';
|
|
|
+import 'package:cs_resources/generated/l10n.dart';
|
|
|
import 'package:cs_resources/theme/app_colors_theme.dart';
|
|
|
import 'package:cs_resources/theme/theme_config.dart';
|
|
|
import 'package:domain/entity/rewards_index_entity.dart';
|
|
@@ -44,8 +45,80 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Widget _buildTop(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
- int points = list.points ?? 0;
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context, WidgetRef ref) {
|
|
|
+ final _vm = ref.read(rewardsVmProvider.notifier);
|
|
|
+ final state = ref.watch(rewardsVmProvider);
|
|
|
+ RewardsIndexEntity? list = state.list;
|
|
|
+
|
|
|
+ useEffect(() {
|
|
|
+ // 组件挂载时执行 - 执行接口请求
|
|
|
+ Future.microtask(() => _vm.initPageData());
|
|
|
+ return () {
|
|
|
+ // 组件卸载时执行
|
|
|
+ Log.d("property_news_page 组件卸载时执行");
|
|
|
+ };
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ return Scaffold(
|
|
|
+ appBar: MyAppBar.appBar(context, S.current.daily_login,
|
|
|
+ backIconPath: Assets.rewardsRewardsBack,
|
|
|
+ backIconWidth: 32.0,
|
|
|
+ backIconHeight: 32.0,
|
|
|
+ titleColor: Colors.white,
|
|
|
+ titleDarkColor: Colors.white,
|
|
|
+ showBackButton: true,
|
|
|
+ backgroundColor: context.appColors.btnBgDefault,
|
|
|
+ systemUiOverlayStyle: MediaQuery.of(context).platformBrightness == Brightness.dark
|
|
|
+ ? ThemeConfig.systemUiOverlayStyleDarkTheme
|
|
|
+ : ThemeConfig.systemUiOverlayStyleLightThemeWhite,
|
|
|
+ actions: [
|
|
|
+ const MyAssetImage(
|
|
|
+ Assets.rewardsRewardsIconWen,
|
|
|
+ width: 20,
|
|
|
+ height: 20,
|
|
|
+ ).marginOnly(right: 15).onTap(() {
|
|
|
+ // 去详情
|
|
|
+ // _vm.launchURL(url);
|
|
|
+ GlobalWebPage.startInstance(context: context, title: S.current.how_do_i_earn_points, url: 'https://yyjobs.sg/terms/PointsRules.html');
|
|
|
+ })
|
|
|
+ ]),
|
|
|
+ body: Column(children: [
|
|
|
+ Expanded(
|
|
|
+ child: LoadStateLayout(
|
|
|
+ state: state.loadingState,
|
|
|
+ errorMessage: state.errorMessage,
|
|
|
+ errorRetry: () {
|
|
|
+ _vm.retryRequest();
|
|
|
+ },
|
|
|
+ successWidget: SingleChildScrollView(
|
|
|
+ scrollDirection: Axis.vertical,
|
|
|
+ physics: const BouncingScrollPhysics(),
|
|
|
+ clipBehavior: Clip.none,
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ _buildTop(context, ref, _vm, list),
|
|
|
+ Container(
|
|
|
+ transform: Matrix4.translationValues(0.0, -45.0, 0.0),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ _buildSearch(context, ref, _vm, list),
|
|
|
+ _buildSwiper(context, ref, _vm, list),
|
|
|
+ list?.points != 0 ? _buildList(context, ref, _vm, list) : const SizedBox.shrink(),
|
|
|
+ _buildHistory(context, ref, _vm, list),
|
|
|
+ ],
|
|
|
+ ), // 使用负数margin
|
|
|
+ ).paddingOnly(left: 15, right: 15),
|
|
|
+ ],
|
|
|
+ )),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _buildTop(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
+ int points = list?.points ?? 0;
|
|
|
return Container(
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
@@ -63,54 +136,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
child: Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
children: [
|
|
|
+
|
|
|
Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
children: [
|
|
|
- const MyAssetImage(
|
|
|
- Assets.rewardsRewardsBack,
|
|
|
- width: 44,
|
|
|
- height: 44,
|
|
|
- ).onTap(() {
|
|
|
- // backCallback
|
|
|
- Navigator.pop(context);
|
|
|
- }),
|
|
|
- const Text(
|
|
|
- 'Daily Login',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 18.0,
|
|
|
- color: Colors.white,
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
- ),
|
|
|
- const MyAssetImage(
|
|
|
- Assets.rewardsRewardsIconWen,
|
|
|
- width: 20,
|
|
|
- height: 20,
|
|
|
- ).onTap(() {
|
|
|
- // 去详情
|
|
|
- // _vm.launchURL(url);
|
|
|
- GlobalWebPage.startInstance(
|
|
|
- context: context, title: 'How Do I Earn Points?', url: 'https://yyjobs.sg/terms/PointsRules.html');
|
|
|
- })
|
|
|
- ],
|
|
|
- ),
|
|
|
- // const Text(
|
|
|
- // '1526 Available Points',
|
|
|
- // style: TextStyle(
|
|
|
- // fontSize: 18.0,
|
|
|
- // color: Colors.white,
|
|
|
- // fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
- // ).paddingOnly(left: 10, top: 20, bottom: 18),
|
|
|
- Row(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
- children: [
|
|
|
- const Text(
|
|
|
- 'Available Points',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 17.0,
|
|
|
- color: Colors.white,
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ Text(
|
|
|
+ S.current.available_points,
|
|
|
+ style: const TextStyle(fontSize: 17.0, color: Colors.white, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
Container(
|
|
|
decoration: BoxDecoration(
|
|
@@ -126,16 +159,13 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
).marginOnly(right: 5),
|
|
|
Text(
|
|
|
'$points',
|
|
|
- style: const TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: Colors.white,
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: const TextStyle(fontSize: 15.0, color: Colors.white, fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
).paddingOnly(left: 10, top: 7, bottom: 7, right: 10),
|
|
|
),
|
|
|
],
|
|
|
- ).paddingOnly(left: 10, top: 20, bottom: 18),
|
|
|
+ ).paddingOnly(left: 10, top: 0, bottom: 18),
|
|
|
],
|
|
|
)
|
|
|
.paddingOnly(top: 15, left: 5, right: 15, bottom: 0)
|
|
@@ -143,43 +173,32 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
.backgroundColor(ColorUtils.string2Color('#4161D0')));
|
|
|
}
|
|
|
|
|
|
- Widget _buildSearch(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
+ Widget _buildSearch(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
final dateFormat = DateFormat('yyyy-MM-dd');
|
|
|
final now = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
|
|
// final date = list.continuous.currentWeekCheckin[0] ?? now;
|
|
|
final date = now;
|
|
|
- final date0 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).subtract(const Duration(days: 1)));
|
|
|
- final date1 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).add(const Duration(days: 1)));
|
|
|
- final date2 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).add(const Duration(days: 2)));
|
|
|
- final date3 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).add(const Duration(days: 3)));
|
|
|
- final date4 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).add(const Duration(days: 4)));
|
|
|
- final date5 = DateFormat('MM-dd')
|
|
|
- .format(dateFormat.parse(date).add(const Duration(days: 5)));
|
|
|
+ final date0 = DateFormat('MM-dd').format(dateFormat.parse(date).subtract(const Duration(days: 1)));
|
|
|
+ final date1 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 1)));
|
|
|
+ final date2 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 2)));
|
|
|
+ final date3 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 3)));
|
|
|
+ final date4 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 4)));
|
|
|
+ final date5 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 5)));
|
|
|
// final nextDate = date.add(Duration(days: 1));
|
|
|
return Container(
|
|
|
width: MediaQuery.of(context).size.width - 30,
|
|
|
decoration: BoxDecoration(
|
|
|
color: Colors.white,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
|
|
|
),
|
|
|
child: Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Text(
|
|
|
- 'Continuous Login 8 Day',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ S.current.continuous_login_8_day,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
Flex(
|
|
|
direction: Axis.horizontal,
|
|
@@ -190,8 +209,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -200,10 +218,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date0',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -212,10 +227,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -228,8 +240,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#4161D0'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -238,10 +249,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'Today',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -250,10 +258,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -266,8 +271,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -276,10 +280,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date1',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -288,10 +289,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -304,8 +302,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -314,10 +311,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -326,10 +320,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -346,8 +337,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -356,10 +346,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date3',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -368,10 +355,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -384,8 +368,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -394,10 +377,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date4',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -406,10 +386,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -422,8 +399,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Row(
|
|
@@ -436,17 +412,11 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
'$date5',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
Text(
|
|
|
'+ More',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 12.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 12.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -466,42 +436,33 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _buildSwiper(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
- int points = list.points ?? 0;
|
|
|
+ Widget _buildSwiper(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
+ int points = list?.points ?? 0;
|
|
|
return Container(
|
|
|
// color: Colors.white,
|
|
|
height: 55,
|
|
|
decoration: BoxDecoration(
|
|
|
color: Colors.white,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
|
|
|
),
|
|
|
child: Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
children: [
|
|
|
Text(
|
|
|
- 'How To Get Rewards?',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ S.current.how_to_get_rewards,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
Container(
|
|
|
- padding:
|
|
|
- const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
|
|
|
+ padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#4161D0'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
),
|
|
|
child: Text(
|
|
|
- 'Rewards',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 14.0,
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ S.current.rewards,
|
|
|
+ style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
).onTap(() {
|
|
|
RewardsHomePage.startInstance(points: points);
|
|
|
}),
|
|
@@ -511,24 +472,21 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
).marginOnly(top: 12, bottom: 12);
|
|
|
}
|
|
|
|
|
|
- Widget _buildList(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
- bool newsFeed = list.tasks.newsFeedPost;
|
|
|
- int giveLikes = list.tasks.give10Likes;
|
|
|
+ Widget _buildList(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
+ bool newsFeed = list?.tasks?.newsFeedPost ?? false;
|
|
|
+ int giveLikes = list?.tasks?.give10Likes ?? 0;
|
|
|
return Container(
|
|
|
decoration: BoxDecoration(
|
|
|
color: Colors.white,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
|
|
|
),
|
|
|
child: Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Container(
|
|
|
- padding:
|
|
|
- const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
+ padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
|
bottom: BorderSide(
|
|
@@ -542,8 +500,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
Row(
|
|
|
children: [
|
|
|
Container(
|
|
|
- padding: const EdgeInsets.only(
|
|
|
- top: 10, bottom: 10, left: 17, right: 17),
|
|
|
+ padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#f2f3f6'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
@@ -559,20 +516,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Text(
|
|
|
- 'Daily Login',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ S.current.daily_login,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
).marginOnly(bottom: 6),
|
|
|
Row(
|
|
|
children: [
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -591,16 +542,12 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#ffffff'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
),
|
|
|
child: Center(
|
|
|
child: Text(
|
|
|
- 'Check In',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 14.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ S.current.check_in,
|
|
|
+ style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -608,8 +555,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
),
|
|
|
Container(
|
|
|
- padding:
|
|
|
- const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
+ padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
|
bottom: BorderSide(
|
|
@@ -623,8 +569,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
Row(
|
|
|
children: [
|
|
|
Container(
|
|
|
- padding: const EdgeInsets.only(
|
|
|
- top: 10, bottom: 10, left: 17, right: 17),
|
|
|
+ padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#f2f3f6'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
@@ -640,20 +585,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Text(
|
|
|
- 'News Feed Post',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ S.current.news_feed_post,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
).marginOnly(bottom: 6),
|
|
|
Row(
|
|
|
children: [
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -672,16 +611,12 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#ffffff'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
),
|
|
|
child: Center(
|
|
|
child: Text(
|
|
|
- newsFeed == true ? 'Completed' : 'incomplete',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 14.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ newsFeed == true ? S.current.completed : S.current.incomplete,
|
|
|
+ style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -689,8 +624,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
),
|
|
|
Container(
|
|
|
- padding:
|
|
|
- const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
+ padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
|
bottom: BorderSide(
|
|
@@ -704,8 +638,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
Row(
|
|
|
children: [
|
|
|
Container(
|
|
|
- padding: const EdgeInsets.only(
|
|
|
- top: 10, bottom: 10, left: 17, right: 17),
|
|
|
+ padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#f2f3f6'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
@@ -721,20 +654,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Text(
|
|
|
- 'Give 10 Likes',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ S.current.give_10_likes,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
).marginOnly(bottom: 6),
|
|
|
Row(
|
|
|
children: [
|
|
|
Text(
|
|
|
'+2',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -753,16 +680,12 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
decoration: BoxDecoration(
|
|
|
color: ColorUtils.string2Color('#ffffff'),
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
),
|
|
|
child: Center(
|
|
|
child: Text(
|
|
|
- giveLikes == 10 ? 'Completed' : '$giveLikes/10',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 14.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ giveLikes == 10 ? S.current.completed : '$giveLikes/10',
|
|
|
+ style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -774,49 +697,38 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
).marginOnly(bottom: 12);
|
|
|
}
|
|
|
|
|
|
- Widget _buildHistory(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
- List latest = list.latest;
|
|
|
+ Widget _buildHistory(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
+ List latest = list?.latest ?? [];
|
|
|
+ Log.d("list是空吗? $list 最近的信息:$latest");
|
|
|
return Container(
|
|
|
- decoration: BoxDecoration(
|
|
|
+ decoration: BoxDecoration(
|
|
|
color: Colors.white,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
|
|
|
),
|
|
|
child: Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
- Row(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
- children: [
|
|
|
- Text(
|
|
|
- 'Points History',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
- ),
|
|
|
- Text(
|
|
|
- 'More >',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
- ).onTap(() {
|
|
|
- RewardsHistoryPage.startInstance();
|
|
|
- })
|
|
|
- ]).paddingOnly(left: 15, right: 15, top: 15, bottom: 5),
|
|
|
+ Row(crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
|
|
|
+ Text(
|
|
|
+ S.current.points_history,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ ),
|
|
|
+ Text(
|
|
|
+ S.current.more_arrow,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ ).onTap(() {
|
|
|
+ RewardsHistoryPage.startInstance();
|
|
|
+ })
|
|
|
+ ]).paddingOnly(left: 15, right: 15, top: 15, bottom: 5),
|
|
|
Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: List.generate(latest.length, (index) {
|
|
|
int point = latest[index]['point'];
|
|
|
return Container(
|
|
|
- padding: const EdgeInsets.only(
|
|
|
- top: 15, bottom: 15, left: 15, right: 15),
|
|
|
+ padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
|
|
|
decoration: BoxDecoration(
|
|
|
border: Border(
|
|
|
bottom: BorderSide(
|
|
@@ -833,26 +745,17 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
children: [
|
|
|
Text(
|
|
|
latest[index]['short_description'],
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: ColorUtils.string2Color('#000000'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
).marginOnly(bottom: 6),
|
|
|
Text(
|
|
|
latest[index]['created_at'],
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#808DAF'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#808DAF'), fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
|
Text(
|
|
|
"$point",
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 20.0,
|
|
|
- color: ColorUtils.string2Color('#FDB429'),
|
|
|
- fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ style: TextStyle(fontSize: 20.0, color: ColorUtils.string2Color('#FDB429'), fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -862,74 +765,4 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
),
|
|
|
).marginOnly(bottom: 12);
|
|
|
}
|
|
|
-
|
|
|
- @override
|
|
|
- Widget build(BuildContext context, WidgetRef ref) {
|
|
|
- final _vm = ref.read(rewardsVmProvider.notifier);
|
|
|
- final state = ref.watch(rewardsVmProvider);
|
|
|
- RewardsIndexEntity? list = state.list;
|
|
|
- useEffect(() {
|
|
|
- // 组件挂载时执行 - 执行接口请求
|
|
|
- Future.microtask(() => _vm.initPageData());
|
|
|
- return () {
|
|
|
- // 组件卸载时执行
|
|
|
- Log.d("property_news_page 组件卸载时执行");
|
|
|
- };
|
|
|
- }, []);
|
|
|
- // SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
|
|
- // statusBarColor: ColorUtils.string2Color('#4161D0'), // 设置状态栏颜色为蓝色
|
|
|
- // statusBarIconBrightness: Brightness.light, // 设置状态栏图标为亮色(例如白色)
|
|
|
- // statusBarBrightness: Brightness.dark, // 设置状态栏亮度为暗色(通常与状态栏颜色相反)
|
|
|
- // ));
|
|
|
- return MaterialApp(
|
|
|
- home: Scaffold(
|
|
|
- body: AnnotatedRegion<SystemUiOverlayStyle>(
|
|
|
- value: SystemUiOverlayStyle(
|
|
|
- statusBarColor: ColorUtils.string2Color('#4161D0'), // 绿色状态栏颜色
|
|
|
- statusBarIconBrightness: Brightness.light, // 暗色图标(例如黑色)
|
|
|
- ),
|
|
|
- child:Scaffold(
|
|
|
- // appBar: MyAppBar.appBar(
|
|
|
- // context,
|
|
|
- // "",
|
|
|
- // showBackButton: false,
|
|
|
- // backgroundColor: context.appColors.btnBgDefault,
|
|
|
- // ),
|
|
|
- body: Column(children: [
|
|
|
- Expanded(
|
|
|
- child: LoadStateLayout(
|
|
|
- state: state.loadingState,
|
|
|
- errorMessage: state.errorMessage,
|
|
|
- errorRetry: () {
|
|
|
- _vm.retryRequest();
|
|
|
- },
|
|
|
- successWidget: SingleChildScrollView(
|
|
|
- scrollDirection: Axis.vertical,
|
|
|
- physics: const BouncingScrollPhysics(),
|
|
|
- clipBehavior: Clip.none,
|
|
|
- child: Column(
|
|
|
- children: [
|
|
|
- _buildTop(context, ref, _vm, list)
|
|
|
- .paddingOnly(top: MediaQuery.of(context).padding.top),
|
|
|
- Container(
|
|
|
- transform: Matrix4.translationValues(0.0, -45.0, 0.0),
|
|
|
- child: Column(
|
|
|
- children: [
|
|
|
- _buildSearch(context, ref, _vm, list),
|
|
|
- _buildSwiper(context, ref, _vm, list),
|
|
|
- list?.points != 0
|
|
|
- ? _buildList(context, ref, _vm, list)
|
|
|
- : const SizedBox.shrink(),
|
|
|
- _buildHistory(context, ref, _vm, list),
|
|
|
- ],
|
|
|
- ), // 使用负数margin
|
|
|
- ).paddingOnly(left: 15, right: 15),
|
|
|
- ],
|
|
|
- )),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
|
|
|
- )
|
|
|
- )));
|
|
|
- }
|
|
|
}
|