import 'dart:convert'; import 'dart:io'; import 'package:eitc_erm_app/select_patient.dart'; import 'package:eitc_erm_app/utils/Component.dart'; import 'package:eitc_erm_app/utils/Constants.dart'; import 'package:eitc_erm_app/utils/logger.dart'; import 'package:eitc_erm_app/widget/loading.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'bean/doctor_list.dart'; String mFrom = ""; // void main() { // WidgetsFlutterBinding.ensureInitialized(); // runApp(SelectPatient()); // } class SelectDoctor extends StatefulWidget { SelectDoctor(String from) { mFrom = from; } @override State createState() => SelectDoctorState(); } class SelectDoctorState extends State { ValueNotifier result = ValueNotifier(null); late Future _future; late BuildContext cxt; @override void initState() { super.initState(); _future = fetchData(); } Future fetchData() async { Map headers = { 'token': '${Global.token}', }; final response = await http.get(Uri.parse('${Global.BaseUrl}doctor/list'), headers: jsonHeaders(withToken: true)); if (response.statusCode == 200) { final json = decodeBodyToJson(response.bodyBytes); logd("医生列表=$json"); DoctorListEntity mDoctorListEntity = new DoctorListEntity.fromJson(json); if (mDoctorListEntity.code == Global.responseSuccessCode) { return mDoctorListEntity; } else { Component.toast(mDoctorListEntity.msg.toString(), 0); } return null; } else { Component.toast("出错了,请稍后再试!", 0); return null; } } @override Widget build(BuildContext context) { cxt = context; return Scaffold( appBar: new AppBar( title: new Text('选择医生', style: TextStyle( color: Colors.white, )), centerTitle: true, elevation: 0.5, backgroundColor: Global.StatusBarColor, leading: new IconButton( tooltip: '返回上一页', icon: const Icon( Icons.arrow_back_ios, color: Colors.white, ), onPressed: () { Navigator.of(context).pop(); //_nextPage(-1); }, ), ), body: Column(children: [ /*Text( '选择就诊人', style: const TextStyle(fontSize: 15), textAlign: TextAlign.start, overflow: TextOverflow.ellipsis, ),*/ FutureBuilder( future: _future, builder: (context, snapshot) { if (snapshot.hasData) { DoctorListEntity? data = snapshot.data; return Expanded( // wrap in Expanded child: ListView.builder( shrinkWrap: true, itemCount: data?.data?.length, itemBuilder: (context, index) { return ListTile( title: Padding( padding: const EdgeInsets.fromLTRB(0, 0, 0, 10), child: Row(children: [ Text( data!.data![index].nickName as String, style: const TextStyle(fontSize: 18), ), data.data![index].nickName?.length == 2 ? const SizedBox(width: 28.0) : const SizedBox(width: 10.0), /* if (data!.data![index].doctorBlurb != null) ElevatedButton( child: Text(" ${data!.data![index].doctorBlurb} ", style: TextStyle( color: Colors.indigo, fontSize: 16)), style: ButtonStyle( backgroundColor: MaterialStateProperty.resolveWith( (states) { return Colors .lightBlueAccent; // Regular color }), // fixedSize: MaterialStateProperty.all( // Size(70, 15), // ), padding: MaterialStateProperty.all(EdgeInsets.zero), minimumSize: MaterialStateProperty.all(Size.zero), ), onPressed: () {}, ),*/ ]), ), subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '${data.data![index].deptName??""} - ${data.data![index].postNames ?? ""}'), const Divider(), ]), onTap: () { Global.doctor = data; Global.selectDoctor = index; /*if (mFrom == "fromDoctorDetail") { Navigator.of(cxt).pop(); } else if (mFrom == "fromRecordRegistration") { Navigator.pop(cxt, "success"); } else */ { // if(Global.selectPatient == -1) Navigator.push( context, MaterialPageRoute( builder: (context) => SelectPatient("fromSelectDoctor")), ); /*else Navigator.push( context, MaterialPageRoute( builder: (context) => ChatHome()), );*/ } }, ); }, )); } else if (snapshot.hasError) { return Text('Error: ${snapshot.error}'); } return const Expanded(child: ColorLoader()); }, ), ]), ); } }