heavy_user_page.dart 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. import 'package:azlistview/azlistview.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:liftmanager/internal/heavy/model/heavy_user_entity.dart';
  5. import 'package:liftmanager/internal/lift/model/lift_brand_entity.dart';
  6. import 'package:liftmanager/internal/team/model/team_user_entity.dart';
  7. import 'package:liftmanager/internal/team/team_router.dart';
  8. import 'package:liftmanager/net/api_service.dart';
  9. import 'package:liftmanager/res/resources.dart';
  10. import 'package:liftmanager/routers/fluro_navigator.dart';
  11. import 'package:liftmanager/utils/image_utils.dart';
  12. import 'package:liftmanager/utils/theme_utils.dart';
  13. import 'package:liftmanager/utils/toast.dart';
  14. import 'package:liftmanager/widgets/app_bar.dart';
  15. class HeavyUserPage extends StatefulWidget {
  16. HeavyUserPage(this.projectId);
  17. String projectId;
  18. @override
  19. State<StatefulWidget> createState() {
  20. return HeavyUserPageState();
  21. }
  22. }
  23. class HeavyUserPageState extends State<HeavyUserPage> {
  24. int pageNum = 1;
  25. int pageSize = 1000;
  26. List<HeavyUserEntity> _userList = [];
  27. @override
  28. void initState() {
  29. super.initState();
  30. _loadData();
  31. }
  32. void showDetail(int i) {
  33. showDialog(
  34. barrierDismissible: false,
  35. context: context,
  36. builder: (context) => new AlertDialog(
  37. backgroundColor: ThemeUtils.getTabsBg(context),
  38. content: Container(
  39. width: 295,
  40. height: 350,
  41. child: ListView.separated(
  42. shrinkWrap: true,
  43. itemCount: _userList[i].attendanceRecord.length,
  44. separatorBuilder: (BuildContext context, int index) {
  45. return Container(
  46. height: 0.5,
  47. color: Color(0xFFF5F5F5),
  48. );
  49. },
  50. itemBuilder: (_, index) {
  51. return InkWell(
  52. child: Container(
  53. color: Colors.white,
  54. padding: const EdgeInsets.symmetric(
  55. horizontal: 15.0, vertical: 12.0),
  56. alignment: Alignment.centerLeft,
  57. child: Column(
  58. crossAxisAlignment: CrossAxisAlignment.start,
  59. mainAxisAlignment: MainAxisAlignment.start,
  60. children: <Widget>[
  61. Text("${_userList[i].attendanceRecord[index].signDate}",style: TextStyle(fontSize: 15,fontWeight: FontWeight.w800),),
  62. Text(
  63. "入场时间:${_userList[i].attendanceRecord[index].approachTime}"),
  64. Text(
  65. "离场时间:${_userList[i].attendanceRecord[index].leavingTime}"),
  66. ],
  67. ),
  68. ));
  69. },
  70. ),
  71. ),
  72. actions: <Widget>[
  73. new FlatButton(
  74. onPressed: () {
  75. setState(() {});
  76. Navigator.pop(context);
  77. },
  78. child: new Text("关闭"),
  79. ),
  80. ],
  81. ),
  82. );
  83. }
  84. ///获取团队用户列表
  85. _loadData() {
  86. ApiService(context: context).heavyUserList(widget.projectId, false,"",
  87. onSuccess: (res) {
  88. _userList = res;
  89. setState(() {});
  90. }, onError: (code, msg) {
  91. toasts(msg);
  92. });
  93. }
  94. @override
  95. Widget build(BuildContext context) {
  96. return Scaffold(
  97. appBar: MyAppBar(
  98. centerTitle: "考勤列表",
  99. ),
  100. body: SafeArea(
  101. child: ListView.separated(
  102. shrinkWrap: true,
  103. itemCount: _userList.length,
  104. separatorBuilder: (BuildContext context, int index) {
  105. return Container(
  106. height: 0.5,
  107. color: Color(0xFFF5F5F5),
  108. );
  109. },
  110. itemBuilder: (_, index) {
  111. return InkWell(
  112. onTap: () {
  113. showDetail(index);
  114. },
  115. child: Container(
  116. color: Colors.white,
  117. padding: const EdgeInsets.symmetric(
  118. horizontal: 15.0, vertical: 12.0),
  119. alignment: Alignment.centerLeft,
  120. child: Row(
  121. crossAxisAlignment: CrossAxisAlignment.start,
  122. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  123. children: <Widget>[
  124. Text("${_userList[index].userName}"),
  125. Text("查看")
  126. ],
  127. ),
  128. ));
  129. },
  130. ),
  131. ),
  132. );
  133. }
  134. // _listWidget(_userList[index])
  135. List<Widget> _listWidget(HeavyUserEntity item) {
  136. List<Widget> list = [];
  137. list.add(Text("${item.userName}"));
  138. for (int i = 0; i < item.attendanceRecord.length; i++) {
  139. list.add(Container(
  140. color: ThemeUtils.getTabsBg(context),
  141. padding: const EdgeInsets.symmetric(horizontal: 15.0, vertical: 12.0),
  142. alignment: Alignment.centerLeft,
  143. child: Column(
  144. crossAxisAlignment: CrossAxisAlignment.start,
  145. mainAxisAlignment: MainAxisAlignment.start,
  146. children: <Widget>[
  147. Text("入场时间:${item.attendanceRecord[i].approachTime}"),
  148. Text("离场时间:${item.attendanceRecord[i].leavingTime}")
  149. ],
  150. ),
  151. ));
  152. }
  153. return list;
  154. }
  155. }