61 lines
1.9 KiB
Dart
61 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:lamiter/Class/API/api.dart';
|
|
import 'package:lamiter/Class/Entity/entity.dart';
|
|
import 'package:lamiter/Class/Service/product.dart';
|
|
import 'package:lamiter/Class/Service/service_item_filt_type.dart';
|
|
import 'package:lamiter/Provider/Service/service_item_provider.dart';
|
|
import 'package:lamiter/Provider/User/manager_provider.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
class ProductProvider extends ServiceItemProvider {
|
|
ProductProvider() : super() {
|
|
super.init();
|
|
}
|
|
|
|
@override
|
|
List<ServiceItemFiltType> filtTypes() {
|
|
return [
|
|
ServiceItemFiltType.supportCompany,
|
|
ServiceItemFiltType.productCategory,
|
|
ServiceItemFiltType.urbanDisease,
|
|
ServiceItemFiltType.constitution,
|
|
ServiceItemFiltType.postureIssue,
|
|
];
|
|
}
|
|
|
|
@override
|
|
Future<void> refresh(BuildContext context) async {
|
|
final manaer = context.read<ManagerProvider>().self;
|
|
|
|
// 商品
|
|
var res = await API().get_products(manaer!.id!);
|
|
if (res.containsKey("success")) {
|
|
serviceItems = res["success"]
|
|
.map<Product>((json) => Product.fromJson(json))
|
|
.toList();
|
|
filtedList = sortWithLastUpdateTime(serviceItems);
|
|
}
|
|
|
|
// 品牌
|
|
Set<Entity> companyPairsSet = {};
|
|
for (var serviceItem in serviceItems) {
|
|
var companyPair =
|
|
Entity(id: serviceItem.companyId, name: serviceItem.companyName);
|
|
companyPairsSet.add(companyPair);
|
|
}
|
|
companyPairs = companyPairsSet.toList();
|
|
|
|
// 商品種類
|
|
Set<Entity> productCategoryPairsSet = {};
|
|
for (Product serviceItem in serviceItems as List<Product>) {
|
|
var productCategoryPair = Entity(
|
|
id: serviceItem.productCategoryId,
|
|
name: serviceItem.productCategoryName);
|
|
productCategoryPairsSet.add(productCategoryPair);
|
|
}
|
|
productCategoryPairs = productCategoryPairsSet.toList();
|
|
|
|
notifyListeners();
|
|
}
|
|
}
|