| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import 'package:electronic_assistant/base/base_controller.dart';
- import 'package:electronic_assistant/data/consts/constants.dart';
- import 'package:electronic_assistant/data/repositories/account_repository.dart';
- import 'package:electronic_assistant/dialog/alert_dialog.dart';
- import 'package:electronic_assistant/module/browser/view.dart';
- import 'package:electronic_assistant/utils/error_handler.dart';
- import 'package:electronic_assistant/utils/expand.dart';
- import 'package:electronic_assistant/utils/toast_util.dart';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- class LoginController extends BaseController {
- final phone = "".obs;
- final code = "".obs;
- final isAgree = false.obs;
- final FocusNode phoneFocusNode = FocusNode();
- @override
- void onReady() {
- super.onReady();
- phoneFocusNode.requestFocus();
- }
- void getUserCode() {
- if (phone.value.isEmpty) {
- ToastUtil.showToast("请输入手机号");
- return;
- }
- accountRepository.getVerificationCode(phone.value).then((data) {
- ToastUtil.showToast("验证码已发送");
- }).catchError((error) {
- ErrorHandler.toastError(error);
- });
- }
- void login() {
- FocusScope.of(Get.context!).requestFocus(FocusNode());
- if (phone.value.isEmpty) {
- ToastUtil.showToast("请输入手机号");
- return;
- }
- if (code.value.isEmpty) {
- ToastUtil.showToast("请输入验证码");
- return;
- }
- if (!isAgree.value) {
- EAAlertDialog.show(
- title: "隐私政策及权限说明",
- contentWidget: Wrap(
- children: [
- Text(
- "进入下一步前,请先阅读并同意小听的",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: "#5F5F61".toColor(),
- fontSize: 14,
- decoration: TextDecoration.none,
- ),
- ),
- GestureDetector(
- onTap: () {
- BrowserPage.start(Constants.privacyPolicy);
- },
- child: Text(
- "《隐私政策》",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: "#5E8BFF".toColor(),
- fontSize: 14,
- decoration: TextDecoration.none,
- ),
- ),
- ),
- Text(
- "和",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: "#5F5F61".toColor(),
- fontSize: 14,
- decoration: TextDecoration.none,
- ),
- ),
- GestureDetector(
- onTap: () {
- BrowserPage.start(Constants.userAgreement);
- },
- child: Text(
- "《用户使用协议》",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: "#5E8BFF".toColor(),
- fontSize: 14,
- decoration: TextDecoration.none,
- ),
- ),
- ),
- Text(
- "。",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: "#5F5F61".toColor(),
- fontSize: 14,
- decoration: TextDecoration.none,
- ),
- ),
- ],
- ),
- cancelText: "不同意",
- confirmText: "同意并继续",
- cancelOnTap: () {
- EAAlertDialog.dismiss();
- },
- confirmOnTap: () {
- EAAlertDialog.dismiss();
- isAgree.value = true;
- login();
- },
- );
- return;
- }
- if (phone.value.isEmpty || code.value.isEmpty) {
- return;
- }
- accountRepository.login(phone.value, code.value).then((data) {
- ToastUtil.showToast("登录成功");
- Get.back(result: true);
- }).catchError((error) {
- ErrorHandler.toastError(error);
- });
- }
- void setPhone(String text) {
- phone.value = text;
- }
- void setCode(String text) {
- code.value = text;
- }
- }
|