import 'dart:convert'; import 'dart:io'; import 'dart:math'; import 'package:fluent_ui/fluent_ui.dart'; import 'package:go_router/go_router.dart'; import 'package:http/http.dart' as http; import 'package:momo/models/login_resp.dart'; import 'package:momo/provider/token.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; class LoginPage extends StatelessWidget { const LoginPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( // padding: EdgeInsets.all(100), color: Colors.white, child: const ScaffoldPage( header: PageHeader( title: Text("登录"), ), content: LoginForm(), ), ); } } class LoginForm extends StatefulWidget { const LoginForm({Key? key}) : super(key: key); @override State createState() => _LoginFormState(); } class _LoginFormState extends State { TextEditingController usernameController = TextEditingController(); TextEditingController passwordController = TextEditingController(); @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.fromLTRB(50, 0, 50, 0), child: ListView( children: [ TextBox( controller: usernameController, header: "账号", placeholder: "请输入账号", ), TextBox( controller: passwordController, header: "密码", placeholder: "请输入密码", ), FilledButton( child: Text('登录'), onPressed: () { if (usernameController.text.isNotEmpty && passwordController.text.isNotEmpty) { http .post(Uri.parse("http://192.168.110.156:8080/user/login"), headers: {"Content-Type": "application/json"}, body: jsonEncode({ "username": usernameController.text, "password": passwordController.text })) .then((resp) { print(resp.body); if (resp.statusCode == HttpStatus.ok) { LoginResp loginResp = LoginResp.fromJson(jsonDecode(resp.body)); print(loginResp.token); // Provider.of(context).setToken(loginResp.token); context.go("/"); // SharedPreferences.getInstance().then((prefs) { // prefs.setString("token", loginResp.token); // }); // .then((value) { // }); } }); } }) ], ), ); } }