Przeglądaj źródła

[new]增加上传进度

zk 1 rok temu
rodzic
commit
6dd1369794

+ 4 - 6
lib/data/api/atmob_file_api.c.dart

@@ -33,12 +33,10 @@ class _AtmobFileApi implements AtmobFileApi {
       extra: _extra,
       contentType: 'multipart/form-data',
     )
-            .compose(
-              _dio.options,
-              '/project/secretary/v1/talk/generate',
-              queryParameters: queryParameters,
-              data: _data,
-            )
+            .compose(_dio.options, '/project/secretary/v1/talk/generate',
+                queryParameters: queryParameters,
+                data: _data,
+                onSendProgress: onSendProgress)
             .copyWith(
                 baseUrl: _combineBaseUrls(
               _dio.options.baseUrl,

+ 0 - 1
lib/data/api/atmob_file_api.dart

@@ -8,7 +8,6 @@ import 'network_module.dart';
 
 part 'atmob_file_api.c.dart';
 
-@RestApi()
 abstract class AtmobFileApi {
   factory AtmobFileApi(Dio dio, {String baseUrl}) = _AtmobFileApi;
 

+ 5 - 1
lib/data/consts/constants.dart

@@ -7,7 +7,7 @@ import '../../utils/common_utils.dart';
 class Constants {
   Constants._();
 
-  static const String env = envProd;
+  static const String env = envTest;
 
   static const String envDev = 'dev';
 
@@ -34,6 +34,10 @@ class Constants {
   static const String appDefaultChannel = "Android";
   static const int appDefaultAppId = 0;
   static const int appDefaultTgPlatformId = 0;
+
+  static bool isProdEnv() {
+    return Constants.env == Constants.envProd;
+  }
 }
 
 String getBaseUrl() {

+ 2 - 0
lib/data/repositories/talk_repository.dart

@@ -5,6 +5,7 @@ import 'package:electronic_assistant/data/api/atmob_file_api.dart';
 import 'package:electronic_assistant/data/api/request/talk_create_request.dart';
 import 'package:electronic_assistant/data/api/request/talk_delete_request.dart';
 import 'package:electronic_assistant/data/api/request/talk_file_request.dart';
+import 'package:flutter/cupertino.dart';
 import 'package:get/get.dart';
 
 import '../../utils/http_handler.dart';
@@ -144,6 +145,7 @@ class TalkRepository {
 
   Future<String> uploadTalkFile(String talkId, double duration, File file) {
     _uploadingTalkIds.add(talkId);
+    _uploadingTalkProgress[talkId] = RxDouble(0);
     return atmobFileApi
         .uploadTalkFile(TalkFileRequest(talkId, duration, file: file).toJson(),
             onSendProgress: (count, total) {

+ 9 - 0
lib/main.dart

@@ -9,6 +9,7 @@ import 'package:electronic_assistant/sdk/gravity/gravity_helper.dart';
 import 'package:electronic_assistant/utils/app_info_util.dart';
 import 'package:electronic_assistant/device/device_info_util.dart';
 import 'package:electronic_assistant/utils/mmkv_util.dart';
+import 'package:electronic_assistant/utils/toast_util.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_foreground_task/flutter_foreground_task.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
@@ -36,9 +37,17 @@ void main() async {
   //初始化
   await initAfterGrant();
 
+  //檢查地址
+  checkEnv();
   runApp(const MyApp());
 }
 
+void checkEnv() {
+  if (!Constants.isProdEnv()) {
+    ToastUtil.showToast('不是正式环境!!!');
+  }
+}
+
 initChannel() async {
   await AtmobChannelReader.default4Test(Constants.appDefaultChannel,
       Constants.appDefaultTgPlatformId, Constants.appDefaultAppId);

+ 11 - 4
lib/module/talk/common_view.dart

@@ -37,7 +37,7 @@ Widget getAddAgendaView(String addTxt, {VoidCallback? onClick}) {
   );
 }
 
-Widget getTalkUploadingView() {
+Widget getTalkUploadingView(RxDouble progress) {
   return SizedBox(
     width: double.infinity,
     child: Column(
@@ -47,10 +47,17 @@ Widget getTalkUploadingView() {
             width: 100.w,
             height: 100.w,
             child: Assets.anim.talkAnalyse.image()),
-        SizedBox(height: 12.h),
-        Text(StringName.talkUploadingTips.tr,
+        SizedBox(height: 3.h),
+        Text('谈话上传中',
             style:
-                TextStyle(fontSize: 14.sp, color: ColorName.secondaryTextColor))
+                TextStyle(fontSize: 15.sp, color: ColorName.primaryTextColor)),
+        SizedBox(height: 3.h),
+        Obx(() {
+          return Text(
+              '谈话已上传${(progress.value * 100).toFormattedString(1)}%,请稍后查看...',
+              style: TextStyle(
+                  fontSize: 12.sp, color: ColorName.secondaryTextColor));
+        })
       ],
     ),
   );

+ 4 - 0
lib/module/talk/controller.dart

@@ -118,6 +118,10 @@ class TalkController extends BaseController {
     eventReport(EventId.event_101001, params: {EventId.id: eventTag});
   }
 
+  RxDouble getUploadingProgress() {
+    return talkRepository.getUploadProgress(talkBean.value!.id);
+  }
+
   void eventReport(String eventId, {Map<String, dynamic>? params}) {
     if (talkBean.value == null || talkBean.value?.isExample == true) {
       return;

+ 1 - 1
lib/module/talk/view.dart

@@ -210,7 +210,7 @@ class TalkPage extends BasePage<TalkController> {
   }
 
   Widget buildElectricUploading() {
-    return getTalkUploadingView();
+    return getTalkUploadingView(controller.getUploadingProgress());
   }
 
   Widget buildTabContentView() {