import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:vitalapp/managers/interfaces/models/image_report_list_params.dart'; import 'package:vitalapp/pages/consultation_record_view/widgets/consultation_record_filter.dart'; import 'package:vitalapp/pages/consultation_record_view/widgets/record_data_table.dart'; import 'package:vitalapp/pages/image_report_inner_view/controller.dart'; import 'package:vitalapp/pages/image_report_inner_view/view.dart'; import 'index.dart'; import 'widgets/consultation_record_filter_drawer.dart'; import 'widgets/operation_buttons_row.dart'; class ConsultationRecordViewPage extends GetView { @override String get pageName => "ConsultationRecordViewPage"; const ConsultationRecordViewPage({Key? key}) : super(key: key); // 主视图 Widget _buildView() { var body = Row( children: [ Expanded( child: InkWell( // 将highlightColor和splashColor设置为透明色 highlightColor: Colors.transparent, splashColor: Colors.transparent, hoverColor: Colors.transparent, focusColor: Colors.transparent, mouseCursor: SystemMouseCursors.basic, onTap: () { controller.closePatientInfoDialog(); }, child: Column( children: [ GetBuilder( id: 'record_data_table_header', builder: (context) { return ConsultationRecordFilter(); }, ), Expanded( child: SizedBox( width: double.infinity, child: RecordDataTable(), ), ), OperationButtonsRow(), ], ), ), ), Container( width: 320, decoration: BoxDecoration( border: Border( left: BorderSide( color: Colors.grey[300]!, width: 1, ), ), ), child: FutureBuilder( future: Future.delayed(Duration( milliseconds: Get.isRegistered() ? 800 : 0)), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return ImageReportInnerView( args: ImageReportListParams( recordCode: controller.desktopListSelectedRecordCode, ), ); } else { return Container(); } }, ), ) ], ); return FutureBuilder( future: _checkConsultationRecordViewController(), builder: (c, snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData && snapshot.data == true) { return Scaffold( key: controller.scaffoldKey, body: GetBuilder( id: 'record_body', builder: (_) { return Stack( children: [ body, ], ); }, ), drawerEdgeDragWidth: 500, drawerDragStartBehavior: DragStartBehavior.down, endDrawer: Drawer( width: 500, child: RecordFilterDrawer(), ), ); } else { return SizedBox(); } }); } @override Widget build(BuildContext context) { return _buildView(); } static Future? _checkConsultationRecordViewController() async { if (Get.isRegistered()) { await Future.delayed(const Duration(milliseconds: 200)); } return true; } }