heavy_user_page.dart 4.8 KB

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