Explorar el Código

[fit]1.更改首页指数文本
2.定制人设,将用户自定义的内容添加结果展示在下方
3.调整弹窗逻辑,首次进入活动页返回不弹窗
4.意见反馈增加字数
5.更改store的banner
6.更改人设遮罩
7.修改我的页面未登录的头像状态

云天逵 hace 7 meses
padre
commit
e67f2a2540

BIN
assets/images/icon_keyboard_love_Index.webp


BIN
assets/images/icon_store_banner1.webp


BIN
assets/images/icon_store_banner2.webp


BIN
assets/images/icon_store_banner3.webp


BIN
assets/images/icon_store_indicator1.webp


BIN
assets/images/icon_store_indicator2.webp


BIN
assets/images/icon_store_indicator3.webp


+ 2 - 2
assets/string/base/string.xml

@@ -38,7 +38,7 @@
     <string name="need_vip_tip">请开通会员解锁权益~</string>
     <string name="sensitive_content">涉及敏感内容</string>
 
-    <string name="account_no_login">账号未登录</string>
+    <string name="account_no_login">账号未登录,请先登录</string>
     <string name="login_account">登录账号</string>
     <string name="login_agree_privacy">请先阅读并同意《隐私权政策》和《服务条款》</string>
     <string name="login_request_code_frequently_toast">请求过于频繁,请稍后再试</string>
@@ -128,7 +128,7 @@
 
     <!--   定制人设页面 -->
 
-    <string name="character_custom_steps_desc">量身打造 自定义人设更贴脸</string>
+    <string name="character_custom_steps_desc">专属于你 独一无二的人设</string>
     <string name="character_custom_hobbies_title">用爱好开启对话,发现更多可能性</string>
     <string name="character_custom_character_title">最想用哪三个特质打动TA</string>
     <string name="character_custom_name_title">给人设取一个名字</string>

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

