解析第一个子页签的相关逻辑,对应表现
![[Pasted image 20240321150014.png]]
对应逻辑; 其中TodoListInputView是,新增待办事项的输入框; 构造函数中,设定输入框的,设定完成回调OnTodoCreate的具体逻辑,调用数据模型类,对应方法,添加待办事项,保存; 打印对应的Json结构;
![[Pasted image 20240321150043.png]]
输入框对应的逻辑,使用PopupView控件,设定一个分类的,标签枚举; 再设置一个TextAreaView输入框;
![[Pasted image 20240321154151.png]]
添加按钮,创建一个Todo待办事项,设定对应的标签属性,调用OnTodoCreate回调,在上述的TodoListView中,会完善它的具体创建逻辑
![[Pasted image 20240321154312.png]]
单个待办事项,对应表现,是这个
![[Pasted image 20240321154631.png]]
这是它,对应的逻辑; 其中包含,开始和完成的按钮空间,还有CategoryComponent标签分类组件; 构造函数中,完成V1.Todo的数据类赋值,点击开始任务、完成任务 按钮的构建; 其中包含各个对应的时间戳:开始时间、结束时间; 调用数据模型的保存逻辑,刷新页面;
![[Pasted image 20240321154659.png]]
CategoryComponent分类组件,对应逻辑,是一个boxView的显示控件,Data数据类,设定一下颜色就好
![[Pasted image 20240321154828.png]]
继续构建,布局显示控件
![[Pasted image 20240321155510.png]]
使用TreeNode树节点,串联起来,各个UI控件,然后再通过Add2FirstLine方法,加上”process“和”add“两个按钮控件,对应触发的逻辑,分别是 OpenProcessWindow 和 OpenTodoEditor
![[Pasted image 20240321155555.png]]
表现
![[Pasted image 20240321155845.png]]
前者逻辑,是使用 问题&选择 系统,拆分逻辑,跟之前提及的,笔记转待办事项,拆分逻辑,基本一致
![[Pasted image 20240321155909.png]]
点击后的表现
![[Pasted image 20240321160046.png]]
除了添加,待办事项,编辑当前待办事项,也是用 OpenTodoEditor这个接口
![[Pasted image 20240321160931.png]]
表现
![[Pasted image 20240321161003.png]]
点击,包含Category分类,优先级选项,是否修改成 隐藏 待办事项,保存修改
![[Pasted image 20240321161158.png]]
如果隐藏,就会加到这个子页签
![[Pasted image 20240321161310.png]]
显隐,对应按钮的显示样式,触发函数
![[Pasted image 20240321161400.png]]
是否可显现的参数,是hide的布尔取反
![[Pasted image 20240321161437.png]]
![[Pasted image 20240321161458.png]]
这是整体的 待办事项 编辑器 逻辑; 使用PopupView控件,配合数据模型,整体的Model.Categories标签组,新增标签的分类枚举;
![[Pasted image 20240321161540.png]]
总的标签分类汇总,在这个子页签,后面会解析
![[Pasted image 20240321161755.png]]
复习,优先级是Todo数据类里面,这个序列化的枚举
![[Pasted image 20240321161830.png]]
回到Todo界面类,Todo编辑器的优先级调用,和标签分类,使用PopupView控件,同理
![[Pasted image 20240321161932.png]]
保存修改,是根据传参todo是否为空,判断是,编辑已有待办事项,还是新增子待办事项; 如果只是编辑已有的,就修改对应的参数,save就好,如果是添加子待办事项,就需要加到Todo的Children列表;
![[Pasted image 20240321162114.png]]
![[Pasted image 20240321162241.png]]
表现:
![[Pasted image 20240321162317.png]]
子控件的逻辑,包含缩进相关,是在OnRefresh刷新函数实现
![[Pasted image 20240321162426.png]]
刷新函数还会根据,事项状态,控制对应按钮的显隐
![[Pasted image 20240321162501.png]]
还有优先级的文本和颜色,也是在刷新函数,有相关逻辑处理
![[Pasted image 20240321162534.png]]