|
@@ -7,9 +7,13 @@ 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';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:auto_route/auto_route.dart';
|
|
|
+import 'package:flutter/services.dart';
|
|
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
import 'package:plugin_basic/modules/global_web_page.dart';
|
|
@@ -21,6 +25,7 @@ import 'package:widgets/ext/ex_widget.dart';
|
|
|
import 'package:widgets/load_state_layout.dart';
|
|
|
import 'package:widgets/my_appbar.dart';
|
|
|
import 'package:widgets/my_load_image.dart';
|
|
|
+import 'package:widgets/utils/dark_theme_util.dart';
|
|
|
import 'package:widgets/widget_export.dart';
|
|
|
|
|
|
import 'package:intl/intl.dart';
|
|
@@ -41,142 +46,160 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Widget _buildTop(BuildContext context, WidgetRef ref, _vm, list) {
|
|
|
- int points = list.points ?? 0;
|
|
|
- return Container(
|
|
|
- decoration: BoxDecoration(
|
|
|
- border: Border(
|
|
|
- bottom: BorderSide(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), // 设置bottom边框的颜色
|
|
|
- width: 45.0, // 设置bottom边框的宽度
|
|
|
- )),
|
|
|
- borderRadius: const BorderRadius.only(
|
|
|
- topLeft: Radius.circular(0.0),
|
|
|
- topRight: Radius.circular(0.0),
|
|
|
- bottomLeft: Radius.circular(30.0),
|
|
|
- bottomRight: Radius.circular(30.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),
|
|
|
+ ],
|
|
|
+ )),
|
|
|
+ ),
|
|
|
),
|
|
|
- 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), // 设置字体大小
|
|
|
- ),
|
|
|
- Container(
|
|
|
- decoration: BoxDecoration(
|
|
|
- border: Border.all(color: Colors.white, width: 1), // 边框
|
|
|
- borderRadius: BorderRadius.circular(8), // 圆角
|
|
|
- ),
|
|
|
- child: Row(
|
|
|
- children: [
|
|
|
- const MyAssetImage(
|
|
|
- Assets.rewardsRewardsIconJb,
|
|
|
- width: 23,
|
|
|
- height: 23,
|
|
|
- ).marginOnly(right: 5),
|
|
|
- Text(
|
|
|
- '$points',
|
|
|
- style: const TextStyle(
|
|
|
- fontSize: 15.0,
|
|
|
- color: Colors.white,
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
- ),
|
|
|
- ],
|
|
|
- ).paddingOnly(left: 10, top: 7, bottom: 7, right: 10),
|
|
|
+ ]).backgroundColor(context.appColors.backgroundDark),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _buildTop(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
|
|
|
+ int points = list?.points ?? 0;
|
|
|
+ return Container(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ border: Border(
|
|
|
+ bottom: BorderSide(
|
|
|
+ color: context.appColors.btnBgDefault, // 设置bottom边框的颜色
|
|
|
+ width: 45.0, // 设置bottom边框的宽度
|
|
|
+ )),
|
|
|
+ borderRadius: const BorderRadius.only(
|
|
|
+ topLeft: Radius.circular(0.0),
|
|
|
+ topRight: Radius.circular(0.0),
|
|
|
+ bottomLeft: Radius.circular(30.0),
|
|
|
+ bottomRight: Radius.circular(30.0),
|
|
|
+ ), // 圆角
|
|
|
+ ),
|
|
|
+ child: Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ children: [
|
|
|
+ Row(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
+ children: [
|
|
|
+ Text(
|
|
|
+ S.current.available_points,
|
|
|
+ style: const TextStyle(fontSize: 17.0, color: Colors.white, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ border: Border.all(color: Colors.white, width: 1), // 边框
|
|
|
+ borderRadius: BorderRadius.circular(8), // 圆角
|
|
|
),
|
|
|
- ],
|
|
|
- ).paddingOnly(left: 10, top: 20, bottom: 18),
|
|
|
- ],
|
|
|
- )
|
|
|
- .paddingOnly(top: 15, left: 5, right: 15, bottom: 0)
|
|
|
- .border(bottom: 0, color: ColorUtils.string2Color('#4161D0'))
|
|
|
- .backgroundColor(ColorUtils.string2Color('#4161D0')));
|
|
|
+ child: Row(
|
|
|
+ children: [
|
|
|
+ const MyAssetImage(
|
|
|
+ Assets.rewardsRewardsIconJb,
|
|
|
+ width: 23,
|
|
|
+ height: 23,
|
|
|
+ ).marginOnly(right: 5),
|
|
|
+ Text(
|
|
|
+ '$points',
|
|
|
+ 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: 0, bottom: 18),
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ .paddingOnly(top: 15, left: 5, right: 15, bottom: 0)
|
|
|
+ .border(bottom: 0, color: context.appColors.btnBgDefault)
|
|
|
+ .backgroundColor(context.appColors.btnBgDefault),
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
- 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,
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: [BoxShadow(color: context.appColors.itemBGShadow)],
|
|
|
),
|
|
|
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: context.appColors.textBlack, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
Flex(
|
|
|
direction: Axis.horizontal,
|
|
@@ -185,10 +208,9 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
flex: 1,
|
|
|
child: Container(
|
|
|
decoration: BoxDecoration(
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'),
|
|
|
+ color: context.appColors.whiteSecondBG,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: context.appColors.textPrimary, width: 1),
|
|
|
),
|
|
|
height: 78,
|
|
|
child: Column(
|
|
@@ -196,11 +218,8 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
children: [
|
|
|
Text(
|
|
|
- '$date0',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#4161D0'),
|
|
|
- fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
+ date0,
|
|
|
+ style: TextStyle(fontSize: 13.0, color: context.appColors.textPrimary, fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -209,10 +228,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: context.appColors.textPrimary, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -225,8 +241,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(
|
|
@@ -235,10 +250,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,
|
|
@@ -247,10 +259,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -263,8 +272,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(
|
|
@@ -273,10 +281,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,
|
|
@@ -285,10 +290,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -301,8 +303,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(
|
|
@@ -311,10 +312,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,
|
|
@@ -323,10 +321,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -343,8 +338,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(
|
|
@@ -353,10 +347,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,
|
|
@@ -365,10 +356,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -381,8 +369,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(
|
|
@@ -391,10 +378,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,
|
|
@@ -403,10 +387,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -419,8 +400,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(
|
|
@@ -433,17 +413,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), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
|
),
|
|
@@ -463,42 +437,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,
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: [BoxShadow(color: context.appColors.itemBGShadow)],
|
|
|
),
|
|
|
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: context.appColors.textBlack, 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'),
|
|
|
+ color: context.appColors.btnBgDefaultDark,
|
|
|
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);
|
|
|
}),
|
|
@@ -508,29 +473,26 @@ 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,
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: [BoxShadow(color: context.appColors.itemBGShadow)],
|
|
|
),
|
|
|
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(
|
|
|
width: 1.0, // 底边边框的宽度
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), // 底边边框的颜色
|
|
|
+ color: context.appColors.backgroundDark, // 底边边框的颜色
|
|
|
))),
|
|
|
child: Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
@@ -539,8 +501,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),
|
|
@@ -556,20 +517,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: context.appColors.textBlack, 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: context.appColors.textPrimary, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -586,18 +541,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
width: 86,
|
|
|
height: 30,
|
|
|
decoration: BoxDecoration(
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
+ color: Colors.transparent,
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: context.appColors.btnBgDefaultDark, 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: context.appColors.textPrimary, fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -605,13 +556,12 @@ 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(
|
|
|
width: 1.0, // 底边边框的宽度
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), // 底边边框的颜色
|
|
|
+ color: context.appColors.backgroundDark, // 底边边框的颜色
|
|
|
))),
|
|
|
child: Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
@@ -620,8 +570,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),
|
|
@@ -637,20 +586,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: context.appColors.textBlack, 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: context.appColors.textPrimary, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -667,18 +610,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
width: 86,
|
|
|
height: 30,
|
|
|
decoration: BoxDecoration(
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
+ color: Colors.transparent,
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: context.appColors.btnBgDefaultDark, 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: context.appColors.textPrimary, fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -686,13 +625,12 @@ 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(
|
|
|
width: 1.0, // 底边边框的宽度
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), // 底边边框的颜色
|
|
|
+ color: context.appColors.backgroundDark, // 底边边框的颜色
|
|
|
))),
|
|
|
child: Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
@@ -701,8 +639,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),
|
|
@@ -718,20 +655,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: context.appColors.textBlack, 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: context.appColors.textPrimary, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
const MyAssetImage(
|
|
|
Assets.rewardsRewardsIconJb,
|
|
@@ -748,18 +679,14 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
width: 86,
|
|
|
height: 30,
|
|
|
decoration: BoxDecoration(
|
|
|
- color: ColorUtils.string2Color('#ffffff'),
|
|
|
+ color: Colors.transparent,
|
|
|
borderRadius: BorderRadius.circular(5),
|
|
|
- border: Border.all(
|
|
|
- color: ColorUtils.string2Color('#4161D0'), width: 1),
|
|
|
+ border: Border.all(color: context.appColors.btnBgDefaultDark, 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: context.appColors.textPrimary, fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
),
|
|
|
),
|
|
@@ -771,54 +698,42 @@ 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 ?? [];
|
|
|
return Container(
|
|
|
decoration: BoxDecoration(
|
|
|
- color: Colors.white,
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
- boxShadow: const [
|
|
|
- BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
|
|
|
- ],
|
|
|
+ boxShadow: [BoxShadow(color: context.appColors.itemBGShadow)],
|
|
|
),
|
|
|
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: context.appColors.textBlack, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
+ ),
|
|
|
+ Text(
|
|
|
+ S.current.more_arrow,
|
|
|
+ style: TextStyle(fontSize: 15.0, color: context.appColors.textPrimary, 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(
|
|
|
width: 1.0, // 底边边框的宽度
|
|
|
- color: ColorUtils.string2Color('#F2F3F6'), // 底边边框的颜色
|
|
|
+ color: context.appColors.backgroundDark, // 底边边框的颜色
|
|
|
))),
|
|
|
child: Row(
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
@@ -830,16 +745,13 @@ 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: context.appColors.textBlack, fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
).marginOnly(bottom: 6),
|
|
|
Text(
|
|
|
latest[index]['created_at'],
|
|
|
style: TextStyle(
|
|
|
fontSize: 13.0,
|
|
|
- color: ColorUtils.string2Color('#808DAF'),
|
|
|
+ color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color('#808DAF'), darkColor: Colors.white),
|
|
|
fontWeight: FontWeight.w400), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
@@ -848,7 +760,7 @@ class RewardsPage extends HookConsumerWidget {
|
|
|
"$point",
|
|
|
style: TextStyle(
|
|
|
fontSize: 20.0,
|
|
|
- color: ColorUtils.string2Color('#FDB429'),
|
|
|
+ color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color('#FDB429'), darkColor: Colors.white),
|
|
|
fontWeight: FontWeight.w500), // 设置字体大小
|
|
|
),
|
|
|
],
|
|
@@ -859,60 +771,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 组件卸载时执行");
|
|
|
- };
|
|
|
- }, []);
|
|
|
- return Scaffold(
|
|
|
- // appBar: MyAppBar.appBar(
|
|
|
- // context,
|
|
|
- // "Daily Login",
|
|
|
- // backgroundColor: ColorUtils.string2Color('#4161D0'),
|
|
|
- // ),
|
|
|
- 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')),
|
|
|
- );
|
|
|
- }
|
|
|
}
|