From 2a07f7d0522fc43d93d0ffcb2af636c853033f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Fri, 31 Jul 2026 17:10:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A9=BF=E6=90=AD=E9=A1=B5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=9C=BA=E6=99=AF=E9=80=89=E6=8B=A9=EF=BC=88=E9=80=9A?= =?UTF-8?q?=E5=8B=A4/=E7=BA=A6=E4=BC=9A/=E8=81=9A=E4=BC=9A/=E8=BF=90?= =?UTF-8?q?=E5=8A=A8=EF=BC=89=EF=BC=8C=E7=94=9F=E6=88=90=E6=97=B6=E4=BD=9C?= =?UTF-8?q?=E4=B8=BA=E4=BE=9D=E6=8D=AE=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/outfit/outfit_page.dart | 22 ++++++++++++++++++++++ lib/features/outfit/outfit_provider.dart | 2 ++ 2 files changed, 24 insertions(+) diff --git a/lib/features/outfit/outfit_page.dart b/lib/features/outfit/outfit_page.dart index 6bdb340..21f131a 100644 --- a/lib/features/outfit/outfit_page.dart +++ b/lib/features/outfit/outfit_page.dart @@ -19,8 +19,11 @@ class OutfitPage extends ConsumerStatefulWidget { class _OutfitPageState extends ConsumerState { DateTimeRange? _dateRange; final _locationCtrl = TextEditingController(); + String _occasion = '通勤'; bool _submitting = false; + static const _occasions = ['通勤', '约会', '聚会', '运动']; + @override void dispose() { _locationCtrl.dispose(); @@ -62,6 +65,7 @@ class _OutfitPageState extends ConsumerState { startDate: _fmt(range.start), endDate: _fmt(range.end), location: location, + occasion: _occasion, ); if (!mounted) return; setState(() => _submitting = false); @@ -115,6 +119,24 @@ class _OutfitPageState extends ConsumerState { ), ), const SizedBox(height: 16), + const Text('场景', + style: + TextStyle(fontSize: 13, fontWeight: FontWeight.w600)), + const SizedBox(height: 8), + Wrap( + spacing: 8, + children: [ + for (final o in _occasions) + ChoiceChip( + label: Text(o), + selected: _occasion == o, + onSelected: _submitting + ? null + : (_) => setState(() => _occasion = o), + ), + ], + ), + const SizedBox(height: 16), if (gen.phase == GeneratePhase.running) Padding( padding: const EdgeInsets.only(bottom: 12), diff --git a/lib/features/outfit/outfit_provider.dart b/lib/features/outfit/outfit_provider.dart index 0188dea..466227b 100644 --- a/lib/features/outfit/outfit_provider.dart +++ b/lib/features/outfit/outfit_provider.dart @@ -146,6 +146,7 @@ class GenerateNotifier extends Notifier { required String startDate, required String endDate, required String location, + required String occasion, }) async { state = const GenerateState(phase: GeneratePhase.running, statusText: '任务创建中...'); @@ -154,6 +155,7 @@ class GenerateNotifier extends Notifier { 'start_date': startDate, 'end_date': endDate, 'location': location, + 'occasion': occasion, }); final taskId = (data['task_id'] as num).toInt();