Merge remote-tracking branch 'origin/master'

This commit is contained in:
czz
2025-07-23 13:56:03 +08:00
12 changed files with 682 additions and 296 deletions

View File

@@ -36,7 +36,8 @@ if (flutterVersionName == null) {
} }
android { android {
namespace = "com.taihe.vbvs_app" // namespace = "com.taihe.vbvs_app"
namespace = "com.taihe.mianhuatang"
// compileSdk = flutter.compileSdkVersion // compileSdk = flutter.compileSdkVersion
compileSdk = localProperties.getProperty('flutter.compileSdkVersion').toInteger() compileSdk = localProperties.getProperty('flutter.compileSdkVersion').toInteger()
@@ -55,7 +56,8 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.taihe.vbvs_app" // applicationId "com.taihe.vbvs_app"
applicationId "com.taihe.mianhuatang"
// You can update the following values to match your application needs. // You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
// minSdk = flutter.minSdkVersion // minSdk = flutter.minSdkVersion

View File

@@ -6,7 +6,7 @@ plugins {
} }
android { android {
namespace = "com.taihe.vbvs_app" namespace = "com.taihe.mianhuatang"
compileSdk = flutter.compileSdkVersion compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
@@ -21,7 +21,7 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.taihe.vbvs_app" applicationId = "com.taihe.mianhuatang"
// You can update the following values to match your application needs. // You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config. // For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion minSdk = flutter.minSdkVersion

View File

@@ -48,7 +48,7 @@
android:enableOnBackInvokedCallback="true" android:enableOnBackInvokedCallback="true"
> >
<activity <activity
android:name="com.taihe.mh_app.MainActivity" android:name="com.taihe.mianhuatang.MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:exported="true" android:exported="true"

View File

@@ -1,4 +1,4 @@
package com.taihe.mh_app package com.taihe.mianhuatang
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity

View File

@@ -1,4 +1,9 @@
storePassword=mh1234 # storePassword=taihe601
keyPassword=mh1234 # keyPassword=taihe601
keyAlias=Key # keyAlias=testalias
storeFile=test.keystore # storeFile=test.keystore
storePassword=mht@123456
keyPassword=mht@123456
keyAlias=mianhuatang
storeFile=AppKeys.jks

View File

@@ -1,7 +1,7 @@
sdk.dir=C:\\Users\\Administrator\\AppData\\Local\\Android\\sdk sdk.dir=C:\\Users\\wyf\\AppData\\Local\\Android\\sdk
flutter.sdk=C:\\dev\\flutter flutter.sdk=D:\\flutter_res\\flutter
=======
flutter.buildMode=release flutter.buildMode=debug
flutter.versionName=1.0.0 flutter.versionName=1.0.0
flutter.versionCode=1 flutter.versionCode=1
flutter.minSdkVersion=22 flutter.minSdkVersion=22

View File

@@ -1,3 +1,3 @@
[ [
"assets/miniapp/mhtControl_1.0.30.zip" "assets/miniapp/mhtControl_1.0.31.zip"
] ]

View File

@@ -961,8 +961,10 @@ class MHTLoginPage extends GetView<MHTLoginController> {
), ),
), ),
), ),
); );
}), }),
Obx(() { Obx(() {
return Visibility( return Visibility(
visible: controller.model.loginStyle == 2 visible: controller.model.loginStyle == 2
@@ -1219,6 +1221,7 @@ class MHTLoginPage extends GetView<MHTLoginController> {
), ),
), ),
), ),
); );
}), }),
Padding( Padding(

View File

@@ -1,6 +1,7 @@
import 'package:ef/ef.dart'; import 'package:ef/ef.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/color/appFontsize.dart';
import 'package:vbvs_app/common/util/CommonVariables.dart'; import 'package:vbvs_app/common/util/CommonVariables.dart';
import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart';
@@ -93,7 +94,7 @@ class RegisterPage extends GetView<MHTRegisterController> {
0, 184.rpx, 0, 0), 0, 184.rpx, 0, 0),
child: Container( child: Container(
width: double.infinity, width: double.infinity,
height: bodysize!.maxHeight * 0.06, height: 46,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFF3F5F6), color: Color(0xFFF3F5F6),
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(12),
@@ -103,7 +104,7 @@ class RegisterPage extends GetView<MHTRegisterController> {
), ),
child: Padding( child: Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
35.rpx, 0, 35.rpx, 0), 10, 0, 35.rpx, 0),
child: Row( child: Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
mainAxisAlignment: mainAxisAlignment:
@@ -148,75 +149,88 @@ class RegisterPage extends GetView<MHTRegisterController> {
), ),
), ),
), ),
Align(
alignment: AlignmentDirectional(-1, 0), Padding(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
0, 32.rpx, 0, 0), 0.rpx, 17, 0.rpx, 0),
child: Container( child: Container(
width: double.infinity, width: bodysize!.maxWidth,
height: bodysize!.maxHeight * 0.06, height: 46,
decoration: BoxDecoration(),
child: Stack(
children: [
Align(
alignment: AlignmentDirectional(0, 0),
child: Container(
width: MediaQuery.sizeOf(context)
.width,
height: 46,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFF3F5F6), color: Color(0xFFF3F5F6),
borderRadius: BorderRadius.circular(12), borderRadius:
BorderRadius.circular(12),
), ),
constraints: BoxConstraints(
minHeight: 92.rpx,
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
35.rpx, 0, 35.rpx, 0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Container(
child: Align( child: Align(
alignment: alignment:
AlignmentDirectional( AlignmentDirectional(0, 0),
-1, 0), child: Obx(() {
child: Obx(() => return TextFormField(
TextFormField(
onChanged: (value) {
controller.model
.register_pd =
value;
},
obscureText: controller obscureText: controller
.model.pdshow!, .model.pdshow!,
decoration: onChanged: (value) {
InputDecoration( controller.model
isDense: true, .register_pd = value;
hintText: '请输入密码'.tr, },
initialValue: controller
.model.register_pd,
decoration: InputDecoration(
labelStyle: TextStyle(
fontFamily:
'Readex Pro',
fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
),
hintText: '请输入密码',
hintStyle: TextStyle( hintStyle: TextStyle(
fontFamily: fontFamily:
'Readex Pro', 'Readex Pro',
color: Color( color:
0xFF929699), Color(0xFF929699),
fontSize: 26.rpx, fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
), ),
border: enabledBorder:
InputBorder.none, InputBorder.none,
suffixIcon: focusedBorder:
IconButton( InputBorder.none,
errorBorder:
InputBorder.none,
focusedErrorBorder:
InputBorder.none,
contentPadding:
EdgeInsetsDirectional
.fromSTEB(
10, 12, 0, 0),
suffixIcon: IconButton(
icon: Icon( icon: Icon(
controller.model // 根据 pdshow 控制图标
.pdshow! controller
.model.pdshow!
? Icons ? Icons
.visibility_off .visibility_off
: Icons : Icons
.visibility, .visibility,
color: Color( color:
0xFF333333), Color(0xFF333333),
size: 16, size: 16,
), ),
onPressed: () { onPressed: () {
// 切换 pdshow 状态
controller.model controller.model
.pdshow = .pdshow =
!controller !controller.model
.model
.pdshow!; .pdshow!;
controller controller
.updateAll(); .updateAll();
@@ -224,93 +238,195 @@ class RegisterPage extends GetView<MHTRegisterController> {
), ),
), ),
style: TextStyle( style: TextStyle(
fontFamily: fontFamily: 'Readex Pro',
'Readex Pro', fontSize: AppFontsize
fontSize: 26.rpx, .normal_text_size,
color: Colors.black, letterSpacing: 0,
),
)),
), ),
);
})),
), ),
), ),
], ],
), ),
), ),
), ),
),
),
// 确认密码输入框 // Align(
Align( // alignment: AlignmentDirectional(-1, 0),
alignment: AlignmentDirectional(-1, 0), // child: Padding(
child: Padding( // padding: EdgeInsetsDirectional.fromSTEB(
// 0, 32.rpx, 0, 0),
// child: Container(
// width: double.infinity,
// height: bodysize!.maxHeight * 0.06,
// decoration: BoxDecoration(
// color: Color(0xFFF3F5F6),
// borderRadius: BorderRadius.circular(12),
// ),
// constraints: BoxConstraints(
// minHeight: 92.rpx,
// ),
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(
// 35.rpx, 0, 35.rpx, 0),
// child: Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment:
// MainAxisAlignment.spaceBetween,
// children: [
// Expanded(
// child: Container(
// child: Align(
// alignment:
// AlignmentDirectional(
// -1, 0),
// child: Obx(() =>
// TextFormField(
// onChanged: (value) {
// controller.model
// .register_pd =
// value;
// },
// obscureText: controller
// .model.pdshow!,
// decoration:
// InputDecoration(
// isDense: true,
// hintText: '请输入密码'.tr,
// hintStyle: TextStyle(
// fontFamily:
// 'Readex Pro',
// color: Color(
// 0xFF929699),
// fontSize: 26.rpx,
// ),
// border:
// InputBorder.none,
// suffixIcon:
// IconButton(
// icon: Icon(
// controller.model
// .pdshow!
// ? Icons
// .visibility_off
// : Icons
// .visibility,
// color: Color(
// 0xFF333333),
// size: 16,
// ),
// onPressed: () {
// controller.model
// .pdshow =
// !controller
// .model
// .pdshow!;
// controller
// .updateAll();
// },
// ),
// ),
// style: TextStyle(
// fontFamily:
// 'Readex Pro',
// fontSize: 26.rpx,
// color: Colors.black,
// ),
// )),
// ),
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// ),
Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
0, 32.rpx, 0, 0), 0.rpx, 17, 0.rpx, 0),
child: Container( child: Container(
width: double.infinity, width: bodysize!.maxWidth,
height: bodysize!.maxHeight * 0.06, height: 46,
decoration: BoxDecoration(),
child: Stack(
children: [
Align(
alignment: AlignmentDirectional(0, 0),
child: Container(
width: MediaQuery.sizeOf(context)
.width,
height: 46,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFF3F5F6), color: Color(0xFFF3F5F6),
borderRadius: BorderRadius.circular(12), borderRadius:
BorderRadius.circular(12),
), ),
constraints: BoxConstraints(
minHeight: 92.rpx,
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
35.rpx, 0, 35.rpx, 0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Container(
child: Align( child: Align(
alignment: alignment:
AlignmentDirectional( AlignmentDirectional(0, 0),
-1, 0), child: Obx(() {
child: Obx(() => return TextFormField(
TextFormField( obscureText: controller
.model.cpdshow!,
onChanged: (value) { onChanged: (value) {
controller.model controller.model
.register_confirm_pd = .register_confirm_pd =
value; value;
}, },
obscureText: controller initialValue: controller
.model.cpdshow!, .model
decoration: .register_confirm_pd,
InputDecoration( decoration: InputDecoration(
isDense: true, labelStyle: TextStyle(
hintText: fontFamily:
'请输入确认密码'.tr, 'Readex Pro',
fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
),
hintText: '请确认密码',
hintStyle: TextStyle( hintStyle: TextStyle(
fontFamily: fontFamily:
'Readex Pro', 'Readex Pro',
color: Color( color:
0xFF929699), Color(0xFF929699),
fontSize: 26.rpx, fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
), ),
border: enabledBorder:
InputBorder.none, InputBorder.none,
suffixIcon: focusedBorder:
IconButton( InputBorder.none,
errorBorder:
InputBorder.none,
focusedErrorBorder:
InputBorder.none,
contentPadding:
EdgeInsetsDirectional
.fromSTEB(
10, 12, 0, 0),
suffixIcon: IconButton(
icon: Icon( icon: Icon(
controller.model // 根据 pdshow 控制图标
.pdshow! controller
.model.cpdshow!
? Icons ? Icons
.visibility_off .visibility_off
: Icons : Icons
.visibility, .visibility,
color: Color( color:
0xFF333333), Color(0xFF333333),
size: 16, size: 16,
), ),
onPressed: () { onPressed: () {
// 切换 pdshow 状态
controller.model controller.model
.cpdshow = .cpdshow =
!controller !controller.model
.model
.cpdshow!; .cpdshow!;
controller controller
.updateAll(); .updateAll();
@@ -318,123 +434,379 @@ class RegisterPage extends GetView<MHTRegisterController> {
), ),
), ),
style: TextStyle( style: TextStyle(
fontFamily: fontFamily: 'Readex Pro',
'Readex Pro', fontSize: AppFontsize
fontSize: 26.rpx, .normal_text_size,
color: Colors.black, letterSpacing: 0,
),
)),
), ),
);
})),
), ),
), ),
], ],
), ),
), ),
), ),
),
),
// 验证码输入框 // Align(
Align( // alignment: AlignmentDirectional(-1, 0),
alignment: AlignmentDirectional(-1, 0), // child: Padding(
child: Padding( // padding: EdgeInsetsDirectional.fromSTEB(
// 0, 32.rpx, 0, 0),
// child: Container(
// width: double.infinity,
// height: bodysize!.maxHeight * 0.06,
// decoration: BoxDecoration(
// color: Color(0xFFF3F5F6),
// borderRadius: BorderRadius.circular(12),
// ),
// constraints: BoxConstraints(
// minHeight: 92.rpx,
// ),
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(
// 35.rpx, 0, 35.rpx, 0),
// child: Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment:
// MainAxisAlignment.spaceBetween,
// children: [
// Expanded(
// child: Container(
// child: Align(
// alignment:
// AlignmentDirectional(
// -1, 0),
// child: Obx(() =>
// TextFormField(
// onChanged: (value) {
// controller.model
// .register_confirm_pd =
// value;
// },
// obscureText: controller
// .model.cpdshow!,
// decoration:
// InputDecoration(
// isDense: true,
// hintText:
// '请输入确认密码'.tr,
// hintStyle: TextStyle(
// fontFamily:
// 'Readex Pro',
// color: Color(
// 0xFF929699),
// fontSize: 26.rpx,
// ),
// border:
// InputBorder.none,
// suffixIcon:
// IconButton(
// icon: Icon(
// controller.model
// .pdshow!
// ? Icons
// .visibility_off
// : Icons
// .visibility,
// color: Color(
// 0xFF333333),
// size: 16,
// ),
// onPressed: () {
// controller.model
// .cpdshow =
// !controller
// .model
// .cpdshow!;
// controller
// .updateAll();
// },
// ),
// ),
// style: TextStyle(
// fontFamily:
// 'Readex Pro',
// fontSize: 26.rpx,
// color: Colors.black,
// ),
// )),
// ),
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// ),
// Align(
// alignment: AlignmentDirectional(-1, 0),
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(
// 0, 32.rpx, 0, 0),
// child: Container(
// width: double.infinity,
// height: bodysize!.maxHeight * 0.06,
// decoration: BoxDecoration(
// color: Color(0xFFF3F5F6),
// borderRadius: BorderRadius.circular(12),
// ),
// constraints: BoxConstraints(
// minHeight: 92.rpx,
// ),
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(
// 10, 0, 35.rpx, 0),
// child: Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment:
// MainAxisAlignment.spaceBetween,
// children: [
// Expanded(
// child: Container(
// child: Align(
// alignment:
// AlignmentDirectional(
// -1, 0),
// child: TextFormField(
// onChanged: (value) {
// controller.model
// .register_code =
// value;
// },
// decoration: InputDecoration(
// isDense: true,
// hintText: '请输入验证码',
// hintStyle: TextStyle(
// fontFamily:
// 'Readex Pro',
// color:
// Color(0xFF929699),
// fontSize: 26.rpx,
// ),
// border: InputBorder.none,
// ),
// style: TextStyle(
// fontFamily: 'Readex Pro',
// fontSize: 26.rpx,
// color: Colors.black,
// ),
// ),
// ),
// ),
// ),
// Container(
// width: 1.rpx,
// height: 38.rpx,
// color: Color(0xFF929699),
// ),
// Obx(() {
// final countdownController = Get
// .find<CountdownController>();
// return InkWell(
// onTap: () async {
// if (countdownController
// .countdown.value !=
// 0) return;
// String msg = await controller
// .getCode(context);
// if (msg.isEmpty) {
// countdownController
// .startCountdown(
// AppConstants
// .code_time);
// }
// },
// child: Text(
// countdownController.countdown
// .value ==
// 0
// ? '获取验证码'.tr
// : '${countdownController.countdown.value}秒'
// .tr,
// style: TextStyle(
// fontFamily: 'Readex Pro',
// color: Color(0xFF333333),
// fontSize: 20.rpx,
// ),
// ),
// );
// }),
// ],
// ),
// ),
// ),
// ),
// ),
// 其他部分保持不变...
Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
0, 32.rpx, 0, 0), 0.rpx, 17, 0.rpx, 0),
child: Container( child: Container(
width: double.infinity, width: bodysize!.maxWidth,
height: bodysize!.maxHeight * 0.06, height: 46,
decoration: BoxDecoration(),
child: Stack(
children: [
Align(
alignment: AlignmentDirectional(0, 0),
child: Container(
width: MediaQuery.sizeOf(context)
.width,
height: 46,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFF3F5F6), color: Color(0xFFF3F5F6),
borderRadius: BorderRadius.circular(12), borderRadius:
BorderRadius.circular(12),
), ),
constraints: BoxConstraints(
minHeight: 92.rpx,
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
35.rpx, 0, 35.rpx, 0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Container(
child: Align( child: Align(
alignment: alignment:
AlignmentDirectional( AlignmentDirectional(0, 0),
-1, 0),
child: TextFormField( child: TextFormField(
// focusNode: _focusNode4,
onChanged: (value) { onChanged: (value) {
controller.model controller.model
.register_code = .register_code = value;
value;
}, },
obscureText: false,
decoration: InputDecoration( decoration: InputDecoration(
isDense: true, labelStyle: TextStyle(
fontFamily: 'Readex Pro',
fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
),
hintText: '请输入验证码', hintText: '请输入验证码',
hintStyle: TextStyle( hintStyle: TextStyle(
fontFamily: fontFamily: 'Readex Pro',
'Readex Pro', color: Color(0xFF929699),
color: fontSize: AppFontsize
Color(0xFF929699), .normal_text_size,
fontSize: 26.rpx, letterSpacing: 0,
), ),
border: InputBorder.none, enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder:
InputBorder.none,
contentPadding:
EdgeInsetsDirectional
.fromSTEB(
10, 0, 0, 5),
), ),
style: TextStyle( style: TextStyle(
fontFamily: 'Readex Pro', fontFamily: 'Readex Pro',
fontSize: 26.rpx, fontSize: AppFontsize
color: Colors.black, .normal_text_size,
letterSpacing: 0,
), ),
), ),
), ),
), ),
), ),
Container( Align(
alignment:
AlignmentDirectional(0.2, 0.1),
child: Container(
width: 1.rpx, width: 1.rpx,
height: 38.rpx, height: 38.rpx,
color: Color(0xFF929699), decoration: BoxDecoration(
color: stringToColor("#929699"),
), ),
Obx(() { ),
final countdownController = Get ),
.find<CountdownController>(); Align(
alignment:
AlignmentDirectional(0.9, 0),
child: Container(
width: MediaQuery.sizeOf(context)
.width *
0.157,
height: MediaQuery.sizeOf(context)
.height *
0.014,
constraints: BoxConstraints(
minWidth: 118,
minHeight: 30,
),
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(0, 0),
child: Obx(() {
final CountdownController
countdownController =
Get.find<
CountdownController>();
return InkWell( return InkWell(
onTap: () async { onTap: () async {
if (countdownController if (countdownController
.countdown.value != .countdown.value !=
0) return; 0) {
String msg = await controller return;
.getCode(context);
if (msg.isEmpty) {
countdownController
.startCountdown(
AppConstants
.code_time);
} }
}, if (CommonVariables
child: Text( .isNetWorkOn ==
countdownController.countdown false) {
TopSlideNotification.show(
context,
text:
"网络未连接,请开启设备网络后重试"
.tr,
textColor:
themeController
.currentColor
.sc9);
return;
}
String msg =
await controller
.getCode(context);
if (msg.isNotEmpty) {
return;
}
countdownController
.countdown
.value == .value ==
0 0
? '获取验证码'.tr ? countdownController
: '${countdownController.countdown.value}' .startCountdown(
.tr, AppConstants
.code_time)
: null;
},
child: Text(
countdownController
.countdown
.value ==
0
? '获取验证码'
: '${countdownController.countdown.value}' +
''.tr,
style: TextStyle( style: TextStyle(
fontFamily: 'Readex Pro', fontFamily: 'Readex Pro',
color: Color(0xFF333333), color: Color(0xFF333333),
fontSize: 20.rpx, fontSize: AppFontsize
.normal_text_size,
letterSpacing: 0,
), ),
), ),
); );
}), }),
),
),
),
], ],
), ),
), ),
), ),
),
),
// 其他部分保持不变...
Padding( Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
0, 19, 0, 0), 0, 19, 0, 0),
@@ -577,10 +949,12 @@ class RegisterPage extends GetView<MHTRegisterController> {
0, 0), 0, 0),
child: InkWell( child: InkWell(
onTap: () { onTap: () {
showCustomConfirmOfWebViewDialog( // showCustomConfirmOfWebViewDialog(
context, // context,
"用户协议", // "用户协议",
"/#/pages/agreement/agreement?type=2&hideHead=true"); // "/#/pages/agreement/agreement?type=2&hideHead=true");
Get.toNamed(
"/userAgreementPage");
}, },
child: Text( child: Text(
'《用户协议》'.tr, '《用户协议》'.tr,
@@ -617,10 +991,12 @@ class RegisterPage extends GetView<MHTRegisterController> {
0, 0), 0, 0),
child: InkWell( child: InkWell(
onTap: () { onTap: () {
showCustomConfirmOfWebViewDialog( // showCustomConfirmOfWebViewDialog(
context, // context,
"隐私协议", // "隐私协议",
"/#/pages/agreement/agreement?type=1&hideHead=true"); // "/#/pages/agreement/agreement?type=1&hideHead=true");
Get.toNamed(
"/privacyPolicyPage");
}, },
child: Text( child: Text(
'《隐私协议》'.tr, '《隐私协议》'.tr,

View File

@@ -90,12 +90,12 @@ BEGIN
BLOCK "040904e4" BLOCK "040904e4"
BEGIN BEGIN
VALUE "CompanyName", "com.example" "\0" VALUE "CompanyName", "com.example" "\0"
VALUE "FileDescription", "vbvs_app" "\0" VALUE "FileDescription", "com.taihe.mianhuatang" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "FileVersion", VERSION_AS_STRING "\0"
VALUE "InternalName", "vbvs_app" "\0" VALUE "InternalName", "com.taihe.mianhuatang" "\0"
VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0"
VALUE "OriginalFilename", "vbvs_app.exe" "\0" VALUE "OriginalFilename", "com.taihe.mianhuatang.exe" "\0"
VALUE "ProductName", "vbvs_app" "\0" VALUE "ProductName", "com.taihe.mianhuatang" "\0"
VALUE "ProductVersion", VERSION_AS_STRING "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0"
END END
END END