Todoist
将新任务变成子任务 将任务向左拖动
Json Model化
具体做法就是,通过预定义一些与Json结构对应的Model类,然后在请求到数据后再动态根据数据创建出Model类的实例。这样一来,在开发阶段我们使用的是Model类的实例,而不再是Map/List,这样访问内部属性时就不会发生拼写错误。例如,我们可以通过引入一个简单的模型类(Model class)来解决前面提到的问题,我们称之为User。在User类内部,我们有:
一个User.fromJson 构造函数, 用于从一个map构造出一个 User实例 map structure
一个toJson 方法, 将 User 实例转化为一个map.
class User {
final String name;
final String email;
User(this.name, this.email);
User.fromJson(Map<String, dynamic> json)
: name = json['name'],
email = json['email'];
Map<String, dynamic> toJson() =>
<String, dynamic>{
'name': name,
'email': email,
};
}
计划管理设计
计划表 plan
字段 | 类型 | 能否为空 | 备注 |
---|---|---|---|
id | int | no | |
name | varchar(255) | no | 计划名 |
desc | varchar(255) | no | 计划描述 |
deadline | datetime | no | 最后期限 |
is_done | bool | no | 是否完成 |
plan_id | int | yes | 父计划id |
update_at | datetime | yes | 更新时间 |
update_by | varchar(255) | yes | 更新人 |
create_at | datetime | yes | 创建时间 |
create_by | varchar(255) | yes | 创建人 |
计划用户表plan_user
字段 | 类型 | 能否为空 | 备注 |
---|---|---|---|
id | int | no | |
user_id | int | no | 用户id |
plan_id | int | no | 计划id |