Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Hoàng Văn Đạt
mypoint_flutter_app
Commits
873fba2d
Commit
873fba2d
authored
Sep 15, 2025
by
DatHV
Browse files
update chart history
parent
f1723336
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/screen/history_point/history_point_chart.dart
View file @
873fba2d
import
'dart:math'
;
import
'package:flutter/material.dart'
;
import
'package:fl_chart/fl_chart.dart'
;
import
'package:intl/intl.dart'
;
...
...
@@ -8,11 +10,13 @@ class MonthlyPointsChart extends StatelessWidget {
super
.
key
,
required
this
.
items
,
required
this
.
date
,
this
.
monthSummary
,
this
.
onPrevMonth
,
this
.
onNextMonth
,
this
.
onChangeDate
,
});
final
MonthSummaryChartModel
?
monthSummary
;
final
List
<
DaySummaryChartModel
>
items
;
final
DateTime
date
;
final
VoidCallback
?
onPrevMonth
;
...
...
@@ -23,8 +27,8 @@ class MonthlyPointsChart extends StatelessWidget {
@override
Widget
build
(
BuildContext
context
)
{
final
parsed
=
_parseToDayMap
(
items
,
date
);
print
(
'items
${items.length}
, parsed:
$parsed
'
);
final
daysInMonth
=
DateUtils
.
getDaysInMonth
(
date
.
year
,
date
.
month
);
final
total
=
parsed
.
values
.
fold
<
double
>(
0
,
(
p
,
e
)
=>
p
+
e
);
final
maxVal
=
(
parsed
.
values
.
isEmpty
?
0
:
parsed
.
values
.
reduce
((
a
,
b
)
=>
a
>
b
?
a
:
b
)).
abs
();
final
yMax
=
_niceMax
(
maxVal
.
toDouble
());
final
yStep
=
_niceStep
(
yMax
);
...
...
@@ -58,7 +62,7 @@ class MonthlyPointsChart extends StatelessWidget {
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Text
(
_formatInt
(
to
tal
),
_formatInt
(
_
to
Double
(
monthSummary
?.
rewardMonthTotal
??
'0'
)
),
style:
const
TextStyle
(
fontSize:
40
,
fontWeight:
FontWeight
.
w700
,
...
...
@@ -190,11 +194,12 @@ class MonthlyPointsChart extends StatelessWidget {
if
(
dt
==
null
||
dt
.
month
!=
m
||
dt
.
year
!=
y
)
continue
;
final
reward
=
_toDouble
(
e
.
rewardDayTotal
);
final
redeem
=
_toDouble
(
e
.
redeemDayTotal
);
final
adjust
=
_toDouble
(
e
.
adjustDayTotal
);
final
val
=
reward
-
redeem
+
adjust
;
map
[
dt
.
day
]
=
(
map
[
dt
.
day
]
??
0
)
+
val
;
// gộp nếu trùng ngày
// final redeem = _toDouble(e.redeemDayTotal);
// final adjust = _toDouble(e.adjustDayTotal);
// final val = reward - redeem + adjust;
var
val
=
(
map
[
dt
.
day
]
??
0
)
+
reward
;
val
=
max
(
val
,
0
);
// không âm
map
[
dt
.
day
]
=
val
;
// gộp nếu trùng ngày
}
return
map
;
}
...
...
lib/screen/history_point/history_point_screen.dart
View file @
873fba2d
...
...
@@ -54,6 +54,7 @@ class _HistoryPointScreenState extends State<HistoryPointScreen> {
SliverToBoxAdapter
(
child:
MonthlyPointsChart
(
items:
_viewModel
.
transactionSummary
.
value
?.
days
??
[],
monthSummary:
_viewModel
.
transactionSummary
.
value
?.
month
,
date:
_viewModel
.
selectedDate
,
onPrevMonth:
()
=>
_viewModel
.
changeDate
(
true
),
onNextMonth:
()
=>
_viewModel
.
changeDate
(
false
),
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment