feat:更新美食记录表单

This commit is contained in:
2025-11-23 00:02:41 +08:00
parent 1ac504f3d7
commit 6308169013
41 changed files with 465 additions and 1618 deletions

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/common_widget.dart';
import 'package:food_hub_app/models/recipe.dart';
import 'package:food_hub_app/provider/food_provider.dart';
import 'package:food_hub_app/utils/index.dart';
@@ -37,7 +38,7 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
},
onPageChanged: (focusedDay) {
provider.focusedDay = focusedDay;
provider.refreshRecordList(null, null);
provider.refreshRecordList();
},
// 自定义日期单元格构建器
calendarBuilders: CalendarBuilders(
@@ -191,9 +192,9 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
Widget _buildContent(FoodProvider provider) {
return Column(
children: [
BuildCard(child: _recipeCalendar(provider)),
CommonCard(child: _recipeCalendar(provider)),
SizedBox(height: 8),
Expanded(child: BuildCard(child: _dailyItem(context, provider))),
Expanded(child: CommonCard(child: _dailyItem(context, provider))),
],
);
}
@@ -205,7 +206,7 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
return Stack(
children: [
if (provider.isLoading)
buildLoadingIndicator(context)
buildLoadingIndicator()
else
_buildContent(provider),
],

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/common_widget.dart';
import 'package:food_hub_app/models/recipe.dart';
import 'package:food_hub_app/widgets/common/image.dart';
import 'package:food_hub_app/widgets/common/index.dart';
class RecipeCard extends StatelessWidget {
final RecipeSummary recipe;
@@ -17,12 +17,12 @@ class RecipeCard extends StatelessWidget {
final List<String> imageUrls =
recipe.recordList.reversed.map((record) => record.imageUrl).toList();
return BuildCard(
return CommonCard(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
buildNetworkImage(context, imageUrls, 0),
CommonImage(imageUrls: imageUrls, index: 0),
SizedBox(height: 8),
GestureDetector(
onTap: () => navigatorToRecipeDetail(context),

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/common_widget.dart';
import 'package:food_hub_app/provider/food_provider.dart';
import 'package:food_hub_app/widgets/common/index.dart';
import 'package:food_hub_app/widgets/recipe/card.dart';
import 'package:provider/provider.dart';
@@ -107,7 +107,7 @@ class _RecipeListState extends State<RecipeList> {
return Stack(
children: [
if (provider.isLoading)
buildLoadingIndicator(context)
buildLoadingIndicator()
else
_buildContent(provider),
],

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/common_widget.dart';
import 'package:flutter_common/widget/year_selector.dart';
import 'package:food_hub_app/models/recipe.dart';
import 'package:food_hub_app/provider/food_provider.dart';
import 'package:food_hub_app/widgets/common/image.dart';
import 'package:food_hub_app/widgets/common/index.dart';
import 'package:food_hub_app/widgets/common/year_selector.dart';
import 'package:timelines_plus/timelines_plus.dart';
import 'package:provider/provider.dart';
@@ -35,7 +35,7 @@ class _RecipeTimeline extends State<RecipeTimeline> {
SizedBox(height: 6),
Padding(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 0),
child: BuildCard(
child: CommonCard(
child: Column(
children: [
Text(
@@ -43,7 +43,7 @@ class _RecipeTimeline extends State<RecipeTimeline> {
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
),
const SizedBox(height: 5),
buildNetworkImage(context, [record.imageUrl], 0),
CommonImage(imageUrls: [record.imageUrl], index: 0),
],
),
),
@@ -87,12 +87,11 @@ class _RecipeTimeline extends State<RecipeTimeline> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
YearSelector(
initialYear: DateTime.now().year,
minYear: 2000,
maxYear: 2100,
onYearChanged:
(year) =>
provider.refreshRecordList("$year-01-01", "$year-12-31"),
currentYear: provider.selectYear,
onYearChanged: (year) {
provider.selectYear = year;
provider.refreshRecordList();
},
),
Expanded(
child: Padding(
@@ -111,7 +110,7 @@ class _RecipeTimeline extends State<RecipeTimeline> {
return Stack(
children: [
if (provider.isLoading)
buildLoadingIndicator(context)
buildLoadingIndicator()
else
_buildContent(provider),
],