Browse Source

[new]生成成功弹窗提醒

zk 1 year ago
parent
commit
887191f320
2 changed files with 60 additions and 1 deletions
  1. 5 1
      lib/data/repositories/task_repository.dart
  2. 55 0
      lib/dialog/analyse_status_dialog.dart

+ 5 - 1
lib/data/repositories/task_repository.dart

@@ -8,6 +8,8 @@ import 'package:electronic_assistant/utils/async_util.dart';
 import 'package:electronic_assistant/utils/cancel_future.dart';
 import 'package:electronic_assistant/utils/toast_util.dart';
 import 'package:flutter/cupertino.dart';
+import '../../dialog/analyse_status_dialog.dart';
+import '../../module/talk/view.dart';
 import '../../utils/http_handler.dart';
 import '../api/request/talk_query_request.dart';
 import '../api/response/tasks_running_response.dart';
@@ -103,7 +105,9 @@ class TaskRepository {
     talkRepository.renovateTalkData(element);
     if (element.status.value == TalkStatus.analysisSuccess) {
       debugPrint('生成成功-${element.id}');
-      ToastUtil.showToast('生成成功');
+      showAnalyseSuccessDialog(onViewClick: () {
+        TalkPage.start(element);
+      });
       agendaRepository.requestHomeAgendaData();
     } else if (element.status.value == TalkStatus.analysisFail) {
       debugPrint('生成失败-${element.id}');

+ 55 - 0
lib/dialog/analyse_status_dialog.dart

@@ -0,0 +1,55 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
+import 'package:get/get.dart';
+
+import '../resource/colors.gen.dart';
+import '../resource/string.gen.dart';
+
+showAnalyseSuccessDialog({VoidCallback? onViewClick}) async {
+  const String tag = 'showAnalyseSuccessDialog';
+  SmartDialog.show(
+      tag: tag,
+      permanent: true,
+      clickMaskDismiss: false,
+      usePenetrate: true,
+      maskColor: Colors.transparent,
+      alignment: const Alignment(0, 0.68),
+      builder: (_) => GestureDetector(
+            onTap: () {
+              SmartDialog.dismiss(tag: tag, force: true);
+              onViewClick?.call();
+            },
+            child: Container(
+              decoration: BoxDecoration(
+                color: ColorName.black70,
+                borderRadius: BorderRadius.circular(8),
+              ),
+              padding: EdgeInsets.symmetric(horizontal: 18.w, vertical: 8.w),
+              child: IntrinsicWidth(
+                child: Row(
+                  children: [
+                    Text(StringName.talkAnalysisSuccess.tr,
+                        style:
+                            TextStyle(fontSize: 14.sp, color: ColorName.white)),
+                    SizedBox(width: 10.w),
+                    Container(
+                        decoration: BoxDecoration(
+                          color: ColorName.colorPrimary,
+                          borderRadius: BorderRadius.circular(6),
+                        ),
+                        padding: EdgeInsets.symmetric(
+                            horizontal: 12.w, vertical: 4.w),
+                        child: Text(
+                          StringName.talkAnalysisSuccessBtnTxt.tr,
+                          style: TextStyle(
+                              fontSize: 13.sp, color: ColorName.white),
+                        ))
+                  ],
+                ),
+              ),
+            ),
+          ));
+  await Future.delayed(const Duration(seconds: 5));
+  SmartDialog.dismiss(tag: tag, force: true);
+}