完成集成新的登录接口的更换使用 完成集成用户的场站列表接口 完成开发设计选择场站项为全局属性 完成我的页面的个人信息的集成和详情页面的开发 完成设备页面的中无人机机场的列表接口对接入和个项页面的布局的优化 完成设备页面的中无人机机场的详情接口的对接和使用和页面的更新布局
38 lines
1.3 KiB
Dart
38 lines
1.3 KiB
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:maibu_satabot_v2/core/app/app_user_cubit.dart';
|
|
import 'package:maibu_satabot_v2/core/di/injection.dart';
|
|
import 'package:maibu_satabot_v2/features/devices/presentation/bloc/devices_cubit.dart';
|
|
|
|
import '../../domain/usecases/login_usecase.dart';
|
|
import 'auth_cubit.dart';
|
|
import 'login_state.dart';
|
|
|
|
class LoginCubit extends Cubit<LoginState> {
|
|
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<void> login(String username, String password, sourceType) async {
|
|
emit(LoginLoading());
|
|
try {
|
|
final result = await loginUseCase.call(LoginParams(username, password, sourceType));
|
|
// final user = sl<AppUserCubit>().state.user;
|
|
// final devicesCubit = sl<DevicesCubit>();
|
|
// if (user != null) {
|
|
// devicesCubit.fetchAllDevices(user.username);
|
|
// }
|
|
result.fold((failure) => emit(LoginFailure(failure.message)), (user) {
|
|
emit(LoginSuccess(user));
|
|
authCubit.loginSuccess(user);
|
|
});
|
|
} catch (e) {
|
|
emit(LoginFailure(e.toString()));
|
|
}
|
|
}
|
|
}
|