fix: 移动端流转树修复断条箭头与分支层级塌陷
- 父节点与第一个主线子节点之间补 ↓ 连线箭头 - 新增 isBranchContext prop:进入分支后子子孙孙强制缩进,不再回主干道
This commit is contained in:
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
<!-- 子任务:主线继续主干道(左对齐 + ↓连线),分支(SPAWN 协助)缩进 -->
|
<!-- 子任务:主线继续主干道(左对齐 + ↓连线),分支(SPAWN 协助)缩进 -->
|
||||||
<view v-if="node.child_tasks && node.child_tasks.length">
|
<view v-if="node.child_tasks && node.child_tasks.length">
|
||||||
|
<!-- 修复断条:父节点与第一个主线子节点之间的连线箭头 -->
|
||||||
|
<view v-if="mainChildren.length" class="ft-flow-arrow">↓</view>
|
||||||
<!-- 主线子任务:左边缘对齐,形成笔直主干道,之间用 ↓ 连线 -->
|
<!-- 主线子任务:左边缘对齐,形成笔直主干道,之间用 ↓ 连线 -->
|
||||||
<template v-for="(child, i) in mainChildren" :key="'mc-' + child.id">
|
<template v-for="(child, i) in mainChildren" :key="'mc-' + child.id">
|
||||||
<view v-if="i > 0" class="ft-flow-arrow">↓</view>
|
<view v-if="i > 0" class="ft-flow-arrow">↓</view>
|
||||||
@ -32,12 +34,13 @@
|
|||||||
@view-records="$emit('viewRecords', $event)"
|
@view-records="$emit('viewRecords', $event)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<!-- 分支子任务:缩进 + 左边线 -->
|
<!-- 分支子任务:缩进 + 左边线;进入分支后子子孙孙都保持分支上下文 -->
|
||||||
<view v-if="branchChildren.length" class="ft-branch-children">
|
<view v-if="branchChildren.length" class="ft-branch-children">
|
||||||
<FlowTree
|
<FlowTree
|
||||||
v-for="child in branchChildren"
|
v-for="child in branchChildren"
|
||||||
:key="child.id"
|
:key="child.id"
|
||||||
:node="child"
|
:node="child"
|
||||||
|
:is-branch-context="true"
|
||||||
:current-user="currentUser"
|
:current-user="currentUser"
|
||||||
:current-user-id="currentUserId"
|
:current-user-id="currentUserId"
|
||||||
:current-username="currentUsername"
|
:current-username="currentUsername"
|
||||||
@ -58,6 +61,8 @@ export default {
|
|||||||
currentUser: { type: Object, default: null },
|
currentUser: { type: Object, default: null },
|
||||||
currentUserId: { type: [String, Number], default: "" },
|
currentUserId: { type: [String, Number], default: "" },
|
||||||
currentUsername: { type: String, default: "" },
|
currentUsername: { type: String, default: "" },
|
||||||
|
// 分支上下文:一旦进入分支,其子子孙孙都强制缩进,不再回主干道
|
||||||
|
isBranchContext: { type: Boolean, default: false },
|
||||||
},
|
},
|
||||||
emits: ["viewRecords"],
|
emits: ["viewRecords"],
|
||||||
computed: {
|
computed: {
|
||||||
@ -67,13 +72,17 @@ export default {
|
|||||||
|| this.node.task_type === "RECOVERY";
|
|| this.node.task_type === "RECOVERY";
|
||||||
},
|
},
|
||||||
// 主线子任务:TRANSFER/RECOVERY,继续主干道(左对齐)
|
// 主线子任务:TRANSFER/RECOVERY,继续主干道(左对齐)
|
||||||
|
// 分支上下文拦截:一旦处于分支,所有子任务强制归入分支,主线返回空
|
||||||
mainChildren() {
|
mainChildren() {
|
||||||
|
if (this.isBranchContext) return [];
|
||||||
return (this.node.child_tasks || []).filter((c) =>
|
return (this.node.child_tasks || []).filter((c) =>
|
||||||
!c.parent_task_id || c.task_type === "TRANSFER" || c.task_type === "RECOVERY"
|
!c.parent_task_id || c.task_type === "TRANSFER" || c.task_type === "RECOVERY"
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
// 分支子任务:其余(SPAWN 协助等),缩进显示
|
// 分支子任务:其余(SPAWN 协助等),缩进显示
|
||||||
|
// 分支上下文拦截:处于分支时,全部子任务都作为分支继续缩进
|
||||||
branchChildren() {
|
branchChildren() {
|
||||||
|
if (this.isBranchContext) return this.node.child_tasks || [];
|
||||||
return (this.node.child_tasks || []).filter((c) =>
|
return (this.node.child_tasks || []).filter((c) =>
|
||||||
c.parent_task_id && c.task_type !== "TRANSFER" && c.task_type !== "RECOVERY"
|
c.parent_task_id && c.task_type !== "TRANSFER" && c.task_type !== "RECOVERY"
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user