import 'package:flutter/material.dart'; import 'package:dio/dio.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter/services.dart'; import 'package:yaml/yaml.dart'; import '../../../app/enum/config_path_enum.dart'; import 'home.dart'; class Login extends ConsumerStatefulWidget { const Login({super.key}); @override ConsumerState createState() => _LoginPageState(); } class _LoginPageState extends ConsumerState { final dio = Dio(); final _userPwd = TextEditingController(); final _userId = TextEditingController(); late Color primaryColor; bool _isLoading = true; @override void initState() { super.initState(); _loadConfig(); } Future _loadConfig() async { final configString = await rootBundle.loadString( ConfigPathEnum.uiConfig.configPath, ); final config = loadYaml(configString); setState(() { primaryColor = Color(config['theme']['primaryColor']); _isLoading = false; }); } @override Widget build(BuildContext context) { if (_isLoading) { return Scaffold(body: Center(child: CircularProgressIndicator())); } return Scaffold( appBar: AppBar( title: const Text("请登录(模板)", style: TextStyle(color: Colors.white)), centerTitle: true, backgroundColor: primaryColor, ), body: Center( child: Column( children: [ //const Text("测试程序,禁止用于正式环境", style: TextStyle(color: Colors.redAccent)), // Padding( // padding: const EdgeInsets.only( // top: 120, // left: 50, // right: 50, // bottom: 10 // ), // child: TextField( // controller: _userId, // decoration: const InputDecoration( // labelText: "用户名:", // ), // ), // ), // Padding( // padding: const EdgeInsets.only( // top: 0, // left: 50, // right: 50, // bottom: 10 // ), // child: TextField( // controller: _userPwd, // decoration: const InputDecoration( // labelText: "密码:", // ), // obscureText: true, // ), // ), Padding( padding: const EdgeInsets.only(top: 15), child: SizedBox( width: 250, child: ElevatedButton( onPressed: login, style: ButtonStyle( backgroundColor: MaterialStateProperty.all(primaryColor), ), child: const Text( "进入系统", style: TextStyle(color: Colors.white), ), ), ), ), ], ), ), ); } void login() { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute(builder: (context) => const Home()), (router) => false, ); } @override void dispose() { _userPwd.dispose(); _userId.dispose(); super.dispose(); } }