feat:重构代办事项模块
This commit is contained in:
68
lib/models/todo.dart
Normal file
68
lib/models/todo.dart
Normal file
@@ -0,0 +1,68 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class TodoItem {
|
||||
String id;
|
||||
String title;
|
||||
String? description;
|
||||
bool isCompleted;
|
||||
DateTime createdAt;
|
||||
DateTime? dueDate;
|
||||
TodoPriority priority;
|
||||
String? category;
|
||||
|
||||
TodoItem({
|
||||
required this.id,
|
||||
required this.title,
|
||||
this.description,
|
||||
this.isCompleted = false,
|
||||
DateTime? createdAt,
|
||||
this.dueDate,
|
||||
this.priority = TodoPriority.medium,
|
||||
this.category,
|
||||
}) : createdAt = createdAt ?? DateTime.now();
|
||||
|
||||
TodoItem copyWith({
|
||||
String? id,
|
||||
String? title,
|
||||
String? description,
|
||||
bool? isCompleted,
|
||||
DateTime? createdAt,
|
||||
DateTime? dueDate,
|
||||
TodoPriority? priority,
|
||||
String? category,
|
||||
}) {
|
||||
return TodoItem(
|
||||
id: id ?? this.id,
|
||||
title: title ?? this.title,
|
||||
description: description ?? this.description,
|
||||
isCompleted: isCompleted ?? this.isCompleted,
|
||||
createdAt: createdAt ?? this.createdAt,
|
||||
dueDate: dueDate ?? this.dueDate,
|
||||
priority: priority ?? this.priority,
|
||||
category: category ?? this.category,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
enum TodoPriority {
|
||||
low('低', Color(0xFF757575), Icons.low_priority),
|
||||
medium('中', Color(0xFFF57C00), Icons.flag),
|
||||
high('高', Color(0xFFD32F2F), Icons.warning);
|
||||
|
||||
final String label;
|
||||
final Color color;
|
||||
final IconData icon;
|
||||
|
||||
const TodoPriority(this.label, this.color, this.icon);
|
||||
}
|
||||
|
||||
enum TodoTab {
|
||||
all('全部'),
|
||||
active('待完成'),
|
||||
completed('已完成'),
|
||||
today('今天');
|
||||
|
||||
final String label;
|
||||
|
||||
const TodoTab(this.label);
|
||||
}
|
||||
Reference in New Issue
Block a user