You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
844 B
33 lines
844 B
import 'package:flutter/material.dart'; // Color类要使用这个包
|
|
import 'package:equatable/equatable.dart'; // 比较两个对象是否相等的包
|
|
|
|
class Project extends Equatable {
|
|
final int id;
|
|
final String name;
|
|
final Color? colour; // 颜色
|
|
final bool archived; // 是否归档
|
|
|
|
// 构造函数
|
|
const Project({
|
|
required this.id,
|
|
required this.name,
|
|
required this.colour,
|
|
required this.archived,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [id, name, archived]; // 返回属性列表,用于比较两个对象是否相等
|
|
|
|
Project.clone(
|
|
Project project, {
|
|
String? name,
|
|
Color? color,
|
|
bool? archived,
|
|
}) : this(
|
|
id: project.id,
|
|
name: name ?? project.name,
|
|
colour: color ?? project.colour,
|
|
archived: archived ?? project.archived,
|
|
);
|
|
}
|