Browse Source

[feat]增加ai生成提示描述

云天逵 6 months ago
parent
commit
bd5bf6c394

+ 1 - 0
assets/string/base/string.xml

@@ -13,6 +13,7 @@
     <string name="feedback">意见反馈</string>
 
     <string name="auto_renewal_management">自动续费管理</string>
+    <string name="auto_renewal_service">自动续费服务</string>
 
     <string name="about_us">关于我们</string>
     <!--    投诉举报-->

+ 1 - 1
lib/module/auto_renewal/auto_renewal_page.dart

@@ -82,7 +82,7 @@ class AutoRenewalPage extends BasePage<AutoRenewalController> {
         mainAxisAlignment: MainAxisAlignment.spaceBetween,
         children: [
           Text(
-            StringName.autoRenewalManagement,
+            StringName.autoRenewalService,
             style: Styles.getTextStyleBlack204W400(14.sp),
           ),
           Material(

+ 11 - 1
lib/module/intimacy_analyse/intimacy_analyse_upload/intimacy_analyse_upload_page.dart

@@ -17,6 +17,7 @@ import '../../../router/app_pages.dart';
 import '../../../utils/step_card_util.dart';
 import '../../../utils/string_format_util.dart';
 import '../../../widget/actionbtn/action_btn.dart';
+import '../../../widget/ai/ai_generate_tip_widget.dart';
 import '../../../widget/gradient_btn.dart';
 import '../../../widget/gradient_text.dart';
 import '../../user_info/enums/gender_type.dart';
@@ -855,6 +856,9 @@ class IntimacyAnalyseUploadPage
             _buildAnalysisResultCard(),
             // 报告结果卡片
             _buildAnalysisReport(),
+
+            SizedBox(height: 13.h,),
+            _buildAiGenerateTip(),
             // 内容距离底部的距离
             SizedBox(height: listBottomSpace),
           ],
@@ -862,7 +866,13 @@ class IntimacyAnalyseUploadPage
       }
     });
   }
-
+  Widget _buildAiGenerateTip() {
+    return Row(
+      children: [
+        SizedBox(width: 16.w),
+        AiGenerateTipWidget.normalTip(textColor:Colors.black.withAlpha(92),)],
+    );
+  }
   /// 内容
   Widget _buildContent() {
     return Expanded(

+ 12 - 1
lib/module/intimacy_analyse/screenshot_reply/conversation_analysis/conversation_analysis_view.dart

@@ -10,6 +10,7 @@ import '../../../../resource/assets.gen.dart';
 import '../../../../resource/colors.gen.dart';
 import '../../../../resource/string.gen.dart';
 import '../../../../utils/step_card_util.dart';
+import '../../../../widget/ai/ai_generate_tip_widget.dart';
 import '../../../../widget/gradient_btn.dart';
 import '../../intimacy_analyse_upload/widget/upload_nine_grid.dart';
 import '../../widget/creating_loading_widget.dart';
@@ -84,6 +85,8 @@ class ConversationAnalysisView
               SizedBox(height: 12.h),
               // 分析结果Markdown卡片
               _buildMarkdownAnalysisResultCard(),
+              SizedBox(height: 13.h),
+              _buildAiGenerateTip(),
               // 距离底部有一定间距
               SizedBox(height: 90.h),
             ],
@@ -335,11 +338,19 @@ class ConversationAnalysisView
               }
             }),
           ),
+
+
         ],
       ),
     );
   }
