import 'package:fis_measure/view/paint/ai_patint_controller.dart'; import 'package:fis_measure/view/paint/date_structure.dart'; import 'package:fis_measure/view/paint/parts/ai_resul_info.dart'; import 'package:fis_measure/view/paint/parts/feature_analysis.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; class AIResultPanel extends StatefulWidget { AIResultPanel(this.aiDetectedObject, this.diagnosisOrgan, {Key? key}) : super(key: key); late List aiDetectedObject = []; /// ai部位 final DiagnosisOrganEnum diagnosisOrgan; @override State createState() => _AIResultPanelState(); } class _AIResultPanelState extends State { late AIDetectedObject aiDetectedObjectItem; final aiPatintController = Get.find(); @override Widget build(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded(child: Container()), SizedBox( width: 200, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (widget.aiDetectedObject.length > 1) Container( child: Wrap( spacing: 2.0, // 主轴(水平)方向间距 runSpacing: 2.0, // 纵轴(垂直)方向间距 direction: Axis.horizontal, alignment: WrapAlignment.start, children: List.generate( widget.aiDetectedObject.length, (index) { return GestureDetector( onTap: () { aiPatintController.state.aiResultIndex = index; }, child: Obx( () => Container( decoration: BoxDecoration( color: aiPatintController.state.aiResultIndex == index ? const Color.fromRGBO(54, 169, 206, 1) : Colors.grey, ), width: 38, height: 35, child: Center( child: Text( '${index + 1}', style: const TextStyle( color: Colors.white, ), ), ), ), ), ); }, ), ), color: Colors.transparent, ), const SizedBox( height: 10, ), Obx(() { try { aiDetectedObjectItem = widget .aiDetectedObject[aiPatintController.state.aiResultIndex]; if (aiDetectedObjectItem.label != 0) { return Column( children: [ ResultInfo( widget.aiDetectedObject, ), const SizedBox( height: 10, ), aiDetectedObjectItem.descriptions?.isNotEmpty ?? false ? FeatureAnalysis( aiDetectedObjectItem.descriptions, ) : const SizedBox(), ], ); } else { return const SizedBox(); } } catch (e) { return const SizedBox(); } }) ], ), ), ], ); } }