diff --git a/assets/langs/en_US.json b/assets/langs/en_US.json index a13765e..58459bd 100644 --- a/assets/langs/en_US.json +++ b/assets/langs/en_US.json @@ -506,6 +506,10 @@ "选择生日": "Select Birthday", "sleep_duration": "Sleep Duration", "deep_sleep": "Deep Sleep", - "light_sleep": "Light Sleep", "女": "Female", - "男": "Male" + "light_sleep": "Light Sleep", + "是": "Yes", + "否": "No", + "男": "Male", + "女": "Female", + "可用WLAN": "Available WiFi" } \ No newline at end of file diff --git a/assets/langs/zh_CN.json b/assets/langs/zh_CN.json index d7e9433..107c222 100644 --- a/assets/langs/zh_CN.json +++ b/assets/langs/zh_CN.json @@ -519,6 +519,10 @@ "选择生日": "选择生日", "sleep_duration": "睡眠时长", "deep_sleep": "深睡", - "light_sleep": "浅睡", "女": "女", - "男": "男" + "light_sleep": "浅睡", + "是": "是", + "否": "否", + "男": "男", + "女": "女", + "可用WLAN": "可用WLAN" } \ No newline at end of file diff --git a/assets/langs/zh_TW.json b/assets/langs/zh_TW.json index 2750311..3dbd359 100644 --- a/assets/langs/zh_TW.json +++ b/assets/langs/zh_TW.json @@ -504,6 +504,9 @@ "sleep_duration": "睡眠時長", "deep_sleep": "深睡", "light_sleep": "淺睡", + "是": "是", + "否": "否", + "男": "男", "女": "女", "男": "男" } \ No newline at end of file diff --git a/lib/common/color/appConstants.dart b/lib/common/color/appConstants.dart index ad3db4f..a19f8b0 100644 --- a/lib/common/color/appConstants.dart +++ b/lib/common/color/appConstants.dart @@ -74,18 +74,30 @@ String getPrivacy(int type) { } if (AppConstants().ent_type == APPPackageType.MHT.code) { if (type == 1) { - return ServiceConstant.policy_url + "/mht_privacy_policy_$language.html"; + return ServiceConstant.policy_url + + "/mht" + + "/mht_privacy_policy_$language.html"; } - return ServiceConstant.policy_url + "/mht_user_policy_$language.html"; + return ServiceConstant.policy_url + + "/mht" + + "/mht_user_policy_$language.html"; } else if (AppConstants().ent_type == APPPackageType.TH.code) { if (type == 1) { - return ServiceConstant.policy_url + "/th_privacy_policy_$language.html"; + return ServiceConstant.policy_url + + "/th" + + "/th_privacy_policy_$language.html"; } - return ServiceConstant.policy_url + "/th_user_policy_$language.html"; + return ServiceConstant.policy_url + + "/th" + + "/th_user_policy_$language.html"; } else { if (type == 1) { - return ServiceConstant.policy_url + "/th_privacy_policy_$language.html"; + return ServiceConstant.policy_url + + "/th" + + "/th_privacy_policy_$language.html"; } - return ServiceConstant.policy_url + "/th_user_policy_$language.html"; + return ServiceConstant.policy_url + + "/th" + + "/th_user_policy_$language.html"; } } diff --git a/lib/pages/login/th_bind_tel_page.dart b/lib/pages/login/th_bind_tel_page.dart new file mode 100644 index 0000000..1b8312e --- /dev/null +++ b/lib/pages/login/th_bind_tel_page.dart @@ -0,0 +1,621 @@ +import 'package:ef/ef.dart'; +import 'package:flutter/material.dart'; +import 'package:flutterflow_ui/flutterflow_ui.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; +import 'package:vbvs_app/common/color/appFontsize.dart'; +import 'package:vbvs_app/common/color/app_uri_status.dart'; +import 'package:vbvs_app/common/util/CheckNetwork.dart'; +import 'package:vbvs_app/common/util/FitTool.dart'; +import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/component/tool/CustomCard.dart'; +import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; +import 'package:vbvs_app/controller/time/countdown_controller.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; +import 'package:vbvs_app/model/api_response.dart'; +import 'package:vbvs_app/pages/mh_page/user/controller/bind_tel_controller.dart'; +import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_controller.dart'; + +class THBindTelWidget extends GetView { + BoxConstraints? bodysize; + Map img; + + final scaffoldKey = GlobalKey(); + + THBindTelWidget({super.key, required this.img}); + + @override + Widget build(BuildContext context) { + return LayoutBuilder(builder: (context, cc) { + bodysize = cc; + return Container( + // onTap: () => FocusScope.of(context).unfocus(), + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage((img!['img'] == null || "" == img!['img']) + ? 'assets/images/new_background.png' + : img!['img']!), + fit: BoxFit.fill, + ), + ), + child: Scaffold( + resizeToAvoidBottomInset: false, + key: scaffoldKey, + backgroundColor: Colors.transparent, + appBar: AppBar( + backgroundColor: Colors.transparent, + automaticallyImplyLeading: false, + iconTheme: IconThemeData(color: Colors.white), + title: Container( + width: double.infinity, + height: 180.rpx, + child: Stack( + alignment: Alignment.center, + children: [ + Text( + '绑定手机号码'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: themeController.currentColor.sc3, + letterSpacing: 0, + fontSize: 30.rpx, + ), + ), + Positioned( + left: 0.rpx, + child: returnIconButtomNew(), + ), + ], + ), + ), + actions: [], + centerTitle: false, + ), + body: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 1, + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + child: Padding( + padding: + EdgeInsetsDirectional.fromSTEB(49.rpx, 0, 49.rpx, 0), + child: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 0.886, + decoration: BoxDecoration(), + child: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 1, + decoration: BoxDecoration(), + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + Padding( + padding: + EdgeInsetsDirectional.fromSTEB(0, 92, 0, 0), + child: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 0.05, + decoration: BoxDecoration(), + child: Align( + alignment: AlignmentDirectional(-1, 0), + child: Text( + '绑定手机号码'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: themeController.currentColor.sc3, + fontSize: 24, + letterSpacing: 0.0, + ), + ), + ), + ), + ), + Flexible( + child: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 0.06, + decoration: BoxDecoration(), + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '为了您的账号安全,验证手机号码后,可直接使用此手机号登录。'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: Colors.white, + letterSpacing: 0.0, + ), + ), + ], + ), + ), + ), + Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 0, 95.rpx, 0, 0), // 对齐第一个 UI 的上边距 + child: Container( + width: double.infinity, + height: bodysize!.maxHeight * 0.056, + decoration: BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.circular( + AppConstants().button_container_radius), + border: Border.all( + color: themeController.currentColor.sc4 + .withOpacity(0.5), + width: AppConstants().border_width, + ), + ), + constraints: BoxConstraints( + minHeight: 90.rpx, + ), + child: Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 60.rpx, 0, 35.rpx, 0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Align( + alignment: + AlignmentDirectional(-1, 0), + child: TextFormField( + onChanged: (value) { + controller.model.phone = value; + }, + autofocus: false, + obscureText: false, + decoration: InputDecoration( + isDense: true, + labelStyle: TextStyle( + fontFamily: 'Readex Pro', + fontSize: AppFontsize + .normal_text_size, + letterSpacing: 0.0, + ), + hintText: '请输入手机号'.tr, + hintStyle: TextStyle( + fontFamily: 'Readex Pro', + fontSize: AppFontsize + .normal_text_size, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Color(0x00000000), + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Color(0x00000000), + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + errorBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.red, + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + focusedErrorBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: Colors.red, + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + filled: false, + fillColor: Colors.white, + contentPadding: EdgeInsets.zero, + ), + style: TextStyle( + fontFamily: 'Readex Pro', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + cursorColor: themeController + .currentColor.sc3, + ), + ), + ), + ], + ), + ), + ), + ), + Obx(() { + controller.model.code; + final CountdownController countdownController = + Get.find(); + + return Visibility( + visible: true, + child: Align( + alignment: AlignmentDirectional(-1, 0), + child: Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 0, 26.rpx, 0, 0), + child: Container( + height: bodysize!.maxHeight * 0.056, + width: double.infinity, + decoration: BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.circular( + AppConstants() + .button_container_radius), + border: Border.all( + color: themeController + .currentColor.sc4 + .withOpacity(0.5), + width: AppConstants().border_width, + ), + ), + constraints: BoxConstraints( + minHeight: 90.rpx, + ), + child: Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 35.rpx, 0, 35.rpx, 0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Align( + alignment: + AlignmentDirectional(-1, 0), + child: TextFormField( + onChanged: (value) { + controller.model.code = + value; + }, + autofocus: false, + obscureText: false, + decoration: InputDecoration( + isDense: true, + labelStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + ), + hintText: '请输入验证码', + hintStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + enabledBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + Color(0x00000000), + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + focusedBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + Color(0x00000000), + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + errorBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: Colors.red, + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + focusedErrorBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: Colors.red, + width: 1.rpx, + ), + borderRadius: + BorderRadius.circular( + 8.rpx), + ), + filled: true, + fillColor: + Colors.transparent, + ), + style: TextStyle( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + cursorColor: themeController + .currentColor.sc3, + ), + ), + ), + Padding( + padding: EdgeInsetsDirectional + .fromSTEB(26.rpx, 0, 0, 0), + child: Row( + mainAxisSize: MainAxisSize.max, + children: [ + SizedBox( + height: 30.rpx, + child: VerticalDivider( + thickness: 2.rpx, + color: themeController + .currentColor.sc7, + ), + ), + InkWell( + onTap: () async { + if (countdownController + .countdown + .value != + 0) { + return; + } + String msg = + await controller + .getCode( + context, img); + if (msg.isNotEmpty) { + return; + } + countdownController + .countdown + .value == + 0 + ? countdownController + .startCountdown( + AppConstants + .code_time) + : null; + }, + child: Container( + alignment: + Alignment.center, + constraints: + BoxConstraints( + minWidth: 150.rpx, + ), + child: Text( + countdownController + .countdown + .value == + 0 + ? '获取验证码' + : '${countdownController.countdown.value}秒', + style: TextStyle( + fontFamily: + 'Readex Pro', + color: themeController + .currentColor.sc2, + fontSize: AppConstants() + .title_text_fontSize, + letterSpacing: 0, + ), + ), + ), + ), + ].divide( + SizedBox(width: 26.rpx)), + ), + ), + ], + ), + ), + ), + ), + ), + ); + }), + Padding( + padding: + EdgeInsetsDirectional.fromSTEB(0, 19, 0, 0), + child: Container( + width: bodysize!.maxWidth, + height: bodysize!.maxHeight * 0.022, + constraints: BoxConstraints( + minWidth: 466, + minHeight: 30, + ), + decoration: BoxDecoration(), + ), + ), + // Padding( + // padding: + // EdgeInsetsDirectional.fromSTEB(0, 29, 0, 0), + // child: Container( + // width: bodysize!.maxWidth, + // height: bodysize!.maxHeight * 0.056, + // decoration: BoxDecoration(), + // child: Container( + // width: bodysize!.maxWidth, + // height: bodysize!.maxHeight * 0.056, + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // ), + // child: CustomCard( + // borderRadius: 16.rpx, + // gradientDirection: + // GradientDirection.vertical, + // onTap: () async { + // ApiResponse apiResponse = + // await controller.updateUserPhone(); + + // if (apiResponse.code == + // HttpStatusCodes.ok) { + // UserInfoController userInfoController = + // Get.find(); + // await userInfoController.getUserInfo(); + // MHTLoginController loginController = + // Get.find(); + // //TODO 微信回调监听操作全部跳转页面前成功以后移除监听,防止重复监听,其他方式登录成功也需要移出监听 + // loginController.fluwxCancelable + // ?.cancel(); + // // 登录成功移出网络检查监听 + // Checknetwork.subscription?.cancel(); + // final box = GetStorage(); + // box.remove('countdown'); + // CountdownController + // countdownController = Get.find(); + // countdownController.countdown = 0.obs; + // Get.offAndToNamed( + // "/mianPageBottomChange"); + // } else { + // TopSlideNotification.show(context, + // textColor: themeController + // .currentColor.sc9, + // text: apiResponse.msg ?? '失败'.tr); + // } + // }, + // colors: const [ + // Color(0xFFFCFCFC), + // Color(0xFFF8FAF9), + // Color(0XFFECF6F3), + // Color(0XFFD9F0E9), + // Color(0xFFCEECE3) + // ], + // child: Container( + // width: double.infinity, + // height: 90.rpx, + // alignment: Alignment.center, + // decoration: BoxDecoration( + // borderRadius: + // BorderRadius.circular(16.rpx), + // ), + // child: Text( + // "提交".tr, + // style: TextStyle( + // fontFamily: 'Readex Pro', + // color: Color(0XFF003058), + // letterSpacing: 0, + // fontSize: 26.rpx, + // ), + // ), + // ), + // ), + // ), + // ), + // ), + + Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 0, 26.rpx, 0, 0), // 与登录按钮一致 + child: CustomCard( + borderRadius: AppConstants() + .button_container_radius, // 统一圆角 + // 保留你原有的业务逻辑不变 + onTap: () async { + ApiResponse apiResponse = + await controller.updateUserPhone(); + + if (apiResponse.code == HttpStatusCodes.ok) { + UserInfoController userInfoController = + Get.find(); + await userInfoController.getUserInfo(); + MHTLoginController loginController = + Get.find(); + //TODO 微信回调监听操作全部跳转页面前成功以后移除监听,防止重复监听,其他方式登录成功也需要移出监听 + loginController.fluwxCancelable?.cancel(); + // 登录成功移出网络检查监听 + Checknetwork.subscription?.cancel(); + final box = GetStorage(); + box.remove('countdown'); + CountdownController countdownController = + Get.find(); + countdownController.countdown = 0.obs; + Get.offAndToNamed("/mianPageBottomChange"); + } else { + TopSlideNotification.show( + context, + textColor: + themeController.currentColor.sc9, + text: apiResponse.msg ?? '失败'.tr, + ); + } + }, + // 与“登录按钮”一致的主题渐变 + colors: [ + themeController.currentColor.sc1, + themeController.currentColor.sc2, + ], + child: Container( + width: bodysize!.maxWidth, + height: MediaQuery.sizeOf(context).height * + 0.055, // 与登录按钮一致 + constraints: BoxConstraints( + minWidth: 500.rpx, + minHeight: 90.rpx, + ), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "提交".tr, + style: TextStyle( + color: themeController + .currentColor.sc3, // 与登录按钮一致 + fontFamily: 'Inter', + fontSize: AppConstants() + .normal_text_fontSize, + letterSpacing: 0.0, + ), + ), + ].divide(SizedBox(width: 17.rpx)), + ), + ), + ), + ) + ], + ), + ), + ), + ), + ), + ], + ), + ), + ), + ); + }); + } +} diff --git a/lib/pages/mh_page/new_settingPage.dart b/lib/pages/mh_page/new_settingPage.dart index 8f6f362..b3e9d07 100644 --- a/lib/pages/mh_page/new_settingPage.dart +++ b/lib/pages/mh_page/new_settingPage.dart @@ -338,7 +338,7 @@ class _SettingPageState extends State { 40.rpx, 0.rpx, 40.rpx, 0.rpx), onTap: () { // Get.toNamed("/userAgreementPage"); - Get.toNamed("/privacyPolicyPageNew", + Get.toNamed("/userPolicyPageNew", arguments: getPrivacy(2)); }, child: Container( @@ -388,7 +388,7 @@ class _SettingPageState extends State { 0.rpx, 0.rpx, 0.rpx, 0.rpx), onTap: () { // Get.toNamed("/privacyPolicyPage"); - Get.toNamed("/userPolicyPageNew", + Get.toNamed("/privacyPolicyPageNew", arguments: getPrivacy(1)); }, child: Container( diff --git a/lib/pages/mh_page/user/page/register_page.dart b/lib/pages/mh_page/user/page/register_page.dart index 8a0e265..53c4452 100644 --- a/lib/pages/mh_page/user/page/register_page.dart +++ b/lib/pages/mh_page/user/page/register_page.dart @@ -953,8 +953,13 @@ class RegisterPage extends GetView { // context, // "用户协议", // "/#/pages/agreement/agreement?type=2&hideHead=true"); + // Get.toNamed( + // "/userAgreementPage"); Get.toNamed( - "/userAgreementPage"); + "/userPolicyPageNew", + arguments: + getPrivacy( + 2)); }, child: Text( '《用户协议》'.tr, @@ -995,8 +1000,13 @@ class RegisterPage extends GetView { // context, // "隐私协议", // "/#/pages/agreement/agreement?type=1&hideHead=true"); + // Get.toNamed( + // "/privacyPolicyPage"); Get.toNamed( - "/privacyPolicyPage"); + "/privacyPolicyPageNew", + arguments: + getPrivacy( + 1)); }, child: Text( '《隐私协议》'.tr, diff --git a/lib/pages/policy/privacy_policy.dart b/lib/pages/policy/privacy_policy.dart index d544c4e..c62a6e1 100644 --- a/lib/pages/policy/privacy_policy.dart +++ b/lib/pages/policy/privacy_policy.dart @@ -44,12 +44,13 @@ class _PrivacyPolicyNewPageState extends State { builder: (context, bodySize) => GestureDetector( // onTap: () => FocusScope.of(context).unfocus(),, child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 - fit: BoxFit.fill, // 填满整个 Container - ), - ), + // decoration: BoxDecoration( + // image: DecorationImage( + // image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 + // fit: BoxFit.fill, // 填满整个 Container + // ), + // ), + color: Colors.white, child: Scaffold( backgroundColor: Colors.transparent, // 背景透明 appBar: AppBar( @@ -87,17 +88,21 @@ class _PrivacyPolicyNewPageState extends State { top: true, child: Stack( children: [ - InAppWebView( - key: UniqueKey(), - initialUrlRequest: URLRequest(url: WebUri(widget.sleepUri)), - onLoadStart: (controller, url) { - // 页面开始加载时显示加载指示器 - isPageLoading.value = true; - }, - onLoadStop: (controller, url) { - // 页面加载完成后隐藏加载指示器 - isPageLoading.value = false; - }, + Padding( + padding: EdgeInsets.fromLTRB(0, 0, 30.rpx, 0), + child: InAppWebView( + key: UniqueKey(), + initialUrlRequest: + URLRequest(url: WebUri(widget.sleepUri)), + onLoadStart: (controller, url) { + // 页面开始加载时显示加载指示器 + isPageLoading.value = true; + }, + onLoadStop: (controller, url) { + // 页面加载完成后隐藏加载指示器 + isPageLoading.value = false; + }, + ), ), ValueListenableBuilder( valueListenable: isPageLoading, diff --git a/lib/pages/policy/user_policy.dart b/lib/pages/policy/user_policy.dart index 634bc65..6483721 100644 --- a/lib/pages/policy/user_policy.dart +++ b/lib/pages/policy/user_policy.dart @@ -44,12 +44,13 @@ class _UserPrivacyNewPageState extends State { builder: (context, bodySize) => GestureDetector( // onTap: () => FocusScope.of(context).unfocus(),, child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 - fit: BoxFit.fill, // 填满整个 Container - ), - ), + // decoration: BoxDecoration( + // image: DecorationImage( + // image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 + // fit: BoxFit.fill, // 填满整个 Container + // ), + // ), + color: Colors.white, child: Scaffold( backgroundColor: Colors.transparent, // 背景透明 appBar: AppBar( @@ -87,17 +88,21 @@ class _UserPrivacyNewPageState extends State { top: true, child: Stack( children: [ - InAppWebView( - key: UniqueKey(), - initialUrlRequest: URLRequest(url: WebUri(widget.sleepUri)), - onLoadStart: (controller, url) { - // 页面开始加载时显示加载指示器 - isPageLoading.value = true; - }, - onLoadStop: (controller, url) { - // 页面加载完成后隐藏加载指示器 - isPageLoading.value = false; - }, + Padding( + padding: EdgeInsets.symmetric(horizontal: 30.rpx), + child: InAppWebView( + key: UniqueKey(), + initialUrlRequest: + URLRequest(url: WebUri(widget.sleepUri)), + onLoadStart: (controller, url) { + // 页面开始加载时显示加载指示器 + isPageLoading.value = true; + }, + onLoadStop: (controller, url) { + // 页面加载完成后隐藏加载指示器 + isPageLoading.value = false; + }, + ), ), ValueListenableBuilder( valueListenable: isPageLoading, diff --git a/lib/routers/mh_routers.dart b/lib/routers/mh_routers.dart index 070daa9..8d6fc7e 100644 --- a/lib/routers/mh_routers.dart +++ b/lib/routers/mh_routers.dart @@ -157,7 +157,10 @@ var mhonGenerateRoute = (RouteSettings settings) { settings.name != "/findPasswordPage" && settings.name != "/userAgreementPage" && settings.name != "/privacyPolicyPage" && - settings.name != "/auth_bind_tel") { + settings.name != "/auth_bind_tel" && + settings.name != "/userPolicyPageNew" && + settings.name != "/privacyPolicyPageNew" + ) { // TopSlideNotification.show( // navigatorKey.currentContext!, // text: "必须登录提示".tr, diff --git a/lib/routers/routers.dart b/lib/routers/routers.dart index b22f452..19a512a 100644 --- a/lib/routers/routers.dart +++ b/lib/routers/routers.dart @@ -24,6 +24,7 @@ import 'package:vbvs_app/pages/device_bind/wifi_page.dart'; import 'package:vbvs_app/pages/device_bind/wifi_page_person.dart'; import 'package:vbvs_app/pages/login/LogoutPage.dart'; import 'package:vbvs_app/pages/login/other_login.dart'; +import 'package:vbvs_app/pages/login/th_bind_tel_page.dart'; import 'package:vbvs_app/pages/main_bottom/e_page.dart'; import 'package:vbvs_app/pages/main_bottom/follow_page.dart'; import 'package:vbvs_app/pages/main_bottom/help_page.dart'; @@ -109,7 +110,7 @@ var routes = { type: arguments, ), "/deleteAccount": (context, {arguments}) => LogoutPage(), - "/auth_bind_tel": (context, {arguments}) => BindTelWidget( + "/auth_bind_tel": (context, {arguments}) => THBindTelWidget( img: arguments, ), "/userPolicyPageNew": (contxt, {arguments}) => @@ -133,7 +134,9 @@ var onGenerateRoute = (RouteSettings settings) { settings.name != "/otherLoginPage" && settings.name != "/mianPageBottomChange" && settings.name != "/userSchemePage" && - settings.name != "/privacyPage") { + settings.name != "/privacyPage" && + settings.name != "/userPolicyPageNew" && + settings.name != "/privacyPolicyPageNew") { TopSlideNotification.show( Get.context!, text: "必须登录提示".tr,