diff --git a/track-uniapp/src/pages/scan/components/FlowTree.vue b/track-uniapp/src/pages/scan/components/FlowTree.vue
new file mode 100644
index 0000000..2725f97
--- /dev/null
+++ b/track-uniapp/src/pages/scan/components/FlowTree.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+ {{ isMainNode ? '主线' : '分支' }}
+ {{ statusLabel(node.status) }}
+ ⚠返工
+
+ {{ node.task_name }}
+
+
+ 📥 转入在库: {{ formatUserName(node.assignee_id) }}
+ 👤 {{ formatUserName(node.assignee_id) || '未分配' }}
+
+
+ ⏰ {{ fmtDate(node.created_at) }}{{ node.completed_at ? ' → ' + fmtDate(node.completed_at) : ' → 至今' }}
+ 📋 {{ node.records.length }}条 ›
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/track-uniapp/src/pages/scan/components/TreeCanvas.vue b/track-uniapp/src/pages/scan/components/TreeCanvas.vue
index d37ce94..ddeea66 100644
--- a/track-uniapp/src/pages/scan/components/TreeCanvas.vue
+++ b/track-uniapp/src/pages/scan/components/TreeCanvas.vue
@@ -14,19 +14,16 @@
📋该产品暂无流转记录
-
+
-
-
+
@@ -43,11 +40,11 @@
@@ -87,7 +94,7 @@ export default {
.zero-icon { font-size: 40px; margin-bottom: 10px; }
.zero-text { font-size: 14px; color: #9ca3af; }
-.tree-scroll { flex: 1; height: 0; overflow: hidden; }
+.tree-scroll { flex-shrink: 0; }
.tree-root { padding: 16px 12px 20px; }
.tree-legend {
display: flex;