repair_page.dart 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. //巡检任务列表
  2. import 'package:deus_app/common/style/TitleBar.dart';
  3. import 'package:deus_app/page/patrol/patrol_job_detail.dart';
  4. import 'package:flutter/material.dart';
  5. import '../../common/style/gsy_style.dart';
  6. import '../../common/utils/ConstantString.dart';
  7. import '../../common/utils/DioUtil.dart';
  8. import '../../common/utils/ToastUtils.dart';
  9. import '../../model/patrol_response_entity.dart';
  10. import '../../widget/PatrolJobDrawer.dart';
  11. class RepairPage extends StatefulWidget {
  12. const RepairPage({super.key});
  13. static var routeName = '/RepairPage';
  14. @override
  15. State createState() {
  16. return _RepairPage();
  17. }
  18. }
  19. List<PatrolJobData> patrol_job_list = [];
  20. class _RepairPage extends State<RepairPage> {
  21. final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
  22. _load() async {
  23. var result = await DioUtil().request('patrolJob/appPatrolJobList',
  24. method: DioMethod.post, data: {'query': {}, 'index': 1, 'size': 5});
  25. PatrolJobResponse patrolJobResponse = PatrolJobResponse.fromJson(result);
  26. print(patrolJobResponse);
  27. patrol_job_list = patrolJobResponse.data!.patrolJobVOS!;
  28. //var patrolJobResponse = PatrolJobResponse.fromJson(result);
  29. //print(patrolJobResponse);
  30. }
  31. @override
  32. void initState() {
  33. // TODO: implement initState
  34. super.initState();
  35. Future.delayed(
  36. Duration.zero,
  37. () => setState(() {
  38. _load();
  39. }));
  40. }
  41. @override
  42. Widget build(BuildContext context) {
  43. return Scaffold(
  44. key: _scaffoldKey,
  45. appBar: TitleBar().drawAppBar(ConstantString.patrolJobText, () {
  46. _scaffoldKey.currentState?.openEndDrawer();
  47. }),
  48. endDrawer: PatrolJobDrawer(
  49. callback: (index, str) {
  50. showToast(str);
  51. },
  52. ),
  53. //抽屉
  54. backgroundColor: const Color(0xfff2f2f2),
  55. body: Column(
  56. children: [
  57. Expanded(
  58. child: Container(
  59. child: ListView.builder(
  60. itemCount: patrol_job_list.length,
  61. itemBuilder: (context, index) {
  62. PatrolJobData patrolJobData = patrol_job_list[index];
  63. return _patrol_job_list(patrolJobData);
  64. },
  65. )))
  66. ],
  67. ));
  68. }
  69. Widget _patrol_job_list(PatrolJobData patrolJobData) {
  70. return Container(
  71. margin: EdgeInsets.only(top: 12, left: 10, right: 10),
  72. padding: EdgeInsets.only(top: 12, bottom: 10),
  73. color: Colors.white,
  74. child: ListTile(
  75. title: Column(
  76. children: [
  77. Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
  78. Container(
  79. child: Text(
  80. patrolJobData.name!,
  81. style: TextStyle(
  82. color: Colors.black,
  83. fontSize: GSYConstant.middleTextWhiteSize,
  84. fontWeight: FontWeight.bold,
  85. ),
  86. ),
  87. ),
  88. Container(
  89. padding:
  90. EdgeInsets.only(top: 3, bottom: 3, left: 5, right: 5),
  91. child: Text(
  92. patrolJobData.status == 0
  93. ? '已关闭'
  94. : patrolJobData.status == 1
  95. ? '执行中'
  96. : patrolJobData.status == 2
  97. ? '已完成'
  98. : patrolJobData.status == 3
  99. ? '待执行'
  100. : patrolJobData.status == 4
  101. ? '已逾期'
  102. : '未知',
  103. textAlign: TextAlign.right,
  104. style: TextStyle(
  105. color:
  106. patrolJobData.status == 0 || patrolJobData.status == 4
  107. ? Colors.red
  108. : patrolJobData.status == 1
  109. ? Colors.orange
  110. : patrolJobData.status == 2
  111. ? Colors.green
  112. : Colors.black, //边框颜色
  113. fontSize: GSYConstant.minTextSize,
  114. ),
  115. ),
  116. decoration: BoxDecoration(
  117. border: new Border.all(
  118. color:
  119. patrolJobData.status == 0 || patrolJobData.status == 4
  120. ? Colors.red
  121. : patrolJobData.status == 1
  122. ? Colors.orange
  123. : patrolJobData.status == 2
  124. ? Colors.green
  125. : Colors.black, //边框颜色
  126. width: 1.0, //边框粗细
  127. ),
  128. borderRadius: const BorderRadius.all(
  129. const Radius.circular(3.0)), //边框的弧度
  130. ),
  131. )
  132. ]),
  133. SizedBox(
  134. height: 12,
  135. ),
  136. Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
  137. Container(
  138. child: Text(
  139. '报修单号:',
  140. style: TextStyle(
  141. color: GSYColors.primaryLightValue,
  142. fontSize: GSYConstant.middleTextWhiteSize,
  143. ),
  144. ),
  145. ),
  146. Container(
  147. child: Text(
  148. patrolJobData.number!,
  149. textAlign: TextAlign.right,
  150. style: TextStyle(
  151. color: GSYColors.primaryLightValue,
  152. fontSize: GSYConstant.middleTextWhiteSize,
  153. ),
  154. ),
  155. ),
  156. ]),
  157. SizedBox(
  158. height: 10,
  159. ),
  160. Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
  161. Container(
  162. child: Text(
  163. '报修设备:',
  164. style: TextStyle(
  165. color: GSYColors.primaryLightValue,
  166. fontSize: GSYConstant.middleTextWhiteSize,
  167. ),
  168. ),
  169. ),
  170. Container(
  171. child: Text(
  172. patrolJobData.startDate!,
  173. textAlign: TextAlign.right,
  174. style: TextStyle(
  175. color: GSYColors.primaryLightValue,
  176. fontSize: GSYConstant.middleTextWhiteSize,
  177. ),
  178. ),
  179. ),
  180. ]),
  181. SizedBox(
  182. height: 10,
  183. ),
  184. Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
  185. Container(
  186. child: Text(
  187. '申请时间:',
  188. style: TextStyle(
  189. color: GSYColors.primaryLightValue,
  190. fontSize: GSYConstant.middleTextWhiteSize,
  191. ),
  192. ),
  193. ),
  194. Container(
  195. child: Text(
  196. patrolJobData.endDate!,
  197. textAlign: TextAlign.right,
  198. style: TextStyle(
  199. color: GSYColors.primaryLightValue,
  200. fontSize: GSYConstant.middleTextWhiteSize,
  201. ),
  202. ),
  203. ),
  204. ]),SizedBox(
  205. height: 10,
  206. ),
  207. Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
  208. Container(
  209. child: Text(
  210. '申请人:',
  211. style: TextStyle(
  212. color: GSYColors.primaryLightValue,
  213. fontSize: GSYConstant.middleTextWhiteSize,
  214. ),
  215. ),
  216. ),
  217. Container(
  218. child: Text(
  219. patrolJobData.endDate!,
  220. textAlign: TextAlign.right,
  221. style: TextStyle(
  222. color: GSYColors.primaryLightValue,
  223. fontSize: GSYConstant.middleTextWhiteSize,
  224. ),
  225. ),
  226. ),
  227. ]),
  228. SizedBox(
  229. height: 5,
  230. ),
  231. ],
  232. ),
  233. onTap: () {
  234. Navigator.push(
  235. context,
  236. MaterialPageRoute(
  237. builder: (context) => new PatrolJobDetail(id:patrolJobData.id)));
  238. },
  239. ));
  240. }
  241. }