feat: Track 移动端状态展示与流转树全览改造

- 宏观状态栏补已入库/已出库语义色;OVERALL_OPTIONS 补已入库/已出库
- 在库任务'转入在库'显示实际操作人(assignee);补 OUTBOUND 状态色
- 流转树全览(TreeCanvas)由可移动 canvas 改为纵向递归树,复用 TaskTreeNode
This commit is contained in:
2026-09-01 13:53:35 +08:00
parent 6cb7731cbb
commit cf2609d87a
3 changed files with 92 additions and 300 deletions

View File

@ -12,11 +12,12 @@
<text class="tnode-name">{{ task.task_name }}</text>
</view>
<view class="tnode-meta">
<text v-if="task.assignee_id">负责人: {{ task.assignee_id }}</text>
<!-- 在库任务不单独显示"负责人",由下方"转入在库"统一展示实际操作人 -->
<text v-if="task.assignee_id && !isWarehouseTask">负责人: {{ formatUserName(task.assignee_id) }}</text>
<text v-if="task.reject_reason" class="reject-reason">驳回: {{ task.reject_reason }}</text>
</view>
<!-- 📥 在库任务:显示谁转入在库 -->
<text v-if="isWarehouseTask && task.created_by" class="warehouse-in">📥 转入在库: {{ formatUserName(task.created_by) }}</text>
<!-- 📥 在库任务:显示实际执行"转入在库"的操作人(任务负责人) -->
<text v-if="isWarehouseTask && task.assignee_id" class="warehouse-in">📥 转入在库: {{ formatUserName(task.assignee_id) }}</text>
<!-- 任务初始描述 / 交接备注(常驻显示,区别于动态日志 records) -->
<view v-if="task.remark || task.description" class="task-initial-remark">
@ -42,6 +43,7 @@
:currentUserId="currentUserId"
:currentUsername="currentUsername"
:readonly="readonly"
:has-children="!!(child.child_tasks && child.child_tasks.length)"
:isLast="idx === task.child_tasks.length - 1"
@action="(e) => $emit('action', e)"
@editRecord="(e) => $emit('editRecord', e)"
@ -151,6 +153,7 @@ export default {
case "WIP": return "s-blue";
case "COMPLETED": return "s-green";
case "REJECTED": return "s-red";
case "OUTBOUND": return "s-outbound";
default: return "s-gray";
}
},
@ -179,6 +182,7 @@ export default {
.s-blue { border-left-color: #3b82f6; }
.s-green { border-left-color: #22c55e; }
.s-red { border-left-color: #ef4444; }
.s-outbound { border-left-color: #4f46e5; }
.tnode-body { flex: 1; min-width: 0; }
.tnode-name-row { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
@ -232,6 +236,7 @@ export default {
.s-blue .badge { background: #dbeafe; color: #1d4ed8; }
.s-green .badge { background: #dcfce7; color: #15803d; }
.s-red .badge { background: #fce4ec; color: #be123c; }
.s-outbound .badge { background: #e0e7ff; color: #4338ca; }
.tnode-children { position: relative; }
</style>