253 lines
9.2 KiB
Dart
253 lines
9.2 KiB
Dart
// import 'dart:math';
|
||
|
||
// import 'package:fl_chart/fl_chart.dart';
|
||
// import 'package:flutter/material.dart';
|
||
// import 'package:get/get.dart';
|
||
|
||
// import '../../models/config/model.dart';
|
||
// import 'skyPlotView.dart';
|
||
|
||
// class ChartPage extends StatelessWidget {
|
||
// ChartPage({super.key, required this.controller});
|
||
// final SkyController controller;
|
||
// List<BarChartGroupData> checkSVData = [];
|
||
// int lastValue = -10;
|
||
// double maxY = 0;
|
||
// int maxX = 10;
|
||
// double xLength = 0;
|
||
// @override
|
||
// Widget build(BuildContext context) {
|
||
// checkSVData.length = 0;
|
||
// xLength = 0;
|
||
// List<SvItem> svData = List.from(controller.svData)
|
||
// ..sort((a, b) => a.sn.compareTo(b.sn));
|
||
|
||
// for (int i = 0; i < svData.length; i++) {
|
||
// SvItem item = svData[i];
|
||
// String sys = item.name;
|
||
// // int index = controller.sVTypes.indexWhere((item) => item == sys);
|
||
|
||
// LegendItem legendItem = controller.legend[sys];
|
||
// if (legendItem.show) {
|
||
// maxY = max(maxY, item.l1.toDouble());
|
||
// maxY = max(maxY, item.l2.toDouble());
|
||
// maxX = max(maxX, item.sn);
|
||
// checkSVData.add(makeGroupData(
|
||
// item.sn, item.l1.toDouble(), item.l2.toDouble(), legendItem.color));
|
||
// xLength++;
|
||
// }
|
||
// }
|
||
// if (checkSVData.isNotEmpty) {
|
||
// if (controller.startIndex.value < checkSVData.length - 15) {
|
||
// checkSVData = checkSVData.sublist(
|
||
// controller.startIndex.value, controller.startIndex.value + 15);
|
||
// } else {
|
||
// checkSVData = checkSVData.sublist(
|
||
// controller.startIndex.value, checkSVData.length - 1);
|
||
// }
|
||
// }
|
||
|
||
// final size = MediaQuery.of(context).size;
|
||
// final orientation =
|
||
// MediaQuery.of(context).orientation == Orientation.portrait;
|
||
// return Container(
|
||
// width: size.width,
|
||
// decoration: const BoxDecoration(color: Colors.white),
|
||
// child: AspectRatio(
|
||
// aspectRatio: 1,
|
||
// child: Padding(
|
||
// padding: const EdgeInsets.all(10),
|
||
// child: Stack(
|
||
// children: [
|
||
// Column(
|
||
// crossAxisAlignment: CrossAxisAlignment.stretch,
|
||
// children: [
|
||
// Expanded(
|
||
// child: BarChart(
|
||
// BarChartData(
|
||
// maxY: maxY, // 提示需要+ 20 因为 提示是根据柱状图位置进行计算的
|
||
// barTouchData: BarTouchData(
|
||
// touchTooltipData: BarTouchTooltipData(
|
||
// // tooltipBgColor: Colors.blueGrey,
|
||
// getTooltipItem: (
|
||
// BarChartGroupData group,
|
||
// int groupIndex,
|
||
// BarChartRodData rod,
|
||
// int rodIndex,
|
||
// ) {
|
||
// return BarTooltipItem(
|
||
// 'L1:${group.barRods[0].toY}\nL2:${group.barRods[1].toY}',
|
||
// const TextStyle(
|
||
// fontWeight: FontWeight.bold,
|
||
// decoration: TextDecoration.none,
|
||
// color: Colors.black,
|
||
// fontSize: 18,
|
||
// shadows: [
|
||
// Shadow(
|
||
// color: Colors.black26,
|
||
// blurRadius: 12,
|
||
// )
|
||
// ],
|
||
// ),
|
||
// );
|
||
// },
|
||
// ),
|
||
// touchCallback: (event, response) {
|
||
// if (event.isInterestedForInteractions &&
|
||
// response != null &&
|
||
// response.spot != null) {
|
||
// // setState(() {
|
||
// // touchedGroupIndex =
|
||
// // response.spot!.touchedBarGroupIndex;
|
||
// // });
|
||
// } else {
|
||
// // setState(() {
|
||
// // touchedGroupIndex = -100;
|
||
// // });
|
||
// }
|
||
// },
|
||
// ),
|
||
// titlesData: FlTitlesData(
|
||
// show: true,
|
||
// rightTitles: AxisTitles(
|
||
// sideTitles: SideTitles(showTitles: false),
|
||
// ),
|
||
// topTitles: AxisTitles(
|
||
// sideTitles: SideTitles(showTitles: false),
|
||
// ),
|
||
// bottomTitles: AxisTitles(
|
||
// sideTitles: SideTitles(
|
||
// showTitles: true,
|
||
// getTitlesWidget: bottomTitles,
|
||
// reservedSize: 42,
|
||
// ),
|
||
// ),
|
||
// leftTitles: AxisTitles(
|
||
// sideTitles: SideTitles(
|
||
// showTitles: true,
|
||
// reservedSize: 28,
|
||
// interval: 1,
|
||
// getTitlesWidget: leftTitles,
|
||
// ),
|
||
// ),
|
||
// ),
|
||
// borderData: FlBorderData(
|
||
// show: false,
|
||
// ),
|
||
// barGroups: checkSVData,
|
||
// gridData: FlGridData(show: false),
|
||
// ),
|
||
// ),
|
||
// ),
|
||
// if (orientation)
|
||
// const SizedBox(
|
||
// height: 50,
|
||
// ),
|
||
// ],
|
||
// ),
|
||
// Positioned(
|
||
// bottom: 0,
|
||
// left: 0,
|
||
// right: 0,
|
||
// height: size.height,
|
||
// child: Opacity(
|
||
// opacity: 0, // 设置 Slider 组件的透明度为 0,使其不可见
|
||
// child: Slider(
|
||
// value: controller.startIndex.toDouble(),
|
||
// onChanged: (newvalue) => controller.updateSlider(newvalue),
|
||
// min: 0,
|
||
// max: xLength <= 5 ? 0 : xLength - 5,
|
||
// ),
|
||
// ),
|
||
// ),
|
||
// ],
|
||
// ),
|
||
// ),
|
||
// ),
|
||
// );
|
||
// }
|
||
|
||
// Widget leftTitles(double value, TitleMeta meta) {
|
||
// const style = TextStyle(
|
||
// color: Color(0xff7589a2),
|
||
// fontWeight: FontWeight.bold,
|
||
// fontSize: 14,
|
||
// decoration: TextDecoration.none);
|
||
// String text;
|
||
// int intValue = (value).ceil();
|
||
// if (intValue % 10 == 0 && intValue <= maxY) {
|
||
// text = intValue.toString();
|
||
// } else {
|
||
// return Container();
|
||
// }
|
||
// return SideTitleWidget(
|
||
// axisSide: meta.axisSide,
|
||
// space: 0,
|
||
// child: Text(text, style: style),
|
||
// );
|
||
// }
|
||
|
||
// Widget bottomTitles(double value, TitleMeta meta) {
|
||
// // if (lastValue == value) {
|
||
// // return SideTitleWidget(
|
||
// // axisSide: meta.axisSide,
|
||
// // space: 16, //margin top
|
||
// // child: const Text(''),
|
||
// // );
|
||
// // }
|
||
// String text = "";
|
||
// int intValue = (value).ceil();
|
||
|
||
// if (intValue != lastValue) {
|
||
// text = intValue.toString();
|
||
// }
|
||
|
||
// lastValue = intValue;
|
||
// return SideTitleWidget(
|
||
// axisSide: meta.axisSide,
|
||
// space: 16, //margin top
|
||
// child: Text(
|
||
// text.toString(),
|
||
// style: const TextStyle(
|
||
// color: Color(0xff7589a2),
|
||
// fontWeight: FontWeight.bold,
|
||
// decoration: TextDecoration.none,
|
||
// fontSize: 14,
|
||
// ),
|
||
// ),
|
||
// );
|
||
// }
|
||
|
||
// final double width = 20;
|
||
// final Color leftBarColor = const Color.fromARGB(95, 101, 98, 98);
|
||
// final Color rightBarColor = const Color.fromRGBO(33, 150, 243, 1);
|
||
|
||
// BarChartGroupData makeGroupData(int x, double y1, double y2,
|
||
// [Color color = const Color.fromRGBO(33, 150, 243, 1)]) {
|
||
// return BarChartGroupData(
|
||
// barsSpace: -width,
|
||
// x: x,
|
||
// showingTooltipIndicators: [],
|
||
// barRods: [
|
||
// BarChartRodData(
|
||
// toY: y1,
|
||
// color: Colors.white,
|
||
// borderSide: BorderSide(color: leftBarColor, width: 1),
|
||
// borderRadius: const BorderRadius.all(
|
||
// Radius.circular(2),
|
||
// ),
|
||
// width: width,
|
||
// ),
|
||
// BarChartRodData(
|
||
// toY: y2,
|
||
// color: color,
|
||
// borderRadius: const BorderRadius.all(
|
||
// Radius.circular(2),
|
||
// ),
|
||
// width: width,
|
||
// ),
|
||
// ],
|
||
// );
|
||
// }
|
||
// }
|