55 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: task.flow.concept
title: 任务工作流(自定义流程状态)
type: concept
feature: task
scope: end-user
locale: zh
aliases:
- 任务工作流
- 自定义状态
- 流程
- 待办进行中完成
- 工作流视图
related_tools: [update_task, get_project]
related_pages: [task_detail, project_settings]
prerequisites:
- 项目开启了工作流(在项目设置启用)
negative:
- 工作流最多 10 个状态 / 流程
- 工作流状态绑定 column_id 时,拖列联动改 flow_item_id不绑定时各自独立
- 工作流的 status=end 节点会自动标记 complete_at无法关闭这一联动
last_verified: v1.7.90
---
# 任务工作流(自定义流程状态)
## 定义
DooTask 工作流由 `ProjectFlow`(一个项目可有多套)+ `ProjectFlowItem`(每个流程节点)实现。常见用法是把任务从「待办 → 设计 → 开发 → 测试 → 上线」自定义为多个流转节点,比"完成 / 未完成"二值粒度更细。
## 关键字段ProjectFlowItem
- `name`:节点名(如「待开发」)
- `status`:节点类型,`start` 起点 / `end` 终点 / 其他普通节点
- `turns`:可流转到的节点 id 列表(流转规则)
- `userids`:节点负责人(限制只有这些人可以操作进入此节点)
- `usertype`:流转模式(如限制只能由当前负责人流转)
- `color`:节点色块(看板视图色条)
- `columnid`:可绑定到具体项目列,拖列时联动改 flow_item_id
## 任务上的字段
任务存 `flow_item_id` + `flow_item_name`,前端用此显示当前所处节点。
## 与「列」column_id的关系
- 列只是看板的物理分栏,与状态不一定一一对应
- 启用工作流后,看板视图按 `column_id` 分组,工作流视图按 `flow_item_id` 分组
- 节点配 `columnid` 时,拖列与改状态联动;不配则独立
## status=end 的特殊行为
- 拖任务到 status=end 的节点 → `complete_at` 自动写入 → 任务被标记完成
- 拖回非 end 节点 → complete_at 不会自动清空(除非显式取消完成)
## 不支持
- 单流程不能超过 10 个节点(最多 10 节点)
- 不能跨项目共享工作流
- 工作流配置改名 / 改色不会回填历史任务的 flow_item_name 快照