From 1156781e002b9e7a29d7bd01bdfbcfd77b8e64c7 Mon Sep 17 00:00:00 2001 From: jiahao <283739569@qq.com> Date: Tue, 31 Mar 2020 18:46:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E7=AE=A1=E5=AE=B6/=E5=8D=8E?= =?UTF-8?q?=E4=B8=BAapp=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/agconnect-services.json | 15 +- android/app/build.gradle | 2 +- i18n/en-US.json | 16 +- i18n/ja-JP.json | 15 +- i18n/ko-KR.json | 16 +- i18n/vi-VN.json | 15 +- i18n/zh-CN.json | 16 +- i18n/zh-HK.json | 15 +- ios/Podfile.lock | 6 + lib/chat/ChatPage.dart | 194 ++++++++------- lib/chat/ChatPageItem.dart | 47 ++-- lib/data/translate_hk_data_mgr.dart | 2 + lib/generated/i18n.dart | 224 +++++++++++++++++- lib/home/homeMain.dart | 2 +- .../realtimehelper/real_time_helper_page.dart | 62 ++++- .../translation_butler_page.dart | 12 +- .../translation_order_push_dialog.dart | 30 ++- .../realtimehelper/travel_butler_page.dart | 4 +- lib/models/last_msg_description.dart | 7 +- lib/proto/transhousekeeper.pb.dart | 52 ++-- lib/proto/transhousekeeper.pbjson.dart | 9 +- lib/proto/transhousekeeper.proto | 9 +- lib/utils/CustomUI.dart | 4 +- lib/utils/HttpUtil.dart | 5 + lib/utils/msgHandler.dart | 3 +- 25 files changed, 593 insertions(+), 189 deletions(-) diff --git a/android/app/agconnect-services.json b/android/app/agconnect-services.json index abbd909..2e60b4b 100644 --- a/android/app/agconnect-services.json +++ b/android/app/agconnect-services.json @@ -5,11 +5,12 @@ }, "client":{ "cp_id":"890086000300385560", - "product_id":"9105385871708389411", - "client_id":"270664671340528640", - "client_secret":"00CC308FC014C334D58CF79471B490FD6274BC39FEAAD89B63E762871DB4EBCC", - "app_id":"101598177", - "package_name":"com.cyhd.henhoandroid" + "product_id":"9105385871708615262", + "client_id":"330243365088003136", + "client_secret":"7A8C08A4377B06C3FE950D55511A0F7CBA4164C9319E06E8401A33BBCBDCFA7C", + "app_id":"101961905", + "package_name":"com.cyhd.henhoandroid", + "api_key":"CV6qgj5CPtQonVHTR8gGJxvdRrkeBaZ+KqTsHcRmUyTtSgpYuBknlD5Z8mb3ob8TH7Kq2FJknGNbmserIjlUfmiuUZ2D" }, "service":{ "analytics":{ @@ -18,9 +19,9 @@ "channel_id":"" }, "ml":{ - "mlservice_url":"ml-api-dra.ai.hicloud.com,ml-api-dra.ai.dbankcloud.cn" + "mlservice_url":"ml-api-dra.ai.dbankcloud.com,ml-api-dra.ai.dbankcloud.cn" } }, "region":"SG", "configuration_version":"1.0" -} \ No newline at end of file +} diff --git a/android/app/build.gradle b/android/app/build.gradle index 34a5f99..77fbfd9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -70,7 +70,7 @@ android { XIAOMI_APPKEY:"MI-5221829498125",//小米平台注册的appkey XIAOMI_APPID:"MI-2882303761518294125",//小米平台注册的appid // - HUAWEI_APPID:"101598177",//华为平台注册的appid + HUAWEI_APPID:"101961905",//华为平台注册的appid OPPO_APPKEY : "OP-cd9ece5049514019842f54d537068018", // OPPO平台注册的appkey diff --git a/i18n/en-US.json b/i18n/en-US.json index 03bdd9f..4776afe 100644 --- a/i18n/en-US.json +++ b/i18n/en-US.json @@ -1226,5 +1226,19 @@ "forward":"Forward", "copy_download_url":"复制下载地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有图片违规" + "hava_error_photo":"有图片违规", + "translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/i18n/ja-JP.json b/i18n/ja-JP.json index 52a1d63..d66be64 100644 --- a/i18n/ja-JP.json +++ b/i18n/ja-JP.json @@ -1226,5 +1226,18 @@ "forward":"转发", "copy_download_url":"复制下载地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有图片违规" + "hava_error_photo":"有图片违规", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/i18n/ko-KR.json b/i18n/ko-KR.json index b70f2d8..dcc2d8e 100644 --- a/i18n/ko-KR.json +++ b/i18n/ko-KR.json @@ -1226,5 +1226,19 @@ "forward":"转发", "copy_download_url":"复制下载地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有图片违规" + "hava_error_photo":"有图片违规", + "translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/i18n/vi-VN.json b/i18n/vi-VN.json index 3937c86..b514a25 100644 --- a/i18n/vi-VN.json +++ b/i18n/vi-VN.json @@ -1226,5 +1226,18 @@ "forward": "转发", "copy_download_url": "复制下载地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有图片违规" + "hava_error_photo":"有图片违规", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/i18n/zh-CN.json b/i18n/zh-CN.json index e10f93a..0308d09 100644 --- a/i18n/zh-CN.json +++ b/i18n/zh-CN.json @@ -1226,5 +1226,19 @@ "forward":"转发", "copy_download_url":"复制下载地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有图片违规" + "hava_error_photo":"有图片违规", + "translation_butler_evaluation_tips2": "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/i18n/zh-HK.json b/i18n/zh-HK.json index 86d8c83..775fc22 100644 --- a/i18n/zh-HK.json +++ b/i18n/zh-HK.json @@ -1226,5 +1226,18 @@ "forward":"转发", "copy_download_url":"複製下載地址", "total_friends_nus":"共/s1位朋友", - "hava_error_photo":"有圖片違規" + "hava_error_photo":"有圖片違規", + "translation_butler_push_order_time": "时间:今天/s1 时长:", + "translation_butler_push_order_time2": "下单时间:今天/s1 等待时长:", + "translation_butler_title3": "大神专属", + "translation_butler_start_receive_order": "开启接单", + "translation_butler_stop_receive_order": "未开启接单", + "translation_butler_stop_tips": "翻译人员无法进入创建订单", + "translation_butler_scenes2": "场景:", + "translation_butler_last_item_start": "[翻译管家服务开始]", + "translation_butler_last_item_end": "[翻译管家服务结束]", + "travel_start": "起点", + "travel_end": "终点", + "translation_butler_order_time_out": "翻译订单超时已被取消" + } \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 37831be..ca53417 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -30,6 +30,8 @@ PODS: - connectivity (0.0.1): - Flutter - Reachability + - device_info (0.0.1): + - Flutter - easy_contact_picker (0.0.1): - Flutter - FBSDKCoreKit (5.13.1): @@ -167,6 +169,7 @@ DEPENDENCIES: - auto_orientation (from `.symlinks/plugins/auto_orientation/ios`) - city_pickers (from `.symlinks/plugins/city_pickers/ios`) - connectivity (from `.symlinks/plugins/connectivity/ios`) + - device_info (from `.symlinks/plugins/device_info/ios`) - easy_contact_picker (from `.symlinks/plugins/easy_contact_picker/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) @@ -249,6 +252,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/city_pickers/ios" connectivity: :path: ".symlinks/plugins/connectivity/ios" + device_info: + :path: ".symlinks/plugins/device_info/ios" easy_contact_picker: :path: ".symlinks/plugins/easy_contact_picker/ios" file_picker: @@ -351,6 +356,7 @@ SPEC CHECKSUMS: Bugly: dbac48b55ad469a97cc4321045cd50df8f63d44f city_pickers: b0370f4c35c201723b5b7fcce10ec29b59d5bc35 connectivity: 6e94255659cc86dcbef1d452ad3e0491bb1b3e75 + device_info: cbf09d2ec12aa7110e0b09fabe54b5bd6c8efe74 easy_contact_picker: 9ab9dc70e8ddde6e76a19ffc482d7bf899868730 FBSDKCoreKit: 8fb98209109fb684937f05d534305edb18c20207 FBSDKLoginKit: c7c6ffd9ca9ea45aee32361840af040ad8f6706a diff --git a/lib/chat/ChatPage.dart b/lib/chat/ChatPage.dart index 50aa02d..2cdf809 100644 --- a/lib/chat/ChatPage.dart +++ b/lib/chat/ChatPage.dart @@ -373,98 +373,110 @@ class _ChatPageState extends State { ]; }))); - return Stack( - children: [ - MultiProvider( - providers: [ - ChangeNotifierProvider(create: (_) => _keyboardIndexProvider), - Provider.value(value: false), - Provider.value(value: widget.friendId), - ], - child: GestureDetector( - onTap: hideKeyBoard, - child: ExtendedTextSelectionPointerHandler( - ///选择文字,消除弹窗 - - builder: (states) { - return Listener( - child: Scaffold( - resizeToAvoidBottomInset: false, - backgroundColor: const Color(0xFFE2E9F1), - appBar: AppBar( - title: Text( - '${Provider.of(context).getRefName(friendInfo.userId, friendInfo.nickName)}', - textScaleFactor: 1.0, - style: TextStyle( - color: Constants.BlackTextColor, - fontSize: 16.47), - ), - leading: CustomUI.buildCustomLeading(context,onTap:(){ - if(isTranslateButler && !isTranslateButlerFinish){ - if(UserData().isTranslateUser){ - showToast('翻译服务未结束不能主动结束'); - }else{ - CustomUI.buildTowConfirm( - context, - '是否提前结束翻译管家服务?', - I18n.of(context).confirm, - (){ - setState(() { - isTranslateButlerFinish=true; - - }); - - MsgHandler.sendEndTransHKOrderReq(); - Navigator.of(context).pop(); - }, - '取消', - (){ Navigator.of(context).pop();}); - } - }else{ - Navigator.of(context).pop(); - } - - }), //todo - titleSpacing: -10, - centerTitle: false, - elevation: 1, - actions: actions), - body: SafeArea( - child: Column( - children: [ - NetStateWidget(), - (isTranslateButler&!isTranslateButlerFinish) - ? _buildTranslationButler() - : Container(), - Expanded(child: _buildMessageList()), - InputBar(sendMsg: sendMsg,isTranslateHK: isTranslateButler,), - ], - ))), - behavior: HitTestBehavior.translucent, - onPointerDown: (value) { - for (var state in states) { - if (!state.containsPosition(value.position)) { - //clear other selection - state.clearSelection(); - } - } - }, - onPointerMove: (value) { - //clear other selection - for (var state in states) { - if (!state.containsPosition(value.position)) { + + + return WillPopScope( + child: Stack( + children: [ + MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => _keyboardIndexProvider), + Provider.value(value: false), + Provider.value(value: widget.friendId), + ], + child: GestureDetector( + onTap: hideKeyBoard, + child: ExtendedTextSelectionPointerHandler( + ///选择文字,消除弹窗 + + builder: (states) { + return Listener( + child: Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFFE2E9F1), + appBar: AppBar( + title: Text( + '${Provider.of(context).getRefName(friendInfo.userId, friendInfo.nickName)}', + textScaleFactor: 1.0, + style: TextStyle( + color: Constants.BlackTextColor, + fontSize: 16.47), + ), + leading: CustomUI.buildCustomLeading(context,onTap:(){ + goBackCheck(); + + }), + titleSpacing: -10, + centerTitle: false, + elevation: 1, + actions: actions), + body: SafeArea( + child: Column( + children: [ + NetStateWidget(), + (isTranslateButler&!isTranslateButlerFinish) + ? _buildTranslationButler() + : Container(), + Expanded(child: _buildMessageList()), + InputBar(sendMsg: sendMsg,isTranslateHK: isTranslateButler,), + ], + ))), + behavior: HitTestBehavior.translucent, + onPointerDown: (value) { + for (var state in states) { + if (!state.containsPosition(value.position)) { + //clear other selection + state.clearSelection(); + } + } + }, + onPointerMove: (value) { //clear other selection - state.clearSelection(); - } - } + for (var state in states) { + if (!state.containsPosition(value.position)) { + //clear other selection + state.clearSelection(); + } + } + }, + ); }, - ); - }, - ))), - isTranslateButler ? getAudioChatView() : Container(), - isTranslateButler ? zoomAudioButton() : Container() - ], - ); + ))), + isTranslateButler ? getAudioChatView() : Container(), + isTranslateButler ? zoomAudioButton() : Container() + ], + ), + onWillPop: () { + goBackCheck(); + return Future.value(true); + }); + } + + + goBackCheck(){ + if(isTranslateButler && !isTranslateButlerFinish){ + if(UserData().isTranslateUser){ + showToast('翻译服务未结束不能主动结束'); + }else{ + CustomUI.buildTowConfirm( + context, + '是否提前结束翻译管家服务?', + I18n.of(context).confirm, + (){ + setState(() { + isTranslateButlerFinish=true; + + }); + + MsgHandler.sendEndTransHKOrderReq(); + Navigator.of(context).pop(); + }, + '取消', + (){ Navigator.of(context).pop();}); + } + }else{ + Navigator.of(context).pop(); + } } Widget getAudioChatView() { @@ -510,7 +522,7 @@ class _ChatPageState extends State { bool isShowZoomButton = true; GlobalKey mykey = GlobalKey(); - double dx = Screen.width , dy = Screen.height/2; + double dx = 0 , dy = 0; double zoomButtonSize = 60; void dragEvent(DragUpdateDetails details) { diff --git a/lib/chat/ChatPageItem.dart b/lib/chat/ChatPageItem.dart index 83e6688..509db9c 100644 --- a/lib/chat/ChatPageItem.dart +++ b/lib/chat/ChatPageItem.dart @@ -1543,6 +1543,9 @@ class _ChatPageItemState extends State Widget _buildServiceCard(bool isStart, Function callBack) { + + + String endStr = UserData().isTranslateUser?I18n.of(context).translation_butler_evaluation_tips2:I18n.of(context).translation_butler_evaluation_tips; return Container( alignment: Alignment.center, @@ -1558,28 +1561,28 @@ class _ChatPageItemState extends State padding: EdgeInsets.only(left: 10, right: 10, top: 15, bottom: 15), child: Row( children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - isStart - ? I18n.of(context).translation_butler_start_service - : I18n.of(context).translation_butler_service_end, - textScaleFactor: 1.0, - style: TextStyle( - color: AppColors.NewAppbarTextColor, fontSize: 15), - ), - Text( - isStart - ? I18n.of(context).translation_butler_start_tips - : I18n.of(context).translation_butler_evaluation_tips, - textScaleFactor: 1.0, - style: TextStyle( - color: Color(0xFF797979), fontSize: 13), - ) - ], - ), - isStart + Expanded(child: Container( child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + isStart + ? I18n.of(context).translation_butler_start_service + : I18n.of(context).translation_butler_service_end, + textScaleFactor: 1.0, + style: TextStyle( + color: AppColors.NewAppbarTextColor, fontSize: 15), + ), + Text( + isStart + ? I18n.of(context).translation_butler_start_tips + : endStr, + textScaleFactor: 1.0, + style: TextStyle( + color: Color(0xFF797979), fontSize: 13), + ), + ], + ),)), + (isStart||UserData().isTranslateUser) ? Container() : Expanded( child: Container( diff --git a/lib/data/translate_hk_data_mgr.dart b/lib/data/translate_hk_data_mgr.dart index 5744bad..c367273 100644 --- a/lib/data/translate_hk_data_mgr.dart +++ b/lib/data/translate_hk_data_mgr.dart @@ -7,6 +7,7 @@ class TranslateOrder{ int tLanguage; int scenes; String desc; + String userName; } class TranslateHKMgr { @@ -25,6 +26,7 @@ class TranslateHKMgr { String orderId; ///用户发起的订单Id int waitNum=0; + int startWaitTime=0; bool isUser=false; ///是用户或者翻译官 diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 1f762a6..723618b 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -2489,6 +2489,32 @@ class I18n implements WidgetsLocalizations { String get total_friends_nus => "共/s1位朋友"; /// "有图片违规" String get hava_error_photo => "有图片违规"; + /// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知" + String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"; + /// "时间:今天/s1 时长:" + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + String get travel_start => "起点"; + /// "终点" + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + String get translation_butler_order_time_out => "翻译订单超时已被取消"; } class _I18n_en_US extends I18n { @@ -6185,6 +6211,42 @@ class _I18n_vi_VN extends I18n { /// "有图片违规" @override String get hava_error_photo => "有图片违规"; + /// "时间:今天/s1 时长:" + @override + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + @override + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + @override + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + @override + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + @override + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + @override + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + @override + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + @override + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + @override + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + @override + String get travel_start => "起点"; + /// "终点" + @override + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + @override + String get translation_butler_order_time_out => "翻译订单超时已被取消"; @override TextDirection get textDirection => TextDirection.ltr; @@ -9877,6 +9939,42 @@ class _I18n_zh_HK extends I18n { /// "有圖片違規" @override String get hava_error_photo => "有圖片違規"; + /// "时间:今天/s1 时长:" + @override + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + @override + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + @override + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + @override + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + @override + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + @override + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + @override + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + @override + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + @override + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + @override + String get travel_start => "起点"; + /// "终点" + @override + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + @override + String get translation_butler_order_time_out => "翻译订单超时已被取消"; @override TextDirection get textDirection => TextDirection.ltr; @@ -13569,6 +13667,45 @@ class _I18n_zh_CN extends _I18n_zh_HK { /// "有图片违规" @override String get hava_error_photo => "有图片违规"; + /// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知" + @override + String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"; + /// "时间:今天/s1 时长:" + @override + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + @override + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + @override + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + @override + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + @override + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + @override + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + @override + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + @override + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + @override + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + @override + String get travel_start => "起点"; + /// "终点" + @override + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + @override + String get translation_butler_order_time_out => "翻译订单超时已被取消"; @override TextDirection get textDirection => TextDirection.ltr; @@ -14795,9 +14932,9 @@ class _I18n_ko_KR extends I18n { /// "그의 사교 아이디" @override String get his_account => "그의 사교 아이디"; - /// "복제" + /// "복사" @override - String get copy => "복제"; + String get copy => "복사"; /// "내 사교 아이디를 보내기" @override String get send_account => "내 사교 아이디를 보내기"; @@ -15155,12 +15292,12 @@ class _I18n_ko_KR extends I18n { /// "앱을 친구에게 공유하다" @override String get share_app => "앱을 친구에게 공유하다"; - /// "질문이 있으니까 도움이 필요하다" + /// "질문&도움" @override - String get need_help => "질문이 있으니까 도움이 필요하다"; - /// "고객을 연락하다" + String get need_help => "질문&도움"; + /// "고객센터" @override - String get need_help2 => "고객을 연락하다"; + String get need_help2 => "고객센터"; /// "서비스 효율을 높이기 위해서 아래에 문제가 있으면 숫자를 바로 답장하십시오!" @override String get need_help3 => "서비스 효율을 높이기 위해서 아래에 문제가 있으면 숫자를 바로 답장하십시오!"; @@ -17261,6 +17398,45 @@ class _I18n_ko_KR extends I18n { /// "有图片违规" @override String get hava_error_photo => "有图片违规"; + /// "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知" + @override + String get translation_butler_evaluation_tips2 => "翻译服务已结束,辛苦你了。请保持在线,留意新订单通知"; + /// "时间:今天/s1 时长:" + @override + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + @override + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + @override + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + @override + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + @override + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + @override + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + @override + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + @override + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + @override + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + @override + String get travel_start => "起点"; + /// "终点" + @override + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + @override + String get translation_butler_order_time_out => "翻译订单超时已被取消"; @override TextDirection get textDirection => TextDirection.ltr; @@ -20953,6 +21129,42 @@ class _I18n_ja_JP extends I18n { /// "有图片违规" @override String get hava_error_photo => "有图片违规"; + /// "时间:今天/s1 时长:" + @override + String get translation_butler_push_order_time => "时间:今天/s1 时长:"; + /// "下单时间:今天/s1 等待时长:" + @override + String get translation_butler_push_order_time2 => "下单时间:今天/s1 等待时长:"; + /// "大神专属" + @override + String get translation_butler_title3 => "大神专属"; + /// "开启接单" + @override + String get translation_butler_start_receive_order => "开启接单"; + /// "未开启接单" + @override + String get translation_butler_stop_receive_order => "未开启接单"; + /// "翻译人员无法进入创建订单" + @override + String get translation_butler_stop_tips => "翻译人员无法进入创建订单"; + /// "场景:" + @override + String get translation_butler_scenes2 => "场景:"; + /// "[翻译管家服务开始]" + @override + String get translation_butler_last_item_start => "[翻译管家服务开始]"; + /// "[翻译管家服务结束]" + @override + String get translation_butler_last_item_end => "[翻译管家服务结束]"; + /// "起点" + @override + String get travel_start => "起点"; + /// "终点" + @override + String get travel_end => "终点"; + /// "翻译订单超时已被取消" + @override + String get translation_butler_order_time_out => "翻译订单超时已被取消"; @override TextDirection get textDirection => TextDirection.ltr; diff --git a/lib/home/homeMain.dart b/lib/home/homeMain.dart index f4cb2bc..5c7c622 100644 --- a/lib/home/homeMain.dart +++ b/lib/home/homeMain.dart @@ -279,7 +279,7 @@ class _HomeMainState extends State { TranslateOrder order = data; - CustomUI.buildTranslationHelperOrderDialog(context,false,orderId: order.orderId,scenes: order.scenes,desc: order.desc,createTime: order.createTime); + CustomUI.buildTranslationHelperOrderDialog(context,false,orderId: order.orderId,scenes: order.scenes,desc: order.desc,createTime: order.createTime,userName: order.userName); } startTranslateHKChat(var friendID){ diff --git a/lib/home/realtimehelper/real_time_helper_page.dart b/lib/home/realtimehelper/real_time_helper_page.dart index d25ef1e..11545d5 100644 --- a/lib/home/realtimehelper/real_time_helper_page.dart +++ b/lib/home/realtimehelper/real_time_helper_page.dart @@ -3,7 +3,10 @@ import 'package:chat/home/realtimehelper/translation_butler_page.dart'; import 'package:chat/home/realtimehelper/travel_butler_page.dart'; import 'package:chat/models/group_info_model.dart'; import 'package:chat/utils/HttpUtil.dart'; +import 'package:chat/utils/MessageMgr.dart'; +import 'package:chat/utils/TokenMgr.dart'; import 'package:chat/utils/screen.dart'; +import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:oktoast/oktoast.dart'; @@ -25,19 +28,64 @@ class RealTimeHelperPage extends StatefulWidget { class RealTimeHelperPageState extends State { - bool isTranslateHKLogin = true; + bool isTranslateHKLogin = false; + + bool isReady=false; @override void initState() { super.initState(); + MessageMgr().on('update_system',refresh); + WidgetsBinding.instance.addPostFrameCallback((_) { + isTranslateAndStatus(); + }); + } + refresh(args){ + isTranslateAndStatus(); + } + + + ///实时帮-翻译人员状态,是否是翻译人员 + isTranslateAndStatus() async { + Map data = { + "userId": UserData().basicInfo.userId, + }; + data['sign'] = TokenMgr().getSign(data); + Response res = await HttpUtil().post('steward/userStatus', data: data); + + if (res == null) { + print('请求异常'); + return; + } + var resData = res.data; + if (resData['code'] == 0) { + isReady=true; + print('xxxdksldsd $resData'); + UserData().isTranslateUser = resData['data']['isTranslateUser'] == 1; + int status = resData['data']['Status'] ; + + if(status==1){ + isTranslateHKLogin=true; + } + + setState(() { + }); + print('翻译人员状态 status $status isTranslateUser ${UserData().isTranslateUser} '); + }else{ + print('获取翻译人员翻译人员状态 失败 ${resData['msg']}'); + } + } + + @override void dispose() { -// MessageMgr().off('Update Group Info', updateGroupInfo); super.dispose(); + MessageMgr().on('update_system',refresh); } + @override Widget build(BuildContext context) { Widget appBar = AppBar( @@ -80,7 +128,7 @@ class RealTimeHelperPageState extends State { children: [ Container( alignment: Alignment.center, - child: fixedText('大神专属', color: Colors.white, fontSize: 21), + child: fixedText(I18n.of(context).translation_butler_title3, color: Colors.white, fontSize: 21), ), UnconstrainedBox(child: InkWell(onTap: (){ @@ -99,16 +147,16 @@ class RealTimeHelperPageState extends State { decoration: BoxDecoration( border: Border.all(color: isTranslateHKLogin?Color(0xFFFEE645):Colors.white, width: 1), borderRadius: BorderRadius.circular(11)), - child: fixedText(isTranslateHKLogin?'开启接单':'未开启接单', color: isTranslateHKLogin?Color(0xFFFEE645):Colors.white, fontSize: 15), + child: fixedText(isTranslateHKLogin?I18n.of(context).translation_butler_start_receive_order:I18n.of(context).translation_butler_stop_receive_order, color: isTranslateHKLogin?Color(0xFFFEE645):Colors.white, fontSize: 15), ),),), Container( padding: EdgeInsets.only(left: 13,top: 20), - child: fixedText('实时帮', color: Colors.white, fontSize: 22,fontWeight: FontWeight.w700), + child: fixedText(I18n.of(context).real_time_helper, color: Colors.white, fontSize: 22,fontWeight: FontWeight.w700), ), helperCard(I18n.of(context).translation_butler, R.assetsImagesImgTranslationButler, () { if (UserData().isTranslateUser) { - showToast('翻译人员无法进入创建订单'); + showToast(I18n.of(context).translation_butler_stop_tips); } else { Navigator.of(context).push( MaterialPageRoute( @@ -199,7 +247,7 @@ class RealTimeHelperPageState extends State { ), ), ), - onTap: callBack, + onTap: isReady?callBack:null, ); } } diff --git a/lib/home/realtimehelper/translation_butler_page.dart b/lib/home/realtimehelper/translation_butler_page.dart index 76936ca..e7de360 100644 --- a/lib/home/realtimehelper/translation_butler_page.dart +++ b/lib/home/realtimehelper/translation_butler_page.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:ffi'; import 'package:chat/data/UserData.dart'; import 'package:chat/data/translate_hk_data_mgr.dart'; @@ -84,6 +85,12 @@ class TranslationButlerPageState extends State { setState(() {}); } + ///订单没有人接,超时,服务器会发送取消订单通知 + cancelOrder(args){ + TranslateHKMgr().orderStatus = TranslateHKMgr.ORDER_STATUS_EMPTY; + refreshOrder(null); + } + @override void initState() { super.initState(); @@ -94,7 +101,7 @@ class TranslationButlerPageState extends State { initData(); MessageMgr().on(MessageMgr.TRANSLATE_HK_REFRESH_ORDER, refreshOrder); - + MessageMgr().on(MessageMgr.TRANSLATE_HK_CANCEL_ORDER, cancelOrder); WidgetsBinding.instance.addPostFrameCallback((_) { @@ -143,7 +150,7 @@ class TranslationButlerPageState extends State { return; } isCreatingOrder=true; - + TranslateHKMgr().startWaitTime=DateTime.now().millisecondsSinceEpoch; MsgHandler.sendCreateTranslateOrder(langList[curSourceLang].key,langList[curToLang].key,scenesList[curScenes].key,extraMsg); extraMsg=''; @@ -176,6 +183,7 @@ class TranslationButlerPageState extends State { void dispose() { waitTimer?.cancel(); MessageMgr().off(MessageMgr.TRANSLATE_HK_REFRESH_ORDER, refreshOrder); + MessageMgr().off(MessageMgr.TRANSLATE_HK_CANCEL_ORDER, cancelOrder); if (orderStatus==TranslateHKMgr.ORDER_STATUS_WAITING && timeStamp != null) { print('保存时间戳$timeStamp'); SPUtils.save(Constants.TranslationHelper, timeStamp.toString()); diff --git a/lib/home/realtimehelper/translation_order_push_dialog.dart b/lib/home/realtimehelper/translation_order_push_dialog.dart index 5e37a87..fe42c31 100644 --- a/lib/home/realtimehelper/translation_order_push_dialog.dart +++ b/lib/home/realtimehelper/translation_order_push_dialog.dart @@ -1,3 +1,4 @@ +import 'package:chat/data/UserData.dart'; import 'package:chat/data/constants.dart'; import 'package:chat/data/translate_hk_data_mgr.dart'; import 'package:chat/generated/i18n.dart'; @@ -18,13 +19,15 @@ class TranslateOrderPushPage extends StatefulWidget { String desc; Function userStartChat; int createTime; + String userName; TranslateOrderPushPage(this.isUser, {this.orderId, this.scenes, this.desc, this.userStartChat, - this.createTime}); + this.createTime, + this.userName}); @override State createState() { @@ -59,6 +62,10 @@ class TranslateOrderPushPageState extends State { super.didChangeDependencies(); } + String withZero(int num){ + return num<10?'0$num':'$num'; + } + @override Widget build(BuildContext context) { // TODO: implement build @@ -69,8 +76,19 @@ class TranslateOrderPushPageState extends State { I18n.of(context).translation_scenes_4, ]; - String translateStr= '时间:今天11:45 时长:5${I18n.of(context).minute}'; - String userStr= '下单时间:今天11:45 等待时长:10分钟'; + DateTime date = UserData().isTranslateUser?DateTime.now():DateTime.fromMillisecondsSinceEpoch(TranslateHKMgr().startWaitTime); + String time = '${withZero(date.hour)}:${withZero(date.minute)}'; + + int second = (DateTime.now().millisecondsSinceEpoch-TranslateHKMgr().startWaitTime)~/1000; + String userWaitStr ; + if( second>60){ + userWaitStr = (second~/60).toString()+I18n.of(context).minute; + }else{ + userWaitStr = second.toString()+I18n.of(context).second; + } + + String translateStr= I18n.of(context).translation_butler_push_order_time.replaceAll('/s1', time)+'5${I18n.of(context).minute}'; + String userStr= I18n.of(context).translation_butler_push_order_time2.replaceAll('/s1', time)+userWaitStr; return UnconstrainedBox( alignment: Alignment.topCenter, @@ -109,7 +127,7 @@ class TranslateOrderPushPageState extends State { ), Text( I18n.of(context).translation_butler_dialog_order.replaceAll( - '/s1', widget.isUser ? I18n.of(context).you : 'xxx'), + '/s1', widget.isUser ? I18n.of(context).you : widget.userName), textScaleFactor: 1.0, textAlign: TextAlign.left, style: TextStyle( @@ -128,7 +146,7 @@ class TranslateOrderPushPageState extends State { widget.isUser ? Container() : Text( - '场景:${scenesList[widget.scenes]}', + '${I18n.of(context).translation_butler_scenes2}:${scenesList[widget.scenes]}', textScaleFactor: 1.0, textAlign: TextAlign.left, style: @@ -138,7 +156,7 @@ class TranslateOrderPushPageState extends State { widget.isUser ? Container() : Text( - '更多描述:${widget.desc}', + '${I18n.of(context).translation_more_desc}:${widget.desc}', textScaleFactor: 1.0, textAlign: TextAlign.left, style: diff --git a/lib/home/realtimehelper/travel_butler_page.dart b/lib/home/realtimehelper/travel_butler_page.dart index 23b90e3..75b55bd 100644 --- a/lib/home/realtimehelper/travel_butler_page.dart +++ b/lib/home/realtimehelper/travel_butler_page.dart @@ -247,7 +247,7 @@ class TravelButlerPageState extends State { Widget positionLayout(bool isStart){ - String str = isStart?'我的位置':'你要去哪儿'; + String str = isStart?I18n.of(context).travel_my_location:I18n.of(context).travel_go_where; if(isStart && startResult!=null && startResult.address!=null){ str = startResult.address; }else if (!isStart && endResult!=null &&endResult.address!=null){ @@ -255,7 +255,7 @@ class TravelButlerPageState extends State { } return Container(height:50,child: Row(mainAxisSize: MainAxisSize.max, children: [ Expanded(child: Container( child: fixedText(str,color: Colors.black,fontSize: 16),)), - fixedText(isStart?'起点':'终点',color: Color(0xff797979),fontSize: 14) + fixedText(isStart?I18n.of(context).travel_start:I18n.of(context).travel_end,color: Color(0xff797979),fontSize: 14) ],),); diff --git a/lib/models/last_msg_description.dart b/lib/models/last_msg_description.dart index 79534d0..f015afb 100644 --- a/lib/models/last_msg_description.dart +++ b/lib/models/last_msg_description.dart @@ -140,15 +140,14 @@ class _LastMsgDescriptionState extends State { if(widget.lastMessageModel.channelType==ChatChannelType.Session.value){ ///翻译管家的 通知消息 - desc = '翻译管家---'; print('翻译管家的 通知消息-'); TransHKChatNotice res = TransHKChatNotice.fromBuffer(widget.lastMessageModel.msgContent); if(res.noticeType==TransHKChatNoticeType.StartChat){ - return '[翻译管家服务开始]'; + desc = I18n.of(Constants.getCurrentContext()).translation_butler_last_item_start; }else if(res.noticeType==TransHKChatNoticeType.EndChat){ - return '[翻译管家服务结束]'; + desc = I18n.of(Constants.getCurrentContext()).translation_butler_last_item_end; }else{ - return ''; + desc = ''; } diff --git a/lib/proto/transhousekeeper.pb.dart b/lib/proto/transhousekeeper.pb.dart index e894ef5..927f703 100644 --- a/lib/proto/transhousekeeper.pb.dart +++ b/lib/proto/transhousekeeper.pb.dart @@ -263,10 +263,11 @@ class EndTransHKOrderRes extends $pb.GeneratedMessage { class DeliveryTransHKOrderPush extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo('DeliveryTransHKOrderPush', package: const $pb.PackageName('yl_pb')) ..aOS(1, 'orderId') - ..aInt64(2, 'createTime') - ..a<$core.int>(3, 'tLanguage', $pb.PbFieldType.OU3) - ..a<$core.int>(4, 'scenes', $pb.PbFieldType.O3) - ..aOS(5, 'desc') + ..a<$0.BaseUserInfo>(2, 'employer', $pb.PbFieldType.OM, $0.BaseUserInfo.getDefault, $0.BaseUserInfo.create) + ..aInt64(3, 'createTime') + ..a<$core.int>(4, 'tLanguage', $pb.PbFieldType.OU3) + ..a<$core.int>(5, 'scenes', $pb.PbFieldType.O3) + ..aOS(6, 'desc') ..hasRequiredFields = false ; @@ -289,25 +290,30 @@ class DeliveryTransHKOrderPush extends $pb.GeneratedMessage { $core.bool hasOrderId() => $_has(0); void clearOrderId() => clearField(1); - Int64 get createTime => $_getI64(1); - set createTime(Int64 v) { $_setInt64(1, v); } - $core.bool hasCreateTime() => $_has(1); - void clearCreateTime() => clearField(2); - - $core.int get tLanguage => $_get(2, 0); - set tLanguage($core.int v) { $_setUnsignedInt32(2, v); } - $core.bool hasTLanguage() => $_has(2); - void clearTLanguage() => clearField(3); - - $core.int get scenes => $_get(3, 0); - set scenes($core.int v) { $_setSignedInt32(3, v); } - $core.bool hasScenes() => $_has(3); - void clearScenes() => clearField(4); - - $core.String get desc => $_getS(4, ''); - set desc($core.String v) { $_setString(4, v); } - $core.bool hasDesc() => $_has(4); - void clearDesc() => clearField(5); + $0.BaseUserInfo get employer => $_getN(1); + set employer($0.BaseUserInfo v) { setField(2, v); } + $core.bool hasEmployer() => $_has(1); + void clearEmployer() => clearField(2); + + Int64 get createTime => $_getI64(2); + set createTime(Int64 v) { $_setInt64(2, v); } + $core.bool hasCreateTime() => $_has(2); + void clearCreateTime() => clearField(3); + + $core.int get tLanguage => $_get(3, 0); + set tLanguage($core.int v) { $_setUnsignedInt32(3, v); } + $core.bool hasTLanguage() => $_has(3); + void clearTLanguage() => clearField(4); + + $core.int get scenes => $_get(4, 0); + set scenes($core.int v) { $_setSignedInt32(4, v); } + $core.bool hasScenes() => $_has(4); + void clearScenes() => clearField(5); + + $core.String get desc => $_getS(5, ''); + set desc($core.String v) { $_setString(5, v); } + $core.bool hasDesc() => $_has(5); + void clearDesc() => clearField(6); } class CancellationTransHKOrderPush extends $pb.GeneratedMessage { diff --git a/lib/proto/transhousekeeper.pbjson.dart b/lib/proto/transhousekeeper.pbjson.dart index b05cd9a..39c5d9b 100644 --- a/lib/proto/transhousekeeper.pbjson.dart +++ b/lib/proto/transhousekeeper.pbjson.dart @@ -90,10 +90,11 @@ const DeliveryTransHKOrderPush$json = const { '1': 'DeliveryTransHKOrderPush', '2': const [ const {'1': 'OrderId', '3': 1, '4': 1, '5': 9, '10': 'OrderId'}, - const {'1': 'CreateTime', '3': 2, '4': 1, '5': 3, '10': 'CreateTime'}, - const {'1': 'TLanguage', '3': 3, '4': 1, '5': 13, '10': 'TLanguage'}, - const {'1': 'Scenes', '3': 4, '4': 1, '5': 5, '10': 'Scenes'}, - const {'1': 'Desc', '3': 5, '4': 1, '5': 9, '10': 'Desc'}, + const {'1': 'Employer', '3': 2, '4': 1, '5': 11, '6': '.yl_pb.BaseUserInfo', '10': 'Employer'}, + const {'1': 'CreateTime', '3': 3, '4': 1, '5': 3, '10': 'CreateTime'}, + const {'1': 'TLanguage', '3': 4, '4': 1, '5': 13, '10': 'TLanguage'}, + const {'1': 'Scenes', '3': 5, '4': 1, '5': 5, '10': 'Scenes'}, + const {'1': 'Desc', '3': 6, '4': 1, '5': 9, '10': 'Desc'}, ], }; diff --git a/lib/proto/transhousekeeper.proto b/lib/proto/transhousekeeper.proto index 560662f..0fa63a7 100644 --- a/lib/proto/transhousekeeper.proto +++ b/lib/proto/transhousekeeper.proto @@ -68,10 +68,11 @@ message EndTransHKOrderRes{ //Msg= 20 派送订单推送 message DeliveryTransHKOrderPush { optional string OrderId =1; //订单号 - optional int64 CreateTime = 2; //创建时间 - optional uint32 TLanguage =3; //翻译语言 - optional int32 Scenes =4; //场景 - optional string Desc =5; //描述 + optional BaseUserInfo Employer = 2; //雇主 + optional int64 CreateTime = 3; //创建时间 + optional uint32 TLanguage =4; //翻译语言 + optional int32 Scenes =5; //场景 + optional string Desc =6; //描述 } //Msg= 21 订单取消推送 diff --git a/lib/utils/CustomUI.dart b/lib/utils/CustomUI.dart index 496400c..13bebaa 100644 --- a/lib/utils/CustomUI.dart +++ b/lib/utils/CustomUI.dart @@ -1267,11 +1267,11 @@ class CustomUI { ///** isUser 是否是用户,或为 翻译 static void buildTranslationHelperOrderDialog( BuildContext context, bool isUser, - {String orderId, int scenes = 0, String desc,Function userStartChat,int createTime}) { + {String orderId, int scenes = 0, String desc,Function userStartChat,int createTime,String userName}) { Navigator.of(context).push(TutorialOverlay( - child: TranslateOrderPushPage(isUser,orderId: orderId,scenes: scenes,desc: desc,userStartChat: userStartChat,createTime: createTime,), + child: TranslateOrderPushPage(isUser,orderId: orderId,scenes: scenes,desc: desc,userStartChat: userStartChat,createTime: createTime,userName: userName,), )); } diff --git a/lib/utils/HttpUtil.dart b/lib/utils/HttpUtil.dart index 043ba06..f4a5a37 100644 --- a/lib/utils/HttpUtil.dart +++ b/lib/utils/HttpUtil.dart @@ -1502,6 +1502,7 @@ String mobileType = ''; "type": isLogin?1:2, }; data['sign'] = TokenMgr().getSign(data); + print('请求data : $data'); Response res = await HttpUtil().post('steward/loginRecord', data: data); if (res == null) { @@ -1516,4 +1517,8 @@ String mobileType = ''; print('翻译人员上线、下线 失败 ${resData['msg']}'); } } + + + + } diff --git a/lib/utils/msgHandler.dart b/lib/utils/msgHandler.dart index 50bc660..0359296 100644 --- a/lib/utils/msgHandler.dart +++ b/lib/utils/msgHandler.dart @@ -1342,6 +1342,7 @@ class MsgHandler { order.createTime=res.createTime.toInt(); order.tLanguage=res.tLanguage.toInt(); order.scenes=res.scenes.toInt(); + order.userName = res.employer.niceName; TranslateHKMgr().order = order; MessageMgr().emit(MessageMgr.TRANSLATE_HK_RECEIVE_ORDER, order); @@ -1356,7 +1357,7 @@ class MsgHandler { TranslateHKMgr().order = null; MessageMgr().emit(MessageMgr.TRANSLATE_HK_CANCEL_ORDER); - showToast('派送订单已被取消'); + showToast(I18n.of(context).translation_butler_order_time_out); }