Hibok
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

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