Commit e7f1f86d445141aabc0f2adde3ef16eba73810c0

Authored by 常守达
1 parent ab7dd190

fix(login): 新手引导退出逻辑;输入框气泡;优惠页滑动

@@ -99,6 +99,20 @@ class PhoneLoginView extends GetView<LoginController> { @@ -99,6 +99,20 @@ class PhoneLoginView extends GetView<LoginController> {
99 controller: controller.phoneController, 99 controller: controller.phoneController,
100 keyboardType: TextInputType.phone, 100 keyboardType: TextInputType.phone,
101 maxLength: 13, 101 maxLength: 13,
  102 + contextMenuBuilder: (BuildContext context,
  103 + EditableTextState editableTextState) {
  104 + // 获取默认的菜单项列表
  105 + List<ContextMenuButtonItem> buttonItems =
  106 + editableTextState.contextMenuButtonItems;
  107 +
  108 + // 例如:只保留“粘贴” (Paste)
  109 + buttonItems.removeWhere((item) =>
  110 + item.type != ContextMenuButtonType.paste);
  111 + return AdaptiveTextSelectionToolbar.buttonItems(
  112 + anchors: editableTextState.contextMenuAnchors,
  113 + buttonItems: buttonItems,
  114 + );
  115 + },
102 inputFormatters: [ 116 inputFormatters: [
103 FilteringTextInputFormatter.allow( 117 FilteringTextInputFormatter.allow(
104 RegExp(r'[0-9\s]')), 118 RegExp(r'[0-9\s]')),
@@ -174,6 +188,20 @@ class PhoneLoginView extends GetView<LoginController> { @@ -174,6 +188,20 @@ class PhoneLoginView extends GetView<LoginController> {
174 focusNode: controller.codeFocusNode, 188 focusNode: controller.codeFocusNode,
175 keyboardType: TextInputType.number, 189 keyboardType: TextInputType.number,
176 maxLength: 6, 190 maxLength: 6,
  191 + contextMenuBuilder: (BuildContext context,
  192 + EditableTextState editableTextState) {
  193 + // 获取默认的菜单项列表
  194 + List<ContextMenuButtonItem> buttonItems =
  195 + editableTextState.contextMenuButtonItems;
  196 +
  197 + // 例如:只保留“粘贴” (Paste)
  198 + buttonItems.removeWhere((item) =>
  199 + item.type != ContextMenuButtonType.paste);
  200 + return AdaptiveTextSelectionToolbar.buttonItems(
  201 + anchors: editableTextState.contextMenuAnchors,
  202 + buttonItems: buttonItems,
  203 + );
  204 + },
177 style: TextStyle( 205 style: TextStyle(
178 color: context.colors.textPrimary, 206 color: context.colors.textPrimary,
179 fontSize: 16, 207 fontSize: 16,
@@ -43,7 +43,7 @@ class MembershipOfferView extends GetView<MembershipOfferController> { @@ -43,7 +43,7 @@ class MembershipOfferView extends GetView<MembershipOfferController> {
43 children: [ 43 children: [
44 Expanded( 44 Expanded(
45 child: SingleChildScrollView( 45 child: SingleChildScrollView(
46 - physics: const ClampingScrollPhysics(), 46 + physics: const NeverScrollableScrollPhysics(),
47 padding: EdgeInsets.fromLTRB( 47 padding: EdgeInsets.fromLTRB(
48 0, 48 0,
49 MediaQuery.paddingOf(context).top + 4, 49 MediaQuery.paddingOf(context).top + 4,
@@ -84,7 +84,7 @@ class UserOnboardingController extends GetxController { @@ -84,7 +84,7 @@ class UserOnboardingController extends GetxController {
84 selections.refresh(); 84 selections.refresh();
85 } 85 }
86 86
87 - void goBack() { 87 + Future<void> goBack() async {
88 if (currentPageIndex.value > 0) { 88 if (currentPageIndex.value > 0) {
89 currentPageIndex.value--; 89 currentPageIndex.value--;
90 return; 90 return;
@@ -93,8 +93,16 @@ class UserOnboardingController extends GetxController { @@ -93,8 +93,16 @@ class UserOnboardingController extends GetxController {
93 Get.back(); 93 Get.back();
94 } else { 94 } else {
95 // SystemNavigator.pop(); 95 // SystemNavigator.pop();
  96 +
  97 + await _userApi.updateOwnerUserInfo(isPassNoviceGuide: 1);
  98 + final userId =
  99 + Get.find<UserPreferencesStorage>().preferences.value.meUserInfo?.id ??
  100 + 0;
  101 + if (userId > 0) {
  102 + Get.find<UserAccountStorage>().markOnboardingCompleted(userId);
  103 + }
  104 +
96 Get.offAllNamed(AppRoutes.home); 105 Get.offAllNamed(AppRoutes.home);
97 - finishOnboarding();  
98 } 106 }
99 } 107 }
100 108