added filter for order
This commit is contained in:
parent
918cb70e2c
commit
9177c08239
|
|
@ -25,10 +25,7 @@ class MyApp extends StatelessWidget {
|
|||
create: (context) => di.sl<UserBloc>(), //..add(CheckUser()),
|
||||
),
|
||||
BlocProvider(
|
||||
create: (context) => di.sl<OrderBloc>()
|
||||
..add(const GetOrders(
|
||||
FilterProductParams(state: GoodsState.Received),
|
||||
)),
|
||||
create: (context) => di.sl<OrderBloc>(),
|
||||
),
|
||||
BlocProvider(
|
||||
create: (context) => di.sl<OrderDetailBloc>(),
|
||||
|
|
|
|||
|
|
@ -7,3 +7,8 @@ enum GoodsState {
|
|||
Received,
|
||||
Delivered,
|
||||
}
|
||||
|
||||
enum OrderFilter {
|
||||
Home,
|
||||
History,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,11 +14,19 @@ class OrderRemoteDataSourceImpl implements OrderRemoteDataSource {
|
|||
final http.Client client;
|
||||
OrderRemoteDataSourceImpl({required this.client});
|
||||
|
||||
// https://192.168.99.64:5001/api/Goods?pageNumber=1&pageSize=10&state=Reserved&state=Received&state=Delivered
|
||||
@override
|
||||
Future<OrderResponseModel> getOrders(FilterProductParams params, String token) async {
|
||||
Uri uri = Uri.parse(
|
||||
'$baseUrl/Goods?pageNumber=${params.offset}&pageSize=${params.limit}${params.state != null ? '&state=${params.state!.name}' : ''}',
|
||||
);
|
||||
Uri uri;
|
||||
if (params.filter == OrderFilter.Home) {
|
||||
uri = Uri.parse(
|
||||
'$baseUrl/Goods?pageNumber=${params.offset}&pageSize=${params.limit}&state=Reserved&state=Received',
|
||||
);
|
||||
} else {
|
||||
uri = Uri.parse(
|
||||
'$baseUrl/Goods?pageNumber=${params.offset}&pageSize=${params.limit}&state=Delivered',
|
||||
);
|
||||
}
|
||||
|
||||
final response = await client.get(
|
||||
uri,
|
||||
|
|
|
|||
|
|
@ -1,19 +1,24 @@
|
|||
import 'package:cargo/domain/domain.dart';
|
||||
|
||||
import '../../../core/utils/date_util.dart';
|
||||
|
||||
class RouteModel extends RouteEntity {
|
||||
const RouteModel({
|
||||
required super.name,
|
||||
required super.lat,
|
||||
required super.long,
|
||||
required super.isCurrent,
|
||||
required super.dateAt,
|
||||
});
|
||||
|
||||
factory RouteModel.fromJson(Map<String, dynamic> json) {
|
||||
DateTime? dateAt = json['DateAt'] != null ? DateTime.parse(json['DateAt']) : null;
|
||||
return RouteModel(
|
||||
name: json['Name'],
|
||||
lat: json['Lat'] + .0,
|
||||
long: json['Long'] + .0,
|
||||
isCurrent: json['IsCurrent'],
|
||||
dateAt: DateUtil.formatDateTimeToDDMMYYYY(dateAt),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -23,6 +28,7 @@ class RouteModel extends RouteEntity {
|
|||
'Lat': lat,
|
||||
'Long': long,
|
||||
'IsCurrent': isCurrent,
|
||||
'DateAt': dateAt,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,23 +3,23 @@ import 'package:cargo/core/core.dart';
|
|||
class FilterProductParams {
|
||||
final int offset;
|
||||
final int limit;
|
||||
final GoodsState? state;
|
||||
final OrderFilter? filter;
|
||||
|
||||
const FilterProductParams({
|
||||
this.offset = 1,
|
||||
this.limit = 10,
|
||||
this.state,
|
||||
this.filter,
|
||||
});
|
||||
|
||||
FilterProductParams copyWith({
|
||||
int? offset,
|
||||
int? limit,
|
||||
GoodsState? state,
|
||||
OrderFilter? filter,
|
||||
}) {
|
||||
return FilterProductParams(
|
||||
offset: offset ?? this.offset,
|
||||
limit: limit ?? this.limit,
|
||||
state: state ?? this.state,
|
||||
filter: filter ?? this.filter,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,16 @@ class RouteEntity extends Equatable {
|
|||
final double lat;
|
||||
final double long;
|
||||
final bool isCurrent;
|
||||
final String dateAt;
|
||||
|
||||
const RouteEntity({
|
||||
required this.name,
|
||||
required this.lat,
|
||||
required this.long,
|
||||
required this.isCurrent,
|
||||
required this.dateAt,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [name, lat, long, isCurrent];
|
||||
List<Object?> get props => [name, lat, long, isCurrent, dateAt];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class _HistoriesScreenState extends State<HistoriesScreen> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
context.read<OrderBloc>().add(const GetOrders(FilterProductParams()));
|
||||
context.read<OrderBloc>().add(const GetOrders(FilterProductParams(filter: OrderFilter.History)));
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
|||
import '../../application/order_bloc/order_bloc.dart';
|
||||
import '../../configs/configs.dart';
|
||||
import '../../core/core.dart';
|
||||
import '../../domain/entities/order/filter_params_model.dart';
|
||||
import '../widgets/widgets.dart';
|
||||
|
||||
class OrdersScreen extends StatefulWidget {
|
||||
|
|
@ -15,6 +16,12 @@ class OrdersScreen extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _OrdersScreenState extends State<OrdersScreen> with AutomaticKeepAliveClientMixin<OrdersScreen> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
context.read<OrderBloc>().add(const GetOrders(FilterProductParams(filter: OrderFilter.Home)));
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
|
|
@ -43,14 +50,16 @@ class _OrdersScreenState extends State<OrdersScreen> with AutomaticKeepAliveClie
|
|||
Text(
|
||||
'my_orders'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Space.yf(0.30),
|
||||
Text(
|
||||
'follow_orders'.tr(),
|
||||
style: const TextStyle(
|
||||
color: Colors.grey,
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class LocationCard extends StatelessWidget {
|
|||
),
|
||||
const Spacer(),
|
||||
Text(
|
||||
'30.02.2024', // routes[index].date,
|
||||
routes[index].dateAt,
|
||||
style: AppText.b1!.copyWith(color: AppColors.grey),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue