// 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 checkSVData = []; // int lastValue = -10; // double maxY = 0; // int maxX = 10; // double xLength = 0; // @override // Widget build(BuildContext context) { // checkSVData.length = 0; // xLength = 0; // List 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, // ), // ], // ); // } // }