Browse Source

refactor : 登录页

dev
徐振升 2 weeks ago
parent
commit
b083dd0f83
  1. BIN
      assets/images/background.png
  2. 7
      lib/main.dart
  3. 135
      lib/modules/auth/views/login_page.dart

BIN
assets/images/background.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 85 KiB

7
lib/main.dart

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_navigation/src/root/get_material_app.dart';
import 'package:get_storage/get_storage.dart';
@ -9,7 +10,11 @@ import 'package:problem_check_system/app/bindings/initial_binding.dart';
void main() async {
// Flutter Binding
WidgetsFlutterBinding.ensureInitialized();
//
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
// GetStorage
await GetStorage.init();

135
lib/modules/auth/views/login_page.dart

@ -9,82 +9,85 @@ class LoginPage extends GetView<AuthController> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(children: [_buildBackground(), _buildLoginCard(controller)]),
);
return Scaffold(body: SingleChildScrollView(child: _buildBackground()));
}
Widget _buildBackground() {
return Stack(
children: [
Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/background.png'),
fit: BoxFit.fitWidth,
),
),
),
Positioned(
left: 28.5.w,
top: 89.5.h,
child: Image.asset(
'assets/images/label.png',
width: 171.5.w,
height: 23.5.h,
fit: BoxFit.fitWidth,
),
return Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/background.png'),
// 使 BoxFit.cover
fit: BoxFit.fitWidth,
alignment: Alignment.topCenter,
),
Positioned(
left: 28.5.w,
top: 128.5.h,
child: Image.asset(
'assets/images/label1.png',
width: 296.5.w,
height: 35.5.h,
fit: BoxFit.fitWidth,
),
child: Stack(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height: 89.5.h),
Padding(
padding: EdgeInsets.only(left: 28.5.w),
child: Image.asset(
'assets/images/label.png',
width: 171.5.w,
height: 23.5.h,
fit: BoxFit.fitWidth,
),
),
SizedBox(height: 15.5.h),
Padding(
padding: EdgeInsets.only(left: 28.5.w),
child: Image.asset(
'assets/images/label1.png',
width: 296.5.w,
height: 35.5.h,
fit: BoxFit.fitWidth,
),
),
SizedBox(height: 56.5.h),
Center(child: _buildLoginCard(controller)),
],
),
),
],
],
),
);
}
// _buildLoginCard TextEditingController
Widget _buildLoginCard(AuthController controller) {
return Positioned(
left: 20.5.w,
top: 220.5.h,
child: Container(
width: 334.w,
height: 574.5.h,
decoration: BoxDecoration(
color: const Color(0xFFFFFFFF).withOpacity(0.6),
borderRadius: BorderRadius.all(Radius.circular(23.5.r)),
),
padding: EdgeInsets.all(24.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(height: 16),
// 使 TextEditingController
_buildTextFieldSection(
label: '账号',
hintText: '请输入您的账号',
controller: controller.usernameController,
),
const SizedBox(height: 22),
_buildTextFieldSection(
label: '密码',
hintText: '请输入您的密码',
obscureText: true,
controller: controller.passwordController,
),
const SizedBox(height: 9.5),
_buildRememberPasswordRow(controller),
const SizedBox(height: 138.5),
_buildLoginButton(controller),
],
),
return Container(
width: 334.w,
height: 574.5.h,
decoration: BoxDecoration(
color: const Color(0xFFFFFFFF).withOpacity(0.6),
borderRadius: BorderRadius.all(Radius.circular(23.5.r)),
),
padding: EdgeInsets.all(24.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(height: 16),
// 使 TextEditingController
_buildTextFieldSection(
label: '账号',
hintText: '请输入您的账号',
controller: controller.usernameController,
),
const SizedBox(height: 22),
_buildTextFieldSection(
label: '密码',
hintText: '请输入您的密码',
obscureText: true,
controller: controller.passwordController,
),
const SizedBox(height: 9.5),
_buildRememberPasswordRow(controller),
const SizedBox(height: 138.5),
_buildLoginButton(controller),
],
),
);
}

Loading…
Cancel
Save