feat:增加hive数据库

This commit is contained in:
2026-04-28 19:59:51 +08:00
parent db52de7b56
commit 3804164cfd
11 changed files with 490 additions and 52 deletions

View File

@@ -12,29 +12,23 @@ Widget buildFormItem({
children: [
SizedBox(
width: 80,
child: Padding(
padding: const EdgeInsets.only(top: 8),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
if (required)
Padding(
padding: EdgeInsets.only(right: 4),
child: Text(
'*',
style: TextStyle(color: Colors.red, fontSize: 16),
),
),
Text(
label,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
if (required)
Padding(
padding: EdgeInsets.only(right: 4),
child: Text(
'*',
style: TextStyle(color: Colors.red, fontSize: 16),
),
),
const Text(':', style: TextStyle(fontSize: 14)),
],
),
Text(
label,
style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
),
const Text(':', style: TextStyle(fontSize: 14)),
],
),
),
const SizedBox(width: 12),

View File

@@ -1,6 +1,6 @@
import 'package:fluent_ui/fluent_ui.dart';
import 'package:omni_datetime_picker/omni_datetime_picker.dart';
import 'package:task_hub/models/Schedule.dart';
import 'package:task_hub/models/schedule.dart';
import 'package:task_hub/widgets/common.dart';
class ScheduleDialog extends StatefulWidget {
@@ -17,7 +17,7 @@ class _ScheduleDialogState extends State<ScheduleDialog> {
late TextEditingController _titleController;
DateTime? _selectedStartTime;
DateTime? _selectedEndTime;
DateTime? _selectedScheduleDate;
DateTime? _selectedScheduleTime;
final _formKey = GlobalKey<FormState>();
@override
@@ -28,7 +28,7 @@ class _ScheduleDialogState extends State<ScheduleDialog> {
);
_selectedStartTime = widget.schedule?.startTime;
_selectedEndTime = widget.schedule?.endTime;
_selectedScheduleDate = widget.schedule?.scheduleDate;
_selectedScheduleTime = widget.schedule?.scheduleTime;
}
@override
@@ -83,7 +83,7 @@ class _ScheduleDialogState extends State<ScheduleDialog> {
title: _titleController.text,
startTime: _selectedStartTime!,
endTime: _selectedEndTime!,
scheduleDate: _selectedScheduleDate,
scheduleTime: _selectedScheduleTime,
);
widget.onSave(schedule);
Navigator.pop(context);
@@ -169,12 +169,12 @@ class _ScheduleDialogState extends State<ScheduleDialog> {
label: '提醒日期',
child: buildOmniDateButton(
context: context,
selectedDate: _selectedScheduleDate,
selectedDate: _selectedScheduleTime,
placeholder: '请选择提醒日期',
type: OmniDateTimePickerType.dateAndTime,
onChanged: (date) {
setState(() {
_selectedScheduleDate = date;
_selectedScheduleTime = date;
});
},
),

View File

@@ -18,7 +18,7 @@ class _TaskDialogState extends State<TaskDialog> {
late TextEditingController _descController;
late Priority _selectedPriority;
DateTime? _selectedDueDate;
DateTime? _selectedScheduleDate;
DateTime? _selectedScheduleTime;
final _formKey = GlobalKey<FormState>();
@override
@@ -28,7 +28,7 @@ class _TaskDialogState extends State<TaskDialog> {
_descController = TextEditingController(text: widget.task?.desc ?? '');
_selectedPriority = widget.task?.priority ?? Priority.medium;
_selectedDueDate = widget.task?.dueDate;
_selectedScheduleDate = widget.task?.scheduleDate;
_selectedScheduleTime = widget.task?.scheduleTime;
}
@override
@@ -45,7 +45,7 @@ class _TaskDialogState extends State<TaskDialog> {
title: _titleController.text,
desc: _descController.text.isEmpty ? null : _descController.text,
dueDate: _selectedDueDate,
scheduleDate: _selectedScheduleDate,
scheduleTime: _selectedScheduleTime,
priority: _selectedPriority,
isCompleted: widget.task?.isCompleted ?? false,
);
@@ -159,12 +159,12 @@ class _TaskDialogState extends State<TaskDialog> {
label: '提醒日期',
child: buildOmniDateButton(
context: context,
selectedDate: _selectedScheduleDate,
selectedDate: _selectedScheduleTime,
placeholder: '请选择提醒日期',
type: OmniDateTimePickerType.dateAndTime,
onChanged: (date) {
setState(() {
_selectedScheduleDate = date;
_selectedScheduleTime = date;
});
},
),

View File

@@ -42,7 +42,7 @@ class TaskItem extends StatelessWidget {
const SizedBox(height: 4),
if (task.desc != null && task.desc!.isNotEmpty) _buildDesc(),
const SizedBox(height: 4),
if (task.dueDate != null || task.scheduleDate != null)
if (task.dueDate != null || task.scheduleTime != null)
_buildDate(),
],
),
@@ -97,11 +97,11 @@ class TaskItem extends StatelessWidget {
),
const SizedBox(width: 4),
],
if (task.scheduleDate != null) ...[
if (task.scheduleTime != null) ...[
Icon(FluentIcons.clock, size: 12, color: Colors.grey),
const SizedBox(width: 4),
Text(
'提醒日期: ${_formatDate(task.scheduleDate!)}',
'提醒日期: ${_formatDate(task.scheduleTime!)}',
style: TextStyle(color: Colors.grey, fontSize: 12),
),
],