import 'package:deus_app/common/style/TitleBar.dart'; import 'package:deus_app/common/style/gsy_style.dart'; import 'package:deus_app/common/utils/ConstantString.dart'; import 'package:deus_app/common/utils/DioUtil.dart'; import 'package:deus_app/common/utils/ToastUtils.dart'; import 'package:deus_app/model/patrol_job_detail_response_entity.dart'; import 'package:deus_app/page/patrol/patrol_job_edit.dart'; import 'package:flutter/material.dart'; class PatrolJobList extends StatefulWidget { final PatrolJobDetailResponseData responseData; const PatrolJobList({super.key, required this.responseData}); @override State createState() { return _PatrolJobList(responseData); } } class _PatrolJobList extends State { PatrolJobDetailResponseData responseData; _PatrolJobList(this.responseData); @override Widget build(BuildContext context) { return Scaffold( appBar: TitleBar().backAppbar("巡检设备详情"), backgroundColor: const Color(0xfff2f2f2), body: Stack( children: [ Column( children: [ SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, children: [ SizedBox( width: 15, ), Text(ConstantString.patrolJobTitle, style: GSYConstant.smallActionLightText), ], ), Expanded( child: Container( margin: EdgeInsets.only(bottom: 50), child: ListView.builder( itemCount: responseData.equipmentVOS.length, itemBuilder: (context, index) { return Container( margin: EdgeInsets.only(top: 12, left: 10, right: 10), padding: EdgeInsets.only(top: 12, bottom: 10), color: Colors.white, child: ListTile( title: Column( children: [ Container( // padding: const EdgeInsets.fromLTRB(30.0, 0.0, 0.0, 0.0), alignment: Alignment.centerLeft, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(responseData.equipmentVOS[index].showName, style: GSYConstant.smallTextBold), Text( responseData .equipmentVOS[index].isComplete==0?'未完成':'已完成', style: TextStyle( fontSize: GSYConstant.smallTextSize, color: responseData.equipmentVOS[index].isComplete==0?Colors.red:Colors.blue), ), ]), ), Container( margin: const EdgeInsets.only(top: 10), // padding: const EdgeInsets.fromLTRB(30.0, 0.0, 0.0, 10.0), // alignment: Alignment.centerLeft, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ new Text( '完成时间:', style: GSYConstant.smallTextLight, ), Container( child: Text( responseData.equipmentVOS[index].itemCompleteTime, style: GSYConstant.smallTextLight, textAlign: TextAlign.right, ), ), ]), ), SizedBox( height: 5, ), ], ), onTap: () { completeEquipment(index); }, )); }, ) ), ) ], ), Positioned( left: 0, right: 0, bottom:0, // flex: 7, child:SizedBox( height: 50, width: double.infinity, child: TextButton( onPressed: () { if(next()){ Navigator.push( context, MaterialPageRoute( builder: (context) => PatrolJobEdit(id: responseData.id))); } }, style: ButtonStyle( backgroundColor: MaterialStateProperty.all( Color(0xFF4875EC)), shape: MaterialStateProperty.all( BeveledRectangleBorder( borderRadius: BorderRadius.circular(0))), foregroundColor: MaterialStateProperty.all(Colors.white), // padding: MaterialStateProperty.all(EdgeInsets.zero) ), child: const Text(ConstantString.next), ), ), ) ], )); } completeEquipment(int index) async { if (responseData.equipmentVOS[index].isComplete == 0) { var result = await DioUtil().request("patrolJob/completeEquipment", method: DioMethod.post, data: {'id': responseData.equipmentVOS[index].id}); if (result['code'] == 0) { setState(() { responseData.equipmentVOS[index].isComplete = 1; }); } else { showToast(result['msg']); } } } bool next(){ bool isNext=true; for (var element in responseData.equipmentVOS) { if(element.isComplete==0){ isNext=false; break; } } return isNext; } }