Commit 7209ed34 authored by skeyboy's avatar skeyboy

登录页新增用户协议检测校验

parent 70d05346
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:sign_in_with_apple/sign_in_with_apple.dart'; import 'package:sign_in_with_apple/sign_in_with_apple.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -28,6 +29,9 @@ class SignInController extends GetxController { ...@@ -28,6 +29,9 @@ class SignInController extends GetxController {
RxBool loginBtnEable = false.obs; RxBool loginBtnEable = false.obs;
RxString codeTileStr = "获取验证码".obs; RxString codeTileStr = "获取验证码".obs;
// 隐私政策是否勾选
RxBool privactChecked = false.obs;
/// 倒计时的计时器。 /// 倒计时的计时器。
late Timer _timer; late Timer _timer;
...@@ -45,6 +49,7 @@ class SignInController extends GetxController { ...@@ -45,6 +49,7 @@ class SignInController extends GetxController {
// ---------------------------------------------------------------- // ----------------------------------------------------------------
// email的控制器 // email的控制器
final TextEditingController emailController = TextEditingController(); final TextEditingController emailController = TextEditingController();
// 密码的控制器 // 密码的控制器
final TextEditingController passController = TextEditingController(); final TextEditingController passController = TextEditingController();
...@@ -67,8 +72,11 @@ class SignInController extends GetxController { ...@@ -67,8 +72,11 @@ class SignInController extends GetxController {
// 执行登录操作 // 执行登录操作
handleSignIn() async { handleSignIn() async {
if (Platform.isAndroid && privactChecked == false) {
if(!GetUtils.isPhoneNumber(mobileMemberController.text)) { EasyLoading.showToast("请阅读并同意《用户协议》《隐私政策》");
return;
}
if (!GetUtils.isPhoneNumber(mobileMemberController.text)) {
EasyLoading.showToast("请输入手机号"); EasyLoading.showToast("请输入手机号");
return; return;
} }
...@@ -188,11 +196,11 @@ class SignInController extends GetxController { ...@@ -188,11 +196,11 @@ class SignInController extends GetxController {
} }
chageCodeStatus() async { chageCodeStatus() async {
if(!mobileMemberController.text.isNotEmpty) { if (!mobileMemberController.text.isNotEmpty) {
EasyLoading.showToast('请先输入手机号'); EasyLoading.showToast('请先输入手机号');
return; return;
} }
if(codeEnable.value == false) { if (codeEnable.value == false) {
EasyLoading.show(status: "验证码发送太过频繁,请稍后再试"); EasyLoading.show(status: "验证码发送太过频繁,请稍后再试");
return; return;
} }
...@@ -213,7 +221,6 @@ class SignInController extends GetxController { ...@@ -213,7 +221,6 @@ class SignInController extends GetxController {
} else if (!chinaPhoneNumber(mobileMemberController.text)) { } else if (!chinaPhoneNumber(mobileMemberController.text)) {
EasyLoading.showToast("手机号输入有误"); EasyLoading.showToast("手机号输入有误");
// EasyLoading.show(status: "手机号输入有误"); // EasyLoading.show(status: "手机号输入有误");
} else { } else {
EasyLoading.showToast("验证码已发送"); EasyLoading.showToast("验证码已发送");
} }
......
...@@ -590,9 +590,11 @@ class SignInPage extends GetView<SignInController> { ...@@ -590,9 +590,11 @@ class SignInPage extends GetView<SignInController> {
} }
Widget buildAndroidSigin(BuildContext buildContext) { Widget buildAndroidSigin(BuildContext buildContext) {
return WillPopScope(onWillPop: () async{ return WillPopScope(
onWillPop: () async {
return false; return false;
},child: GestureDetector( },
child: GestureDetector(
behavior: HitTestBehavior.translucent, behavior: HitTestBehavior.translucent,
onTap: () => Focus.of(buildContext).unfocus(), onTap: () => Focus.of(buildContext).unfocus(),
child: Container( child: Container(
...@@ -712,10 +714,11 @@ class SignInPage extends GetView<SignInController> { ...@@ -712,10 +714,11 @@ class SignInPage extends GetView<SignInController> {
Flexible(child: Container()), Flexible(child: Container()),
GestureDetector( GestureDetector(
onTap: () => controller.chageCodeStatus(), onTap: () => controller.chageCodeStatus(),
child: Obx(()=>Text( child: Obx(() => Text(
controller.codeTileStr.value, controller.codeTileStr.value,
style: const TextStyle( style: const TextStyle(
color: Colors.white54, fontSize: 12), color: Colors.white54,
fontSize: 12),
)), )),
) )
], ],
...@@ -740,11 +743,73 @@ class SignInPage extends GetView<SignInController> { ...@@ -740,11 +743,73 @@ class SignInPage extends GetView<SignInController> {
), ),
), ),
const SizedBox(height: defaultPadding), const SizedBox(height: defaultPadding),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Obx(() => Checkbox(
shape: const CircleBorder(),
value: controller.privactChecked.value,
checkColor: kPrimaryColor,
onChanged: (onChanged) => controller
.privactChecked
.value = onChanged ?? false)),
RichText(
text: TextSpan(children: <InlineSpan>[
const TextSpan(
text: '请阅读并同意',
style:
TextStyle(color: Colors.white)),
TextSpan(
text: '《用户协议》',
style:
const TextStyle(color: Colors.grey),
recognizer: TapGestureRecognizer()
..onTap = () {
Get.toNamed(AppRoutes.USER_PRIVACT);
},
),
TextSpan(
text: '《隐私政策》',
style:
const TextStyle(color: Colors.grey),
recognizer: TapGestureRecognizer()
..onTap = () {
Get.toNamed(AppRoutes.PRIVACT);
},
),
]),
)
],
)
], ],
), ),
), ),
), ),
Spacer(), Spacer(),
// Row(
// children: [
// Spacer(),
// RichText(
// text: TextSpan(children: [
// const TextSpan(text: "同意"),
// TextSpan(
// text: "《服务协议》",
// recognizer: TapGestureRecognizer()
// ..onTap = () {
// Get.toNamed(AppRoutes.PRIVACT);
// }),
// const TextSpan(text: " "),
// TextSpan(
// text: "《隐私政策》",
// recognizer: TapGestureRecognizer()
// ..onTap = () {
// Get.toNamed(AppRoutes.USER_PRIVACT);
// }),
// ]),
// )
// ],
// )
], ],
), ),
], ],
...@@ -752,7 +817,8 @@ class SignInPage extends GetView<SignInController> { ...@@ -752,7 +817,8 @@ class SignInPage extends GetView<SignInController> {
], ],
), ),
), ),
),); ),
);
// return GestureDetector( // return GestureDetector(
// behavior: HitTestBehavior.translucent, // behavior: HitTestBehavior.translucent,
// onTap: () => FocusScope.of(buildContext).unfocus(), // onTap: () => FocusScope.of(buildContext).unfocus(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment