|
- import 'dart:async';
-
- import 'package:bloc/bloc.dart';
- import 'package:equatable/equatable.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:zhiying_base_widget/pages/team_page/bloc/team_repository.dart';
- import 'package:zhiying_base_widget/pages/team_page/model/team_data_model.dart';
- import 'package:zhiying_base_widget/pages/team_page/model/team_style_model.dart';
- import 'package:zhiying_comm/zhiying_comm.dart';
-
- part 'team_event.dart';
-
- part 'team_state.dart';
-
- class TeamBloc extends Bloc<TeamEvent, TeamState> {
- // TeamBloc() : super(TeamInitial());
-
- TeamRepository repository;
-
- TeamBloc({@required this.repository}) : super(TeamInitial());
-
-
-
- @override
- Stream<TeamState> mapEventToState(
- TeamEvent event,
- ) async* {
-
- /// 初始化
- if (event is TeamInitEvent) {
- yield* _mapInitEventToState(event);
- }
-
- }
-
- /// 初始化数据
- Stream<TeamState> _mapInitEventToState(TeamInitEvent event) async* {
- var cache = await repository.fetchCacheStyleData(event.data);
- if (!EmptyUtil.isEmpty(cache)) {
- yield TeamLoadedState(styleModel: cache);
- }
- var resultStyle = await repository.fetchNetStyleData(event.data);
- if (!EmptyUtil.isEmpty(resultStyle)) {
- yield TeamLoadedState(styleModel: resultStyle);
- }
- var resultData = await repository.fetchNetData();
- if (!EmptyUtil.isEmpty(resultData) && (!EmptyUtil.isEmpty(resultStyle) || !EmptyUtil.isEmpty(cache))) {
- yield TeamLoadedState(dataModel: resultData, styleModel: !EmptyUtil.isEmpty(resultStyle) ? resultStyle : cache);
- } else {
- yield TeamErrorState();
- }
- }
-
-
-
- }
|