import 'package:flutter_bloc/flutter_bloc.dart'; import '../../domain/usecases/login_usecase.dart'; import 'auth_cubit.dart'; import 'login_state.dart'; class LoginCubit extends Cubit { final LoginUseCase loginUseCase; final AuthCubit authCubit; LoginCubit(this.loginUseCase, this.authCubit) : super(LoginInitial()); /// Login /// @param username 用户名 /// @param password 密码 /// @param sourceType 登录来源: 1:web; 2:mobile; 3:mini_programs; 4:pc Future login(String username, String password, sourceType) async { emit(LoginLoading()); try { final resultUser = await loginUseCase.call( LoginParams(username, password, sourceType), ); authCubit.loginSuccess(resultUser); emit(LoginSuccess(resultUser)); } catch (e) { emit(LoginFailure(e.toString())); } } }