feat:重构UI模块

This commit is contained in:
2025-11-18 11:01:53 +08:00
parent 6bba9a488c
commit 21ff0ad94f
20 changed files with 501 additions and 605 deletions

View File

@@ -5,7 +5,6 @@ import 'package:food_hub_app/utils/date_util.dart';
import 'package:food_hub_app/utils/index.dart';
import 'package:food_hub_app/widgets/common/index.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:tdesign_flutter/tdesign_flutter.dart';
class RecipeCalendar extends StatefulWidget {
const RecipeCalendar({super.key});
@@ -90,49 +89,50 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
);
}
Widget dailyItem() {
return Card(
elevation: 0,
color: Colors.white,
child: Padding(
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(formatDateTime(_selectedDay, 'MM月dd日 EEEE')),
if (selectRecordList.isEmpty)
TDEmpty(type: TDEmptyType.plain, emptyText: '暂无数据')
else
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: selectRecordList.length,
itemBuilder: (context, index) {
return recipeRecordItem(selectRecordList[index]);
},
),
],
),
),
Widget dailyItem(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(formatDateTime(_selectedDay, 'MM月dd日 EEEE')),
if (selectRecordList.isEmpty)
buildEmptyData()
else
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: selectRecordList.length,
itemBuilder: (context, index) {
return recipeRecordItem(context, selectRecordList[index]);
},
),
],
);
}
Widget recipeRecordItem(Record record) {
Widget recipeRecordItem(BuildContext context, Record record) {
final colors = Theme.of(context).colorScheme;
return Card(
elevation: 0,
color: Color(0xFFF5F5DC),
color: colors.inversePrimary,
child: Padding(
padding: EdgeInsets.all(10),
child: Row(
children: [
TDAvatar(
size: TDAvatarSize.medium,
type: TDAvatarType.customText,
text: record.category[0],
CircleAvatar(
radius: 24,
backgroundColor: colors.primary,
child: Text(
record.category[0],
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
),
SizedBox(width: 10),
Expanded(
// 使用Expanded让文本区域占据剩余空间
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -149,7 +149,7 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
circleIconButton(
context: context,
icon: Icons.chevron_right,
onPressed: () => {}
onPressed: () => {},
),
],
),
@@ -205,8 +205,8 @@ class _RecipeCalendarState extends State<RecipeCalendar> {
Widget build(BuildContext context) {
return Column(
children: [
Card(elevation: 0, color: Colors.white, child: recipeCalendar()),
Expanded(child: dailyItem()),
buildCard(context: context, child: recipeCalendar()),
Expanded(child: buildCard(context: context, child: dailyItem(context))),
],
);
}