@@ -55,6 +55,11 @@ class Constants {
 
   // 是否首先显示键盘教程
   static const String isFirstShowKeyboardTutorial = 'isFirstShowKeyboardTutorial';
+
+  // 是否首次进入活动页
+  static const String isFirstIntoDiscount = 'isFirstIntoDiscount';
+
+
 }
 
 String getBaseUrl() {
@@ -80,6 +85,14 @@ void setFirstIntro(bool isFirst) {
 
 
 
+bool isFirstIntoDiscount() {
+  return KVUtil.getBool(Constants.isFirstIntoDiscount, true);
+}
+
+void setFirstIntoDiscount(bool isFirst) {
+  KVUtil.putBool(Constants.isFirstIntoDiscount, isFirst);
+}
+
 
 
 

+ 2 - 2
lib/dialog/content/character_add_tab_view.dart

@@ -63,10 +63,10 @@ class CharacterAddTabView extends BaseView<CharacterAddTabController> {
           return Column(
             children: [
               Container(
-                width: 80.w,
+
                 height: isSelected ? 38.h : 32.h,
                 padding:
-                    isSelected ? EdgeInsets.only(bottom: 4.h) : EdgeInsets.zero,
+                isSelected ? EdgeInsets.only(bottom: 4.h,left: 15.w,right: 15.w) :EdgeInsets.only(left: 15.w,right: 15.w),
                 decoration:
                     isSelected
                         ? BoxDecoration(

+ 43 - 26
lib/dialog/custom_label_dialog.dart

@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
+import 'package:get/get.dart';
 import 'package:keyboard/resource/string.gen.dart';
 import 'package:keyboard/utils/toast_util.dart';
 
@@ -14,6 +15,9 @@ import '../utils/styles.dart';
 class CustomLabelDialog {
   static const String tag = 'CustomLabelDialog';
 
+  // 文本是否为空
+
+
   static void show({
     String? title,
     required Function(String) clickCallback,
@@ -21,6 +25,10 @@ class CustomLabelDialog {
     required int maxLength,
   }) {
     TextEditingController textController = TextEditingController();
+    RxBool isTextEmpty = true.obs;
+    textController.addListener(() {
+      isTextEmpty.value = textController.text.trim().isEmpty;
+    });
     SmartDialog.show(
       tag: tag,
       backType: SmartBackType.block,
@@ -74,7 +82,7 @@ class CustomLabelDialog {
                             ),
                             child: TextField(
                               controller: textController,
-
+                              maxLength: maxLength,
                               maxLines: 1,
                               scrollPhysics: const BouncingScrollPhysics(),
                               textAlign: TextAlign.center,
@@ -96,34 +104,43 @@ class CustomLabelDialog {
                             ),
                           ),
                           SizedBox(height: 24.h),
-                          Container(
-                            height: 48.h,
-                            width: double.infinity,
-                            decoration: Styles.getActivateButtonDecoration(
-                              31.r,
-                            ),
-                            child: TextButton(
-                              onPressed: () {
-                                if (textController.text.isEmpty) {
-                                  return ToastUtil.show(hintText);
-                                }
-                                if (textController.text.length > maxLength) {
-                                  return ToastUtil.show('最多$maxLength个字哦~');
-                                }
+                          Obx(() {
+                            return Container(
+                              height: 48.h,
+                              width: double.infinity,
+                              decoration:
+                              isTextEmpty.value
+                                  ? Styles.getInactiveButtonDecoration(
+                                31.r,
+                              )
+                                  : Styles.getActivateButtonDecoration(
+                                31.r,
+                              ),
+
+                              child: TextButton(
+                                onPressed: () {
+                                  if (textController.text.isEmpty) {
+                                    return ToastUtil.show(hintText);
+                                  }
+                                  if (textController.text.length > maxLength) {
+                                    return ToastUtil.show(
+                                        '最多$maxLength个字哦~');
+                                  }
 
-                                clickCallback(textController.text.trim());
-                                SmartDialog.dismiss();
-                              },
-                              child: Text(
-                                StringName.customLabelSave,
-                                style: TextStyle(
-                                  color: Colors.white,
-                                  fontSize: 16.sp,
-                                  fontWeight: FontWeight.w500,
+                                  clickCallback(textController.text.trim());
+                                  SmartDialog.dismiss();
+                                },
+                                child: Text(
+                                  StringName.customLabelSave,
+                                  style: TextStyle(
+                                    color: Colors.white,
+                                    fontSize: 16.sp,
+                                    fontWeight: FontWeight.w500,
+                                  ),
                                 ),
                               ),
-                            ),
-                          ),
+                            );
+                          }),
                         ],
                       ),
                     ),

+ 8 - 2
lib/module/character/character_view.dart

@@ -376,7 +376,7 @@ class CharacterHeaderDelegate extends SliverPersistentHeaderDelegate {
       expandedHeight,
     );
 
-    final opacity = 1 - currentVisibleHeight / (shrinkOffset + expandedHeight);
+    final opacity = 1 - currentVisibleHeight / (shrinkOffset*4 + expandedHeight);
     return Stack(
       // clipBehavior: Clip.none,
       children: [
@@ -401,7 +401,13 @@ class CharacterHeaderDelegate extends SliverPersistentHeaderDelegate {
           height: currentVisibleHeight,
           child: Opacity(
             opacity: opacity,
-            child: Container(width: double.infinity, color: Color(0XffB683FD)),
+            child: Container(
+                width: double.infinity,
+                decoration: BoxDecoration(
+                    gradient: LinearGradient(
+                      begin: Alignment.centerLeft, end: Alignment.centerRight,
+                      colors: [Color(0xff7d46fc), Color(0xffbc87ff)], ))
+            )
           ),
         ),
         Positioned(bottom: 0, left: 0, right: 0, child: bottomWidget),

+ 35 - 19
lib/module/character/content/character_group_content_controller.dart

@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:easy_refresh/easy_refresh.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:get/get.dart';
@@ -10,6 +12,7 @@ import 'package:keyboard/dialog/character_details_dialog.dart';
 import 'package:keyboard/dialog/login/login_dialog.dart';
 import 'package:keyboard/module/character/character_controller.dart';
 import 'package:keyboard/module/store/store_page.dart';
+import 'package:keyboard/module/store/ticket/discount_ticket_dialog.dart';
 import 'package:keyboard/utils/atmob_log.dart';
 import 'package:keyboard/utils/daily_limiter_util.dart';
 import 'package:keyboard/utils/http_handler.dart';
@@ -61,7 +64,7 @@ class CharacterGroupContentController extends BaseController {
   late EasyRefreshController refreshController;
 
   @override
-  void onInit()  {
+  void onInit() {
     super.onInit();
 
     refreshController = EasyRefreshController(
@@ -75,13 +78,10 @@ class CharacterGroupContentController extends BaseController {
     everAll([currentCharacterGroupInfo, currentKeyboardInfo], (_) async {
       await refreshData();
     });
-
-
   }
 
   @override
   onReady() async {
-
     super.onReady();
     await AssetLottie(Assets.anim.animSurpriseDialogData).load();
   }
@@ -147,21 +147,37 @@ class CharacterGroupContentController extends BaseController {
         }
       },
       onDismiss: () {
-        DailyLimiterUtil.run(
-          actionKey: 'SurpriseDialog', // 唯一标识该弹窗逻辑
-          condition:
-              characterInfo.isVip == true &&
-              characterInfo.isLock == true &&
-              !isVipUser,
-          onExecute: () {
-            SurpriseDialog.show(
-              clickConfirm: () {
-                NewDiscountPage.start();
-              },
-            );
-          },
-        );
-        DailyLimiterUtil.printSavedData('SurpriseDialog');
+        if (Platform.isAndroid) {
+          DailyLimiterUtil.run(
+            actionKey: 'SurpriseDialog', // 唯一标识该弹窗逻辑
+            condition:
+                characterInfo.isVip == true &&
+                characterInfo.isLock == true &&
+                !isVipUser,
+            onExecute: () {
+              SurpriseDialog.show(
+                clickConfirm: () {
+                  NewDiscountPage.start();
+                },
+              );
+            },
+          );
+        }else if (Platform.isIOS) {
+          DailyLimiterUtil.run(
+            actionKey: 'DiscountTicketDialog', // 唯一标识该弹窗逻辑
+            condition:
+                characterInfo.isVip == true &&
+                characterInfo.isLock == true &&
+                !isVipUser,
+            onExecute: () {
+              DiscountTicketDialog.show(
+                clickConfirm: () {
+                  NewDiscountPage.start();
+                },
+              );
+            },
+          );
+        }
       },
     );
   }

+ 35 - 6
lib/module/character_custom/character_custom_controller.dart

@@ -70,9 +70,23 @@ class CharacterCustomController extends BaseController {
       maxLength: currentCharacterCustomConfig?.maxHobbyWords ?? 5,
       hintText: StringName.customLabelHobbiesHint,
       clickCallback: (value) {
-        hobbiesLabelsList.map((e) => e.name).contains(value)
-            ? ToastUtil.show("添加失败,标签 $value 已存在")
-            : hobbiesLabelsList.add(Hobbies(name: value));
+        final isExist = hobbiesLabelsList.map((e) => e.name).contains(value);
+        if (isExist) {
+          ToastUtil.show("添加失败,标签 $value 已存在");
+          return;
+        }
+        final newHobby = Hobbies(name: value);
+        hobbiesLabelsList.add(newHobby);
+        ToastUtil.show("添加成功,标签 $value");
+        // 如果当前已选未超限,自动选中
+        if (hobbiesSelectLabels.length <
+            (currentCharacterCustomConfig?.maxHobbyNum ?? 3)) {
+          hobbiesSelectLabels.add(newHobby);
+        } else {
+          ToastUtil.show(
+            "最多选择${currentCharacterCustomConfig?.maxHobbyNum ?? 3}个爱好",
+          );
+        }
       },
     );
   }
@@ -84,9 +98,24 @@ class CharacterCustomController extends BaseController {
       maxLength: currentCharacterCustomConfig?.maxCharacterWords ?? 5,
       hintText: StringName.customLabelCharacterHint,
       clickCallback: (value) {
-        characterLabelsList.map((e) => e.name).contains(value)
-            ? ToastUtil.show("添加失败,标签 $value 已存在")
-            : characterLabelsList.add(CharactersList(name: value));
+        var isExist = characterLabelsList
+            .map((e) => e.name)
+            .contains(value);
+        if (isExist) {
+          ToastUtil.show("添加失败,标签 $value 已存在");
+          return;
+        }
+        characterLabelsList.add(CharactersList(name: value));
+        ToastUtil.show("添加成功,标签 $value");
+        if (characterSelectLabels.length <
+            (currentCharacterCustomConfig?.maxCharacterNum ?? 3)) {
+
+          characterSelectLabels.add(CharactersList(name: value));
+        } else {
+          ToastUtil.show(
+            "最多选择${currentCharacterCustomConfig?.maxCharacterNum ?? 3}个特质",
+          );
+        }
       },
     );
   }

+ 103 - 3
lib/module/character_custom/character_custom_page.dart

@@ -14,8 +14,8 @@ import '../../widget/auto_scroll_list_view.dart';
 class CharacterCustomPage extends BasePage<CharacterCustomController> {
   const CharacterCustomPage({super.key});
 
-  static Future<void > start({StepType? step}) async {
-    return  Get.to(() => CharacterCustomPage());
+  static Future<void> start({StepType? step}) async {
+    return Get.to(() => CharacterCustomPage());
   }
 
   @override
@@ -407,6 +407,8 @@ class CharacterCustomPage extends BasePage<CharacterCustomController> {
               ),
             ),
           ),
+          SizedBox(height: 18.h),
+          _buildCurrentSelectedLabels(selectedLabels, onSelected),
           Container(
             margin: EdgeInsets.only(top: 107.h, bottom: 32.h),
             child: _buildNextButton(
@@ -419,6 +421,104 @@ class CharacterCustomPage extends BasePage<CharacterCustomController> {
     });
   }
 
+  Widget _buildCurrentSelectedLabels(
+    RxList<dynamic> selectedLabels,
+    Function(dynamic) onSelected,
+  ) {
+    return Row(
+      children: [
+        Obx(() {
+          if (selectedLabels.isEmpty) {
+            return Container(
+              padding: EdgeInsets.symmetric(horizontal: 11.w, vertical: 8.h),
+              child: Row(
+                children: [
+                  Text(
+                    "",
+                    style: TextStyle(
+                      fontSize: 14.sp,
+                      fontWeight: FontWeight.w400,
+                    ),
+                  ),
+                  Assets.images.iconChangeHobbiesUnselect.image(
+                    width: 14.w,
+                    height: 14.w,
+                  ),
+                ],
+              ),
+            );
+          }
+          return Expanded(
+            child: SingleChildScrollView(
+              scrollDirection: Axis.horizontal,
+              child: Padding(
+                padding: EdgeInsets.only(left: 16.w, right: 16.w),
+                child: Row(
+                  mainAxisAlignment: MainAxisAlignment.center,
+                  children: [
+                    ...selectedLabels.map((item) {
+                      return Container(
+                        margin: EdgeInsets.only(left: 8.w),
+                        child: Obx(() {
+                          final isSelected = selectedLabels.contains(item);
+                          return GestureDetector(
+                            onTap: () => onSelected(item),
+                            child: Container(
+                              padding: EdgeInsets.symmetric(
+                                horizontal: 11.w,
+                                vertical: 8.h,
+                              ),
+                              decoration: BoxDecoration(
+                                gradient:
+                                    isSelected
+                                        ? LinearGradient(
+                                          colors: [
+                                            Color(0xFF7D46FC),
+                                            Color(0xFFBC87FF),
+                                          ],
+                                          begin: Alignment.centerLeft,
+                                          end: Alignment.centerRight,
+                                        )
+                                        : null,
+                                color: isSelected ? null : Colors.white,
+                                borderRadius: BorderRadius.circular(70.r),
+                                border: Border.all(
+                                  color: Colors.transparent,
+                                  width: 0,
+                                ),
+                              ),
+                              child: Row(
+                                children: [
+                                  Text(
+                                    "${item.emoji ?? ""}${item.name}",
+                                    style: TextStyle(
+                                      color:
+                                          isSelected
+                                              ? Colors.white
+                                              : Color(0xFF755BAB),
+                                      fontSize: 14.sp,
+                                      fontWeight: FontWeight.w400,
+                                    ),
+                                  ),
+                                  Assets.images.iconChangeHobbiesUnselect
+                                      .image(width: 14.w, height: 14.w),
+                                ],
+                              ),
+                            ),
+                          );
+                        }),
+                      );
+                    }),
+                  ],
+                ),
+              ),
+            ),
+          );
+        }),
+      ],
+    );
+  }
+
   Widget _buildNextButton({required VoidCallback onTap, required isEnable}) {
     return GestureDetector(
       onTap: () {
@@ -458,7 +558,7 @@ class CharacterCustomPage extends BasePage<CharacterCustomController> {
         controller.selectHobby(name);
       },
       isCustomEnabled:
-          controller.currentCharacterCustomConfig?.customHobby == true,
+          true,
       onCustomClick: () {
         controller.clickHobbiesCustom();
       },

+ 1 - 0
lib/module/feedback/feedback_controller.dart

@@ -37,6 +37,7 @@ class FeedbackController extends BaseController {
   }
 
   onContentChanged(String content) {
+
     _content.value = content;
   }
 

+ 1 - 1
lib/module/feedback/feedback_page.dart

@@ -79,7 +79,7 @@ class FeedbackPage extends BasePage<FeedbackController> {
                             expands: true,
                             textAlignVertical: TextAlignVertical.top,
                             decoration: InputDecoration(
-                              counterText: "",
+
                               hintText: controller.getContentHint(),
                               hintStyle: TextStyle(
                                 color: Colors.black.withAlpha(66),

+ 1 - 1
lib/module/mine/mine_view.dart

@@ -106,7 +106,7 @@ class MineView extends BaseView<MineController> {
               height: 56.r,
               fit: BoxFit.contain,
             )
-                : Assets.images.iconMineUserLogged.image(
+                : Assets.images.iconMineUserNoLogin.image(
               width: 56.r,
               height: 56.r,
               fit: BoxFit.contain,

+ 30 - 10
lib/module/store/new_discount/new_discount_controller.dart

@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:agile_pay/flutter_pay.dart';
 import 'package:carousel_slider/carousel_controller.dart';
 import 'package:carousel_slider/carousel_options.dart';
@@ -12,6 +14,7 @@ import '../../../data/bean/goods_info.dart';
 import '../../../data/bean/member_info.dart';
 import '../../../data/bean/pay_way_info.dart';
 import '../../../data/bean/wechat_payment_sign_bean.dart';
+import '../../../data/consts/constants.dart';
 import '../../../data/consts/error_code.dart';
 import '../../../data/consts/payment_type.dart';
 import '../../../data/repository/account_repository.dart';
@@ -33,6 +36,9 @@ import '../../../utils/http_handler.dart';
 import '../../../utils/payment_status_manager.dart';
 import '../../../utils/toast_util.dart';
 import '../store_banner_bean.dart';
+import '../suprise/surprise_dialog.dart';
+import '../ticket/discount_ticket_dialog.dart';
+import 'new_discount_page.dart';
 
 @injectable
 class NewDiscountController extends BaseController
@@ -45,7 +51,8 @@ class NewDiscountController extends BaseController
 
   final PaymentStatusManager paymentStatusManager;
 
-  RxList<GoodsInfo> get goodsInfoList => storeRepository.newDiscountGoodsInfoList;
+  RxList<GoodsInfo> get goodsInfoList =>
+      storeRepository.newDiscountGoodsInfoList;
 
   RxList<PayWayInfo> get payWayList => storeRepository.newDiscountPayWayList;
 
@@ -57,7 +64,6 @@ class NewDiscountController extends BaseController
 
   PayWayInfo? get selectedPayWay => _selectedPayWay.value;
 
-
   CancelableFuture? _storeDataFuture;
 
   bool get isLogin => accountRepository.isLogin.value;
@@ -74,8 +80,6 @@ class NewDiscountController extends BaseController
 
   List<CharacterInfo> get charactersList => _charactersList;
 
-
-
   final CarouselSliderController carouselSliderController =
       CarouselSliderController();
 
@@ -156,11 +160,9 @@ class NewDiscountController extends BaseController
   }
 
   void refreshStoreData() {
-
     storeRepository.refreshNewDiscountGoodsInfoList();
   }
 
-
   void updateFilteredGoodsList() {
     if (_selectedPayWay.value == null) {
       return;
@@ -455,7 +457,6 @@ class NewDiscountController extends BaseController
   void onInit() {
     super.onInit();
 
-
     if (goodsInfoList.isNotEmpty) {
       _selectedGoodsInfoItem.value = goodsInfoList.first;
     }
@@ -464,14 +465,13 @@ class NewDiscountController extends BaseController
       _selectedPayWay.value = payWayList.first;
       updateFilteredGoodsList();
     }
-    
+
     ever<List<GoodsInfo>>(goodsInfoList, (list) {
       if (list.isNotEmpty) {
         _selectedGoodsInfoItem.value = list.first;
       }
     });
 
-
     ever<List<PayWayInfo>>(payWayList, (list) {
       if (list.isNotEmpty) {
         _selectedPayWay.value = list.first;
@@ -480,12 +480,31 @@ class NewDiscountController extends BaseController
     });
   }
 
-
   @override
   void onClose() {
     super.onClose();
     _storeDataFuture?.cancel();
     paymentStatusManager.unregisterPaymentSuccessCallback(this);
+    if (!isFirstIntoDiscount() && !accountRepository.isVipUser) {
+      if (Platform.isAndroid) {
+        DiscountTicketDialog.show(
+          clickConfirm: () {
+            NewDiscountPage.start();
+          },
+          clickCancel: () {},
+        );
+      }
+      if (Platform.isIOS) {
+        SurpriseDialog.show(
+          clickConfirm: () {
+            NewDiscountPage.start();
+          },
+          clickCancel: () {},
+        );
+      }
+    } else {
+      setFirstIntoDiscount(false);
+    }
   }
 
   @override
@@ -496,6 +515,7 @@ class NewDiscountController extends BaseController
   ) {
     LoadingDialog.hide();
     AtmobLog.d(tag, 'onPaymentSuccess: $orderNo');
+    Get.back();
     PaymentSuccessDialog.show(
       goodsInfo: goodsInfo,
       btnConfirm: () {

+ 24 - 15
lib/module/store/store_controller.dart

@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:agile_pay/flutter_pay.dart';
 import 'package:carousel_slider/carousel_controller.dart';
 import 'package:carousel_slider/carousel_options.dart';
@@ -80,17 +82,17 @@ class StoreController extends BaseController implements PaymentStatusCallback {
     StoreBannerBean(
       banner: Assets.images.iconStoreBanner1,
       indicatorImg: Assets.images.iconStoreIndicator1,
-      unSelectedDesc: "助攻追爱",
+      unSelectedDesc: "定制人设",
     ),
     StoreBannerBean(
       banner: Assets.images.iconStoreBanner2,
       indicatorImg: Assets.images.iconStoreIndicator2,
-      unSelectedDesc: "定制人设",
+      unSelectedDesc: "追爱助攻",
     ),
     StoreBannerBean(
       banner: Assets.images.iconStoreBanner3,
       indicatorImg: Assets.images.iconStoreIndicator3,
-      unSelectedDesc: "解锁人设",
+      unSelectedDesc: "自动回复",
     ),
   ];
 
@@ -458,25 +460,32 @@ class StoreController extends BaseController implements PaymentStatusCallback {
   @override
   void onInit() async {
     super.onInit();
-
   }
 
   @override
-  void onClose() async{
+  void onClose() async {
     super.onClose();
     _storeDataFuture?.cancel();
     paymentStatusManager.unregisterPaymentSuccessCallback(this);
-    if (memberStatusInfo != null && memberStatusInfo!.isMember&&isLogin) {
+    if (memberStatusInfo != null && memberStatusInfo!.isMember && isLogin) {
       return;
     }
-    DiscountTicketDialog.show(
-      clickConfirm: () {
-        NewDiscountPage.start();
-      },
-      clickCancel: () {
-
-      },
-    );
+    if (Platform.isAndroid) {
+      DiscountTicketDialog.show(
+        clickConfirm: () {
+          NewDiscountPage.start();
+        },
+        clickCancel: () {},
+      );
+    }
+    if (Platform.isIOS) {
+      SurpriseDialog.show(
+        clickConfirm: () {
+          NewDiscountPage.start();
+        },
+        clickCancel: () {},
+      );
+    }
   }
 
   @override
@@ -486,7 +495,7 @@ class StoreController extends BaseController implements PaymentStatusCallback {
     GoodsInfo goodsInfo,
   ) {
     LoadingDialog.hide();
-
+    Get.back();
     PaymentSuccessDialog.show(
       goodsInfo: goodsInfo,
       btnConfirm: () {

+ 4 - 4
lib/resource/string.gen.dart

@@ -29,7 +29,7 @@ class StringName {
   static final String networkError = 'network_error'.tr; // 网络异常
   static final String needVipTip = 'need_vip_tip'.tr; // 请开通会员解锁权益~
   static final String sensitiveContent = 'sensitive_content'.tr; // 涉及敏感内容
-  static final String accountNoLogin = 'account_no_login'.tr; // 账号未登录
+  static final String accountNoLogin = 'account_no_login'.tr; // 账号未登录,请先登录
   static final String loginAccount = 'login_account'.tr; // 登录账号
   static final String loginAgreePrivacy = 'login_agree_privacy'.tr; // 请先阅读并同意《隐私权政策》和《服务条款》
   static final String loginRequestCodeFrequentlyToast = 'login_request_code_frequently_toast'.tr; // 请求过于频繁,请稍后再试
@@ -97,7 +97,7 @@ class StringName {
   static final String keyboardSaveFailed = 'keyboard_save_failed'.tr; // 保存失败
   static final String addCharacter = 'add_character'.tr; // 添加人设
   static final String customCharacter = 'custom_character'.tr; // 定制人设
-  static final String characterCustomStepsDesc = 'character_custom_steps_desc'.tr; // 量身打造 自定义人设更贴脸
+  static final String characterCustomStepsDesc = 'character_custom_steps_desc'.tr; // 专属于你 独一无二的人设
   static final String characterCustomHobbiesTitle = 'character_custom_hobbies_title'.tr; // 用爱好开启对话,发现更多可能性
   static final String characterCustomcharacterTitle = 'character_custom_character_title'.tr; // 最想用哪三个特质打动TA
   static final String characterCustomNameTitle = 'character_custom_name_title'.tr; // 给人设取一个名字
@@ -378,7 +378,7 @@ class StringMultiSource {
       'network_error': '网络异常',
       'need_vip_tip': '请开通会员解锁权益~',
       'sensitive_content': '涉及敏感内容',
-      'account_no_login': '账号未登录',
+      'account_no_login': '账号未登录,请先登录',
       'login_account': '登录账号',
       'login_agree_privacy': '请先阅读并同意《隐私权政策》和《服务条款》',
       'login_request_code_frequently_toast': '请求过于频繁,请稍后再试',
@@ -446,7 +446,7 @@ class StringMultiSource {
       'keyboard_save_failed': '保存失败',
       'add_character': '添加人设',
       'custom_character': '定制人设',
-      'character_custom_steps_desc': '量身打造 自定义人设更贴脸',
+      'character_custom_steps_desc': '专属于你 独一无二的人设',
       'character_custom_hobbies_title': '用爱好开启对话,发现更多可能性',
       'character_custom_character_title': '最想用哪三个特质打动TA',
       'character_custom_name_title': '给人设取一个名字',

+ 10 - 10
pubspec.lock

@@ -953,42 +953,42 @@ packages:
     dependency: "direct main"
     description:
       name: mmkv
-      sha256: "211e7b6d7a18f8aea00df03e5c0ed01e63e85783618d4a88ea8fbbc9158ca1a5"
+      sha256: d0a3f06cf42404edb09ac33a821d28ccbece894d05b6d66601860703bc77702e
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.1"
+    version: "2.2.1"
   mmkv_android:
     dependency: transitive
     description:
       name: mmkv_android
-      sha256: "5ec42b135c4af6524e78b260921c8c598264535f64eb12e6555ce8023d7a01e0"
+      sha256: eeba5680c5b7e95322134013e970c99a8f32d095b1ef9e22a707765fed3c7847
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.1"
   mmkv_ios:
     dependency: transitive
     description:
       name: mmkv_ios
-      sha256: "8c6fa68b35c3f4748fa5642e9541233a8beeec7e3fbfb5990e2695fe84c8fd94"
+      sha256: "6010ee20126cfadd23e696edf0e131bbf1bec7b895bc67528f7f479632c20854"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.1"
   mmkv_ohos:
     dependency: transitive
     description:
       name: mmkv_ohos
-      sha256: eb56a04f4dfa74cc289d9c5de04ede44c32ada096da9ec1c9610a391eb6ba385
+      sha256: "0fc01fb1de09c002188feaf8c21088ddd95022a58b7d534a73febe00f58600b5"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.1"
   mmkv_platform_interface:
     dependency: transitive
     description:
       name: mmkv_platform_interface
-      sha256: "6e50431524e11edb6c30e1b4b8cd96b8283ed57c1ea8d72d354de9c88039d143"
+      sha256: "65d5c1a2c43ad5d064bbf956eed45bb62e89c4fe8ccac40de829959e16ba62d1"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.1"
   nested:
     dependency: transitive
     description:

+ 1 - 1
pubspec.yaml

@@ -35,7 +35,7 @@ dependencies:
   app_tracking_transparency: ^2.0.6+1
 
   #存储框架
-  mmkv: ^2.1.0
+  mmkv: ^2.2.1
   #网页跳转
   webview_flutter: ^4.10.0
   # 系统的App设置