Browse Source

[fix]亲密度分析,步骤卡片UI调整

hezihao 7 months ago
parent
commit
40ce120c90

+ 6 - 0
lib/data/consts/constants.dart

@@ -36,6 +36,12 @@ class Constants {
   static const String appChannelId = "app_channel_id";
   static const String appTgPlatformId = "app_tg_platform_id";
 
+  /// 上传九宫格,最大格子数量
+  static const int uploadNineGridMaxCount = 9;
+
+  /// 上传九宫格,一列多少个
+  static const int uploadNineGridCrossAxisCount = 3;
+
   static const String keyIsLogin = 'keyIsLogin';
   static const String keyIsMember = 'keyIsMember';
   //系统键盘选中的键盘

+ 9 - 4
lib/module/intimacy_analyse/intimacy_analyse_upload/intimacy_analyse_upload_page.dart

@@ -136,6 +136,7 @@ class IntimacyAnalyseUploadPage
   Widget _buildUploadStepCard() {
     return Obx(() {
       return UploadStepCard(
+        sceneType: controller.uploadSceneType,
         topTitleWidget: StepTitleWidget(
           stepLabel: StringFormatUtil.formatStr(
             StringName.intimacyAnalyseStep,
@@ -218,9 +219,12 @@ class IntimacyAnalyseUploadPage
   /// 分析结果卡片
   Widget _buildAnalysisResultCard() {
     return Obx(() {
+      Mode mode = Mode.preview;
       return StepCard(
         bgImageProvider: StepCardUtil.getCardBgImageProvider(
-          controller.uploadInfoList.length,
+          itemCount: controller.uploadInfoList.length,
+          sceneType: controller.uploadSceneType,
+          mode: mode,
         ),
         topTitleWidget: StepTitleWidget(
           stepTitle: StringName.intimacyAnalyseAnalysisResult,
@@ -231,7 +235,9 @@ class IntimacyAnalyseUploadPage
         ),
         // 顶部图标的位置
         topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
-          controller.uploadInfoList.length,
+          itemCount: controller.uploadInfoList.length,
+          sceneType: controller.uploadSceneType,
+          mode: mode
         ),
         contentWidget: Column(
           children: [
@@ -249,10 +255,9 @@ class IntimacyAnalyseUploadPage
                 borderRadius: BorderRadius.circular(16.r),
               ),
               child: UploadNineGrid(
-                mode: Mode.preview,
+                mode: mode,
                 // 上传的图片列表
                 imageUploadInfoList: controller.uploadInfoList,
-                maxCount: 9,
                 spacing: 8.0,
               ),
             ),

+ 8 - 24
lib/module/intimacy_analyse/intimacy_analyse_upload/widget/upload_nine_grid.dart

@@ -6,6 +6,8 @@ import 'package:keyboard/module/intimacy_analyse/intimacy_analyse_upload/widget/
 import 'package:keyboard/utils/prefix_util.dart';
 import 'package:keyboard/utils/upload/file_data_source_util.dart';
 import '../../../../data/bean/upload_info.dart';
+import '../../../../data/consts/constants.dart';
+import '../../../../utils/step_card_util.dart';
 import '../../../../utils/upload/upload_state.dart';
 import '../../image_viewer/image_viewer_page.dart';
 
@@ -42,7 +44,7 @@ class UploadNineGrid extends StatelessWidget {
     super.key,
     required this.mode,
     required this.imageUploadInfoList,
-    this.maxCount = 9,
+    this.maxCount = Constants.uploadNineGridMaxCount,
     this.spacing = 2.0,
     this.onClickAddCallback,
     this.onClickDeleteCallback,
@@ -73,7 +75,11 @@ class UploadNineGrid extends StatelessWidget {
           // 水平方向的间距
           mainAxisSpacing: spacing,
         ),
-        itemCount: _getItemCount(),
+        itemCount: StepCardUtil.getRealItemCount(
+          mode,
+          imageUploadInfoList.length,
+          maxCount,
+        ),
         itemBuilder: (context, index) {
           // 添加图片的条目
           if (index >= imageUploadInfoList.length) {
@@ -93,28 +99,6 @@ class UploadNineGrid extends StatelessWidget {
     );
   }
 
-  /// 如果图片数量小于最大数量,则总数量,要添加1个添加图片的条目
-  bool _isNeedAddItem() {
-    // 预览模式,不需要添加
-    if (mode == Mode.preview) {
-      return false;
-    }
-    return imageUploadInfoList.length < maxCount;
-  }
-
-  /// 获取宫格列表项的数量
-  int _getItemCount() {
-    final int itemCount;
-    // 如果图片数量小于最大数量,则总数量,要添加1个添加图片的条目
-    if (_isNeedAddItem()) {
-      itemCount = imageUploadInfoList.length + 1;
-    } else {
-      // 满了最大数量,则直接显示所有图片
-      itemCount = imageUploadInfoList.length;
-    }
-    return itemCount;
-  }
-
   /// 上传项
   Widget _buildUploadItem(UploadInfo info, int index) {
     return UploadItemWidget(

+ 16 - 6
lib/module/intimacy_analyse/screenshot_reply/conversation_analysis/conversation_analysis_view.dart

@@ -98,6 +98,7 @@ class ConversationAnalysisView
   Widget _buildUploadCard() {
     return Obx(() {
       return UploadStepCard(
+        sceneType: controller.uploadSceneType,
         topTitleWidget: StepTitleWidget(
           stepTitle: StringName.intimacyConversationAnalysis,
           stepDesc: StringName.intimacyConversationAnalysisCardTip,
@@ -187,9 +188,12 @@ class ConversationAnalysisView
   /// 分析结果卡片
   Widget _buildAnalysisResultCard() {
     return Obx(() {
+      Mode mode = Mode.preview;
       return StepCard(
         bgImageProvider: StepCardUtil.getCardBgImageProvider(
-          controller.uploadInfoList.length,
+          itemCount: controller.uploadInfoList.length,
+          sceneType: controller.uploadSceneType,
+          mode: mode,
         ),
         topTitleWidget: StepTitleWidget(
           stepTitle: StringName.intimacyAnalyseAnalysisResult,
@@ -200,7 +204,9 @@ class ConversationAnalysisView
         ),
         // 顶部图标的位置
         topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
-          controller.uploadInfoList.length,
+          itemCount: controller.uploadInfoList.length,
+          sceneType: controller.uploadSceneType,
+          mode: mode,
         ),
         contentWidget: Column(
           children: [
@@ -218,9 +224,8 @@ class ConversationAnalysisView
                 borderRadius: BorderRadius.circular(16.r),
               ),
               child: UploadNineGrid(
-                mode: Mode.preview,
+                mode: mode,
                 imageUploadInfoList: controller.uploadInfoList.value,
-                maxCount: 9,
                 spacing: 8.0,
               ),
             ),
@@ -336,9 +341,12 @@ class ConversationAnalysisView
 
   /// 上传截图例子卡片
   Widget _buildChatRecordSampleCard() {
+    Mode mode = controller.uploadInfoList.isEmpty ? Mode.preview : Mode.edit;
     return StepCard(
       bgImageProvider: StepCardUtil.getCardBgImageProvider(
-        controller.uploadInfoList.length,
+        itemCount: controller.uploadInfoList.length,
+        sceneType: controller.uploadSceneType,
+        mode: mode,
       ),
       topTitleWidget: StepTitleWidget(
         stepTitle: StringName.intimacyConversationAnalysis,
@@ -350,7 +358,9 @@ class ConversationAnalysisView
       ),
       // 顶部图标的位置
       topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
-        controller.uploadInfoList.length,
+        itemCount: controller.uploadInfoList.length,
+        sceneType: controller.uploadSceneType,
+        mode: mode,
       ),
       contentWidget: Column(
         children: [

+ 134 - 123
lib/module/intimacy_analyse/screenshot_reply/scan_image_reply/scan_image_reply_view.dart

@@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
 import 'package:keyboard/base/base_view.dart';
 import 'package:keyboard/data/bean/upload_info.dart';
+import 'package:keyboard/module/intimacy_analyse/intimacy_analyse_upload/widget/upload_nine_grid.dart';
 import 'package:keyboard/module/intimacy_analyse/widget/creating_loading_widget.dart';
 import '../../../../data/bean/image_viewer_item.dart';
 import '../../../../data/bean/option_select_config.dart';
@@ -95,146 +96,156 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
   /// 上传截图的卡片
   /// [isSample] 是否是样例图片
   Widget _buildUploadScreenshotCard(bool isSample) {
-    Widget actionBtn;
+    return Obx(() {
+      Widget actionBtn;
 
-    // 例子,示例图
-    if (isSample) {
-      actionBtn = Container(
-        padding: EdgeInsets.all(6.w),
-        decoration: BoxDecoration(
-          color: ColorName.black28,
-          borderRadius: BorderRadius.circular(9.r),
-        ),
-        child: Text(
-          StringName.intimacyAnalyseSampleImage,
-          style: TextStyle(
-            color: ColorName.white,
-            fontSize: 12.sp,
-            fontWeight: FontWeight.w500,
-          ),
-        ),
-      );
-    } else {
-      // 重新上传按钮
-      actionBtn = GestureDetector(
-        onTap: () {
-          BuildContext? context = Get.context;
-          if (context != null) {
-            controller.clickUploadScreenshotBtn(context);
-          }
-        },
-        child: Container(
-          padding: EdgeInsets.symmetric(vertical: 8.h, horizontal: 12.w),
+      // 例子,示例图
+      if (isSample) {
+        actionBtn = Container(
+          padding: EdgeInsets.all(6.w),
           decoration: BoxDecoration(
-            color: ColorName.black80,
-            borderRadius: BorderRadius.circular(30.r),
+            color: ColorName.black28,
+            borderRadius: BorderRadius.circular(9.r),
           ),
           child: Text(
-            StringName.intimacyAnalyseReUpload,
+            StringName.intimacyAnalyseSampleImage,
             style: TextStyle(
               color: ColorName.white,
               fontSize: 12.sp,
               fontWeight: FontWeight.w500,
             ),
           ),
-        ),
-      );
-    }
-
-    Widget imageWidget;
-    // 样例图片
-    if (isSample) {
-      imageWidget = Assets.images.iconUploadScreenshotSampleImage.image(
-        width: 288.w,
-        height: 290.h,
-        fit: BoxFit.cover,
-      );
-    } else {
-      // 上传
-      imageWidget = UploadItemWidget(
-        imageUploadInfo: controller.uploadInfo.value!,
-        hasDeleteBtn: false,
-        // 失败时的遮罩
-        uploadFailMaskWidget: UploadFailMaskWidget(
-          iconWidget: Assets.images.iconUploadFail.image(
-            width: 40.w,
-            height: 40.w,
-          ),
-          spaceWidget: SizedBox(height: 12.h),
-          textWidget: Text(
-            StringName.intimacyAnalyseUploadFail,
-            style: TextStyle(
-              color: ColorName.white,
-              fontSize: 16.sp,
-              fontWeight: FontWeight.w500,
+        );
+      } else {
+        // 重新上传按钮
+        actionBtn = GestureDetector(
+          onTap: () {
+            BuildContext? context = Get.context;
+            if (context != null) {
+              controller.clickUploadScreenshotBtn(context);
+            }
+          },
+          child: Container(
+            padding: EdgeInsets.symmetric(vertical: 8.h, horizontal: 12.w),
+            decoration: BoxDecoration(
+              color: ColorName.black80,
+              borderRadius: BorderRadius.circular(30.r),
+            ),
+            child: Text(
+              StringName.intimacyAnalyseReUpload,
+              style: TextStyle(
+                color: ColorName.white,
+                fontSize: 12.sp,
+                fontWeight: FontWeight.w500,
+              ),
             ),
           ),
-        ),
-        onClickItemCallback: (UploadInfo uploadInfo) {
-          // 预览图片
-          ImageViewerItem imageViewerItem;
-          String src = FileDataSourceUtil.getFileDataSourceSrc(uploadInfo);
-          // 远程图片
-          if (PrefixUtil.isRemoteImage(src)) {
-            imageViewerItem = ImageViewerItem.network(src);
-          } else {
-            // 本地图片
-            imageViewerItem = ImageViewerItem.file(src);
-          }
-          ImageViewerPage.start([imageViewerItem]);
-        },
-        onClickDeleteCallback: (UploadInfo uploadInfo) {
-          controller.deleteUploadInfo(uploadInfo);
-        },
-      );
-    }
+        );
+      }
 
-    // 识图回复,只有1张图
-    int uploadItemCount = 1;
-    return StepCard(
-      bgImageProvider: StepCardUtil.getCardBgImageProvider(uploadItemCount),
-      topTitleWidget: StepTitleWidget(
-        stepTitle: StringName.intimacyUploadScreenshot,
-        stepDesc: StringName.intimacyAnalyseUploadScreenshotCardTip,
-      ),
-      topIconWidget: Assets.images.iconIntimacyAnalyseUploadTop.image(
-        height: 63.h,
-        width: 103.w,
-      ),
-      // 顶部图标的位置
-      topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
-        uploadItemCount,
-      ),
-      contentWidget: Column(
-        children: [
-          Container(
-            width: 312.w,
-            height: 314.h,
-            margin: EdgeInsets.only(left: 12.w, top: 17.h, right: 12.w),
-            padding: EdgeInsets.all(12.w),
-            decoration: BoxDecoration(
-              color: ColorName.white,
-              borderRadius: BorderRadius.circular(16.r),
+      Widget imageWidget;
+      // 样例图片
+      if (isSample) {
+        imageWidget = Assets.images.iconUploadScreenshotSampleImage.image(
+          width: 288.w,
+          height: 290.h,
+          fit: BoxFit.cover,
+        );
+      } else {
+        // 上传
+        imageWidget = UploadItemWidget(
+          imageUploadInfo: controller.uploadInfo.value!,
+          hasDeleteBtn: false,
+          // 失败时的遮罩
+          uploadFailMaskWidget: UploadFailMaskWidget(
+            iconWidget: Assets.images.iconUploadFail.image(
+              width: 40.w,
+              height: 40.w,
             ),
-            child: Stack(
-              children: [
-                Positioned.fill(
-                  child: Container(
-                    padding: EdgeInsets.all(12.w),
-                    child: ClipRRect(
-                      // 图片裁切成圆角
-                      borderRadius: BorderRadius.circular(16.r),
-                      child: imageWidget,
+            spaceWidget: SizedBox(height: 12.h),
+            textWidget: Text(
+              StringName.intimacyAnalyseUploadFail,
+              style: TextStyle(
+                color: ColorName.white,
+                fontSize: 16.sp,
+                fontWeight: FontWeight.w500,
+              ),
+            ),
+          ),
+          onClickItemCallback: (UploadInfo uploadInfo) {
+            // 预览图片
+            ImageViewerItem imageViewerItem;
+            String src = FileDataSourceUtil.getFileDataSourceSrc(uploadInfo);
+            // 远程图片
+            if (PrefixUtil.isRemoteImage(src)) {
+              imageViewerItem = ImageViewerItem.network(src);
+            } else {
+              // 本地图片
+              imageViewerItem = ImageViewerItem.file(src);
+            }
+            ImageViewerPage.start([imageViewerItem]);
+          },
+          onClickDeleteCallback: (UploadInfo uploadInfo) {
+            controller.deleteUploadInfo(uploadInfo);
+          },
+        );
+      }
+
+      // 识图回复,只有1张图
+      int uploadItemCount = 1;
+      Mode mode =
+          controller.uploadInfo.value == null ? Mode.preview : Mode.edit;
+      return StepCard(
+        bgImageProvider: StepCardUtil.getCardBgImageProvider(
+          itemCount: uploadItemCount,
+          sceneType: controller.uploadSceneType,
+          mode: mode,
+        ),
+        topTitleWidget: StepTitleWidget(
+          stepTitle: StringName.intimacyUploadScreenshot,
+          stepDesc: StringName.intimacyAnalyseUploadScreenshotCardTip,
+        ),
+        topIconWidget: Assets.images.iconIntimacyAnalyseUploadTop.image(
+          height: 63.h,
+          width: 103.w,
+        ),
+        // 顶部图标的位置
+        topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
+          itemCount: uploadItemCount,
+          sceneType: controller.uploadSceneType,
+          mode: mode,
+        ),
+        contentWidget: Column(
+          children: [
+            Container(
+              width: 312.w,
+              height: 314.h,
+              margin: EdgeInsets.only(left: 12.w, top: 17.h, right: 12.w),
+              padding: EdgeInsets.all(12.w),
+              decoration: BoxDecoration(
+                color: ColorName.white,
+                borderRadius: BorderRadius.circular(16.r),
+              ),
+              child: Stack(
+                children: [
+                  Positioned.fill(
+                    child: Container(
+                      padding: EdgeInsets.all(12.w),
+                      child: ClipRRect(
+                        // 图片裁切成圆角
+                        borderRadius: BorderRadius.circular(16.r),
+                        child: imageWidget,
+                      ),
                     ),
                   ),
-                ),
-                Positioned(right: 0, bottom: 0, child: actionBtn),
-              ],
+                  Positioned(right: 0, bottom: 0, child: actionBtn),
+                ],
+              ),
             ),
-          ),
-        ],
-      ),
-    );
+          ],
+        ),
+      );
+    });
   }
 
   /// 选项卡片

+ 13 - 4
lib/module/intimacy_analyse/widget/step/upload_step_card.dart

@@ -5,6 +5,7 @@ import '../../../../data/bean/upload_info.dart';
 import '../../../../resource/assets.gen.dart';
 import '../../../../resource/colors.gen.dart';
 import '../../../../utils/step_card_util.dart';
+import '../../../../utils/upload/upload_scene_type.dart';
 import '../../intimacy_analyse_upload/widget/upload_add_widget.dart';
 import '../../intimacy_analyse_upload/widget/upload_item_widget.dart';
 import '../../intimacy_analyse_upload/widget/upload_nine_grid.dart';
@@ -12,6 +13,9 @@ import '../step_card.dart';
 
 /// 上传步骤卡片
 class UploadStepCard extends StatelessWidget {
+  /// 上传场景类型
+  final UploadSceneType sceneType;
+
   /// 图片资源列表
   final List<UploadInfo> imageUploadInfoList;
 
@@ -29,6 +33,7 @@ class UploadStepCard extends StatelessWidget {
 
   const UploadStepCard({
     super.key,
+    required this.sceneType,
     required this.imageUploadInfoList,
     this.topTitleWidget,
     this.bottomChild,
@@ -38,10 +43,13 @@ class UploadStepCard extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
+    Mode mode = Mode.edit;
     return StepCard(
       // 背景图片
       bgImageProvider: StepCardUtil.getCardBgImageProvider(
-        imageUploadInfoList.length,
+        itemCount: imageUploadInfoList.length,
+        sceneType: sceneType,
+        mode: mode,
       ),
       // 顶部的标题
       topTitleWidget: topTitleWidget,
@@ -52,7 +60,9 @@ class UploadStepCard extends StatelessWidget {
       ),
       // 顶部图标的位置
       topIconWidgetLocation: StepCardUtil.calculateTopIconWidgetLocation(
-        imageUploadInfoList.length,
+        itemCount: imageUploadInfoList.length,
+        sceneType: sceneType,
+        mode: mode,
       ),
       contentWidget: Column(
         children: [
@@ -72,9 +82,8 @@ class UploadStepCard extends StatelessWidget {
             ),
             // 图片九宫格
             child: UploadNineGrid(
-              mode: Mode.edit,
+              mode: mode,
               imageUploadInfoList: imageUploadInfoList,
-              maxCount: 9,
               spacing: 8.0,
               onClickAddCallback: onClickAddCallback,
               onClickDeleteCallback: onClickDeleteCallback,

+ 77 - 22
lib/utils/step_card_util.dart

@@ -1,47 +1,102 @@
 import 'package:flutter/cupertino.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:keyboard/utils/grid_util.dart';
+import 'package:keyboard/utils/upload/upload_scene_type.dart';
 
 import '../data/bean/widget_location.dart';
+import '../data/consts/constants.dart';
+import '../module/intimacy_analyse/intimacy_analyse_upload/widget/upload_nine_grid.dart';
 import '../resource/assets.gen.dart';
 
 /// 步骤卡片工具类
 class StepCardUtil {
   StepCardUtil._();
 
-  /// 一列多少个
-  static const int defaultCrossAxisCount = 3;
+  /// 是否有添加按钮,如果图片数量小于最大数量,则总数量,要添加1个添加图片的条目
+  static bool isNeedAddItem(Mode mode, int itemCount, int maxCount) {
+    // 预览模式,不需要添加
+    if (mode == Mode.preview) {
+      return false;
+    }
+    // 编辑模式,才有添加按钮
+    return itemCount < maxCount;
+  }
+
+  /// 计算实际的itemCount
+  static getRealItemCount(Mode mode, int itemCount, int maxCount) {
+    int realItemCount;
+    // 如果图片数量小于最大数量,则总数量,要添加1个添加图片的条目
+    if (isNeedAddItem(mode, itemCount, maxCount)) {
+      realItemCount = itemCount + 1;
+    } else {
+      // 满了最大数量,则直接显示所有图片
+      realItemCount = itemCount;
+    }
+    return realItemCount;
+  }
 
   /// 获取卡片背景图片
-  static ImageProvider getCardBgImageProvider(
-    int itemCount, {
-    int crossAxisCount = defaultCrossAxisCount,
+  static ImageProvider getCardBgImageProvider({
+    required int itemCount,
+    required UploadSceneType sceneType,
+    required Mode mode,
+    int maxCount = Constants.uploadNineGridMaxCount,
+    int crossAxisCount = Constants.uploadNineGridCrossAxisCount,
   }) {
-    // 计算出九宫格有多少行
-    int rowCount = GridUtil.calculateRowCount(itemCount, crossAxisCount);
-    // 根据行数不同,使用不同的步骤卡片背景
-    if (rowCount == 1) {
-      return Assets.images.bgIntimacyAnalyseUploadCard.provider();
-    } else if (rowCount == 2) {
-      return Assets.images.bgIntimacyAnalyseUploadCard2.provider();
+    int realItemCount = getRealItemCount(mode, itemCount, maxCount);
+    // 亲密度分析、对话分析
+    if (UploadSceneType.intimacyAnalyse == sceneType ||
+        UploadSceneType.conversationAnalysis == sceneType) {
+      // 计算出九宫格有多少行
+      int rowCount = GridUtil.calculateRowCount(realItemCount, crossAxisCount);
+      // 根据行数不同,使用不同的步骤卡片背景
+      if (rowCount == 1) {
+        return Assets.images.bgIntimacyAnalyseUploadCard.provider();
+      } else if (rowCount == 2) {
+        return Assets.images.bgIntimacyAnalyseUploadCard2.provider();
+      } else {
+        return Assets.images.bgIntimacyAnalyseUploadCard3.provider();
+      }
     } else {
-      return Assets.images.bgIntimacyAnalyseUploadCard3.provider();
+      // 识图回复
+      return Assets.images.bgIntimacyAnalyseUploadCard2.provider();
     }
   }
 
   /// 计算顶部Icon的位置
-  static WidgetLocation calculateTopIconWidgetLocation(
-    int itemCount, {
-    int crossAxisCount = defaultCrossAxisCount,
+  static WidgetLocation calculateTopIconWidgetLocation({
+    required int itemCount,
+    required UploadSceneType sceneType,
+    required Mode mode,
+    int maxCount = Constants.uploadNineGridMaxCount,
+    int crossAxisCount = Constants.uploadNineGridCrossAxisCount,
   }) {
-    // 计算出九宫格有多少行
-    int rowCount = GridUtil.calculateRowCount(itemCount, crossAxisCount);
-    if (rowCount == 1) {
+    // 识图回复
+    if (UploadSceneType.scanImageReply == sceneType) {
       return WidgetLocation(null, -8.h, 0, null);
-    } else if (rowCount == 2) {
-      return WidgetLocation(null, -5.h, 0, null);
     } else {
-      return WidgetLocation(null, -11.h, 0, null);
+      int realItemCount = getRealItemCount(mode, itemCount, maxCount);
+      // 计算出九宫格有多少行
+      int rowCount = GridUtil.calculateRowCount(realItemCount, crossAxisCount);
+      // 亲密度分析
+      if (UploadSceneType.intimacyAnalyse == sceneType) {
+        if (rowCount == 1) {
+          return WidgetLocation(null, -9.h, 0, null);
+        } else if (rowCount == 2) {
+          return WidgetLocation(null, -11.h, 0, null);
+        } else {
+          return WidgetLocation(null, -11.h, 0, null);
+        }
+      } else {
+        // 对话分析
+        if (rowCount == 1) {
+          return WidgetLocation(null, -14.h, 0, null);
+        } else if (rowCount == 2) {
+          return WidgetLocation(null, -13.h, 0, null);
+        } else {
+          return WidgetLocation(null, -13.h, 0, null);
+        }
+      }
     }
   }
 }