Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
697fad6b
提交
697fad6b
authored
7月 17, 2024
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
142fe4c0
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
37 行增加
和
43 行删除
+37
-43
Report.vue
src/modules/market/my/components/Report.vue
+13
-19
Flow.vue
src/modules/market/my/components/flow/Flow.vue
+1
-1
NodeCustom.vue
src/modules/market/my/components/flow/NodeCustom.vue
+2
-0
useLayout.js
src/modules/market/my/components/flow/useLayout.js
+17
-17
Update.vue
src/modules/market/my/views/Update.vue
+4
-6
没有找到文件。
src/modules/market/my/components/Report.vue
浏览文件 @
697fad6b
...
@@ -228,15 +228,9 @@ defineExpose({ generateImage, generatePdf })
...
@@ -228,15 +228,9 @@ defineExpose({ generateImage, generatePdf })
<h2>
六、自动化营销旅程设计
</h2>
<h2>
六、自动化营销旅程设计
</h2>
<h3>
(一)一级流程
</h3>
<h3>
(一)一级流程
</h3>
<p>
本项目设计一级流程图如下。
</p>
<p>
本项目设计一级流程图如下。
</p>
<Flow
<div
style=
"height: 200px; margin: 20px 0"
>
id=
"report-flow-1"
<Flow
:nodes=
"tripStore.nodes"
:edges=
"tripStore.edges"
:zoom-on-scroll=
"false"
:prevent-scrolling=
"false"
:pan-on-drag=
"false"
disabled
></Flow>
:nodes=
"tripStore.nodes"
</div>
:edges=
"tripStore.edges"
:zoom-on-scroll=
"false"
:prevent-scrolling=
"false"
:pan-on-drag=
"false"
disabled
style=
"height: 200px; margin: 20px 0"
></Flow>
<p>
相关节点设计说明如下:
</p>
<p>
相关节点设计说明如下:
</p>
<
template
v-for=
"(item, index) in tripStore.nodes"
:key=
"item.id"
>
<
template
v-for=
"(item, index) in tripStore.nodes"
:key=
"item.id"
>
<h4>
{{
index
+
1
}}
、
{{
item
.
data
.
label
||
item
.
label
}}
节点
</h4>
<h4>
{{
index
+
1
}}
、
{{
item
.
data
.
label
||
item
.
label
}}
节点
</h4>
...
@@ -253,16 +247,16 @@ defineExpose({ generateImage, generatePdf })
...
@@ -253,16 +247,16 @@ defineExpose({ generateImage, generatePdf })
<p>
本项目如下一级流程节点设计了二级流程。
</p>
<p>
本项目如下一级流程节点设计了二级流程。
</p>
<
template
v-for=
"(item, index) in tripStore.node1List"
:key=
"item.id"
>
<
template
v-for=
"(item, index) in tripStore.node1List"
:key=
"item.id"
>
<h4>
{{
index
+
1
}}
、
{{
item
.
data
.
label
||
item
.
label
}}
节点。该节点设计的二级流程图如下:
</h4>
<h4>
{{
index
+
1
}}
、
{{
item
.
data
.
label
||
item
.
label
}}
节点。该节点设计的二级流程图如下:
</h4>
<
Flow
<
div
style=
"height: 200px; margin: 20px 0"
v-if=
"item.data.nodes?.length"
>
:process=
"2"
<Flow
:nodes=
"item.data.nodes
"
:process=
"2
"
:edges=
"item.data.edg
es"
:nodes=
"item.data.nod
es"
:zoom-on-scroll=
"false
"
:edges=
"item.data.edges
"
:prevent-scrolling
=
"false"
:zoom-on-scroll
=
"false"
:pan-on-dra
g=
"false"
:prevent-scrollin
g=
"false"
disabled
:pan-on-drag=
"false"
style=
"height: 200px; margin: 20px 0"
disabled
></Flow>
v-if=
"item.data.nodes?.length"
></Flow
>
</div
>
<p>
该二级流程图节点说明如下:
</p>
<p>
该二级流程图节点说明如下:
</p>
<template
v-for=
"(item, index) in item.data.nodes"
:key=
"item.id"
>
<template
v-for=
"(item, index) in item.data.nodes"
:key=
"item.id"
>
<h4>
(
{{
index
+
1
}}
)
{{
item
.
data
.
label
||
item
.
label
}}
节点
</h4>
<h4>
(
{{
index
+
1
}}
)
{{
item
.
data
.
label
||
item
.
label
}}
节点
</h4>
...
...
src/modules/market/my/components/flow/Flow.vue
浏览文件 @
697fad6b
...
@@ -57,7 +57,7 @@ async function layoutGraph(direction) {
...
@@ -57,7 +57,7 @@ async function layoutGraph(direction) {
<NodeEnd
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
/>
<NodeEnd
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
/>
</
template
>
</
template
>
<
template
#
node-custom=
"props"
>
<
template
#
node-custom=
"props"
>
<NodeCustom
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
/>
<NodeCustom
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
@
node-remove=
"layoutGraph('LR')"
/>
</
template
>
</
template
>
<
template
#
edge-custom=
"props"
>
<
template
#
edge-custom=
"props"
>
<EdgeCustom
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
/>
<EdgeCustom
:process=
"process"
:disabled=
"disabled"
v-bind=
"props"
/>
...
...
src/modules/market/my/components/flow/NodeCustom.vue
浏览文件 @
697fad6b
...
@@ -5,6 +5,7 @@ import NodeCustomForm from './NodeCustomForm.vue'
...
@@ -5,6 +5,7 @@ import NodeCustomForm from './NodeCustomForm.vue'
const
Flow
=
defineAsyncComponent
(()
=>
import
(
'./Flow.vue'
))
const
Flow
=
defineAsyncComponent
(()
=>
import
(
'./Flow.vue'
))
const
props
=
defineProps
([
'label'
,
'data'
,
'process'
,
'selected'
,
'id'
,
'disabled'
])
const
props
=
defineProps
([
'label'
,
'data'
,
'process'
,
'selected'
,
'id'
,
'disabled'
])
const
emit
=
defineEmits
([
'nodeRemove'
])
const
dialogVisible
=
ref
(
false
)
const
dialogVisible
=
ref
(
false
)
...
@@ -93,6 +94,7 @@ function removeNodeBetweenEdges() {
...
@@ -93,6 +94,7 @@ function removeNodeBetweenEdges() {
markerEnd
:
MarkerType
.
ArrowClosed
markerEnd
:
MarkerType
.
ArrowClosed
}
}
])
])
emit
(
'nodeRemove'
)
}
}
</
script
>
</
script
>
...
...
src/modules/market/my/components/flow/useLayout.js
浏览文件 @
697fad6b
...
@@ -48,30 +48,30 @@ export function useLayout(findNode) {
...
@@ -48,30 +48,30 @@ export function useLayout(findNode) {
position
:
{
x
:
nodeWithPosition
.
x
,
y
:
nodeWithPosition
.
y
}
position
:
{
x
:
nodeWithPosition
.
x
,
y
:
nodeWithPosition
.
y
}
}
}
})
})
}
function
sortNodes
(
nodes
,
edges
)
{
function
sortNodes
(
nodes
,
edges
)
{
const
nodesMap
=
new
Map
()
const
nodesMap
=
new
Map
()
nodes
.
forEach
(
node
=>
{
nodes
.
forEach
(
node
=>
{
nodesMap
.
set
(
node
.
id
,
node
)
nodesMap
.
set
(
node
.
id
,
node
)
})
})
// Perform topological sort to determine the order of nodes
// Perform topological sort to determine the order of nodes
const
sortedNodes
=
[]
const
sortedNodes
=
[]
const
visited
=
new
Set
()
const
visited
=
new
Set
()
const
visit
=
nodeId
=>
{
const
visit
=
nodeId
=>
{
if
(
!
visited
.
has
(
nodeId
))
{
if
(
!
visited
.
has
(
nodeId
))
{
visited
.
add
(
nodeId
)
visited
.
add
(
nodeId
)
edges
.
filter
(
edge
=>
edge
.
source
===
nodeId
).
forEach
(
edge
=>
visit
(
edge
.
target
))
edges
.
filter
(
edge
=>
edge
.
source
===
nodeId
).
forEach
(
edge
=>
visit
(
edge
.
target
))
sortedNodes
.
push
(
nodesMap
.
get
(
nodeId
))
sortedNodes
.
push
(
nodesMap
.
get
(
nodeId
))
}
}
}
}
nodesMap
.
forEach
((
_
,
nodeId
)
=>
visit
(
nodeId
))
nodesMap
.
forEach
((
_
,
nodeId
)
=>
visit
(
nodeId
))
return
sortedNodes
.
reverse
()
return
sortedNodes
.
reverse
()
}
}
}
return
{
graph
,
layout
,
previousDirection
}
return
{
graph
,
layout
,
previousDirection
}
...
...
src/modules/market/my/views/Update.vue
浏览文件 @
697fad6b
...
@@ -75,16 +75,14 @@ async function handleNext(data, isCheck = false) {
...
@@ -75,16 +75,14 @@ async function handleNext(data, isCheck = false) {
<el-tab-pane
lazy
label=
"第5步"
:name=
"5"
>
<el-tab-pane
lazy
label=
"第5步"
:name=
"5"
>
<Step5
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step5>
<Step5
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step5>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
lazy
label=
"第6步"
:name=
"6"
>
<el-tab-pane
lazy
label=
"第6步"
:name=
"6"
>
</el-tab-pane>
<Step6
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step6>
</el-tab-pane>
<el-tab-pane
lazy
label=
"第7步"
:name=
"7"
>
<el-tab-pane
lazy
label=
"第7步"
:name=
"7"
>
<Step7
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step7>
<Step7
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step7>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
lazy
label=
"第8步"
:name=
"8"
>
<el-tab-pane
lazy
label=
"第8步"
:name=
"8"
>
</el-tab-pane>
<Step8
@
submit=
"handleSubmit"
@
next=
"handleNext"
></Step8>
</el-tab-pane>
</el-tabs>
</el-tabs>
<Step6
@
submit=
"handleSubmit"
@
next=
"handleNext"
v-if=
"activeTab == 6"
></Step6>
<Step8
@
submit=
"handleSubmit"
@
next=
"handleNext"
v-if=
"activeTab == 8"
></Step8>
</AppCard>
</AppCard>
</
template
>
</
template
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论