Files
momo/lib/fluent/login.dart
2023-02-08 17:20:16 +08:00

92 lines
2.9 KiB
Dart

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<LoginForm> createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
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<Secret>(context).setToken(loginResp.token);
context.go("/");
// SharedPreferences.getInstance().then((prefs) {
// prefs.setString("token", loginResp.token);
// });
// .then((value) {
// });
}
});
}
})
],
),
);
}
}