-
+  Widget _buildAiGenerateTip() {
+    return Row(
+      children: [
+        SizedBox(width: 16.w),
+        AiGenerateTipWidget.normalTip(textColor:Colors.black.withAlpha(92),)],
+    );
+  }
   /// 上传截图例子卡片
   Widget _buildChatRecordSampleCard() {
     Mode mode = controller.uploadInfoList.isEmpty ? Mode.preview : Mode.edit;

+ 4 - 1
lib/module/intimacy_analyse/screenshot_reply/scan_image_reply/scan_image_reply_view.dart

@@ -68,6 +68,7 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
                   // 回复语气列表卡片
                   _buildReplyToneListCard(),
                   // Ai生成提示
+                  SizedBox(height:10.h),
                   _buildAiGenerateTip(),
                   // 距离底部有一定间距
                   _buildBottomSpace(),
@@ -90,7 +91,9 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
   /// Ai生成提示
   Widget _buildAiGenerateTip() {
     return Row(
-      children: [AiGenerateTipWidget.normalTip(bgColor: Color(0xfff9f9f9))],
+      children: [
+        SizedBox(width: 16.w),
+        AiGenerateTipWidget.normalTip(textColor:Colors.black.withAlpha(92),)],
     );
   }
 

+ 20 - 1
lib/module/keyboard_guide/keyboard_guide_page.dart

@@ -16,6 +16,7 @@ import '../../resource/colors.gen.dart';
 import '../../resource/string.gen.dart';
 import '../../utils/clipboard_util.dart';
 import '../../utils/url_launcher_util.dart';
+import '../../widget/ai/ai_generate_tip_widget.dart';
 import '../../widget/app_lifecycle_widget.dart';
 import '../intimacy_scale/intimacy_scale_page.dart';
 import 'enums/keyboard_guide_msg_type.dart';
@@ -173,8 +174,17 @@ class KeyboardGuidePage extends BasePage<KeyboardGuidePageController> {
     return Obx(() {
       return ListView.builder(
         controller: controller.scrollController,
-        itemCount: controller.msgList.length,
+        itemCount: controller.msgList.length + 1,
         itemBuilder: (BuildContext context, int index) {
+          if (index == controller.msgList.length) {
+
+            return (controller.msgList.length > 5)
+                ? Container(
+
+                  child: _buildAiGenerateTip(),
+                )
+                : SizedBox();
+          }
           KeyboardGuideMsg msg = controller.msgList[index];
           return _buildMsgItem(msg, index);
         },
@@ -182,6 +192,15 @@ class KeyboardGuidePage extends BasePage<KeyboardGuidePageController> {
     });
   }
 
+  Widget _buildAiGenerateTip() {
+    return Row(
+      mainAxisAlignment: MainAxisAlignment.center,
+      children: [
+        AiGenerateTipWidget.normalTip(textColor: Colors.black.withAlpha(92)),
+      ],
+    );
+  }
+
   /// 构建底部输入框
   Widget _buildBottomInput() {
     return Center(

+ 16 - 2
lib/module/zodiac_love_intimacy/widget/zodiac_love_intimacy_report.dart

@@ -7,6 +7,7 @@ import '../../../data/bean/zodiac_love_intimacy_list.dart';
 import '../../../resource/assets.gen.dart';
 import '../../../resource/colors.gen.dart';
 import '../../../resource/string.gen.dart';
+import '../../../widget/ai/ai_generate_tip_widget.dart';
 import '../../../widget/gradient_btn.dart';
 import '../../intimacy_analyse/widget/creating_loading_widget.dart';
 
@@ -156,8 +157,15 @@ class ExistReportWidget extends StatelessWidget {
           return ListView.builder(
             physics: const ClampingScrollPhysics(),
             padding: EdgeInsets.zero,
-            itemCount: list.length,
+            itemCount: list.length+1,
             itemBuilder: (BuildContext context, int index) {
+              if (index == list.length) {
+                // 最后一项渲染 AI 区域
+                return Container(
+                  padding: EdgeInsets.only(bottom:50.h),
+                  child: _buildAiGenerateTip(),
+                );
+              }
               ZodiacLoveIntimacyList itemData = list[index];
               return _buildListItem(index, itemData);
             },
@@ -166,7 +174,13 @@ class ExistReportWidget extends StatelessWidget {
       ),
     );
   }
-
+  Widget _buildAiGenerateTip() {
+    return Row(
+      children: [
+        SizedBox(width: 16.w),
+        AiGenerateTipWidget.normalTip(bgColor:Colors.white.withAlpha(196),textColor: Colors.black.withAlpha(92)),],
+    );
+  }
   /// 列表条目
   Widget _buildListItem(int index, ZodiacLoveIntimacyList itemData) {
     return Container(

+ 2 - 0
lib/resource/string.gen.dart

@@ -11,6 +11,7 @@ class StringName {
   static final String personalProfile = 'personal_profile'.tr; // 个人档案
   static final String feedback = 'feedback'.tr; // 意见反馈
   static final String autoRenewalManagement = 'auto_renewal_management'.tr; // 自动续费管理
+  static final String autoRenewalService = 'auto_renewal_service'.tr; // 自动续费服务
   static final String aboutUs = 'about_us'.tr; // 关于我们
   static final String complaintReport = 'complaint_report'.tr; // 投诉举报
   static final String mineAccountLoggedDesc = 'mine_account_logged_desc'.tr; // 用户
@@ -380,6 +381,7 @@ class StringMultiSource {
       'personal_profile': '个人档案',
       'feedback': '意见反馈',
       'auto_renewal_management': '自动续费管理',
+      'auto_renewal_service': '自动续费服务',
       'about_us': '关于我们',
       'complaint_report': '投诉举报',
       'mine_account_logged_desc': '用户',

+ 7 - 5
lib/widget/ai/ai_generate_tip_widget.dart

@@ -12,25 +12,27 @@ class AiGenerateTipWidget extends StatelessWidget {
   /// 背景颜色
   final Color? bgColor;
 
-  const AiGenerateTipWidget({super.key, this.tip, this.bgColor});
+  final Color? textColor;
+  const AiGenerateTipWidget({super.key, this.tip, this.bgColor,this.textColor});
 
   /// 普通提示
-  static AiGenerateTipWidget normalTip({required Color bgColor}) {
-    return AiGenerateTipWidget(tip: StringName.aiGenerateTip, bgColor: bgColor);
+  static AiGenerateTipWidget normalTip({ Color? bgColor, required Color textColor}) {
+    return AiGenerateTipWidget(tip: StringName.aiGenerateTip, bgColor: bgColor, textColor: textColor);
   }
 
+
   @override
   Widget build(BuildContext context) {
     return Container(
       padding: EdgeInsets.symmetric(horizontal: 7.w, vertical: 3.h),
       decoration: BoxDecoration(
-        color: ColorName.white77,
+        color:bgColor ?? Color(0xFFF9F9F9),
         borderRadius: BorderRadius.circular(10.r),
       ),
       child: Text(
         tip ?? "",
         style: TextStyle(
-          color: bgColor ?? Color(0x5C000000),
+          color: textColor ?? Color(0x5C000000),
           fontSize: 10.sp,
           fontWeight: FontWeight.w400,
         ),