Fix Expansion Procedure
parent
0603ea1e40
commit
40b4a83c6b
@ -0,0 +1,189 @@
|
||||
import 'package:doctor_app_flutter/client/base_app_client.dart';
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
|
||||
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_request_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
|
||||
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ExpansionProcedure extends StatefulWidget {
|
||||
final ProcedureTempleteModel procedureTempleteModel;
|
||||
final ProcedureViewModel model;
|
||||
final Function(ProcedureTempleteDetailsModel) removeFavProcedure;
|
||||
final Function(ProcedureTempleteDetailsModel) addFavProcedure;
|
||||
final Function(ProcedureTempleteDetailsModel) addProceduresRemarks;
|
||||
|
||||
final bool Function(ProcedureTempleteModel) isEntityListSelected;
|
||||
final bool Function(ProcedureTempleteDetailsModel) isEntityFavListSelected;
|
||||
|
||||
const ExpansionProcedure(
|
||||
{Key key,
|
||||
this.procedureTempleteModel,
|
||||
this.model,
|
||||
this.removeFavProcedure,
|
||||
this.addFavProcedure,
|
||||
this.addProceduresRemarks,
|
||||
this.isEntityListSelected,
|
||||
this.isEntityFavListSelected})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
_ExpansionProcedureState createState() => _ExpansionProcedureState();
|
||||
}
|
||||
|
||||
class _ExpansionProcedureState extends State<ExpansionProcedure> {
|
||||
bool _isShowMore = false;
|
||||
List<ProcedureTempleteDetailsModel> _templateDetailsList = List();
|
||||
BaseAppClient baseAppClient = BaseAppClient();
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
if (!_isShowMore && _templateDetailsList.isEmpty) {
|
||||
GifLoaderDialogUtils.showMyDialog(context);
|
||||
await getProcedureTemplateDetails(widget.procedureTempleteModel.templateID);
|
||||
GifLoaderDialogUtils.hideDialog(context);
|
||||
}
|
||||
setState(() {
|
||||
_isShowMore = !_isShowMore;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(10.0),
|
||||
margin: EdgeInsets.only(left: 5, right: 5),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.rectangle,
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(5.0),
|
||||
)),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.folder,
|
||||
size: 20,
|
||||
color: Color(0xff575757),
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 10, vertical: 0),
|
||||
child: AppText(
|
||||
"Procedures for " +
|
||||
widget.procedureTempleteModel.templateName,
|
||||
fontSize: 16.0,
|
||||
variant: "bodyText",
|
||||
bold: true,
|
||||
color: Color(0xff575757)),
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
Container(
|
||||
width: 25,
|
||||
height: 25,
|
||||
child: Icon(
|
||||
_isShowMore
|
||||
? Icons.keyboard_arrow_up
|
||||
: Icons.keyboard_arrow_down,
|
||||
color: Colors.grey[800],
|
||||
size: 22,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
if (_isShowMore)
|
||||
AnimatedContainer(
|
||||
padding: EdgeInsets.all(10.0),
|
||||
margin: EdgeInsets.only(left: 5, right: 5),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.rectangle,
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomLeft: Radius.circular(5.0),
|
||||
bottomRight: Radius.circular(5.0),
|
||||
)),
|
||||
duration: Duration(milliseconds: 7000),
|
||||
child: Column(
|
||||
children:
|
||||
_templateDetailsList.map((itemProcedure) {
|
||||
return Container(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 11),
|
||||
child: Checkbox(
|
||||
value: widget
|
||||
.isEntityFavListSelected(itemProcedure),
|
||||
activeColor: Color(0xffD02127),
|
||||
onChanged: (bool newValue) {
|
||||
setState(() {
|
||||
if (widget.isEntityFavListSelected(itemProcedure)) {
|
||||
widget.removeFavProcedure(itemProcedure);
|
||||
} else {
|
||||
widget.addFavProcedure(itemProcedure);
|
||||
}
|
||||
});
|
||||
}),
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 10, vertical: 0),
|
||||
child: AppText(itemProcedure.procedureName,
|
||||
fontSize: 14.0,
|
||||
variant: "bodyText",
|
||||
bold: true,
|
||||
color: Color(0xff575757)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
getProcedureTemplateDetails(templateId)async {
|
||||
ProcedureTempleteDetailsRequestModel _procedureTempleteDetailsRequestModel = ProcedureTempleteDetailsRequestModel(templateID: templateId, searchType: 1, patientID: 0);
|
||||
_templateDetailsList.clear();
|
||||
await baseAppClient.post(GET_PROCEDURE_TEMPLETE_DETAILS,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
response['HIS_ProcedureTemplateDetailsList'].forEach((template) {
|
||||
setState(() {
|
||||
_templateDetailsList.add(ProcedureTempleteDetailsModel.fromJson(template));
|
||||
});
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
DrAppToastMsg.showErrorToast(error);
|
||||
|
||||
}, body: _procedureTempleteDetailsRequestModel.toJson());
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue