flutter fl_chat line

// chart  start
final maxYValue = chartDataMain[4].maxY.toDouble();
final List<double> saleValues = [];
final List<double> deposValues = [];
final List<double> holdValues = [];
final List<double> settleValues = [];

for (var i = 0; i < chartDataMain.length; i++) {
saleValues.add(chartDataMain[i].amt.toDouble());
deposValues.add(chartDataMain[i].depAmt.toDouble());
holdValues.add(chartDataMain[i].holdAmt.toDouble());
if (chartDataMainSettle != null) {
settleValues.add(chartDataMainSettle[i].withCust.toDouble());
}
;
}
// 매출
List<FlSpot> salesSpots = saleValues.asMap().entries.map((e) {
return FlSpot(e.key.toDouble(), e.value);
}).toList();
// 입금
List<FlSpot> deposSpots = deposValues.asMap().entries.map((e) {
return FlSpot(e.key.toDouble(), e.value);
}).toList();
// 미입금
List<FlSpot> holdSpots = holdValues.asMap().entries.map((e) {
return FlSpot(e.key.toDouble(), e.value);
}).toList();
// 선정산
List<FlSpot> settleSpots; // 단순히 선언처리
if (chartDataMainSettle != null) {
settleSpots = settleValues.asMap().entries.map((e) {
return FlSpot(e.key.toDouble(), e.value);
}).toList();
}
;

List<LineChartBarData> easyInfoChatDataLine() {
List<LineChartBarData> resultData = [];
final LineChartBarData lineChartBarData1 = LineChartBarData(
spots: salesSpots,
isCurved: false,
colors: [
const Color(0xffFF5152),
],
barWidth: 2,
isStrokeCapRound: true,
dotData: FlDotData(
show: true,
),
belowBarData: BarAreaData(
show: false,
),
);
final LineChartBarData lineChartBarData2 = LineChartBarData(
spots: deposSpots,
isCurved: false,
colors: [
const Color(0xff5A6ED4),
],
barWidth: 2,
isStrokeCapRound: true,
dotData: FlDotData(
show: true,
),
belowBarData: BarAreaData(show: false, colors: [
const Color(0x00aa4cfc),
]),
);
final LineChartBarData lineChartBarData3 = LineChartBarData(
spots: holdSpots,
// spots: [
// FlSpot(1, 3),
// FlSpot(2, 4.5),
// FlSpot(3, 2.4),
// FlSpot(4, 1.4),
// FlSpot(5, 3.2),
// ],
isCurved: false,
colors: const [
Color(0xffFFDF0E),
],
barWidth: 2,
isStrokeCapRound: true,
dotData: FlDotData(
show: true,
),
belowBarData: BarAreaData(
show: false,
),
);

if (chartDataMainSettle != null) {
final LineChartBarData lineChartBarData4 = LineChartBarData(
spots: settleSpots,
isCurved: false,
colors: const [
Color(0xff00B800),
],
barWidth: 2,
isStrokeCapRound: true,
dotData: FlDotData(
show: true,
),
belowBarData: BarAreaData(
show: false,
),
);
resultData = [
lineChartBarData1,
lineChartBarData2,
lineChartBarData3,
lineChartBarData4,
];
} else {
resultData = [
lineChartBarData1,
lineChartBarData2,
lineChartBarData3,
];
}

return resultData;
}

LineChartData easyInfoChatData() {
return LineChartData(
lineTouchData: LineTouchData(
touchTooltipData: LineTouchTooltipData(
tooltipBgColor: Colors.blueGrey.withOpacity(0.8),
),
touchCallback: (LineTouchResponse touchResponse) {},
handleBuiltInTouches: true,
),
gridData: FlGridData(
show: false,
),
titlesData: FlTitlesData(
bottomTitles: SideTitles(
showTitles: true,
reservedSize: 22,
getTextStyles: (value) => const TextStyle(
color: Color(0xff72719b),
fontWeight: FontWeight.bold,
fontSize: 12,
),
margin: 10,
getTitles: (value) {
switch (value.toInt()) {
case 0:
return chartDataMain[0].trDt.toString();
case 1:
return chartDataMain[1].trDt.toString();
case 2:
return chartDataMain[2].trDt.toString();
case 3:
return chartDataMain[3].trDt.toString();
case 4:
return chartDataMain[4].trDt.toString();
}
return '';
},
),
leftTitles: SideTitles(
showTitles: false,
getTextStyles: (value) => const TextStyle(
color: Color(0xff75729e),
fontWeight: FontWeight.bold,
fontSize: 14,
),
// 세로축 값
getTitles: (value) {
switch (value.toInt()) {
case 1:
return '1m';
case 2:
return '2m';
case 3:
return '3m';
case 4:
return '5m';
}
return '';
},
margin: 8,
reservedSize: 30,
),
),
borderData: FlBorderData(
show: true,
border: const Border(
bottom: BorderSide(
color: Color(0xff4e4965),
width: 1, // 가로축 굵기
),
left: BorderSide(
color: Color(0xff4e4965),
width: 1,
),
right: BorderSide(
color: Colors.transparent,
),
top: BorderSide(
color: Colors.transparent,
),
),
),
minX: 0,
maxX: 4,
maxY: maxYValue,
minY: 0,
lineBarsData: easyInfoChatDataLine(),
);
}

댓글

이 블로그의 인기 게시물

자바 string 비교 할때 equlas 를 사용하자

jqgrid 에서 export execl 붙이기

flutter webview scroll 안되는 경우 gestureRecognizers: gestureRecognizers, 추가 해서 되었다