import 'package:bitsdojo_window/bitsdojo_window.dart'; import 'package:common/utils/platform_utils.dart'; import 'package:common/utils/toast_utils.dart'; import 'package:flutter/material.dart'; import 'package:web_synchronization_tool/login/login_socket_utils.dart'; import 'package:web_synchronization_tool/login/widget/account_number_login_widget.dart'; import 'package:web_synchronization_tool/windows/windows_main_page.dart'; import 'package:window_manager/window_manager.dart'; import '../windows/socket_tool.dart'; class LoginPage extends StatefulWidget { const LoginPage({super.key}); @override State createState() => _LoginPageState(); } class _LoginPageState extends State { @override void initState() { super.initState(); initWindow(); LoginSocketUtils.getInstance().connect(); } initWindow(){ //允许调整窗口大小 windowManager.setResizable(false); const double width = 800; const double height = 600; //设置最小大小 const windowSize = Size(width, height); windowManager.setSize(windowSize); appWindow.minSize = windowSize; windowManager.center(); windowManager.focus(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: const Color(0xff272b38), body: Padding( padding: const EdgeInsets.all( 140 ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( width: PlatformUtils.isPhoneWeb(context) ? MediaQuery.of(context).size.width - 40 : 400, child: AccountNumberLoginWidget( loginTap: Login, ), ), ], ), ), ); } /// 登录 Login(String account, String password) { ToastUtils.showLoading(); /// 发送登录消息 LoginSocketUtils.getInstance().login(account, password,(data){ ToastUtils.dismissLoading(); if(data['err'] == 1){ ToastUtils.showToast('登录失败!请检查账号和密码'); return; } /// 登录服务心跳 LoginSocketUtils.getInstance().heartbeat(); /// 同步socket SocketUtils.getInstance().connect(); SocketUtils.getInstance().heartbeat(); Navigator.pushAndRemoveUntil( context, MaterialPageRoute(builder: (_) => const WindowsPage()), (route) => false); }); } }