Hibok
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

223 wiersze
7.1 KiB

  1. import 'package:chat/data/UserData.dart';
  2. import 'package:chat/home/realtimehelper/translation_butler_page.dart';
  3. import 'package:chat/home/realtimehelper/travel_butler_page.dart';
  4. import 'package:chat/models/group_info_model.dart';
  5. import 'package:chat/utils/HttpUtil.dart';
  6. import 'package:chat/utils/MessageMgr.dart';
  7. import 'package:chat/utils/TokenMgr.dart';
  8. import 'package:chat/utils/msgHandler.dart';
  9. import 'package:chat/utils/screen.dart';
  10. import 'package:dio/dio.dart';
  11. import 'package:flutter/cupertino.dart';
  12. import 'package:flutter/material.dart';
  13. import 'package:oktoast/oktoast.dart';
  14. import '../../data/constants.dart';
  15. import '../../generated/i18n.dart';
  16. import '../../r.dart';
  17. class RealTimeHelperPage extends StatefulWidget {
  18. final GroupInfoModel groupInfoModel;
  19. RealTimeHelperPage({Key key, this.groupInfoModel}) : super(key: key);
  20. @override
  21. State<StatefulWidget> createState() {
  22. return RealTimeHelperPageState();
  23. }
  24. }
  25. class RealTimeHelperPageState extends State<RealTimeHelperPage> {
  26. bool isReceiveOrder = false;
  27. @override
  28. void initState() {
  29. super.initState();
  30. // MessageMgr().on('update_system',refresh);
  31. MessageMgr().on(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,isReceiveOrderMsg);
  32. }
  33. isReceiveOrderMsg(data){
  34. bool isReceive = data;
  35. isReceiveOrder = isReceive;
  36. setState(() {});
  37. }
  38. @override
  39. void dispose() {
  40. super.dispose();
  41. // MessageMgr().off('update_system',refresh);
  42. MessageMgr().off(MessageMgr.TRANSLATE_HK_IS_RECEIVED_ORDER,isReceiveOrderMsg);
  43. }
  44. @override
  45. Widget build(BuildContext context) {
  46. Widget appBar = AppBar(
  47. backgroundColor: Colors.white,
  48. title: Text(
  49. I18n.of(context).real_time_helper,
  50. textScaleFactor: 1.0,
  51. style: TextStyle(color: AppColors.NewAppbarTextColor),
  52. ),
  53. // leading: CustomUI.buildCustomLeading(context),
  54. centerTitle: false,
  55. );
  56. return UserData().isTranslateUser?Scaffold(
  57. // appBar: appBar,
  58. body: Container(
  59. color: Color(0xffE8EAF0),
  60. child: Stack(
  61. children: <Widget>[
  62. Container(
  63. child: Image.asset(
  64. R.assetsImagesImgRealtimeBg2,
  65. width: MediaQuery.of(context).size.width,
  66. height:250,
  67. fit: BoxFit.cover,
  68. ),
  69. ),
  70. Container(
  71. child: Image.asset(
  72. R.assetsImagesImgRealtimeBg1,
  73. width: MediaQuery.of(context).size.width,
  74. height:MediaQuery.of(context).padding.top+80,
  75. fit: BoxFit.cover,
  76. ),
  77. ),
  78. Container(
  79. child: SafeArea(
  80. child: ListView(
  81. children: <Widget>[
  82. SizedBox(height: 4,),
  83. Container(
  84. alignment: Alignment.center,
  85. child: fixedText(I18n.of(context).translation_butler_title3, color: Colors.white, fontSize: 21),
  86. ),
  87. UnconstrainedBox(child: InkWell(onTap: (){
  88. MsgHandler.translateReceiptOrStopOrder(!isReceiveOrder);
  89. },child: Container(
  90. alignment: Alignment.center,
  91. padding: EdgeInsets.only(left: 11,right: 11,top: 3,bottom: 3),
  92. decoration: BoxDecoration(
  93. border: Border.all(color: isReceiveOrder?Color(0xFFFEE645):Colors.white, width: 1),
  94. borderRadius: BorderRadius.circular(11)),
  95. child: fixedText(isReceiveOrder?I18n.of(context).translation_butler_start_receive_order:I18n.of(context).translation_butler_stop_receive_order, color: isReceiveOrder?Color(0xFFFEE645):Colors.white, fontSize: 15),
  96. ),),),
  97. Container(
  98. padding: EdgeInsets.only(left: 13,top: 20),
  99. child: fixedText(I18n.of(context).real_time_helper, color: Colors.white, fontSize: 22,fontWeight: FontWeight.w700),
  100. ),
  101. helperCard(I18n.of(context).translation_butler,
  102. R.assetsImagesImgTranslationButler, () {
  103. if (UserData().isTranslateUser) {
  104. showToast(I18n.of(context).translation_butler_stop_tips);
  105. } else {
  106. Navigator.of(context).push(
  107. MaterialPageRoute(
  108. builder: (_) => TranslationButlerPage(),
  109. ),
  110. );
  111. }
  112. }, textColor: Color(0xff2685FA)),
  113. helperCard(I18n.of(context).travel_butler,
  114. R.assetsImagesImgTravelButler, () {
  115. Navigator.of(context).push(
  116. MaterialPageRoute(
  117. builder: (_) => TravelButlerPage(),
  118. ),
  119. );
  120. }, textColor: Color(0xffff682d)),
  121. SizedBox(
  122. height: 15,
  123. ),
  124. ],
  125. )),
  126. )
  127. ],
  128. ),
  129. ),
  130. ):Scaffold(
  131. appBar: appBar,
  132. body: SafeArea(
  133. child: Container(
  134. color: Color(0xffE8EAF0),
  135. child: ListView(
  136. children: <Widget>[
  137. helperCard(I18n.of(context).translation_butler,
  138. R.assetsImagesImgTranslationButler, () {
  139. Navigator.of(context).push(
  140. MaterialPageRoute(
  141. builder: (_) => TranslationButlerPage(),
  142. ),
  143. );
  144. },textColor: Color(0xff2685FA)),
  145. helperCard(
  146. I18n.of(context).travel_butler, R.assetsImagesImgTravelButler,
  147. () {
  148. Navigator.of(context).push(
  149. MaterialPageRoute(
  150. builder: (_) => TravelButlerPage(),
  151. ),
  152. );
  153. },textColor: Color(0xffff682d)),
  154. SizedBox(
  155. height: 15,
  156. ),
  157. ],
  158. ),
  159. ),
  160. ),
  161. );
  162. }
  163. Widget helperCard(String title, String assets, Function callBack,
  164. {Color textColor}) {
  165. return InkWell(
  166. child: Container(
  167. margin: EdgeInsets.all(10),
  168. child: Card(
  169. elevation: 2, // 阴影
  170. shape: RoundedRectangleBorder(
  171. borderRadius: BorderRadius.circular(10),
  172. // side: BorderSide(color: Colors.green,width: 25),
  173. ),
  174. child: Container(
  175. padding: EdgeInsets.all(10),
  176. child: Column(
  177. children: <Widget>[
  178. Image.asset(
  179. assets,
  180. ),
  181. Padding(
  182. padding: EdgeInsets.only(top: 15, bottom: 15),
  183. child: Text(
  184. title + ' >>',
  185. textScaleFactor: 1.0,
  186. style: TextStyle(color: textColor, fontSize: 20),
  187. ),
  188. )
  189. ],
  190. ),
  191. ),
  192. ),
  193. ),
  194. onTap: callBack,
  195. );
  196. }
  197. }