team_detail_page.dart 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:liftmanager/net/api_service.dart';
  4. import 'package:liftmanager/res/colors.dart';
  5. import 'package:liftmanager/res/gaps.dart';
  6. import 'package:liftmanager/routers/fluro_navigator.dart';
  7. import 'package:liftmanager/utils/image_utils.dart';
  8. import 'package:liftmanager/utils/theme_utils.dart';
  9. import 'package:liftmanager/utils/toast.dart';
  10. import 'package:liftmanager/widgets/app_bar.dart';
  11. import 'package:liftmanager/widgets/click_item.dart';
  12. import 'package:liftmanager/widgets/my_button.dart';
  13. class TeamDetailPage extends StatefulWidget {
  14. final String id;
  15. final String name;
  16. final String logoImg;
  17. final String corporator;
  18. final String telephone;
  19. final int userNum;
  20. final String createDate;
  21. final String remarks;
  22. final int isCertificated;
  23. TeamDetailPage(
  24. this.id,
  25. this.name,
  26. this.logoImg,
  27. this.corporator,
  28. this.telephone,
  29. this.userNum,
  30. this.createDate,
  31. this.remarks,
  32. this.isCertificated);
  33. @override
  34. State<StatefulWidget> createState() {
  35. return TeamDetailPageState();
  36. }
  37. }
  38. class TeamDetailPageState extends State<TeamDetailPage> {
  39. TextEditingController _dialogController = TextEditingController();
  40. @override
  41. void initState() {
  42. super.initState();
  43. }
  44. @override
  45. void dispose() {
  46. super.dispose();
  47. }
  48. ///加入团队
  49. _joinTeam() {
  50. showLoading(context, "正在申请...");
  51. ApiService(context: context).applyTeam(
  52. widget.id, _dialogController.text.toString().trim(), onSuccess: (data) {
  53. dismissLoading(context);
  54. showAlert(context, "提示", "申请成功", "确定", () {
  55. NavigatorUtils.goBack(context);
  56. });
  57. }, onError: (code, msg) {
  58. dismissLoading(context);
  59. toasts(msg);
  60. });
  61. }
  62. ///填写申请说明
  63. _joinTeamDialog() {
  64. showDialog(
  65. context: context,
  66. barrierDismissible: false,
  67. builder: (BuildContext context) {
  68. return AlertDialog(
  69. title: Text("确定要加入此团队?"),
  70. content: Container(
  71. padding: EdgeInsets.only(left: 10, right: 10),
  72. decoration: BoxDecoration(
  73. border: Border.all(color: Colours.text_gray_c, width: 0.5),
  74. borderRadius: BorderRadius.circular(3),
  75. ),
  76. child: TextField(
  77. textAlign: TextAlign.left,
  78. controller: _dialogController,
  79. decoration: InputDecoration(
  80. border: InputBorder.none,
  81. hintText: "申请加入说明",
  82. hintStyle: TextStyle(color: Colours.text_gray_c),
  83. ),
  84. maxLines: 4,
  85. ),
  86. ),
  87. actions: <Widget>[
  88. FlatButton(
  89. child: Text(
  90. "取消",
  91. style: TextStyle(color: Colours.text_gray_c),
  92. ),
  93. onPressed: () {
  94. Navigator.of(context).pop();
  95. },
  96. ),
  97. FlatButton(
  98. onPressed: () {
  99. Navigator.of(context).pop();
  100. _joinTeam();
  101. },
  102. child: Text(
  103. "确定",
  104. // style: TextStyle(color: Colors.red),
  105. ),
  106. )
  107. ],
  108. );
  109. });
  110. //
  111. }
  112. @override
  113. Widget build(BuildContext context) {
  114. return Scaffold(
  115. appBar: MyAppBar(
  116. centerTitle: "团队详情",
  117. ),
  118. body: ListView(padding: EdgeInsets.all(0.0), children: <Widget>[
  119. Container(
  120. color: ThemeUtils.getTabsBg(context),
  121. child: Center(
  122. child: CircleAvatar(
  123. radius: 30.0,
  124. backgroundColor: Colors.transparent,
  125. backgroundImage: ImageUtils.getImageProvider(
  126. widget.logoImg)),
  127. ),
  128. ),
  129. Container(
  130. color: ThemeUtils.getTabsBg(context),
  131. child: Center(
  132. child: Container(
  133. padding: EdgeInsets.fromLTRB(8, 2, 8, 2),
  134. decoration: BoxDecoration(
  135. color: Colours.app_main,
  136. borderRadius: BorderRadius.circular(12)),
  137. child: Text(
  138. widget.isCertificated == 1
  139. ? "已认证"
  140. : widget.isCertificated == 2 ? "审核中" : "未认证",
  141. style: TextStyle(
  142. fontSize: 10,
  143. color: Colors.white,
  144. fontWeight: FontWeight.bold)),
  145. )),
  146. ),
  147. Gaps.vGap12,
  148. ClickItem(title: "团队名", content: "${widget.name}"),
  149. ClickItem(title: "联系人", content: "${widget.corporator}"),
  150. ClickItem(title: "联系电话", content: "${widget.telephone}"),
  151. ClickItem(title: "团队人数", content: "${widget.userNum}"),
  152. ClickItem(title: "注册时间", content: "${widget.createDate}"),
  153. Container(
  154. margin: EdgeInsets.only(top: 8, bottom: 8),
  155. child: ClickItem(
  156. title: "团队描述",
  157. content: "${widget.remarks}",
  158. ),
  159. ),
  160. Padding(
  161. padding: const EdgeInsets.all(16),
  162. child: MyButton(
  163. fontSize: 14,
  164. onPressed: () {
  165. _joinTeamDialog();
  166. },
  167. text: "加入团队",
  168. ),
  169. )
  170. ]));
  171. }
  172. }