109 lines
2.7 KiB
Dart
109 lines
2.7 KiB
Dart
|
|
import 'package:common/utils/toast_utils.dart';
|
|
import 'login_text_field_widget.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:common/utils/widget_utils.dart';
|
|
|
|
|
|
class LoginController{
|
|
|
|
set name(String newText) {
|
|
if (nameChang != null){
|
|
nameChang!(newText);
|
|
}
|
|
}
|
|
|
|
Function(String name)? nameChang;
|
|
|
|
set password(String newText) {
|
|
if (passwordChang != null){
|
|
passwordChang!(newText);
|
|
}
|
|
}
|
|
|
|
Function(String password)? passwordChang;
|
|
|
|
}
|
|
|
|
|
|
|
|
class AccountNumberLoginWidget extends StatefulWidget {
|
|
const AccountNumberLoginWidget({Key? key, required this.loginTap, this.controller }) : super(key: key);
|
|
|
|
final LoginController? controller;
|
|
final Function(String,String) loginTap;
|
|
|
|
|
|
@override
|
|
State<AccountNumberLoginWidget> createState() =>
|
|
_AccountNumberLoginWidgetState();
|
|
}
|
|
|
|
class _AccountNumberLoginWidgetState extends State<AccountNumberLoginWidget> {
|
|
TextEditingController phoneController = TextEditingController();
|
|
TextEditingController passwordController = TextEditingController();
|
|
|
|
|
|
|
|
_login() {
|
|
|
|
if (phoneController.text.isEmpty || passwordController.text.isEmpty){
|
|
ToastUtils.showToast('请输入账号和密码');
|
|
return;
|
|
}
|
|
|
|
widget.loginTap(phoneController.text,passwordController.text);
|
|
|
|
}
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
|
|
widget.controller?.nameChang = (name){
|
|
phoneController.text = name;
|
|
};
|
|
widget.controller?.passwordChang = (password){
|
|
passwordController.text = password;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
children: [
|
|
LoginPhoneTextField(controller: phoneController),
|
|
WidgetUtils.spacer(height: 15),
|
|
LoginPasswordTextField(controller: passwordController,onSubmitted: (_){
|
|
_login();
|
|
},),
|
|
WidgetUtils.spacer(height: 15),
|
|
const Text('注册请直接输入账号密码 再点击注册',style: TextStyle(fontSize: 14,color: Colors.grey),),
|
|
WidgetUtils.spacer(height: 15),
|
|
TextButton(
|
|
onPressed: _login,
|
|
style: TextButton.styleFrom(padding: EdgeInsets.zero),
|
|
child: Container(
|
|
height: 40,
|
|
alignment: Alignment.center,
|
|
decoration: const BoxDecoration(
|
|
color: Colors.blue,
|
|
borderRadius: BorderRadius.all(Radius.circular(5))),
|
|
child: const Text(
|
|
'登录',
|
|
style: TextStyle(
|
|
fontSize: 16,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|