diff --git a/scripts/load_path.py b/scripts/load_path.py index 50e27db..5fe6d29 100644 --- a/scripts/load_path.py +++ b/scripts/load_path.py @@ -6,6 +6,11 @@ MOD = "pipeline-sdlc" PATHS_ANY = [ f"/{MOD}/index.ui", + # Tree 组件展开/折叠图标(bricks.path 指向 / 时,图标走 /imgs/ 而非 /bricks/imgs/) + "/imgs/node-expand.svg", + "/imgs/node-collapse.svg", + "/imgs/open-folder.svg", + "/imgs/close-folder.svg", ] PATHS_LOGINED = [ diff --git a/wwwroot/api/task_tree.dspy b/wwwroot/api/task_tree.dspy index c01ca54..77a2dd8 100644 --- a/wwwroot/api/task_tree.dspy +++ b/wwwroot/api/task_tree.dspy @@ -108,13 +108,14 @@ async with DBPools().sqlorContext(dbname) as sor: "label": "🗂 {} [{}] ({})".format(iname, istatus, cnt), "is_leaf": False, }) - # 未分配迭代(无 iteration_id 的任务) + # 未分配迭代(无 iteration_id 的任务)—— 有未分配任务才显示 none_cnt = sum(1 for t in all_tasks if not _iter_of(t)) - nodes.append({ - "id": "iter:__none__", - "label": "🗂 未分配迭代 ({})".format(none_cnt), - "is_leaf": False, - }) + if none_cnt > 0: + nodes.append({ + "id": "iter:__none__", + "label": "🗂 未分配迭代 ({})".format(none_cnt), + "is_leaf": False, + }) return json.dumps(nodes, ensure_ascii=False) if node_id.startswith('iter:'): diff --git a/wwwroot/imgs/close-folder.svg b/wwwroot/imgs/close-folder.svg new file mode 100644 index 0000000..c766c0d --- /dev/null +++ b/wwwroot/imgs/close-folder.svg @@ -0,0 +1 @@ + diff --git a/wwwroot/imgs/node-collapse.svg b/wwwroot/imgs/node-collapse.svg new file mode 100644 index 0000000..667639b --- /dev/null +++ b/wwwroot/imgs/node-collapse.svg @@ -0,0 +1 @@ + diff --git a/wwwroot/imgs/node-expand.svg b/wwwroot/imgs/node-expand.svg new file mode 100644 index 0000000..626b25a --- /dev/null +++ b/wwwroot/imgs/node-expand.svg @@ -0,0 +1 @@ + diff --git a/wwwroot/imgs/open-folder.svg b/wwwroot/imgs/open-folder.svg new file mode 100644 index 0000000..245414d --- /dev/null +++ b/wwwroot/imgs/open-folder.svg @@ -0,0 +1 @@ +