feat:更新菜谱显示模块

This commit is contained in:
2025-11-18 15:57:00 +08:00
parent df26790389
commit 9a8e1a7419
9 changed files with 244 additions and 221 deletions

View File

@@ -10,12 +10,23 @@ class RecipeCard extends StatelessWidget {
const RecipeCard({super.key, required this.recipe});
void navigatorToRecipeDetail(BuildContext context) {
Navigator.pushNamed(context, '/recipeDetail', arguments: {'id': recipe.id});
}
@override
Widget build(BuildContext context) {
final List<String> imageUrls =
recipe.recordList
.map((item) => '${AppConfig.baseApiUrl}/${item.imageUrl}')
.toList();
final String firstImageUrl = recipe.recordList.first.imageUrl;
Widget buildRecipeImage() {
return AspectRatio(
aspectRatio: 1.5,
child: buildNetworkImage(
context,
'${AppConfig.baseApiUrl}/$firstImageUrl',
),
);
}
Widget buildRecipeContent(BuildContext context) {
return Column(
@@ -32,26 +43,6 @@ class RecipeCard extends StatelessWidget {
overflow: TextOverflow.ellipsis,
),
),
Row(
children: [
circleIconButton(
context: context,
icon: Icons.edit,
onPressed: () => {},
),
SizedBox(width: 4),
circleIconButton(
context: context,
icon: Icons.book,
onPressed:
() => Navigator.pushNamed(
context,
'/recipeDetail',
arguments: {'id': recipe.id},
),
),
],
),
],
),
Row(
@@ -105,12 +96,12 @@ class RecipeCard extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AspectRatio(
aspectRatio: 1.5,
child: buildNetworkImage(imageUrls.first),
),
buildRecipeImage(),
SizedBox(height: 8),
buildRecipeContent(context),
GestureDetector(
onTap: () => navigatorToRecipeDetail(context),
child: buildRecipeContent(context)
)
],
),
);
@@ -120,10 +111,10 @@ class RecipeCard extends StatelessWidget {
Widget _buildIconText({
required IconData icon,
required String text,
Color color = Colors.grey, // 默认灰色
Color color = Colors.grey,
double iconSize = 16,
double textSize = 16,
double spacing = 2, // 图标与文本间距
double spacing = 2,
}) {
return Row(
children: [